色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

          基于AT91RM9200的圖像采集系統(tǒng)設計

          作者: 時間:2012-05-21 來源:網(wǎng)絡 收藏

          引言:

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

          1.硬件系統(tǒng)設計

          (1) AT91RM9200簡介

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

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

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

          (3)硬件系統(tǒng)結(jié)構(gòu)

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

          圖1.硬件系統(tǒng)結(jié)構(gòu)

          2.軟件系統(tǒng)設計

          (1)軟件架構(gòu)

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

          (2)USB驅(qū)動程序系統(tǒng)框架

          圖2.USB驅(qū)動程序系統(tǒng)框架

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

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


          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉