RS232串口通信&&ModBus 起始位,停止位,校验位需要自己实现吗 50
需要自己写程序通过RS232-C实现和ModBus互连ModBus报文格式为:从机地址(1字节),功能码(1字节),起始地址(2字节),数据长度(2字节),CRC码(2字...
需要自己写程序通过RS232-C实现和ModBus互连
ModBus报文格式为:从机地址(1字节),功能码(1字节),起始地址(2字节),数据长度(2字节),CRC码(2字节)
然后数据传输方式规定为串行异步:1位起始位,8位数据位,1位停止位,偶校验位。
我的疑问是:
1)CRC只对数据位进行校验,那就是说我ModBus报文里的前6字节值全部要进行CRC校验 然后计算出来2字节CRC码。那么起始位,停止位和偶校验位是怎么回事呢,是将每8BIT数据扩充成11BIT吗?起始位,停止位和偶校验位都需要自己在软件里实现吗?
2)如果需要自己在软件里实现,那么是先对数据进行CRC,然后再将每8BIT扩成11BIT?还是先将每8BIT扩成11BIT,然后只抽取其中的数据进行CRC?
或者这种理解是错的?
先谢谢各位了~ 展开
ModBus报文格式为:从机地址(1字节),功能码(1字节),起始地址(2字节),数据长度(2字节),CRC码(2字节)
然后数据传输方式规定为串行异步:1位起始位,8位数据位,1位停止位,偶校验位。
我的疑问是:
1)CRC只对数据位进行校验,那就是说我ModBus报文里的前6字节值全部要进行CRC校验 然后计算出来2字节CRC码。那么起始位,停止位和偶校验位是怎么回事呢,是将每8BIT数据扩充成11BIT吗?起始位,停止位和偶校验位都需要自己在软件里实现吗?
2)如果需要自己在软件里实现,那么是先对数据进行CRC,然后再将每8BIT扩成11BIT?还是先将每8BIT扩成11BIT,然后只抽取其中的数据进行CRC?
或者这种理解是错的?
先谢谢各位了~ 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询