帧中包含LRC值,接收设备在接收信息帧时计算LRC校验码,把计算的LRC值与接收到的LRC值进行比较,如果二者不一致,说明产生一个错误。CRC校验采用RTU模式传输时,消息帧中的校验码采用CRC方法计算。CRC校验码是含有2个16位的二进制值的字节。发送设备把计算CRC值附加到信息帧中去,接收设备在接收信息过程中再次计算CRC值并与接收到的实际CRC值进行比较,如果二者不一致,说明产生一个错误[17]。为了便于与基于单片机的仪表进行通信,本设计采用RTU传输模式,CRC方法校验消息帧。RTU模式以传输间隔来标识整个消息帧的开始和结束,典型的RTU消息帧为/设备地址(1byte)功能代码(1byte)数据(nbytes)CRC校验(2bytes)0。此协议要求每个控制器必须知道作为从机的设备地址,并能识别按地址发来的消息和根据消息来执行相应的请求,如果需要回应,控制器将生成反馈信息并用Modbus协议发出。2.5Modbus协议指令本设计modbus协议指令采用的是03(0x03)读保持寄存器,在一个远程设备中,使用该功能码读取保持寄存器连续块的内容。请求PDU说明了起始寄存器地址和寄存器数量。从零开始寻址寄存器。因此,寻址寄存器1-16为0-15。将响应报文中的寄存器数据分成每个寄存器有两字节,在每个字节中直接地调整二进制内容。对于每个寄存器,第一个字节包括高位比特,并且第二个字节包括低位比特。表1,表2,表3分别表示请求,错误,响应的指令信息[18]。表1请求Table1Request功能码1个字节0x03起始地址2个字节0x0000至0xFFFF寄存器数量2个字节1至125(0x7D)表2错误Table2Error差错码1个字节0x83异常码1个字节01或02或03或04表3响应Table3Response功能码1个字节0x03字节数1个字节2×N*寄存器N*×2个字节