纵向冗余校验(Longitudinal Redundancy Check,简称:LRC)是通信中常用的一种校验形式,也称LRC校验或纵向校验。它是一种从纵向通道上的特定比特串产生校验比特的错误检测方法。在工业领域,Modbus协议Ascii模式采用该算法进行校验。
具体算法如下
1)当选择HEX输入时:
1、对需要校验的数据(2n个字符)两两组成一个16进制的数值求和。
2、将求和结果与256求模。
3、用256减去所得模值得到校验结果(另一种方法:将模值按位取反然后加1)。
例如:输入16进制数据:01 A0 7C FF 02
(16进制计算)求和:01 + A0 + 7C + FF + 02 = 21E,取模:21E % 100 = 1E,计算:100 - 1E = E2
2)当选择ASCII码输入时:每1个字符即为一个字节,相当入两个16进制字符,如:ASCII码的‘1’,即代表0x31。
1、对需要校验的数据(n个字符)的ASCII码原值求和。
2、将求和结果与256求模。
3、用256减去所得模值得到校验结果(另一种方法:将模值按位取反然后加1)。
LRC纵向冗余校验码,Modbus通讯ASCII模式LRC校验码在线计算器
16进制(CRC8)(累加和,LRC校验),ASCII码校验和在线计算器
16进制(CRC16)(MODBUS RTU通讯)校验码在线计算器