新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于AT91RM9200的圖像采集系統設計

        基于AT91RM9200的圖像采集系統設計

        作者: 時間:2012-05-21 來源:網絡 收藏

        引言:

        近年來高性能、低功耗的處理器成為嵌入式應用的主流;開源的操作系統由于系統穩定、兼容性和移植性好、網絡功能強等優點也成為首選嵌入式操作系統之一,但目前支持的USB攝像頭(如OV511)市場上已淘汰,使用現有USB攝像頭需開發相關驅動程序,由于采用中芯微公司的USB攝像頭在市場中的占有率很高,可高效壓縮后輸出JPEG圖像,所以本文針對這類USB攝像頭設計了基于 AT91RM9200處理器的處理平臺,實現了JPEG圖像的采集和網絡傳輸。

        1.硬件系統設計

        (1) AT91RM9200簡介

        AT91RM9200是ATMEL公司生產的基于920T的工業級SOC芯片,不僅有豐富的片上資源和標準接口,而且有低功耗、低成本、高性能、支持多種主要的嵌入式操作系統等特點,其采用5級整數流水線結構性能高達200 MIPS, 具有標準的v4存儲器管理單元(MMU),內部集成有兩個USB 2.0 全速(12 M比特/秒) 主機端口和10/100 Base-T 型以太網接口,該芯片具有多種工作模式,其低功耗待機模式下電流僅3.1 mA[1]。

        (2)AT91RM9200的USB主機端口(UHP)

        AT91RM9200集成有一個USB器件端口(UDP)和一個USB主機端口(UHP),均符合USB V2.0 全速及低速規范。UHP內部集成一個根集線器和2個收發器,可連接127個USB 器件,UHP控制器與OHCI Rev 1.0規范完全兼容,標準分類驅動可以自動檢測并在用戶程序中使用[1]。

        (3)硬件系統結構

        平臺的硬件系統結構設計如圖1所示,主要包括AT91RM9200處理器、JTAG接口、網絡模塊、32M SDRAM、16M FLASH、串口、USB主從口等部分。其中網絡模塊通過外接DM9161實現10M/100M自適應網絡連接,通過處理器內置的4個通用同步(異步)收發器(USART) 可實現4路數據傳輸與控制。另外,處理器內置的雙主機收發器可連接USB攝像頭和USB存儲設備,也可經USB集線器連接更多USB設備,提高了系統的擴展性。

        圖1.硬件系統結構

        2.軟件系統設計

        (1)軟件架構

        Linux工作模式分為內核模式和用戶模式,其軟件系統架構由硬件控制器、Linux內核、系統調用接口和用戶進程4層組成。一個用戶進程就是一個用戶程序,操作系統支持多進程并發;內核是操作系統的中心組件,有進程管理、內存管理、文件系統管理、設備控制、網絡控制等功能,它通過底層接口層以一致的方式管理硬件,通過高層抽象層為用戶進程提供與硬件無關的API控制硬件資源;系統調用接口負責為應用程序調用內核中特定的過程,從而實現特定服務,一般認為這些調用和服務也是操作系統內核的一部分。

        (2)USB驅動程序系統框架

        圖2.USB驅動程序系統框架

        USB驅動程序的系統框架如圖2所示,包括客戶驅動程序、通用總線驅動程序、主機控制器驅動程序幾部分。其中,客戶驅動程序是特定USB設備的驅動程序,提供了USB設備的功能操作及特定子類協議封裝[6];通用總線驅動程序(USBD)擁有特定操作系統上抽象出的主機控制器驅動程序的共有特性,是整個USB驅動程序的核心,主要實現USB總線管理、URB管理、為客戶驅動程序提供相關接口等功能,它還負責維護設備的加載和卸載、設備配置、客戶端驅動程序的安裝和卸載等工作[2];主機控制器驅動程序是直接與硬件交互的軟件模塊,主要實現主機控制器硬件初始化、負責總線的注冊、為USBD層提供相應的接口函數、完成4種類型的數據傳輸等功能[2]。

        Linux通過定義了統一的URB(Universal Request Block)結構,在客戶驅動程序和USBD之間,以及USBD和HCD之間進行消息傳遞,為USB驅動程序的開發帶來了很大方便[3]。我們開發USB驅動程序主要是編寫USB客戶軟件層的程序,即如何將數據封裝成URB和如何從URB中得到數據。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 那曲县| 从化市| 房产| 汉寿县| 罗源县| 吉林省| 巨野县| 德保县| 茶陵县| 玉田县| 襄垣县| 兴隆县| 峡江县| 怀化市| 县级市| 河北省| 南皮县| 淳化县| 丹棱县| 杨浦区| 泽普县| 长宁县| 漳州市| 康平县| 辽中县| 平塘县| 平阴县| 霸州市| 重庆市| 延寿县| 潍坊市| 曲麻莱县| 罗定市| 白水县| 五峰| 正定县| 阳城县| 金坛市| 嵩明县| 甘洛县| 永宁县|