CAN总线行车记录仪设计

发布者:心怀梦想最新更新时间:2015-05-21 来源: dzsc关键字:CAN总线  行车记录仪  MC9S12XD 手机看文章 扫描二维码
随时随地手机看文章
  CAN总线(CAN.bus)是一种串行多主站控制器局域网总线,其主要原理是把车辆上相关控制器都联系起来,实现发动机控制器,变速箱控制器,ABS控制器,车身控制器,仪表及其它控制器的通信。CAN—bus系统除了使整车线束更少、更井井有条,整车重量更轻外,更大的好处是做到了全车信息即时共享。

  本文探讨基于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盘中,供实验员拿回实验室分析使用,如要实现存储功能,按下存储开关即可。


  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连接。[page]
  2.4 电源模块
  记录仪电源取自12V车载蓄电池电源,该电源除供系统工作外,还担负点火、照明、信号等设备的供电,电源波动大,干扰严重,由于汽车在行驶过程中,可能遇到路面状况比较恶劣的情况,会出现记录仪电源接口由于剧烈震动所造成的松动或接触不良,因此电源模块必须精心设计才能满足需求。
  电源模块电路简图如图2所示,其中U1是由电池提供的6V备份电源,U2(主电源)是车载12V电源,该电源模块被分成2路,经7805稳压后的+5v 电压单独给液晶供电,经4275转换后的VCC给整个单片机及辅助电路供电。系统正常工作时,D1处于截止状态,备份电池不起作用,一旦失去主电源供给,则D1迅速导通,备份电源自动启动为系统供电。


  电源模块此种设计方案有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盘中。
  系统软件部分主要功能模块包括:主程序模块,初始化模块,中断处理模块。
  3.1 主程序设计
  主程序流程图如图3所示。
  由流程图3可看出,在整个程序运行期间,采用查询的方式来检测电源是否掉电。由于车内CAN 信号发包频率均为几十毫秒,如果液晶屏实时显示数据的话,屏幕刷新太快,不易于观察,因此本系统设置当缓存接收满时,刷新一次屏幕数据,这样的刷新频率足以满足用户的需要,无论存储开关是否闭和,液晶屏均提供显示服务。记录过程中突然掉电或者用户断开存储开关,都将导致当前所记录文件的关闭,即修改文件指针和文件长度等与文件系统相关的处理。


  3.2 初始化模块
  (1)CAN模块的初始化
  对CAN控制器的初始化设计是重点,必须对写入的每个寄存器进行仔细全面的考虑,如果初始化没成功,系统将无法正常工作。本记录仪实质上是作为整个CAN 网络的一个增加节点参与通信,网络内的所有CAN节点必须同步。要进行CAN模块的初始化,首先必须进入初始化模式,通过设置IN—ITRQ(CANCTLO)位发起请求,并得到INITAK(CANCTL1)的回应后,MSCAN进入初始化模式。在此模式下,通常是对CAN一BTR0、CANBTR1、CANIDAR、CANIDMR等寄存器进行配置。CANBTR0决定波特率预分频和同步跳转宽度的数值,CAN—BTR1决定周期的宽度、采样点的位置以及在每个采样点进行采样的次数,根据具体CAN总线通信速率设置适当的值。CANIDAR、CANIDMR共同决定哪些ID帧需要接收,在本系统中,CAN总线记录仪的目的是接收CAN线数据全部报文,因而设置CANIDMR为0xFFh,即所有位都不屏蔽,所有的帧都接收。将需要配置的寄存器设置好后,需退出初始化模式,参与CAN总线通信。[page]
  (2)CH375的初始化
  主要是设置USB的工作模式,通过CH375提供的SETUSB MODE命令,设置其工作模式代码为06H,即USB主机方式下,自动检测USB设备是否连接,当USB设备连接或者断开时都会产生中断通知外部单片机,并自动定时产生USB帧周期开始包SOF发送给已经连接的USB设备。通常情况下,设置USB工作模式在20微秒时间内完成,完成后输出操作状态。通过读PA端口得到操作状态,查看是否设置成功。如不成功,表明CH375出错,例如芯片型号错或者处于串口方式或者不支持,则无法进行u盘的读写。
  3.3 中断处理模块
  中断模块即接受中断,由于本系统设置所有的帧都被接收,因而必须在中断处理函数里对接收到的帧进行判断,并进行“解码”。现就实例来详细说明“解码”的过程,如表1所示,列举了A5车内2个重要的CAN消息,其ID均是采用标准格式(11位),数据单元占64位(8字节)。中断接收到数据帧后,首先取其ID号,对于标准帧格式来说,IDRO存放的是IDIO~ID3,IDR1的高3位存放的是ID2~ID0,因此ID号=(IDR0<<3)l(IDRI>>5),其中ID号设置为int型变量。得到ID号后,将根据消息列表进行消息解码,例如,假设取得的ID号是0xFA,这是来自发动机控制单元EMS(enginemanagement system)的消息帧,我们将从它的64位数据单元中取出所关心的数据,其中64位数据在结果寄存器DSR0-DSR7中的存放顺序如表2所示。假设我们从此帧中取出如下3个数据:Engine speedRPM,M eanEfectiveTorque,DriveRequest。


  表3列出了它们在64位数据单元中的起始位和所占位数。在此对数据位数为16的Engine speed RPM 稍作解释,由于选用的单片机采用的是Motorola大端模式,因此其最低位是DSR1中的第8位,而不是DSR0中的第0位,而我们的上层PC机数据分析软件是Intel格式的,于是需要对多字节数据进行大小端转换。下面给出函数语句示例:
  Engine speed RPM DSR1;
  Engine speed RPM =(Engine speed RPM<<8)IDSR0;
  M eanEfectiveTorque=DSR2;
  DriverRequest=DSR3;


  对多字节数据需进行大小端转换,而单字节数据则是直接拷贝。将采集的数据存储在缓存里,然后结束本次中断。
  3.4 其它模块
  液晶模块,对于需要固定显示的部分,利用“预制画面”以减少工作中通讯传输的负担和重复性工作。读写u盘模块,u盘中的数据都是以文件格式存储的,单片机读写u盘则主要是根据FAT文件系统进行文件和目录的各种操作,CH375提供了u盘文件级子程序库,此库支持FAT16和FAT32文件系统,用户只需调用此库的各种API函数就可实现数据块的读写。A/D转换模块,对控制寄存器5(ATDCTL5)的配置要慎重,因为对此寄存器的写操作将中断当前模数转换序列并且开始一个新的转换序列,建议将此寄存器放在前4个控制寄存器之后配置。
  4 结束语
  本系统所开发的行车记录仪已成功的运用于A5车的3万公里、5万公里等各种路试,准确记录了行车过程中的重要数据,对于研究人员进行性能分析、故障分析、以及标定工作提供了重要的数据依据。在已具备CAN 总线的车辆上使用基于CAN的行车记录仪,可大幅度降低系统复杂度,并降低成本。对于不同的车型,只需软件的少许修改而不需要更改硬件,使得记录仪具有极高的灵活性和可移植性,从而广泛应用于各种车型。

关键字:CAN总线  行车记录仪  MC9S12XD 引用地址:CAN总线行车记录仪设计

上一篇:基于MLX90614的汽车玻璃防雾控制器的设计
下一篇:基于CAN总线的并联液压混合动力车控制系统

推荐阅读最新更新时间:2024-03-16 14:02

基于虚拟仪器和CAN总线集成方案实现车用驱动电机测试平台的设计
引言 能源短缺和环保问题促使人们转向开发低污染或者零污染的清洁汽车。燃料电池汽车被认为是最有希望替代内燃机汽车成为下一代公路运输工具的主流。无论是纯电动、混合动力还是燃料电池汽车,都以电动机作为驱动力源。一套适用的车用驱动电机的测试平台对于整车动力系统的开发非常重要。然而目前国内的电机测试平台一般不是针对车用驱动电机而设计,而且自动化程度不高,无法满足测试的要求。因此需要开发一套专用的车用驱动电机测试平台,这对于整车动力系统的设计及优化至关重要。 虚拟仪器技术是近几年在自动化测试和控制领域发展起来的一项新技术。其代表产品为美国NI 仪器公司的LabVIEW ,目前在包括汽车行业的众多领域得到广泛应用。本文结合燃料电池轿车的技术
[测试测量]
基于虚拟仪器和<font color='red'>CAN总线</font>集成方案实现车用驱动电机测试平台的设计
OPC服务器的研究及其在CAN总线系统中的实现
  1 OPC技术简介        1.1 什么是OPC       OPC(OLE for Process Control),即用于过程控制的对象链接与嵌入技术,是一种规范,是在工业控制和生产自动化领域中使用的硬件和软件的接口标准。OPC以组件对象模型和分布式组件对象模型(COM/DCOM)技术为基础,采用客户/服务器(Client/Server)的模式,定义了一组COM对象及其接口标准。 OPC规范是由世界范围内自动化领域中处于领导地位的硬件和软件开发商,在微软的协作下制定的,并且已经得到越来越多的客户和硬件制造商的认可。 1.2 OPC的意义    在传统的控制系统中,针对同一个硬件设备,每
[嵌入式]
基于CAN总线的电力抄表系统设计
CAN总线简介 CAN为多主方式工作,网络上任一节点均可以在任意时刻主动向网络上其他节点发送信息;CAN网络上的节点信息分成不同的优先级,可满足不同的实时要求;CAN采用非破坏性总线仲裁技术;CAN只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据;CAN的直接通信距离最远可达10km(速率5kbit/s以下),通信速率最高可达1Mbit/s(此时通信距离最长为40m);CAN的每帧信息都有CRC校验及其他检错措施,保证了数据出错率极低;CAN的通信介质可为双绞线、同轴电缆或光缆,选择灵活。 系统方案设计 系统由以下部分组成:脉冲电度表、电量采集器、CAN转换器、调制解调器、上位机。系统的结
[单片机]
东芝推出VGA CMOS图像传感器
支持在低光条件下捕获高灵敏度视频。 东京—东芝公司(TOKYO:6502)2014年3月27日宣布,该公司将在4月底开始批量生产用于监控摄像头和行车记录器的1/4英寸VGA CMOS图像传感器“TCM3211PB”。 这款新传感器采用5.6 µm大像素,提高了低光敏感度。即使在月光 ,也可以捕获明亮的图像。 该传感器还整合了基于东芝算法的单帧HDR(高动态范围)功能 。它可以减少假色 ,并能够真实再现高对比度图像的黑暗和明亮区域。 该产品的60 fps高帧率(全分辨率)可以支持顺畅和无缝地捕获视频图像。 应用 安防、监控和行车记录器应用的摄像头。 主要特性 5.6 μm像素实现的高敏感度。
[安防电子]
东芝推出VGA CMOS图像传感器
基于DSP和CAN总线的数据采集与处理系统
引言 随着计算机技术&通信技术和电子技术的迅猛发展,电力系统自动化程度也日益提高,通过现场总线技术和数字信号处理技术的应用提高了电力系统的可靠性和可维护性。本文将TMS320LF2407A芯片和CAN总线等技术应用于电力系统的数据采集中,基于对转换时间和转换精度的考虑,本系统还采用了ADS7684作为模数转换芯片。ADS7684是TI公司推出的专为高速同步数据采集系统设计的高速6通道同步采样、12位的模/数转换芯片。将ADS7684与TMS320LF2407A芯片构成数据采集部分,是一个较好的数据采集方案。该系统可以快捷地实现对电压、电流、功率、功率因数和频率等重要的电力参数进行实时检测,处理和传输。 1 系统结构
[嵌入式]
CAN总线倾角传感器工程机械应用
CAN-bus总线简介    CAN-bus总线 是国际上应用最广泛的现场总线之一,最初被设计用作汽车电子控制单元(ECU:Electric Control Unit)的串行数据传输网络,现已被广泛应用于欧洲的中高档汽车中。近几年来,由于CAN-bus 总线极高的可靠性、实时性,CAN-bus 总线开始进入中国各个行业的数据通讯应用,并于2002 年被确定为电力通讯产品领域的国家标准。   CAN-bus 网络使用普通双绞线作为传输介质,采用直线拓朴结构,单条网络线路至少可连接110 个节点,当通讯距离不超过40米时,数据传输速率可达1Mbps,最远通讯距离可达10公里(使用标准CAN 收发器PCA82C250/251 芯片)
[模拟电子]
RS485-CAN总线转换器设计
1.RS485及CAN总线简介 RS485是工业控制领域中一种传统的总线技术。然而,随着工业控制的复杂度提高,RS485总线在系统容量,通讯距离,不能支持多主结构等方面的缺陷开始逐渐显现。 CAN总线是从20时纪80年代初发展起来的一种新型现场总线技术,它的总线长度最远可达10千米(速率5Kbps以下),数据传输速率最高可达1Mbps(通讯距离40米以内)。它在多主方式下工作,不分主从;节点数的数目主要取决于总线驱动电路,目前可达110个。采用非破坏总线仲裁技术,即使网络负载很重也不会出现网络瘫痪现象。此外,CAN的每帧信息都有CRC校验和其它检错措施,有很好的检错效果 。 由于CAN总线具备以上优点,它目前已经被广泛应
[嵌入式]
基于MSP430系列单片机的CAN总线接口转换卡设计
1 引言 控制器局域网(Controller Area Network,简称CAN)是德国奔驰公司20世纪80年代为解决汽车众多控制设备与仪器仪表之间的数据交换开发的一种串行通信协议。它作为现场总线的一种广泛应用于各种工业现场,根据不同的需要或以主从方式、或以多主方式工作。CAN总线使用的通信介质为双绞线或其他电缆,传输速率可达lMb/s。 CAN总线与其他通信网的不同之处有二:一是报文传送中不包含目标地址,它是以全网广播为基础,各接收站根据报文中反映数据性质的标识符过滤报文,该收的收下,不该收的弃而不用。其好处是可在线上网下网、即插即用和多站接收;二是特别强化了对数据安全性的关注,满足控制系统及其他较高数据要求的系统需求。鉴
[单片机]
基于MSP430系列单片机的<font color='red'>CAN总线</font>接口转换卡设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved