999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ARM11與OV7675的CMOS相機設計

2017-02-09 03:12:21李云劉德慶
單片機與嵌入式系統應用 2017年1期
關鍵詞:設備

李云,劉德慶

(重慶郵電大學,重慶 400065)

?

基于ARM11與OV7675的CMOS相機設計

李云,劉德慶

(重慶郵電大學,重慶 400065)

工業上對于攝像頭模塊的大小需求各不相同。本文以ARM11為核心自行設計了核心板,基于CMOS攝像頭OV7675進行啟動開發工作,進而設計出和實現了多種通信接口和可擴展性強的相機。設計采用了S3C6410XH-66的CPU,移植了內核版本為linux-2.6.38的操作系統,同時為了提高性能改進了緩存區的機制。

ARM11;Linux操作系統;CMOS攝像頭;驅動

引 言

隨著社會的發展,攝像頭模塊越來越多地在工業上得到應用,如攝影測量、物體跟蹤、零件分揀、遠程監控等領域。本文設計是針對商家在工業上二維碼的掃描使用,在已給定的模具大小下,充分考慮了需求、成本以及功耗等因素,采用OV7675攝像頭模塊和S3C6410XH-66的CPU,移植了Linux內核版本為Linux-2.6.38的操作系統,同時為了提高性能,改進了緩存區的機制。

1 硬件結構

如圖1所示,相機主要由CPU、系統電源、通信接口、CMOS傳感器以及I/O接口等硬件組成。由于面向的是低端市場,為了控制成本,采用了S3C6410XH-66的CPU。這款CPU內部集成了強大的多媒體資源,具有較強的視頻處理能力,同時主時鐘可以穩定運行在533 MHz。

CMOS傳感器采用的是OmniVision公司的OV7675攝像頭,該傳感器鏡頭尺寸為1/9″,感光陣列大小為640×480,幀率達到30 fps,封裝尺寸為2 797 μm×2 800 μm。支持YCbCr422、Raw RGB、RGB565、ITU656等多種圖像輸出格式,包含自動曝光控制、自動增益控制、自動白平衡、自動黑級校準等功能。在tiny6410的開發板上設計的是10×2的軟排插槽攝像頭接口,接口模塊電路如圖2所示,除了CAMERA信號外,還有I2C信號用于對攝像頭寄存器的讀寫,從而能夠配置攝像頭相關參數,另外增加了GPIO信號,用于協助攝像頭實現電源管理[1]。CPU通過I2C接口來初始化OV7675內部寄存器,OV7675內部有8位A/D轉換器,對應8為數據輸出CAMDATA[7:0],而設計中輸出的圖像格式是經過內部的DSP轉化的YCbCr。同時為了滿足尺寸的大小需求,SDRAM采用的是256 MB的三星K4X2G323PD,NAND FLASH采用的為256 MB的三星K9F2G08U0C。

圖1 系統硬件結構圖

圖2 攝像頭接口模塊電路圖

2 軟件程序設計

2.1 V4L2驅動

V4L2全稱為video for linux two,是V4L的改進版,是linux內核中用于圖片采集、視頻和音頻數據的API接口[2]。如圖3所示,字符設備驅動核心、V4L2驅動核心、平臺V4L2設備驅動和具體的sensor驅動構成了V4L2驅動框架[3]。V4L2是兩層驅動系統組成的,上層驅動是平臺V4L2驅動,即video_dev模塊驅動,當video_dev初始化時會被注冊為字符設備驅動,主設備號為81,同時會注冊相關的功能函數[4]。下層驅動為V4L2驅動,video_dev通過V4L2來訪問設備。當V4L2驅動初始化時,V4L2將會傳遞一個包含V4L2的驅動方式、子設備號等數據的數據結構給video_dev[4]。

圖3 V4L2驅動框架

在初始化程序cmos_ov7675_drv_init()中,通過i2c_add_driver(& cmos_ov7675_drv),向i2c-core注冊驅動,通過cmos_ov7675_drv調用cmos_ov7675_probe函數,在cmos_ov7675_probe里,將GPIO-F設置成對應的攝像頭模式,使用request_mem_region(),為攝像頭申請內存空間。接著初始化攝像頭時鐘,設置時鐘,將時鐘設置為24 MHz,并通過list_add_tail將攝像頭結構添加到設備鏈表中,并通過video_register_device(&cmos_ov7675_vdev, VFL_TYPE_GRABBER, -1) 進行設備注冊。在cmos_ov7675_vdev中,cmos_ov7675_fops()提供了應用層使用的,包括cmos_ov7675_open、cmos_ov7675_read、cmos_ov7675_close、video_ioctl2,video_ioctl2由V4L2提供框架,涉及到的關鍵處理程序在驅動中具體實現。在cmos_ov7675_vdev結構中還需要實現的函數包括cmos_ov7675_vidioc_enum_fmt_vid_cap(列舉支持那些格式)、cmos_ov7675_vidioc_g_fmt_vid_cap(返回當前格式)、cmos_ ov7675_vidioc_try_fmt_vid_cap(測試驅動程序是否支持某種格式)、cmos_ov7675_vidioc_s_fmt_vid_cap(設置圖像輸出格式)等。

本文采集圖片的像素大小為640×480,圖片格式為YUV,本階段系統只需要采集4幀圖片。將采集的圖片映射到內存中,并把對應的地址傳送給應用層,進行讀取和處理后,循環采集實現圖像的更新,形成動態圖。

2.2 應用程序

Liunx-2.6.38內核提供了用于編寫視頻的V4L2核心API文件操作結構: v4l2_file_operations,用此函數進行設備操作。通過定義cmos_ov7675_fops為v4l2_file_operations編寫用于上層驅動調用的函數:

static const struct v4l2_file_operations cmos_ov7675_fops ={

.owner=THIS_MODULE,

.open=cmos_ov7675_open,

.read=cmos_ov7675_read,

.release=cmos_ov7675_close,

.unlocked_ioctl=video_ioctl2,

};

如圖4所示,應用程序首先通過dev_fd=open(cam_name, O_RDWR)、fb_fd=open("/dev/fb0",O_RDWR)來打開video和FB設備,然后通過ioctl(cam_fp, VIDIOC_S_FBUF,&fb)設置攝像頭格式,通過應用程序調用read,將會調用內核層驅動提供的函數cmos_ov7675_read,該函數將會注冊一個名為cmos_ov7675_camif_irq_p的內核中斷函數,當完成一幀圖像的數據緩沖后,將會進行喚醒,然后會映射到用戶空間里。本文通過fb_show(dev_fd,fbmem,preview_frame)實現預覽功能,將采集到的數據傳送到framebu ffer緩存區。在結束預覽后,調用set_capture()更改格式,最后捕捉圖片并保存。由于無法直接預覽和處理YUYV的格式圖片,需通過算法將YUYV格式轉化為RGB彩色格式圖片,隨后對其進行相應的處理[6]。

圖4 圖片采集流程圖

2.3 緩存機制的改進

在所做的項目中,我們對于傳統的環形緩存區進行了改進,設緩存區的個數為N,在視頻數據需要填充的情況下,只要空的緩存區個數不小于(N-1),就能喚醒任務使其能夠填充數據到緩存區中。

假設需要傳輸M倍于單個緩存區的個數,緩存區的個數為N(2

假設在環形緩存區的設計中,環形緩存區由若干個單緩存區組成,每個緩存區的大小為2 KB,即若環形緩存區由N個單緩存區構成,則環形緩存區的大小為2N KB。設CPU的工作頻率為fc,攝像頭的時鐘采樣頻率為fm,位時鐘信號速率最大為:

式中,fbclk為位時鐘速率;Bn為采樣位數;fm為采樣頻率。

CPU處理一個字節的時間關系滿足下式[7]:

式中,t為處理一個字節的時間;fc為CPU主頻;Bwidth為總線寬度。

若環形緩存區有M個單緩存區,在進行視頻數據傳輸時不會影響其他任務的正常執行,即CPU填充(M-1)個緩存區的時間要少于視頻接口傳輸一個緩存區的時間。

式中,K為字節單位系數,即常量1024;T為處理一個字節的時間;fbclk為位時鐘速率。由式(1)~(3)可得出M必須滿足式(3),才能滿足設計要求。

ARM11的CPU頻率為533 MHz,地址總線的帶寬為32位,采樣位數最大為12位,采樣頻率最大為24 MHz,由式(4)可得M最大可為6。由于存儲的照片是4張,因此本論文中將M的值設置為4。

3 測試結果

圖5 相機的硬件實物圖

相機的核心板與攝像頭的轉接板是分開的,方便以后攝像頭硬件進行升級。由于使用的場景限制,對于模塊的大小有著嚴格的要求,導致整個板子并不能用USB、SD卡來燒寫,只能通過J-LINK來燒寫程序。將SDRAM初始化程序ddr.bin燒寫進去,然后運行程序,在確定SDRAM能夠被正常的初始化后,再次通過J-LINK將u-boot.bin文件燒寫到DDR中,并運行u-boot。由于,J-LINK只能燒寫二進制文件,所以內核和根文件是無法通過J-LINK燒寫的。串口在u-boot界面中,將u-boot、內核以及根文件燒寫進FLASH中,這樣掉電后不會丟失內容。由于整個模塊并沒有網口,使得板子無法與PC進行掛載,只能將驅動程序以及測試程序編譯進根文件系統中,由于根文件是jffs2格式的,所以在進入到系統前,需要通過u-boot界面改動系統的啟動參數。當進入到系統后,在mnt文件夾下通過insmod命令加載攝像頭驅動模塊,運行測試程序,保存拍攝的照片。然后,將保存的照片通過串口從板子的FLASH下載到PC上,如圖5所示。

結 語

[1] 楊東瓊,云利軍,王坤.Linux和 OK6410 環境下視頻圖像的采集與顯示[J].云南師范大學學報,2016(2):48-53.

[2] 徐家,陳奇.基于V4L2的視頻設備驅動開發[J].計算機工程與設計,2007,19(5):539-542.

[3] 宋寶華.Linux設備驅動開發詳解[M].北京:人民郵電出版社,2012.

[4] 曹占中.基于 s3c2440 的 Linux 攝像頭驅動開發[J].電子測量技術,2009,32(2):108-111.

[5] 樊國棟, 石紅瑞.嵌入式 Linux下CMOS攝像頭驅動的設計與實現[J].工業儀表與自動化裝置,2010(3):68-94.

[6] 段東波, 靳天玉. 基于 ARM11 的視頻采集系統及二維碼識別[J]. 電子測試,2013(20):81-82.

[7] Lei Rao, Jian Huazhao, Zhan Xizhao,et al. Marco and Micro structure Evolution of 5CrNiMo Steel Ingots during Electroslag Remelting Process[J]. Journal of Iron and Steel Re search, 2014,21(7):644-652.

李云(教授),主要研究方向為無線網絡;劉德慶(碩士),主要研究方向為嵌入式驅動。

CMOS Camera Design Based on ARM11 and OV7675

Li Yun,Liu Deqing

(Chongqing University of Posts and Telecommunications,Chongqing 400065,China)

In order to meet the needs of different size module of camera.In this paper,the core board is designed using ARM11.The system starts the development work based on CMOS camera OV7675.The variety of communication interfaces and scalable camera are designed.The design uses the S3C6410XH-66 CPU,and transplants the linux-2.6.38 operating system.While in order to the performance,the cache mechanism is improved.

ARM11;Linux operating system;CMOS camera;driver

TN949.6

A

?迪娜

2016-09-01)

猜你喜歡
設備
諧響應分析在設備減振中的應用
調試新設備
當代工人(2020年13期)2020-09-27 23:04:20
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
廣播發射設備中平衡輸入與不平衡輸入的轉換
電子制作(2018年10期)2018-08-04 03:24:48
食之無味,棄之可惜 那些槽點滿滿的可穿戴智能設備
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
HTC斥資千萬美元入股虛擬現實設備商WEVR
IT時代周刊(2015年8期)2015-11-11 05:50:37
Automechanika Shanghai 2014 之“看” 汽保設備篇
如何在設備采購中節省成本
主站蜘蛛池模板: 国产高清在线观看91精品| 国产XXXX做受性欧美88| 成人在线不卡视频| 日本免费a视频| 全色黄大色大片免费久久老太| 99久久精品免费看国产免费软件| 青青草原国产| 国产精品污污在线观看网站| 国产精品午夜福利麻豆| 亚洲成人黄色在线| 91精品啪在线观看国产| 国产v精品成人免费视频71pao| 欧美69视频在线| 亚洲欧美不卡视频| 欧美成在线视频| 日韩AV手机在线观看蜜芽| 日韩乱码免费一区二区三区| 国产精品免费入口视频| 亚洲第一极品精品无码| 欧美人与性动交a欧美精品| 亚洲国产日韩欧美在线| 日韩第一页在线| 美美女高清毛片视频免费观看| 99在线视频免费| 欧美狠狠干| 伊人五月丁香综合AⅤ| 欧洲成人免费视频| 伊人五月丁香综合AⅤ| 久久久久久久久亚洲精品| 亚洲天堂网视频| 国产va在线| 精品欧美一区二区三区久久久| 麻豆国产在线观看一区二区 | 亚洲日韩Av中文字幕无码| 精品第一国产综合精品Aⅴ| 美女毛片在线| 欧美精品v| 成年免费在线观看| 99re在线免费视频| 制服丝袜一区| 欧美成人影院亚洲综合图| 日韩a在线观看免费观看| 午夜限制老子影院888| 亚洲精品国产综合99| 国产91小视频| 欧美伦理一区| 99中文字幕亚洲一区二区| 亚洲天堂视频在线播放| 精品久久久久久久久久久| 欧美日韩在线亚洲国产人| 中文成人在线视频| 国产一区二区丝袜高跟鞋| 国产在线一区视频| 国产区成人精品视频| 日本国产精品一区久久久| 久久精品国产亚洲AV忘忧草18| 亚洲男人天堂久久| 中文字幕不卡免费高清视频| 精品伊人久久久大香线蕉欧美| 亚洲综合色婷婷| 91精品福利自产拍在线观看| 无码av免费不卡在线观看| 国产精品美女自慰喷水| 91亚洲精品第一| 婷婷色在线视频| 亚洲国产成人久久精品软件| 久夜色精品国产噜噜| 亚洲永久视频| 大学生久久香蕉国产线观看 | 欧美激情福利| 成人午夜视频在线| 亚洲人成日本在线观看| 伊人久久青草青青综合| 中国国产高清免费AV片| 久久人体视频| 高清国产在线| 呦女精品网站| 国产一区二区免费播放| 91久久国产综合精品| 成人免费午夜视频| 国产成在线观看免费视频| 亚洲欧美极品|