TD20 Series VFD Communication Protocol
-99-
data checkout of the frame (CRC check).
Bit checkout of the byte
The user can select different bit checkouts or non-checkout, which impacts the check bit setting of each
byte.
The definition of even checkout: add an even check bit before the data transmission to illustrate the
number of "1" in the data transmission is odd number or even number. When it is even, the check byte is
"0", otherwise, the check byte is "1". This method is used to stabilize the parity of the data.
The definition of odd checkout: add an odd check bit before the data transmission to illustrate the
number of "1" in the data transmission is odd number or even number. When it is odd, the check byte is
"0", otherwise, the check byte is "1". This method is used to stabilize the parity of the data.
For example, when transmitting "11001110", there are five "1" in the data. If the even checkout is applied,
the even check bit is "1"; if the odd checkout is applied; the odd check bit is "0". The even and odd check
bit is calculated on the check bit position of the frame. And the receiving devices also carry out even and
odd checkout. If the parity of the receiving data is different from the setting value, there is an error in the
communication.
CRC check
The checkout uses RTU frame format. The frame includes the frame error detection field which is based
on the CRC calculation method. The CRC field is two bytes, including 16 figure binary values. It is added
into the frame after calculated by transmitting device. The receiving device recalculates the CRC of the
received frame and compares them with the value in the received CRC field. If the two CRC values are
different, there is an error in the communication.
During CRC, 0 x FFFF will be stored. And then, deal with the continuous 6-above bytes in the frame and
the value in the register. Only the 8Bit data in every character is effective to CRC, while the start bit, the
end and the odd and even check bit is ineffective.
The calculation of CRC applies the international standard CRC checkout principles. When the user is
editing CRC calculation, he can refer to the relative standard CRC calculation to write the required CRC
calculation program.
Here provided a simple function of CRC calculation for the reference (programmed with C language):
unsigned int crc_cal_value (unsigned char x data_value,unsigned char data_length)
{
int i;
unsigned int crc_value=0xffff;
while(data_length--)
{ crc_value^= x data_value++;
for(i=0;i<8;i++)
{
if(crc_value&0x0001)crc_value=(crc_value>>1)^0xa001;
else crc_value=crc_value>>1;
} }
return(crc_value);