當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于Linux的嵌入式視覺系統(tǒng)設(shè)計(jì)方案

摘 要:結(jié)合當(dāng)前嵌入式產(chǎn)品的發(fā)展方向,提出了一種基于ARM9 和Linux 的嵌入式視覺系統(tǒng),闡述了其硬件架構(gòu)與軟件組成,通過配置和加載各種設(shè)備驅(qū)動(dòng)程序,利用V4L 接口函數(shù)實(shí)現(xiàn)圖像采集與顯示。設(shè)計(jì)的嵌入式視覺系統(tǒng)體積小,成本低,可移植性強(qiáng),通過實(shí)驗(yàn)波形和數(shù)據(jù)驗(yàn)證了其具有良好的圖像采集和顯示性能。

1 引言

視覺系統(tǒng)在現(xiàn)代工業(yè)生產(chǎn)自動(dòng)化系統(tǒng)中應(yīng)用非常廣泛,主要集中于藥品檢測(cè)分裝、印刷色彩檢測(cè)、集成電路生產(chǎn)、精密電子產(chǎn)品裝配、智能機(jī)器人識(shí)別導(dǎo)航等領(lǐng)域。隨著Internet 的普及,現(xiàn)代社會(huì)已進(jìn)入后PC 時(shí)代,嵌入式技術(shù)越來越與人們的生活緊密結(jié)合。

嵌入式視覺系統(tǒng)可通過USB 總線等將圖像的獲取、圖像處理、顯示設(shè)備集成于一體,成本相對(duì)較低,體積小巧,可以方便地安裝在載體身上,故研究嵌入式的視覺系統(tǒng)具有一定的實(shí)際意義。

2 嵌入式視覺系統(tǒng)總體方案設(shè)計(jì)

嵌入式視覺系統(tǒng)由嵌入式硬件平臺(tái)、操作系統(tǒng)、圖像采集和圖像顯示四大部分組成,原理框圖如下圖1 所示。

 

 

圖1 視覺系統(tǒng)原理框圖

S3C2410X 芯片是韓國(guó)三星電子公司推出的一款基于ARM920T 內(nèi)核的16/32 位RISC 嵌入式微處理器。該芯片集成了支持 TFT 的 LCD 控制器 、3 個(gè)通道的UART 等控制器和豐富的外部接口,MPLL 產(chǎn)生主時(shí)鐘,能夠使處理器工作頻率最高達(dá)到203MHz,此工作頻率能夠使處理器輕松運(yùn)行WinCE、Linux 等操作系統(tǒng)以及進(jìn)行較為復(fù)雜的數(shù)據(jù)處理。該芯片可以滿足低成本、高速度、低功耗的設(shè)計(jì)需求,非常適合作為嵌入式視覺系統(tǒng)的硬件平臺(tái)。

Linux 操作系統(tǒng)同目前廣泛應(yīng)用的嵌入式操作系統(tǒng)如pSOS、VxWorks、winCE 相比,具有可移植性好、網(wǎng)絡(luò)功能強(qiáng)、有優(yōu)秀的GNU 編譯工具支持等優(yōu)點(diǎn),更重要的是Linux 的開放源代碼和免費(fèi)的優(yōu)點(diǎn)使得系統(tǒng)成本顯著降低,因此選用Linux 操作系統(tǒng)作為軟件開發(fā)平臺(tái)。

3 嵌入式視覺系統(tǒng)硬件設(shè)計(jì)

3.1 圖像采集

選購(gòu)攝像頭,優(yōu)先考慮Linux 內(nèi)核公開支持的攝像頭芯片。由于目前Linux 操作系統(tǒng)使用的內(nèi)核版本僅自帶了ov511 芯片的攝像頭驅(qū)動(dòng),因此,系統(tǒng)的圖像采集模塊由CMOS 圖像傳感器OV7620 和后端處理芯片OV511+組成。本系統(tǒng)在IIC 總線模式下通過設(shè)置OV7620 的功能寄存器,使OV7620 工作于連續(xù)掃描方式,RGB 原始數(shù)據(jù)16 位輸出方式。OV7620 有4 個(gè)同步信號(hào):VSYNC(垂直同步信號(hào))、FODD(奇數(shù)場(chǎng)同步信號(hào))、HSYNC(水平同步信號(hào))和PCLK(像素同步信號(hào))[3].當(dāng)采用連續(xù)掃描方式時(shí),只使用VSYNC 和HSYNC、PCLK 三個(gè)同步信號(hào)。通過設(shè)定內(nèi)部寄存器,控制輸出幀率在0.5 幀/s~30 幀/s 之間變化,窗口輸出設(shè)置為:640×480,經(jīng)過設(shè)定后的OV7620 輸出時(shí)序如圖2 所示:

 

 

圖2 OV7620 輸出時(shí)序圖

3.2 圖像傳輸

圖像采集幀率與數(shù)據(jù)傳輸接口的數(shù)據(jù)傳輸速率之間的匹配是圖像采集的一個(gè)重要問題。如果圖像傳感器的采集頻率大于接口的最大可傳輸數(shù)據(jù)率,會(huì)引起緩沖區(qū)內(nèi)的圖像數(shù)據(jù)堵塞,造成數(shù)據(jù)混亂,出現(xiàn)無規(guī)律的亂碼。因此,為了保證圖像數(shù)據(jù)傳輸時(shí)的完整性和可靠性,接口數(shù)據(jù)的傳輸速率應(yīng)滿足圖像傳感器的采集速率。下面是對(duì)本采集系統(tǒng)的傳輸匹配計(jì)算。

已知:OV7620 的最大主時(shí)鐘頻率27MHz,最大數(shù)據(jù)率13.5MB/S.以O(shè)V7620 默認(rèn)輸出為例:輸出格式VGA,分辨率640×480,幀率15 幀/秒,輸出數(shù)據(jù)格式為16 位彩色數(shù)據(jù)。

一幀圖像的數(shù)據(jù)量: (640 × 480 × 16)/8=614400B=0.586MB.

一秒鐘的最大數(shù)據(jù)量:0.586×15=8.79MB/S.

因?yàn)閳D像采集中圖像數(shù)據(jù)不是連接不斷的采集,幀與幀之間有場(chǎng)消隱時(shí)間,行與行之間也有行消隱時(shí)間,所以13.5MB/S> 8.79MB/S.基于這個(gè)采集速率,要實(shí)現(xiàn)VGA 圖像15 幀/秒的圖像采集,嵌入式主機(jī)與USB 接口速度應(yīng)與圖像傳感器的采集速度相匹配,至少不能小于9MB/S 的速度,否則會(huì)出現(xiàn)數(shù)據(jù)在傳輸通道中堵塞,致使數(shù)據(jù)出現(xiàn)混亂。系統(tǒng)采用USB1.0 作為傳輸接口,系統(tǒng)采集的圖像數(shù)據(jù)為9MB/S,USB 傳輸速率大于9MB/S,故采集頻率與傳輸頻率匹配。

3.3 圖像顯示

液晶顯示器LCD 以省電和顯示大量信息等優(yōu)點(diǎn)而成為現(xiàn)代儀器儀表用戶界面的主要發(fā)展方向。本視覺系統(tǒng)采用三菱公司的8.4‘彩色TFT-LCD 作為圖像顯示模塊, 液晶屏大小為640 × 480 , 型號(hào):AA084VC03.

系統(tǒng)需要兩種電源供電,分別是5V 和12V.5V電源用于核心板供電,USB 圖像采集模塊由核心板供電,12V 電源給液晶屏供電,這些電壓由單獨(dú)的電源模塊提供。整個(gè)視覺系統(tǒng)的硬件結(jié)構(gòu)圖如下圖3 所示。

 

 

圖3 視覺系統(tǒng)硬件結(jié)構(gòu)圖。

4 嵌入式視覺系統(tǒng)軟件設(shè)計(jì)

視覺系統(tǒng)軟件組成主要包括操作系統(tǒng)、設(shè)備驅(qū)動(dòng)程序,圖像采集和圖像顯示程序。操作系統(tǒng)負(fù)責(zé)整個(gè)系統(tǒng)的管理,進(jìn)程調(diào)度等,為用戶使用開發(fā)板和外部設(shè)備提供最基本的接口程序,管理著開發(fā)板上的資源。

移植Linux2.6.14 內(nèi)核作為嵌入式視覺系統(tǒng)的操作系統(tǒng)。設(shè)備驅(qū)動(dòng)程序包括USB 攝像頭驅(qū)動(dòng)和LCD 液晶屏驅(qū)動(dòng),通過在Linux 系統(tǒng)中配置和加載完成。

4.1 圖像采集程序

確定USB 攝像頭被正常驅(qū)動(dòng)后,下一步就是使用Video4Linux 提供的API 函數(shù)集來編寫圖像采集程序。

具體圖像數(shù)據(jù)的捕獲過程為:打開攝像頭設(shè)備文件、查詢和確認(rèn)設(shè)備性能、設(shè)置圖像的寬和高、設(shè)置色深、建立內(nèi)存映射、讀取圖像數(shù)據(jù)、關(guān)閉設(shè)備。在上述過程中主要考慮如何讀取圖像數(shù)據(jù),V4L 在內(nèi)核include/linux/videodev.h 文件中定義了一些重要的數(shù)據(jù)結(jié)構(gòu),進(jìn)行圖像采集時(shí),通過對(duì)這些數(shù)據(jù)結(jié)構(gòu)的操作來獲得圖像數(shù)據(jù)。首先需要將顯示設(shè)備的地址映射到系統(tǒng)地址上來,調(diào)用函數(shù)mmap()。該函數(shù)返回地址就是存放圖像數(shù)據(jù)的地址, 每一幀圖像都偏移固定的長(zhǎng)度, 而攝像頭取得圖像會(huì)包含若干幀,這樣通過周而復(fù)始的進(jìn)行就可以將圖像數(shù)據(jù)采集下來。具體過程和涉及到的函數(shù)如下:[!--empirenews.page--]

打開設(shè)備文件: int device = open (/dev/v4l/video0,O_RDWR);

內(nèi)存映射:char* memoryMap = (char*)mmap (0,memoryBuffer.size, PROT_READ PROT_WRITE,MAP_SHARED, device, 0);

圖像數(shù)據(jù): memoryMap + memory Buffer.offsets[bufferIndex]

4.2 圖像顯示程序

本系統(tǒng)采用直接將數(shù)據(jù)寫入FrameBuffer 中來顯示圖像。FrameBuffer 設(shè)備是運(yùn)行在Linux 控制臺(tái)上的一個(gè)優(yōu)秀的圖形接口,幾乎支持所有硬件,提供了統(tǒng)一的API 接口,很好地實(shí)現(xiàn)了硬件無關(guān)性。FrameBuffer的設(shè)備節(jié)點(diǎn)是/dev/fb* , 在編譯內(nèi)核時(shí)選中FrameBuffer.LCD 顯示程序流程圖如圖4 所示:

 

 

圖4 圖像顯示程序流程圖

應(yīng)用程序編寫完之后,用交叉編譯環(huán)境對(duì)這個(gè)文件進(jìn)行編譯,沒有錯(cuò)誤后可生成cam 可執(zhí)行文件。然后把cam 拷貝到根目錄下的bin 文件夾,在主機(jī)windows 系統(tǒng)超級(jí)終端下輸入命令:

#ln -s /dev/v4l/video0 /dev/video0

# cam 640 480 16 video0

就可以在屏幕上看到采集的圖像了。設(shè)計(jì)的嵌入式視覺系統(tǒng)樣機(jī)如圖5 所示。

 

 

圖5 嵌入式視覺系統(tǒng)樣機(jī)。

5 視覺系統(tǒng)性能測(cè)試

S3C2410 控制板的I/O 口資源有限,因此,對(duì)圖像采集的控制信號(hào)線采用普通I/O 口,而不是用中斷I/O 口與其攝像頭模塊相連,因此只能用軟件實(shí)時(shí)檢測(cè)I/O 的電平狀態(tài),決定何時(shí)采集開始,何時(shí)讀數(shù)據(jù),何時(shí)結(jié)束。為了采集到圖像數(shù)據(jù)并能分辨出來,必須能夠跟蹤控制信號(hào)的變化狀態(tài)。

由于I/O 口的電平的變化頻率遠(yuǎn)低于攝像頭控制信號(hào)的變化頻率,如果不對(duì)攝像頭模塊進(jìn)行降頻處理,這將導(dǎo)致I/O 口無法跟蹤控制信號(hào)變化,即將無法判斷幀、行、點(diǎn)何時(shí)開始與結(jié)束等狀態(tài)信息。當(dāng)攝像頭的最高頻率(點(diǎn)象素頻率最高)降到1MHZ 左右,系統(tǒng)就能跟蹤并完整的采集到圖像信息,進(jìn)一步處理之后完好的顯示出來。圖6 是示波器對(duì)幀、行、點(diǎn)信號(hào)及Y0 信號(hào)的波形圖。

 

 

圖6 信號(hào)波形圖。

從上圖可以看出,系統(tǒng)的控制信號(hào)非常完整和穩(wěn)定,沒有出現(xiàn)毛刺、變形等情況,給檢測(cè)讀取帶來了好處。Y0 的波形圖有些段是低電平,出現(xiàn)的位置不一樣,是因?yàn)閿z像頭移動(dòng)時(shí),環(huán)境光發(fā)生了變化,引起整個(gè)Y 數(shù)據(jù)變化。

表1 采集到的實(shí)驗(yàn)數(shù)據(jù)(示波器采用x10 檔)。

 

 

把示波器調(diào)整到x10 檔,在不同情況下,多次采集YSYN 信號(hào)、HREF 信號(hào)、PCLK 信號(hào)的峰-峰值、平均值、周期、頻率等數(shù)據(jù),從Y0~Y7 中選擇Y0信號(hào)進(jìn)行觀察。從數(shù)據(jù)中可以看出各信號(hào)的峰-峰值變化幅度不大,尤其是信號(hào)的頻率比較穩(wěn)定。Y0 數(shù)據(jù)信號(hào)很規(guī)整,那么其他數(shù)據(jù)信號(hào)如Y1~Y7 也是如此。

多次實(shí)驗(yàn)數(shù)據(jù)如下表1 所示。

測(cè)試硬件性能穩(wěn)定之后,在Linux 系統(tǒng)下把圖像采集、圖像顯示和保存圖像命令寫成一個(gè)腳本,放在文件系統(tǒng)etc/init.d 目錄下。重新把文件系統(tǒng)下載到開發(fā)板里,當(dāng)開機(jī)啟動(dòng)后,系統(tǒng)會(huì)自動(dòng)執(zhí)行圖像采集、顯示和保存。

6 結(jié)論

本文主要基于S3C2410 開發(fā)板和Linux 操作系統(tǒng)設(shè)計(jì)了嵌入式視覺系統(tǒng)。該視覺系統(tǒng)不僅可以較好地實(shí)現(xiàn)圖像采集和顯示,還可實(shí)現(xiàn)圖像存儲(chǔ)、網(wǎng)絡(luò)獲取圖像等功能,并且可以在該基礎(chǔ)上研究圖像處理等算法。與基于PC 組合的視覺系統(tǒng)相比,結(jié)構(gòu)簡(jiǎn)單,體積和重量減小,功耗低,可移植性強(qiáng)、功能擴(kuò)展方便,成本顯著降低,所以對(duì)這種嵌入式視覺系統(tǒng)研究具有相當(dāng)重要的實(shí)用價(jià)值。

本站聲明: 本文章由作者或相關(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日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

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

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

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

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(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ì)開幕式在貴陽(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)閉