微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 多功能嵌入式车辆行驶监控终端设计

多功能嵌入式车辆行驶监控终端设计

时间:06-17 来源:作者:李怀俊 点击:
1 终端功能

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

2 终端功能模块设计

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

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

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



2.3 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通信函数接口如下:

①初始化CAN:int CAN_Init(int cannum,uint32volatile baudset)。
函数入口参数:cannum为CAN控制器的选择标志符,为1选择CAN0控制器,为2选择CAN1控制器;baudset为波特率,可以预先设置。
函数出口参数:初始化成功返回0,失败则返回1。
函数功能:对CAN控制器进行初始化。

②CAN总线发送数据:int CAN_SendData(int can-num,uint32 volatile frameinfo,uint32 volatile senddatal,uint32 volatile senddata2,uint32 volatile canmode)。

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

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

函数功能:CAN总线进行数据发送。
③CAN总线接收数据:intCAN_RcvData(int can-num。uint32 volatile *pdatal,uint32 volatile *pdata2)。函数入口参数:cannum同上;pdata1和pdata2为接收数据指针。

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top