首页 > 编程知识 正文

canopen协议,can总线基础知识(一)

时间:2023-05-06 15:38:43 阅读:39891 作者:762

虽然以前使用过CAN总线协议,但是为了复习整理,我会简单地写一下CAN总线APP应用程序中的几个需要注意的硬件和软件

CAN总线的详细内容请参考这篇博文。 https://blog.csdn.net/QQ _ 38880380/article/details/84573821

CAN总线主要工作在物理层、数据链路层和传输层,高层有些协议利用CAN协议构建网络,但不在本文讨论范围之内。

硬件设计

CAN总线的硬件设计相对容易,通常使用在处理器内集成的CAN控制器。 CAN控制器在数据链路层工作,引出RX、TX两条数据线,与外部专用的CAN phy芯片连接,转换为CAN_H和CAN_L两条差动信号。 比较规格的CAN硬件设计如下图所示

请注意,R45 R46总共120的电阻只能用作一条CAN总线两端的两个节点。 如果CAN总线上存在中间节点,则中间节点必须消除R45和R46两个电阻。

CAN采用总线拓扑结构,连接方式如下图所示,将所有节点的CAN_H和CAN_L分别连接即可,一般只使用CAN_H和CAN_L两条数据线通过双绞线方式连接,采用外部辐射和CAN_L

软件设计

在CAN数据链路层主要分为数据帧、远程操作帧、错误帧、过载帧和帧间隔五种,其中后三种软件开发者不需要过度关注,一般由CAN控制器自动处理,中断处理事件

数据帧

在帧开始后立即有仲裁段,仲裁段实际上是软件的CAN ID部分,分为标准ID、合计11bit、扩展ID、合计29bit两种,一个CAN帧在发送前具有标准CAN帧ID 11bit和扩展CAN帧

CAN id段不仅标识一个帧,还确定一个帧的优先级。 CAN id越小的CAN帧的优先级越高,如果两个CAN节点同时发送帧并发生冲突,则低优先级CAN在检测到总线上的级别与发送数据不匹配时自动终止,不干扰高优先级CAN帧的发送过程

也可以重新划分CAN ID段。 例如,如果可以将11位重新划分为3位优先级id 5bit消息id位标识id,则可以通过不同的划分方法实现更高级的功能。

DLC是数据长度,以字节为单位最多8个。

Data是负载的数据部分,最多64位(8字节),实际发送的长度与DLC有关。

CRC和ack等由硬件自动实现,无需忽视。

遥控架

遥控器框架和数据框架基本一致,有两个不同之处。 其中之一是看不到遥控器帧的RTR字段(1),表示这是遥控器帧。 第二,从远程框架中删除了Data字段,这意味着远程框架无法承载载荷数据。

剩下的就是例证了。 看看关于芯片的示例代码就可以了。

文章链接: https://blog.csdn.net/csdn 1344789841/article/details/114447733

转载必须注明出处

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。