Bericht: Theoretische Grundlagen
This commit is contained in:
@@ -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},
|
||||
|
||||
@@ -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}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user