| 数据搜索系统,热门电子元器件搜索 |
|
LRI512 数据表(PDF) 41 Page - STMicroelectronics |
|
|
|||||||||||||||||||||||||||||
LRI512 数据表(HTML) 41 Page - STMicroelectronics |
|
41 / 54 page ![]() 41/54 LRI512 APPENDIX B The CRC Error Detection Method The Cyclic Redundancy Check (CRC) is calculat- ed on all data contained in a message, from the start of the Flags through to the end of Data. This CRC is used from the VCD to the LRI512, and from the LRI512 to the VCD. Table 54. CRC Definition To add extra protection against shift errors, a fur- ther transformation on the calculated CRC is made. The One’s Complement of the calculated CRC is the value attached to the message for transmission. For checking of received messages the two CRC bytes are often also included in the re-calculation, for ease of use. In this case, given the expected value for the generated CRC is the residue of F0B8h CRC Calculation Example This example in C language illustrates one method of calculating the CRC on a given set of bytes comprising a message. C-Example to calculate or check the CRC16 according to ISO/IEC 13239 #define POLYNOMIAL0x8408// x^16 + x^12 + x^5 + 1 #define PRESET_VALUE0xFFFF #define CHECK_VALUE0xF0B8 #define NUMBER_OF_BYTES4// Example: 4 data bytes #define CALC_CRC1 #define CHECK_CRC0 void main() { unsigned int current_crc_value; unsigned char array_of_databytes[NUMBER_OF_BYTES + 2] = {1, 2, 3, 4, 0x91, 0x39}; int number_of_databytes = NUMBER_OF_BYTES; int calculate_or_check_crc; int i, j; calculate_or_check_crc = CALC_CRC; // calculate_or_check_crc = CHECK_CRC;// This could be an other example if (calculate_or_check_crc == CALC_CRC) { number_of_databytes = NUMBER_OF_BYTES; } else // check CRC { number_of_databytes = NUMBER_OF_BYTES + 2; } current_crc_value = PRESET_VALUE; for (i = 0; i < number_of_databytes; i++) { current_crc_value = current_crc_value ^ ((unsigned int)array_of_databytes[i]); for (j = 0; j < 8; j++) { if (current_crc_value & 0x0001) { CRC Definition CRC Type Length Polynomial Direction Preset Residue ISO/IEC 13239 16 bits X16 + X12 + X5 + 1 = Ox8408 Backward 0xFFFF 0xF0B8 |
|
链接网址 |
| ALLDATASHEET是否为您带来帮助? [ DONATE ] |
关于 Alldatasheet | 广告服务 | 联系我们 | 隐私政策 | 数据表链接 | 链接交换 | 制造商名单 All Rights Reserved©Alldatasheet.com |
| Russian : Alldatasheetru.com | Korean : Alldatasheet.co.kr | Spanish : Alldatasheet.es | French : Alldatasheet.fr | Italian : Alldatasheetit.com Portuguese : Alldatasheetpt.com | Polish : Alldatasheet.pl | Vietnamese : Alldatasheet.vn Indian : Alldatasheet.in | Mexican : Alldatasheet.com.mx | British : Alldatasheet.co.uk | New Zealand : Alldatasheet.co.nz |
|
Family Site : ic2ic.com |
icmetro.com |