在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<abbr id="27omo"></abbr>

<menu id="27omo"><dl id="27omo"></dl></menu>
    • <label id="27omo"><tt id="27omo"></tt></label>

      新聞中心

      EEPW首頁 > 模擬技術 > 設計應用 > 基于S3C2410的嵌入式視頻采集系統(tǒng)設計(一)

      基于S3C2410的嵌入式視頻采集系統(tǒng)設計(一)

      作者: 時間:2013-05-26 來源:網(wǎng)絡 收藏

      引言

        圖像采集與存儲功能構成的監(jiān)控系統(tǒng)是安全防范技術體系中不可缺少的重要組成部分,隨著微電子技術和軟件技術的發(fā)展,技術也有了長足的進步。因此,基于技術的圖像數(shù)據(jù)采集與存儲監(jiān)控系統(tǒng)以其直觀、方便、信息內(nèi)容豐富的特點,廣泛應用于許多場合。

        監(jiān)控系統(tǒng)工作于特定的環(huán)境下,具有很特殊的環(huán)境和結構要求,這對監(jiān)控系統(tǒng)的軟硬件平臺提出了很高的要求。處理器性能的提高,接口傳輸數(shù)據(jù)能力的增強,特別是未來高容量存儲器的出現(xiàn),圖像監(jiān)控系統(tǒng)的小型化、多功能化是易于實現(xiàn)的,嵌入式技術引入圖像監(jiān)控系統(tǒng)后,兩個問題需要解決,一是靈活的圖像監(jiān)控系統(tǒng)結構調整,二是適合監(jiān)控規(guī)范、集圖像和信號檢測與控制一體的交互式軟件的設計。

        1 系統(tǒng)平臺的搭建

        1.1 硬件平臺的搭建

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

        處理器是Samsung公司基于ARM公司的ARM920T處理器核,采用0.18um制造工藝的32位微控制器。該處理器擁有:獨立的16KB指令Cache和16KB數(shù)據(jù)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。處理器最高可運行在203MHz。

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

        基于S3C2410的嵌入式視頻采集系統(tǒng)設計(一)

        1.2 軟件平臺的搭建

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

        基于S3C2410的嵌入式視頻采集系統(tǒng)設計(一)

      2 USB攝像頭設備驅動的開發(fā)

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

        基于S3C2410的嵌入式視頻采集系統(tǒng)設計(一)

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

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

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

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

        在初始化函數(shù)中,USB設備驅動調用usb_register函數(shù)進行注冊。

        基于S3C2410的嵌入式視頻采集系統(tǒng)設計(一)

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

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

        基于S3C2410的嵌入式視頻采集系統(tǒng)設計(一)

        基于S3C2410的嵌入式視頻采集系統(tǒng)設計(一)

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

        基于S3C2410的嵌入式視頻采集系統(tǒng)設計(一)

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

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

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

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

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

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

        基于S3C2410的嵌入式視頻采集系統(tǒng)設計(一)

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

        基于S3C2410的嵌入式視頻采集系統(tǒng)設計(一)

      linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


      評論


      相關推薦

      技術專區(qū)

      關閉