info
西门子:电池白皮书
行业动态
MORE...
应用案例
MORE...
技术前沿
MORE...
当前位置:首页 技术 正文
多功能嵌入式车辆行驶监控终端设计
转载 :  zaoche168.com   2009年07月13日

摘要 介绍基于LPC2292和μClinux系统的多功能嵌入式车辆行驶监控终端的结构和功能模块的设计;对系统设计的硬件和软件部分进行详细的分析,并就嵌入式系统中的驱动程序的建立进行详细讨论。监控终端可以对车辆各种性能参数进行全方位监控,并将总线接口作为车辆在途维护与诊断工具;结合无线通信模块可以建立远程车辆的全方位监控系统,提高车辆管理水平。

关键词 嵌入式系统 车辆监控CAN驱动程序 CTM8251 TJA1020

 

 

1 终端功能

    本监控终端除了具有传统的记录仪所拥有的事故分析功能外,还能在汽车驾驶员超速行驶时发出超速报警声,以提醒驾驶员减速行驶,并详细记录车辆每次的开车时间、行驶里程、行驶时间、最高车速,以及每次最高车速的持续时间,方便交通管理部门根据所记录的有关数据对车辆进行有效的管理;同时,该设备可实现多种信息处理,显示汽车状况,进行自我诊断,对车速、发动机转速、水温、油压、刹车气压、轮胎压力和蓄电池电压等一系列参数进行有效监控;通过控制发光二极管、液晶显示、蜂鸣器等报警手段,为司乘人员提供直接的汽车状况信息并发出各种超限情况的报警等,可有效防范和化解车辆事故的发生。另外,终端具有GPRSGPS模块,可将各种监测数据实时传至公司管理中心,方便了公司车辆的统一调度和行车监测,利于提高公司管理水平。

 

2 终端功能模块设计

    选用带有ARM7TDMI-S内核的LPC2292微控制器,可实现对车速、转速信号、开关量信号以及水温、刹车气压、轮胎压力等模拟量信号的采集、处理以及数据的实时存储和显示,通过串口、USB接口可以实现与PC机之间的数据通信,通过 CANLIN总线接口可实现与汽车上的CANLIN节点间的数据通信。该系统的外围接口模块有电源模块、车速等脉冲信号采集模块、水温等模拟信号采集模块、键盘接口模块、存储器模块、GPS定位模块、GPRS通信模块、LCD显示模块、胎压监测以及通信接口模块,系统的组成框图如图1所示。限于篇幅,本文仅就若干特色功能模块设计作详细分析。

 

 

 

 

 

21 车速、转速信号采集电路设计

    现有运输车辆一般都装有霍尔式集成传感器,车速转换成的电压信号直接送至车速表,信号采集比较方便,具体处理方法是直接从车速表的接线端子取得车速信号。具体接线方式根据车速表信号输出电路来确定。信号出车速表端子后送至光耦4N35高速隔离开关,再送至集成运放LM358D前置差分电路,进一步去除干扰并有效放大,由LM358D输出端(7)送至9013进行次级放大,至此车速信号已是占空比为50%的方波信号,并已剔除杂波,可直接送至微控制器定时捕获端口进行计数,具体电路如图2所示。经反复实验优化,本电路抗干扰能力很强,实车测试时无论低速状态或超过110 kmh车速时,均可稳定准确地检测到速度信号。同理,发动机转速信号亦可采取类似方法进行处理(在此不再赘述)

 

 

 

23 CAN总线接口功能设计

    CAN正常工作需要具备CAN控制器以及CAN总线驱动器。前者实现网络层次结构中数据链路层和物理层的功能,后者则提供CAN控制器与物理总线之间的接口以及对CAN总线的差动发送和接收功能。LPC2292微控制器包含两个CAN控制器,单个总线上的数据传输速率高达1 Mbps,具有32位寄存器和RAM访问功能,带有全局滤波器和验收滤波器。本系统采用CTM8251D双路带隔离CAN收发器,至少可连接110个节点,通过扩展CAN总线接口,使得串行通信方式的选择更加多样化。当车内仪表也具有CAN总线接口的时候,它们可以直接利用此接口与记录仪通信。CAN总线接口电路如图4所示。

 

    CAN通信与一般的串口通信类似,在数据通信前先要对CAN总线进行初始化操作,包括CAN控制器的选择、数据寄存器的设置、通信波特率的设置等。初始化完成后,需要设置双方的通信协议,建立彼此的连接。只有在同一协议下工作的双方才能正确进行数据的交换。本系统设置的CAN通信协议为:无过滤条件、 bypass模式、波特率可以预先设置。

    本系统提供的CAN-BUS通信函数接口如下:

    ①初始化CANint CAN_Init(int cannumuint32volatile baudset)

    函数入口参数:cannumCAN控制器的选择标志符,为1选择CAN0控制器,为2选择CAN1控制器;baudset为波特率,可以预先设置。

    函数出口参数:初始化成功返回0,失败则返回1

    函数功能:对CAN控制器进行初始化。

 

    CAN总线发送数据:int CAN_SendData(int can-numuint32 volatile frameinfouint32 volatile senddataluint32 volatile senddata2uint32 volatile canmode)

    函数入口参数:cannum同上;frameinfo为帧信息,用于设置帧信息寄存器;senddata1senddata2分别为要发送的数据,用于设置数据寄存器ABcanmode用于设置CAN工作模式。

    函数出口参数:数据发送成功返回0,失败则返回1

    函数功能:CAN总线进行数据发送。

    CAN总线接收数据:int CAN_RcvData(int can-numuint32 volatile *pdataluint32 volatile *pdata2)。函数入口参数:cannum同上;pdata1pdata2为接收数据指针。

    函数功能:CAN总线接收数据,并从数据寄存器CANRDACANRDB中将数据读进对应的指针中。

24 LIN总线接口电路设计

    LIN是低成本网络中的汽车通信协议标准,可以提高通信质量、降低成本,将是在汽车中使用汽车分级网络的重要因素。LIN总线是一种简单的单总线系统,其软件协议栈比较简单。一个LIN网络由一个主机节点和一个以上的从机节点组成,所有的节点都包括有从机服务程序,用来发送和接收数据,仅有一个节点包含有主机服务程序。主机程序主要用于发送同步间隔、同步场和ID(或命令),以控制和协调各个节点的有序通信。

    LPC2292微控制器集成有实现LIN总线节点的必要硬件,包括UART、捕获输入和足够的定时器,特别是其捕获输入功能,为LIN的帧头识别、帧同步 &波特率测量提供了极大的便利。LIN总线接口电路如图5所示,主要由LIN物理层接口芯片TJA1020构成,与LPC2292串口2相连,其主要完成MCU通信信号与LIN物理总线信号之间的相互转换,为MCU提供一个与LIN物理总线的接口。

 

25 红外通用接口模块

    出于用户统一采集数据需求考虑,本系统设计了通用的红外接口。它能够支持红外遥控和数据通信,支持IrDA协议,能够方便地与各种符合协议标准的设备进行通信。该模块由HSDL7001编解码芯片和HSDL3600红外收发芯片组成。 HSDL7001MCU串口相连,原理框图如图6所示。

 

 

 

    HSDL7001可驱动IrDA兼容的收发器,最高传输速率达11 502 kbps,其内部有1SIR编码器和1SIR解码器,支持内部(外接3684 MHz晶振)和外部16XCLK输入两种模式。当使用内部时钟时,波特率可通过A0A1A2进行调整。

 

3 终端软件设计

    嵌入式μClinux具有结构小巧、实时性强、稳定性高、可定制性强的特点。在网络通信方面,嵌入式操作系统支持TCPIP及其他协议并提供通信协议动态挂接技术,以及操作系统内部的进程通信应用接口技术。本设计采用稳定的24版本的内核,并对它进行合理的裁减和加载,作为操作平台。μClinux己对本系统采用的主控器有了很好的支持,但在编译本系统的内核前,需要修改 uclinuxlinux-24xarcharmnommuconfigin文件中关于外部存储空间的定义,以满足本系统关于外部 FlashCH375BLCD液晶屏等器件的存储空间的划分。

31 进程管理

    μClinux的进程调度沿用了Linux的传统,系统每隔一定时间挂起进程,同时系统产生快速和周期性的时钟计时中断,并通过调度函数(定时器处理函数)决定进程何时拥有相应的时间片,然后进行相关进程切换,这通过父进程调用:fork函数生成子进程来实现。

    本系统中,为每个任务建立数据处理子进程,包括:车速、转速等信号采集处理任务、串口定时通信任务、USB数据传输任务、GPRS数据传输任务、LCD数据显示更新任务等。子进程采用由μClinux内核中的cron组件触发任务机制。系统中的crontab文件记录了终端的定时数据处理任务信息(可由系统前台设定任务执行周期),时间一到即可被cron触发其相应的子进程。由于采用多进程处理,终端可方便地实现多种信号的实时采集以及数据的及时处理、存储和上送。

32 设备驱动程序编写

    设备驱动程序是内核与硬件之间的唯一接口,也是内核代码的一部分。当硬件设备要与内核进行交互时,就会产生一个中断信号,通过驱动程序预定义的入口点进入内核,入口点将此信号保存在栈中并保存被中断任务的寄存器的值。内核提取保存在栈中的中断信号,再由内核调用相应的中断处理程序。应用程序可以像操作普通文件一样对硬件设备进行操作。

    本系统用到LPC222924AD采样接口对水温、刹车气压以及发动机电压状态等参数进行采集。下面以AD采样驱动程序为例进行分析:

 

①应用程序只有通过对设备文件的openclosereadwriteioctl等进行操作才能访问硬件设备,Linux的扩展文件操作结构 file_operations实现了标准的文件操作到硬件设备操作的映射,每个设备驱动程序都要实现这个接口所定义的部分或全部函数。

品牌社区
—— 造车工艺 ——
—— 数字化制造 ——
—— 智能驾驶 ——
—— 新能源技术 ——
—— 机器人技术 ——