




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于CH374的USB攝像頭驅(qū)動(dòng)設(shè)計(jì),CH374,S3C44B0,同步傳輸,SPCA561A,攝像頭驅(qū)動(dòng) 現(xiàn)有視頻監(jiān)控系統(tǒng)的設(shè)計(jì)大都采用USB視頻采集和以太網(wǎng)傳輸,并且需要視頻壓縮方案,通常需要操作系統(tǒng)支持;因此選取的開(kāi)發(fā)平臺(tái)價(jià)格昂貴,造成視頻臨控系統(tǒng)的成本居高不下,以致使小型工廠和家庭用戶難以接受。本課題采用S3C44BO微處理器的ARM7開(kāi)發(fā)平臺(tái),驅(qū)動(dòng)USB接口芯片CH374進(jìn)行視頻數(shù)據(jù)采集,提供了低成本的視頻采集方案。USB視頻采集涉及USB同步傳輸,但是在眾多USB主機(jī)芯片的設(shè)計(jì)中,多以控制傳輸和批量傳輸為主,對(duì)同步傳輸?shù)默F(xiàn)有視頻監(jiān)控系統(tǒng)的
2、設(shè)計(jì)大都采用USB視頻采集和以太網(wǎng)傳輸,并且需要視頻壓縮方案,通常需要操作系統(tǒng)支持;因此選取的開(kāi)發(fā)平臺(tái)價(jià)格昂貴,造成視頻臨控系統(tǒng)的成本居高不下,以致使小型工廠和家庭用戶難以接受。本課題采用S3C44BO微處理器的ARM7開(kāi)發(fā)平臺(tái),驅(qū)動(dòng)USB接口芯片CH374進(jìn)行視頻數(shù)據(jù)采集,提供了低成本的視頻采集方案。USB視頻采集涉及USB同步傳輸,但是在眾多USB主機(jī)芯片的設(shè)計(jì)中,多以控制傳輸和批量傳輸為主,對(duì)同步傳輸?shù)闹v解極為少見(jiàn)。本文提供了USB同步傳輸?shù)脑O(shè)計(jì)范例。1 系統(tǒng)工作原理典型的USB視頻采集系統(tǒng)如圖1所示。USB系統(tǒng)包含主機(jī)和物理設(shè)備兩個(gè)最基本的元素,一個(gè)USB系統(tǒng)只能有一個(gè)USB主機(jī),可以
3、連接多個(gè)物理設(shè)備。本設(shè)計(jì)中的設(shè)備是USB攝像頭,USB主機(jī)由USB主機(jī)控制器、微處理器及驅(qū)動(dòng)軟件構(gòu)成。USB系統(tǒng)工作層次分明:USB接口層提供主機(jī)控制器和設(shè)備的物理連接;設(shè)備層中,USB主機(jī)調(diào)用驅(qū)動(dòng)程序通過(guò)端點(diǎn)0發(fā)送并獲取USB設(shè)備的控制信息;功能層進(jìn)行實(shí)際數(shù)據(jù)的傳輸,主機(jī)必須選擇合適的接口和端點(diǎn),調(diào)用底層驅(qū)動(dòng)提供的接口函數(shù)獲取USB攝像頭的視頻數(shù)據(jù)流。1.1 USB攝像頭SPCA561A視頻信號(hào)的采集一般選擇USB攝像頭來(lái)實(shí)現(xiàn)。如圖2所示,USB攝像頭SPCA561A集成了鏡頭、CMOS傳感器、USB圖像處理器以及USB控制器。比起直接與微處理器接口的CMOS傳感器,使用USB攝像頭雖然成本
4、偏高,但是易于實(shí)現(xiàn),節(jié)省CPU資源,而且驅(qū)動(dòng)支持非常豐富。SPCA561A提供了一種單芯片攝像頭解決方案,它將一個(gè)CIF的CMOS傳感器、一個(gè)圖像處理器和USB控制器集成于單芯片,從而大大降低了成本和開(kāi)發(fā)難度;缺點(diǎn)是只有10萬(wàn)像素,每秒幀數(shù)較少,然而非常適合應(yīng)用于圖像要求不高的小型監(jiān)控系統(tǒng)。1.2 USB主機(jī)控制器CH374CH374是一個(gè)嵌入式USB總線的通用接口芯片,支持USB主機(jī)方式和USB設(shè)備方式,支持低速和全速的控制傳輸、批量傳輸、中斷傳輸以及同步傳輸。在本地端,CH374具有8位數(shù)據(jù)總線和讀、寫(xiě)、片選控制線以及中斷輸出,可以方便地掛接到DSPMCUMPU等控制器的系統(tǒng)總線上。大多數(shù)
5、嵌入式的USB主機(jī)接口芯片并不提供同步傳輸模式,而CH374的一大特點(diǎn)就是提供了同步傳輸,使得視頻和音頻流的傳輸成為可能。本系統(tǒng)使用CH374作為USB主機(jī)控制器,如圖3所示。CH374用總線方式與S3C44B0相連,微控制器通過(guò)讀寫(xiě)CH374寄存器實(shí)現(xiàn)USB主機(jī)驅(qū)動(dòng)。1.3 USB同步傳輸原理同步傳輸主要用來(lái)傳輸音頻或視頻信號(hào)。這種信息是周期的,又是實(shí)時(shí)的,對(duì)信息實(shí)時(shí)性有很高的要求,但是對(duì)誤碼率卻可以容忍。所以USB為這種信息保留90的帶寬,其他類(lèi)型的傳輸在同步傳輸期間不可以占用。為保證數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性,同步傳輸不進(jìn)行數(shù)據(jù)錯(cuò)誤的重傳,也不在硬件層次上響應(yīng)一個(gè)握手資料包。同步傳輸?shù)闹鳈C(jī)每隔l
6、ms發(fā)送一個(gè)SOF同步信號(hào),隨后接收設(shè)備發(fā)送的信號(hào),其數(shù)據(jù)流程如圖4所示。在同步傳輸中,每一個(gè)信包的容量是一定的。拿SPCA56l來(lái)說(shuō),在啟動(dòng)同步傳輸之前必須設(shè)置相應(yīng)的接口號(hào)。不同的接口號(hào)決定將要發(fā)送多大的信包容量,如接口號(hào)1每次發(fā)送的信包容量是128字節(jié),接口號(hào)6的信包容量是896字節(jié)。接口號(hào)通過(guò)USB標(biāo)準(zhǔn)設(shè)備請(qǐng)求SET_INTERFACE來(lái)設(shè)置。由于CH374的緩沖區(qū)最大為128字節(jié),所以本設(shè)計(jì)中使用接口號(hào)l,同步傳輸每接收一個(gè)信包的大小是128字節(jié)容量的信包。1.4 視頻數(shù)據(jù)采集過(guò)程如圖5所示,視頻信號(hào)由攝像頭SPCA561A采集得到,經(jīng)過(guò)內(nèi)部的圖像處理芯片后編碼為規(guī)定的格式,一般為RG
7、B或者YUV格式,但是SPCA561采用比較特殊的S561圖像格式(類(lèi)似于RGB格式)。因?yàn)橐粠瑘D像的數(shù)據(jù)量很大,無(wú)法在一個(gè)同步信包內(nèi)傳送,所以將其分割成多個(gè)單元,每個(gè)單元前添加包頭(包頭的內(nèi)容包括當(dāng)前包序號(hào)和此圖像幀信息),組成多個(gè)同步信包,通過(guò)FIFO緩沖發(fā)送到USB總線上。主機(jī)控制器用同步方式接收每個(gè)信包,并去除包頭合并成S561格式的數(shù)據(jù),組成一個(gè)完整的圖像幀。最后由軟件將此圖像幀預(yù)編碼成為YUV420格式的圖像數(shù)據(jù),以便后續(xù)的壓縮處理。2 USB攝像頭驅(qū)動(dòng)的實(shí)現(xiàn)USB攝像頭并非標(biāo)準(zhǔn)的USB外設(shè)。與其他USB外設(shè)不同的是,每個(gè)廠商的攝像頭芯片都有自己定義的設(shè)備請(qǐng)求,而這些攝像頭芯片數(shù)據(jù)
8、手冊(cè)并不對(duì)外公開(kāi),所以編寫(xiě)攝像頭驅(qū)動(dòng)的難度很大,想要驅(qū)動(dòng)支持更多的攝像頭,程序會(huì)非常復(fù)雜。本文只介紹SPCA561A攝像頭驅(qū)動(dòng)的方法。2.1 USB攝像頭初始化初始化一個(gè)USB攝像頭有兩個(gè)步驟,第一步是攝像頭的枚舉,第二步是攝像頭的自定義設(shè)置。(1) 設(shè)備枚舉設(shè)備的枚舉就是標(biāo)準(zhǔn)設(shè)備請(qǐng)求的過(guò)程,這部分內(nèi)容包含于USB協(xié)議第9章。對(duì)USB攝像頭來(lái)說(shuō),枚舉的過(guò)程依次如下:獲取設(shè)備描述符。通過(guò)設(shè)備描述符得到端點(diǎn)0的負(fù)載,也就是最大傳送包容量。設(shè)置地址。給設(shè)備分配一個(gè)默認(rèn)地址0之外的地址。獲取配置描述符。這個(gè)過(guò)程包括兩個(gè)階段,第1次獲取的配置描述符的前4個(gè)字節(jié)得到配置描述符的真實(shí)長(zhǎng)度;再以真實(shí)長(zhǎng)度第2次
9、獲取配置描述符,此描述符包含了設(shè)備的配置信息和多個(gè)接口信息。可以從這里得到可以使用的接口號(hào)和對(duì)應(yīng)的信包負(fù)載。設(shè)置配置信息。設(shè)置的主要信息是配置描述符中的第5個(gè)字段bConfigurationValue。設(shè)置接口。USB攝像頭不同的接口號(hào)對(duì)應(yīng)不同的信包負(fù)載。本設(shè)計(jì)選定的接口號(hào)為2,對(duì)應(yīng)信包負(fù)載是128字節(jié)。(2) 自定義設(shè)置USB攝像頭并不是標(biāo)準(zhǔn)USB外設(shè),需要很多自定義設(shè)置,可以稱之為“自定義設(shè)備請(qǐng)求”,它是用標(biāo)準(zhǔn)設(shè)備請(qǐng)求包方式傳送的,目的是修改內(nèi)部寄存器,對(duì)采集圖像和壓縮方式進(jìn)行配置。標(biāo)準(zhǔn)設(shè)備請(qǐng)求和自定義設(shè)備請(qǐng)求包的不同內(nèi)容如表1所列。自定義設(shè)備請(qǐng)求的內(nèi)容非常豐富,它包含以下幾個(gè)方面:時(shí)序產(chǎn)
10、生設(shè)置。包括圖像采集頻率和振蕩器的設(shè)置等。圖像處理設(shè)置。包括圖像窗口大小、壓縮類(lèi)型、色彩分配等配置屬性。存儲(chǔ)器設(shè)置。對(duì)圖像緩沖進(jìn)行設(shè)置??刂萍盃顟B(tài)設(shè)置。包括啟動(dòng)及停止圖像采集、數(shù)據(jù)傳輸方式、當(dāng)前狀態(tài)等配置屬性。程序中的初始化設(shè)置有近百條,具體設(shè)置請(qǐng)見(jiàn)參考文獻(xiàn)1的開(kāi)源代碼。初始化結(jié)束后,可以根據(jù)需要進(jìn)行圖像格式的設(shè)定,SPCA561A支持SQVGA(160×120)、QCIF(176×144)、QVGA(320×240)、CIF(352×288)四種格式。設(shè)定結(jié)束后啟動(dòng)攝像頭采集,進(jìn)行數(shù)據(jù)傳輸。2.2 同步傳輸和圖像幀處理同步傳輸?shù)倪^(guò)程非常簡(jiǎn)單,甚至不包含
11、握手信息;但是因?yàn)橥絺鬏攲?duì)時(shí)序的要求很高,所以對(duì)同步傳輸數(shù)據(jù)的處理頗困難。此驅(qū)動(dòng)的設(shè)計(jì)將同步數(shù)據(jù)的接收用中斷服務(wù)程序進(jìn)行處理,同步數(shù)據(jù)的處理放在中斷服務(wù)之外執(zhí)行。中斷服務(wù)程序流程如圖6所示。每次同步中斷發(fā)生時(shí),首先從USB主機(jī)控制器的緩沖區(qū)內(nèi)讀取接收到的128字節(jié)同步信包,將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)處理程序提供的存儲(chǔ)單元中。再發(fā)送PID_IN標(biāo)志和端點(diǎn)號(hào),設(shè)置同步傳輸類(lèi)型并啟動(dòng)下一次傳輸。CH374主機(jī)會(huì)在每1 ms發(fā)送1個(gè)SOF同步標(biāo)志,USB設(shè)備接收到SOF標(biāo)志后,會(huì)傳送下一個(gè)同步信包。同步數(shù)據(jù)處理程序如圖7所示。中斷結(jié)束后,執(zhí)行數(shù)據(jù)處理程序,程序讀取
12、同步信包的第一個(gè)字節(jié),確認(rèn)包的序號(hào),此序號(hào)的范圍是00xFF。如果此序號(hào)為0xFF,則說(shuō)明是無(wú)效包,需要丟棄。如果此序號(hào)為0,則可能是首次采集得到的第一個(gè)同步數(shù)據(jù)包,直接存儲(chǔ)此數(shù)據(jù)到圖像幀;也可能是當(dāng)前圖像幀結(jié)束后開(kāi)始的下一幀圖像的第一個(gè)同步信包,則需要處理已經(jīng)結(jié)束的當(dāng)前幀圖像,同時(shí)將當(dāng)前幀設(shè)置為下一幀。至此得到了一幀圖像數(shù)據(jù)。2.3 圖像數(shù)據(jù)的預(yù)編碼經(jīng)過(guò)處理后的圖像幀為S561格式數(shù)據(jù),它是一種RGB格式的圖像,無(wú)法被后續(xù)的圖像編碼器利用。常用的視頻壓縮標(biāo)準(zhǔn)(如H.263、MPEG4等)輸入的視頻數(shù)據(jù)為YUV420格式,所以必須對(duì)當(dāng)前的S56l格式數(shù)據(jù)進(jìn)行預(yù)編碼,使之成為YUV420格式。因
13、為算法比較復(fù)雜,在此不詳細(xì)敘述,請(qǐng)參考文獻(xiàn)1中bayer_decode( )函數(shù)的的源代碼。至此,基于CH374的攝像頭驅(qū)動(dòng)完成。3 設(shè)計(jì)心得由于此USB主機(jī)基于低端嵌入式硬件系統(tǒng),沒(méi)有操作系統(tǒng)支持,也沒(méi)有BUSHOUND類(lèi)似的USB數(shù)據(jù)流分析軟件支持,難以找到基于嵌入式平臺(tái)USB同步傳輸參考程序,所以設(shè)計(jì)的難度很大。筆者的設(shè)計(jì)經(jīng)驗(yàn)是重在參考程序的選擇。此課題的設(shè)計(jì)可以分成兩個(gè)部分:一個(gè)是底層的CH374主機(jī)控制器驅(qū)動(dòng),主要包括沒(méi)備探測(cè)和枚舉(這部分程序的設(shè)計(jì)可以參考類(lèi)似主機(jī)控制器的驅(qū)動(dòng)程序,如Cypress公司的SL811HS芯片主機(jī)驅(qū)動(dòng)程序3);另一部分是攝像頭初始化、視頻數(shù)據(jù)讀取及處理程序,僅有的參考資料是Linux下的開(kāi)源U
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年計(jì)算機(jī)基礎(chǔ)考試策略分享試題及答案
- 2024年寵物營(yíng)養(yǎng)師創(chuàng)新成果展示試題及答案
- 自考公共事業(yè)管理2024年教材更新試題及答案
- 第1講 電流 電阻 電功 電功率-2026版大一輪高考物理復(fù)習(xí)
- 語(yǔ)文知識(shí)競(jìng)賽試題及答案
- 優(yōu)化2024年汽車(chē)維修工考試備考流程試題及答案
- 二手車(chē)相關(guān)政策法規(guī)試題及答案
- 二手車(chē)評(píng)估的科技應(yīng)用趨勢(shì)試題及答案
- 中高級(jí)汽車(chē)維修工的職業(yè)規(guī)劃試題及答案
- 早教培訓(xùn)測(cè)試題及答案
- 2024年中國(guó)資源循環(huán)集團(tuán)有限公司招聘筆試真題
- 危貨車(chē)輛防汛救援應(yīng)急預(yù)案
- 2025年全國(guó)國(guó)家版圖知識(shí)競(jìng)賽(中小學(xué)組)題庫(kù)及答案
- 社區(qū)商業(yè)中心公共設(shè)施的規(guī)劃與運(yùn)營(yíng)管理
- 2024年河南省中職英語(yǔ)對(duì)口高考試題
- 政治-山東省濰坊市2025屆高三2月開(kāi)年診斷調(diào)研監(jiān)測(cè)考試試題和答案
- 課件-DeepSeek從入門(mén)到精通
- 公司清明節(jié)前安全教育
- 石油開(kāi)發(fā)地質(zhì)學(xué)-第5章-圈閉和油氣藏
- 英語(yǔ)語(yǔ)法-時(shí)間介詞-練習(xí)題(帶答案)
- 2025年山東出版集團(tuán)招聘筆試參考題庫(kù)含答案解析
評(píng)論
0/150
提交評(píng)論