新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ARM的嵌入式USB圖像采集與顯示

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

        作者: 時間:2011-11-14 來源:網絡 收藏

        引言

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

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

          1 系統架構

          系統通過當前市場上應用最廣泛的中芯微公司生產的zc301p 芯片的 攝像頭進行圖像采集,然后將圖像信息傳送到 芯片中進行處理,最終通過基于Qt/Embedded 編寫的圖形程序在LCD 上實時。系統的整體架構如圖1 所示。

          

          2 視頻圖像采集

          系統采用中芯微公司生產的zc301p 芯片的USB 攝像頭作為圖像采集設備,并介紹了基于Video4Linux 編程協議進行視頻圖像采集的一般過程。

          2.1 USB 攝像頭驅動

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

          在配置菜單選項中,設備驅動是最重要的配置項。選擇的配置項如下:

          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

          現在,內核被配置成可以支持Video4Linux 的視頻接口,并且加入了支持zc301pUSB 攝像頭的驅動程序。

          2.2 基于Video4Linux 的視頻圖像采集程序設計

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

          

         ?。?)打開視頻設備。

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

          int my_v4l_open (char*dev,my_v4l_STruct*vd) 函數用于打開視頻設備并初始化攝像頭設備,該函數調用open 函數可以讀設備文件,成功返回設備描述符,失敗返回- 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操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 彭水| 吉安市| 株洲市| 民乐县| 稻城县| 东至县| 礼泉县| 乌兰浩特市| 丹阳市| 永胜县| 永清县| 福州市| 新余市| 河源市| 三亚市| 茂名市| 寿宁县| 方正县| 长阳| 洱源县| 东兴市| 永修县| 涞水县| 林芝县| 分宜县| 饶阳县| 保靖县| 无锡市| 色达县| 普兰店市| 筠连县| 吴江市| 蕲春县| 乌恰县| 东阳市| 临泉县| 孝昌县| 资源县| 黄梅县| 若尔盖县| 镇远县|