模塊開發(fā)說明書_第1頁(yè)
模塊開發(fā)說明書_第2頁(yè)
模塊開發(fā)說明書_第3頁(yè)
模塊開發(fā)說明書_第4頁(yè)
模塊開發(fā)說明書_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

言前編的圍1.2.言前編的圍1.2.1.3.TS員-4Copyright?2013AllwinnerTechnology.AllRights2.塊介紹紹2.1.紹2.2.FileVCMOSeCSIS2.塊介紹紹2.1.紹2.2.FileVCMOSeCSIS2.3.對(duì)型物理橫80x80) 800x1如分掃描方向掃描方向:-5Copyright?2013AllwinnerTechnology.AllRightsMENLCMENLC800x128LCD掃描 掃描方向正確的配對(duì)方式為橫屏?xí)r應(yīng)選擇攝像頭成像角度掃描方向掃 向+=豎屏豎屏?xí)r應(yīng)選擇攝像頭成像角度為90度或掃描 掃描方向正確的配對(duì)方式為橫屏?xí)r應(yīng)選擇攝像頭成像角度掃描方向掃 向+=豎屏豎屏?xí)r應(yīng)選擇攝像頭成像角度為90度或掃描 掃 向+= mera.cg正確選為攝像角度,這樣系統(tǒng)就可以正確識(shí)別攝像頭的成像角度-6Copyright?2013AllwinnerTechnology.AllRightsMENMENLC480X80MENMENLC800X48源碼結(jié)構(gòu)介驅(qū)動(dòng)路源碼結(jié)構(gòu)介驅(qū)動(dòng)路徑位-7Copyright?2013AllwinnerTechnology.AllRights ;v4l2驅(qū)動(dòng)實(shí)現(xiàn)主 │ ;v4l2驅(qū)動(dòng)實(shí)現(xiàn)主 │ ;具體sensor驅(qū) ;具體sensor驅(qū) ;具體sensor驅(qū) ;具體sensor驅(qū) │ ;sensor自適應(yīng)主 ;sensor支持列表檢 ;打印開 │ ;數(shù)據(jù)結(jié)構(gòu)定 ││3.2.Capabilityofcsidriver(structv4l2_capability*capability)structv4l2_capability{/*i.e."bttv"3.2.Capabilityofcsidriver(structv4l2_capability*capability)structv4l2_capability{/*i.e."bttv"/*i.e."HauppaugeWinTV"/*"PCI:"+pci_name(pci_dev)/*shoulduseKERNEL_VERSION()capabilities;/*Devicecapabilities*/Fail:Failure等structv4l2_input{u32WhichinputLabelTypeofinput Associatedaudios(bitfield) Associatedtuner-8Copyright?2013AllwinnerTechnology.AllRights Fail:Failureinputindexinputindex0Fail:Failureinputindexinputindex0indexIndex=0primarycsideviceIndex1secondarycsideviceindextypeCSI輸入設(shè)備來說,typeinput(structv4l2_inputThesameasFail:Failure通過inp.index設(shè)置當(dāng)前要訪問的csideviceprimarydevice還是secondarydevice備,則index固定為0)Index1(雙攝像頭配置中,一般對(duì)應(yīng)前置攝像頭input(structv4l2_inputThesameasFail:Failure獲取inp.index,判斷當(dāng)前設(shè)置的csidevice為primarydevice還是secondary-9Copyright?2013AllwinnerTechnology.AllRights備,則index固定為0)Index1(雙攝像頭配置中,一般對(duì)應(yīng)前置攝像頭structv4l2_streamparm{union{structv4l2_outputparm備,則index固定為0)Index1(雙攝像頭配置中,一般對(duì)應(yīng)前置攝像頭structv4l2_streamparm{union{structv4l2_outputparm/*user-defined}structv4l2_captureparmstructSupportedmodes*/Currentmode*/ Timeperframein.1usunits*/Driver-specificextensions*/#ofbuffersforreadFail:Failure應(yīng)用使用時(shí),parms.type=V4L2_BUF_TYPE_VIDEO_CAPTURE;42_M_MAParameter(structv4l2_streamparmThesameas-10Copyright?2013AllwinnerTechnology.AllRightsFail:Failure應(yīng)用使用時(shí),parms.type=V4L2_BUF_TYPE_VIDEO_CAPTURE;V4L2format(structv4l2_fmtdesc*fmtdesc)structv4l2_fmtdesc{/*Fail:Failure應(yīng)用使用時(shí),parms.type=V4L2_BUF_TYPE_VIDEO_CAPTURE;V4L2format(structv4l2_fmtdesc*fmtdesc)structv4l2_fmtdesc{/*Format/*bufferenum/*Descriptionstring/*FormatFail:FailurepixelformatCSI來說,typeV4L2_BUF_TYPE_VIDEO_CAPTUREVideotype,formatandsize(structv4l2_format*fmt)structv4l2_format{union{structstructstructv4l2_window-11Copyright?2013AllwinnerTechnology.AllRightsstructv4l2_sliced_vbi_format}structv4l2_pix_formatenumstructv4l2_sliced_vbi_format}structv4l2_pix_formatenumenumFail:Failure根據(jù)捕捉視頻的類型,格式和大小,判斷模式,格式是否被驅(qū)動(dòng)支持。CSI輸入設(shè)備,typeV4L2_BUF_TYPE_VIDEO_CAPTURE。使用structv4l2_pix_format進(jìn)行參數(shù)傳遞。應(yīng)用程序輸入structv4l2_pix_format結(jié)構(gòu)體里面的widthheight,pixelformat,field等參數(shù),驅(qū)動(dòng)返回最接近的width,height;若pixelformat,field不支持,則默認(rèn)選擇驅(qū)動(dòng)支持的第一種格式。Videotype,formatandsize(structv4l2_format*fmt)ThesameasVIDIOC_TRY_FMTFail:FailureCSI輸入設(shè)備,typeV4L2_BUF_TYPE_VIDEO_CAPTURE。使structv4l2_pix_format應(yīng)用程序輸入width,height,pixelformat,field等,驅(qū)動(dòng)返回最接近的width,heightpixelformat,field不支持,則默認(rèn)選擇驅(qū)動(dòng)支持的第一種-12Copyright?2013AllwinnerTechnology.AllRights應(yīng)用程序應(yīng)該以驅(qū)動(dòng)返回的width,height,pixelformat,field等作為后Videotype,formatandsize(structv4l2_format應(yīng)用程序應(yīng)該以驅(qū)動(dòng)返回的width,height,pixelformat,field等作為后Videotype,formatandsize(structv4l2_format*fmt)ThesameasVIDIOC_TRY_FMTFail:FailureBuffertype,countandmemorymaptype(structv4l2_requestbuffers*enumenumFail:FailureFIFObuffer通過內(nèi)核申請(qǐng),申請(qǐng)后需要通過mmap方法,映射到User空間。Memory:目前支持V4L2_MEMORY_MMAP方式 -13Copyright?2013AllwinnerTechnology.AllRightsBuffertype,indexandmemorymaptype(structv4l2_bufferstructv4l2_bufferenumBuffertype,indexandmemorymaptype(structv4l2_bufferstructv4l2_bufferenumstructtimevalstructv4l2_timecodeenumv4l2_memoryunion{unsignedstructv4l2_plane}Fail:FailureBuffertype(enumv4l2_buf_type-14Copyright?2013AllwinnerTechnology.AllRightsFail:FailurebuffertypeV4L2_BUF_TYPE_VIDEO_CAPTUREFail:FailurebuffertypeV4L2_BUF_TYPE_VIDEO_CAPTURE成一幀buffer數(shù)據(jù)的填入。Buffertype,indexandmemorymaptype(structv4l2_buffer*buf)structv4l2_bufferisthesameasVIDIOC_QUERYBUFFail:Failure應(yīng)用程序根據(jù)index來識(shí)別buffer,此時(shí)m.offset表示bufferBuffertype,indexandmemorymaptype(structv4l2_bufferFail:FailureBuffertype(enumv4l2_buf_type-15Copyright?2013AllwinnerTechnology.AllRightsFail:FailureControlFail:FailureControlidandvalue(structv4l2_queryctrlstructv4l2_queryctrlenumname[32];/*Whatever*/minimum;/*Notesignedness*/Fail:Failuredefault_value以及步進(jìn)step。Controlidandvalue(structv4l2_queryctrl*qc)ThesameasVIDIOC_QUERYCTRLFail:Failure-16Copyright?2013AllwinnerTechnology.AllRightsmaximum之間。Controlidandvalue(structv4l2_queryctrl*qc)ThesameasVIDIOC_QUERYCTRLFail:Failure-17Copyright?2013AllwinnerTechnology.AllRightsAndroid層模塊介4.2.Android層模塊介4.2.,要想CameraHAL的具體實(shí)現(xiàn),只要正確的CameraHAL的代碼能夠兼容各種不同的攝像頭模組,我們將一些camera.cfg文件來配置CameraHAL代碼中通過讀取camera.cfg來使用不同的模組.camera.cfg中定義分號(hào)開頭為注釋;基本格式為:key=value-18Copyright?2013AllwinnerTechnology.AllRights制造商和型號(hào)信息,exif告訴當(dāng)前系統(tǒng)有幾個(gè)攝像頭,1,對(duì)在預(yù)們 么別兩接頭像的的開結(jié)備剩下的幾項(xiàng)基本上都是基于模式為used_xxx:0表示系統(tǒng)不支持,1表示系統(tǒng)支持;如果系統(tǒng)支持,那么:key_default_xxx后的值表明默認(rèn)的模式;在對(duì)在預(yù)們 么別兩接頭像的的開結(jié)備剩下的幾項(xiàng)基本上都是基于模式為used_xxx:0表示系統(tǒng)不支持,1表示系統(tǒng)支持;如果系統(tǒng)支持,那么:key_default_xxx后的值表明默認(rèn)的模式;在camera.cfg是必須配置的,其它都是可選項(xiàng);;;;;;-19Copyright?2013AllwinnerTechnology.AllRights2Android系統(tǒng)中的攝像id號(hào),id0如果有兩個(gè)攝像頭則后置攝像頭id0,前置攝像頭id為1 訴系統(tǒng)這個(gè)攝像頭是前置還是,ndroid ,前頭置 于ISP ( 頭,通成常像在方0,向 90 頭,驅(qū) 頭.如 CSI上,時(shí)分 ;如備果結(jié)兩點(diǎn)個(gè) I接,口 ,此device_iddevice_id是對(duì)于兩個(gè)攝像頭共用 CSI接口時(shí)用于 ,device_id為0是頭默用認(rèn)的打頭;device_id為1則 頭;;;;;;;;;;;;;;;-20Copyright?2013AllwinnerTechnology.AllRights;;;;;;;;;;;;;;;-20Copyright?2013AllwinnerTechnology.AllRights; ; =; 續(xù)nion將這兩個(gè)去==-21Copyright?2013AllwinnerTechnology.AllRights;;;;;;;;;;;;-22Copyright?2013Allwinner;;;;;;;;;;;;-22Copyright?2013AllwinnerTechnology.AllRights ==-23Copyright?2013AllwinnerTechnology.AllRightsmedia_profiles.xml用于配置錄像參數(shù)拿到一個(gè)模板后,只需要修改幾處地方即可典型的對(duì)于雙攝像頭如下分了兩段分別配置后置攝像頭cameraId="0"和前置攝像頭這里需要根據(jù)實(shí)際攝像頭參數(shù)修改下面例子中高亮標(biāo)注的地方media_profiles.xml用于配置錄像參數(shù)拿到一個(gè)模板后,只需要修改幾處地方即可典型的對(duì)于雙攝像頭如下分了兩段分別配置后置攝像頭cameraId="0"和前置攝像頭這里需要根據(jù)實(shí)際攝像頭參數(shù)修改下面例子中高亮標(biāo)注的地方-24Copyright?2013AllwinnerTechnology.AllRightsEncoderProfile錄像質(zhì)量,在Android2.3中必須要配置兩項(xiàng)”low””highAndroid4.0”1080p”,”720p”,“480p”,我們?yōu)榱思嫒菀郧暗呐渲?擴(kuò)展了支持”low”和”high”,此外Android4.0中支持了延時(shí)錄制模式,其關(guān)鍵字分別是在正常模式前加上”timelapse”,例如”編碼格式,這里為”h264”通常說的視頻文件的碼率,碼率越高,(視頻)越清晰,音質(zhì)(音頻)越高,width,錄像文件的分辨率,視頻文件的幀率,實(shí)際的幀率需要與攝像頭采集幀率聲音的采樣率,采樣率越高,音質(zhì)越好;聲音的通道數(shù),ImageEncoding是指拍照的質(zhì)量,分別對(duì)于及精細(xì),-25Copyright?2013AllwinnerTechnology.AllRights-26Copyright?2013AllwinnerTechnology.AllRights-27Copyright?2013AllwinnerTechnology.AllRights-----28Copyright?2013AllwinnerTechnology.AllRights-29Copyright?2013AllwinnerTechnology.AllRights5.模塊體系結(jié)構(gòu)描JavAndroidListener決定callback對(duì)BindBind幀兩個(gè)去向:調(diào)用顯示接口進(jìn)行通過回調(diào)函數(shù)傳給Linu5.1Camera模塊的基本結(jié)對(duì)于系統(tǒng)開發(fā)人員來說,只需要實(shí)現(xiàn)上圖中右下角的部分,我們稱為在Android中,CameraHAL層的框圖如下:CameraHAL層5.模塊體系結(jié)構(gòu)描JavAndroidListener決定callback對(duì)BindBind幀兩個(gè)去向:調(diào)用顯示接口進(jìn)行通過回調(diào)函數(shù)傳給Linu5.1Camera模塊的基本結(jié)對(duì)于系統(tǒng)開發(fā)人員來說,只需要實(shí)現(xiàn)上圖中右下角的部分,我們稱為在Android中,CameraHAL層的框圖如下:CameraHAL層camera_modullecamera_deviicecamera_deviice_op-hw_device_tcommon-camera_device_ops_t*ops-hw_module_tcommon-camera_module_t*mModule+get_number_of_cameras(+get_camera_info(+onFirstRef(+connect(-void*privHALCameraF-CameraHardware**mHardwareCameras-hw_module_methods_tmCameraModuleMethods-camera_device_t*mDevice-camera_preview_windowmHalPreviewWindow-sp<ANativeWindow>mPreviewWindow-sp<CameraHardwareInterface>mHardware-sp<CameraService>mCameraService-sp<ICameraClient>mCameraClient-staticcamera_device_ops_t+intget_number_of_cameras(+intget_camera_info(+intdevice_open(+status_tinitializehw_module_t*module)(camera_previiiew_wiiindpreviiiew_stream_op-preview_stream_opsnw-void*user5.2CameraHAL層的框-30Copyright?2013AllwinnerTechnology.AllRightshw_modulle_methods+open chw_deviice-hw_module_t*m+close(hw_modulle-hw_module_methods_t*methods-constchar*name-constcharidhardwhw_get_module(hw_get_moduleby_class(+load(V4L2CedarXHWPrevieCameraTakeClient頻Camer根NativeNativeAPICameraJAVACameraService中創(chuàng)建CameraHardwareInterface實(shí)例;CameraHardwareInterface對(duì)象調(diào)用camera_module_t的接口open,獲取hw_device_t對(duì)象,賦值所有的camera_device_ops_t中的函數(shù)指針;Android4.1中CameraHAL實(shí)現(xiàn)的結(jié)構(gòu)圖CameraService中創(chuàng)建CameraHardwareInterface實(shí)例;CameraHardwareInterface對(duì)象調(diào)用camera_module_t的接口open,獲取hw_device_t對(duì)象,賦值所有的camera_device_ops_t中的函數(shù)指針;Android4.1中CameraHAL實(shí)現(xiàn)的結(jié)構(gòu)圖如下:LCam造函數(shù)中實(shí)例化mer對(duì)a象HardwarneCameraHardwareDeice-camera_device_ops_tmDeviceOps-CameraParameters-PreviewWindowmPreviewWindow-V4L2CameraDevice*mVPreviewW-preview_stream_ops*mPreviewWindowOp操mHardwcaarm_iee]dCrc-aao>mnenre(adcset[v)Ci;acmeer-CameraHardware*mCameraHAL-PreviewWindow*mPreviewW-CallbackNotifier*ev=i&ccoen5.3CameraHAL實(shí)現(xiàn)的結(jié)構(gòu)-31Copyright?2013AllwinnerTechnology.AllRightscemn-CameraHardware**-hw_module_methods_tmCameraModuleMethods+intget_number_of_cameras(+intget_camera_info(+intdevice_open(H的Chw_module_m+open(camera_devic-hw_device_tcommon-camera_device_ops_t*ops-void*privraFactor6.塊調(diào)試 開攝“ 錯(cuò)信 如打6.塊調(diào)試 開攝“ 錯(cuò)信 如打adb工具進(jìn)行查看,一些簡(jiǎn)單的adb的命令如下所示:看ls不cat或者是使用串口查看內(nèi)配查載原因sys_config1.fex置-32Copyright?2013AllwinnerTechnology.AllRights7.This(A20Camera塊istheoriginalworknd7.This(A20Camera塊istheoriginalworkndcopyrightedpropertyofTechnology(“Allwinner”).ReproductioninwholeorinpartmustobtainthewrittenapprovalofAllwinnerandgiveclearacknowledgementtothecopyrightowner.TheinformationfurnishedbyAllwinnerisbelievedtobeaccurateandreliable.Allwinnerreservestherighttomakechangesincircuitdesignand/orspecificationsatanytimewithoutnotice.Allwinnerdoesnotassumeanyresponsibilityandliabilityfo

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論