4、测距报警模块实现
为提高系统的安全性和可靠性,增加测距报警功能,可视倒车功能启动后,采用超声波测距模块来实现对车后方的障碍物的实时测距并使用语音合成模块来实现障碍物距车身过近的语音报警。
4.1 超声波测距模块
超声波测距电路主要由超声波发射电路和接收电路组成,原理框图如图3所示。该模块单片机选用Freescale公司的MC68HC908QL4,该芯片可靠性高、抗干扰能力强。超声波探测车物之间的距离,并将数据传送至车内主处理器进行处理。
由于超声波测距只在汽车倒车时为驾驶员提供车后信息,而倒车时车速较慢,与声速相比可认为是静止的,因此采用渡越时间法来测距,即超声波发射器不断发射超声波,遇到障碍物后反射回来,超声波接受器接受到反射波信号并将其转变为电信号,测出从发射超声波到接受到反射波的时间差即可求出距离s。
式中,s为所测距离;c为超声波声速;t为发射超声波到接受反射波的时间差。
4.2 超声波测距软件设计
超声波测距软件主要包括测距及数据发送,其流程图如图4所示。
4.3 语音合成模块
本系统采用语音合成芯片XF-3011,与S3C2410通过串口进行通信,s3c2410与语音合成芯片XF-3011通信时,发送给XF- 3011的所有命令和数据都需要用“帧”方式进行封装后,再通过串口发送到芯片,帧的最大度为204字节(包括帧头标记字节)。具体的帧格式如表1所示。
表1 语音合成芯片通信传输数据帧格式
XF-3011收到控制命令后。当XF-3011收到一帧正确的命令帧后会立即反馈“0x41”。如果是语音合成命令,那么开始合成所接收的文本数据,所有文本合成完毕之后,向上位机反馈“0x4F”,然后进行语音播放。
4.4 语音合成模块流程图
当测距模块所测距离大小超过系统设定的安全距离时,主处理器发送控制命令给XF-3011,启动语音合成功能提醒驾驶员注意。
5、人机交互界面模块的实现
本系统采用Qtopia嵌入式桌面环境,用户不仅可以方便的管理系统资源和程序,而且能在帧缓冲机制基础上实现程序的屏幕显示,达到与用户的友好交互。
5.1 图形界面系统的建立
本系统使用的是基于Qt/Embedded的图形界面系统,Qt/Embedded的编译主要分为三个步骤:
① 编译Qt/X11,Qt/X11是运行在IBM兼容PC中标准Linux之上的,它主要为Qt/Embedded及其应用程序提供图形编译环境及仿真运行环境;
② 编译Qt/Embedded,Qt/Embedded为在嵌入式Linux平台上运行的图形界面系统及应用程序提供一系列的函数库;
③ 编译Qtopia,通过使用Qt/X11提供的编译工具以及Qt/Embedded提供的函数库,编译出最终基于嵌入式Linux平台的图形界面系统及该环境下的应用程序。
5.2 扩展可视倒车程序
Qtopia图形桌面环境为在qtopia平台上扩展应用程序提供了一个良好的机制,把应用程序发布到qtopia平台上,需要有三个文件:一个执行文件、一个启动器文件和一个图标文件,在这里可视倒车程序可执行文件就是这个执行文件取名为car,图标文件是一个.Png文件,我们可以自己制作一个car.png,启动器文件是一个.desktop文件,可以参考qtopia已有的.desktop为例,创建一个car.desktop,具体内容如下:
[Desktop Entry]
comment=A car program
Exec=car
Icon=car
Type=Application
Name=car
完成以上内容后,把这三个文件分别复制到qtopia相应的目录中。图标文件Car.png复制到qtopia目录下的pics目录,执行文件car复制到qtopia目录下的bin目录,启动器文件car.desktop复制到qtopia目录中apps/Applications 下,拷贝完成后,重新启动qtopia,点击其界面上出现可视倒车功能图标,可视倒车功能启动,结果显示如图6所示。
6、结论
本文介绍了一种基于S3C2410的辅助倒车系统设计。由于系统采用了高性能、低功耗的嵌入式微处理器s3c2410及可视倒车与测距报警功能的结合运用,系统摄像头实际捕捉到的视频信号能很够很好的显示在LCD上并满足汽车倒车实时测距的性能要求,克服了后试镜小,视野窄的缺点,消除了盲目倒车造成的事故隐患,大大提高了汽车倒车的安全效率。经实验调试,该辅助倒车系统能运行良好,操作方便,基本达到了设计要求。