CANOPEN, CAN 2.0B什么区别

[复制链接]
2282|11
 楼主| siliconnect 发表于 2023-3-13 15:29 | 显示全部楼层 |阅读模式
本帖最后由 siliconnect 于 2023-3-13 15:31 编辑

头次用GD32F的硬件 CAN,不太理解
canopen 是不是协议,是基于can 2.0b之上的应用协议?
就好比我们在uart上的自己定的私有协议

cpu,带了can  2.0b, 是不是只要硬件外接can收发器,
cpu 硬件级别支持了多个子设备can同时发送数据这种防冲突? 像以太网那样。

还是说要多个一起发送给一个主机时,必须得再移植canopen 这种仲裁防冲突的协议才能实现?

他们得概念是什么? CPU带了CAN 和不带can区别什么。can带是can的媒体戒指类似MAC层cpu集成了
can收发器是一般不集中到Cpu里,和PHY那样 基本都是外接是吧?
zyj8848 发表于 2023-3-13 16:52 | 显示全部楼层
1.CANOPEN是基于CAN的应用层协议
2.MCU的CAN出来的是CAN_TX,CAN_RX,是TTL电平。所以需要外接收发器,将其转换成差分信号。
3.多个设备发送数据,总线会根据ID进行仲裁,跟canopen协议没有关联。

评论

老哥你已经解释的很到位了  发表于 2023-3-14 09:59
 楼主| siliconnect 发表于 2023-3-13 17:36 | 显示全部楼层
本帖最后由 siliconnect 于 2023-3-13 17:40 编辑

谢谢!

1.CANOPEN是基于CAN的应用层协议
  是不是我私有定义的协议话 没必要canopen移植,自己定义好格式就行?

2.MCU的CAN出来的是CAN_TX,CAN_RX,是TTL电平。所以需要外接收发器,将其转换成差分信号。
   接个TJA1050或者PCA82C250T,做好隔离防雷即可?

3.多个设备发送数据,总线会根据ID进行仲裁,跟canopen协议没有关联。
  也就是GD32 mcu带了can的,它内部不是代码处理防冲突的,是CPU内部can硬件自动会处理,不需要我应用层考虑对吗?
zyj8848 发表于 2023-3-13 18:36 | 显示全部楼层
siliconnect 发表于 2023-3-13 17:36
谢谢!

1.CANOPEN是基于CAN的应用层协议

1.具体看自己的使用情况。有些从设备就是基于CANOPEN协议的,那主机肯定也要按照协议来。
2.收发器种类很多,具体硬件设计也可以参考官方电路图
3.具体应用可以看官方demo程序或者用户手册
dtmcp 发表于 2023-3-14 15:43 | 显示全部楼层
CANOPEN是基于2.0A的应用层协议,主要是基于DS301标准,由于CAN是基于仲裁的机制需要自闭环,所以必须外挂收发器才能输出波形。
雾往梦 发表于 2024-3-20 15:58 | 显示全部楼层
楼主,您成功了吗?
Pretext 发表于 2024-3-25 23:18 | 显示全部楼层
CANOPEN是封装成更高级的协议吧。
digit0 发表于 2024-3-25 23:48 | 显示全部楼层
单片机的CAN协议都一样吧,和哪个厂商的片子没关系吧。
shenxiaolin 发表于 2024-4-30 16:18 | 显示全部楼层
一个是硬件层,一个是协议层。
kzlzqi 发表于 2024-7-31 22:02 | 显示全部楼层
CAN 协议的主要功能是提供一种多主机、消息优先级的传输机制。CAN 总线上的每个节点都可以发送和接收消息,消息的优先级由其标识符决定。CAN 硬件通过广播方式传输数据,所有设备都能够接收到数据帧,但数据帧的优先级决定了消息的发送顺序。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

97

帖子

0

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