CAN总线在汽车行驶记录仪中的应用
2010-06-05毕雪芹田萍果
张 妮,毕雪芹,田萍果
(1.西安工业大学 北方信息工程学院,陕西 西安 710025;2.西安工业大学 电子信息工程学院,陕西 西安 710032)
汽车行驶记录仪(vehicle traveling data recorder)是安装在车辆上,能够记录、存储、显示、打印车辆运行速度、时间、里程以及有关车辆行驶的其他状态信息,并可通过接口实现数据输出的数字式电子记录装置,俗称汽车黑匣子[1]。汽车行驶记录仪的使用对遏制疲劳驾驶、车辆超速等交通违章、约束驾驶人员的不良驾驶行为、保障车辆行驶安全以及道路交通事故的分析鉴定具有重要的作用。
汽车行驶记录仪(以下简称记录仪)由汽车行驶记录仪的主机部分和计算机终端的数据分析软件部分构成。主机部分是记录仪的核心,主要完成车辆行驶数据的采集、记录和存储。传统的汽车行驶记录仪由于采样信号很多,信号采集很复杂,需要很多连接线,为了保证采集信号的准确性,采集到的信号还要经过放大电路和滤波电路进行处理,如果各级电路之间电气特性匹配不好就会影响记录仪信号采集的准确性,甚至有时还会影响到汽车其他系统的正常工作。
计算机终端的数据分析软件主要实现对汽车行驶中诸如速度、压力等数据的分析和处理,因此记录仪采集的信号必须与计算机终端、外围报警模块、人机接口模块等进行数据传输。标准的RS232串行通信是一种成熟稳定的通信方式,也是汽车行驶记录仪国家标准规定的必须具有的通信方式。但RS232串行通讯信距离短,只能进行点到点通讯,不能直接组建多点通信网络。为了延长RS232的通信距离,并将RS232节点组成通讯网络,就需要将RS232串行通信接口转换成CAN总线接口,以CAN总线形式构成远程多点通信网络。
CAN总线的应用使汽车行驶记录仪通过接口直接从CAN总线上读取相应信号,因而不会影响其他系统的正常工作;同时CAN总线具有数据传递可靠性很高的优点,也使得其数据准确性得以保障。
1 CAN总线特点
控制器区域网(Controller Area Metwork,CAN)总线是一种多主机局部网。CAN总线规范已被国际标准化组织(ISO)制定为国际标准。CAN总线属于总线式串行通信网络,由于采用了许多新技术和独特设计,因而具有以下特点:1)总线以多主方式工作,通信方式灵活,且不用占地址等节点信息;2)CAN总线网络上的节点信息分不同的优先级,可满足不同的实时要求;3)采用非破坏性总线仲裁技术,在网络负载很重的情况下也不会出现网络瘫痪的情况;4)只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据,无需专门的 “调度”;5)直接通信距离最远可达10 km(速率 5 Kb/s以下);6)通信速率最高可达1 Mb/s(此时通信距离最长为40 m);7)每帧信息都有CRC校验及其他检错措施,保证了数据出错率极低;8)CAN总线节点在错误严重的情况下具有自动关闭输出的功能,以使总线上的其他节点的操作不受影响。
2 CAN总线接口硬件电路设计原理
CAN总线是一种多主总线,可将汽车行驶记录仪作为汽车CAN网络的一个节点,在系统中与计算机终端相连的节点是主节点,其他节点是从节点。理论上,主节点可以有多个。在简单的系统中,一般只设置1个主节点,完成主节点向从节点发送配置数据、主节点向从节点请求当前工作状态、当前数据以及数据管理等工作。从节点根据应用的需要完成不同的功能,如现场数据的采集、设备控制和驱动等,并能实现上传数据和接收数据等通信功能。
主节点由PC机、CAN接口电路、上位机接口软件等组成。CAN接口电路实现了以CAN总线上从节点和上位机之间的通信,CAN接口电路原理框图如图1所示。
图1 CAN接口电路原理图Fig.1 Principle diagram of CAN interface circuit
CAN接口电路以PHILIPS公司的P89C52微控制器作为核心处理器,负责对CAN总线控制器初始化,并通过数据总线对CAN控制器进行读/写控制,实现CAN网络节点中信息的收发,从而实现对现场的控制;通过MAX232与PC机实现串行通信,由PC机发送的数据写到微控制器中,再由微控制器的I/O口和控制信号线将数据写入CAN控制器,通过CAN收发器向CAN总线发送;CAN总线上,需要上传给主节点的数据,经CAN收发器写入CAN控制器,通过中断信号提醒微控制器读取,再由RS-232接口上传给PC机。在CAN总线的两端,需要接一个120 Ω的匹配电阻,以提高数据通信的抗干扰能力及整体可靠性。
3 主要硬件电路设计
除主控器件微处理器P89C52之外,CAN总线接口电路主要由CAN总线通信接口电路、CAN收发器与光电隔离部分、串口收发器等组成[2-5]。
3.1 CAN总线通信接口电路
CAN总线通信接口电路是一个很重要的环节,记录仪的正确运行与其密切相关。该设计采用了PHILIPS公司生产的总线控制器SJA1000,该器件是一种独立的CAN总线控制器,主要用于移动目标和一般工业环境中的区域网络控制。SJA1000具有PCA82C200模式(即默认的Basic CAN模式),基本特性如下:1)具有PCA82C200模式(即默认的Basic CAN 模式);2)支持 CAN2.OA 和 CAN2.OB 协议;3)支持 11位和 29位标识符;4)通信的位速率可达 1 Mb/s;5)采用的是24 MHz时钟频率;6)可与不同的微处理器相接;7)可编程的CAN输出驱动器配置;8)温度适应范围大(-40~+125℃)。
图2 CAN总线通信接口电路Fig.2 CAN-bus communication interface circuit
此外,还具有PeliCAN模式扩展功能:1)可读/可访问的错误计数寄存器;2)可编程的错误报警限额寄存器;3)最近一次错误代码寄存器;4)对每一个CAN总线错误的中断;5)有具体位表示的仲裁丢失中断;6)单次发送(无重复);7)只听模式(无确认、无激活的错误标志);8)支持热插拔(软件位速率检测);9)验收滤波器的扩展(4字节的验收代码,4字节的屏蔽);10)接收自身报文(自接收请求)。
图2所示为SJA1000与微处理器通信接口电路。SJA1000的复位信号RST为低电平有效。
3.2 CAN总线收发器隔离电路
CAN总线收发器采用了标准的高速CAN收发器TJA1050,该收发器是CAN协议控制器和物理总线之间的接口。TJA1050可以为总线提供差动发送性能,为CAN控制器提供差动接收性能。TJA1050除了增强EMC外,另外一个重要的特性是不上电时,CAN总线呈现无源特性。这使TJA1050在性能上大大优于其他CAN总线收发器。TJA1050有高速和静音2种工作模式,都由引脚S控制。引脚S接地可以进入高速模式,由于引脚S有内部下拉功能,所以当它没接时,高速模式也是默认模式。在高速模式中,总线输出信号有固定的频率,并且以尽量快的速度切换,适用于最大的位速率和最大的总线长度。将引脚S接高电平,就可进入静音模式。在静音模式中,发送器是禁止的,不管TXD的输入信号。因此,TJA1050在非发送状态中,它此时消耗的电源电流和隐形状态时一样。TJA1050最低的波特率为 20 Kb/s。
为了确保在CAN总线遭受严重干扰时控制器能够正常运行,CAN总线控制器没有与总线收发模块直接相连,而是通过光电隔离器6N137后相连,从而实现总线上各节点间的电气隔离。电路图如图3所示。6N137光耦合器的第6引脚Vo输出电路属于集电极开路电路,必须上拉一个电阻;另外其第2引脚和3引脚之间是一个LED,必须串接一个限流电阻,此外,光电耦合部分所采用的两个电源VCC和CAN的+5 V必须完全隔离。
图3 总线收发器隔离电路Fig.3 Schematic diagram of bus transceiver and photoelectric isolation
3.3 RS232总线接口模块
RS232总线接口主要实现汽车行驶记录仪与PC机的RS232串口通信功能。MAX232芯片是常用的RS-232C与TTL电平转换器,它的内部有电压倍增电路和转换电路,只需+5 V电源便可实现RS-232C与TTL电平转换,使用方便,一个芯片可连接2对收/发信号线。因此转换器采用MAX232。其接口原理图如图4所示。
图4 RS232接口原理图Fig.4 Principle schematic of RS232 interface
4 软件设计[6]
在软件设计之前,为了确保SJA1000的片选地址与其他的外部存储器无冲突,需先确定SJA1000的基地址及复位引脚,然后正确地初始化SJA1000。CAN接口电路的软件设计主流程图如图5所示,主要包括CAN控制器的初始化、数据发送、数据接收及出错处理等。
图5 CAN接口电路主流程图Fig.5 Flow chart of main program of CAN interface circuit
SJA1000的初始化只有在复位模式下才可以进行,初始化主要包括工作方式的设置,接收滤波方式的设置,接收屏蔽寄存器和接收代码寄存器的设置,波特率参数设置和中断允许寄存器的设置等。其初始化流程如图6所示。
CAN发送数据流程如图7所示,接收数据流程如图8所示。此程序以采集行驶车辆行驶速度和压力数据为例。
图6 初始化程序流程图Fig.6 Flow chart of initialization program
图7 发送数据流程图Fig.7 Flow chart of sending data program
5 结束语
CAN总线的应用,使汽车行驶记录仪的信号采样系统简化,降低了对MCU处理单元的性能要求,提高了汽车行驶记录仪稳定性,可在RS232通信节点中建立多点远程通信,其硬件和软件设计上都有所创新,使记录仪安装更为简便,具有很好的性价比和很强的可移植性和扩充性。
[1]谭浩.汽车行驶记录仪的原理与应用 [J].测试设备,2006(11):56-59.TAN Hao.Principle and application of automotive running recorder[J].Test Equipment,2006(11):56-59.
[2]姜木霖,彭强,黄连丽.基于CAN总线的汽车行驶记录仪的研制[J].重庆工学院学报:自然科学,2008,10-13.JIANG Mu-lin,PENC Qiang,HUANG Lian-li.Research of vehicle traveling data recorder based on CAN bus[J].Journal of Chongqing Isstitute of Technology:Natural Science,2008:10-13.
[3]黄艳玲,李立伟.多功能汽车行驶状态记录仪的设计[J].电子技术应用,2006(3):102-104.HUANG Yan-ling,LI li-wei.The desigener of multi-function vehicle traveling data recorder[J].Application of Electronic Technique, 2006(3):102-104.
[4]刘辉,迟瑞娟,胡桂兰.基于嵌入式系统的汽车行驶记录仪的设计[J].微计算机信息,2008,(4):240-242.LIU Hui,CHI Rui-juan,HU Gui-lan.Design of vehicle traveling data recorder based on embedded system[J].Microcomputer Information,2008(4):240-242.
[5]薛翔,何仁,倪春华.基于嵌入式系统汽车行驶记录仪的研制与开发[J].交通与计算机,2006(2):62-65.XUE Xiang,HE Ren,NI Chun-hua.Research and development of vehicle traveling data recorder based on embedded system[J].Communications and Computer,2006 (2):62-65.
[6]马忠梅.单片机的C语言应用程序设计[M].北京:北京航天航空大学出版社,2007.