首页 > 解决方案 > CAN BUS 协议栈

问题描述

有人可以向我解释什么是 CAN BUS 协议栈吗?是 CAN BUS+ 更高层,比如 7 层的 CANopen 还是其他什么,有人可以解释我如何使用 CAN 堆栈,如何将它与 CAN 总线连接,以及为什么需要它?

谢谢

标签: embeddedcan-buscanopen

解决方案


是的,它是具有更高层协议的 CAN 硬件,例如 CANopen、J1939 或 DeviceNet。

就“OSI 模型”而言,仅谈论第 1-3 层和第 7 层才真正有意义,其中 CAN 是第 1 层和第 2 层,而 CANopen 之类的协议大致提供第 3 层和第 7 层。粗略地说,由于 CAN-open 也附带硬件规格,例如波特率、同步点和存根长度建议。

所谓的“协议栈”实际上只是一个具有独立于平台的 API 的库,通常与特定于硬件的驱动程序一起交付。如果供应商声称他们支持特定的 MCU,则通常意味着您从供应商处获得驱动程序。

所以基本上你购买这个预制库并将你的程序与它集成,然后在 CAN 总线上获得标准化的协议行为,这是与实现相同协议的其他节点通信所必需的。自己编写这样的库并非易事,尤其是对于作为一个大标准的 CANopen,您可能只会使用大约 10% 的可用功能。


推荐阅读