新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于ARM的嵌入式USB圖像采集與顯示

        基于ARM的嵌入式USB圖像采集與顯示

        作者: 時間:2011-11-14 來源:網(wǎng)絡(luò) 收藏

        引言

        本文引用地址:http://www.104case.com/article/150064.htm

          目前市場上大部分的與處理系統(tǒng)是DSP 芯片的,這種與處理系統(tǒng)成本高、功耗高、體積約束等特點并不適用于一些簡單的應(yīng)用。隨著 攝像頭的普及和芯片的快速發(fā)展,將二者結(jié)合的便攜性越來越受人們歡迎。本文介紹了一種三星S3C2440A 芯片的 攝像頭方案,該方案具有良好的可移植性和擴(kuò)展性,并且成本、大小和實時處理都能夠滿足市場需求。

          1 系統(tǒng)架構(gòu)

          系統(tǒng)通過當(dāng)前市場上應(yīng)用最廣泛的中芯微公司生產(chǎn)的zc301p 芯片的 攝像頭進(jìn)行圖像采集,然后將圖像信息傳送到 芯片中進(jìn)行處理,最終通過基于Qt/Embedded 編寫的圖形程序在LCD 上實時。系統(tǒng)的整體架構(gòu)如圖1 所示。

          

          2 視頻圖像采集

          系統(tǒng)采用中芯微公司生產(chǎn)的zc301p 芯片的USB 攝像頭作為圖像采集設(shè)備,并介紹了基于Video4Linux 編程協(xié)議進(jìn)行視頻圖像采集的一般過程。

          2.1 USB 攝像頭驅(qū)動

          Linux 內(nèi)核能夠很好地支持OHCI(開放式主機(jī)控制接口協(xié)議),并且能夠很好地支持包括OV511系列攝像頭在內(nèi)的各種各樣的USB 設(shè)備,但是并不包括zc301pUSB 攝像頭。直到后來2.6.27 版本左右的內(nèi)核中才增加了針對zc301 系列芯片的驅(qū)動,統(tǒng)稱為Linux UVC.本文采用的是Linux2.6.32.2 版本內(nèi)核,只需要對內(nèi)核進(jìn)行簡單的配置,就可以實現(xiàn)功能了。

          在配置菜單選項中,設(shè)備驅(qū)動是最重要的配置項。選擇的配置項如下:

          Device Drivers - - - >

          Multimedia devices - - - >

          Video For Linux

          Enable Video For Linux API 1(DEPRECAteD)

          Video capture adapters - - - >

          V4L USB devices - - - >

          USB Video Class (UVC)

          UVC input events device support

          GSPCA based webcams - - - >

          ZC3XXX USB CAMEra Driver

          USB ZC0301 [P]Image Processor and Control

          Chip support

          現(xiàn)在,內(nèi)核被配置成可以支持Video4Linux 的視頻接口,并且加入了支持zc301pUSB 攝像頭的驅(qū)動程序。

          2.2 基于Video4Linux 的視頻圖像采集程序設(shè)計

          Video4Linux(簡稱V4L)為目前市場常見的電視捕獲卡和并口及USB 口的攝像頭提供統(tǒng)一的編程接口。在Linux 內(nèi)核中它為用戶空間提供統(tǒng)一的編程接口,V4L 分為兩層:底層是音頻和視頻設(shè)備驅(qū)動程序的內(nèi)核;上層為系統(tǒng)提供一些API 接口信息。視頻圖像采集流程如圖2 所示。

          

          (1)打開視頻設(shè)備。

          在Linux 中視頻設(shè)備是被作為設(shè)備文件來執(zhí)行的,本文USB 攝像頭的設(shè)備文件名為/dev/video0.

          int my_v4l_open (char*dev,my_v4l_STruct*vd) 函數(shù)用于打開視頻設(shè)備并初始化攝像頭設(shè)備,該函數(shù)調(diào)用open 函數(shù)可以讀設(shè)備文件,成功返回設(shè)備描述符,失敗返回- 1.主要程序代碼如下:

          int my_v4l_open(char*dev,my_v4l_struct*vd){

          if((vd- >fd=open(vd- >videodevice,O_RDWR))= =- 1){

          printf(“ERROR opening V4L interface”);

          exit(1);}

          ……}

        linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

        上一頁 1 2 下一頁

        關(guān)鍵詞: 采集 顯示 圖像 USB ARM 嵌入式 基于

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 霍邱县| 高青县| 灌南县| 上思县| 城口县| 新巴尔虎左旗| 固安县| 松潘县| 甘谷县| 七台河市| 喀喇| 土默特右旗| 建始县| 河池市| 隆回县| 清远市| 新巴尔虎右旗| 郸城县| 贵溪市| 凤台县| 额济纳旗| 宝坻区| 万盛区| 高淳县| 石棉县| 高安市| 崇文区| 小金县| 邮箱| 屯昌县| 台中县| 浦东新区| 皮山县| 延吉市| 洛川县| 木兰县| 龙江县| 六安市| 封丘县| 南乐县| 夏津县|