ModBus帧格式为:从机地址(1字节),功能码(1字节),起始地址(2字节),数据长度(2字节),CRC码(2字节)
然后数据传输方式规定为串行异步:1位起始位,8位数据位,1偶校验位,1位停止位。
我的疑问是:
1)CRC只对数据位进行校验,那就是说我ModBus报文里的前6字节值全部要进行CRC校验 然后计算出来2字节CRC码。那么起始位,停止位和偶校验位是怎么回事呢,是将每8BIT数据扩充成11BIT吗?起始位,停止位和偶校验位都需要自己在软件里实现吗?
2)如果需要自己在软件里实现,那么是先对数据进行CRC,然后再将每8BIT扩成11BIT?还是先将每8BIT扩成11BIT,然后只抽取其中的数据进行CRC?
3) 偶校验和crc之间是什么关系?crc能否代替偶校验?
先谢谢各位了!!!
是单片机或者仪器设备上的吗,接受端和发送端保持一样的就行了。
crc和偶校验是不一样的……