求助,关于RS232转CAN通讯的问题

xixuanshi2977 2017-10-18 04:05:56
需要设计一个rs232转串口的通讯协议,在学习过程中碰到了一些疑惑,请高手们给些指点!
如图示:

之前接触过一个RS485的通讯协议,大概是这样的:帧头+地址信息+数据长度+数据块+校验码+帧尾
CAN数据帧:

问题:
1,串行帧转为Can报文,串行帧是如何确定是发给那个从机呢?(rs485中通过地址信息来确定,这边就有些不明白)
2,Can帧中,仲裁段的帧id是否就等于串行帧中的地址信息?
3,can帧中的帧ID是根据什么来进行定义的?
...全文
538 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Acuity. 2017-10-19
  • 打赏
  • 举报
回复
引用 3 楼 xixuanshi2977 的回复:
[quote=引用 1 楼 qq_20553613 的回复:] 1、串口数据中必须包含从机地址(CAN ID),在转换器中,取出改地址(ID)给CAN主机然后转发; 2、可以这么理解; 3、CAN ID由其本身标准确定,建议先了解CAN的基础知识,用起来就会得心应手。
就是说,我的串口协议就应该这样设计:帧头+CAN ID+数据长度+数据块,对吗? 还有个问题,can存在多主机,需不需要添加主机地址?如果需要,是否也是CAN id?[/quote] 1、思路正确,具体怎么设定协议,需要自己考虑全面; 2、这个是主机与主机间通信?多个主机,可以将ID分段,比如:主机0 ID段为0x100,后面两位为从机id;主机1 ID 段为0x200,等。
xixuanshi2977 2017-10-19
  • 打赏
  • 举报
回复
引用 1 楼 qq_20553613 的回复:
1、串口数据中必须包含从机地址(CAN ID),在转换器中,取出改地址(ID)给CAN主机然后转发; 2、可以这么理解; 3、CAN ID由其本身标准确定,建议先了解CAN的基础知识,用起来就会得心应手。
就是说,我的串口协议就应该这样设计:帧头+CAN ID+数据长度+数据块,对吗? 还有个问题,can存在多主机,需不需要添加主机地址?如果需要,是否也是CAN id?
of123 2017-10-19
  • 打赏
  • 举报
回复
使用 CAN-串口转换模块,无需了解 CAN 协议的详情,参考模块的使用书说明即可。需要了解的,仅仅是你要使用标准地址格式还是扩展地址格式,按说明书的要求把地址插到你的串口数据中。
xixuanshi2977 2017-10-19
  • 打赏
  • 举报
回复
引用 4 楼 qq_20553613 的回复:
[quote=引用 3 楼 xixuanshi2977 的回复:] [quote=引用 1 楼 qq_20553613 的回复:] 1、串口数据中必须包含从机地址(CAN ID),在转换器中,取出改地址(ID)给CAN主机然后转发; 2、可以这么理解; 3、CAN ID由其本身标准确定,建议先了解CAN的基础知识,用起来就会得心应手。
就是说,我的串口协议就应该这样设计:帧头+CAN ID+数据长度+数据块,对吗? 还有个问题,can存在多主机,需不需要添加主机地址?如果需要,是否也是CAN id?[/quote] 1、思路正确,具体怎么设定协议,需要自己考虑全面; 2、这个是主机与主机间通信?多个主机,可以将ID分段,比如:主机0 ID段为0x100,后面两位为从机id;主机1 ID 段为0x200,等。[/quote] 是不是我的连接rs232的pc端也要看成总线中的一个节点,给定一个CAN id(例如:0x300)? CAN id出于can报文的仲裁段中,那么主机0(0x100+从机号)的优先级会高于主机1(0x200+从机号)?
zw545378330 2017-10-19
  • 打赏
  • 举报
回复
串口到can不用考虑串口协议,是透明传输;换个角度说,串口发出的数据按照can帧的格式,至于是标准格式还是扩展格式自己配置
Acuity. 2017-10-18
  • 打赏
  • 举报
回复
1、串口数据中必须包含从机地址(CAN ID),在转换器中,取出改地址(ID)给CAN主机然后转发; 2、可以这么理解; 3、CAN ID由其本身标准确定,建议先了解CAN的基础知识,用起来就会得心应手。

27,374

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧