日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM920T處理器核的圖像采集系統(tǒng)設(shè)計(jì)

          基于ARM920T處理器核的圖像采集系統(tǒng)設(shè)計(jì)

          作者: 時(shí)間:2011-08-15 來源:網(wǎng)絡(luò) 收藏

          引言

          本文引用地址:http://yuyingmama.com.cn/article/150351.htm

            隨著微電子技術(shù)和軟件技術(shù)的發(fā)展,嵌入式技術(shù)也有了長足的進(jìn)步。因此,嵌入式技術(shù)的數(shù)據(jù)與存儲監(jiān)控以其直觀、方便、信息內(nèi)容豐富的特點(diǎn),廣泛應(yīng)用于許多場合。

            性能的提高,接口傳輸數(shù)據(jù)能力的增強(qiáng),特別是未來高容量存儲器的出現(xiàn),監(jiān)控的小型化、多功能化是易于實(shí)現(xiàn)的,嵌入式技術(shù)引入監(jiān)控后,兩個(gè)問題需要解決,一是靈活的圖像監(jiān)控系統(tǒng)結(jié)構(gòu)調(diào)整,二是適合監(jiān)控規(guī)范、集圖像和信號檢測與控制一體的交互式軟件的。

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

            1.1 硬件平臺的搭建

            ARM(AdvancedRISCMachines),既可以認(rèn)為是一個(gè)公司的名字,也可以認(rèn)為是對一類微的統(tǒng)稱,還可以認(rèn)為是一種技術(shù)的名字。

            S3C2410是Samsung公司ARM公司的處理器核,采用0.18um制造工藝的32位微控制器。該處理器擁有:獨(dú)立的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個(gè)USB主機(jī),1個(gè)USB設(shè)備,SD主機(jī)和MMC接口,2路SPI。S3C2410處理器最高可運(yùn)行在203MHz。

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

            

            1.2 軟件平臺的搭建

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

            

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

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

            

            該結(jié)構(gòu)指明了USB設(shè)備驅(qū)動所要做的工作,具體內(nèi)容如下:

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

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

            (3)當(dāng)獲支持的設(shè)備插入或者拔出的時(shí)候,調(diào)用哪些功能。

            在初始化函數(shù)中,USB設(shè)備驅(qū)動調(diào)用usb_register函數(shù)進(jìn)行注冊。

            

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

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

            

            

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

            

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

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

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

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

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

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

            

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

            

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


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉