IT培训机构|91免费精品视频|专注编程培训|91免费精品|软件开发培训_91免费国产视频_华清远见教育

Hi,歡迎來(lái)到嵌入式培訓(xùn)高端品牌 - 華清遠(yuǎn)見(jiàn)教育科技集團(tuán)<北京總部官網(wǎng)>,專注嵌入式工程師培養(yǎng)15年!
當(dāng)前位置: > 華清遠(yuǎn)見(jiàn)教育科技集團(tuán) > 嵌入式學(xué)習(xí) > 講師博文 > 基于V4L2的視頻驅(qū)動(dòng)開(kāi)發(fā)(1)
基于V4L2的視頻驅(qū)動(dòng)開(kāi)發(fā)(1)
時(shí)間:2017-01-05作者:華清遠(yuǎn)見(jiàn)

編寫(xiě)基于V4L2視頻驅(qū)動(dòng)主要涉及到以下幾個(gè)知識(shí)點(diǎn):

●    攝像頭方面的知識(shí)
                要了解選用的攝像頭的特性,包括訪問(wèn)控制方法、各種參數(shù)的配置方法、信號(hào)輸出類型等。

●    Camera解碼器、控制器
                如果攝像頭是模擬量輸出的,要熟悉解碼器的配置。后數(shù)字視頻信號(hào)進(jìn)入camera控制器后,還要熟悉camera控制器的操作。

●    V4L2的API和數(shù)據(jù)結(jié)構(gòu)
                編寫(xiě)驅(qū)動(dòng)前要熟悉應(yīng)用程序訪問(wèn)V4L2的方法及設(shè)計(jì)到的數(shù)據(jù)結(jié)構(gòu)。

●    V4L2的驅(qū)動(dòng)架構(gòu)
                后編寫(xiě)出符合V4L2規(guī)范的視頻驅(qū)動(dòng)。

本文介紹基于S3C2440硬件平臺(tái)的V4L2視頻驅(qū)動(dòng)開(kāi)發(fā)。攝像頭采用OmniVision公司的OV9650和OV9655。主要包含以下幾個(gè)方面的內(nèi)容:

視頻驅(qū)動(dòng)的整體驅(qū)動(dòng)框架

●    3C2440 camera控制器+ov9650(ov9655)
        ●    V4L2 API及數(shù)據(jù)結(jié)構(gòu)
        ●    V4L2驅(qū)動(dòng)框架
        ●    ov9650(ov9655)+s3c2440+V4L2實(shí)例

一、 視頻驅(qū)動(dòng)的整體框架

視頻驅(qū)動(dòng)的整體框架見(jiàn)下圖:

二、S3C2440 camera控制器+ov9650(ov9655)

(1)S3C2440 camera控制器介紹

S3C2440支持ITU-R BT601/656格式的數(shù)字圖像輸入,支持的2個(gè)通道的DMA,Preview通道和Codec通道,參見(jiàn)下圖。

Preview通道可以將YCbCr4:2:2格式的圖像轉(zhuǎn)換為RGB(16bit或24bit)格式的數(shù)據(jù),并存放于為Preview DMA分配的內(nèi)存中,大分辨率為640*480。主要用于本地液晶屏顯示。如果將Preview DMA的內(nèi)存和Framebuffer內(nèi)存重疊的話,就可以實(shí)現(xiàn)采集直接輸出到液晶屏上了。

Codec通道可以輸出YCbCr4:2:0或YCbCr4:2:2格式到為Codec DMA分配的內(nèi)存中。大分辨率為4096*4096。主要用于圖像的編解碼處理。

上圖中的window cut功能是指在圖像可以先做一個(gè)裁剪。通過(guò)設(shè)置CIWDOFST完成此功能,見(jiàn)下圖。圖像進(jìn)入P、C通道后,各自的scaler單元還可以對(duì)其進(jìn)行縮放、旋轉(zhuǎn)等處理。

S3C2440 camera控制器支持乒乓存儲(chǔ)。為了防止采集和輸出之間的沖突,采用了乒乓存儲(chǔ)方式。每次采集一幀后,自動(dòng)轉(zhuǎn)到下一個(gè)存儲(chǔ)區(qū)。如果你因?yàn)閮?nèi)存空間不足,不想使用此功能的話,可以將四個(gè)區(qū)域設(shè)置到同一塊空間。

在做圖像處理時(shí),需要關(guān)注到后存儲(chǔ)區(qū)中的圖像格式,如codec通道硬件自動(dòng)把Y、Cb、Cr分離存儲(chǔ)。

S3C2440 camera 控制器Last IRQ功能的使用,也是需要掌握的。如果處理不好,輸出的圖像效果會(huì)受影響。

控制器會(huì)在每個(gè)VSYNC下降沿判斷ImgCptEn信號(hào)等命令。如果在下降沿發(fā)現(xiàn)ImgCptEn信號(hào)有效,則產(chǎn)生IRQ中斷。然后才開(kāi)始一幀圖像的真正采集。而如果在VSYNC下降沿判斷到ImgCptEn為低電平且之前LastIRQEn沒(méi)有使能,則不會(huì)產(chǎn)生任何中斷,且不會(huì)再進(jìn)行下一幀的采集。如果你想在ImgCptEn關(guān)閉后,一幀采集完后產(chǎn)生一個(gè)中斷通知你,那么就需要在后一次中斷產(chǎn)生前(stop capturing后的vysnc下將沿)使能lastirq就可以了。

我在移植linux驅(qū)動(dòng)時(shí)就遇到了一個(gè)Last IRQ的問(wèn)題,F(xiàn)象是輸出圖像上面總是有一條比其它部分反應(yīng)慢。采集運(yùn)動(dòng)圖像,就能看出現(xiàn)象。查看代碼是因?yàn)闆](méi)有設(shè)立lastirq,因?yàn)槊看稳绻辉趌astirq產(chǎn)生的情況下讀取,圖像緩沖中的數(shù)據(jù)是不穩(wěn)定的,可能照成圖像不完整。修改代碼支持lastirq后,問(wèn)題解決。

Camera控制器時(shí)鐘設(shè)置也是需要注意的,ov9650需要Camera控制器為其提供時(shí)鐘。

提供給外部攝像頭的時(shí)鐘是由UPLL輸出時(shí)鐘分頻得到的。而CAMIF的時(shí)鐘是由HCLK提供的。本例中,提供給ov9650的時(shí)鐘為24M。

(2)ov9650(ov9655)設(shè)置方法

OV9650是OmniVision公司的COMS攝像頭,130萬(wàn)像素,支持SXVGA、VGA、QVGA、CIF等圖像輸出格式。 大速率在SXVGA時(shí)為15fps,在VGA時(shí)為30fps。

OV9650攝像頭時(shí)序如下圖:

上圖中D[9:2]用于8-bitYUV或者RGB565/RGB555(D[9]MSB、D[2]LSB)。D[9:0]用于10-bit RGB。本例中使用8-bit YUV模式。

我手邊開(kāi)發(fā)板的Camera和S3C2440的接線原理圖如下(對(duì)應(yīng)camera中具體的信號(hào)名稱參見(jiàn)前文的驅(qū)動(dòng)整體架構(gòu)圖)。

注:GPG12用于PWEN信號(hào)

OV9650攝像頭設(shè)置方法是通過(guò)SCCB總線設(shè)置

SCCB可以看作是一種簡(jiǎn)化的I2C總線,可以使用IO模擬SCCB時(shí)序。

(3)編寫(xiě)ARM測(cè)試代碼測(cè)試camera功能

在Keil環(huán)境下編寫(xiě)一個(gè)測(cè)試代碼完成從攝像頭采集圖像輸出到液晶屏。下面列出程序的流程。

(4)編寫(xiě)測(cè)試代碼過(guò)程中常見(jiàn)的問(wèn)題

●    攝像頭寄存器的配置

因?yàn)閿z像頭有很多寄存器,可能一下無(wú)法理解里面所有的配置含義,所以開(kāi)始時(shí)希望得到一份可用的配置。但往往從別人的測(cè)試代碼中拿到配置后,仍然無(wú)法使用。我這里列出幾個(gè)可能的原因:(1)攝像頭中的圖像輸出格式和你在camera控制器中設(shè)置的不一致,同一個(gè)攝像頭可以設(shè)置多種輸入格式,如:YCbYCr或CbYCrY。(2)圖像輸出的一些時(shí)序和你的camera控制器設(shè)置不一致,攝像頭可以設(shè)置一些時(shí)序,如:圖像數(shù)據(jù)在CAMPCLK的上升沿有效還是下降沿有效。(3)注意輸出圖像的格式和Framebuffer控制器的匹配,如字節(jié)順序等問(wèn)題。

●    Ov9650和ov9655的使用區(qū)別

這里主要列出兩者之間在復(fù)位信號(hào)上有差別,ov9650是高電平復(fù)位,而ov9655是低電平復(fù)位。

發(fā)表評(píng)論
評(píng)論列表(網(wǎng)友評(píng)論僅供網(wǎng)友表達(dá)個(gè)人看法,并不表明本站同意其觀點(diǎn)或證實(shí)其描述)
主站蜘蛛池模板: 湖南长沙智能实验室规划设计、整体建设、净化装修、改造施工公司-福临建设 | 精细筛-振动筛-滚筒筛-摇摆筛-平面回转筛-筛分机械设备-新乡德科筛分机械公司 | 生物除臭_废气处理_玻璃钢风机_布袋除尘_脱硫脱硝_催化燃烧_生物滤池_广东正州环保科技股份有限公司 | 呼吸家官网|肺功能检测仪生产厂家|国产肺功能仪知名品牌|肺功能检测仪|肺功能测试仪|婴幼儿肺功能仪|弥散残气肺功能仪|肺功能测试系统|广州红象医疗科技有限公司|便携式肺功能仪|大肺功能仪|呼吸康复一体机|儿童肺功能仪|肺活量计|医用简易肺功能仪|呼吸康复系统|肺功能仪|弥散肺功能仪(大肺)|便携式肺功能检测仪|肺康复|呼吸肌力测定肺功能仪|肺功能测定仪|呼吸神经肌肉刺激仪|便携式肺功能 | 济南时代,济南时代试验机,试金老品牌-济南时代试验机技术有限公司 | 泰州阳光会计服务有限公司官网-泰州公司注册|泰州代理记账 | 医用手摇病床,医用电动病床,康养手摇病床,康养电动病床-河北丁丁医疗器械有限公司 | 無谷轻食官网_沙拉轻食加盟_轻食加盟总部_轻食加盟费用 | 山东货架厂家,重型货架,阁楼货架,钢平台,板材货架-山东智造仓储设备有限公司 | 桥梁支座更换_桥梁检测车租赁_高空作业车出租_支座更换_伸缩缝安装_隧道防水_养护加固_维修_出租_衡水庆兴桥梁养护工程有限公司 桥梁养护|桥梁维修加固|隧道裂缝修补|支座更换|管道堵水气囊|衡水众拓路桥养护有限公司 | 激光清洗机_激光除锈机_激光焊接机 - 上海锡昊激光科技有限公司 激光切管机_等离子切管机_相贯线切管机厂家|服务为先-山东美峰智能设备有限公司 | 深圳理津技术有限公司(REHLOGY)-全球工业品供应商:自动化产品|仪器仪表|设备|备品备件|工具|消耗品|非标设备|建筑工程等一站式综合服务! | 生物发酵罐(细菌/植物/液体玻璃实验室发酵罐设备)CIP清洗罐,灭活罐「厂家」-安徽赛德齐瑞发酵罐品牌 | 凿岩机|操车设备|爬车机|三环链|伞钻|伞型钻机|中心回转抓岩机|往复式给煤机|滚轮罐耳|吊桶|钩头-济宁卓力工矿设备有限公司 | 树脂排水沟,树脂混凝土排水沟生产厂家-吉林省科维水泥制品公司 | 雾度计-雾度仪-透光率测试仪-3nh品牌雾度仪生产厂家 | 锯骨机-砍排机-全自动锯骨机-商用砍排机-切丁机 - 广州市九盈机械设备有限公司 | 胜亿网-专注B2B电子商务,为企业提供一站式网络服务 | 江西食用油批发_江西食用油厂家_菜籽油厂家-江西省家泰粮油科技有限公司 | 汽修学校|汽车维修学校收费|全国职业技校汽修-北京万通汽修学校 汽车轴承|圆锥滚子轴承|轴承生产厂家|赛襄轴承 | 在线红外水分测控仪-SK-100水分测试仪-上海拓西电子科技有限公司 | 汽油发电机,柴油发电机,小型汽油发电机,小型柴油发电机,家用发电机生产厂家——上海东明动力设备有限公司 | 河南反渗透设备,河南纯净水设备,河南软化水设备,郑州EDI超纯水设备,郑州水处理设备厂家_河南江宇环保科技有限公司 | 阻垢剂|缓蚀剂|杀菌剂|分散剂|水处理剂|印染助剂|水处理药剂|造纸助剂|膜阻垢剂|缓蚀剂|HEDP|ATMP|螯合剂-山东凯瑞化学有限公司 水处理药剂生产厂家 | 水暖空调厂家|山东水暖空调厂家|泰安燃气壁挂炉-泰安市鸿雁科贸有限公司 | 液态硅胶制品厂家_液态硅胶包胶加工_LSR液态硅胶模具厂_液体硅胶注射成型_广东盈泰 | 树脂排水沟,树脂混凝土排水沟生产厂家-吉林省科维水泥制品公司 | 专业液压对辊,双齿辊破碎机,沙子烘干机,制砂洗沙设备生产线厂家 - 巩义市吉宏机械 | 深圳市佳顺优印印刷有限公司,佳顺优印,画册印刷,海报印刷,封套印刷,手提袋印刷,包装盒印刷,彩盒印刷,无碳纸印刷,不干胶印刷,信封印刷,便笺印刷,笔记本印刷,台历印刷,挂历印刷,国际会展中心附近印刷厂,宝安印刷厂,宝安教材印刷厂 | 河北瑞峰医疗-河北护理床-河北医用病床-河北养老院护理床-河北护理床厂家-河北病床厂家-河北瑞峰医疗 | 深圳起重机,龙门吊,天车起重工程,电动葫芦,液压升降货梯-深圳市德力起重机械有限公司 | 上海中泉泵业制造有限公司-柴油机泵,一体化泵站,柴油机消防泵,泵站,预制一体化泵站 | 热熔钻孔机【优质厂家】_多年热熔钻设备研发制造经验 | 专业音响设备|数字功放|舞台音响|ktv音响|会议音响-劳伦士 | 泡沫混凝土垫层填充厂家,发泡混凝土垫层填充,轻质混凝土垫层填充厂家,深圳市鸿奥建材发展有限公司 | 升降炉|推板炉|创卓炉业 | 亚克力游泳池_透明/空中/无边泳池_别墅亚克力泳池设计生产厂家_瑞地格乐-深圳他拍档 | 育婴师_催乳师证_月嫂证怎么考_育婴师证报考需要什么条件-家政培训网 | 润滑油展会 沈阳 南京 润滑油 展会 西安 润滑脂 中国国际润滑油 全国润滑油 汽配_中国国际润滑油、脂、养护用品及技术设备展览会 | 青岛熔喷过滤芯_青岛过滤器生产厂家_青岛净水滤料厂家_青岛净达过滤技术有限公司 | 西安生殖医学医院_陕西省老医协生殖医学医院【官方网站】 |