关键词:客车;CAN;网络控制
1 相关概念辨析
1.1 CAN1.2与CAN2.0
CAN1.2与CAN2.0[1]是CAN技术规范的两个不同的版本,CAN2.0兼容CAN1.2。
1.2 CAN2.0A与CAN2.0B
CAN2.0包括A部分和B部分,即CAN2.0A与CAN2.0B。其中,CAN2.0A是按CAN1.2规范定义的CAN报文格式的说明,规定CAN控制器必须有一个11位的标识符;CAN2.0B是对CAN报文的标准格式和扩展格式的说明,CAN控制器的标识符长度可以是11位或29位。遵循CAN2.0B协议的CAN控制器可以发送和接收11位标识符的标准帧或29位标识符的扩展帧。如果禁止CAN2.0B,则CAN 控制器只能发送和接收11位标识符的标准帧,而忽略扩展格式的报文结构,但不会出现错误。
1.3 标准帧与扩展帧
CAN2.0B有两种不同的帧格式,不同之处为仲裁域的长度不同:具有11 位标识符的帧为标准帧,具有29位标识符的帧为扩展帧,两种帧格式如图1所示。
标准帧理论上最多可以标识211(2048)个数据类型,由于协议规定标识符最高7位不能同时全是隐性位,所以最多可以标识211-24(2032)个数据类型。扩展帧使用29位标识符,最多可标识5亿多个数据类型。
1.4 BasicCAN与PeliCAN
BasicCAN和PeliCAN是Philips公司生产的独立CAN控制器的2个不同操作模式。BasicCAN模式是上电后默认的操作模式,它能够传输标准帧格式的报文。PeliCAN模式是新的操作模式,它能够处理所有CAN2.0B规范的帧类型(标准帧/扩展帧),而且还具有一些支持错误分析的增强功能。在CAN控制器中,不同操作模式的寄存器配置和参数设置方法也是不一样的。
2 影响网络系统设计的主要因素
2.1 标准帧与扩展帧的选择
采用CAN2.0B传输报文时,需对标准帧和扩展帧进行选择。从延迟的角度分析,它用于表示网络响应速度,延迟越少,响应越快,性能越好。CAN最高位速率可达1Mbps,此时每位的传输时间是1μs。总线竞争获胜的标准格式报文在传输不被中断的情况下,长度为最大值的报文总线访问时间只有111μs,加填充位为134μs;扩展帧格式最大长度报文的总线访问时间为131μs,加填充位为159μs。从总线吞吐量分析,它在数值上等于网络或信道在单位时间内成功传输的总信息量,单位为bps。标准格式信息帧的长度为47+8*DLC,数据域在一帧报文中所占比率为(8*DLC)/(47+8*DLC),在1Mbps位速率时的总线吞吐量为(8*DLC)/(47+8*DLC)*1Mbps。扩展格式信息帧的长度为67+8*DLC,数据域在一帧报文中所占比率为(8*DLC)/(67+8*DLC),在1Mbps位速率时的总线吞吐量为(8*DLC)/(67+8*DLC)*1Mbps。当数据域长度为8字节时,若不考虑填充位,则标准帧的总线吞吐量为577Kbps,而扩展帧的总线吞吐量为488Kbps。
从以上分析可见,虽然扩展帧格式可以表示的数据类型比标准帧格式多得多,但在总线访问时间和总线吞吐量方面,标准帧格式明显优于扩展帧格式,所以在满足节点数量要求的条件下应采用标准帧格式。
2.2 标识符分配
CAN只提供与物理层和数据链路层相关的协议,并没有制定与特定应用相关的应用层的内容。因此,根据具体应用的特点,在总线协议的基础上定义详细的标识符分配及网络配置管理的具体方式是开发基于CAN的客车网络控制系统的前提。标识符分配可以通过两种方式来实现,一是用户自定义,二是采用CAN的高层协议标准,如SAEJ1939、CANOpen等。无论采用哪种方式,都必须保证与安全性相关的高实时性的信息能够获得高优先级。如SAEJ1939中,信息优先级顺序为控制参数、驱动状态参数、驱动系控制、驱动系配置参数、信息参数、信息状态参数等。
2.3 网络结构设计
随着客车电子控制单元的增多和信息通讯性能要求的不同,单总线网络结构引发网络通讯负载大、通信效率低、实时性能差和通信距离—网络性能矛盾突出等问题。因此,一般采用多网段结构来构建基于CAN的客车网络控制系统。
多网段结构适合于连接功能相对独立的网段,信息交换通过网关来实现。其特点是:同一网段的节点通过总线方式连接;不同网段之间通过网关连接,并实现相互通信;网络管理和集中控制的功能由网关实现。如采用低速总线连接低实时性要求的车身控制单元,增加通信传输距离,提高抗干扰能力;采用高速总线连接动力传动系统,以满足与行驶安全相关信息的高实时性要求;采用带双通道CAN控制器的微处理器实现两条CAN总线信息的通信和控制功能。
2.4 网络实时性分析
客车网络控制系统是分布式实时系统,许多任务具有严格实时性和硬实时性,信息传输与控制必须满足任务截止期要求。客车网络控制系统的实时性可以通过信息的响应时间来衡量,典型的理论方法有Worst-case、Actual-case、Average和Maximum等。Actual-case同时考虑到周期性信息和非周期性信息,Worst-case考虑到信息传输过程中的最坏情况,一般将二者结合进行实时性分析。位速率是网络实时性分析的一个重要参数,它的确定必须考虑到通信距离,尤其在高速通信的情况下,距离的增加带来的传输延迟是不可忽略的。表1为CAN通信位速率与总线长度的关系。
表1位速率与总线长度的关系
3 节点硬件设计主要内容
3.1 基于CAN的客车网络控制系统典型节点结构
基于CAN的客车网络控制系统的典型节点结构如图2所示。CAN收发器、光电耦合器、和CAN控制器共同完成报文的发送和接收;微控制器对CAN控制器进行初始化,设定CAN控制器工作参数,控制CAN控制器实现数据的接收和发送等通讯任务,同时还可以接收外围设备和传感器信号,并控制执行器工作状态;传感器/执行器完成信号检测上传/执行控制指令的任务;外围设备负责人机交互。
3.2 CAN控制器
CAN控制器可以分为独立CAN控制器和与微处理器集成的CAN控制器,以完成CAN协议数据链路层(DLL)的功能,实现媒体访问控制子层(MAC)的报文分帧、仲裁、应答、错误检测和标定,以及逻辑链路控制子层(LLC)的报文滤波、过载通知、恢复管理等具体服务。
独立CAN控制器有PCA82C200、SJA1000和82526/82527等。与微处理器集成的CAN控制器有P8xC591、LPC2290/2292/2294、MC68HC05X4/X16/X32、MC68HC705X4和TMS320C2000系列DSP芯片等独立CAN控制器能够与各种型号的微处理器相连接,与集成CAN控制器相比,其使用更灵活。目前使用最广泛的独立CAN控制器是SJA1000。
3.3 CAN收发器
CAN收发器完成CAN协议物理层的功能,是CAN控制器和物理传输线路之间的接口。CAN收发器有PCA82C250/251[2]、TJA1050/1040[3-4]、TJA1054[5]和TJA1041[6]等,部分特性比较如表2所示。由于客车为24v直流供电,因此,一般采用PCA82C251作为客车用CAN收发器。
表2 不同型号CAN收发器的部分特性比较
3.4 CAN总线的传输介质
用于CAN总线的传输介质有双绞线、同轴电缆和光纤,双绞线具有较高的性价比。在高速工作模式下,CAN发送器输出级晶体管将以尽可能快的速度开闭。在这种模式下,不采取任何措施限制上升斜率和下降斜率,应使用屏蔽电缆以避免射频干扰RFI问题。在斜率控制模式下,允许使用非屏蔽双绞线。但为了降低射频干扰RFI,并考虑电磁兼容性EMC问题,应限制上升斜率和下降斜率。同时,总线的两个末端应接有120Ω的负载电阻以抑制反射。位于ECU内部的负载电阻应该取消,因为如果其中一个ECU从总线上断开时,总线将丢失终端,影响信息传输。
4 节点软件设计
4.1 CAN控制器初始化与信息收发
基于CAN的客车网络控制系统的CAN控制器软件设计主要包括三大部分:CAN控制器初始化、信息发送和信息接收。不同的CAN控制器,虽然软件实现方法不一样,但基本原理是相同的。
以SJA1000[7]为例,其初始化在复位模式下进行,主要工作是设置控制器工作方式、接收滤波方式、接收码和屏蔽码、波特率和中断允许等寄存器的参数与状态;信息发送程序负责进行相关条件判断,将报文发送至发送缓冲区,并启动发送命令;信息接收程序中,对总线状态、错误报警、报文格式等情况进行判断处理后,启动接收命令即可。
4.2 控制策略的研究与实现
控制策略是客车网络控制系统实现控制功能的基础,直接影响系统应用的正确性、可靠性和有效性。同时, CAN是事件触发型协议,研究客车行驶过程中基于事件的系统控制策略也是客车网络控制系统设计的一项基础性工作。
客车网络控制系统控制策略的研究必须针对我国城市道路交通现状,并综合考虑人—车—路—环境系统因素,主要作用为:当客车在行驶过程中遇到特定事件时,系统应用智能控制理论和技术方法,产生控制策略和控制任务,各功能控制装置按照已设定好的控制策略实现各电子控制单元的信息传递,实施关联、实时控制,确保车辆行驶的安全性。控制策略的智能控制方法[8]有递阶控制、专家控制、模糊控制、神经控制和学习控制等。
5 总结
本文从概念、系统和节点等不同角度对客车网络控制系统设计过程中的一些关键问题进行了研究,分析了设计过程中影响系统工作性能的主要因素,提出了相关设计方法与设计原则。本文工作有助于提高网络控制性能,为系统开发提供了理论与技术基础。
参考文献
[1]CAN Specification 2.0, Robert Bosch GmbH, 1991.
[2]PCA82C250/251 CAN Transceiver, Philips Semiconductors, 1996.
[3] TJA1050 CAN High-speed transceiver, Philips Semiconductors, 2000.
[4] TJA1040 High speed CAN transceiver, Philips Semiconductors, 2001.
[5] Fault-tolerant CAN Transceiver PCA82C252 / TJA1053 / TJA1054 / TJA1054A Version 3.1, Philips Semiconductors, 2001.
[6]TJA1041 CAN High-speed transceiver, Philips Semiconductors, 2001.
[7]SJA1000 Stand-alone CAN controller, Philips Semiconductors, 1997.
[8]蔡自兴.智能控制[M].电子工业出版社,2004.8.