【摘 要】本文研究了一種基于MiniGUI圖形用戶界面的車載終端。該系統(tǒng)通過嵌入用戶GUI與輕量級嵌入實(shí)時操作系統(tǒng)μC/OS-Ⅱ,構(gòu)造友好的用戶終端,利用計算機(jī)測控技術(shù)與超聲波測距技術(shù)實(shí)現(xiàn)汽車倒車的預(yù)警和數(shù)據(jù)顯示,利用基于I2C總線的溫度傳感IC實(shí)現(xiàn)車廂溫度的實(shí)時值。通過顯示障礙物與汽車的距離并根據(jù)其距離遠(yuǎn)近實(shí)時發(fā)出報警,解除了駕駛員泊車和起動車輛時前后左右探視所引起的困擾,大大提高了駕駛安全性。
【關(guān)鍵詞】ARM, 超聲波測距 ,測溫IC,μC/OS-Ⅱ,MiniGUI
一、系統(tǒng)方案
1.1、方案概述
本系統(tǒng)采用當(dāng)今業(yè)界流行的基于ARM7TDMI體系32位MCU-NXP公司的lpc2210。該型號微控制器穩(wěn)定優(yōu)越的性能,為我們在系統(tǒng)的設(shè)計與構(gòu)建提供了很好的性能保證。
本系統(tǒng)利用超聲檢測的發(fā)展及基本原理,超聲傳感器的原理及特性。并且在超聲測距系統(tǒng)功能的基礎(chǔ)上,提出系統(tǒng)的總體構(gòu)成。針對測距系統(tǒng)發(fā)射、接收、檢測、多路控制、顯示部分的總體設(shè)計方案進(jìn)行了論證。系統(tǒng)采用嵌入實(shí)時操作系統(tǒng)μC/OS-Ⅱ,實(shí)時操作系統(tǒng)的原理及運(yùn)行機(jī)制和采用實(shí)時操作系統(tǒng)對工程構(gòu)建所起到的巨大作用。可視化終端方面,本系統(tǒng)采用飛漫公司開發(fā)的嵌入式圖形用戶界面MiniGUI。
1.2、方案整體系統(tǒng)圖
二、功能與指標(biāo)
2.1、測距功能及所能測量的距離
本系統(tǒng)可通過傳感器發(fā)射和接收超聲波計算出障礙物與車的距離,以提醒司機(jī)注意安全;
2.2、LCD顯示功能
系統(tǒng)具有一個2.2英寸的TFT6758LCD顯示器,在系統(tǒng)運(yùn)行過程中能為司機(jī)提供選擇系統(tǒng)的各個功能,顯示倒車時車與障礙物之間的距離數(shù)據(jù),提供系統(tǒng)測得的車內(nèi)溫度,以及其他擴(kuò)展功能的反饋數(shù)據(jù)等。
2.3、溫度測量功能
溫度檢測模塊主要由LM75數(shù)字溫度傳感器構(gòu)成,用于可以隨時檢測車內(nèi)的溫度,提醒車主注意車內(nèi)溫度。
2.4、按鍵控制功能
由于本系統(tǒng)提供了倒車?yán)走_(dá)測距、車內(nèi)溫度測量和其他可能擴(kuò)展等不同功能,鍵盤可用于選擇本系統(tǒng)不同功能,鍵盤具有方向鍵、進(jìn)入和退出鍵等。
2.5、語音報警功能
語音報警模塊主要由APR9600語音錄放芯片構(gòu)成,該芯片能錄放語音60秒,該模塊用于在車主倒車遇到障礙物時在不同距離對應(yīng)發(fā)出語音提醒或警告,讓車主在倒車時做到心中有“數(shù)”,提高倒車的安全性。
三、實(shí)現(xiàn)原理
3.1、中央控制器
微控制器MCU是整個控制系統(tǒng)的核心部分,它的選擇決定了系統(tǒng)的軟件開發(fā)環(huán)境以及硬件連接方式等一系列的問題。在綜合考慮了倒車?yán)走_(dá)系統(tǒng)的特點(diǎn)、性能/價格比、功能完善性等方面的因素后,選用的是LPC2210。LPC2210是基于一個支持實(shí)時仿真和嵌入式跟蹤的16/32位ARM7TDMI-STM CPU的微控制器對代碼規(guī)模有嚴(yán)格控制的應(yīng)用可使用16位Thumb模式將代碼規(guī)模降低超過30%而性能的損失卻很小。由于LPC2210的144腳封裝極低的功耗多個32位定時器8路10位ADCPWM輸出以及多達(dá)9個外部中斷使它們特別適用于工業(yè)控制醫(yī)療系統(tǒng)訪問控制。通過配置總線LPC2210最多可提供76個GPIO。
3.2、基于MiniGUI的彩色LCD顯示終端
我們設(shè)計的系統(tǒng)大部分操作都要通過LCD和鍵盤實(shí)現(xiàn)人機(jī)之間的交流,為此一個友好的用戶界面,關(guān)系著系統(tǒng)功能實(shí)現(xiàn)的好壞與用戶對系統(tǒng)好壞的直觀感受。所以我們將移植Mini GUI嵌入式圖形用戶界面系統(tǒng)。由于嵌入式系統(tǒng)的資源有限,所以對GUI1的要求是可剪裁的,高速的。Mini GUI是占用資源少,使用方便的嵌入是系統(tǒng)簡易的圖形用戶界面軟件。
要在目標(biāo)板上運(yùn)行MiniGUI for uC/OS-II應(yīng)用程序,首先要使用宿主機(jī)(即PC機(jī))對Mini GUI的源代碼進(jìn)行編譯(交叉編譯),生成MiniGUI靜態(tài)鏈接庫文件。然后,MiniGUI應(yīng)用程序也在宿主機(jī)上進(jìn)行交叉編譯,并且與MiniGUI靜態(tài)鏈接庫、POSIX線程庫鏈接生成*.axf映象文件或*.bin二進(jìn)制文件。最后,將MiniGUI應(yīng)用程序(*.axf映象文件或*.bin二進(jìn)制文件)下載到目標(biāo)板,并運(yùn)行。
由于不同目標(biāo)機(jī)的圖形顯示設(shè)備和輸入設(shè)備是不一致的,所以用戶需要為MiniGUI編寫相應(yīng)的圖形引擎GAL和輸入引擎IAL(即驅(qū)動程序),再與MiniGUI的源代碼一起交叉編譯生成MiniGUI靜態(tài)鏈接庫文件。
以下為在PC上模擬出來的車載終端界面:
本模塊主要用于顯示司機(jī)的操作以及顯示各個功能測得的各種數(shù)據(jù),其工作示意圖如下所示:
3.3、超聲波測距模塊
3.3.1、超聲波測距原理
由于超聲波指向性強(qiáng),能量消耗緩慢,在介質(zhì)中的傳播距離較遠(yuǎn),因而超聲波經(jīng)常用于距離測量,如測距儀和物位測量儀等都可以用超聲波來實(shí)現(xiàn)。利用超聲波檢測往往比較迅速、方便、計算簡單、易于做到實(shí)時控制,并且在測量精度方面能達(dá)到工業(yè)實(shí)用的要求,所以在汽車工業(yè)、移動機(jī)器人等領(lǐng)域中有廣泛的應(yīng)用。
聲波在其傳播介質(zhì)中被定義為縱波,當(dāng)聲波受到尺寸大于其波長的物體阻擋時就會發(fā)生反射,形成回聲。若聲波在介質(zhì)中傳播的速度已知,且聲波從聲源到達(dá)目標(biāo)然后返回聲源的時間可以測量得到,則可計算出從聲波到目標(biāo)的距離。這就是本系統(tǒng)的測量原理。一般情況下聲波傳播的介質(zhì)為空氣,聲波采用不可見的超聲波。
若室溫下聲波在空氣中的傳播速度是340m/s,測量得聲波從聲源到達(dá)目標(biāo)后返回聲源的時間是t秒,則聲波傳播的距離d可計算如下:
由于聲波在聲源與目標(biāo)之間來回兩趟,所以聲源與目標(biāo)之間的距離應(yīng)該D≈d/2。
所以,超聲波測距采用的脈沖測量法,其原理是測量發(fā)射超聲波的時刻與接收到反射回波信號的時刻時差,用超聲波在空氣中傳播速度已知從而計算出被測目標(biāo)與傳感器之間的距離。
3.3.2、波諧振頻率發(fā)生電路、調(diào)理電路
超聲波發(fā)生電路圖如下所示。其中NE555電路主要用于產(chǎn)生40KHz的方波,以激勵超聲波傳感器產(chǎn)生諧振而發(fā)出脈沖超聲波;后面的CD4049電路則對40KHz頻率信號進(jìn)行調(diào)理。EN是超聲波信號發(fā)射的使能控制端口,當(dāng)該端口接高電平時,模組將發(fā)射超聲波激勵信號。其工作示意圖如下所示:
超聲波發(fā)射電路示意圖
3.3.3、超聲波回波接收處理電路
超聲波接收處理電路如下所示。在超聲波傳感器接收到反射回來的信號后,先進(jìn)入采用NE5532構(gòu)成10000倍運(yùn)放器進(jìn)行放大;放大后的信號再進(jìn)入LM311比較器對信號進(jìn)行調(diào)整,其中比較電壓為LM311的3管腳輸入電壓,可以輸入不同的電壓值選擇不同的測距模式。其工作示意圖如下所示:
超聲波接收電路示意圖
四、硬件框圖
本系統(tǒng)設(shè)計硬件主要由有以下各部分:
1、以基于ARM7體系32位MCU-NXP公司的lpc2210微處理器為核心的控制器;
2、以發(fā)射和接收超聲波進(jìn)行測距的電路模塊;
3、APR9600錄放語音芯片構(gòu)成的語音報警電路;
4、2.2英寸的高清晰LCD顯示器;
5、LM75溫度檢測和控制按鍵模塊電路;
6、JTAG/ISP調(diào)試測試口;
7、供電系統(tǒng)和存儲器;
五、軟件流程
5.1系統(tǒng)軟件組成
我們設(shè)計的倒車?yán)走_(dá)系統(tǒng)對數(shù)據(jù)處理,數(shù)據(jù)顯示及網(wǎng)絡(luò)傳輸需要很高的實(shí)時性,一個可靠的RTOS是系統(tǒng)穩(wěn)定有效運(yùn)作的保證,所以我們將在lpc2210上移植μc/osⅡ?qū)崟r操作系統(tǒng),以滿足系統(tǒng)對多線程,硬實(shí)時的嚴(yán)格要求。μc/osⅡ是一種通用的實(shí)時內(nèi)核,它是一個可移植、可剪裁、強(qiáng)占式、實(shí)時的多任務(wù)。
結(jié)合硬件部分及設(shè)計的需求,基于μC/OSⅡ平臺的系統(tǒng)軟件結(jié)構(gòu)如下圖所示:
結(jié)合圖中的任務(wù)劃分,根據(jù)任務(wù)的緩急程度分別說明如下:
鍵盤任務(wù):負(fù)責(zé)讀取通過I2C總線傳遞的鍵盤消息,處理鍵值,向MiniGUI傳遞鍵盤消息。由于鍵盤任務(wù)是整個系統(tǒng)的樞紐性任務(wù),所有其他任務(wù)的創(chuàng)建,刪除,狀態(tài)改變都是基于鍵盤消息的,其重要性與實(shí)時性要求最高,所以分配任務(wù)優(yōu)先級為最高的3(1,2優(yōu)先級為系統(tǒng)保留)。
雷達(dá)測距任務(wù):雷達(dá)測距任務(wù)通過鍵盤任務(wù)間接創(chuàng)建,負(fù)責(zé)對測距硬件電路控制與外圍中斷接收,初始化定時器T1與外部中斷,使能超聲波發(fā)送,將處理過的測距數(shù)據(jù)處理,向MiniGUI對話框發(fā)送數(shù)據(jù)。由于系統(tǒng)包括兩組輪流執(zhí)行的測距任務(wù),所以分配優(yōu)先級為4和5。
危急度判斷及語音報警任務(wù):由測距任務(wù)創(chuàng)建,負(fù)責(zé)根據(jù)測距數(shù)據(jù)判斷危急程度,當(dāng)距離小于設(shè)定值時將喚醒APR9600語音報警電路,發(fā)出對應(yīng)的警告語音提醒駕駛員。分配優(yōu)先級為6。
溫度檢測任務(wù):溫度檢測任務(wù)通過鍵盤任務(wù)間接創(chuàng)建,負(fù)責(zé)通過I2C讀取溫度IC電路所測量車廂溫度值,并將其處理后向MiniGUI窗口發(fā)送數(shù)據(jù)。分配優(yōu)先級為8。
RTC:主要用于時間的管理,為MiniGUI提供系統(tǒng)的參考時間。分配優(yōu)先級10。
5.2、系統(tǒng)整體控制流程圖