您的位置:首页 > 其它

CAN总线之CAN的基本概念

2018-02-28 12:04 609 查看
一、CAN总线电平的显性和隐性
CAN包括CAN_H和CAN_L两条线,使用的是差分信号,在隐形的时候,两条线的电压相同,压差为0。当压差超过一定的阈值的时候,总线的状态就变为显性,假设在总线上挂了2个器件1,2.器件1将总线设为显性,而同时器件2将总线设为隐形。最终总线的状态会呈现为显性。所以当总线上的所有器件都为隐形时,总线的状态才为隐形。如果有一个器件为显性,则总线为显性。CAN总线的仲裁也是按照这个原理,当总线状态与自身状态不一致时会进入监听状态。
二、CAN总线仲裁
当总线上的几个器件同时发送数据的时候,CAN总线必须决定哪个器件可以发送,而其他的器件必须等待。冲突裁决是CAN协议最重要的一个特性,也是CAN总线做的最漂亮的地方,用很小的成本就解决了这个问题。

总线上的每一个CAN器件都会有一个唯一的ID。ID的大小决定了器件的优先级。ID越小优先级越高。如果几个器件同时发送数据,ID小的优先发送。以下图为例,总线上有A,B,C三个器件。A首先发送数据。当总线上有器件发送数据时,其他器件只能处于监听模式,所以B,C虽然有发送数据的需求但是只能等待A发送结束。当A发送结束之后,B,C同时发送,但是B的ID更小,B优先发送。B发送结束之后C才可以发送;



详细的总裁过程为:

CAN总线控制器在发送数据的同时监控总线电平,如果电平不同,则停止发送并做其他处理。如果该位位于仲裁段,则退出总线竞争;如果位于其他段,则产生错误事件。(来自博客http://www.cnblogs.com/jacklu/p/4729638.html)



帧ID越小,优先级越高。由于数据帧的RTR位为显性电平,远程帧为隐性电平,所以帧格式和帧ID相同的情况下,数据帧优先于远程帧;由于标准帧的IDE位为显性电平,扩展帧的IDE位为隐形电平,对于前11位ID相同的标准帧和扩展帧,标准帧优先级比扩展帧高。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: