什么是CAN总线协议?看完保证你秒懂!
扫描二维码
随时随地手机看文章
在这篇文章中,小编将为大家带来CAN总线协议的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。
一、CAN总线协议及其发展
控制器局域网总线(CAN,Controller Area Network)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一。CAN协议用于汽车中各种不同元件之间的通信,以此取代昂贵而笨重的配电线束。该协议的健壮性使其用途延伸到其他自动化和工业应用。CAN协议的特性包括完整性的串行数据通讯、提供实时支持、传输速率高达1Mb/s、同时具有11位的寻址以及检错能力。
控制器局域网CAN( Controller Area Network)属于现场总线的范畴,是一种有效支持分布式控制系统的串行通信网络。是由德国博世公司在20世纪80年代专门为汽车行业开发的一种串行通信总线。由于其高性能、高可靠性以及独特的设计而越来越受到人们的重视,被广泛应用于诸多领域。而且能够检测出产生的任何错误。当信号传输距离达到10km时,CAN仍可提供高达50kbit/s的数据传输速率。由于CAN总线具有很高的实时性能和应用范围,从位速率最高可达1Mbps的高速网络到低成本多线路的50Kbps网络都可以任意搭配。因此,CAN己经在汽车业、航空业、工业控制、安全防护等领域中得到了广泛应用。
随着CAN总线在各个行业和领域的广泛应用,对其的通信格式标准化也提出了更严格的要求。1991年CAN总线技术规范(Version2.0)制定并发布。该技术规范共包括A和B两个部分。其中2.0A给出了CAN报文标准格式,而2.0B给出了标准的和扩展的两种格式。美国的汽车工程学会SAE在2000年提出了J1939协议,此后该协议成为了货车和客车中控制器局域网的通用标准。CAN总线技术也在不断发展。传统的CAN是基于事件触发的,信息传输时间的不确定性和优先级反转是它固有的缺陷。当总线上传输消息密度较小时,这些缺陷对系统的实时性影响较小;但随着在总线上传输消息密度的增加,系统实时性能会急剧下降。为了满足汽车控制对实时性和传输消息密度不断增长的需要,改善CAN总线的实时性能非常必要。于是,传统CAN与时间触发机制相结合产生了TTCAN(Time-Triggered CAN),ISO11898-4己包含了TTCAN。 TTCAN总线和传统CAN总线系统的区别是:总线上不同的消息定义了不同的时间槽(Timer Slot)。
二、CAN总线协议之数据帧
在 CAN 协议中,数据帧和遥控帧有着诸多相同之处,将数据帧和遥控帧放在一起来讲。数据帧是指包含了要传输的数据的帧,作用是承载发送节点要传递给接收节点的数据。遥控帧的作用:请求其它节点发出与本遥控帧具有相同 ID 号的数据帧。发起方发起特定ID的遥控帧,并且只发送ID部分,那么与其 ID相符的终端设备就有义务在后半段的数据部分接管总线控制权并发送自己的数据。 例如中控机需要定时获取某个节点的数据(例如转速计的实时转速、油量计的实时油量等),可以向总线发送远程帧;相应节点在接收判断帧 ID与自己相符、并且是远程帧的情况下,就可以将自己的实时数据发送到总线上;这样中控机就获取到了相关节点的实时数据。远程帧最大的好处就是只需要一帧的时间就能完成一次双向交互。两种帧格式由帧起始、仲裁帧、控制端、数据段、CPC 段、ACK 段、帧结束, 不同的段有不同的用途。
1、起始段
帧的最开始的一位是帧起始,也叫 SOF(Start Of Frame),SOF 恒为显性位,即逻辑0。帧起始表示CAN_H和CAN_L上有了电位差,也就是说,一旦总线上有了 SOF 就表示总线上开始有报文了。
2、仲裁段
CAN 总线有一个特点,就是所有节点均可以获得总线的控制权并且向 CAN 总线发送数据,当同时有 2 个或 2 个以上的设备要求发送数据时,就会产生总线冲突,这时就需要判断一个先后顺序,而仲裁段就是判断先后顺序的裁判员,仲裁段会对 CAN 数据进行比较,ID 码值越小的数据越具有优先权,从而使具有高优先级的数据不受任何损坏地传输。
总线中的信号持续跟踪最后获得总线控制权发出的报文,在这里值得注意的是,CAN 总线的这种仲裁方式优点在于,无论是总线的控制权在哪个节点,CAN 总线传输的报文已经在总线上传输了。 因此,CAN 总线具有高优先级的节点的数据在传输时,没有任何延迟,在获得总线控制权的节点发送数据过程中,其他节点成为报文的接收节点,并且不会在总线再次空闲之前发送报文。
以上便是小编此次想要和大家共同分享的有关CAN总线协议的内容,如果你对本文内容感到满意,不妨持续关注我们网站哟。最后,十分感谢大家的阅读,have a nice day!