当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]CAN总线是一种基于优先级的串行通信网络,采用载波监听多路转换冲突避免协议,CAN总线中传输的数据帧的起始部分为数据的标识符,标识符可以区分消息又可以表示消息的优先级(0 的优先级最高)。

CAN总线是一种基于优先级的串行通信网络,采用载波监听多路转换冲突避免协议,CAN总线中传输的数据帧的起始部分为数据的标识符,标识符可以区分消息又可以表示消息的优先级(0 的优先级最高)。

CAN总线为多主工作方式,网络上任意一节点均可在任意时刻主动向网络上的其它节点同时发送消息。若两个或两个以上的节点同时开始传送报文,就会产生总线访问冲突,根据逐位仲裁原则,借助帧开始部分的标识符,优先级低的节点主动停止发送数据,而优先级高的节点继续发送信息。在仲裁期间,CAN总线作“与”运算,每一个节点都对节点发送的电平与总线电平进行比较,如果电平相同,则节点可以继续发送。如规定0 的优先级高,当某一个节点发送1而检测到0 时,此节点知道有更高优先级的信息在发送,它就停止发送消息,直到再一次检测到网络空闲。

CAN,总线采用的是一种叫做“载波监测, 多主掌控/冲突避免”(CSMA/CA) 的通信模式。这种总线仲裁方式允许总线上的任何一个设各都有机会取得总线的控制权并向外发送数据。如果在同一时刻有2 个或2 个以上的设各要求发送数据,就会产生总线冲突,CAN总线能够实时地检测这些冲突并对其进行仲裁,从而使具有高优先级的数据不受任何损坏地传输。

当总线处于空闲状态时呈隐性电平,此时任何节点都可以向总线发送显性电平作为帧的开始。如果2个或2个以上同时发送就会产生竞争。CAN总线解诀竞争的方法同以太网的CSMA/CD (Carrier Sense MulTIple Access with Collislon DetecTIon) 方法基本相似,如图1所示。此外,CAN,总线做了改进并采用CSMA/CA (Carrier Sense MulTIple Access withCollision Avoidance) 访问总线,按位对标识符进行仲裁。各节点在向总线发送电平的同时,也对总线上的电平读取,并与自身发送的电平进行比较,如果电平相同继续发送下一位,不同则停止发送退出总线竞争。剩余的节点继续上述过程,直到总线上只剩下1个节点发送的电平, 总线竞争结束,优先级高的节点获得总线的控制权。

CAN总线以报文为单位进行数据传输,报文的优先级结合在44 位标识符中(扩展帧 的标识符29 位),具有最小二进制数的标识符的节点具有最高的优先级。这种优先级一旦 在系统设计时确定就不能随意地更改,总线读取产生的冲突主要靠这些位仲裁解诀。之所以 CAN总线不采用以太网使用的延时避免冲突,主要是为了保证具有更高优先级的节点能够完整地实时传输,而且CSMA/CA 可以有效地避免冲突。

如图2所示,节点A和节点B的标识符的第10、9、8位电平相同,因此两个节点侦听到的信息和它们发出的信息相同。第7 位节点B 发出一个“1”,但从节点上接收到的消息却是“O“,说明有更高优先级的节点占用总线发送消息。节点B会退出发送处于单纯监听方式而不发送数据; 节点A成功发送仲裁位从而获得总线的控制权,继而发送全部消息。总线中信号持续跟踪最后获得总线控制权发出的报文,本例中节点A 的报文将被跟踪。这种非破坏性位仲裁方法的优点在于,在网络最终确定哪个节点被传送前,报文的起始部分 已经在网络中传输了,因此具有高优先级的节点的数据传输没有任何延时。在获得总线控制 权的节点发送数据过程中,其他节点成为报文的接收节点,并且不会在总线再次空闲之前发送报文。

CAN非破坏性逐位仲裁示意图

图3 为CAN总线上节点的电平逻辑,总线上的节点电平对于总线电平而言是相与的关系,只有当3 个节点的电压都等于1(隐性电平),总线才会保持在vcc (隐性电平) 状态。

只要有1个节点切换到0状态(显性电平),总线就会被强制在显性状态(0)。这种避免总线冲突的仲裁方式能够使具有高优先级的消息没有延时地占用总线传输。

按位仲裁是CAN总线特有的仲裁方式,显性位覆盖隐性位。优先级高的报文根据此机 制抢占总线,优先级低的报文退出竞争。正因为CAN 有这样的仲裁机制,它难以抵抗高优 先级攻击和重发报文攻击。

举例:

1〉因为CAN 的模块在发送数据的时候,也同时会对总线进行监听,假设两个节点同时发送数据,A节点发送的前3 个位是100,B节点为101,在前2 个位发送完毕的时候,两个节点都会认为自己发送成功,但是当发送到第三个位的时候,B 节点会失去仲裁,因为0 的优先级高于1的优先级,B 节点监听到总线上不是1,因此失去仲裁,等待重新发送数据。CAN 节点在仲裁丢失后,根据CAN2.0B 协议规范,会自动重发。如果高优先级的报文一直占用着总线,则其他低优先级的报文将无法获得仲裁,但是会尝试重新发送。只有当高优先级报文不再占用总线时,低优先级的报文才可能发送成功。否则低优先级报文会出现“假饿死”状态。(例如在CAN_ NM 的逻辑环网络管理中,利用T_ max,T_ type 等定时器来防止报文假饿死)

2〉如果在某一时刻CAN总线上的多个单元同时向总线发送数据,优先级高的继续发送,那么怎样保证优先级低的数据不丢失呢? 如果整个can 网络都是自己管理的,那么可以通过应用层协议来调整每个节点的发送时间,无论优先级高低,如果发送时间过长(长短程度这个根据您的项目来把握) 则暂停发送,让其他节点发送。或者每个节点都在某个特定时间触发发送,以便每个节点都有机会。总的意思就是一定要做时间管理。如果项目不是像你说的优先级高占用带宽那么严重,就采用(非实时信息空闲时候) 轮询+ (实时信息) 主动发送的方式管理网络。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭