CAN 总线是一种串行多主站控制器局域网总线,其主要原理是把车辆上相关控制器都联系起来,实现发动机控制器、变速箱控制器、ABS 控制器、车身控制器、仪表及其他控制器的通信。CAN 总线系统除了使整车线束更少、更井井有条、整车重量更轻外,更大的好处是做到了全车信息即时共享。本文所开发的行车记录仪用于在车辆行驶过程中实时采集汽车 CAN 总线数据信息,并将数据存储在 U 盘中,以 U 盘为载体传输给 PC 机,可运用 PC 机上的软件对数据进行分析。该方案克服了以往现场数据采集系统必须有一台计算机的模式,可实时了解汽车运行期间各种数据信息变化、同步记录行驶状况;在车辆长时间测试或行驶以后,记录的数据用于分析车辆行驶性能以及各部件的运行情况,方便了标定和设计工作的进行。
一、系统整体结构设计
由于 CAN 串行通信总线的良好特性,它被广泛地应用于现场数据采集系统、汽车制造业和航空工业等领域。本文所设计的基于 CAN 总线的数据记录仪是应用在奇瑞汽车 A5 车型上的,对整车 CAN 网络上的节点数据进行采集和存储。A5 是第一款应用 CAN bus 总线系统的自主品牌国产轿车,其 CAN 总线主要应用在传动部,在车身部、ITS 部和信息部等也有少量的应用;对 A5 这款首次使用 CAN 技术的车型进行实时数据采集,可了解汽车运行期间各种数据信息变化,对 A5 乃至后续所有车款的研发来说都有着非常重要的意义。
CAN 总线行车记录仪工作时应挂接到汽车 CAN 总线上成为一个 CAN 节点,以便采集 CAN 数据信息。如图 1 所示,该系统不仅采集车内的 CAN 总线消息,还可根据需要实时采集模拟信号量;液晶屏用来显示采集的各路信号值,具有掉电保护功能,重新通电后即可恢复显示原有数据。采集到的数据除了用液晶屏实时显示给用户外,还可通过 USB 接口芯片 CH375 将之存储到 U 盘中,供实验员拿回实验室分析使用,如要实现存储功能,按下存储开关即可。

图 1 系统整体结构
根据系统的整体结构,硬件电路主要有如下几个大模块:主控制器模块、液晶模块、CAN 驱动器模块、电源模块、CH375 接口电路模块。系统 CPU 采用 Freescale 公司的 MC9S12XD 系列单片机,它是控制和通信部分的核心,不仅负责系统初始化设置及报文接收,而且实现有关的数据判断处理和显示;其片内集成了构成单片机控制系统和数据采集系统所需的几乎全部模拟和数字外设及其他功能部件,主要特点如下:
(1)MC9S12XD 系列带有独特的 XGATE 协处理器,本系统中 CAN 信号的接收是由中断程序完成的,而中断处理程序交给 XGATE 来处理,这样将减轻 CPU 负荷、提高系统的反应速度;
(2)带有 16 个模数转换通道,给采集模拟信号提供了硬件支持,并可编程选择精确到 10 位精度;
(3)带有 5 个 MSCAN 模块,内部集成有 CAN 控制器,对 CAN 模块的配置实质上转化为了对单片机相应寄存器的配置,使用方便灵活;
(4)背景调试模式 BDM 的支持,使得芯片的调试极为方便,加快了产品开发周期;
(5)丰富的中断源,为系统在非操作系统支持下运行提供了充分的保障。
二、电源模块
记录仪电源取自 12 V 车载蓄电池电源,该电源除供系统工作外还担负点火、照明、信号等设备的供电,电源波动大、干扰严重;由于汽车在行驶过程中可能遇到路面状况比较恶劣的情况,会出现记录仪电源接口由于剧烈振动所造成的松动或接触不良,因此电源模块必须精心设计才能满足需求。电源模块电路简图如图 2 所示,其中 U1 是由电池提供的 6 V 备份电源、U2(主电源)是车载 12 V 电源;该电源模块被分成 2 路,经 7805 稳压后的 +5 V 电压单独给液晶供电,经 4275 转换后的 VCC 给整个单片机及辅助电路供电。系统正常工作时 D1 处于截止状态、备份电池不起作用,一旦失去主电源供给,则 D1 迅速导通、备份电源自动启动为系统供电。

图 2 电源模块
电源模块此种设计方案有 2 个原因,如下所示:
(1)备用电池的采用。记录仪存储采集数据,即将采集数据按顺序写进为记录文件所分配的簇中;当采集结束时实验员断开存储开关或者因掉电而采集被迫终止,单片机都需要做关闭记录文件这一重要处理。关闭文件就是将文件实际长度和采集数据记录总数写进文件相关头中:假如不正确关闭文件,或者因为掉电来不及关闭文件,Windows 将无法找到文件的末尾,PC 机软件也因找不到采集数据的末尾而无法打开文件,此时所做的采集工作将因此失败。为了防止因掉电而无法关闭文件,本系统采用了备用电池。
(2)单片机和液晶单独供电。主电源正常工作时,整个系统的电源由主电源供给;一旦主电源掉电,备用电池只给单片机供电,供单片机完成关闭文件处理,而液晶因掉电而不工作。因液晶的功耗较大而备份电池电力有限,此种分开 2 路的供电方式不但能提供关闭文件的电源需要,而且还节约了电池电力。当然,备份电池不可能长时间使用,只能用于系统紧急关闭文件处理;为此设计了电源检测信号,一旦检测出主电源掉电,即启用蜂鸣器和发光二极管来提醒用户电源供电不正常,需工作人员检查记录仪电源接头。
三、CH375 接口电路模块
本系统中的 USB 接口芯片选用南京沁恒电子公司的 CH375,该芯片支持主机方式和设备方式:它具有 8 位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机的系统总线上;还内置了处理 Mass-Storage 海量存储设备的专用通信协议的固件,外部单片机可以直接以扇区为基本单位读写 U 盘。读选通信号 RD#、写选通信号 WR#、片选信号 CS# 均是输入信号且低电平有效,INT# 是中断请求输出信号、也是低电平有效;而 A0 信号用来区分命令和数据,当 A0 = 1 时可以写命令,当 A0 = 0 时可以读写数据;8 位双向数据总线与单片机的 PA 端口(PA0~PA7)相连,并口传输。其硬件上支持自动检测 USB 设备连接功能,在主机方式下正常连接时其 ACT# 脚输出低电平,因此使 ACT# 脚外接上拉电阻并串联一发光二极管,可用来标示 USB 设备是否正常连接。
在布 PCB 时,尽量使 7805 芯片布在板子边缘且散热比较好的地方,并且远离液晶屏幕:因为在实际过程中经过测试,7805 芯片产生大量的热量,如果长时间使用并且靠近液晶屏幕,将会影响液晶的显示效果;另外,尽量使电源模块的发光二极管靠近电源接口、USB 模块的发光二极管靠近 USB 模块,并且以颜色区分开,方便用户观察。本系统所开发的行车记录仪已成功地运用于 A5 车的 3 万公里、5 万公里等各种路试,准确记录了行车过程中的重要数据,为研究人员进行性能分析、故障分析以及标定工作提供了重要的数据依据。在已具备 CAN 总线的车辆上使用基于 CAN 的行车记录仪,可大幅度降低系统复杂度并降低成本;对于不同的车型,只需软件的少许修改而不需要更改硬件,使得记录仪具有极高的灵活性和可移植性,从而广泛应用于各种车型。