《第5章_控制器局域网CAN总线技术规范(2)》由会员分享,可在线阅读,更多相关《第5章_控制器局域网CAN总线技术规范(2)(58页珍藏版)》请在金锄头文库上搜索。
1、第四章 控制器局域网CAN技术协议 5.1、CAN总线简介5.2、CAN总线通信模式5.3、CAN总线的性能特点 5.4、CAN总线技术规范5.1、CAN总线简总线简 介控制器局域网络(Controller Area Network 简称CAN)主要用于各种过程(设备)监测及控制。CAN最初是由德国的 Bosch公司为汽车的监测与控制设计的,但由于CAN总线本身 的突出特点,其应用领域目前已不再局限于汽车行业,而向 过程工业、机械工业、机器人、数控机床、医疗器械及传感 器等领域发展。由于其高性能、高可靠性及独特的设计,CAN 总线越来越受到人们的重视,国际上已经有很多大公司的产 品采用了这一技
2、术。CAN已经形成国际标准(ISO11898),并 已成为工业数据通信的主流技术之一。 5.2 CAN总线的通信模式 第一,“载波监测,多主掌控/冲突避免这就允许在总线上的任一设备有同等的机会取得总线的控制 权来向外发送信息。如果在同一时刻有两个以上的设备欲发送信 息,就会发生数据冲突,CAN总线能够实时地检测这些冲突情况 并作出相应的仲裁而不会破坏待传之信息; 第二,信息报文在传送时不是基于目的站点地址;这就允许不同的信息以“广播”的形式发送到所有节点并且 可在不改变信息格式的前提下对报文进行不同配置; 第三,CAN总线是一种高速的,具备复杂的错误检测 和恢复能力的高可靠性强有力的网络。 5
3、.2 CAN总线的通信模式一、CSMA/CD载波监测,多主掌控/冲突避免 “载波监测”的意思是指在总线上的每个节点在发送信息报 文前都必须监测到总线上有一段时间的空闲状态。 “多主掌控”的意思是一旦此一空闲状态被监测到,那么每个 节点都有均等的机会来发送报文。“冲突避免”是指在两上节点同时发送信息时,节点本身首 先会检测到出现冲突,然后采取相应的措施来解决这一冲突情况 。此时优先级高的报文先发送,低优先级的报文发送会暂停。在 CAN总线协议中是通过一种非破坏性的仲裁方式来实现冲突检测 。这也就意味着当总线出现发送冲突时,通过仲裁后原发送信息 不会受到任何影响。所有的仲裁判别都不会破坏优先级高的
4、报文 信息内容,也不会对其发送产生任何的时延。5.2 CAN总线的通信模式如何实现非破坏性的位仲裁?为了达到这种“非破坏性的位仲裁方式”,CAN总线协议必 须满足一些前提条件。首先,必须定义两种逻辑状态在这 里叫作“支配位(DOMINANT)” (又称“显性”电平)和“顺 从位(RECESSIVE)”(又称 “隐性”电平);然后,节点在 发送过程中必须检测刚刚发出的状态是否就是信息中所描述的 内容。在CAN总线的定义中,逻辑0为支配位,逻辑1为顺从位 。 5.2 CAN总线的通信模式如何冲突仲裁?支配位一定会在和顺从位的判别过程中获胜,换句话说,报 文标记区(报文仲裁专用区域)的值越小,其优先
5、级就越高。举 个例子,假定有两个节点在同一时刻发送一个报文,每个节点都 会监测总线以便了解欲发送的信息状态是否确实出现在总线上。 一个优先级较低的报文在某一时刻会发送一个“顺从位”但是检 测回来的却是“支配位”。此时这个节点被仲裁为发送权取消, 立刻停止发送报文的工作。优先级较高的报文继续发送直到完整 的报文发送完毕。在刚才冲突仲裁中被取消发送权的节点将等待 总线的下一个空闲期并自动地再次尝试发送。5.2 CAN总线的通信模式二、基于报文的通讯 CAN总线是一个基于报文而不是基于站点地址的协议。也 就是说报文不是按照地址从一个节点传送到另一个节点。CAN总 线上报文所包含的内容只有优先级标志区
6、和欲传送的数据内容 。所有节点都会接收到在总线上传送的报文,并在正确接后发 出应答确认。至于该报文是否要做进一步的处理或被丢弃将完 全取决于接收节点本身。同一个报文可以发送给特定的站点或 许多站点,就看你怎样去设计你的网络和系统。基于报文的这种协议另外一个好处是新的节点可以随时方便 地加入到现有的系统中,而不需对所有节点进行重新编程以便 它们能识别这一新节点。一旦新节点加入到网络中,它就开始 接收信息,判别信息标识,然后决定是否作处理或直接丢弃。 如何去实现?5.2 CAN总线的通信模式CAN总协议另外一个有用的特性是一个节点可以主动要 求其它节点发送信息。这种特性叫做“远端发送请求”(RTR
7、 )。 和上例不同之处在于,节点并不等待信息的到来,而是 主动去索取。如,汽车中的中央安全系统会频繁地更新一些象安全气 袋等关键传感器的信息。但是有些信息如油压传感器或电池电压传感器可能不会 也不需要经常收到。为了确保了解这些设备是否工作正常, 系统必须定期地要求此类设备发送相关的信息以便检查整个 系统的工作情况。设计人员就可以利用这一“远端发送请求 ”特性来减少网络的数据通讯量,同时维持整个系统的完整 性。 5.2 CAN总线的通信模式CAN总线定义了四种不同的帧,用于总线通讯。1、最常用的是“数据帧”,用于一个节点传送信息到其它任一或所有节点;2、“远端帧”,基本上是一个数据帧但其中的RT
8、R位被置1,表明这是一个“远端发送请求”,用于一个节点主动要求其它 节点发送信息; 3 、“错误帧”,如果节点在接收过程中检测到任一在CAN总线协议中定义了的错误信息,它就会发送一个错误帧。 4、“过载帧”,当一个节点正忙于处理接收的信息,需要额外的等待时间接收下一报文时,可以发送过载帧,通知其它 节点暂缓发送新报文。5.2 CAN总线的通信模式三、CAN总线是一种高速的,具备复杂的错误检测和 恢复能力的高可靠性强有力的网络(1)高速性: CAN总线一开始是为汽车工业而设计的,如果要使这一市场能够接受它,一个能高效处理出错情况的通讯 协议是至关重要的。在发布了2.0B版的CAN总线技术规范后,
9、 其最大的通讯速率已经比1.0版提高了8倍,达1M位/秒,在这 种速率下,即便是对时间要求非常关键的参数也可以通过CAN 总线传输而不必担心其时延。5.2 CAN总线的通信模式(2)CAN总线协议有一套完整的差错管理机制能够自动地检测出这些错误信息,由此保证了被传信 息的正确必性和完整性。错误类型 发送错误可通过“CRC出错”检测到; 普通接收错误可通过“应答出错”检测到; CAN报文格式错误可通过“格式出错”检测到; CAN总线信号错误可通过“位出错”检测到; 同步和定时错误可通过“阻塞出错”检测到。 5.2 CAN总线的通信模式每个CAN总线上的节点都有一个出错计数器用以记录各种错 误发生
10、的次数。取决于出错的严重性,通过这些计数器就可以 确认这些节点是否应工作到降级模式;总线上的节点可以从正常工作模式(正常收发数据和出错信 息)降级到消极工作模式(只有在总线空闲时才能取得控制权 ),或者到关断模式(和总线隔离)。CAN总线上各节点还有能力监测是短期的干扰还是永久性的 故障,并采取相关的应对措施,这种特性被叫做“故障界定隔 离”。采取了这种故障界定隔离措施后,故障节点将会被及时 关断,不会永久占用总线。这一点对关键信息能在总线上畅通 无阻地传送是非常重要的。 5.3 CAN总线总线 的技术特点 由于其采用了许多新技术及独特的设计与一般的通信总 线相比,CAN总线的数据通信具有突出
11、的可靠性、实时性和 灵活性。其特点可概括如下:1.CAN为多主工作方式,网络上任意以节点均可在任意时刻主 动的地向网络上其它节点发送信息,而不分主从。2.CAN网络上的节点信息分为不同的优先级,可满足不同的实 时要求,高优先级的数据最多可在134s内得到传输。3.CAN采用非破坏性总线仲裁技术,当多个节点同时向总线发 送信息时,优先级较低的节点会主动退出发送,而最高优先 级的节点可不受影响的继续传输数据。4.CAN程序通过报文滤波即可实现点对点、一点对多点及全局 广播等几种方式传送接收数据,无需专门的“调度”。 5.3 CAN总线总线 的技术特点 5.CAN的直线通信距离最长可达10km(速率
12、5Kbps以下),通 信速率最高可达1Mbps(此时通信距离最长为40m)6.CAN上的节点数主要取决于总线驱动电路,目前可达128个 ;报文标识符可达2032种(CAN2.0A),而扩展标准( CAN2.0B)的报文标识符几乎不受限制。7.采用短帧结构,传输时间短,受干扰概率低,具有良好的 检错效果。5.3 CAN总线总线 的技术特点 8.CAN的每帧信息都有CRC校验及其它检错措施,保证了数 据出错率极低。9.CAN的通信介质可为双绞线、同轴电缆或光纤,选择灵 活。10.CAN节点在错误严重的情况下具有自动关闭输出的功能 ,以使总线上其它节点的操作不受限制。5.4 CAN总线的技术规范 随
13、着CAN在各种领域的应用和推广,对其通信格 式的标准化提出了要求。为此,1991年9月Philips Semiconductors制定并发布了CAN技术规范( Version 2.0)。该技术规范包括A和B两部分:1. CAN技术规范2.0A给出了报文标准格式;2. CAN技术规范2.0B给出标准和扩展的两种报文格式 。这里主要介绍CAN技术规范2.0B 5.4 CAN总线的技术规范 5.4.1 CAN的分层结构5.4.2 CAN报文传送及总线上的位电平表示5.4.3 CAN总线报文的帧结构5.4.4 错误类型和界定5.4.5 位定时与同步5.4 CAN总线总线 的技术规范 5.4.1 CAN
14、的分层结构为了使设计透明和执行灵活,遵循ISO/OSI标准模型,CAN分为数据链路层(包括逻辑链路层LLC和 媒体访问控制层MAC)和物理层,在CAN技术规范2.0A的版本中,数据链路层的LLC和MAC子层的服务和功能被描述为“目标层”和 “传输层”。 5.4 CAN总线总线 的技术规范 媒体访问控制子层MAC子层的功能主要是传送规则,以及控制帧结构、执行仲裁、错误检测、出 错标定和故障界定。MAC子层也要确定为开始一次 新的发送,总线是否开放或者是否马上开始接收, 位定时也是MAC子层的一部分。物理层的功能是有 关全部电气特性不同的节点间位的实际传送。逻辑链路子层LLC子层的主要功能是报文滤
15、波、超载通知和恢复管理。5.4 CAN总线总线 的技术规范 图图1.CAN的分层结构和功能5.4 CAN总线总线 的技术规范 5.4.2 CAN报文传送及总线上的位电平表示(1)进行数据传送时,发出报文的单元成为该报文的发送器 。 该单元在总线空闲或丢失仲裁前恒为发送器。 (2)如果一个单元不是报文发送器,并且总线不出现空闲状 态,则该单元为接收器。 对于报文接收器和发送器,报文的实际有效时刻是不同的。(1)对于发送器而言,如果直到帧结束末尾一直未出错, 则对于发送器报文有效。如果报文受损,将允许按照优先权顺 序自动重发,为了能同其它总线访问竞争,总线一旦空闲。重 发送立即开始。(2)对于报文
16、接收器而言,如果直到帧结束的最后一位一 直未出错,则对于接收器报文有效。 5.4 CAN总线总线 的技术规范 当发送器在发送的位流中检测到5为连续的相 同数值时,将自动的在实际发送的位流中插入一 个补码位。而数据帧和远程帧的其余位场则采用 固定格式,不进行填充,出错帧和超载帧同样是 固定格式。位填充规则构成一帧的帧起始、仲裁场、控制场、数 据场和CRC序列均借助位填充规则进行编码。5.4 CAN总线总线 的技术规范 报文中的位流是按照非归零(NZR)码方法编码 的,这意味着一个完整的位电平要么是显性,要么 是隐性。在“隐性”状态下,Vcanh和Vcanl被固定于平均 电压电平,Vdiff近似为零。在总线空闲或“隐性” 位期间,发送“隐性”状态。“显性”状态以大于 最小阀值的差分电压表示。如图2所示。在“显性”位期间,“显性”状态 改写“隐性”状态并发送。 5.3 CAN总线总线 的技术规范 图2.总线上的位电平表示 5.4 CAN总线总线 的技术规范 5.