Bericht: Theoretische Grundlagen

This commit is contained in:
Matthias Biermann
2025-02-15 15:31:45 +01:00
parent c761e6964f
commit 6107cbb093
3 changed files with 30 additions and 7 deletions
+10 -2
View File
@@ -13,12 +13,20 @@ language = {ger},
edition = {8},
}
@online{crcOnlineRechner,
title = {Sunshine's Homepage - Online CRC Calculator Javascript},
@online{Sunshine2kCrCOnlineRechner,
author = {Sunshine2k},
title = {CRC Calculator (Javascript)},
url = {http://www.sunshine2k.de/coding/javascript/crc/crc_js.html},
urldate = {2025-02-13},
}
@online{SunshineCrcErklärung,
author = {Sunshine2k},
title = {Understanding and implementing CRC (Cyclic Redundancy Check) calculation},
url = {https://www.sunshine2k.de/articles/coding/crc/understanding_crc.html},
urldate = {2025-02-13},
}
@online{crcOnlineErklärung,
title = {A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHMS},
url = {http://www.piclist.com/techref/method/math/crcguide.html},
+20 -2
View File
@@ -27,9 +27,27 @@ Die Anforderungen an das Projekt und an das zu erstellende IP umfassen folgende
\item Möglichst hoher \textbf{Datendurchsatz} bei einer Frequenz von \qty{100}{\MHz}
\end{itemize}
\subsection{CRC - Theoretische Grundlagen}
\subsection{CRC - Theoretische Grundlagen} \label{sec:CRCGrundlagen}
Der Cyclic Redundancy Check (CRC) ist ein Verfahren zur Fehlererkennung, welches in der Regel in digitalen Kommunikationssystemen eingesetzt wird.
Die CRC-Berechnung basiert auf der Division eines Datenwortes durch ein Generatorpolynom.
Der Rest der Division ist die CRC-Prüfsumme.
Die Berechnung der CRC-Prüfsumme erfolgt dabei mit verschiedenen Parametern \cite{SunshineCrcErklärung}.
Ein spezifischer Satz von Parametern definiert einen standart CRC-Algorithmus.
Folgende Parameter sind definiert:
\begin{itemize}
\item \textbf{CRC-Länge / Width:} Die CRC-Länge definiert die Länge der Prüfsumme in Bit. In dieser Arbeit ist sie auf 32 Bit festgelegt.
\item \textbf{Generatorpolynom / Polynomial:} Das verwendete Generatorpolynom für die Polynomdivision.
\item \textbf{Initialwert / Initial Value:} Der Initialwert ist der Wert, mit dem das CRC-Register initialisiert wird.
\item \textbf{Eingangsreflexion / Input Reflected:} Die Bits des Eingangsdatenwortes werden vor der Berechnung umgekehrt.
\item \textbf{Ergebnisreflexion / Output Reflected:} Das Ergebnis wird nach der Berechnung über die gesamte Bitbreite reflektiert.
\item \textbf{Finales XOR / Final XOR:} Der finale CRC-Wert wird mit diesem Wert XOR-verknüpft, bevor er zurückgegeben wird.
\end{itemize}
Mit diesen Parametern lässt sich jeder standartisierte CRC-Algorithmus definieren.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -39,7 +57,7 @@ Im Rahmen dieses Projektes wurde ein IP-Block entwickelt, welcher die komplette
Dieser kann anschließend in ein größeres System eingebunden werden, um die CRC-Prüfsummen von Datenpaketen zu berechnen und diese wieder zurückzuschreiben.
Die Einbindung in ein Gesamtsystem wird in Abschnitt~\ref{sec:Einbindung} beschrieben.
Alle im Folgenden dargestellten Blockschaltbilder und VHDL-Quelldateien befinden sich im Vivadprojekt \texttt{axi\_crc\_dma} in den beigefügten Dateien.
Alle im Folgenden dargestellten Blockschaltbilder und VHDL-Quelldateien befinden sich im Vivadoprojekt \texttt{axi\_crc\_dma} in den beigefügten Dateien.
\subsection{Entity / Schnittstellen}
-3
View File
@@ -143,9 +143,6 @@
\newpage
% Literatur auflisten ohne es konrekt zu referenzieren
\nocite{Projektanleitung_Digitalekomponenten}
\nocite{crcOnlineRechner}
\nocite{crcOnlineErklärung}
\printbibliography[heading=bibnumbered, title=Literatur und Dokumentation]
\newpage