Embedded CAN总线协议栈

Embedded CAN总线协议栈,embedded,can-bus,canopen,Embedded,Can Bus,Canopen,有人能给我解释一下什么是Can总线协议栈吗?它是CAN总线+更高的层,比如具有7层的CANopen或其他什么,有人能解释我如何使用CAN堆栈,我如何将其与CAN总线连接,以及我为什么需要它吗 谢谢是的,它是具有更高层协议的CAN硬件,如CANopen、J1939或DeviceNet 就“OSI模型”而言,只说第1-3层和第7层才有意义,其中CAN是第1层和第2层,而像CANopen这样的协议大致提供了第3层和第7层。大致上,因为CAN open还附带硬件规范,如波特率、同步点和存根长度建议 所谓

有人能给我解释一下什么是Can总线协议栈吗?它是CAN总线+更高的层,比如具有7层的CANopen或其他什么,有人能解释我如何使用CAN堆栈,我如何将其与CAN总线连接,以及我为什么需要它吗


谢谢

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

就“OSI模型”而言,只说第1-3层和第7层才有意义,其中CAN是第1层和第2层,而像CANopen这样的协议大致提供了第3层和第7层。大致上,因为CAN open还附带硬件规范,如波特率、同步点和存根长度建议

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


因此,基本上,您购买这个预先制作的库,并将您的程序与之集成,然后在CAN总线上获得标准化的协议行为,这是与实现相同协议的其他节点通信所必需的。自己编写这样一个库不是一个小任务,特别是对于CANopen来说,它是一个大标准,您可能只需要使用大约10%的可用功能

多谢各位。我也在读这篇文章(),有一个两层的CAN堆栈,CAN-IF和CAN-NM。我猜这些是“OSI模型”中的某一层,比如说NM是网络层,还是我错了?还有传输级别(ISO 15765),我在一些文章中还发现,对于CANopen,有7层,而不仅仅是3层或7层,所以我有点困惑。@aztaztazt是的,这是关于一些称为ISO TP的汽车协议。同样的原则。来自规范源的常规信息,可在自动化中使用:。