一種輔助倒車數(shù)字圖像系統(tǒng)的設(shè)計和實現(xiàn)
出處:熊慶宇 邱濤 黃劍 發(fā)布于:2011-07-08 11:19:40
1 、引言
隨著我國經(jīng)濟的騰飛和老百姓生活水平的提高,越來越多的汽車已經(jīng)進入普通家庭。據(jù)統(tǒng)計,截至2009年底,我國民用汽車保有量達到7619萬輛,其中私人轎車保有量已達2605萬輛,而且此數(shù)字還會繼續(xù)增長。在此背景下,越來越多的新駕駛者上路,城市的泊車空間也越來越擁擠。
在普通汽車中,駕駛者主要是靠后視鏡來判斷后方的情況和自身的定位。然而,由于后視鏡存在著不同程度的失真率,造成物像畸變,可能使駕駛者判斷不準;并且,車內(nèi)、車外存在著許多部件(如頭枕、遮陽板、后風窗刮水器、示廓燈、轉(zhuǎn)向指示燈、后保險杠兩端等),致使后視鏡的可視有效面積相應(yīng)減低。再者,無論設(shè)計多完美的后視鏡,車輛正后方都會有一大片區(qū)域不能被觀測到,這就是所謂的盲區(qū)。
基于上述種種原因,推動了輔助倒車產(chǎn)品--倒車輔助系統(tǒng)(Parking Assist System)的普及,倒車輔助系統(tǒng)以圖象、聲音的直觀形式告知駕駛者車與障礙物的相對位置,解除因后視鏡存在盲區(qū)帶來的困擾,從而為駕駛者倒車泊車提供方便,消除安全隱患。
2、系統(tǒng)概述
系統(tǒng)以S3C2410為主控制器,主頻可達266MHz,選用Linux2.6.14.1操作系統(tǒng),系統(tǒng)總體設(shè)計可以被分為三個部分:
1) 圖像數(shù)據(jù)實時顯示模塊設(shè)計;
2) 測距報警模塊設(shè)計;
3) 人機交互界面設(shè)計。
圖像數(shù)據(jù)實時顯示模塊主要是實現(xiàn)圖像數(shù)據(jù)實時采集并顯示在LCD顯示器上,系統(tǒng)通過裝在汽車尾部的攝像頭采集車后實時圖像,并將圖像顯示在終端 LCD上。測距報警模塊以超聲波測距電路來進行測距,當所測距離值超過系統(tǒng)設(shè)定的安全距離時實施語音報警,人機交互界面模塊為系統(tǒng)提供了一個良好的人機交互界面,配合觸摸屏,操作便利、簡潔。其系統(tǒng)框架結(jié)構(gòu)圖如圖1所示。

3、圖像數(shù)據(jù)實時顯示模塊實現(xiàn)
圖像數(shù)據(jù)實時顯示模塊采用Linux內(nèi)核公開支持ov511芯片的網(wǎng)眼公司的v3000USB攝像頭來采集圖像,其實現(xiàn)分為兩部分,Linux內(nèi)核中攝像頭驅(qū)動程序模塊的加載和基于Qt的可視倒車應(yīng)用程序設(shè)計。
3.1 USB驅(qū)動模塊動態(tài)加載
在嵌入式Linux的內(nèi)核定制和編譯時,加入對Video4Linux模塊及OV511設(shè)備的支持,通過Video4Linux模塊提供的編程接口(API)從OV511設(shè)備中獲取圖像幀。如下配置Linux內(nèi)核:Multimedia device->< M >VideoforLinux; usb support->usb camera ov511,采用模塊方式編譯video4Linux驅(qū)動和OV511攝像頭驅(qū)動,用命令insmod加載USB及OV511設(shè)備驅(qū)動模塊。加載驅(qū)動后將 OV511攝像頭插入USB接口,攝像頭將被正確識別并生成 /dev/v4l/video設(shè)備。
3.2 可視倒車程序設(shè)計
倒車過程中駕駛員與軟件交互操作較少,因此無需設(shè)計復(fù)雜的用戶操作界面。程序的設(shè)計主要集中在攝像頭圖像的采集上。Linux下進行視頻采集是通過Video4Linux驅(qū)動提供的接口函數(shù)和相關(guān)數(shù)據(jù)結(jié)構(gòu)來完成,使用Video4Linux操作USB攝像頭的流程如圖2所示。

在程序設(shè)計中,與攝像頭相關(guān)的操作和數(shù)據(jù)結(jié)構(gòu)都被封裝在VideoCapture類中。其成員函數(shù)通過Video4Linux提供的接口完成對攝像頭的具體操作。VideoCapture類設(shè)計如下:
Class VideoCaPture
{ Public:
…
bool hasCamera() const
//判斷是否有可用的攝像頭
Void getCameralmage(Qlmage & img),
//獲取攝像頭的圖像數(shù)據(jù)
QSize captureSize()const;//返回攝像使用的分辨率
Void setCaptureSize(QSizesize);//設(shè)置攝像使用的分辨率
int minimumFramePeriod() const;
Private:
…
struct video_mbuf mbuf;//進行內(nèi)存映射的幀信息
…
void setupCamera(QSize size);//攝像頭初始化及參數(shù)設(shè)置函數(shù)
void shut down();//關(guān)閉攝像頭
};
VideoCapture類中的void setupCamera(QSize size)成員函數(shù)來初始化USB攝像頭設(shè)備,根據(jù)系統(tǒng)LCD顯示器的特點,主要參數(shù)設(shè)置為:圖像色彩模式設(shè)置為 VIDEO_PALETTE_RGB565 格式;圖像分辨率設(shè)置為640*480;圖像位深設(shè)置為16位。每采集一幀數(shù)據(jù)后調(diào)用ioctl(fd,VIDIOCSYNC,&frame)函數(shù)等待采集結(jié)束,然后根據(jù)需要繼續(xù)采集下一幀圖像或關(guān)閉攝像頭。
因為ov511不支持系統(tǒng)調(diào)用read的方式獲取圖像數(shù)據(jù),所以使用內(nèi)存映射輸入/輸出(MMIO)方式獲取圖像數(shù),在使用MMIO方式獲取圖像數(shù)據(jù)時,圖像的內(nèi)存的信息保存video_mbuf memoryBuffer這個變量中。所以進行圖像數(shù)據(jù)采集之前首先需要使用Video4Linux中的VIDIOCGMBUF接口獲取MMIO所需信息,然后通過mmap函數(shù)將攝像頭的圖像緩沖區(qū)映射到虛擬內(nèi)存中并使用Video4Linux中的VIDIOCMCAPTURE接口捕獲圖像。函數(shù) voidgetCameraImage(QImage & img)用來完成對一幀圖像的完整采集過程并通過定時器來實現(xiàn)的圖像數(shù)據(jù)的連續(xù)采集和顯示。每當定時器的時間到就觸發(fā)一個定時器事件,在事件中調(diào)用 getCameraImage函數(shù)完成對圖像的采集和顯示。
4、測距報警模塊實現(xiàn)
為提高系統(tǒng)的安全性和可靠性,增加測距報警功能,可視倒車功能啟動后,采用超聲波測距模塊來實現(xiàn)對車后方的障礙物的實時測距并使用語音合成模塊來實現(xiàn)障礙物距車身過近的語音報警。
4.1 超聲波測距模塊
超聲波測距電路主要由超聲波發(fā)射電路和接收電路組成,原理框圖如圖3所示。該模塊單片機選用Freescale公司的MC68HC908QL4,該芯片可靠性高、抗干擾能力強。超聲波探測車物之間的距離,并將數(shù)據(jù)傳送至車內(nèi)主處理器進行處理。

由于超聲波測距只在汽車倒車時為駕駛員提供車后信息,而倒車時車速較慢,與聲速相比可認為是靜止的,因此采用渡越時間法來測距,即超聲波發(fā)射器不斷發(fā)射超聲波,遇到障礙物后反射回來,超聲波接受器接受到反射波信號并將其轉(zhuǎn)變?yōu)殡娦盘枺瑴y出從發(fā)射超聲波到接受到反射波的時間差即可求出距離s.

式中,s為所測距離;c為超聲波聲速;t為發(fā)射超聲波到接受反射波的時間差。
4.2 超聲波測距軟件設(shè)計
超聲波測距軟件主要包括測距及數(shù)據(jù)發(fā)送,其流程圖如圖4所示。

4.3 語音合成模塊
語音合成,又稱文語轉(zhuǎn)換(Text to Speech)技術(shù),能將任意文字信息實時轉(zhuǎn)化為標準流暢的語音朗讀出來,相當于給機器裝上了人工嘴巴。它涉及聲學(xué)、語言學(xué)、數(shù)字信號處理、計算機科學(xué)等多個學(xué)科技術(shù),是中文信息處理領(lǐng)域的一項前沿技術(shù),解決的主要問題就是如何將文字信息轉(zhuǎn)化為可聽的聲音信息,也即讓機器像人一樣開口說話。
本系統(tǒng)采用語音合成芯片XF-3011,與S3C2410通過串口進行通信,s3c2410與語音合成芯片XF-3011通信時,發(fā)送給XF- 3011的所有命令和數(shù)據(jù)都需要用"幀"方式進行封裝后,再通過串口發(fā)送到芯片,幀的度為204字節(jié)(包括幀頭標記字節(jié))。具體的幀格式如表1所示。
表1 語音合成芯片通信傳輸數(shù)據(jù)幀格式

XF-3011收到控制命令后。當XF-3011收到一幀正確的命令幀后會立即反饋"0x41".如果是語音合成命令,那么開始合成所接收的文本數(shù)據(jù),所有文本合成完畢之后,向上位機反饋"0x4F",然后進行語音播放。
4.4 語音合成模塊流程圖
當測距模塊所測距離大小超過系統(tǒng)設(shè)定的安全距離時,主處理器發(fā)送控制命令給XF-3011,啟動語音合成功能提醒駕駛員注意。

5、人機交互界面模塊的實現(xiàn)
本系統(tǒng)采用Qtopia嵌入式桌面環(huán)境,用戶不僅可以方便的管理系統(tǒng)資源和程序,而且能在幀緩沖機制基礎(chǔ)上實現(xiàn)程序的屏幕顯示,達到與用戶的友好交互。
5.1 圖形界面系統(tǒng)的建立
本系統(tǒng)使用的是基于Qt/Embedded的圖形界面系統(tǒng),Qt/Embedded的編譯主要分為三個步驟:
① 編譯Qt/X11,Qt/X11是運行在IBM兼容PC中標準Linux之上的,它主要為Qt/Embedded及其應(yīng)用程序提供圖形編譯環(huán)境及仿真運行環(huán)境;
② 編譯Qt/Embedded,Qt/Embedded為在嵌入式Linux平臺上運行的圖形界面系統(tǒng)及應(yīng)用程序提供一系列的函數(shù)庫;
③ 編譯Qtopia,通過使用Qt/X11提供的編譯工具以及Qt/Embedded提供的函數(shù)庫,編譯出終基于嵌入式Linux平臺的圖形界面系統(tǒng)及該環(huán)境下的應(yīng)用程序。
5.2 擴展可視倒車程序
Qtopia圖形桌面環(huán)境為在qtopia平臺上擴展應(yīng)用程序提供了一個良好的機制,把應(yīng)用程序發(fā)布到qtopia平臺上,需要有三個文件:一個執(zhí)行文件、一個啟動器文件和一個圖標文件,在這里可視倒車程序可執(zhí)行文件就是這個執(zhí)行文件取名為car,圖標文件是一個。Png文件,我們可以自己制作一個car.png,啟動器文件是一個。desktop文件,可以參考qtopia已有的。desktop為例,創(chuàng)建一個car.desktop,具體內(nèi)容如下:
[Desktop Entry]
comment=A car program
Exec=car
Icon=car
Type=Application
Name=car
完成以上內(nèi)容后,把這三個文件分別復(fù)制到qtopia相應(yīng)的目錄中。圖標文件Car.png復(fù)制到qtopia目錄下的pics目錄,執(zhí)行文件car復(fù)制到qtopia目錄下的bin目錄,啟動器文件car.desktop復(fù)制到qtopia目錄中apps/Applications 下,拷貝完成后,重新啟動qtopia,點擊其界面上出現(xiàn)可視倒車功能圖標,可視倒車功能啟動,結(jié)果顯示如圖6所示。

6、結(jié)論
本文介紹了一種基于S3C2410的輔助倒車系統(tǒng)設(shè)計。由于系統(tǒng)采用了高性能、低功耗的嵌入式微處理器S3C2410及可視倒車與測距報警功能的結(jié)合運用,系統(tǒng)攝像頭實際捕捉到的視頻信號能很夠很好的顯示在LCD上并滿足汽車倒車實時測距的性能要求,克服了后試鏡小,視野窄的缺點,消除了盲目倒車造成的事故隱患,大大提高了汽車倒車的安全效率。經(jīng)實驗調(diào)試,該輔助倒車系統(tǒng)能運行良好,操作方便,基本達到了設(shè)計要求。
版權(quán)與免責聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權(quán)行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- ARM技術(shù)架構(gòu)與應(yīng)用開發(fā)實踐指南2026/1/6 10:40:19
- 嵌入式實時操作系統(tǒng)(RTOS)選型與移植技術(shù)指南2025/12/31 10:42:31
- 工業(yè)嵌入式系統(tǒng):通信接口技術(shù)選型與抗干擾設(shè)計實踐2025/12/15 14:36:53
- 深入解析嵌入式 OPENAMP 框架:開啟異核通信新時代2025/7/22 16:27:29
- 一文快速了解OPENWRT基礎(chǔ)知識2025/7/14 16:59:04









