本發(fā)明涉及一種攝像頭驅(qū)動方法,具體涉及一種基于全志H3 ARM處理器在Linux操作系統(tǒng)下驅(qū)動OV5640攝像頭的方法。
背景技術(shù):
全志H3ARM芯片是一種被廣泛應用于各種嵌入式平臺(比如車載電子設備,現(xiàn)場監(jiān)控設備,自動販賣機,廣告機,人機交互系統(tǒng)等等)的核心部件。這些平臺要正常工作時必須運行操作系統(tǒng)(比如Linux,Android等)。操作系統(tǒng)就是H3芯片和系統(tǒng)各硬件設備(比如攝像頭,顯示器等)之間溝通的橋梁,而操作系統(tǒng)中起到溝通橋梁作用的就是硬件設備的軟件驅(qū)動模塊。沒有合適硬件設備的軟件驅(qū)動模塊,硬件設備無法正常工作。目前H3芯片所運行的Linux操作系統(tǒng)中尚無支持OV5640這種攝像頭的軟件驅(qū)動模塊。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)的不足,本發(fā)明旨在提供一種基于H3在Linux下驅(qū)動OV5640攝像頭的方法,填補H3芯片所運行的Linux操作系統(tǒng)中在支持OV5640這種攝像頭的軟件驅(qū)動模塊方面的空白。
為了實現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
基于H3在Linux下驅(qū)動OV5640攝像頭的方法,包括如下步驟:
S1打開OV5640攝像頭所對應的設備文件/dev/videoX;
S2為OV5640攝像頭驅(qū)動添加讀寫寄存器sys文件系統(tǒng)接口;
S3初始化OV5640攝像頭,添加自動對焦功能;
S4讀取OV5640攝像頭的能力值;
S5設置視頻輸入源:設置VFE驅(qū)動默認輸入源的初始值為0;
S6設置數(shù)據(jù)流類型和格式:設置VFE支持的視頻格式為OV5640攝像頭的格式;
S7初始化內(nèi)存映射分配緩沖區(qū);
S8查詢緩沖區(qū)大??;
S9映射設備緩沖區(qū)到應用空間mmap;
S10添加緩沖區(qū)到輸入隊列;
S11啟動視頻流,開始采集數(shù)據(jù),直至采集數(shù)據(jù)停止,停止視頻流,停止采集數(shù)據(jù);
S12釋放內(nèi)存映射;
S13關(guān)閉設備文件/dev/videoX。
進一步地,步驟S6中,VFE支持的視頻格式的視頻格式包括:
V4L2_MBUS_FMT_YUYV8_2X8;
V4L2_MBUS_FMT_YVYU8_2X8;
V4L2_MBUS_FMT_UYVY8_2X8;
V4L2_MBUS_FMT_VYUY8_2X8。
本發(fā)明的有益效果在于:本發(fā)明填補了H3芯片所運行的Linux操作系統(tǒng)中在支持OV5640這種攝像頭的軟件驅(qū)動模塊方面的空白。
附圖說明
圖1為本發(fā)明的實施流程圖。
具體實施方式
以下將結(jié)合附圖對本發(fā)明作進一步的描述,需要說明的是,本實施例以本技術(shù)方案為前提,給出了詳細的實施方式和具體的操作過程,但本發(fā)明的保護范圍并不限于本實施例。
如圖1所示,基于H3在Linux下驅(qū)動OV5640攝像頭的方法,包括如下步驟:
S1打開OV5640攝像頭所對應的設備文件/dev/videoX。
S2為OV5640攝像頭驅(qū)動添加讀寫寄存器sys文件系統(tǒng)接口。步驟S2的設置為調(diào)試本驅(qū)動模塊提供了一個便捷的接口。
S3初始化OV5640攝像頭,添加自動對焦功能。通過步驟S3的設置增加了操作系統(tǒng)能控制攝像頭的功能。
S4讀取OV5640攝像頭的能力值VIDIOC_QUERYCAP。
S5執(zhí)行設置視頻輸入源VIDIOC_S_INPUT,并設置VFE驅(qū)動默認輸入源的初始值為0。通過本步驟,可以避免由于邏輯錯誤導致系統(tǒng)內(nèi)核崩潰,進而影響整個平臺的正常工作。
S6執(zhí)行設置數(shù)據(jù)流類型和格式VIDIOC_S_FMT,并設置VFE支持的視頻格式為OV5640攝像頭的格式;
S7初始化內(nèi)存映射分配緩沖區(qū)VIDIOC_REQBUFS;
S8查詢緩沖區(qū)大小VIDIOC_QUERYBUF;
S9映射設備緩沖區(qū)到應用空間mmap;
S10添加緩沖區(qū)到輸入隊列VIDIOC_QBUF;
S11啟動視頻流,開始采集數(shù)據(jù)VIDIOC_STREAMON;持續(xù)采集數(shù)據(jù)直至采集數(shù)據(jù)停止,停止視頻流,停止采集數(shù)據(jù)VIDIOC_STREAMOFF;
S12釋放內(nèi)存映射munmap;
S13關(guān)閉設備文件/dev/videoX。
進一步地,步驟S6中,VFE支持的視頻格式的視頻格式包括:
V4L2_MBUS_FMT_YUYV8_2X8;
V4L2_MBUS_FMT_YVYU8_2X8;
V4L2_MBUS_FMT_UYVY8_2X8;
V4L2_MBUS_FMT_VYUY8_2X8。
對于本領(lǐng)域的技術(shù)人員來說,可以根據(jù)以上的技術(shù)方案和構(gòu)思,作出各種相應的改變和變形,而所有的這些改變和變形都應該包括在本發(fā)明權(quán)利要求的保護范圍之內(nèi)。