欢迎来到天天文库
浏览记录
ID:61509402
大小:53.00 KB
页数:5页
时间:2021-02-08
《基于多CPU的行车记录仪系统(葛玉荣).doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、基于多CPU的行车记录仪系统(葛玉荣) 1引言 随着交通运输业的发展,交通事故发生率也不断上升,为快速、准确的认定事故的责任,就需要准确知道在事故发生前车辆的行驶状况。行车记录仪系统就是对车辆行驶速度、时间、里程以及司机疲劳驾驶时间等有关车辆行驶信息进行记录、存储、打印,数据可通过串行接口上传,并用PC机上基于LabWindows/CVI开发的数据分析软件对数据进行分析,为快速准确的认定事故的责任,提供有力的依据。同时监管部门可通过这一系统对营运车辆运行状况进行监控,约束司机,防止事故的发生。 2系统构成原理 行车记录仪系统主要由车
2、速传感器、主机、数据分析软件三部分组成。车速传感器接在变速箱上,通过霍尔元件,车轮每转一圈,出一个脉冲;主机完成速度、里程、疲劳驾驶时间等有关车辆行驶信息的测量,能通过打印模块打印信息,通过RS-232和USB两种不同的串行接口把数据发给上位机;数据分析部分通过LabWindows/CVI开发数据分析软件,对数据进行汇总和处理。 3主机硬件设计 主机如图2所示,包括微处理器、电源模块、数据存储器、LED显示器、打印机模块、通信接口模块。 3.1主机基本功能 主CPU采用78E58,它的特点是:32k的FLASHROM,256Byt
3、e的RAM,3个16位定时器,其它和MCS-51基本相同。大容量的FLASHROM,给系统编程带来很大的方便。 司机开始运营时,首先通过IC卡插口,插入司机卡,CPU读取卡上的信息,包括车牌号码、驾驶员代码、驾驶证号码,系统存储此信息,判断如果不是非法信息,就进入正常的工作状态。传感器来的脉冲信号通过光电耦合接在78E58的INT0引脚,CPU通过测试该引脚脉冲的宽度来计算速度,通过计数脉冲的个数计算里程。连接串行日历时钟芯片PCF8583,为系统提供实时时钟。把速度和总里程及时间显示在LED上。能存储每次停车前20S每间隔100mS的
4、速度值,同时存储15天,360小时的每分钟平均速度和每次行车的里程。在停车的状态下,按下打印键,能打印出行车信息,插入U盘,能通过USB接口把数据传输到U盘,还可以通过RS-232接口把数据传入计算机。可以通过按键设置参数和查询2天内每一分钟的速度。 3.2电源模块 电源用车上的电瓶提供的12V直流电源。由于电瓶电压有一定的离散性,同时电瓶质量不好时12V电源较低,而且车行驶时有震动和电磁干扰,要求电源有很强的抗干扰能力和很宽的适用范围[2]。开关电源满足上述要求,且驱动能力较强,所以采用开关电源电路将输入的12V直流电源变为稳定的5
5、V电源。同时在电路中设置掉电检测电路,检测12V电源的掉电,如果12V电源降到9V以下,就要在程序中进行掉电处理。 3.3打印模块 打印模块由单片机AT89C2051做CPU,采用M-445型微型针式打印机,单片机AT89C2051和主CPU通过串行引脚TXD、RXD进行通信。在停车的状态下,主CPU检测到打印键按下,发打印的命令和数据给AT89C2051,AT89C2051接到命令和数据,启动打印机工作。打印的内容有车牌号码、车牌分类、驾驶员代码、驾驶证号码、打印实时时间、停车时刻前15min内每分钟的平均车速、疲劳驾驶记录。 3
6、.4通信模块设计 主机可以通过USB口和RS-232两种串行接口输出及载入数据,原理框图如图2所示。通信模块的CPU采用8051单片机,RS-232接口是为在现场使用笔记本电脑或把主机拿到检测管理中心时,读取数据方便设置的,用MAX232串行接口芯片完成电平的转换。而USB口是为用U盘读取数据设置的,用SL811HST接口芯片完成电平的转换和数据传输。通信的波特率都为9600bps。系统通过这两个通信接口可以对主机设定一些参数,比如车辆识别代号、车辆号码、驾驶员代码、驾驶证证号、实时时钟等;主机通过这两个通信接口可以输出到PC机或U盘事
7、故疑点数据、最近360h内车辆行驶速度数据、对应实时时钟的车辆行驶里程数据等一系列数据,供数据分析软件使用。 4主机软件设计 由于系统有多个CPU,无论是打印还是上传数据,都涉及到和主CPU间的通信。同时系统又要存储大量的数据和设置参数,所以软件比较复杂,主要考虑以下几个方面。 4.1速度、里程的测量 系统的传感器使用霍尔元件传感器,车轮每转一周,主CPU的INT0引脚有一个脉冲,CPU用定时器0外部中断0测试该脉冲的宽度来得到速度,通过计数脉冲的个数得到里程。系统设置外部中断0下跳沿触发,计时标志FLAG设为0。初始化后,开放外
8、部中断0的中断,每来一个脉冲,产生一个中断。在外部中断0的中断服务子程序中,判断开始计时标志,如果FLAG=0,则设置定时器T0的初值为0,开放定时器T0的中断,同时FLAG=1;如果FLAG
此文档下载收益归作者所有