打印
[CAN-bus/DeviceNet]

232-CAN协议转换数据如何打包?

[复制链接]
3189|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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协议转换器,为什么不参考一下市场上的现有产品呢?
网上搜下很多都有说明书的,怎么封包都给你写出来了

使用特权

评论回复
5
zuanzhou|  楼主 | 2010-4-19 20:30 | 只看该作者
问题解决了,非常感谢ejack的热心帮助!最近时间自己编了一个RS232-CAN通信的上位机软件,这里一并贴出来,也作为自己阶段工作的一个总结。

使用特权

评论回复
6
hynh| | 2010-6-10 22:28 | 只看该作者
5# zuanzhou
zuanzhou能和你交流一下232转CAN方面知识吗?我qq370149809,麻烦加我,谢谢!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

10

帖子

1

粉丝