[讨论] RS232 起始位 停止位 校验位 需要自己实现吗?

fengyun11747   2009-9-6 07:14 楼主
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能否代替偶校验?

先谢谢各位了!!!

回复评论 (2)

是单片机或者仪器设备上的吗,接受端和发送端保持一样的就行了。

crc和偶校验是不一样的……
点赞  2009-9-6 17:31
3q all the same.
点赞  2009-9-8 11:37
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复