文档介绍:第四章控制器局域网CAN技术协议
、CAN总线简介
、CAN总线通信模式
、CAN总线的性能特点
、CAN总线技术规范
、CAN总线简介
控制器局域网络(Controller work 简称CAN)主要用于各种过程(设备)监测及控制。CAN最初是由德国的Bosch公司为汽车的监测与控制设计的,但由于CAN总线本身的突出特点,其应用领域目前已不再局限于汽车行业,而向过程工业、机械工业、机器人、数控机床、医疗器械及传感器等领域发展。由于其高性能、高可靠性及独特的设计,CAN总线越来越受到人们的重视,国际上已经有很多大公司的产品采用了这一技术。CAN已经形成国际标准(ISO11898),并已成为工业数据通信的主流技术之一。
CAN总线的通信模式
第一,“载波监测,多主掌控/冲突避免
这就允许在总线上的任一设备有同等的机会取得总线的控制权来向外发送信息。如果在同一时刻有两个以上的设备欲发送信息,就会发生数据冲突,CAN总线能够实时地检测这些冲突情况并作出相应的仲裁而不会破坏待传之信息;
第二,信息报文在传送时不是基于目的站点地址;
这就允许不同的信息以“广播”的形式发送到所有节点并且可在不改变信息格式的前提下对报文进行不同配置;
第三,CAN总线是一种高速的,具备复杂的错误检测和恢复能力的高可靠性强有力的网络。
CAN总线的通信模式
一、CSMA/CD—载波监测,多主掌控/冲突避免
“载波监测”的意思是指在总线上的每个节点在发送信息报文前都必须监测到总线上有一段时间的空闲状态。
“多主掌控”的意思是一旦此一空闲状态被监测到,那么每个节点都有均等的机会来发送报文。
“冲突避免”是指在两上节点同时发送信息时,节点本身首先会检测到出现冲突,然后采取相应的措施来解决这一冲突情况。此时优先级高的报文先发送,低优先级的报文发送会暂停。在CAN总线协议中是通过一种非破坏性的仲裁方式来实现冲突检测。这也就意味着当总线出现发送冲突时,通过仲裁后原发送信息不会受到任何影响。所有的仲裁判别都不会破坏优先级高的报文信息内容,也不会对其发送产生任何的时延。
CAN总线的通信模式
如何实现非破坏性的位仲裁?
为了达到这种“非破坏性的位仲裁方式”,CAN总线协议必须满足一些前提条件。首先,必须定义两种逻辑状态——在这里叫作“支配位(DOMINANT)”(又称“显性”电平)和“顺从位(RECESSIVE)”(又称“隐性”电平);然后,节点在发送过程中必须检测刚刚发出的状态是否就是信息中所描述的内容。在CAN总线的定义中,逻辑0为支配位,逻辑1为顺从位。
CAN总线的通信模式
如何冲突仲裁?
支配位一定会在和顺从位的判别过程中获胜,换句话说,报文标记区(报文仲裁专用区域)的值越小,其优先级就越高。举个例子,假定有两个节点在同一时刻发送一个报文,每个节点都会监测总线以便了解欲发送的信息状态是否确实出现在总线上。一个优先级较低的报文在某一时刻会发送一个“顺从位”但是检测回来的却是“支配位”。此时这个节点被仲裁为发送权取消,立刻停止发送报文的工作。优先级较高的报文继续发送直到完整的报文发送完毕。在刚才冲突仲裁中被取消发送权的节点将等待总线的下一个空闲期并自动地再次尝试发送。
CAN总线的通信模式
二、基于报文的通讯
CAN总线是一个基于报文而不是基于站点地址的协议。也就是说报文不是按照地址从一个节点传送到另一个节点。CAN总线上报文所包含的内容只有优先级标志区和欲传送的数据内容。所有节点都会接收到在总线上传送的报文,并在正确接后发出应答确认。至于该报文是否要做进一步的处理或被丢弃将完全取决于接收节点本身。同一个报文可以发送给特定的站点或许多站点,就看你怎样去设计你的网络和系统。
基于报文的这种协议另外一个好处是新的节点可以随时方便地加入到现有的系统中,而不需对所有节点进行重新编程以便它们能识别这一新节点。一旦新节点加入到网络中,它就开始接收信息,判别信息标识,然后决定是否作处理或直接丢弃。
如何去实现?
CAN总线的通信模式
CAN总协议另外一个有用的特性是一个节点可以主动要求其它节点发送信息。这种特性叫做“远端发送请求”(RTR)。和上例不同之处在于,节点并不等待信息的到来,而是主动去索取。
如,汽车中的中央安全系统会频繁地更新一些象安全气袋等关键传感器的信息。
但是有些信息如油压传感器或电池电压传感器可能不会也不需要经常收到。为了确保了解这些设备是否工作正常,系统必须定期地要求此类设备发送相关的信息以便检查整个系统的工作情况。设计人员就可以利用这一“远端发送请求”特性来减少网络的数据通讯量,同时维持整个系统的完整性。
C