... | ... | @@ -317,5 +317,31 @@ message also includes an error code which helps to identify the cause of the pro |
|
|
|
|
|
{empty} +
|
|
|
|
|
|
=== CRC16 calculation
|
|
|
|
|
|
Cyclic Redundancy Code (CRC) is a widely used algorithm to detect faulty data during digital
|
|
|
communication. However, this technique is not able to correct errors. Therefore, a faulty message
|
|
|
has to be re-transmitted. This is not a problem, because the communication between the
|
|
|
OpenLab device and the OpenLab GUI is considered as non-critical.
|
|
|
|
|
|
{empty} +
|
|
|
|
|
|
The paper "A Tutorial on CRC Computations" [26] is concerned to CRC algorithm and how
|
|
|
they are structured. The CRC16 calculation consists of two processes. One process is responsible
|
|
|
for calculating the CRC of the header of a message. The other process calculates the
|
|
|
payload CRC.
|
|
|
|
|
|
{empty} +
|
|
|
|
|
|
=== Reply Transmitter
|
|
|
|
|
|
This process is responsible for transferring each byte of a reply message to the GUI. The
|
|
|
process triggers the data communication entity of the FPGA and controls the data flow. A byte
|
|
|
counter is set each time a reply message is ready for transfer. The byte counter represents
|
|
|
the length of the transferred message in bytes. This is necessary to indicate how much bytes
|
|
|
should be read from the send buffer array. The process gets active if the START_TRANSFER
|
|
|
flag is set by the Command Execution State Machine.
|
|
|
|
|
|
{empty} +
|
|
|
|
|
|
== https://es.technikum-wien.at/openlab/openlab_wiki/wikis/home[Home] | https://es.technikum-wien.at/openlab/openlab_wiki/wikis/board_TIVAC[<Microcontroller-based TIVAC] | https://es.technikum-wien.at/openlab/openlab_wiki/wikis/sig_proc_osci_hardware[Signal Processing Front-End (XMC,TIVAC,DE0-Oscilloscope)>] |