自学工业控制网络之路1.4-典型的现场总线介绍CAN
自学工业控制网络之路1.4-典型的现场总线介绍CAN
1991年3月,发布了CAN技术贵干v2.0,包含了A、B两部分。CAN2.0A给出报文标准格式,CAN2.0B给出了标准和扩展的两种格式。
1993年11月,国际标准ISO11898(高速应用)和ISO11519(低速应用)。
1. CAN特点
(1)它是一种多主总线,即每个节点机均可成为主机,且节点机之间也可进行通信。
(2)通信介质可以是双绞线、同轴电缆或光导纤维,通信速率可达1Mb/s(此时距离最长40m)。
(3)CAN总线通信接口中集成了can协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余校验、优先级判别等项工作。
(4)CAN协议的一个最大特点是废除了传统的站地址编码,雨代之以对通信数据块进行编码。采用这种方法的优点是可使网络内的节点个数在理论上不受限制,数据块的标识码可由11位或29位二进制数组成,因此可以定义211或229个不同的数据块,这种数据块编码方式,还可使不同的节点同时接收到相同的数据,这一点在分步式控制中非常重要。
(5)短帧结构。数据段长度最多为8个字节,可满足通常工业领域中控制命令、工作状态及测试数据的一般要求。同时,8个字节不会占用总线时间过长,从而倮证了通信的实时性。
(6)CAN协议采用crc检验并可提供相应的错误处理功能,保证了数据通信的可靠性。can总线所具有的卓越性能、极高的可靠性和独特设计,特别适合工业设各测控单元互连。因此备受工业界的重视,并已公认为最有前途的现场总线之一。
(7)采用非破坏性位仲裁总线结构机制,当两个节点同时向网络上传送信息时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响地继续传送数据。
(8)节点数最多可达110个。
(9)CAN总线不能用于防爆区。
(10)节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上的其他操作不受影响。
2. CAN原理
2.1 CAN 总线原理
CAN总线以广播的方式从一个节点向另一个节点发送数据,当一个节点发送数据时,该节点的CPU把将要发送的数据和标识符发送给本节点的CAN芯片,并使其进入准备状态;一旦该CAN芯片收到总线分配,就变为发送报文状态,该CAN芯片将要发送的数据组成规定的报文格式发出。此时,网络中其他的节点都处于接收状态,所有节点都要先对其进行接收,通过检测来判断该报文是否是发给自己的。
由于CAN总线是面向内容的编址方案,因此容易构建控制系统对其灵活地进行配置,使其可以在不修改软硬件的情况下向CAN总线中加入新节点。
2.2 CAN 控制器原理
其中CAN核心模块根据CAN总线协议控制数据帧的发送和接收;
接口管理逻辑模块提供SJA1000与主微处理器或其它设备的连接,主微处理器可以通过数据/地址复用总线和读写控制逻辑访问SJA1000的所有寄存器;
发送缓冲区可以存储一个完整的标准或扩展的报文,当主微处理器要求SJA1000发送报文时,接口管理逻辑操纵CAN核心模块将发送缓冲区中的报文发送到CAN总线上;
当接收一个报文时,CAN核心模块首先将总线上的串行位流数据转换位并行数据,然后交给接收过虑模块进行识别,决定该报文是否为主微处理器所要求的报文类别,所有接收的报文可以存放在接收先进先出队列,根据不同的工作模式和数据长度,该队列可以存放最多32个报文,然后用户可以灵活地对报文分为不同地优先级和中断处理服务。
3. CAN现场总线体系结构
CAN分为物理层和数据链路层。
(1)物理层
规定了节点的全部电气特性,信号如何发送,因而涉及位定时、位编码和同步的描述。
(2)数据链路层
数据链路层分两个子层,逻辑链路控制子层LLC和媒体访问控制子层MAC。
4. CAN现场总线的优点
● 具有实时性强、传输距离较远、抗电磁干扰能力强、成本低等优点;
● 采用双线串行通信方式,检错能力强,可在高噪声干扰环境中工作;
● 具有优先权和仲裁功能,多个控制模块通过CAN 控制器挂到CAN-bus 上,形成多主机局部网络;
● 可根据报文的ID决定接收或屏蔽该报文;
● 可靠的错误处理和检错机制;
● 发送的信息遭到破坏后,可自动重发;
● 节点在错误严重的情况下具有自动退出总线的功能;
● 报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息。
5. CAN现场总线的缺点
(1)不一致性
CAN总线中有一个著名的Last-But-One-Bit 错误。CAN总线2 OA在信息认证(MessageValidaTIon)中规定: 发送器验错的范围可覆盖到帧结束,如果发现错误,以后就按优先权和状态的规定重发; 接 器验错的范围覆盖到帧结束的前一位。因此,如果由于空间干扰、电 源波动等原因,对于帧的倒数第二位,一部分节点A认为无错,一 部分节点B 认为有错,即出现了所谓的ByzanTIne 错误。这时,根 EOF 应该是7 个隐性位,节点B 认为这是一种形式错误,所以就会启动错误帧,通知发送器重发,同时丢弃收到的帧。而认为设错的节点A 由于只查到倒数第二位,因此就会接收此帧。如果在发送器例行的下一次发送前B 通知的重发成功,A就会收到重复帧; 如果重发不成功,B 就丢了一帧。在转向和制动系统中,4 个轮子对命令的不同理解,可能造成性能的下降或其他更严重的后果。
(2)不可预测性
CAN总线将节点状态分为ErrorAcTIve、Error Passive 和Bus Off 三种,这三种状态在一定条件下可以互相转换。不同状态中节点的发送有不同的延迟。最高优先权的信息发送延迟有几种可能: 当节点状态为ErrorAcTIve 时,若总线空闲,则立即发送; 当节点状态为ErorActive时,如果其它帧正在发送,则需等正在发送的报文结束后,再过3 位后发送; 当节点状态为ErrorPassive 时,它有一个出错重发的要求,若没有其它帧要发送,等3 位传送(Intemission)和8 位挂起传送(Suspend Transmission)后重发; 当节点状态为Error Passive时,若总线空闲,出错后等别的信息发送完后再发,等待时间与其它帧的长度有关; 当节点状态为Bus Off 时,需等状态恢复到ErrorPassive 或ErrorActive 再发。
当确认某节点的状态时,还有几个因素需要考虑: 首先,节点由最高优先权的信息和其他信息共用,因此,其他信息在传送过程中出现的错误也会影响到节点状态; 其次,进入ErrorPassive 或BusOff 状态的条件是发送错误计数器与/或接收错误计数器的值,由于CAN 的原子广播特点,其它节点的发送错误或接收错误会开启一个错误帧,从而影响到该节点的接收错误计数器的值,进而影响节点状态。
对于优先权较低的信息来说,发送时间的离散程度更大。在反馈控制系统中,采样调节周期的大范围抖动相当于信号延迟后的变化,它有可能使系统性能下降或不稳定。在与安全相关的开环系统中,抖动可能造成动作顺序的混乱。
(3)信道出错堵塞
节点有可能受干扰或其它原因暂时或永久失效,出错的主机会命令CAN 收发器不断发送消息,即所谓的Babbling ldiot 错误。由于该信息的格式等均合法,因此CAN 没有相应的机制来处理这种情况。根据CAN 的优先权机制,比它优先权低的信息就被暂时或永久堵塞。由于CAN总线存在上述几种根本的缺陷,因此,在更为严格的控制系统中,它将会造成巨大的风险,无法满足安全、环保、节能的要求。CAN 的事件触发协议特点限制了ECU 的应用、开发与生产,不仅用过的ECU 难于重用,而且还不利于改善和开发新的ECU。
作者:CARLOS_CHIANG
出处:http://www.cnblogs.com/yaoyaojcy/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
posted on 2018-08-07 14:58 CARLOS_KONG 阅读(882) 评论(0) 编辑 收藏 举报