ZHDA070 March 2026 ADS112C04 , ADS112U04 , ADS114S06 , ADS114S08 , ADS122C04 , ADS122U04 , ADS124S06 , ADS124S08 , ADS125H01 , ADS125H02 , ADS1260 , ADS1261 , ADS1262 , ADS1263 , ADS127L01 , ADS127L11 , ADS127L14 , ADS127L18 , ADS127L21 , ADS131A02 , ADS131A04 , ADS131M02 , ADS131M02-Q1 , ADS131M03 , ADS131M03-Q1 , ADS131M04 , ADS131M04-Q1 , ADS131M06 , ADS131M06-Q1 , ADS131M08 , ADS131M08-Q1 , ADS7028 , ADS7038 , ADS7066 , ADS7067 , ADS7128 , ADS7138 , AFE78101 , AFE781H1 , AFE78201 , AFE782H1 , AFE88101 , AFE881H1 , AFE88201 , AFE882H1 , DAC60504 , DAC60508 , DAC61401 , DAC61402 , DAC61404 , DAC61408 , DAC61416 , DAC70504 , DAC70508 , DAC71408 , DAC71416 , DAC7750 , DAC7760 , DAC80504 , DAC80508 , DAC81401 , DAC81402 , DAC81404 , DAC81408 , DAC81416 , DAC8741H , DAC8742H , DAC8750 , DAC8760 , DAC8771 , DAC8775 , HDC3020 , HDC3020-Q1 , HDC3021 , HDC3021-Q1 , HDC3022 , HDC3022-Q1 , LMP90077 , LMP90078 , LMP90079 , LMP90080 , LMP90097 , LMP90098 , LMP90099 , LMP90100 , TMAG5173-Q1 , TMP114 , TMP126 , TMP126-Q1 , TMP1826 , TMP1827
也可以在脚本内轻松更改多项式。例如,原始 crc8CCITTZeroes() 示例具有图 2-8 中所示的 CRC 多项式的 if 语句。
XOR 中的 0x07 是多项式,代表 x8 + x2 + x + 1 的底部三项。x8 项是触发 XOR 的 MSB。
如果算法更改为 CRC-8-One-Wire,新的 x8 + x5 + x4 + 1 多项式由 0x31 表示,初始值为 0xFF。重命名该函数后,crc8OneWireOnes() 函数在开始时使用相同的 crc = 0xFF 启动。如图 2-9 中所示,使用新的 XOR 更改多项式计算。
表 2-6 中列出了 CRC-8-One-Wire 算法的详细信息。
| CRC | 多项式 | 初始值 | 器件 | 0xABC123 的 CRC |
|---|---|---|---|---|
| CRC-8-One-Wire | x8 + x5 + x4 + 1 (0x31) | 0xFF | LMP9007x、LMP90080、LMP9009x、LMP90100、HDC302x、HDC302x-Q1 | 0xF4 |
同样,在更改 JavaScript 时,还对描述 CRC 函数的正文进行了更改。然后更改 calculateCRC() 函数以调用新的 CRC 计算。所得到的 CRC-8-One-Wire 计算结果将显示在浏览器窗口中,如图 2-10 所示。
图 2-10 0xABC123 的 CRC 结果,CRC-8-OneWire,初始值 0xFF