www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于嵌入式Linux操作系統(tǒng)的可視化安全倒車系統(tǒng)

  引言

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

  1 系統(tǒng)方案設(shè)計

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

  


 

  2 系統(tǒng)硬件設(shè)計

  2.1 主控模塊

  以S3C2440為核心的的組成如圖2所示。

  

 

  2.2 超聲波發(fā)射電路

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

  

 

  一路經(jīng)一級反相器(U1C與U1E并聯(lián)組成一級)后送到超聲波換能器的一個電極(T1的1腳);另一路經(jīng)兩級反相器(U1D為第一級,U1B和 U1A組成第二級)后送到超聲波換能器的另一個電極( T1的2腳 )。用這種推換形式將方波信號加到超聲波換能器的兩端,可以提高超聲波的發(fā)射強(qiáng)度。輸出端采兩個反相器并聯(lián),以提高驅(qū)動能力。上位電阻R1、R2一方面可以提高反相器74LS04輸出高電平的驅(qū)動能力,另一方面可以增強(qiáng)超聲波換能器的阻尼效果。

  2.3 超聲波接收電路

  超聲波接收電路原理圖如圖4所示。CX20106A是一款紅外線檢波接收的專用芯片,常用于電視機(jī)紅外遙控接收器。其優(yōu)點(diǎn)是簡單易用,電路連接簡單,且減少了生產(chǎn)調(diào)試的麻煩。當(dāng)CX20106A接收到40 kHz的信號時,會在第7腳產(chǎn)生一個低電平下降脈沖,這個信號可以接到ARM的外部中斷引腳作為中斷信號輸入。

  

 

  2.4 USB攝像頭圖像采集模塊

  采用中星微電子ZC0301芯片組的USB數(shù)字?jǐn)z像頭。與模擬攝像頭相比,其優(yōu)勢在于:CMOS圖像傳感器能直接產(chǎn)生圖像原始數(shù)據(jù);硬件支持標(biāo)準(zhǔn)的JPEG壓縮;具有主流高速的USB總線設(shè)備接口等。對攝像頭而言,USB總線的上的信息傳輸類型通常采用的是實(shí)時傳輸。USB設(shè)備端提供若干通信端口,主機(jī)與端口間建立起邏輯上的通信管道,進(jìn)行數(shù)據(jù)傳輸。在攝像頭的設(shè)備初始化階段,主機(jī)與0號端口通信,驅(qū)動程序檢測攝像頭型號和所有端口信息。進(jìn)入數(shù)據(jù)傳輸階段,主機(jī)與探測到的實(shí)時輸入端口建立通信管道,實(shí)時回傳攝像頭拍攝到的圖像數(shù)據(jù)。[!--empirenews.page--]

  2.5 語音報警模塊與LCD顯示模塊

  語音報警模塊采用的是安徽中科大訊飛信息科技有限公司生產(chǎn)的XF-S3011中文語音合成芯片。它是一款針對嵌入式應(yīng)用領(lǐng)域而設(shè)計的單芯片處理器,具有合成任意中文文本的能力。XF-S3011通過串口(UART)接收上位機(jī)發(fā)送的命令和數(shù)據(jù),命令和數(shù)據(jù)是以幀的方式進(jìn)行封裝與發(fā)送,允許發(fā)送的數(shù)據(jù)最大長度為200個字節(jié)。其驅(qū)動電路是用三極管驅(qū)動方式設(shè)計的。當(dāng)超聲波測得的距離小于所設(shè)置的閾值時,由S3C2 440發(fā)送控制命令給XF-S3011,啟動語音報警提醒駕駛員注意。顯示模塊使用的是東華3.5寸TFT LCD(分辨率是320×240),采用嵌入式Linux下的Frame. Buffer設(shè)備來驅(qū)動LCD。

  3 系統(tǒng)軟件設(shè)計

  本文選擇嵌入式Linux操作系統(tǒng)。它具有可裁剪、內(nèi)核穩(wěn)定、功能強(qiáng)大、支持多種硬件平臺等特點(diǎn)。首先,在一臺裝有Linux操作系統(tǒng)的PC機(jī)(宿主機(jī))上建立一個交叉編譯開發(fā)環(huán)境,把S3C2440控制模塊作為目標(biāo)板。然后,采用移植性較好的C語言在PC機(jī)上編寫本設(shè)計所需的底層驅(qū)動程序及頂層的應(yīng)用程序,再利用交叉編譯調(diào)試工具編譯、鏈接生成可執(zhí)行代碼,最后向目標(biāo)板移植。

  3.1 視頻圖像采集及LCD顯示程序的設(shè)計

  第l步,采用動態(tài)加載ZC0301組芯片的USB攝像頭驅(qū)動程序spca5xx。此驅(qū)動程序源代碼由4個部分組成:設(shè)備模塊的初始化模塊、卸載模塊、上層軟件接口模塊和數(shù)據(jù)傳輸模塊。把它放在kernel/driver/usb下解壓,打補(bǔ)丁。在編譯系統(tǒng)內(nèi)核時,在arm Linux的kernel目錄下進(jìn)行make menueonfig;在<*>下選擇MulTImedia device下的Video for linux,加載Vide04linux模塊,為視頻采集設(shè)備提供編程接口函數(shù)和相關(guān)數(shù)據(jù)結(jié)構(gòu);(M)選中SPCA5XX這一項。

  第2步,使用Linux的Video4linux來訪問USB攝像頭設(shè)備,進(jìn)行視頻圖像采集,捕獲實(shí)時的數(shù)據(jù)流。程序流程如圖5所示。

  

 

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

  

[!--empirenews.page--]

 

  本設(shè)計是通過MiniGui加載jpeg來實(shí)現(xiàn)LCD實(shí)時顯示USB攝像頭采集到圖像的。在編譯程序時,加上了jpeg庫的支持。編程的思路就是不斷地從攝像頭采集圖像并存儲在/tmp/l.jpg中。在Linux圖形用戶界面支持系統(tǒng)MiniGUI中,通過loadbitmap函數(shù)來加載圖像,而圖像加載后不會自動更新,不能根據(jù)1.jpg的改變自動變化。因此,在程序中要設(shè)定一個定時器,每隔100 ms刷新屏幕,基本上實(shí)現(xiàn)了實(shí)時更新。

  3.2 超聲波測距驅(qū)動程序的設(shè)計

  超聲波發(fā)生程序的作用是由PWM定時計數(shù)器產(chǎn)生一個超聲波信號頻率約40 kHz的方波。采用Timer0,同時把Timerl打開進(jìn)行計時。超聲波測距器主程序利用外部中斷檢測返回的超聲波信號,一旦發(fā)現(xiàn)立即進(jìn)入中斷程序。進(jìn)入該中斷后立即關(guān)閉Timerl停止計時,并將測距成功標(biāo)志字賦值1。各程序流程如圖6~圖8所示。

  

 

  當(dāng)主程序檢測到接收成功的標(biāo)志位后,按下式計算即可得到車尾與障礙物之間的距離(設(shè)計時取20℃時的聲速C為344 m/s):

  S=(C·T1)/2

  其中,T1為計數(shù)器Timerl的計數(shù)值。

  該部分程序可設(shè)計為Linux下字符設(shè)備驅(qū)動程序。要使用Linux系統(tǒng)提供一個設(shè)備驅(qū)動接口函數(shù)struct file_operations的數(shù)據(jù)結(jié)構(gòu),來實(shí)現(xiàn)超聲波傳感器設(shè)備的打開、讀寫、釋放和控制。定時器和外部中斷相關(guān)寄存器的初始化和參數(shù)的設(shè)定都是在open()接口函數(shù)中完成的。在此設(shè)備驅(qū)動程序中定義的。file_operations的數(shù)據(jù)結(jié)構(gòu)為:

  

 

  S3C2440_sonar_open()函數(shù)用于打開的設(shè)備。S3C2440_sonar_rcad()和S3C2440_sonar_write()函數(shù)用于讀寫設(shè)備。S3C2440_sonar_re-lease()函數(shù)完成中斷的釋放。S3C2440_sonar_ioctl()函數(shù)用于控制設(shè)備中定時中斷和測距值,由copy_to_user()函數(shù)和put_user()函數(shù)來實(shí)現(xiàn)數(shù)據(jù)傳遞,在應(yīng)用程序下打開設(shè)備,實(shí)現(xiàn)內(nèi)核態(tài)與用戶態(tài)之間的數(shù)據(jù)傳遞。模塊初始化函數(shù)S3C2440_sonar_init()實(shí)現(xiàn)設(shè)備的初始化、中斷初始化及處理、設(shè)備注冊等。static void S3C2440_sonar_exit()用于模塊卸載時中斷停止、資源的釋放等。

  3.3 語音報警程序設(shè)計

  當(dāng)所測距離值小于閾值時,由S3C2440發(fā)控制命令給XF-S3011,啟動語音模塊。組成一個語音合成命令幀的部分代碼如下:

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

  結(jié)語

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

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

摘 要:設(shè)計一種運(yùn)行在嵌入式Linux平臺下的智能家居控制系統(tǒng)的實(shí)現(xiàn)方案,該系統(tǒng)采用ARM9微處理器S3C2440作 為主處理器,通過傳感器模塊對溫度、濕度、煙霧信息等進(jìn)行檢測;通辻USB接口的攝像頭采集視頻信息,采用J...

關(guān)鍵字: S3C2440 Linux 傳感器 GPRS 遠(yuǎn)程監(jiān)控

摘要:介紹了一種以基于ARM9內(nèi)核的S3C2440<處理器為硬件核心的嵌入式Linux車載CAN總線智能節(jié)點(diǎn)的設(shè)計方法,詳細(xì)描述了CAN總線控制器MCP2510的特點(diǎn)以及接口電路,同時給出了嵌入式Linux下的底層驅(qū)動程...

關(guān)鍵字: CAN總線 ARM S3C2440 嵌入式Linux 智能終端

摘 要:針對當(dāng)下比較通用的USB_WiFi無線通信芯片在嵌入式系統(tǒng)開發(fā)應(yīng)用中的具體要求,分析 Linux系統(tǒng)下基于ARM9處理芯片S3C2440 的USB_ WiFi驅(qū)動程序。結(jié)合 S3C2440與AR9271的接口電路...

關(guān)鍵字: 關(guān)鍵詞 WiFi無線通信 Linux S3C2440 驅(qū)動程序 無線網(wǎng)絡(luò)設(shè)備

本文基于ARM9芯片的S3C2440和Linux操作系統(tǒng),設(shè)計了一種SPI驅(qū)動程序,該驅(qū)動程序功能可靠靈活、易于移植,可應(yīng)用于多種嵌入式平臺,實(shí)現(xiàn)ARM與設(shè)備之間的通信。

關(guān)鍵字: S3C2440 SPI arm9 Linux ARM

在嵌入式開發(fā)過程中,許多系統(tǒng)通常使用串口驅(qū)動來滿足通信要求,但在實(shí)際應(yīng)用中,使用SPI通信方式會更加高效和快捷。

關(guān)鍵字: S3C2440 Linux ARM

Fsl610是一款采用專利數(shù)字技術(shù)生產(chǎn)的高級電源管理控制器件,該器件可為數(shù)碼相機(jī)、智能手機(jī)、個人PDA和筆記本電腦等移動設(shè)備提供完全可編程的電源系統(tǒng)解決方案。

關(guān)鍵字: 高級電源管理芯片 FS1610 S3C2440

筆者學(xué)習(xí)嵌入式Linux也有一段時間了,很奇怪的是很多書講驅(qū)動編程方面的知識,也有很多書將ARM9方面的知識,但是從以前51形式的(對寄存器直接操作,初始化芯片的功能模塊)編程方法,和思維模式,變換為基于Linux操作

關(guān)鍵字: 嵌入式LINUX LINUX編程 函數(shù) OCT

1 Uclinux和Blackfin簡介1. 1 UcLinux簡介Uclinux是當(dāng)前廣泛應(yīng)用的一種嵌入式Linux操作系統(tǒng),是一個完全符合GNU/GPL公約的項目,與UNIX完全兼容,完全開放源碼。英文單詞中

關(guān)鍵字: 嵌入式LINUX BLACKFIN處理器 UCLINUX HELLO

linux下的進(jìn)程通信手段基本上是從Unix平臺上的進(jìn)程通信手段繼承而來的。而對Unix發(fā)展做出重大貢獻(xiàn)的兩大主力AT&T的貝爾實(shí)驗(yàn)室及BSD(加州大學(xué)伯克利分校的伯克利軟件發(fā)布中心

關(guān)鍵字: 進(jìn)程 通信設(shè)計 LINUX操作系統(tǒng) 通信

S3C2440一共有60個中斷源,其中有15個子中斷源,它們與SUBSRCPND寄存器中的每一位相對應(yīng),其他45個中斷源與SRCPND中的每一位相對應(yīng)。要注意的是EINT4~7對應(yīng)的是同一位SRCPN

關(guān)鍵字: S3C2440 寄存器 PND RC

嵌入式軟件

15715 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉