新闻中心

EEPW首页>嵌入式系统>设计应用> 基于CAN总线的行车记录仪设计

基于CAN总线的行车记录仪设计

作者: 时间:2016-11-23 来源:网络 收藏

  CAN总线(CAN.bus)是一种串行多主站控制器局域网总线,其主要原理是把车辆上相关控制器都联系起来,实现发动机控制器,变速箱控制器,ABS控制器,车身控制器,仪表及其它控制器的通信。CAN—bus系统除了使整车线束更少、更井井有条,整车重量更轻外,更大的好处是做到了全车信息即时共享。

本文引用地址: //m.amcfsurvey.com/article/201611/320328.htm

  本文探讨基于CAN总线的行车记录仪设计和实现,详细阐述了系统的整体结构、硬件电路设计、软件设计流程。所开发的行车记录仪用于在车辆行驶过程中实时采集汽车CAN总线数据信息,并将数据存储在u盘中,以u盘为载体传输给PC机,可运用PC机上的软件对数据进行分析。克服了以往现场数据采集系统必须有一台计算机的模式,可实时了解汽车运行期间各种数据信息变化,同步记录行驶状况,在车辆长时间测试或行驶以后,记录的数据用于分析车辆行驶性能以及各部件的运行情况,方便了标定和设计工作的进行。

  1 系统整体结构设计

  由于CAN串行通讯总线的良好特性,被广泛地应用于现场数据采集系统、汽车制造业和航空工业等领域。本文所设计的基于CAN总线数据记录仪是应用在奇瑞汽车A5车型上的,对整车CAN网络上的节点数据进行采集和存储。A5是第一款应用CAN bus总线系统的自主品牌国产轿车,其CAN—bus主要应用在传动部,在车身部、ITS部和信息部等也有少量的应用。对A5这款首次使用CAN技术的车型进行实时数据采集,可了解汽车运行期问各种数据信息变化,对A5乃至后续所有车款的研发来说,都有着非常重要的意义。

  CAN总线行车记录仪的整体结构框图如图1所示。

  CAN 总线行车记录仪工作时应挂接到汽车CAN总线上成为一个CAN节点,以便采集CAN数据信息。由图1所示,该系统不仅采集车内的CAN总线消息,还可根据需要实时采集模拟信号量。液晶屏用来显示采集的各路信号值,具有掉电保护功能,重新通电后,即可恢复显示原有数据。采集到的数据除了用液晶屏实时显示给用户外,还可通过USB接口芯片CH375 将之存储到u盘中,供实验员拿回实验室分析使用,如要实现存储功能,按下存储开关即可。

  图1 系统整体结构

  2 系统硬件设计

  根据系统的整体结构,硬件电路主要有如下几个大模块:主控制器模块、液晶模块、CAN驱动器模块、电源模块、CH375接口电路模块。

  2.1 主控制器模块

  系统CPU采用Freescale公司的MC9S12XD 系列单片机。它是控制和通信部分的核心,不仅负责系统初始化设置及报文接收,而且实现有关的数据判断处理和显示。片内集成了构成单片机控制系统和数据采集系统所需的几乎全部模拟和数字外设及其它功能部件,其主要特点如下:

  (1)MC9S12XD系列带有独特的XGATE协处理器,本系统中CAN信号的接收是由中断程序完成的,而中断处理程序交给XGATE来处理,这样将减轻CPU负荷,提高系统的反应速度。

  (2)带有l6个模数转换通道,给采集模拟信号提供了硬件支持,并可编程选择精确到10位精度。

  (3)带有5个MSCAN模块,内部集成有CAN控制器,对CAN 模块的配置实质上转化为了对单片机相应寄存器的配置,使用方便灵活。

  (4)背景调试模式BDM 的支持,使得芯片的调试极为方便,加快了产品开发周期。

  (5)丰富的中断源,为系统在非操作系统支持下运行提供了充分的保障。

  2.2 液晶显示模块

  系统采用的是WYM19264液晶,分3屏显示,每屏可显示容量为64x64的点阵。该液晶外部接口采用20脚针式插座,与单片机的连接电路也比较简单,其中片选信号CS1、CS2分别与单片机的PH6、PH5相连,控制信号RS、R/W、EN分别与PK4、PJ1、PJ0相连,8条数据线 (DBO~DB7)则连接PB端口的8个引脚(PB0-PB7),实行并口传输。

  2.3 CAN驱动器模块

  CAN 驱动器接口芯片选用PAC82C250,它是CAN协议控制器和物理总线的接口, 主要是为汽车中高速通讯(高达1Mbps)应用而设计的。此器件对总线提供差分发送能力,对CAN控制器提供差动接收能力,具有抗汽车环境中的瞬间干扰而保护总线功能。其管脚8(Rs)允许选择不同的工作模式:高速、待机、斜率控制,本系统中将管脚8接地,选用其高速模式。而RX、TX则与单片机CAN模块引脚相连,本系统中选用的是CAN0模块,即分别与RXCAN0、TXCAN0连接。

  2.4 电源模块

  记录仪电源取自12V车载蓄电池电源,该电源除供系统工作外,还担负点火、照明、信号等设备的供电,电源波动大,干扰严重,由于汽车在行驶过程中,可能遇到路面状况比较恶劣的情况,会出现记录仪电源接口由于剧烈震动所造成的松动或接触不良,因此电源模块必须精心设计才能满足需求。

  电源模块电路简图如图2所示,其中U1是由电池提供的6V备份电源,U2(主电源)是车载12V电源,该电源模块被分成2路,经7805稳压后的+5v 电压单独给液晶供电,经4275转换后的VCC给整个单片机及辅助电路供电。系统正常工作时,D1处于截止状态,备份电池不起作用,一旦失去主电源供给,则D1迅速导通,备份电源自动启动为系统供电。

  图2 电源模块

  电源模块此种设计方案有2个原因,如下所示:

  (1) 备用电池的采用。记录仪存储采集数据,即将采集数据按顺序写进为记录文件所分配的簇中,当采集结束时实验员断开存储开关或者因掉电而采集被迫终止,单片机都需要做关闭记录文件这一重要处理。关闭文件就是将文件实际长度和采集数据记录总数写进文件相关头中。假如不正确关闭文件,或者因为掉电来不及关闭文件,Windows将无法找到文件的末尾,PC机软件也因找不到采集数据的末尾而无法打开文件,此时,所做的采集工作将因此失败。为了防止因掉电而无法关闭文件,本系统采用了备用电池。

  (2)单片机和液晶单独供电。主电源正常工作时,整个系统的电源由主电源供给,一旦主电源掉电,备用电池只给单片机供电,供单片机完成关闭文件处理,而液晶因掉电而不工作。因液晶的功耗较大而备份电池电力有限,此种分开2路的供电方式不但能提供关闭文件的电源需要,而且还节约了电池电力。

  当然,备份电池不可能长时间使用,只能用于系统紧急关闭文件处理,为此设计了电源检测信号,一旦检测出主电源掉电,既启用蜂鸣器和发光二极管来提醒用户电源供电不正常,需工作人员检查记录仪电源接头。

  2.5 CI-I375接口电路模块

  本系统中的USB 接口芯片选用的南京沁恒电子公司的CH375,该芯片支持主机方式和设备方式.它具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机的系统总线上。还内置了处理Mass—Storage海量存储设备的专用通讯协议的固件,外部单片机可以直接以扇区为基本单位读写u盘。

  读选通信号RD#、写选通信号WR#、片选信号CS#均是输入信号且低电平有效,CS#是中断请求输出信号,也是低电平有效。而A0信号用来区分命令和数据,当A0=1时可以写命令,当A0=0时可以读写数据,8位双向数据总线与单片机的PA端口(PA0-PA7)相连,并口传输。其硬件上支持自动检测 USB设备连接功能,在主机方式下正常连接时,其ACT#脚输出低电平,因此使ACT# I脚外接上拉电阻并串联一发光二极管,可用来标示USB设备是否正常连接。

  在布PCB时,尽量使7805芯片布在板子边缘且散热比较好的地方,并且远离液晶屏幕。因为在实际过程中,经过测试,7805芯片产生大量的热量,如果长时间使用并且靠近液晶屏幕,将会影响液晶的显示效果。另外,尽量使电源模块的发光二极管靠近电源接口,USB模块的发光二极管靠近USB模块,并且以颜色区分开,方便用户观察。

  3 系统软件设计

  在软件设计方面采用模块化设计思想和中断调用方案,系统上电后首先进行初始化,对 CAN总线上的信息采用中断方式接收,由XGATE处理中断程序,系统每接收一帧信息,便产生一次中断来触发微处理器进入中断,在中断服务程序中读取该帧数据并暂存在缓存里。此缓存是XGATE和CPU共享的,由于通过CH375读写u盘的数据单位是一个扇区,所以本系统将缓存设置为一个扇区 (512Byte),当缓存满时,由主程序将数据转存到U盘中。


上一页 1 2 下一页

评论


技术专区

关闭