基于嵌入式ARM的圖像采集與傳輸設計

發(fā)布時(shí)間:2010-3-25 20:09    發(fā)布者:李寬
關(guān)鍵詞: arm , 采集 , 傳輸 , 嵌入式 , 圖像
0 引言

隨著(zhù)嵌入式技術(shù)的迅猛發(fā)展和Linux在信息行業(yè)中的廣泛應用,視頻采集與傳輸系統作為遠程視頻監控、可視電話(huà)會(huì )議和工業(yè)自動(dòng)控制領(lǐng)域的一項核心技術(shù),近年來(lái)已經(jīng)得到了飛速的發(fā)展。本文在基于嵌入式Linux系統平臺上,采用USB攝像頭捕捉視頻信號,利用V4L內核應用編程接口函數,實(shí)現了視頻連續幀圖像的采集,并保存成文件的形式利用無(wú)線(xiàn)傳輸方式傳輸給接收端。這里著(zhù)重討論視頻采集發(fā)送端的實(shí)現。

1 系統組成

1.1 統的硬件構成

本系統包括發(fā)送端和接收端2部分,兩部分均采用Samsung公司生產(chǎn)的S3C2410處理器做硬件開(kāi)發(fā)平臺。S3C2410在片上集成了豐富的組件:分開(kāi)的16 KB指令Cache和16 KB數據Cache、用于虛擬存儲器管理的MMU、支持STN和TFT的LCD控制器、NAND Flash啟動(dòng)裝載器、具有片選邏輯和SDRAM控制器的系統管理器、3通道UART、4通道DMA、4通道PWM定時(shí)器、I/O口、RTC、8通道10 位ADC觸摸屏接口、I2C總線(xiàn)接口、I2S總線(xiàn)接口、USB主設備、USB從設備、SD卡和MMC卡接口、2通道的SPI以及PLL時(shí)鐘發(fā)生器,還采用了AMBA(advanced micrcocontroller bus architecture)新型總線(xiàn)結構。

應用S3C2410處理器平臺搭建的發(fā)送端硬件結構如圖1所示:包括S3C2410處理器、RS232接口、JTAG接口、RJ-45接口、SDRMA、 Flash、電源、通過(guò)USB口連接的視頻采集模塊和通過(guò)USB接口連接的視頻發(fā)射模塊。RS232串口用于人機交互及低速數據的收發(fā),應用電平轉換芯片 MAX-323進(jìn)行串口電平和TTL/CMOS電平的轉換。JTAG接口用于下載Bootloader。RJ-45接口用于和以太網(wǎng)連接,下載操作系統 Linux內核、根文件系統和應用軟件。SDRMA用于系統的數據存儲器、Flash用于系統的程序存儲器。



應用S3C2410處理器平臺搭建的接收端硬件電路如圖2所示:與發(fā)送終端相比,多了SD卡和LCD顯示器。SD卡主要用來(lái)存儲數據,LCD顯示器主要用來(lái)顯示視頻圖像。



1.2 系統軟件設計

系統的軟件構成分為引導驅動(dòng)程序、操作系統、文件系統和應用程序4部分,如圖3所示。引導驅動(dòng)程序在系統啟動(dòng)時(shí)進(jìn)行內存重映射,將保存在Flash中的操作系統和應用程序重新映射到SDRAM中。Linux的內核版本為L(cháng)inIix2.6。文件系統是Yaffs,它包括模塊、配置文件和庫等。系統的應用程序建立在嵌入式Linux內核、攝像頭驅動(dòng)和文件系統之上。



2 視頻采集的具體實(shí)現

USB攝像頭連接簡(jiǎn)單、使用靈活、價(jià)格低廉且具有良好的性能,因此,得到了廣泛的應用。Linux內核包含了多種USB攝像頭驅動(dòng),最常用的有基于 OV5ll及其兼容芯片。OV511芯片主要包括CAMERA接口、DRMA接口、ISO FIFO接口和OmniCE以及USB控制器等部分。本設計使用的是在低端市場(chǎng)占有率較高的中芯微公司生產(chǎn)的ZC030x系列攝像頭芯片。Linux系統中的視頻子系統’Vide04linux為視頻應用程序提供了一套統一的API,視頻應用程序通過(guò)調用API即可操作各種不同的視頻捕獲設備,包括電視卡、視頻捕捉卡和USB攝像頭等。本設計的具體實(shí)現過(guò)程如下所述:

2.1 攝像頭驅動(dòng)的實(shí)現

1)配置Vide04linux內核

在終端使用make menuconfig命令打開(kāi)S3C24lOlinux內核編譯的main menu窗口,并進(jìn)入“multimedia device———>”菜單選項,然后將Video for Linux配置為模塊,即:

    Device driver———>
    Multimedia devices———>
    <*>Video for linux

2)配置OV511驅動(dòng)

返回主菜單,在進(jìn)入“USB support———>”菜單選項,然后將USB OV5llcamera support設置為模塊,即:

    SUB suppor———>
    <*>USB OV5llcamera support(NEW)

3)模塊安裝

執行以下命令安裝視頻輸入模塊:

    insmod videodev.o

執行以下命令安裝視頻輸入設備驅動(dòng)模塊:

    insmod usbcore.o
    insmod usb-ohci-s3c2410.ko
    insmod ov511.o

由于使用的設備是USB接口的攝像頭,所以在加載ov511.o模塊前,需要加載USB內核驅動(dòng)和主機控制器驅動(dòng)。

2.2 利用Vide041inux實(shí)現圖像采集

在安裝了圖像采集設備驅動(dòng)后,只需要再編寫(xiě)一個(gè)對視頻采集的應用程序就可以采集視頻圖像。在Linux系統中,視頻文件是設備文件,可以像訪(fǎng)問(wèn)普通文件一樣對其進(jìn)行讀寫(xiě),攝像頭文件一般是/dev/v4l/video。在進(jìn)行視頻捕捉之前,需要做一些必要的設置工作。這些設置涉及到如下結構:

    struct video_picture
    {
    _u1 6 brightness;//亮度
    _u16 hue;
    _u16 Colour;
    _u16 contrast;//對比度
    _u16 whiteness;//黑色和白色
    _u16 depth;//顏色深度
    _u16 palette;//調色板
    };
    Strct video_windowr
   {
   _u32 x,y;//窗體位置
   _u32 width,height;//窗體尺寸
   _u32 chromakey;
   _u32 flags;
   Struct video_clip_user*clips;
   Int clipeount:
       define VIDEO_WINDOW_INTERLACE 1
       define VIDEO_WINDOW_CHROMAKEY 16
       define VIDEO_CLIP_BITMAP-l
       define VIDEO_CLIPMAP_SIZE(128*625)
    };
    struct video_capture
   {
    _u32 x,y;//圖像偏移
    _u32 width,height;//捕捉區域
    _u16 decimation;//采集間隔
    _u16 flags;//采集標志
       define VIDEO_CAPTUREl_ODD O
       define VIDEO_CAPTURE_EVEN 1
    };

V4L下視頻采集編程首先要打開(kāi)視頻設備:

    Int fd=open(“/dev/v4l/video”,O_RDONLY);
    If(fd
接著(zhù)對攝像頭參數進(jìn)行設置。一般是先通過(guò)I/O控制命令讀取設備信息,然后對特定項進(jìn)行修改,最后通過(guò)I/O控制命令保存到內核中。由于篇幅有限源程序不再贅述。

獲取基本信息后,可以輸出顯示,也可以通過(guò)ioctl系統調用對這些值進(jìn)行修改。然后調用函數 Char*Carmera_get_image(video_device*vd)獲得圖像數據指針。此函數比較重要,關(guān)系到圖像采集的效率。獲取圖像數據有2種方法:一是通過(guò)映射得到視頻驅動(dòng)的數據緩沖,然后直接對映射后的緩沖進(jìn)行讀操作;二是直接讀設備,及調用read函數。下面分別介紹:

(1)read系統調用方式比較簡(jiǎn)單,只需將前面得到攝像頭參數傳入read函數中,得到圖像數據指針picture_p后返回即可:read(vd->fd,picture_p,width*hight);其中vd_>fd為設備文件描述符。

(2)利用mmap方式先使用ioctl(fd,VIDIOCGMBUF,&grab_vm)函數獲得攝像頭存儲緩沖區的幀信息,之后修改 voideo_mmap中的設置,例如重新設置圖像幀的垂直及水平分辨率、彩色顯示格式,使用如下語(yǔ)句:

    grab_buf.height=240;
    grab_buf.width=320;
    grab—buf.format=VIDEO_PALETTE_RGB24;

接著(zhù)把攝像頭對應的設備文件映射到內存區,具體使用grab_data=(unsigned char*)mmap(O,grab_vm.size,PROT_READ|PROT_WRITE,MAP_SHARED,grab_fd,O)操作。這樣設備文件的內容就映射到內存區,該映射內容區可讀可寫(xiě)并且不同進(jìn)程間可共享。該函數成功時(shí)返回圖像數據的指針,失敗時(shí)返回值為-1。

3 無(wú)線(xiàn)傳輸模塊

本系統選用西門(mén)子的MC235作為GPRS通信模塊,來(lái)實(shí)現圖像的無(wú)線(xiàn)傳輸。該模塊結合語(yǔ)音、數據傳輸、短信服務(wù)等功能,最大傳輸速率可以達到85.6 Kbps,具有豐富的AT指令使模塊與微處理器通信,功能強大,操作靈活方便,特別適用于數據的監測和傳輸。

在進(jìn)行GPRS傳輸操作之前需對模塊進(jìn)行設置,主要有:(1)設置通信波特率;(2)設置接入網(wǎng)關(guān);(3)設置移動(dòng)終端類(lèi)別;(4)測試GPRS服務(wù)是否開(kāi)通,激活GPRS功能。這些設置都在主程序的初始化代碼段完成。通過(guò)測試,GPRS驅動(dòng)正常工作,能很好地支持數據/命令復合協(xié)議傳輸,其協(xié)議的丟包率、吞吐量等性能指標與無(wú)線(xiàn)模塊的指標無(wú)實(shí)質(zhì)性差別,整個(gè)系統工作正常,基本達到設計要求。

4 結束語(yǔ)

本文基于S3C2410的硬件平臺和嵌入式Linux的軟件平臺,實(shí)現了視頻信號的采集和網(wǎng)絡(luò )傳輸。發(fā)送端由于把圖像壓縮和網(wǎng)絡(luò )功能集成到一個(gè)體積很小的設備內,并直接通過(guò)無(wú)線(xiàn)方式接入GPRS網(wǎng),省掉各種復雜的電纜連接,安裝方便;用軟件的方法替代了以往許多用硬件模塊實(shí)現的功能,同時(shí)實(shí)現了收發(fā)雙方體積的小型化和低功耗,在網(wǎng)絡(luò )狀況較為理想的情況下,系統在圖像分辨率為352×288,像素為16位的情況下,可以實(shí)現每秒鐘傳送1幀圖像。整個(gè)系統具有穩定可靠、安裝簡(jiǎn)便、成本低廉等特點(diǎn),可擴展應用在工業(yè)控制、視頻會(huì )議系統、可視電話(huà)、遠程監控系統等諸多領(lǐng)域。

參考文獻

   1. 孫天澤,袁文菊,張海峰.嵌入式設計及Linux驅動(dòng)開(kāi)發(fā)指南一基于ARM9處理器[M].北京:電子工業(yè)出版社,2005:16-51.
   2. 徐英慧,馬忠梅,王磊,等.ARM9嵌入式系統設計--基于S3C2410與Linux[M].北京:北京航空航天大學(xué)出版社,2007:342-371.
   3. RUBINI A.LINUX設備驅動(dòng)程序[M].魏永明,譯.北京:中國電力出版社,2002:562-598.
   4. 王艷,吳旭光,趙勛峰.基于A(yíng)RM的嵌入式手持設備的系統設計[J].電子測量技術(shù),2007,30(3):47-49.
   5. 馮國進(jìn).嵌入式Linux驅動(dòng)程序設計從入門(mén)到精通[M].北京:清華大學(xué)出版社,2008:102-149.
   6. 管耀武,楊宗德.ARM嵌入式無(wú)線(xiàn)通信系統開(kāi)發(fā)實(shí)例精講[M].北京:電子工業(yè)出版社,2006:321-349.
   7. 蒲城,張濤.GPRS遠程無(wú)線(xiàn)監測系統[J].電子測量技術(shù),2006,29(4):166-167.
   8. 黃濤,白創(chuàng ),徐靖.嵌入式無(wú)線(xiàn)瓦連系統開(kāi)發(fā)從實(shí)踐到提高[M].北京:中國電力出版社,2007:168-239.

作者:嚴新忠  陳雨  (天津科技大學(xué)電子信息與自動(dòng)化學(xué)院,天津,300222 )
來(lái)源:國外電子測量技術(shù) 2009 28(11)
本文地址:http://selenalain.com/thread-9897-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页