Goodrive35 Series Closed-loop Vector Control VFD  Communication protocol 
221 
and if it is even, the check bit is set to "1". 
For example, the data bits to be transmitted are "11001110", including five "1". If the even check is 
applied, the even check bit is set to "1"; and if the odd check is applied, the odd check bit is set to "0". 
During the transmission of the data, the odd/even check bit is calculated and placed in the check bit of 
the frame. The receiving device performs the odd/even check after receiving the data. If it finds that 
the  odd/even  parity  of  the  data  is  inconsistent  with  the  preset  information,  it  determines  that  a 
communication error occurs. 
CRC check   
A frame in the RTU format includes an error detection domain based on the CRC calculation. The 
CRC domain checks all the content of the frame. The CRC domain consists of two bytes, including 16 
binary bits. It is calculated by the transmitter and added to the frame. The receiver calculates the CRC 
of the received frame, and compares the result with the value in the received CRC domain. If the two 
CRC values are not equal to each other, errors occur in the transmission. 
During  CRC,  0xFFFF  is  stored  first,  and  then  a  process  is  invoked  to  process  a  minimum  of  6 
contiguous bytes in the frame based on the content in the current register. CRC is valid only for the 
8-bit data in each character. It is invalid for the start, end, and check bits. 
During the generation of the CRC values, the "exclusive or" (XOR)  operation is performed on  the 
each 8-bit character and the content in the register. The result is placed in the bits from the least 
significant  bit  (LSB)  to  the  most significant  bit  (MSB),  and  0  is  placed  in  the MSB. Then, LSB  is 
detected. If LSB is 1, the XOR operation is performed on the current value in the register  and the 
preset value. If LSB is 0, no operation is performed. This process is repeated 8 times. After the last bit 
(8
th
 bit) is detected and processed, the XOR operation is performed on the next 8-bit byte and the 
current content  in  the  register.  The  final  values  in  the  register  are  the CRC values obtained  after 
operations are performed on all the bytes in the frame. 
The  calculation  adopts  the  international  standard  CRC  check  rule.  You  can  refer  to  the  related 
standard CRC algorithm to compile the CRC calculation program as required. 
The  following  is  a  simple  CRC  calculation  function  for  your  reference  (using  the  C  programming 
language): 
unsigned int crc_cal_value(unsigned char*data_value,unsigned char data_length) 
{ 
  int i; 
  unsigned int crc_value=0xffff;   
  while(data_length--) 
  { 
    crc_value^=*data_value++; 
    for(i=0;i<8;i++)