<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于RTEMS的USB設備驅動(dòng)程序設計

基于RTEMS的USB設備驅動(dòng)程序設計

作者: 時(shí)間:2014-06-05 來(lái)源:網(wǎng)絡(luò ) 收藏

引 言

本文引用地址:http://dyxdggzs.com/article/247855.htm

在航空航天和工業(yè)控制等一些嵌入式應用領(lǐng)域,要求控制系統具有嚴格的實(shí)時(shí)性,能夠為任務(wù)提供一個(gè)可預見(jiàn)的響應時(shí)間。一些實(shí)時(shí)操作系統的引入可以有效地滿(mǎn)足任務(wù)的實(shí)時(shí)性要求,如和 VxWorks。在這樣的系統中,如果系統通信模塊的通信速度不高,或者通信質(zhì)量不可靠,就會(huì )影響整個(gè)系統的實(shí)時(shí)性能。通用串行總線(xiàn)()由于其高帶寬、高可靠性的特點(diǎn),必將越來(lái)越多地應用到這類(lèi)系統中。然而由于多數實(shí)時(shí)操作系統目前并未提供主機和設備的驅動(dòng),而且協(xié)議相對于其他串行通信協(xié)議(RS232、SPI等)復雜度較高,使得USB驅動(dòng)程序的開(kāi)發(fā)難度較大。

1 及其設備管理機制

1.1 簡(jiǎn)介

RTEMS(Real—Time Executive for MultiprocessorSystem)是一個(gè)為嵌入式應用系統提供高性能支持環(huán)境的實(shí)時(shí)操作系統內核,早期用于美國軍方的導彈系統。RTEMS的實(shí)時(shí)性能高于RTLinux,與VxWorks相比也毫不遜色。

RTEMS具有如下特點(diǎn):支持多任務(wù);支持同構或異構多處理器系統;支持事件驅動(dòng)、基于優(yōu)先級、占先的調度算法,具有單調速率調度算法;支持任務(wù)間的通信和同步;支持優(yōu)先級繼承算法,快速響應的中斷管理;支持動(dòng)態(tài)存儲器分配,具有用戶(hù)配置的能力。

RTEMS是微內核搶占式的實(shí)時(shí)操作系統,具有實(shí)時(shí)性能好、運行速度快和可靠性高等優(yōu)點(diǎn),在通信、航空航天、工業(yè)控制等領(lǐng)域有著(zhù)非常廣泛的應用。

1.2 設備管理機制

操作系統的一個(gè)重要功能就是為應用程序提供一個(gè)統一的I/O設備的虛擬接口,使用戶(hù)程序能夠按照相同的模式對設備進(jìn)行操作,無(wú)需關(guān)心每個(gè)設備的具體特性。

RTEMS系統提出了一種設備抽象模型,使用這種模型,應用程序通過(guò)相同的I/O系統調用塒沒(méi)備進(jìn)行操作,而不必關(guān)心實(shí)現細節。RTEMS的I/O管理器提供的系統調用包括:

◆rIems_io_initialize,初始化一個(gè)設備驅動(dòng)程序;

◆rtems_io_register_name,注冊一個(gè)設備名;

◆rIems_io_lookup_name,根據設備名查找主/副設備號;

◆rterns_io_open,打開(kāi)一個(gè)設備;

◆rteros_io_close,關(guān)閉一個(gè)設備;

◆rtems_io_read,從一個(gè)設備中執行讀操作;

◆rtems_io_write,向一個(gè)設備中執行寫(xiě)操作;

◆rteros_io_control,特殊的設備服務(wù)。

RTEMS系統使用設備驅動(dòng)程序地址表來(lái)提供這種抽象,在這個(gè)表中提供了每個(gè)標準I/O請求處理函數的入口地址。RTEMS使用設備的主設備號和副設備號來(lái)定位它的驅動(dòng)程序。主設備號是設備驅動(dòng)程序地址表中相應設備表項的索引,用于選擇某個(gè)設備驅動(dòng)程序;副設備號的用途則依賴(lài)于具體的設備驅動(dòng)程序,通常用于在相同設備驅動(dòng)程序所控制的若干設備中指定特定的設備。在RTEMS系統中,每個(gè)特定的設備都有與之相關(guān)聯(lián)的設備名稱(chēng)。RTEMS系統內核中包含了一個(gè) “設備驅動(dòng)程序文件名表”。這個(gè)表將設備文件名與設備的主、副設備號聯(lián)系起來(lái),應用程序可以使用注冊設備名查找與一個(gè)設備相關(guān)聯(lián)的主設備號/副設備號,進(jìn)而通過(guò)標準I/0系統調用和主設備號/副設備號在設備驅動(dòng)程序地址表中找到該設備的驅動(dòng)程序的入口函數地址,對設備進(jìn)行操作。

RTEMS系統在初始化時(shí),會(huì )調用各個(gè)設備驅動(dòng)程序的初始化函數,初始化所有的設備驅動(dòng)程序。當應用程序需要對設備進(jìn)行操作時(shí),會(huì )執行有關(guān)設備管理的 I/O系統調用,RTEMS會(huì )根據該系統調用判斷應該選擇的設備驅動(dòng)程序的入口函數。由應用程序傳遞給RTEMS的信息,將被傳遞給適當的設備驅動(dòng)程序入口函數。

2 USB通信協(xié)議簡(jiǎn)介

USB(Universal Serial Bus,通用串行總線(xiàn))是一種在主機和設備之間進(jìn)行串行數據傳輸的通信協(xié)議。USB接口由于速度快、可靠性高、功耗低等優(yōu)點(diǎn),已成為當前微機的必備接口,同時(shí)也被廣泛應用于嵌入式系統設計中心。USB的物理拓撲為分層的星型結構,由3部分組成——USB主機、USB集線(xiàn)器和USB設備,如圖l所示。

 

 

USB主機是USB系統的主控組件,控制總線(xiàn)上所有USB設備和USB集線(xiàn)器的數據通信過(guò)程,所有的數據傳輸都是由USB主機端發(fā)起的。

USB主機控制器的復雜度要遠遠高于USB設備,典型的USB主機控制器大約需要10 000個(gè)門(mén)電路,而設備端的USB接口大約需要1 500個(gè)門(mén)電路。正是由于這種設計復雜度的不平等,使得USB設備得以在短時(shí)間內得到廣泛應用。

3 RTEMS下USB設備驅動(dòng)程序的設計

3.1 概 述

嵌入式系統的硬件環(huán)境千差萬(wàn)別,各類(lèi)USB設備的類(lèi)規范也各不相同。為了確保程序的可移植性和可擴展性,將程序設計為二層結構:硬件抽象層和USB設備類(lèi)驅動(dòng)層,如圖2所示。

 

 

硬件抽象層封裝對底層USB設備控制器的操作和對中斷的處理,通過(guò)一些標準方法,為上層提供一個(gè)底層的硬件抽象,便于移植。USB設備類(lèi)驅動(dòng)層包含對標準命令和對特定設備類(lèi)命令的處理。

3.2 硬件抽象層

硬件抽象層對USB設備控制器進(jìn)行操作,實(shí)現以下功能:設備狀態(tài)管理、端點(diǎn)狀態(tài)管理和中斷管理。

3.2.1 設備狀態(tài)管理

每一個(gè)USB設備在正常工作前必須完成主機對它的配置過(guò)程,即總線(xiàn)枚舉。USB設備在總線(xiàn)上共有6種狀態(tài):接入態(tài)、加電態(tài)、默認態(tài)、地址態(tài)、配置態(tài)和掛起態(tài)。

硬件抽象層提供USB_Init、USB_Attach、USB_Disat—tach、USB_Connect、USB_Disconnect、 USB_SetAddress、USB_ResetAddress、USB_SetConfiguration和 USB_ResetConfiguration九個(gè)函數對設備的狀態(tài)進(jìn)行管理。一般來(lái)說(shuō),設備在總線(xiàn)上的狀態(tài)變化都會(huì )由中斷通知設備,中斷服務(wù)程序根據中斷類(lèi)型和當前狀態(tài)通過(guò)提供的功能接口對沒(méi)備進(jìn)行相應的操作,確保設備能夠完成枚舉過(guò)程÷順利進(jìn)入配置態(tài)。設備在硬件抽象層函數控制下的在總線(xiàn)上的狀態(tài)機如圖3所示。由于掛起與恢復無(wú)需軟件干預,因此沒(méi)有在狀態(tài)機中描述這一狀態(tài)。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: RTEMS USB

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>