




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Android平板電腦camera驅動移植內容簡介硬件平臺OV9650簡介OV9650攝像頭結構視頻驅動整體框架V4L2原理和框架V4L2的構架流程SCCB傳輸協議SCCB傳輸時序圖Android的Camera系統結構Android調用Camera驅動過程。硬件平臺三星s5pc100S5PC100開發平臺采用三星公司最新推出的S5PC100處理器(ARMCortexA8核),最高主頻可達到800MHz。板上配置有256MbytesDDR內存、256MbytesNandsh和2MbytesNorFlash等大容量存儲器,方便客戶編寫、調試自己的應用程序。同時集成USB、UART、SD、LCD、Camera、VGA等常用設備接口,適用于各種手持設、消費電子和工業控制設備等產品的開發OV9650簡介OV9650攝像頭OV9650是OmniVision公司的彩色CMOS圖像傳感器,具有130萬像素,支持SXGA,VGA,QVGA,QQVGA,CIF,QCIF,QQCIF的分辨率,具有多種色彩輸出格式RGB,RGB(GRB4:2:2),YUV(4:2:2)和YCbCr(4:2:2),OV9650采用標準的SCCB接口。OV9650攝像頭結構視頻驅動整體框架V4L2的原理和架構V4L2是Linux下開發視頻采集設備驅動程序的規范,它們使用分層的方法為驅動程序的開發提供了清晰的模型和一致的接口。應用程序處于最上層,與Framebuffer一樣,V4L2都處于中間層,而實際的硬件設備處于下層,在linux中,視頻設備是設備文件,可以像訪問普通文件一樣對其進行讀寫,攝像頭在/dev/video0下。V4L2是一個兩層結構的驅動,上層是videodev模塊,當videodev初始化后,它把自己注冊一個主設備號為81的字符設備,同時注冊自己的字符驅動成員函數;下層是V4L2驅動程序,它實際上是videodev的客戶端,videodev通過v4l2驅動程序的成員函數來調用V4L2驅動程序。當V4L2驅動程序初始化后,它把一個包含V4L2驅動程序成員函數,次設備號以及其他相關信息的結構傳遞給videodev,從而把它要處理的設備注冊到videodev.V4L2的構架和流程文件操作接口(ioctl/mmap…)字符設備驅動程序V4L2驅動程序具體的V4L2驅動硬件設備SCCB傳輸協議簡介S5PC100提供了一個攝像接口,攝像接口包括8位來自攝像頭的輸入數據信號,一個輸出主時鐘信號,三個來自攝像頭的輸入同步時鐘信號和一個輸出復位信號。S5PC100僅僅提供了一個攝像接口,因此要實現其功能,還需要攝像頭。在這里,我們使用OV9650。OV9650內部有大量的寄存器需要配置,這就需要另外的數據接口。OV9650的數據接口稱為SCCB(串行攝像控制總線)。SCCB是簡化的I2C協議,SIO-l是串行時鐘輸入線,SIO-O是串行雙向數據線,分別相當于I2C協議的SCL和SDA。SCCB的總線時序與I2C基本相同。SCCB是和I2C相同的一個協議。SIO_C和SIO_D分別為SCCB總線的時鐘線和數據線SCCB傳輸時序SCCB_E信號是一個必須由主設備驅動的向,低電平有效的控制信號,它指示了數據傳輸的開始和結束。SCCB_E從高電平變為低電平表示一個傳輸的開始,從低電平變為高電平表示一個傳輸的結束,在數據傳輸期間,SCCB_E必須維持在邏輯0,當SCCB_E為1時,意味著此時總線空閑。SIO_C信號是一個必須由主設備驅動的單向控制信號。它指出了每一個傳輸位。當總線空閑時,主設備必須驅動SIO_C為邏輯1。在傳輸開始后,當SIO_C被驅動為邏輯0,則一個數據傳輸開始。在數據傳輸過程中SIO_C的一個邏輯1指示了一個單獨的已傳輸位。因此,SIO_D只能在SIO_C被驅動為0時出現.SIO_D信號是一個雙向數據信號,可以被主設備或從設備驅動。當總線空閑時該信號可以保持懸空或三態。SIO_C的一個邏輯1代表了一位傳輸,因此SIO_D僅當SIO_C被驅動為邏輯0時出現。SCCB傳輸開始位,結束位開始位:SCCB_E由高電平變為低電平表示數據傳輸的開始(如圖3所示)。但是在聲明數據傳輸開始之前,主設備必須驅動SIO_D為邏輯1以取得總線的控制權,這樣做可以防止在總線上傳輸數據之前傳播一個未知狀態。結束位:SCCB_E由低電平變為電高平表示數據傳輸的結束(如圖4所示)。在結束傳輸階段定義了兩個時間參數:SCCB_E由低電平變為電高平表示數據傳輸的結束(如圖4所示)。在結束傳輸階段定義了兩個時間參數:tPSC和tPSA。
定義為SIO_D后處理(post-charge)時間,即SCCB_E在聲明傳輸結束以后SIO_D必須保持為邏輯1的時間。
的最小值是15ns。
定義為SCCB_E的后活動(post-active)時間,即在SIO_D聲明傳輸結束以后SCCB_E必須保持為邏輯0的時間,它的最小值是0ns。Android的Camera系統結構調用camera客戶端Android應用框架層Camera框架層將應用與底層的實現隔離開來,實現了一套Android定義的對上對下接口規范,方便應用及底層硬件的開發和移植。這一層對上以Java類的形式包裝出android.hardware.Camera,提供給應用層調用;對下在CameraHardwareInterface.h頭文件中定義了Camera硬件抽象層的接口,這是一個包含純虛函數的類,必須被實現類繼承才能使用。這個實現類也即是下層中將講到的用戶庫層,它繼承CameraHardwareInterface接口,實例化對底層硬件驅動的封裝,最終生成libcamera.so供框架的libcameraservice.so調用。這樣做的好處是讓Camera的應用框架代碼獨立,不受底層硬件驅動改變的影響,方便在不同平臺上移植驅動代碼,而保持上層的代碼不用變化。Android應用框架層整個Camera在運行的時候,可以大致上分成Client和Server兩個部分,它們分別在兩個進程中運行,它們之間使用Binder機制實現進程間通訊。這樣在client調用接口,功能則在server中實現,但是在client中調用就好像直接調用server中的功能,進程間通訊的部分對上層程序不可見。CameraClient端通過Binder機制與CameraServer端通訊,Server端的實現傳遞到Client端。而Server端的實現又是調用硬件接口來實現。這就延伸到我們要介紹的Camera的下一個層次――庫層(HAL層)。庫層(硬件抽象層HAL)這個層次其實就是用戶空間的驅動代碼。前面有介紹過框架層對下在CameraHardwareInterface.h頭文件中定義了Camera硬件抽象層的接口,它是包含純虛函數的類,必須被實現類繼承才能使用。HAL層正好繼承CameraHardwareInterface接口,依據V4l2規范實例化底層硬件驅動,使用ioctl方式調用驅動,最終生成libcamera.so供框架的libcameraservice.so調用。如果要在某硬件平臺上運行Android,也就主要在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 社區教育中心委托管理及課程設置調整協議
- 共同承擔賠償協議書
- 金融權益授權協議書
- 附帶民事賠償協議書
- 餐飲異地投資協議書
- 餐飲檔口聯營協議書
- 護理工作院感防控體系構建
- 酒店裝飾裝修協議書
- 重慶售房合同協議書
- 銷售目標考核協議書
- 車棚維修協議書
- 2025年1-氯丁烷項目可行性研究報告
- 【部編版】語文六年級下冊古詩詞誦讀1《采薇(節選)》精美課件
- 2025屆高三高考押題預測卷 英語 (新高考Ⅱ卷02) 含解析
- 2024年西安曲江二小教師招聘真題
- 四川省2025屆高三第二次聯合測評-英語試卷+答案
- 2024年全國工會財務知識大賽備賽試題庫500(含答案)
- 2025-2030中國貿易融資行業市場發展現狀及發展趨勢與投資戰略研究報告
- 法院輔警筆試題及答案
- 《小米營銷策略》課件
- 2025年咸陽職業技術學院單招職業傾向性測試題庫(名師系列)
評論
0/150
提交評論