随着微处理器及控制器的效能提升、价格降低及稳定性增高等因素的产生,汽车产业中也开始导入电子组件和装置来取代传统的纯机械式产品,例如用电控燃油喷射系统来取代化油器,急刹车缓冲装置采用高速的微处理器来达成实时的反应速度等,这在安全气囊及座椅安全带方面也有所体现。另外在汽车中也加装了许多传感器,用来追踪不同装置在温度和压力上的改变,并在出现异常时提醒控制系统及早做出处置。
为了让汽车更安全、更有效率、更可靠和更容易操控,一台车体中采用的电子控制单元已越来越多。在这种情况下,各个单元间的通信通力也就越来越重要。传统的配线方式已显得过于复杂,而且会增加车体重量和配线成本。这时就出现了对先进车载
总线技术的使用需求,以对复杂的电子控制单元及行车信息提供整合控制,进而实现线传控制系统的理想境界。
在汽车中的电子化功能主要是要对车体中的各个零件及安全装置进行控制,以及为驾驶提供行车或娱乐性的信息。不同的应用有不同的传输速率及控制机制的要求。目前业界常见或在发展中的几项代表性的总线技术如图1所示。
图1 不同总线技术的速度及应用定位
CAN的技术特色
CAN协议具有许多优势,包括它能让设计者很容易地为CAN系统新增或移除网络中的节点,而且不会影响其他网络。CAN系统中的分散性微控制器无需依赖中央的主控制器就能收发信号,从而让信号的流量管理更有效率,也有助于减少内部线路的需求。
在CAN系统中,每个节点的地位是相同的,也就是说只要总线处于闲置状态,每个控制器节点都可以传送信号给任何其他的控制器。控制器所发出的每个信号都有自己的识别码,因此各个节点会接收与自己相关的信号,并忽略不相关的信号。更重要的是,在此机制中,当任何控制器出现故障时,系统中的其他装置仍然能够正常运作,并能保持无障碍的通信能力。
在应用上,CAN协议通常是用来传送信号以触发某些事件,例如在急刹车时拉紧安全带或传送测量到的数据(如温度值或压力值),因此在它的定义中限定所传送的信号不会大于8字节。它不会去中断任何进行中的通信行为,但会为发出的信号设定优先权,以避免产生信号之间的冲突,并确保紧急的信号能够被优先传送。不仅如此,此协议还具备误码检查的机制,让整个通信过程更可靠。此传输规范具有很高的效能,在CAN系统中每秒可传送7600个8字节信号或1800个触发信息。
一般来说,CAN协议具有以下特性:
□ 信号的优先次序;
□ 对延迟时间的保证;
□ 配置上的弹性;
□ 提供具有时序同步性的多点传输接收功能;
□ 系统级的宽数据一致性;
□ 多主机架构;
□ 误码侦测和误码信息;
□ 当总线出现空档时,会立即自动重传损毁的信号;
□ 能分辨节点的暂时性错误和永久性错误,并自动地关掉确定失常的节点。
CAN协议介绍
CAN协议是参考ISO/OSI的7层协议模式而做定义的,但因它主要是用来传送简短且简单的信号,而且是一封闭性的系统,并不需要负责系统的安全、产生用户接口的数据,以及监控网络的登入等动作,因此只涉及了实体层和数据链接层的定义。
1、实体层规范特性
实体层负责的是网络中节点与节点之间的连结,以及在铜线、同轴缆线、光纤,甚至是无线信号的实际电性脉冲传送。传送器的实体层会把从数据链接层来的数据转换为电子信息,再传送出去;在接收端,实体层将这些电子信息传换为数据格式,再传送到数据链接层。
在一个网络系统中,要确保各个节点之间能够顺利地沟通,先决条件是每个节点的实体层特性必须是相同的,而CAN实体层的作用就在于规范位表示法、位时序及同步性,通常还包括脚位连接器和接线的型式。CAN由两条序列总线(CAN_H和CAN_L)实时传输数据,传输速率可高达1Mb/s。理论上,每个CAN总线最多可连结2032个节点,但受限于收发器的功能,实际运用上最多大约可连结100个节点,而在一般的运用上则大约是连结3~10个节点。CAN实体层示意图如图2所示。
图2 CAN实体层架构示意图
2、数据链接层规范特性:总线仲裁
CAN数据链接层可以说是CAN功能的核心,其目的在于建立数据信框封包,在信框内包含数据和控制数据。数据链接层的主要功能之一,就是当系统中出现两个信号同时想使用网络中的相同资源时,如何防止冲突的发生。这就是所谓MAC(Medium Access Control)功能。在CAN协议中,MAC功能会让具有最高优先权的数据信框优先使用总线的网络资源,此机制对于网络效能的影响很大。
在网络的接取控制上有两大方向,即先决式和随机式。在先决式的接取控制中,总线的使用权必须在节点接取总线前就预先定义好了,以确保不会发生任何冲突。此类网络需要一个中央管控装置来进行网络管理,但一旦此装置失常,整个网络就无法运作;也有非中心化的架构,但相对会复杂许多。
在随机式接取控制中,当总线闲置时,每个节点都能够要求使用网络资源。最常见的随机式接取控制方式是载波侦测多重存取(Carrier Sense Multiple Access,CSMA),CSMA又分成限制或防止信号碰撞的CSMA/CA方式和允许碰撞再进行处置的CSMA/CD方式。由于CSMA/CD较浪费频宽资源及会产生较长的延迟性,因此CAN采用的是CSMA/CA的方式,此作法又称为非破坏性的按位仲裁机制。
CAN协议让优先权较高的信号先接取使用总线资源,在每个信号信框的一开始处就存在仲裁域,仲裁域中有一个识别码,识别码的数值越小,表示其优先权限越高。此作法能有效地利用总线资源,其具有最高优先权的信号,最大的延迟时间大约只有150ms。
在CAN的2.0A标准中,一开始定义识别码的长度为11位,后来因市场的需求又提出了延伸性的2.0B版本。2.0B的格式通常被称为延伸性CAN,它允许29位的识别码,而且有主动及被动式两种:2.0B主动,也就是能收、发延伸信框的节点;以及2.0B被动,它会放弃掉接收到的延伸信框。2.0B的29位识别码能够提供51200万个独特的信号及优先等级,足以满足来自越来越多节点的大量存取要求。
三、数据链接层规范特性:信框格式
所谓的信框即包含由传送器送出的完整信号的数据封包。在CAN协议中具有4种信框,即数据信框、远程信框、误码信框及额外负载信框。以下主要介绍数据信框的组成。
数据信框包含了识别码和各种控制信息,以及最多8字节的数据。其基本组成包括:信框开始、仲裁域(又包括识别码和RTR)、控制域(又包括IDE、r0和数据长度码)、数据域、循环冗余码检验域、确认域,以及信框终点等,如图3所示。
图3 延伸型CAN的数据信框组成架构
其中控制信息是用来识别信框,决定对总线的使用,以及进行误码侦测。控制信息的另一项主要功能,就在于能够分辨出某一信号是否已损毁了。当数据在任何网络中传送时,随机性的误码是很常见的,所以数据链接层的重要任务之一,就是要限制这类错误的发生。
CAN的特色之一,就是可以通过5种方式来进行误码侦测,进而能掌控错误的发生。这5种方式包括:位检验、信框检验、循环冗余码检验、确认检验和填充规则检验。透过这些方式,CAN系统中未被发现的错误发生率能够有效地被降低到4.7×10-11。
此外,当损毁的信号被发现后,侦测到错误的节点会对这个信号做记号,其他节点会忽视这些信号,并等待正码信号再被重传。如果没有更多的错误出现,从侦测到重传的恢复时间是29个位时间。
CAN控制器的应用
一个CAN系统的建置中,主要的组成单元包括:控制器节点、接收/传送发报器、两个数据总线的终端器(电阻器)和两条数据总线。控制器当然是其中的核心单元,在车载系统中,它可以是使用高速CAN中的汽车动力或传动机构控制单元,例如汽车发动机控制单元、自动变速器控制单元、ABS控制单元、安全气囊控制单元等;也可以是使用低速CAN的车身系统,例如车门上的集控锁、车窗、行李箱锁、后视镜及车内顶灯。在具备遥控功能的情况下,CAN控制器还能对遥控信号进行接收处理,或控制其他防盗系统。
CAN控制器能够实现上述CAN协议中的实体层及数据链接层的功能,达成位同步、优先权仲裁和误码侦测等要求。今天的CAN控制器大多是延伸型的2.0B型式,因为标准型的2.0A或更早的1.x型式控制器无法识别29位的仲裁位。其中2.0B被动型式的控制器可以接受这些仲裁位,确认它们是否正确,再加以放弃;2.0B主动型式的控制器能传送和接收这些位。
在使用上,2.0B和2.0A/1.x的控制器彼此是兼容的,只要2.0B的控制器能够调整为不送延伸信框的模式,大家都能在同样的总线上一起使用。就2.0B CAN控制器的型式来讲,还有许多选择。以意法半导体(ST)的CAN控制器来说,就依信号缓冲的数目和接收过滤器的数目不同而分为5种类型,不同的类型又有其适合的应用领域,如图4和下表所示:
图4 依信号缓冲及接收过滤器数目而区分的CAN控制器型式
1、pCAN(passive CAN):支持2.0B被动协议,它有3个传送/接收邮箱和2个信号识别码过滤器、2个中断向量,并支持低功耗模式;
2、beCAN(basic-enhanced):支持2.0B主动协议,它有2个优先传送邮箱和1个接收
FIFO,有助于实时性的表现;有4个可延展和可配置的过滤器,用来处理所有的信号,由于是透过硬件来过滤,所以能将对CPU的负载需求降到最小。beCAN对媒介复杂度高的车体及汽车无线系统来说是很理想的选择;
3、bxCAN(basic-extended):它有beCAN的各种特性,但还多了3个传送邮箱、2个独立的接收FIFO和8个过滤器。它为高阶车体及低阶网关器等应用做了最佳化的设计;
4、FullCAN:它和Intel的82527 CAN控制器兼容,具有14个传送/接收邮箱、一个接收
FIFO和29位的识别码过滤器。FullCAN是引擎管理系统的理想选择。
5、cCAN:它是新一代的FullCAN装置,有32个传送/接收邮箱,允许大量的信号被静态和自动地处理。它的接收邮箱支持FIFO模式,每个邮箱有自己的过滤器。cCAN很适合高阶的网关器和动力传动的应用。(e