大悟注册公司

急速预约
代理记账88元起 | 131-7641-8775
我要服务

干货CAN总线仲裁的基础知识

在信号正常的网络上高负载率发送测试时,总线上偶然会出现许多意想不到的问题,例如出现大量错误报文、被测设备报文周期出现异常、甚至总线锁死等,这个时候我们则需要考虑一下CAN网络上的仲裁是否发生了异常。

干货CAN总线仲裁的基础知识

1、什么是总线仲裁

系统中多个设备或模块可能同时申请对总线的使用权,为避免产生总线冲突,需由总线仲裁机构合理地控制和管理系统中需要占用总线的申请者,在多个申请者同时提出总线请求时,以一定的优先算法仲裁哪个应获得对总线的使用权。只有获得了总线控制权的设备,才能开始传送数据。2、CAN总线仲裁机制

报文的优先级,是通过对ID的仲裁来确定的。CAN总线上有两种电平状态,如果总线上同时出现显性电平和隐性电平,总线的状态会被置为显性电平,CAN正是利用这个特性进行仲裁。

对于CAN来说,0为显性,1为隐性。所以当对不同的ID号来进行仲裁时,ID号越小,优先级越高。对于标准数据帧和扩展数据帧的仲裁,如下图黄色所示,标准帧中的RTR为0,SRR中为1,所以标准帧的优先级更高。当总线空闲时,有多个节点同时需要发送报文,那么每个节点的发送器将会对发送位的电平和被监控的总线电平做比较。

如果电平相同,那么该节点可以继续发送;如果发送的为一“隐性”电平(1),但是监控到一“显性”电平(0),那么该节点失去仲裁,必须退出发送状态,直到下一次总线空闲的时候在参与总线的仲裁竞争。3、关于CAN总线仲裁的疑问

(1)什么时候出现CAN仲裁?

当总线上的节点监听到总线空闲时,此时2个及以上的节点同时向总线上发送数据,此时会触发CAN总线仲裁机制,来避免数据发送错误。

(2)那么总线仲裁丢失的节点,失去总线控制权后,立即转为接收么?

根据标示符判断帧的优先级,优先级高的继续发送,低的退回,等待高优先级帧发送完成,总线空闲后再进行发送。

需要注意的是在整个过程中两个节点都在监听总线,也就是说接收是不受发送状态限制的,也就没有转为接收这一说,所以也就不会出现数据不完整的帧,所以仲裁期间发送的位也是可以接收的。(3)如何减少仲裁事件的发生?

CAN总线中的节点在仲裁失败、发送失败或者请求发送时总线被其他节点占用,一般会在下一次空闲到来时请求发送。总线负载率越高,遇到上面的情况概率也就越大,因此仲裁事件的发生常出现在高负载率的总线环境下。如果可以控制总线负载率在合理范围内,可以大大减少仲裁事件的发生。CAN总线采用“载波监测,CSMA/CA的通信模式。这种总线仲裁方式允许总线上的任何一个设各都有机会取得总线的控制权并向外发送数据。如果在同一时刻有2个或2个以上的设各要求发送数据,就会产生总线冲突,CAN总线能够实时地检测这些冲突并对其进行仲裁,从而使具有高优先级的数据不受任何损坏的传输。

(来源:飞凌嵌入式)

服务
公司注册
代理记账
公司变更
注册商标
工商
工商注册
财会税务
工商专题
经营范围
法律
商标知产
股权架构
人事社保
创业法律
联系我们 / 其他城市
服务热线:131-7641-8775
大悟品创财税服务有限公司
到专业的财务公司代理记账,找品创财税享受专业的服务!
微信客服

扫描二维码

品创财税微信