论文部分内容阅读
【摘 要】本文研究了一种基于MiniGUI图形用户界面的车载终端。该系统通过嵌入用户GUI与轻量级嵌入实时操作系统μC/OS-Ⅱ,构造友好的用户终端,利用计算机测控技术与超声波测距技术实现汽车倒车的预警和数据显示,利用基于I2C总线的温度传感IC实现车厢温度的实时值。通过显示障碍物与汽车的距离并根据其距离远近实时发出报警,解除了驾驶员泊车和起动车辆时前后左右探视所引起的困扰,大大提高了驾驶安全性。
【关键词】ARM, 超声波测距 ,测温IC,μC/OS-Ⅱ,MiniGUI
一、系统方案
1.1、方案概述
本系统采用当今业界流行的基于ARM7TDMI体系32位MCU-NXP公司的lpc2210。该型号微控制器稳定优越的性能,为我们在系统的设计与构建提供了很好的性能保证。
本系统利用超声检测的发展及基本原理,超声传感器的原理及特性。并且在超声测距系统功能的基础上,提出系统的总体构成。针对测距系统发射、接收、检测、多路控制、显示部分的总体设计方案进行了论证。系统采用嵌入实时操作系统μC/OS-Ⅱ,实时操作系统的原理及运行机制和采用实时操作系统对工程构建所起到的巨大作用。可视化终端方面,本系统采用飞漫公司开发的嵌入式图形用户界面MiniGUI。
1.2、方案整体系统图
二、功能与指标
2.1、测距功能及所能测量的距离
本系统可通过传感器发射和接收超声波计算出障碍物与车的距离,以提醒司机注意安全;
2.2、LCD显示功能
系统具有一个2.2英寸的TFT6758LCD显示器,在系统运行过程中能为司机提供选择系统的各个功能,显示倒车时车与障碍物之间的距离数据,提供系统测得的车内温度,以及其他扩展功能的反馈数据等。
2.3、温度测量功能
温度检测模块主要由LM75数字温度传感器构成,用于可以随时检测车内的温度,提醒车主注意车内温度。
2.4、按键控制功能
由于本系统提供了倒车雷达测距、车内温度测量和其他可能扩展等不同功能,键盘可用于选择本系统不同功能,键盘具有方向键、进入和退出键等。
2.5、语音报警功能
语音报警模块主要由APR9600语音录放芯片构成,该芯片能录放语音60秒,该模块用于在车主倒车遇到障碍物时在不同距离对应发出语音提醒或警告,让车主在倒车时做到心中有“数”,提高倒车的安全性。
三、实现原理
3.1、中央控制器
微控制器MCU是整个控制系统的核心部分,它的选择决定了系统的软件开发环境以及硬件连接方式等一系列的问题。在综合考虑了倒车雷达系统的特点、性能/价格比、功能完善性等方面的因素后,选用的是LPC2210。LPC2210是基于一个支持实时仿真和嵌入式跟踪的16/32位ARM7TDMI-STM CPU的微控制器对代码规模有严格控制的应用可使用16位Thumb模式将代码规模降低超过30%而性能的损失却很小。由于LPC2210的144脚封装极低的功耗多个32位定时器8路10位ADCPWM输出以及多达9个外部中断使它们特别适用于工业控制医疗系统访问控制。通过配置总线LPC2210最多可提供76个GPIO。
3.2、基于MiniGUI的彩色LCD显示终端
我们设计的系统大部分操作都要通过LCD和键盘实现人机之间的交流,为此一个友好的用户界面,关系着系统功能实现的好坏与用户对系统好坏的直观感受。所以我们将移植Mini GUI嵌入式图形用户界面系统。由于嵌入式系统的资源有限,所以对GUI1的要求是可剪裁的,高速的。Mini GUI是占用资源少,使用方便的嵌入是系统简易的图形用户界面软件。
要在目标板上运行MiniGUI for uC/OS-II应用程序,首先要使用宿主机(即PC机)对Mini GUI的源代码进行编译(交叉编译),生成MiniGUI静态链接库文件。然后,MiniGUI应用程序也在宿主机上进行交叉编译,并且与MiniGUI静态链接库、POSIX线程库链接生成*.axf映象文件或*.bin二进制文件。最后,将MiniGUI应用程序(*.axf映象文件或*.bin二进制文件)下载到目标板,并运行。
由于不同目标机的图形显示设备和输入设备是不一致的,所以用户需要为MiniGUI编写相应的图形引擎GAL和输入引擎IAL(即驱动程序),再与MiniGUI的源代码一起交叉编译生成MiniGUI静态链接库文件。
以下为在PC上模拟出来的车载终端界面:
本模块主要用于显示司机的操作以及显示各个功能测得的各种数据,其工作示意图如下所示:
3.3、超声波测距模块
3.3.1、超声波测距原理
由于超声波指向性强,能量消耗缓慢,在介质中的传播距离较远,因而超声波经常用于距离测量,如测距仪和物位测量仪等都可以用超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,所以在汽车工业、移动机器人等领域中有广泛的应用。
声波在其传播介质中被定义为纵波,当声波受到尺寸大于其波长的物体阻挡时就会发生反射,形成回声。若声波在介质中传播的速度已知,且声波从声源到达目标然后返回声源的时间可以测量得到,则可计算出从声波到目标的距离。这就是本系统的测量原理。一般情况下声波传播的介质为空气,声波采用不可见的超声波。
若室温下声波在空气中的传播速度是340m/s,测量得声波从声源到达目标后返回声源的时间是t秒,则声波传播的距离d可计算如下:
由于声波在声源与目标之间来回两趟,所以声源与目标之间的距离应该D≈d/2。 所以,超声波测距采用的脉冲测量法,其原理是测量发射超声波的时刻与接收到反射回波信号的时刻时差,用超声波在空气中传播速度已知从而计算出被测目标与传感器之间的距离。
3.3.2、波谐振频率发生电路、调理电路
超声波发生电路图如下所示。其中NE555电路主要用于产生40KHz的方波,以激励超声波传感器产生谐振而发出脉冲超声波;后面的CD4049电路则对40KHz频率信号进行调理。EN是超声波信号发射的使能控制端口,当该端口接高电平时,模组将发射超声波激励信号。其工作示意图如下所示:
超声波发射电路示意图
3.3.3、超声波回波接收处理电路
超声波接收处理电路如下所示。在超声波传感器接收到反射回来的信号后,先进入采用NE5532构成10000倍运放器进行放大;放大后的信号再进入LM311比较器对信号进行调整,其中比较电压为LM311的3管脚输入电压,可以输入不同的电压值选择不同的测距模式。其工作示意图如下所示:
超声波接收电路示意图
四、硬件框图
本系统设计硬件主要由有以下各部分:
1、以基于ARM7体系32位MCU-NXP公司的lpc2210微处理器为核心的控制器;
2、以发射和接收超声波进行测距的电路模块;
3、APR9600录放语音芯片构成的语音报警电路;
4、2.2英寸的高清晰LCD显示器;
5、LM75温度检测和控制按键模块电路;
6、JTAG/ISP调试测试口;
7、供电系统和存储器;
五、软件流程
5.1系统软件组成
我们设计的倒车雷达系统对数据处理,数据显示及网络传输需要很高的实时性,一个可靠的RTOS是系统稳定有效运作的保证,所以我们将在lpc2210上移植μc/osⅡ实时操作系统,以满足系统对多线程,硬实时的严格要求。μc/osⅡ是一种通用的实时内核,它是一个可移植、可剪裁、强占式、实时的多任务。
结合硬件部分及设计的需求,基于μC/OSⅡ平台的系统软件结构如下图所示:
结合图中的任务划分,根据任务的缓急程度分别说明如下:
键盘任务:负责读取通过I2C总线传递的键盘消息,处理键值,向MiniGUI传递键盘消息。由于键盘任务是整个系统的枢纽性任务,所有其他任务的创建,删除,状态改变都是基于键盘消息的,其重要性与实时性要求最高,所以分配任务优先级为最高的3(1,2优先级为系统保留)。
雷达测距任务:雷达测距任务通过键盘任务间接创建,负责对测距硬件电路控制与外围中断接收,初始化定时器T1与外部中断,使能超声波发送,将处理过的测距数据处理,向MiniGUI对话框发送数据。由于系统包括两组轮流执行的测距任务,所以分配优先级为4和5。
危急度判断及语音报警任务:由测距任务创建,负责根据测距数据判断危急程度,当距离小于设定值时将唤醒APR9600语音报警电路,发出对应的警告语音提醒驾驶员。分配优先级为6。
温度检测任务:温度检测任务通过键盘任务间接创建,负责通过I2C读取温度IC电路所测量车厢温度值,并将其处理后向MiniGUI窗口发送数据。分配优先级为8。
RTC:主要用于时间的管理,为MiniGUI提供系统的参考时间。分配优先级10。
5.2、系统整体控制流程图
【关键词】ARM, 超声波测距 ,测温IC,μC/OS-Ⅱ,MiniGUI
一、系统方案
1.1、方案概述
本系统采用当今业界流行的基于ARM7TDMI体系32位MCU-NXP公司的lpc2210。该型号微控制器稳定优越的性能,为我们在系统的设计与构建提供了很好的性能保证。
本系统利用超声检测的发展及基本原理,超声传感器的原理及特性。并且在超声测距系统功能的基础上,提出系统的总体构成。针对测距系统发射、接收、检测、多路控制、显示部分的总体设计方案进行了论证。系统采用嵌入实时操作系统μC/OS-Ⅱ,实时操作系统的原理及运行机制和采用实时操作系统对工程构建所起到的巨大作用。可视化终端方面,本系统采用飞漫公司开发的嵌入式图形用户界面MiniGUI。
1.2、方案整体系统图
二、功能与指标
2.1、测距功能及所能测量的距离
本系统可通过传感器发射和接收超声波计算出障碍物与车的距离,以提醒司机注意安全;
2.2、LCD显示功能
系统具有一个2.2英寸的TFT6758LCD显示器,在系统运行过程中能为司机提供选择系统的各个功能,显示倒车时车与障碍物之间的距离数据,提供系统测得的车内温度,以及其他扩展功能的反馈数据等。
2.3、温度测量功能
温度检测模块主要由LM75数字温度传感器构成,用于可以随时检测车内的温度,提醒车主注意车内温度。
2.4、按键控制功能
由于本系统提供了倒车雷达测距、车内温度测量和其他可能扩展等不同功能,键盘可用于选择本系统不同功能,键盘具有方向键、进入和退出键等。
2.5、语音报警功能
语音报警模块主要由APR9600语音录放芯片构成,该芯片能录放语音60秒,该模块用于在车主倒车遇到障碍物时在不同距离对应发出语音提醒或警告,让车主在倒车时做到心中有“数”,提高倒车的安全性。
三、实现原理
3.1、中央控制器
微控制器MCU是整个控制系统的核心部分,它的选择决定了系统的软件开发环境以及硬件连接方式等一系列的问题。在综合考虑了倒车雷达系统的特点、性能/价格比、功能完善性等方面的因素后,选用的是LPC2210。LPC2210是基于一个支持实时仿真和嵌入式跟踪的16/32位ARM7TDMI-STM CPU的微控制器对代码规模有严格控制的应用可使用16位Thumb模式将代码规模降低超过30%而性能的损失却很小。由于LPC2210的144脚封装极低的功耗多个32位定时器8路10位ADCPWM输出以及多达9个外部中断使它们特别适用于工业控制医疗系统访问控制。通过配置总线LPC2210最多可提供76个GPIO。
3.2、基于MiniGUI的彩色LCD显示终端
我们设计的系统大部分操作都要通过LCD和键盘实现人机之间的交流,为此一个友好的用户界面,关系着系统功能实现的好坏与用户对系统好坏的直观感受。所以我们将移植Mini GUI嵌入式图形用户界面系统。由于嵌入式系统的资源有限,所以对GUI1的要求是可剪裁的,高速的。Mini GUI是占用资源少,使用方便的嵌入是系统简易的图形用户界面软件。
要在目标板上运行MiniGUI for uC/OS-II应用程序,首先要使用宿主机(即PC机)对Mini GUI的源代码进行编译(交叉编译),生成MiniGUI静态链接库文件。然后,MiniGUI应用程序也在宿主机上进行交叉编译,并且与MiniGUI静态链接库、POSIX线程库链接生成*.axf映象文件或*.bin二进制文件。最后,将MiniGUI应用程序(*.axf映象文件或*.bin二进制文件)下载到目标板,并运行。
由于不同目标机的图形显示设备和输入设备是不一致的,所以用户需要为MiniGUI编写相应的图形引擎GAL和输入引擎IAL(即驱动程序),再与MiniGUI的源代码一起交叉编译生成MiniGUI静态链接库文件。
以下为在PC上模拟出来的车载终端界面:
本模块主要用于显示司机的操作以及显示各个功能测得的各种数据,其工作示意图如下所示:
3.3、超声波测距模块
3.3.1、超声波测距原理
由于超声波指向性强,能量消耗缓慢,在介质中的传播距离较远,因而超声波经常用于距离测量,如测距仪和物位测量仪等都可以用超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,所以在汽车工业、移动机器人等领域中有广泛的应用。
声波在其传播介质中被定义为纵波,当声波受到尺寸大于其波长的物体阻挡时就会发生反射,形成回声。若声波在介质中传播的速度已知,且声波从声源到达目标然后返回声源的时间可以测量得到,则可计算出从声波到目标的距离。这就是本系统的测量原理。一般情况下声波传播的介质为空气,声波采用不可见的超声波。
若室温下声波在空气中的传播速度是340m/s,测量得声波从声源到达目标后返回声源的时间是t秒,则声波传播的距离d可计算如下:
由于声波在声源与目标之间来回两趟,所以声源与目标之间的距离应该D≈d/2。 所以,超声波测距采用的脉冲测量法,其原理是测量发射超声波的时刻与接收到反射回波信号的时刻时差,用超声波在空气中传播速度已知从而计算出被测目标与传感器之间的距离。
3.3.2、波谐振频率发生电路、调理电路
超声波发生电路图如下所示。其中NE555电路主要用于产生40KHz的方波,以激励超声波传感器产生谐振而发出脉冲超声波;后面的CD4049电路则对40KHz频率信号进行调理。EN是超声波信号发射的使能控制端口,当该端口接高电平时,模组将发射超声波激励信号。其工作示意图如下所示:
超声波发射电路示意图
3.3.3、超声波回波接收处理电路
超声波接收处理电路如下所示。在超声波传感器接收到反射回来的信号后,先进入采用NE5532构成10000倍运放器进行放大;放大后的信号再进入LM311比较器对信号进行调整,其中比较电压为LM311的3管脚输入电压,可以输入不同的电压值选择不同的测距模式。其工作示意图如下所示:
超声波接收电路示意图
四、硬件框图
本系统设计硬件主要由有以下各部分:
1、以基于ARM7体系32位MCU-NXP公司的lpc2210微处理器为核心的控制器;
2、以发射和接收超声波进行测距的电路模块;
3、APR9600录放语音芯片构成的语音报警电路;
4、2.2英寸的高清晰LCD显示器;
5、LM75温度检测和控制按键模块电路;
6、JTAG/ISP调试测试口;
7、供电系统和存储器;
五、软件流程
5.1系统软件组成
我们设计的倒车雷达系统对数据处理,数据显示及网络传输需要很高的实时性,一个可靠的RTOS是系统稳定有效运作的保证,所以我们将在lpc2210上移植μc/osⅡ实时操作系统,以满足系统对多线程,硬实时的严格要求。μc/osⅡ是一种通用的实时内核,它是一个可移植、可剪裁、强占式、实时的多任务。
结合硬件部分及设计的需求,基于μC/OSⅡ平台的系统软件结构如下图所示:
结合图中的任务划分,根据任务的缓急程度分别说明如下:
键盘任务:负责读取通过I2C总线传递的键盘消息,处理键值,向MiniGUI传递键盘消息。由于键盘任务是整个系统的枢纽性任务,所有其他任务的创建,删除,状态改变都是基于键盘消息的,其重要性与实时性要求最高,所以分配任务优先级为最高的3(1,2优先级为系统保留)。
雷达测距任务:雷达测距任务通过键盘任务间接创建,负责对测距硬件电路控制与外围中断接收,初始化定时器T1与外部中断,使能超声波发送,将处理过的测距数据处理,向MiniGUI对话框发送数据。由于系统包括两组轮流执行的测距任务,所以分配优先级为4和5。
危急度判断及语音报警任务:由测距任务创建,负责根据测距数据判断危急程度,当距离小于设定值时将唤醒APR9600语音报警电路,发出对应的警告语音提醒驾驶员。分配优先级为6。
温度检测任务:温度检测任务通过键盘任务间接创建,负责通过I2C读取温度IC电路所测量车厢温度值,并将其处理后向MiniGUI窗口发送数据。分配优先级为8。
RTC:主要用于时间的管理,为MiniGUI提供系统的参考时间。分配优先级10。
5.2、系统整体控制流程图