车载CAN总线技术与微控制器
2013-07-13韩冬林
韩冬林
(天津中德职业技术学院,天津 300350)
一、引言
随着微控制器MCU的效能提升、价格降低及稳定性增强等决定性因素的产生,汽车产业中开始导入各种电子组件和装置来取代传统的纯机械式产品,例如采用电控燃油喷射系统来取代机械化油器,采用高速微控制器来提高急刹车缓冲装置的实时反应速度,并且在安全气囊及座椅安全带方面也有体现。汽车中还加装了许多传感器,用来追踪不同装置在温度和压力上的改变,用来在出现异常时提醒控制系统及早做出处置。为了让汽车更安全、更有效率、更可靠和更容易操控,汽车中采用的电子控制单元ECU已经越来越多,在这种情况下,各个ECU单元间的通信能力也就越来越重要。传统的配线方式不仅过于繁杂,而且会增加车体重量和配线成本,这时就出现了对先进车载总线技术的使用需求,以对复杂的电子控制单元及行车信息提供整合控制,进而实现车载控制系统网络化的理想境界。车载CAN总线技术与微控制器很好地满足了上述控制机制的要求。
二、CAN的技术特色
CAN总线具有许多优势,包括它能让设计者很容易地为CAN系统新增或移除网络中的节点,而且不会影响其他网络。CAN系统中的分散性微控制器无需依赖中央主控制器就能收发信号,从而让信号的流量管理更有效率,也有助于减少内部线路的需求。在CAN系统中,每个节点的地位是相同的,也就是说只要总线处于闲置状态,每个控制器节点都可以传送信号给任何其他的控制器。控制器所发出的每个信号都有自己的识别码,因此各个CAN节点只会接收与自己相关的信号,并忽略掉不相关的信号。更重要的是,在此机制中,当任何控制器出现故障时,系统中的其他装置仍然能够正常运作,并能保持无障碍的通信能力。在实际应用中,CAN协议通常是用来传送信号以触发某些事件,例如在急刹车时拉紧安全带或传送测量到的数据(如温度值或压力值),因此在它的定义中限定所传送的信号不会大于8个字节。它不会去中断任何进行中的通信行为,但会为发出的信号设定优先权,以避免产生信号之间的冲突,并确保优先级高的信号能够被优先传送。不仅如此,CAN协议还具备误码检查的机制,让整个通信过程更可靠。CAN总线的传输规范具有很高的效能,在CAN总线的网络中每秒可传送7600个8字节信号或1800个触发信息。
一般来说,CAN协议具有以下特性:
1.信号的优先次序。
2.对延迟时间的保证。
3.配置上的弹性。
4.提供具有时序同步性的多点传输接收功能。
5.系统级的宽数据一致性。
6.多主机架构。
7.误码侦测和误码信息。
8.当总线出现空档时,会立即自动重传损毁的信号。
9.能分辨节点的暂时性错误和永久性错误,并自动地关掉确定失常的节点。
三、CAN控制器的应用
一个CAN系统的构成中,主要的组成单元包括:CAN控制器节点、接收/传送发报器、两个数据总线的终端器(电阻器)和两条数据总线。CAN控制器节点是其中的核心单元,在车载CAN总线系统中,它可以是使用高速CAN中的汽车动力或传动机构电控单元ECU,例如汽车发动机电控单元、自动变速器电控单元、ABS电控单元、安全气囊电控单元等;也可以是使用低速CAN的车身系统,例如车门上的集控锁、车窗、行李箱锁、后视镜及车内顶灯电控单元。在具备遥控功能的情况下,CAN控制器节点还能对遥控信号进行接收处理或控制其他防盗系统。
CAN控制器节点能够实现CAN协议中的实体层及数据链接层的功能,达成位同步、优先权仲裁和误码侦测等要求。当前主流的CAN控制器大多属于增强型的2.0B型式,因为标准型的2.0A或更早的1.x型式控制器节点无法识别29位的仲裁位。其中2.0B被动型式的控制器节点可以接收这些仲裁位,并能够自动判定这些仲裁位是否正确,从而保证在高电磁干扰的车载环境中只接收正确的信息;2.0B主动型式的控制器能够自动传送和接收这些仲裁位。
在使用上,2.0B和2.0A/1.x的CAN控制器节点彼此是兼容的,只要2.0B的CAN控制器节点能够调整为不发送扩展信息的模式,2.0B和2.0A/1.x的CAN控制器节点都能在同样的CAN总线网络上一起使用。
依据信号缓冲器的数目和接收过滤器的数目不同,CAN控制器节点分为5种类型,不同类型的控制器对应着各自适合的应用领域。
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的82527CAN控制器兼容,具有14个传送/接收邮箱、一个接收FIFO和29位的识别码过滤器。FullCAN是发动机管理系统的理想选择。
5.cCAN控制器:它是新一代的FullCAN装置,有32个传送/接收邮箱,允许大量的信号被静态和自动地处理。它的接收邮箱支持FIFO模式,每个邮箱有自己的过滤器。cCAN控制器很适合高阶的网关器和动力传动的应用。
四、CAN总线典型应用电路
图1是基于MCP2515控制器(FullCAN)和MCP2551收发器的CAN总线典型应用电路原理图。MCP2515是一款独立CAN总线控制器,完全支持CAN 2.0B技术规范。MCP2515器件能发送和接收标准和扩展数据帧以及远程帧,自带的两个接收屏蔽寄存器和六个接收滤波寄存器,可以过滤掉不想要的报文,因此减少了主控制器MCU的负担,MCP2515与MCU的连接是通过标准SPI串行外设接口来实现的。MCP2551收发器是一个可容错的高速CAN接口器件,可作为CAN协议控制器和物理总线接口,MCP2551可为CAN协议控制器提供差分收发能力,它完全符合ISO-11898标准,包括能满足24V电压要求。MCP2551器件能自动检测TXD输入端的接地错误,可连接的CAN节点数高达112个。
图1 CAN总线典型应用电路原理图
五、结束语
CAN总线已经作为汽车的一种标准设备列入汽车的整体设计中,很多世界级的半导体厂商专门针对CAN总线在汽车上的应用,提出了自己的全套解决方案。在未来的汽车中,由汽车厂商和半导体厂商共同组成的团体FlexRay Consortium,致力于发展更高速的、具有容错性的、支持分布式控制系统的总线“X-by-Wire”,X-by-Wire的通信速率将达到10M。届时,X-by-Wire将和CAN总线一起组成整个汽车的通信控制网络。