首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

超干货!|什么是嵌入式CAN总线?

如今,CAN总线在汽车和船舰电子设备通信中被广泛运用,并且随着国家越来越重视海防,对CAN的需求也会越来越大。

所以同学们,你们知道什么是嵌入式CAN总线吗?不如今天就和华妹一起来学习吧!

控制器局域网络CAN(controller area network)是用于无主机情况下,多个设备通信的总线协议

协议参考OSI。OSI分成了应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。CAN总线根据需求,只采用了物理层,数据链路层,以及应用层

一、CAN物理层

物理层:主要功能是为数据端设备提供传送数据的通路

CAN总线,物理层是由双绞线实现数据的传输,其中一条命名位CAN_H,另外一条是CAN_L,有两种结构设计。

闭环结构

闭环结构,双绞线两端用120Ω电阻相连。这种结构,传输速度在125kbps-1Mbps之间。优点是传输速度快;缺点是通信距离短,最远也只能实现40m的准确传输。

开环结构

开环结构,双绞线不连接,两条线的一端都并联一个2.2KΩ的电阻。开环结构,传输速度在125kbps以下。但是,传输距离可以达到1km

无论哪种结构,通信设备只需要用两条线路对应连接到CAN_H和CAN_L线上。

CAN总线网络拓扑图

差模信号传输

物理层还规定,数据以差模信号传输。在闭环结构中,小于0.05v的差值,表示隐形位(1),差值大于1.5v,表示显性位(0);开环结构中,差值大于-0.3v,表示隐形位(1),差值大于(0.3v),表示显性位(0)。

CAN控制器或者芯片,多数采用ttl信号。因此每个CAN节点内部结构中,CAN控制器都是通过收发器来连接到总线上的。收发器,实现ttl信号和差模信号的转换。

二、数据链路层

数据链路层:主要功能是如何在不可靠的物理线路上进行数据的可靠传递

CAN总线协议为了做到可靠传递,把数据链路层分位两层,媒体访问控制层(MAC)层和逻辑链路控制子层(LLC)。

MAC子层

MAC子层是实现CAN协议的核心,它的功能主要是规定传送规则。参总线协议,对帧结构、执行仲裁、错误检测、出错标定和故障界定都做了规定。

例如,CAN总线规定了数据帧、遥控帧、错误帧、过载帧、帧间隔等不同类型的帧。其中,数据帧又分为标准帧和扩展帧。CAN总线协议规定数据帧的结构为:帧起始,仲裁段、控制段、数据段、CRC段、ACK段、帧结束,且对各段,都做了规定。

CAN总线实现的执行仲裁,采用了线与原理,结合仲裁段来完成

这些规定,目的都是通过简单的双绞线,达到可靠的信息传递。不过,这样的信息传递,是广播性质的。如果,所有数据都接收,无疑会给cpu带来巨大的负荷。所以,还需要对数据进行处理,也就是LLC层的目的。

LCC子层

LLC子层的功能主要是报文滤波、超载通知和恢复管理

CAN控制器中,通过报文滤波器,筛选出CAN总线传输,符号要求的信息,供微处理器使用

物理层和数据链路层的功能可由CAN接口器件来完成

三、应用层

应用层,由微处理器完成。根据使用场景的不同,在CAN的基础上,还有CANOpen,DeviceNet等升级协议,使用了CAN总线的物理层和数据链路层,只是对应用层加以修改。

CAN总线协议,是一个发展的总线协议,我们可以对其进行优化,例如现在的CANFD,对数据帧的数据段做修改,CAN总线的传输速度可以达到5Mbps。

所以同学们要想理解什么是CAN,就要从协议和物理层次学习哦~大家如果还有疑问,欢迎评论区留言!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230627A0791700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券