[CAN-bus/DeviceNet] 232-CAN协议转换数据如何打包?

[复制链接]
 楼主| zuanzhou 发表于 2010-4-1 23:29 | 显示全部楼层 |阅读模式
我想做个通用的232-CAN协议转换器,查阅了相关资料,232与CAN之间的协议转换应该以CAN的一帧数据为单位传输比较好,以标准帧为例,一帧完整的数据如表格所示:
       有个问题没想明白,帧与帧之间的数据是如何区分开的?比如RS232发送的第1帧数据为:08 01 e0 00 01 02 03 04 05 06 07, 发送第2帧数据为:08 01 e0 07 06 05 04 03 02 01 00,CAN怎么知道08就是1帧数据的开始呢?因为1帧完整的数据可能夹杂在其它数据之中呀,这个问题如何解决?
ejack 发表于 2010-4-2 08:05 | 显示全部楼层
你贴的表1是SJA1000的罢?不同的控制器略有不同。
232打包时至少需要增加帧头并追加校验方式。
判断分包的处理,可以通过时序,也可以通过唯一性的帧间隔。
 楼主| zuanzhou 发表于 2010-4-4 10:26 | 显示全部楼层
采用如下表格打包如何呢?首先发送帧头“#”,而后是1个字节的帧结构信息,其次是8个字节的数据,最后是2个字节的CRC校验位,每一帧共14个字节。
ejack 发表于 2010-4-5 07:24 | 显示全部楼层
当然可以。
既然你打算自己做个通用232-CAN协议转换器,为什么不参考一下市场上的现有产品呢?
网上搜下很多都有说明书的,怎么封包都给你写出来了
 楼主| zuanzhou 发表于 2010-4-19 20:30 | 显示全部楼层
问题解决了,非常感谢ejack的热心帮助!最近时间自己编了一个RS232-CAN通信的上位机软件,这里一并贴出来,也作为自己阶段工作的一个总结。
hynh 发表于 2010-6-10 22:28 | 显示全部楼层
5# zuanzhou
zuanzhou能和你交流一下232转CAN方面知识吗?我qq370149809,麻烦加我,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

10

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部