首页 > 技术文章 > 硬件综合 > 汽车电子嵌入式系统设计(2)CAN Bus技术规范与控制器类型

汽车电子嵌入式系统设计(2)CAN Bus技术规范与控制器类型

52RD.com 2007年8月17日 Bruce Liu            评论:0条 我来说两句
  

ECU用量增提升车载匯流排重要性
随着微处理器/控制器的效能提升、价格降低及稳定性增高等因素,在汽车产业中也开始导入电子元件/装置来取代传统的纯机械式产品,例如用电控燃油喷射系统来取代化油器,急剎车缓冲装置(anti-lock braking system,ABS)採用了高速的微处理器来达成即时的反应速度,在安全气囊及座椅安全带方面也具备了这种功能。另外在汽车中也加装了许多的感测器,用来追踪不同装置在温度和压力上的改变,并在出现异常时提醒控制系统及早做出处置。

为了让汽车更安全、更有效率、更可靠和更容易操控,一台车体中採用的电子控制单元(Electronical Control Unit,ECU)已愈来愈多,在此情况下,各个单元间的通信接力也就愈来愈重要。传统的配线方式已显得太过复杂,而且会增加车体重量和配线成本。这时就出现了对先进车载匯流排技术的使用需求,以对复杂的电子控制单元及行车资讯提供整合控制,进而实现线传控制系统(X-by-wire)的理想境界。

在汽车中的电子化功能主要是要对车体中的各个零件及安全装置进行控制,以及为驾驶提供行车或娱乐性的资讯。不同的应用有不同的传输速率及控制机制的要求,(图一)显示目前业界常见或在发展中的几项代表性的匯流排技术,包括前文所讨论的LIN,本文要介绍的CAN,以及byteflight、FlexRay、MOST和In-vehicle等。

随着微处理器/控制器的效能提升、价格降低及稳定性增高等因素,在汽车产业中也开始导入电子元件/装置来取代传统的纯机械式产品,例如用电控燃油喷射系统来取代化油器,急剎车缓冲装置(anti-lock braking system,ABS)採用了高速的微处理器来达成即时的反应速度,在安全气囊及座椅安全带方面也具备了这种功能。另外在汽车中也加装了许多的感测器,用来追踪不同装置在温度和压力上的改变,并在出现异常时提醒控制系统及早做出处置。
为了让汽车更安全、更有效率、更可靠和更容易操控,一台车体中採用的电子控制单元(Electronical Control Unit,ECU)已愈来愈多,在此情况下,各个单元间的通讯接力也就愈来愈重要。传统的配线方式已显得太过复杂,而且会增加车体重量和配线成本。这时就出现了对先进车载匯流排技术的使用需求,以对复杂的电子控制单元及行车资讯提供整合控制,进而实现线传控制系统(X-by-wire)的理想境界。
在汽车中的电子化功能主要是要对车体中的各个零件及安全装置进行控制,以及为驾驶提供行车或娱乐性的资讯。不同的应用有不同的传输速率及控制机制的要求,(图一)显示目前业界常见或在发展中的几项代表性的匯流排技术,包括前文所讨论的LIN,本文要介绍的CAN,以及byteflight、FlexRay、MOST和In-vehicle等。
 


图一 不同匯流排技术的速度及应用定位

 
CAN协定的发展源起
控制器区域网路(controller-area-network,CAN)协定可以说是众多车载匯流排协定中最普遍被接受的标准。它具有极佳的容错能力,能够长时间在恶劣的温度、压力及粉尘环境下以高安全等级来支援分散式、关键性的即时控制,而且具备低成本和易建置的特色,因此广泛被车辆制造业所採用。
CAN序列匯流排协定是在1983年时由德国Bosch车厂于底特律的SAE(Society of Automotive Engineers)会议中提出的,从高速网路到低成本的多工绕线都是它的应用领域。由于此协定的应用性极佳,除了汽车工业外,在电梯、船只、火车、飞行器、医疗设备等等各种产业及设备中都可以见到採用CAN的控制器。
在市场的高接受度下,ISO组织在1993年11月公布11898标准,正式将CAN定义为一般性的产业标准。此后又陆续出现了CAN的延伸性标准,包括1994年在美国提出的DeviceNet,1995年欧洲所提出CANOpen,以及2000年在ISO11898-4中定义的TTCAN(Time-Triggered Transmission of CAN Messages)。其中TTCAN为排程传送CAN讯号的新协定,此一延伸性协定有助于CAN继续稳固其在市场上的领导性地位。
在CAN的规范中,又可分为高速CAN和低速CAN。高速CAN的传输率可以达到1 Mbps,适用于ABS、EMS等强调即时反应的应用;低速CAN则可达到125 Kbps,适合较低速的车体零件控制。此外,在不同的距离时,CAN的最大传输也会不同,请参考(表一)。相较于速度尽达20 Kbps的LIN协定来说,CAN快上了许多,但若与速度可达10 Mbps的FlexRay比较(双通道可达20 Mbps),那CAN只能算是中等速度。FlexRay是下一代更关键性应用的车载匯流排标准,CAN和FlexRay在特性上的差异比较,请参考(表二)。
 
Bus长度 位元速率
25m 1 Mbps
50m 800 Kbps
100m  500 Kbps
250m 250 Kbps
500m 125 Kbps
1km 50 Kbps
2.5km 20 Kbps
5km 10 Kbps

表一 CAN的最大传输速度与匯流排长度的关系
 

表二 CAN和FlexRay的特性比较表

 
CAN Bus技术特色
CAN协定具有许多优势,包括它能让设计者很容易地为CAN系统新增或移除网路中的节点,而且不会影响其他的网路。在CAN系统中的分散性微控制器并不需仰赖中央的主控制器,就能个别收发讯号,此作法让讯号的流量管理更有效率,也有助于减少内部线路的需求。
在CAN系统中,每个节点的地位是相同的,也就是说只要匯流排处于闲置状态,每个控制器节点都可以传送讯号给任何其他的控制器。控制器所发出的每个讯号都有自己的识别码(Identifier),因此各个节点会接收与自己相关的讯号,并忽略不相关的讯号。更重要的是,在此机制中,当任何控制器出现故障时,系统中的其他装置仍然能够正常的运作,并能保持无障碍的通讯能力。
在应用上,CAN协定通常是用来传送讯号以触发某些事件(例如在紧剎车时拉紧安全带),或传送量测到的数据(如温度值或压力值),因此在它的定义中限定所传送的讯号不会大于8位元组。它不会去中断任何在进行中的通讯行为,但会为发出的讯号设定优先权(priority),以避免产生讯号之间的冲突,并确保紧急的讯号能够被优先传送;不仅如此,此协定还具备了误码检查(error checking)的机制,让整个通讯过程更为可靠。此一传输规范具有很高的效能,在CAN系统中每秒可传送7600个8位元组讯号(message),或1800个触发讯息(signal)。
一般来说,CAN协定具有以下特性:
- 讯号的优先次序
- 对延迟时间的保证
- 配置上的弹性
- 提供具有时序同步性的多点传输接收功能
- 系统级的宽数据一致性
- 多主机(multimaster)架构
- 误码侦测和误码讯息(error signaling)
- 当匯流排出现空档时,会立即自动重传损毁的讯号
- 能分辨节点的暂时性错误和永久性错误,并自动的关掉确定失常的节点
 
CAN Bus协定介绍
CAN协定是参考ISO/OSI的七层协定模式而做定义的,但因它主要是用来传送简短且简单的讯号,而且是一封闭性的系统,并不需要负责系统的安全、产生用户介面的资料,以及监控网路的登入等动作,因此只涉及了实体层(Physical Layer)和数据链结层(Data Link Layer)的定义。

■实体层规范特性
实体层负责的是网路中节点与节点之间的连结,以及在铜线、同轴缆线、光纤,甚至是无线讯号的实际电性脉冲传送。传送器(transmitter)的实体层会将从数据链结层来的数据转换为电子讯息,再传送出去;在接收端,实体层将这些电子讯息传换为数据格式,再传送到数据链结层。
在一个网路系统中,要确保各个节点之间能够顺利的沟通,先决条件是每个节点的实体层特性必须是相同的,而CAN实体层的作用就在于规范位元表示法(bit representation)、位元时序及同步性(bit timing and synchronization),通常还包括脚位连接器和接线的型式。CAN藉由两条序列匯流排(CAN_H and CAN_L)即时传输资料,传输速率可高达1M bits/sec。理论上,每个CAN匯流排最多可连结2032个节点,但受限于收发器的功能,实际运用上最多大约可连结100个节点,而在一般的运用上则大约是连结3到10个节点。CAN实体层示意图请见(图二)。


图二 CAN实体层架构示意图

■数据链结层规范特性:匯流排仲裁
CAN数据链结层可以说是CAN功能的核心,其目的在于建立数据讯框(data frame)封包,在讯框内包含数据和控制资料。在数据链结层中的主要功能之一,就是当系统中出现有两个讯号同时想使用网路中的相同资源时,如何防止冲突的发生,这就是所谓MAC(Medium Access Control)的功能。在CAN协定中,MAC功能会让具有最高优先权的数据讯框先使用匯流排的网路资源,此机制对于网路效能的影响很大。
在网路的接取控制上有两大方向,一是先决式(determined),一是随机式(random)。在先决式的接取控制中,匯流排的使用权必须在节点接取匯流排前就预先定义好了,以确保不会发生任何冲突。此类的网路需要一个中央管控的装置来进行网路管理,但一旦此装置失常,整个网路就无法运作了;也有非中心化的架构,但相对上会复杂许多。
在随机式的接取控制中,当匯流排闲置时,每个节点都能够要求使用网路资源。最常见的随机式接取控制方式是载波侦测多重存取(Carrier Sense Multiple Access,CSMA) ,CSMA又分成限制或防止讯号碰撞的CSMA/CA方式,和允许碰撞再进行处置的CSMA/CD方式。由于CSMA/CD较浪费频宽资源及会产生较长的延迟性,CAN採用的是CSMA/CA的方式,此作法又称为非破坏性的按位元仲裁(Non-Destructive Bit-Wise Arbitration)机制。
CAN协定让优先权较高的讯号先接取使用匯流排资源,在每个讯号讯框的一开始处就存在有仲裁域(Arbitration Field),仲裁域中有一个识别码(Identifier),当识别码的数值愈小时,表示其优先权限愈高。此作法能有效的利用匯流排资源,其具有最高优先权的讯号,最大的延迟时间大约只有150ms。
在CAN的2.0A标准中,一开始定义识别码(identifier)的长度为11位元,后来因市场的需求又提出了延伸性的2.0B版本。2.0B的格式通常被称为延伸性CAN(Extended CAN),它允许29位元的识别码,而且又主动及被动式两种:2.0B active,也就是能收、发延伸讯框的节点;以及2.0B passive,它会放弃掉接收到的延伸讯框。2.0B的29位元识别码能够提供512,000,000个独特的讯号及优先等级,足以因应来自愈来愈多节点的大量存取要求。

■数据链结层规范特性:讯框格式
所谓的讯框即是包含由传送器送出的完整讯号的资料封包。在CAN协定中具有四种讯框:数据讯框(Data Frame)、远端讯框(Remote Frame)、误码讯框(Error Frame)及额外负载讯框(Overload Frame)。以下主要看看数据讯框的组成。
数据讯框包含了识别码和各种控制资讯,以及最多8位元组的数据。其基本组成包括:讯框开始(Start of Frame)、仲裁域(又包括识别码和RTR)、控制域(Control Field)(又包括IDE、r0和数据长度码)、数据域(Data Field)、循环冗余码检验(Cyclic Redundancy Check,CRC)域、确认域(Acknowledgement Field),以及讯框终点(End of Frame)等。请参考(图三)。
 

图三 延伸型CAN的数据讯框组成架构

其中控制资讯是用来识别讯框、决定对匯流排的使用,以及进行误码侦测。控制资讯的另一项主要功能,就在于能够分辨出某一讯号是否已损毁了。当数据在任何网路中传送时,随机性的误码是很常见的,所以数据链结层的重要任务之一,就是要限制这类错误的发生。
CAN的特色之一,就是五种方式来进行误码侦测,进而能掌控错误的发生。这五种方式包括:位元检验(Bit Check)、讯框检验(Frame Check)、循环冗余码检验(CRC)、确认检验(Acknowledement Check)及填充规则检验(Stuff Rule Check)。透过这些方式,CAN系统中未被发现的错误发生率能够有效地被降低到4.7 x 10-11。
此外,当损毁的讯号被发现后,侦测到错误的节点会对这个讯号做记号(flag),其它节点会忽视这些讯号,并等待正码讯号再被重传。如果没有更多的错误出现,从侦测到重传的恢復时间是29个位元时间。

 
CAN控制器的应用
一个CAN系统的建置中,主要的组成单元包括:控制器节点、接收/传送发报器、两个数据匯流排的终端器(电阻器)和两条数据匯流排线。控制器当然是其中的核心单元,在车载系统中,它可以是使用高速CAN中的汽车动力或传动机构控制单元,例如汽车发动机控制单元、自动变速器控制单元、ABS控制单元、安全气囊控制单元等;也可以是使用低速CAN的车身系统,例如车门上的集控锁、车窗、行李箱锁、后视镜及车内顶灯。在具备遥控功能的情况下,CAN控制器还能对遥控信号进行接收处理,或控制其他防盗系统。
CAN控制器能够实现上述CAN协定中的实体层及数据链结层的功能,达成位元同步、优先权仲裁和误码侦测等要求。今日的CAN控制器大多是延伸型的2.0B型式,因为标准型的2.0A或更早的1.x型式控制器无法识别29位元的仲裁位元。其中2.0B passive型式的控制器可以接受这些仲裁位元,确认它们是否正确,再加以放弃;2.0B active型式的控制器就能传送和接收这些位元。
在使用上,2.0B和2.0A/1.x的控制器彼此是相容的,只要2.0B的控制器能够调整为不送延伸讯框的模式,大家都能在同样的匯流排上一起使用。虽然有人指出2.0B的延伸型CAN会产生较多的overhead,因此认为标准型比延伸型更好。但事实上,当使用仲裁域来传送数据时,延伸型CAN产生的overhead其实比标准型还要低。
就2.0B CAN控制器的型式,还有许多的选择。以ST的CAN控制器来说,就依讯号缓冲的数目和接收过滤器的数目不同,而分为五种类型的控制器,不同的类型又有其适合的应用领域,请参考(图四)和(表三):
1. pCAN(passive CAN) :支援2.0B被动协定,它有三个传送/接收mailbox和两个讯号识别码过滤器、两个中断向量(interrupt vector),并支援低功耗模式。
2. beCAN (basic-enhanced) :支援2.0B主动协定,它有两个优先传送mailbox和一个接收FIFO,有助于即时性的表现。有四个可延展和可配置的过滤器,用来处理所有的讯号,由于是透过硬体来过滤,所以能将对CPU的负载需求降到最小。beCAN对媒介复杂度高的车体及汽车无线系统来说是很理想的选择。
3. bxCAN (basic-extended):它有beCAN的各种特性,但还多了三个传送mailbox、两个独立的接收FIFO和八个过滤器。它为高阶车体及低阶闸道器等应用做了最佳化的设计。
4. FullCAN:它和Intel的82527 CAN控制器相容,具有14个传送/接收mailbox、一个接收FIFO和29位元的识别码过滤器。FullCAN是引擎管理系统的理想选择。
5. cCAN:它是新一代的FullCAN建置。它有32个传送/接收mailbox,允许大量的讯号被静态和自动地处理。它的接收mailbox支援FIFO模式,每个mailbox有自己的过滤器。cCAN很适合高阶的闸道器和power train的应用。

图四 依讯号缓冲及接收过滤器数目而区分的CAN控制器型式

控制器等级 一般用途 CAN 支援功能
8-bit
(ST7 Family)
各种中阶应用 pCAN
beCAN
8/16-bit
(ST9 Family)
适合车体和中阶工业控制系统 bxCAN
16-bit
(ST10 Family)
适合引擎控制系统、汽车音响系统和工业控制系统 Full CAN
32-bit  适合仪表板、安全气囊、动力系统 cCAN

表三 不同等级CAN控制器的用途比较表

 

本文章来源自 EEDesign电子设计资源网
附上网站连结:http://www.eedesign.com.tw
未经授权同意请勿擅自转载或节录。

(52RD.com)

(52RD.com)
读取...
相关报道
评 论
文章导航 Navigation
精彩评论 Commentmore...
赞助商链接 Support
特别推荐 Recommend
彩票开奖查询 甘肃11选5-首页 500万彩票网 500万彩票网 500万彩票网 500w彩票 500万彩票网 500万彩票网 500w彩票 500w彩票 <波克棋牌>| <武动乾坤>| <重生小说打包下载>| <小说无弹窗免费阅读>| <斗牛棋牌>| <豆豆小说网 言情小说>| <修真者穿越玩网游>| <58免费小说阅读网>| <一女多男np穿越小说>| <都市玄幻小说完本>| <520免费小说阅读网>| <完美世界小说txt奇书>| <bl高h文 书包网>| <完美世界小说txt下载>| <穿越之神医王妃>| <完美世界 起点5200>| <斗牛棋牌>| <波克棋牌>| <飞卢小说网>| <天才儿子腹黑娘亲>| <完美世界小说下载燃文>| <完美世界小说顶点阅读>|