“通过对汽车总成控制器的CAN总线系统智能节点的研究,建立了汽车控制系统通讯网路的模型,为整车开发奠定了基础。目前利用该智能节点已经完成了总成控制器与其它ECU单元之间的通讯测试。测试结果充分表明:所设计的智能节点完全符合总成控制的需要.具有较好的推广价值。
”作者:郑凯,赵宏伟
引言
CAN(Controll Area Network)即为控制器局域网,是世界上应用最为广泛的现场总线之一。它最早由德国Bosh公司率先提出,主要用于解决现代汽车中众多的控制与测试仪器之间的数据交换问题。CAN总线规范已经被ISO国际标准组织制定为国际标准IS011898(高速应用)和IS011519(低速应用),得到了Motorola、Intel、Philips、Siemence、NEC等公司的支持。由于CAN总线具有很多优越的性能,因此它在汽车工业、航空工业、工业控制、安全防护等众多领域中得到了广泛应用。目前CAN总线系统以其高性能和高可靠性,在汽车总成控制器的开发中占据了重要的位置。CAN总线系统智能节点设计的工作重点集中在节点的硬件系统设计和软件系统设计上。本文以国家863高技术发展计划电动汽车重大专项为依托,围绕混和动力汽车总成控制器进行CAN总线系统智能节点设计。
1 智能节点体系结构
1.1 技术特点
CAN总线与其他通讯网络的不同之处在于:报文传送中不包括目标地址,以全网广播为基础,各接收站根据报文中反映数据的性质的标识符过滤报文;强化了对数据安全性的关注,满足控制系统较高的数据需求。它具有如下显著特征:极高的总线利用率、低成本、高速的数据传输速率、远距离传输、可靠的错误处理和检错机制、可根据报文的ID决定接收或屏蔽该报文、节点在错误严重的情况下具有自动退出总线的功能等等。
1.2 体系结构
CAN层的定义与开放系统互连模型(GSI)一致。每一层与另一设备上相同的那一层通讯。实际的通讯发生在每一设备上相邻的两层,而设备只通过模型物理层的物理介质互连。CAN的规范定义了模型的最下面两层:数据链路层和物理层。应用层协议可以由CAN用户定义成适合特别工业领域的任何方案。另外,CAN还能使用多种物理介质,如双纹线、光纤等,其中最常用的是双绞线。信号使用差分电压传送,两条信号线被称为“CAN_H”和“CAN_L”,静态时均是2.5V左右,此时状态表示为逻辑“1”,也可以叫做“隐性”。用CAN_H比CAN.L高表示逻辑“0”,称为“显形”,通常电压值为:CAN_H=3.5V和CAN_L=1.5V。
1.3 智能节点网络模型
在汽车总成控制系统中,各个ECU(Electrcnic Control Unit)单元之间的通讯都是通过CAN总线来实现的。CAN总线智能节点设计的好坏将直接决定控制单元之间通讯信息的可靠性。智能节点主要由微控制器,CAN控制器和CAN收发器构成。
微控制器主要利用CAN控制器来接收数据,并进行数据处理,然后将处理结果通过CAN控制器和CAN收发器发送给其它的节点。根据软件设计的需要,采用Motorola公司推出的32位高性能微控制器MPC565作为智能节点的控制中枢。该控制器具有快速数据处理、高速可靠通讯和强抗干扰性等显著特点。在CAN总线系统设计中得到了广泛应用。
CAN控制器主要执行在CAN规范中所定义的CAN通讯协议,通常用于信息缓冲和验收滤波。在该系统中采用MPC565提供的高性能CAN控制器模块ToLuCAN进行节点设计。TouCAN模块是一个高速的(高传输率IMBiffSec),短距离的,可在不同介质上通讯的CAN控制器。它不但在控制器局域网中采用CAN2.0B通讯协议实现与其它ECU单元之问的异步通讯,而且还拥有消息滤波功能的屏蔽寄存器,将接收的消息ID与选定的消息缓冲区ID进行比较,如果存在一个匹配,那么该消息即可被接收,其主要特点如下:
(1)完全符合CAN通讯协议标准,传输率最多同达到1Mbit/sec。
(2)可通过编程来设置传送消息的具体方案,即从最低的ID号开始传送消息或者从最低消息缓冲区号开始传送消息。
(3)采用开放式网络结构,具有独立的传输介质(外部直接连接CAN总线收发器)。
CAN收发器用于建立CAN控制器和物理总线之间的连接,控制逻辑电平信号从CAN控制器到达物理总线的物理层,反之亦然。在智能节点系统中.CAN收发器采用的是PHILIPS公司推出的PCA82C250芯片。它是一种先进的CAN总线收发器,不仅能够对总线提供差动发送能力和对CAN控制器提供差动接收能力,而且扩展的普通模式范围(-7V.+12V)和斜率控制功能使电磁兼容EMC性能增强。另外它还可以防止总线输出短路和一般控制环境中的瞬变现象,具有热关闭功能。可以在温度过载的情况下保护器件。
2 智能节点硬件系统设计
智能节点的硬件系统原理图如图1所示。它利用PCA82C250芯片将MPC565的内部CAN通讯引脚与外部CAN总线连接在一起。PCA82C250是一个连接CAN控制器和外部物理总线的接口,所提供的最高传送波特率为1M波特。MPC565的A_CNTX0,A_CNRX0引脚和B_CNTX0,B_CNRX0引脚分别作为两个通讯端口的传送端和接收端。MPC565微控制器用于对TouCAN模块进行初始化,并通过该模块与外部总线网路进行通讯。
图1 智能节点硬件原理图
3 智能节点软件系统设计
智能节点的软件系统主要包括TouCAN初始化模块、消息传送模块和消息接收模块。
3.1 TouCAN初始化模块
该模块主要用于实现消息缓冲区的初始化和CAN通讯参数的初始化,其流程图如图2所示。它的主要工作过程如下:
图2 TouCAN初始化流程图
(1)初始化所有的操作模式
首先通过配置控制寄存器0 (CANCTRL0)来设定传输和接收引脚的操作模式,然后设定控制寄存器1的位定时参数。如PROPSEG,PSEGSI,PSEG2,RJW。随后通过编程设置PRESDIV寄存器来选择SCLOCK操作时钟。最后通过设定控制寄存器1中的LBUF位来选择内部仲裁模式。
(2)初始化消息缓冲区
TouCAN模块包括16个消息缓冲区,在每个消息缓冲区有效或无效时,它的控制和状态字必须执行写操作。另外必要时每个消息缓冲区的所有其他入口都应该被初始化。
(3)初始化屏蔽寄存器用于接收外部屏蔽源。
(4)初始化TouCAN的中断处理器。
中断处理器的初始化主要是完成对中断配置寄存器CANICR和相关屏蔽位的设置。这些屏蔽位主要包括消息缓冲区中断屏蔽位IMASK,总线关闭和错误中断屏蔽位CANCTRL0,WAKE中断屏蔽位CANMCR。
(5)对模块配置寄存器中的HALT位取反.用于实现CAN总线同步。
3.2 消息传送模块
消息传送模块比较简单,主要由TouCAN模块独立完成,其流程图如图3所示。
图3 消息传送流程图
消息的传送过程:加载消息和标识符ID到用于传送的消息缓冲区中,使这个传送缓冲区有效.执行相关操作完成消息的传送:写控制和状态字,使传送缓冲区无效;写ID_HIGH和ID_LOW字;写待传送的数据字节;写控制和状态字,使得传送缓冲区有效,并设定传输消息长度。
在上述操作过程中,第1步和第4步是必须的,可以保证数据的相干性。另外一旦一个有效的传送代码被写入到一个传送消息缓冲区中,缓冲区便开始检测CAN总线是否空闲.或者有空白的中间帧。而当有多个消息等待传送时,内部的仲裁逻辑将选择一个消息缓冲区用于下一帧的传送。在成功传送之后,自由运行定时器的值将被写入到消息缓冲区的TIME字段中,在控制和状态字中的CODE字段也被更新,同时IFLAG寄存器中的状态位被置1。
3.3 消息接收模块
消息接收模块的处理要复杂的多,在接收消息的同时,它要处理总线分离和接收溢出等情况,其流程图如图4所示。消息的接收过程:首先用户配置消息缓冲区等待接收,然后TouCAN模块把串行消息缓冲区中接收到的具有匹配ID的消息传送到接收消息缓冲区中,最后用户处理消息,具体操作如下:写控制和状态字,使接收缓冲区无效;写ID_HIGH和ID_LOW字;写控制和状态字,屏蔽接收消息缓冲区,使其有效并且为空。同传送操作过程类似,第1步和第3步也是用于保证数据的相干性。一旦这些步骤完成,消息缓冲区将作为一个有效的接收缓冲区使用,并进行匹配操作。消息缓冲区任何时候都能捕捉到TouCAN是否接收到错误的空闲帧,在这个过程中,所有有效的消息缓冲区比较他们的标识符ID同最新接收的消息的标识符ID.如果匹配,则从最低入口开始,将帧传送到第一个匹配的接收消息缓冲区中。在接收到消息的问时,自由运行定时器的值被写入到消息缓冲区的TIME字段,ID字段、DATA字段和RX长度字段被存储,代码字段被更新。另外FLAG寄存器中的状态标志位也被置1。
图4 消息接收流程图
4 结论
通过对汽车总成控制器的CAN总线系统智能节点的研究,建立了汽车控制系统通讯网路的模型,为整车开发奠定了基础。目前利用该智能节点已经完成了总成控制器与其它ECU单元之间的通讯测试。测试结果充分表明:所设计的智能节点完全符合总成控制的需要.具有较好的推广价值。
本文作者创新点:提出了利用32位微控制器MotorolaMPC565的TouCAN模块来构建混合动力汽车CAN总线系统.并设计了智能节点的硬件系统和软件系统。
分享到:
猜你喜欢