當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于嵌入式Linux的倒車(chē)影音系統(tǒng)設(shè)計(jì)

摘要:采用S3C2440微處理器為控制芯片,基于嵌入式Linux操作系統(tǒng)設(shè)計(jì)了一種安全可視化倒車(chē)系統(tǒng)。通過(guò)嵌入式Linux操作系統(tǒng)內(nèi)核驅(qū)動(dòng)USB攝像頭實(shí)時(shí)地監(jiān)控車(chē)后狀況,通過(guò)超聲波測(cè)距結(jié)果與閾值的比較來(lái)啟動(dòng)語(yǔ)音報(bào)警模塊以提醒駕駛員注意。經(jīng)實(shí)驗(yàn)驗(yàn)證,該系統(tǒng)運(yùn)行穩(wěn)定,采集的視頻圖像清楚且實(shí)時(shí)性高,能夠滿足可視化倒車(chē)的要求。
關(guān)鍵詞:S3C2440;視頻圖像采集;超聲波測(cè)距;語(yǔ)音報(bào)警

引言
    電子信息與數(shù)字圖像處理技術(shù)目前已被廣泛地應(yīng)用在各個(gè)領(lǐng)域,車(chē)載系統(tǒng)的信息化已成為現(xiàn)代汽車(chē)業(yè)的重要標(biāo)志?,F(xiàn)在的倒車(chē)?yán)走_(dá)系統(tǒng)可以為駕駛者提供許多幫助,多數(shù)采用超聲波測(cè)距技術(shù),可以直接顯示出車(chē)尾與障礙物之間的距離。但由于超聲波的散射特性,如果地面有尖銳的突起或存在橫在半空的棱角狀物體,系統(tǒng)就不能有效地“察覺(jué)”。假如能為現(xiàn)有的倒車(chē)系統(tǒng)增加一個(gè)可視功能,那么駕駛員在倒車(chē)時(shí)不必回頭就可清楚車(chē)后的情況。本文設(shè)計(jì)了一種可視化安全倒車(chē)系統(tǒng),該系統(tǒng)采用嵌入式Linux操作系統(tǒng)內(nèi)核驅(qū)動(dòng)USB攝像頭實(shí)現(xiàn)車(chē)后狀況實(shí)時(shí)監(jiān)控,通過(guò)判斷超聲波測(cè)距是否達(dá)到閾值來(lái)啟動(dòng)語(yǔ)音報(bào)警功能。

1 系統(tǒng)方案設(shè)計(jì)
    如圖1所示,系統(tǒng)由主控模塊、超聲波收發(fā)模塊、USB攝像頭圖像采集模塊、語(yǔ)音報(bào)警模塊與LCD顯示模塊等。主控模塊采用三星公司基于ARM9內(nèi)核的S3C2440微處理器,主頻最高可達(dá)533 MHz,處理速度快。采用軟件編程技術(shù)實(shí)現(xiàn)對(duì)其外圍電路的控制,并提供外圍電路所需的各種信號(hào),簡(jiǎn)化了外圍電路的設(shè)計(jì)難度。

 

2 系統(tǒng)硬件設(shè)計(jì)
2.1 主控模塊
    以S3C2440為核心的主控模塊硬件平臺(tái)的組成如圖2所示。


2.2 超聲波發(fā)射電路
    超聲波發(fā)射電路原理圖如圖3所示。發(fā)射電路主要由反相器74LS04和超聲波發(fā)射換能器T1構(gòu)成,使用CPU內(nèi)部的PWM定時(shí)計(jì)數(shù)器輸出的40 kHz方波信號(hào)。


    一路經(jīng)一級(jí)反相器(U1C與U1E并聯(lián)組成一級(jí))后送到超聲波換能器的一個(gè)電極(T1的1腳);另一路經(jīng)兩級(jí)反相器(U1D為第一級(jí),U1B和U1A組成第二級(jí))后送到超聲波換能器的另一個(gè)電極( T1的2腳 )。用這種推換形式將方波信號(hào)加到超聲波換能器的兩端,可以提高超聲波的發(fā)射強(qiáng)度。輸出端采兩個(gè)反相器并聯(lián),以提高驅(qū)動(dòng)能力。上位電阻R1、R2一方面可以提高反相器74LS04輸出高電平的驅(qū)動(dòng)能力,另一方面可以增強(qiáng)超聲波換能器的阻尼效果。[!--empirenews.page--]
2.3 超聲波接收電路
    超聲波接收電路原理圖如圖4所示。CX20106A是一款紅外線檢波接收的專用芯片,常用于電視機(jī)紅外遙控接收器。其優(yōu)點(diǎn)是簡(jiǎn)單易用,電路連接簡(jiǎn)單,且減少了生產(chǎn)調(diào)試的麻煩。當(dāng)CX20106A接收到40 kHz的信號(hào)時(shí),會(huì)在第7腳產(chǎn)生一個(gè)低電平下降脈沖,這個(gè)信號(hào)可以接到ARM的外部中斷引腳作為中斷信號(hào)輸入。


2.4 USB攝像頭圖像采集模塊
    采用中星微電子ZC0301芯片組的USB數(shù)字?jǐn)z像頭。與模擬攝像頭相比,其優(yōu)勢(shì)在于:CMOS圖像傳感器能直接產(chǎn)生圖像原始數(shù)據(jù);硬件支持標(biāo)準(zhǔn)的JPEG壓縮;具有主流高速的USB總線設(shè)備接口等。對(duì)攝像頭而言,USB總線的上的信息傳輸類(lèi)型通常采用的是實(shí)時(shí)傳輸。USB設(shè)備端提供若干通信端口,主機(jī)與端口間建立起邏輯上的通信管道,進(jìn)行數(shù)據(jù)傳輸。在攝像頭的設(shè)備初始化階段,主機(jī)與0號(hào)端口通信,驅(qū)動(dòng)程序檢測(cè)攝像頭型號(hào)和所有端口信息。進(jìn)入數(shù)據(jù)傳輸階段,主機(jī)與探測(cè)到的實(shí)時(shí)輸入端口建立通信管道,實(shí)時(shí)回傳攝像頭拍攝到的圖像數(shù)據(jù)。
2.5 語(yǔ)音報(bào)警模塊與LCD顯示模塊
    語(yǔ)音報(bào)警模塊采用的是安徽中科大訊飛信息科技有限公司生產(chǎn)的XF-S3011中文語(yǔ)音合成芯片。它是一款針對(duì)嵌入式應(yīng)用領(lǐng)域而設(shè)計(jì)的單芯片處理器,具有合成任意中文文本的能力。XF-S3011通過(guò)串口(UART)接收上位機(jī)發(fā)送的命令和數(shù)據(jù),命令和數(shù)據(jù)是以幀的方式進(jìn)行封裝與發(fā)送,允許發(fā)送的數(shù)據(jù)最大長(zhǎng)度為200個(gè)字節(jié)。其驅(qū)動(dòng)電路是用三極管驅(qū)動(dòng)方式設(shè)計(jì)的。當(dāng)超聲波測(cè)得的距離小于所設(shè)置的閾值時(shí),由S3C2 440發(fā)送控制命令給XF-S3011,啟動(dòng)語(yǔ)音報(bào)警提醒駕駛員注意。顯示模塊使用的是東華3.5寸TFT LCD(分辨率是320×240),采用嵌入式Linux下的Frame Buffer設(shè)備來(lái)驅(qū)動(dòng)LCD。

3 系統(tǒng)軟件設(shè)計(jì)
    本文選擇嵌入式Linux操作系統(tǒng)。它具有可裁剪、內(nèi)核穩(wěn)定、功能強(qiáng)大、支持多種硬件平臺(tái)等特點(diǎn)。首先,在一臺(tái)裝有Linux操作系統(tǒng)的PC機(jī)(宿主機(jī))上建立一個(gè)交叉編譯開(kāi)發(fā)環(huán)境,把S3C2440控制模塊作為目標(biāo)板。然后,采用移植性較好的C語(yǔ)言在PC機(jī)上編寫(xiě)本設(shè)計(jì)所需的底層驅(qū)動(dòng)程序及頂層的應(yīng)用程序,再利用交叉編譯調(diào)試工具編譯、鏈接生成可執(zhí)行代碼,最后向目標(biāo)板移植。
3.1 視頻圖像采集及LCD顯示程序的設(shè)計(jì)
    第l步,采用動(dòng)態(tài)加載ZC0301組芯片的USB攝像頭驅(qū)動(dòng)程序spca5xx。此驅(qū)動(dòng)程序源代碼由4個(gè)部分組成:設(shè)備模塊的初始化模塊、卸載模塊、上層軟件接口模塊和數(shù)據(jù)傳輸模塊。把它放在kernel/driver/usb下解壓,打補(bǔ)丁。在編譯系統(tǒng)內(nèi)核時(shí),在arm linux的kernel目錄下進(jìn)行make menueonfig;在<*>下選擇Multimedia device下的Video for linux,加載Vide04linux模塊,為視頻采集設(shè)備提供編程接口函數(shù)
和相關(guān)數(shù)據(jù)結(jié)構(gòu);(M)選中SPCA5XX這一項(xiàng)。
    第2步,使用Linux的Video4linux來(lái)訪問(wèn)USB攝像頭設(shè)備,進(jìn)行視頻圖像采集,捕獲實(shí)時(shí)的數(shù)據(jù)流。程序流程如圖5所示。


    為程序定義數(shù)據(jù)結(jié)構(gòu):

    [!--empirenews.page--]

    本設(shè)計(jì)是通過(guò)MiniGui加載jpeg來(lái)實(shí)現(xiàn)LCD實(shí)時(shí)顯示USB攝像頭采集到圖像的。在編譯程序時(shí),加上了jpeg庫(kù)的支持。編程的思路就是不斷地從攝像頭采集圖像并存儲(chǔ)在/tmp/l.jpg中。在Linux圖形用戶界面支持系統(tǒng)MiniGUI中,通過(guò)loadbitmap函數(shù)來(lái)加載圖像,而圖像加載后不會(huì)自動(dòng)更新,不能根據(jù)1.jpg的改變自動(dòng)變化。因此,在程序中要設(shè)定一個(gè)定時(shí)器,每隔100 ms刷新屏幕,基本上實(shí)現(xiàn)了實(shí)時(shí)更新。
3.2 超聲波測(cè)距驅(qū)動(dòng)程序的設(shè)計(jì)
    超聲波發(fā)生程序的作用是由PWM定時(shí)計(jì)數(shù)器產(chǎn)生一個(gè)超聲波信號(hào)頻率約40 kHz的方波。采用Timer0,同時(shí)把Timerl打開(kāi)進(jìn)行計(jì)時(shí)。超聲波測(cè)距器主程序利用外部中斷檢測(cè)返回的超聲波信號(hào),一旦發(fā)現(xiàn)立即進(jìn)入中斷程序。進(jìn)入該中斷后立即關(guān)閉Timerl停止計(jì)時(shí),并將測(cè)距成功標(biāo)志字賦值1。各程序流程如圖6~圖8所示。


    當(dāng)主程序檢測(cè)到接收成功的標(biāo)志位后,按下式計(jì)算即可得到車(chē)尾與障礙物之間的距離(設(shè)計(jì)時(shí)取20℃時(shí)的聲速C為344 m/s):
    S=(C·T1)/2
    其中,T1為計(jì)數(shù)器Timerl的計(jì)數(shù)值。
    該部分程序可設(shè)計(jì)為L(zhǎng)inux下字符設(shè)備驅(qū)動(dòng)程序。要使用Linux系統(tǒng)提供一個(gè)設(shè)備驅(qū)動(dòng)接口函數(shù)struct file_operations的數(shù)據(jù)結(jié)構(gòu),來(lái)實(shí)現(xiàn)超聲波傳感器設(shè)備的打開(kāi)、讀寫(xiě)、釋放和控制。定時(shí)器和外部中斷相關(guān)寄存器的初始化和參數(shù)的設(shè)定都是在open()接口函數(shù)中完成的。在此設(shè)備驅(qū)動(dòng)程序中定義的。file_operations的數(shù)據(jù)結(jié)構(gòu)為:

    s3c2440_sonar_open()函數(shù)用于打開(kāi)的設(shè)備。s3c2440_sonar_rcad()和s3c2440_sonar_write()函數(shù)用于讀寫(xiě)設(shè)備。s3c2440_sonar_re-lease()函數(shù)完成中斷的釋放。s3c2440_sonar_ioctl()函數(shù)用于控制設(shè)備中定時(shí)中斷和測(cè)距值,由copy_to_user()函數(shù)和put_user()函數(shù)來(lái)實(shí)現(xiàn)數(shù)據(jù)傳遞,在應(yīng)用程序下打開(kāi)設(shè)備,實(shí)現(xiàn)內(nèi)核態(tài)與用戶態(tài)之間的數(shù)據(jù)傳遞。模塊初始化函數(shù)s3c2440_sonar_init()實(shí)現(xiàn)設(shè)備的初始化、中斷初始化及處理、設(shè)備注冊(cè)等。static void s3c2440_sonar_exit()用于模塊卸載時(shí)中斷停止、資源的釋放等。
3.3 語(yǔ)音報(bào)警程序設(shè)計(jì)
    當(dāng)所測(cè)距離值小于閾值時(shí),由S3C2440發(fā)控制命令給XF-S3011,啟動(dòng)語(yǔ)音模塊。組成一個(gè)語(yǔ)音合成命令幀的部分代碼如下:

    命令合成完畢后,就可以發(fā)送給XF-S3011模塊了。在嵌入式Linux系統(tǒng)中先打開(kāi)XF-S3011設(shè)備文件,然后將此命令幀寫(xiě)入該文件,最后關(guān)閉設(shè)備文件。

結(jié)語(yǔ)
    本文采用嵌入式Linux操作系統(tǒng)和三星公司S3C2440微處理器設(shè)計(jì)的可視與語(yǔ)音報(bào)警為一體的安全倒車(chē)系統(tǒng),具有較高的實(shí)用價(jià)值。在顯示視頻圖像處理的過(guò)程中,能夠通過(guò)超聲波對(duì)車(chē)尾與障礙物之間進(jìn)行測(cè)距,當(dāng)測(cè)距值小于預(yù)設(shè)定的距離時(shí)會(huì)有語(yǔ)音對(duì)駕駛員進(jìn)行報(bào)警提示。經(jīng)實(shí)驗(yàn)驗(yàn)證,該系統(tǒng)運(yùn)行穩(wěn)定,能讓駕駛員準(zhǔn)確地把握車(chē)后路況,提高了倒車(chē)安全性。
 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉