




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Android平板電腦camera驅(qū)動移植內(nèi)容簡介硬件平臺OV9650簡介OV9650攝像頭結(jié)構(gòu)視頻驅(qū)動整體框架V4L2原理和框架V4L2的構(gòu)架流程SCCB傳輸協(xié)議SCCB傳輸時序圖Android的Camera系統(tǒng)結(jié)構(gòu)Android調(diào)用Camera驅(qū)動過程。硬件平臺三星s5pc100S5PC100開發(fā)平臺采用三星公司最新推出的S5PC100處理器(ARMCortexA8核),最高主頻可達(dá)到800MHz。板上配置有256MbytesDDR內(nèi)存、256MbytesNandsh和2MbytesNorFlash等大容量存儲器,方便客戶編寫、調(diào)試自己的應(yīng)用程序。同時集成USB、UART、SD、LCD、Camera、VGA等常用設(shè)備接口,適用于各種手持設(shè)、消費(fèi)電子和工業(yè)控制設(shè)備等產(chǎn)品的開發(fā)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采用標(biāo)準(zhǔn)的SCCB接口。OV9650攝像頭結(jié)構(gòu)視頻驅(qū)動整體框架V4L2的原理和架構(gòu)V4L2是Linux下開發(fā)視頻采集設(shè)備驅(qū)動程序的規(guī)范,它們使用分層的方法為驅(qū)動程序的開發(fā)提供了清晰的模型和一致的接口。應(yīng)用程序處于最上層,與Framebuffer一樣,V4L2都處于中間層,而實(shí)際的硬件設(shè)備處于下層,在linux中,視頻設(shè)備是設(shè)備文件,可以像訪問普通文件一樣對其進(jìn)行讀寫,攝像頭在/dev/video0下。V4L2是一個兩層結(jié)構(gòu)的驅(qū)動,上層是videodev模塊,當(dāng)videodev初始化后,它把自己注冊一個主設(shè)備號為81的字符設(shè)備,同時注冊自己的字符驅(qū)動成員函數(shù);下層是V4L2驅(qū)動程序,它實(shí)際上是videodev的客戶端,videodev通過v4l2驅(qū)動程序的成員函數(shù)來調(diào)用V4L2驅(qū)動程序。當(dāng)V4L2驅(qū)動程序初始化后,它把一個包含V4L2驅(qū)動程序成員函數(shù),次設(shè)備號以及其他相關(guān)信息的結(jié)構(gòu)傳遞給videodev,從而把它要處理的設(shè)備注冊到videodev.V4L2的構(gòu)架和流程文件操作接口(ioctl/mmap…)字符設(shè)備驅(qū)動程序V4L2驅(qū)動程序具體的V4L2驅(qū)動硬件設(shè)備SCCB傳輸協(xié)議簡介S5PC100提供了一個攝像接口,攝像接口包括8位來自攝像頭的輸入數(shù)據(jù)信號,一個輸出主時鐘信號,三個來自攝像頭的輸入同步時鐘信號和一個輸出復(fù)位信號。S5PC100僅僅提供了一個攝像接口,因此要實(shí)現(xiàn)其功能,還需要攝像頭。在這里,我們使用OV9650。OV9650內(nèi)部有大量的寄存器需要配置,這就需要另外的數(shù)據(jù)接口。OV9650的數(shù)據(jù)接口稱為SCCB(串行攝像控制總線)。SCCB是簡化的I2C協(xié)議,SIO-l是串行時鐘輸入線,SIO-O是串行雙向數(shù)據(jù)線,分別相當(dāng)于I2C協(xié)議的SCL和SDA。SCCB的總線時序與I2C基本相同。SCCB是和I2C相同的一個協(xié)議。SIO_C和SIO_D分別為SCCB總線的時鐘線和數(shù)據(jù)線SCCB傳輸時序SCCB_E信號是一個必須由主設(shè)備驅(qū)動的向,低電平有效的控制信號,它指示了數(shù)據(jù)傳輸?shù)拈_始和結(jié)束。SCCB_E從高電平變?yōu)榈碗娖奖硎疽粋€傳輸?shù)拈_始,從低電平變?yōu)楦唠娖奖硎疽粋€傳輸?shù)慕Y(jié)束,在數(shù)據(jù)傳輸期間,SCCB_E必須維持在邏輯0,當(dāng)SCCB_E為1時,意味著此時總線空閑。SIO_C信號是一個必須由主設(shè)備驅(qū)動的單向控制信號。它指出了每一個傳輸位。當(dāng)總線空閑時,主設(shè)備必須驅(qū)動SIO_C為邏輯1。在傳輸開始后,當(dāng)SIO_C被驅(qū)動為邏輯0,則一個數(shù)據(jù)傳輸開始。在數(shù)據(jù)傳輸過程中SIO_C的一個邏輯1指示了一個單獨(dú)的已傳輸位。因此,SIO_D只能在SIO_C被驅(qū)動為0時出現(xiàn).SIO_D信號是一個雙向數(shù)據(jù)信號,可以被主設(shè)備或從設(shè)備驅(qū)動。當(dāng)總線空閑時該信號可以保持懸空或三態(tài)。SIO_C的一個邏輯1代表了一位傳輸,因此SIO_D僅當(dāng)SIO_C被驅(qū)動為邏輯0時出現(xiàn)。SCCB傳輸開始位,結(jié)束位開始位:SCCB_E由高電平變?yōu)榈碗娖奖硎緮?shù)據(jù)傳輸?shù)拈_始(如圖3所示)。但是在聲明數(shù)據(jù)傳輸開始之前,主設(shè)備必須驅(qū)動SIO_D為邏輯1以取得總線的控制權(quán),這樣做可以防止在總線上傳輸數(shù)據(jù)之前傳播一個未知狀態(tài)。結(jié)束位:SCCB_E由低電平變?yōu)殡姼咂奖硎緮?shù)據(jù)傳輸?shù)慕Y(jié)束(如圖4所示)。在結(jié)束傳輸階段定義了兩個時間參數(shù):SCCB_E由低電平變?yōu)殡姼咂奖硎緮?shù)據(jù)傳輸?shù)慕Y(jié)束(如圖4所示)。在結(jié)束傳輸階段定義了兩個時間參數(shù):tPSC和tPSA。
定義為SIO_D后處理(post-charge)時間,即SCCB_E在聲明傳輸結(jié)束以后SIO_D必須保持為邏輯1的時間。
的最小值是15ns。
定義為SCCB_E的后活動(post-active)時間,即在SIO_D聲明傳輸結(jié)束以后SCCB_E必須保持為邏輯0的時間,它的最小值是0ns。Android的Camera系統(tǒng)結(jié)構(gòu)調(diào)用camera客戶端Android應(yīng)用框架層Camera框架層將應(yīng)用與底層的實(shí)現(xiàn)隔離開來,實(shí)現(xiàn)了一套Android定義的對上對下接口規(guī)范,方便應(yīng)用及底層硬件的開發(fā)和移植。這一層對上以Java類的形式包裝出android.hardware.Camera,提供給應(yīng)用層調(diào)用;對下在CameraHardwareInterface.h頭文件中定義了Camera硬件抽象層的接口,這是一個包含純虛函數(shù)的類,必須被實(shí)現(xiàn)類繼承才能使用。這個實(shí)現(xiàn)類也即是下層中將講到的用戶庫層,它繼承CameraHardwareInterface接口,實(shí)例化對底層硬件驅(qū)動的封裝,最終生成libcamera.so供框架的libcameraservice.so調(diào)用。這樣做的好處是讓Camera的應(yīng)用框架代碼獨(dú)立,不受底層硬件驅(qū)動改變的影響,方便在不同平臺上移植驅(qū)動代碼,而保持上層的代碼不用變化。Android應(yīng)用框架層整個Camera在運(yùn)行的時候,可以大致上分成Client和Server兩個部分,它們分別在兩個進(jìn)程中運(yùn)行,它們之間使用Binder機(jī)制實(shí)現(xiàn)進(jìn)程間通訊。這樣在client調(diào)用接口,功能則在server中實(shí)現(xiàn),但是在client中調(diào)用就好像直接調(diào)用server中的功能,進(jìn)程間通訊的部分對上層程序不可見。CameraClient端通過Binder機(jī)制與CameraServer端通訊,Server端的實(shí)現(xiàn)傳遞到Client端。而Server端的實(shí)現(xiàn)又是調(diào)用硬件接口來實(shí)現(xiàn)。這就延伸到我們要介紹的Camera的下一個層次――庫層(HAL層)。庫層(硬件抽象層HAL)這個層次其實(shí)就是用戶空間的驅(qū)動代碼。前面有介紹過框架層對下在CameraHardwareInterface.h頭文件中定義了Camera硬件抽象層的接口,它是包含純虛函數(shù)的類,必須被實(shí)現(xiàn)類繼承才能使用。HAL層正好繼承CameraHardwareInterface接口,依據(jù)V4l2規(guī)范實(shí)例化底層硬件驅(qū)動,使用ioctl方式調(diào)用驅(qū)動,最終生成libcamera.so供框架的libcameraservice.so調(diào)用。如果要在某硬件平臺上運(yùn)行Android,也就主要在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025物流公司租車合同模板
- 水利工程草坪綠化設(shè)計(jì)與施工合同
- 車輛抵押貸款與金融科技服務(wù)協(xié)議
- 高效復(fù)習(xí)VFP計(jì)算機(jī)二級考試試題及答案
- 2025年文化旅游示范區(qū)建設(shè)資金申請項(xiàng)目投資回報(bào)分析報(bào)告
- C語言代碼優(yōu)化選擇方法試題及答案
- 2025年生態(tài)環(huán)境修復(fù)工程資金申請與生態(tài)修復(fù)項(xiàng)目融資策略報(bào)告
- 農(nóng)業(yè)灌溉用水2025年高效利用與農(nóng)業(yè)節(jié)水灌溉設(shè)備市場供需平衡分析報(bào)告
- 數(shù)字孿生在城市交通擁堵治理中的應(yīng)用策略報(bào)告
- 醫(yī)療健康公司運(yùn)營管理方案
- 《教育研究方法》課件
- 公路養(yǎng)護(hù)汛期巡查計(jì)劃表
- 針灸治療格林巴利綜合征
- 牧場成本管理
- 水上游樂設(shè)施安全事故應(yīng)急預(yù)案
- 《咖啡英文介紹》課件
- 勞務(wù)雇傭免責(zé)協(xié)議書范本兩篇
- 老舊泵房拆除改造施工方案
- 品質(zhì)管控培訓(xùn)質(zhì)量管理與質(zhì)量控制課件
- 民間非營利組織審計(jì)報(bào)告(模板)
- 2024年山東省德州市中考生物試題卷(含答案)
評論
0/150
提交評論