国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于CH374的USB攝像頭驅動設計

發布時間:2010-9-16 10:04    發布者:techshare
關鍵詞: CH374 , USB , 驅動設計 , 攝像頭
現有視頻監控系統的設計大都采用 USB視頻采集和以太網傳輸,并且需要視頻壓縮方案,通常需要操作系統支持;因此選取的開發平臺價格昂貴,造成視頻臨控系統的成本居高不下,以致使小型工廠和家庭用戶難以接受。  

本課題采用S3C44BO微處理器的 ARM7開發平臺,驅動USB接口芯片CH374進行視頻數據采集,提供了低成本的視頻采集方案。USB視頻采集涉及USB同步傳輸,但是在眾多USB主機芯片的設計中,多以控制傳輸和批量傳輸為主,對同步傳輸的講解極為少見。本文提供了USB同步傳輸的設計范例。  

1 系統工作原理

典型的USB視頻采集系統如圖1所示。USB系統包含主機和物理設備兩個最基本的元素,一個USB系統只能有一個USB主機,可以連接多個物理設備。本設計中的設備是USB攝像頭,USB主機由USB主機控制器、微處理器及驅動軟件構成。USB系統工作層次分明:USB接口層提供主機控制器和設備的物理連接;設備層中,USB主機調用驅動程序通過端點0發送并獲取USB設備的控制信息;功能層進行實際數據的傳輸,主機必須選擇合適的接口和端點,調用底層驅動提供的接口函數獲取USB攝像頭的視頻數據流。




1.1 USB攝像頭SPCA561A

視頻信號的采集一般選擇USB攝像頭來實現。如圖2所示,USB攝像頭SPCA561A集成了鏡頭、CMOS傳感器、USB圖像處理器以及USB控制器。



比起直接與微處理器接口的CMOS傳感器,使用USB攝像頭雖然成本偏高,但是易于實現,節省CPU資源,而且驅動支持非常豐富。SPCA561A提供了一種單芯片攝像頭解決方案,它將一個CIF的CMOS傳感器、一個圖像處理器和USB控制器集成于單芯片,從而大大降低了成本和開發難度;缺點是只有10萬像素,每秒幀數較少,然而非常適合應用于圖像要求不高的小型監控系統。  

1.2 USB主機控制器CH374

CH374是一個嵌入式USB總線的通用接口芯片,支持USB主機方式和USB設備方式,支持低速和全速的控制傳輸、批量傳輸、中斷傳輸以及同步傳輸。在本地端,CH374具有8位數據總線和讀、寫、片選控制線以及中斷輸出,可以方便地掛接到DSPMCU/MPU等控制器的系統總線上。大多數嵌入式的USB主機接口芯片并不提供同步傳輸模式,而CH374的一大特點就是提供了同步傳輸,使得視頻和音頻流的傳輸成為可能。  

本系統使用CH374作為USB主機控制器,如圖3所示。CH374用總線方式與S3C44B0相連,微控制器通過讀寫CH374寄存器實現USB主機驅動。



1.3 USB同步傳輸原理

同步傳輸主要用來傳輸音頻或視頻信號。這種信息是周期的,又是實時的,對信息實時性有很高的要求,但是對誤碼率卻可以容忍。所以USB為這種信息保留90%的帶寬,其他類型的傳輸在同步傳輸期間不可以占用。  

為保證數據傳輸的實時性,同步傳輸不進行數據錯誤的重傳,也不在硬件層次上響應一個握手資料包。同步傳輸的主機每隔l ms發送一個SOF同步信號,隨后接收設備發送的信號,其數據流程如圖4所示。




在同步傳輸中,每一個信包的容量是一定的。拿SPCA56l來說,在啟動同步傳輸之前必須設置相應的接口號。不同的接口號決定將要發送多大的信包容量,如接口號1每次發送的信包容量是128字節,接口號6的信包容量是896字節。接口號通過USB標準設備請求SET_INTERFACE來設置。由于CH374的緩沖區最大為128字節,所以本設計中使用接口號l,同步傳輸每接收一個信包的大小是128字節容量的信包。  

1.4 視頻數據采集過程

如圖5所示,視頻信號由攝像頭SPCA561A采集得到,經過內部的圖像處理芯片后編碼為規定的格式,一般為RGB或者YUV格式,但是SPCA561采用比較特殊的S561圖像格式(類似于RGB格式)。因為一幀圖像的數據量很大,無法在一個同步信包內傳送,所以將其分割成多個單元,每個單元前添加包頭(包頭的內容包括當前包序號和此圖像幀信息),組成多個同步信包,通過FIFO緩沖發送到USB總線上。主機控制器用同步方式接收每個信包,并去除包頭合并成S561格式的數據,組成一個完整的圖像幀。最后由軟件將此圖像幀預編碼成為YUV420格式的圖像數據,以便后續的壓縮處理。



2 USB攝像頭驅動的實現

USB攝像頭并非標準的USB外設。與其他USB外設不同的是,每個廠商的攝像頭芯片都有自己定義的設備請求,而這些攝像頭芯片數據手冊并不對外公開,所以編寫攝像頭驅動的難度很大,想要驅動支持更多的攝像頭,程序會非常復雜。本文只介紹SPCA561A攝像頭驅動的方法。

2.1 USB攝像頭初始化


初始化一個USB攝像頭有兩個步驟,第一步是攝像頭的枚舉,第二步是攝像頭的自定義設置。  

(1) 設備枚舉  

設備的枚舉就是標準設備請求的過程,這部分內容包含于USB協議第9章。對USB攝像頭來說,枚舉的過程依次如下:  

①獲取設備描述符。通過設備描述符得到端點0的負載,也就是最大傳送包容量。  

②設置地址。給設備分配一個默認地址0之外的地址。  

③獲取配置描述符。這個過程包括兩個階段,第1次獲取的配置描述符的前4個字節得到配置描述符的真實長度;再以真實長度第2次獲取配置描述符,此描述符包含了設備的配置信息和多個接口信息。可以從這里得到可以使用的接口號和對應的信包負載

④設置配置信息。設置的主要信息是配置描述符中的第5個字段bConfigurationValue。  

⑤設置接口。USB攝像頭不同的接口號對應不同的信包負載。本設計選定的接口號為2,對應信包負載是128字節。  

(2) 自定義設置  

USB攝像頭并不是標準USB外設,需要很多自定義設置,可以稱之為“自定義設備請求”,它是用標準設備請求包方式傳
送的,目的是修改內部寄存器,對采集圖像和壓縮方式進行配置。標準設備請求和自定義設備請求包的不同內容如表1所列。自定義設備請求的內容非常豐富,它包含以下幾個方面:  

①時序產生設置。包括圖像采集頻率和振蕩器的設置等。  

②圖像處理設置。包括圖像窗口大小、壓縮類型、色彩分配等配置屬性。  

③存儲器設置。對圖像緩沖進行設置。  

④控制及狀態設置。包括啟動及停止圖像采集、數據傳輸方式、當前狀態等配置屬性。



程序中的初始化設置有近百條,具體設置請見參考文獻的開源代碼。初始化結束后,可以根據需要進行圖像格式的設定,SPCA561A支持SQVGA(160×120)、QCIF(176×144)、QVGA(320×240)、CIF(352×288)四種格式。設定結束后啟動攝像頭采集,進行數據傳輸。  

2.2 同步傳輸和圖像幀處理

同步傳輸的過程非常簡單,甚至不包含握手信息;但是因為同步傳輸對時序的要求很高,所以對同步傳輸數據的處理頗困難。此驅動的設計將同步數據的接收用中斷服務程序進行處理,同步數據的處理放在中斷服務之外執行。  

①中斷服務程序流程如圖6所示。每次同步中斷發生時,首先從USB主機控制器的緩沖區內讀取接收到的128字節同步信包,將數據存儲到數據處理程序提供的存儲單元中。再發送PID_IN標志和端點號,設置同步傳輸類型并啟動下一次傳輸。CH374主機會在每1 ms發送1個SOF同步標志,USB設備接收到SOF標志后,會傳送下一個同步信包。



②同步數據處理程序如圖7所示。中斷結束后,執行數據處理程序,程序讀取同步信包的第一個字節,確認包的序號,此序號的范圍是0~0xFF。如果此序號為0xFF,則說明是無效包,需要丟棄。如果此序號為0,則可能是首次采集得到的第一個同步數據包,直接存儲此數據到圖像幀;也可能是當前圖像幀結束后開始的下一幀圖像的第一個同步信包,則需要處理已經結束的當前幀圖像,同時將當前幀設置為下一幀。至此得到了一幀圖像數據。



2.3 圖像數據的預編碼

經過處理后的圖像幀為S561格式數據,它是一種RGB格式的圖像,無法被后續的圖像編碼器利用。常用的視頻壓縮標準(如H.263、MPEG4等)輸入的視頻數據為YUV420格式,所以必須對當前的S56l格式數據進行預編碼,使之成為YUV420格式。因為算法比較復雜,在此不詳細敘述,請參考文獻中bayer_decode( )函數的的源代碼。至此,基于CH374的攝像頭驅動完成。  

3 設計心得

由于此USB主機基于低端嵌入式硬件系統,沒有操作系統支持,也沒有BUSHOUND類似的USB數據流分析軟件支持,難以找到基于嵌入式平臺USB同步傳輸參考程序,所以設計的難度很大。筆者的設計經驗是重在參考程序的選擇。  

此課題的設計可以分成兩個部分:一個是底層的CH374主機控制器驅動,主要包括沒備探測和枚舉(這部分程序的設計可以參考類似主機控制器的驅動程序,如Cypress公司的SL811HS芯片主機驅動程序);另一部分是攝像頭初始化、視頻數據讀取及處理程序,僅有的參考資料是Linux下的開源USB攝像頭驅動。在設計過程中首先需要了解Linux設備驅動原理,很好地分析USB攝像頭驅動之后才能有設計思路。  

結 語

將本驅動加到已有的視頻壓縮程序中,通過網絡傳送視頻到PC后播放,在大小為QVGA(160×120)的圖像屬性下,可以達到每秒7幀,基本滿足了實際需要。基于CH374的USB攝像頭驅動,提供了低成本嵌入式平臺實現視頻采集的方案,便利視頻采集系統不再高不可攀,對視頻監控的普及起到了積極作用。
本文地址:http://m.qingdxww.cn/thread-26982-1-1.html     【打印本頁】

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

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天天看片天天操| 曰批免费视频| 中文字幕精品视频在线观| 高龄熟女50P| 老师给美女同学开嫩苞| 日日操夜夜操狠狠操| 一本久久精品一区二区| 日本精品影院| 日韩精品欧美激情国产一区| 亚洲人成绝费网站色ww| 亚洲v视频| 99国产这里只有精品视频| 久久九九青青国产精品| 亚洲AV久久无码精品九九软件| 一级爱一级做a性视频| 四虎影视永久在线精品免费| 特黄特色的大片观看免费视频| 四虎影院4hu| www国产av偷拍在线播放| 肉肉高潮液体高干文H| 欧洲一区在线观看| 亚洲欧美精品一中文字幕| 天天综合色天天综合| 天天综合天天综合色在线| 中文字幕一区二区三区在线不卡| 刘梓晨啪啪啪| 婷婷久久综合网| 青青草好| 亚洲一区二区在线成人| 中文字幕在线影院| 欧美巨大巨粗黑人性AAAAAA| 日本视频久久| 丝袜美腿中文字幕| 王伦宝1069| a级成人免费毛片完整版| 久久精品电影网| 性视频网站在线| 欧美在线不卡| 一级黄色免费观看| 一个人免费看www视频| 久久精品国产亚洲AV影院|