《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于ARM920T處理器核的圖像采集系統設計
基于ARM920T處理器核的圖像采集系統設計
摘要:  本文設計了一種嵌入式視頻采集系統,該系統小巧,并且在保證當前信息完整的情況下,盡可能少的占用存儲容量,實現了該系統的圖像采集、存儲和重現功能。在硬件規劃上,采用實用簡單的USB接口通信。且系統中預留了豐富的外設接口,便于今后的擴展升級。
關鍵詞: ARM ARM920T S3C2410
Abstract:
Key words :

  引言

  隨著微電子技術和軟件技術的發展,嵌入式技術也有了長足的進步。因此,基于嵌入式技術的圖像數據采集與存儲監控系統以其直觀、方便、信息內容豐富的特點,廣泛應用于許多場合。

  處理器性能的提高,接口傳輸數據能力的增強,特別是未來高容量存儲器的出現,圖像監控系統的小型化、多功能化是易于實現的,嵌入式技術引入圖像監控系統后,兩個問題需要解決,一是靈活的圖像監控系統結構調整,二是適合監控規范、集圖像和信號檢測與控制一體的交互式軟件的設計。 

  1 系統平臺的搭建

  1.1 硬件平臺的搭建

  ARM(AdvancedRISCMachines),既可以認為是一個公司的名字,也可以認為是對一類微處理器的統稱,還可以認為是一種技術的名字。

  S3C2410處理器是Samsung公司基于ARM公司的ARM920T處理器核,采用0.18um制造工藝的32位微控制器。該處理器擁有:獨立的16KB指令Cache和16KB數據Cache,MMU,支持TFT的LCD控制器,NAND閃存控制器,3路UART,4路DMA,4路帶PWM的Timer,I/O口,RTC,8路10位ADC,TouchScreen接口,IIC-BUS接口,IIS-BUS接口,2個USB主機,1個USB設備,SD主機和MMC接口,2路SPI。S3C2410處理器最高可運行在203MHz。

  由S3C2410為核心的圖像采集系統的硬件結構如圖1所示。因為S3C2410內部只有很小的存儲空間,所以我必須外擴系統的存儲器,作為32位的微處理器,S3C2410支持8位,16位和32位尋址方式,有16M×32位的尋址能力,可方便地構建較大地存儲空間,系統的存儲器由FLASH和SDRAM構成。數碼攝像頭通過USB接口與S3C2410芯片連接,通過S3C2410芯片來控制數碼攝像頭對圖像進行采集,并存儲在存儲器中?! ?/p>

  1.2 軟件平臺的搭建

  嵌入式Linux(EmbeddedLinux)是指對Linux經過裁剪小型化后,可固化在存儲器或單片機中,應用于特定嵌入式場合的專用Linux操作系統。具體的搭建流程如圖2所示?! ?/p>

  2 USB攝像頭設備驅動的開發

  在Linuxkernel源碼目錄中driver/usb/usb_skeleton.c提供了一個最基礎的USB驅動程序,我們稱為USB骨架。通過他僅需要修改極少的部分,就可以完成一個USB設備的驅動。我們的USB驅動開發也是從它開始的。USB驅動程序結構如下:  

  該結構指明了USB設備驅動所要做的工作,具體內容如下:

  (1)在驅動模塊加載的時候,向USB核心子系統注冊,并告訴子系統需要支持的設備。

  (2)在卸載USB設備驅動程序向USB核心子系統注銷。

  (3)當獲支持的設備插入或者拔出的時候,調用哪些功能。

  在初始化函數中,USB設備驅動調用usb_register函數進行注冊?! ?/p>

  以上介紹了簡單USB設備驅動程序的框架。但是我們要進行的攝像頭驅動開發比上述驅動稍微復雜些。除了之前講到的USB驅動還包括圖像采集部分的設備驅動。

  首先,我們需要定義一個數據結構,其中一個包括圖片信息、采集模式、解碼方式。具體定義如下。  

  LinuxUSB驅動程序需要做的第一件事情就是在LinuxUSB子系統里注冊,并提供一些相關信息,例如這個驅動程序支持哪種設備,當被支持的設備從系統插入或拔出時,會有哪些動作。所有這些信息都將傳送到USB子系統中。以下代碼完成USB攝像頭的注冊功能:  

  以上定義的數據含義如下ZC301是客戶端驅動程序的名稱,用于避免驅動程序的重復安裝和卸載。

  zc301_probe則指向USB驅動程序的探測函數指針,提供給USB內核的函數,用于判斷驅動程序是否能對設備的某個接口進行驅動。

  zc301_disconnect指向USB驅動程序中的斷開函數的指針,當從系統中被移除或者驅動程序正在從USB核心中卸載時,USB核心將調用該函數。

  zc301_table列表包含了一系列該驅動程序可以支持的所有不同類型的USB設備,如沒有設置該列表,則該驅動程序中的探測回調函數不會被調用。

  系統啟動時,首先需要加載各種驅動模塊,然后向系統注冊了生產廠商號碼(VendorID)和產品號(Pro-ductID)。當USB設備連接到主機上,系統會檢測它的VendorID和ProductID,如果與驅動模塊的注冊內容匹配,則將該驅動程序與設備掛接起來[5]。當插入攝像頭時,系統會調用zc301_probe函數。參數dev指定了設備信息,probe函數驗證所有可選配置的有效性,并調用usbvideo模塊的sbvideo_Regis-terVideoDevice()函數向videodev系統注冊。

  當系統完成驅動注冊后,調用staticintzc301_init(structusb_zc301*zc301)和staticvoidzc301_start(structusb_301*zc301)函數完成對設備的初始化過程:填寫各個寄存器值、啟動攝像頭。系統運行到這一步,基本完成了對攝像頭驅動加載及設備初始化。接下來需要通過讀取用戶設定的圖像規格,其中包括:圖像格式、分辨率、顏色深度、對比度和亮度等參數。這些數值的讀取都是通過以下函數實現的:  

  在得到這些參數值后,再調用一套函數,實現參數的設置。每個參數設置函數和之前的參數取值函數是一一對應的。具體函數如下:  

  通過調用上面的函數,我們基本得到了所需的參數值,這樣我們就可以啟動攝像頭了。

  當然我們還需要staticvoidzc301_shutdown(structusb_zc301*zc301)來關閉攝像頭。

 

  至此,攝像頭驅動的驅動基本完成。通過這些函數的設置我們可以把具體的硬件電路抽象化為數據結構中的參數值。接下來我們可以通過V4L驅動來調用這些函數,實現對參數的賦值、打開設備、采集圖像和關閉設備等一系列的過程。

  重新編譯、運行內核時,在串口反饋信息中會顯示USB攝像頭驅動程序成功加載。如圖3所示?! ?/p>

  圖3串口反饋信息3Video4Linux下的圖像采集編程:

  Video4Linux,簡稱V4L,是Linux中關于視頻設備的內核驅動,它為針對視頻設備的應用程序編程提供一系列半標準的接口。V4L利用這個接口,增加一些額外的功能,同時向外提供了一個屬于自己的API。我們可以通過調用V4L的API來實現各種功能。在Linux下,視頻采集設備的正常使用依賴于對Video4Linux標準的支持。目前的V4L涵蓋了視、音頻流捕捉及處理等內容,USB攝像頭也屬于它支持的范疇。

  V4L中定義的主要數據結構:  

  這些數據結構都是由Video4Linux支持的,它們的用途如下:

  (1)video_capability包含攝像頭的基本信息,例如設備名稱、支持的最大最小分辨率、信號源信息等,分別對應著結構體中成員變量name、maxwidth、maxheight、minwidth、minheight、channels(信號源個數)、type等;

  (2)voide_picture包含設備采集圖像的各種屬性,如brightness(亮度)、hue(色調)、contrast(對比度)、whiteness(色度)、depth(深度)等;

  (3)video_mmap用于內存映射;

  (4)voido_mbuf利用mmap進行映射的幀信息,實際上是輸入到攝像頭存儲器緩沖中的幀信息,包括size(幀的大小)、frames(最多支持的幀數)、offsets(每幀相對基址的偏移)。

  系統在采集圖像之前,需要初始化這些數據結構中的參數值,系統才能夠按照要求采集圖像數據。

  在USB攝像頭被驅動后,只需要再編寫一個對視頻流采集的應用程序就可以了。根據嵌入式系統開發特征,先在宿主機上編寫應用程序,再使用交叉編譯器進行編譯鏈接,生成在目標平臺的可執行文件。宿主機與目標板通信采用打印終端的方式進行交叉調試,成功后移植到目標平臺。

  V4L圖像采集編程流程:

  (1)打開視頻設備;

  (2)讀取設備信息;

  (3)更改設備當前設置;

  (4)視頻采集得到圖像信息;

  (5)對采集到的圖像進行處理;

  (6)關閉視頻設備。

  本文編寫采集程序是在安裝Linux操作系統的宿主機PC機上進行的,之后再移植到開發板上。下面是具體論述。

  之前我們講到了在V4L中定義的主要數據結構及其功能。對應著這些內容,我們需要對這些數據結構進行定義,以抽象化一個視頻設備。以下是具體的定義內容:  

  攝像頭、采集圖像和關閉攝像頭的操作。采集程序中定義了如下的函數,以實現前面講到的功能。

  intinit_videoIn(structvdIn*vd,char*device,intwidth,intheight,intgrabmethod);初始化攝像頭設備。*vd包含了之前定義的數據結構中的基本信息。另外還要對攝像頭采集圖像的大小、采集模式等參數進行賦值。

  intv4lGrab(structvdIn*vd,char*filename);采集圖像主程序。*filename為圖像的文件名,我們可以通過對文件名的設置來確定圖像保存的位置。

  intclose_v4l(structvdIn*vd);關閉攝像頭intget_jpegsize(unsignedchar*buf,intinsize);采集圖像的大小。

  因為我們是通過調用采集主函數intv4lGrab(structvdIn*vd,char*filename)來實現圖像的采集和保存的,所以需要詳細的講解一下該函數的構成。以下是該函數的具體內容:  

  首先,我們需要定義幾個參數,如下:

  FILE*fp;定義一個文件類型指針,指向我們采集到的圖像文件intlen;

  定義一個整型變量,記錄從內存中讀取的數據量intsize;

  定義一個整型變量,指明一幀圖像的數據量interreur=0;定義一個整型變量,指明運行時的錯誤返回值intjpegsize;定義一個整型變量,指明我們需要的圖像大小。

  接著我們調用read(vd->fd,vd->pFramebuffer,size)函數,把存放于圖像緩沖區的數據讀入到指定的臨時文件中。之后根據我們對圖像的大小、亮度、對比度等要求轉化之前采集到的圖像數據,最后我們打開一個文件,把圖像數據寫入到該文件中并保存。

  4 結論

  本文設計了一種嵌入式視頻采集系統,該系統小巧,并且在保證當前信息完整的情況下,盡可能少的占用存儲容量,實現了該系統的圖像采集、存儲和重現功能。在硬件規劃上,采用實用簡單的USB接口通信。且系統中預留了豐富的外設接口,便于今后的擴展升級。



 

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          久久精品道一区二区三区| 在线精品高清中文字幕| 国产精品亚洲美女av网站| 亚洲在线一区| 亚洲精品亚洲人成人网| 夜夜精品视频| 午夜精品一区二区三区四区| 亚洲视频中文| 国产精品一区在线播放| 亚洲综合精品自拍| 国产精品久久久免费| 国产农村妇女毛片精品久久麻豆| 欧美一区二区三区四区在线观看| 欧美先锋影音| 欧美日韩99| 国产精品国产精品国产专区不蜜| 亚洲人成亚洲人成在线观看| 午夜精品久久久久久久99热浪潮| 国产精品久久久久aaaa| 欧美激情综合网| 欧美激情视频给我| 篠田优中文在线播放第一区| 亚洲精品在线观看免费| 免费观看成人网| 亚洲伊人伊色伊影伊综合网| 国产色婷婷国产综合在线理论片a| 欧美一区二区私人影院日本| 欧美激情第9页| 欧美精品一区在线播放| 鲁大师成人一区二区三区| 激情av一区| 欧美—级a级欧美特级ar全黄| 一区二区成人精品| 国产精品免费视频xxxx| 玖玖国产精品视频| 欧美精品自拍偷拍动漫精品| 国产精品视频一| 欧美日韩在线播放三区| 欧美成人免费一级人片100| 欧美激情片在线观看| 亚洲国产高清一区| 国产自产女人91一区在线观看| 国产精品久久久久久久电影| 亚洲二区免费| 亚洲二区视频| 亚洲伦理一区| 欧美另类99xxxxx| 欧美女主播在线| 伊人成人开心激情综合网| 亚洲福利视频免费观看| 影音先锋亚洲精品| 亚洲视频1区| 亚洲欧美变态国产另类| 99re66热这里只有精品3直播| 欧美三级电影网| 亚洲综合色丁香婷婷六月图片| 尤物精品国产第一福利三区| 欧美日韩午夜在线视频| 欧美日韩国产色视频| 免费在线欧美视频| 国产精品永久免费观看| 亚洲午夜视频在线| 亚洲一区二区精品在线| 国产精品美女www爽爽爽视频| 国产精品高潮久久| 麻豆九一精品爱看视频在线观看免费| 影音先锋在线一区| 欧美日韩精品免费观看视频完整| 国产亚洲精品高潮| 国产精品久久久久9999| 国产精品综合久久久| 午夜精品久久久久久久白皮肤| 在线视频欧美日韩精品| 韩曰欧美视频免费观看| 久久久久久久一区| 久久深夜福利| 国产在线高清精品| 亚洲在线黄色| 国产一区二区在线观看免费播放| 欧美日本久久| 亚洲国产高清一区二区三区| 欧美日韩不卡在线| 欧美日韩在线观看视频| 好吊视频一区二区三区四区| 国产午夜精品全部视频在线播放| 欧美精品一线| 欧美精品一区二区三区一线天视频| 性18欧美另类| 亚洲国产精品www| 欧美性猛交一区二区三区精品| 精品不卡一区二区三区| 欧美久久久久| 国内一区二区在线视频观看| 国精品一区二区三区| 欧美二区在线观看| 亚洲在线免费| 亚洲男人av电影| 国产精品久久毛片a| 久久亚洲春色中文字幕| 夜夜嗨av一区二区三区免费区| 校园激情久久| 欧美日韩国产色站一区二区三区| 女生裸体视频一区二区三区| 国产精品夜夜嗨| 在线播放豆国产99亚洲| 亚洲综合视频一区| 亚洲一二区在线| 欧美电影资源| 一区二区三区在线观看国产| 在线亚洲+欧美+日本专区| 亚洲男女自偷自拍图片另类| 欧美日韩亚洲另类| 国产一区日韩二区欧美三区| 亚洲美女av网站| 欧美国产日韩精品免费观看| 麻豆精品传媒视频| 国产女主播在线一区二区| 欧美在线观看视频在线| 久久久久久久久久久一区| 激情五月综合色婷婷一区二区| 国产精品成人一区二区艾草| 国产精品久久久久久久久| 亚洲国产女人aaa毛片在线| 日韩一级大片| 国产区在线观看成人精品| 在线亚洲+欧美+日本专区| 欧美在线播放高清精品| 99在线精品免费视频九九视| 亚洲国产合集| 依依成人综合视频| 亚洲欧美日韩国产中文| 日韩视频免费大全中文字幕| 最新中文字幕一区二区三区| 久久免费午夜影院| 久久久高清一区二区三区| 夜夜嗨av一区二区三区中文字幕| 一本色道久久综合一区| 亚洲免费一级电影| 亚洲一区免费观看| 欧美电影资源| 久久久噜噜噜久噜久久| 性色av一区二区三区在线观看| 久久嫩草精品久久久精品一| 狠狠色伊人亚洲综合成人| 亚洲精品视频二区| 香蕉久久久久久久av网站| 久久精品免费看| 亚洲综合视频1区| 午夜精品久久久久久久白皮肤| 国产精品视频免费观看| 欧美日韩日日夜夜| 一区二区三区蜜桃网| 国产精品久久久对白| 国产精品区一区| 久久精品在线视频| 欧美激情在线播放| 免费观看亚洲视频大全| 欧美性大战久久久久久久蜜臀| 欧美区在线播放| 欧美精品午夜| 久久精品国产69国产精品亚洲| 午夜欧美理论片| 欧美视频你懂的| 免费成人av在线看| 亚洲天堂偷拍| 亚洲国产精品一区| 卡通动漫国产精品| 国产欧美一区二区三区国产幕精品| 国产精品色一区二区三区| 亚洲一区国产一区| 欧美一二三区在线观看| 欧美精品一区三区在线观看| 欧美一级理论片| 免费一区二区三区| 国产麻豆一精品一av一免费| 国产精品久久7| 国产免费成人| 一区在线影院| 欧美日韩一区不卡| 免费久久精品视频| 亚洲黄色成人网| 亚洲韩国精品一区| 欧美一区二区三区免费观看视频| 狠狠综合久久av一区二区小说| 国产原创一区二区| 在线观看欧美成人| 99国产麻豆精品| 91久久精品国产91性色tv| 久久亚洲精品伦理| 欧美日韩国产成人高清视频| 国产精品一区二区在线观看| 久久综合国产精品台湾中文娱乐网| 欧美日韩亚洲激情| 国产嫩草一区二区三区在线观看| 亚洲一区三区视频在线观看| 国产午夜亚洲精品不卡| 国产精品国产三级国产a| 亚洲国产成人精品女人久久久| 久久久青草婷婷精品综合日韩| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲精品系列| 亚洲毛片在线观看| 亚洲精品欧美专区| 91久久线看在观草草青青| 欧美一区二区三区四区夜夜大片| 亚洲在线视频网站| 国产精品爱久久久久久久| 国产精品v欧美精品∨日韩| 国产一区日韩欧美| 久久免费精品日本久久中文字幕| 日韩亚洲国产欧美| 蜜桃av一区二区三区| 精品成人在线观看| 99pao成人国产永久免费视频| 亚洲国产精品一区制服丝袜| 亚洲国产另类 国产精品国产免费| 久久一日本道色综合久久| 美女露胸一区二区三区| 乱中年女人伦av一区二区| 亚洲日本中文字幕免费在线不卡| 国产精品毛片a∨一区二区三区|国| 亚洲精选久久| 久久精品论坛| 欧美夜福利tv在线| 欧美日韩欧美一区二区| 国产在线播放一区二区三区| 久久精品国产69国产精品亚洲| 国产精品尤物福利片在线观看| 国产精品中文在线| 国产视频一区二区在线观看| 99精品热6080yy久久| 国产一区视频在线观看免费| 国产精品区一区| 狠狠色狠狠色综合系列| 99成人免费视频| 亚洲电影网站| 欧美高清在线视频观看不卡| 在线观看中文字幕亚洲| 久久久久久久久伊人| 国内精品久久久久影院 日本资源| 国产精品美女久久久浪潮软件| 欧美华人在线视频| 亚洲国产欧美一区二区三区丁香婷| 欧美一级视频一区二区| 欧美日韩在线播放一区| 久久国产福利国产秒拍| 久久久久久久性| 国产一级久久| 亚洲欧美影音先锋| 激情另类综合| 久久精品国产免费观看| 欧美母乳在线| 欧美视频在线观看一区| 国产综合色一区二区三区| 亚洲国产精品成人一区二区| 黄色国产精品一区二区三区| 欧美视频在线观看一区| 国产日韩亚洲欧美精品| 亚洲欧洲一区二区三区在线观看| 国产精品久久久久国产精品日日| 欧美三级黄美女| 国精产品99永久一区一区| 久久久亚洲综合| 亚洲视频专区在线| aa成人免费视频| 亚洲一区在线观看视频| 欧美在线观看天堂一区二区三区| 久久亚洲午夜电影| 国产一区二区三区网站| 久久久午夜视频| 欧美粗暴jizz性欧美20| 亚洲网站在线播放| 欧美日韩精品免费在线观看视频| 国产精品magnet| 亚洲电影第三页| 欧美理论大片| 一区在线电影| 欧美激情中文字幕在线| 蜜桃av综合| 国产精品亚洲аv天堂网| 国产精品国产自产拍高清av| 一本色道久久加勒比精品| 在线不卡免费欧美| 国产婷婷色一区二区三区| 久久久青草青青国产亚洲免观| 欧美连裤袜在线视频| 国产精品国产自产拍高清av王其| 激情亚洲网站| 国产真实乱偷精品视频免| 日韩视频免费大全中文字幕| 欧美在线免费观看视频| 香港久久久电影| 亚洲国产裸拍裸体视频在线观看乱了中文| 亚洲一区二区动漫| 欧美在线视频全部完| 亚洲影院色无极综合| 久久久精品动漫| 久久精品人人做人人爽电影蜜月| 99在线精品视频在线观看| 免费一级欧美片在线观看| 国产精品三级视频| 亚洲国产精品一区制服丝袜| 亚洲国产国产亚洲一二三| 亚洲精品国产精品乱码不99按摩| avtt综合网| 欧美成人精品福利| 国产精品九九| 国产精品h在线观看| 亚洲视频一二三| 久久久99国产精品免费| 久久久噜久噜久久综合| 亚洲精品在线免费观看视频| 国产精品美女主播在线观看纯欲| 亚洲欧美文学| 久久电影一区| 欧美成人日韩| 国产香蕉97碰碰久久人人| aa亚洲婷婷| 亚洲午夜久久久久久久久电影院| 国产精品一区二区三区成人| 欧美午夜视频在线观看| 亚洲精品欧美日韩专区| 久热re这里精品视频在线6| 国产精品不卡在线| 久久久久久91香蕉国产| 久久久久国产成人精品亚洲午夜| 国产精品资源在线观看| 亚洲激情校园春色|