一種嵌入式USB MiniHost系統(tǒng)設計與實現(xiàn)
1)發(fā)送SETUP階段請求;
2)發(fā)送塊請求(BULK Request);
當一個傳輸請求在一個階段處理不完時,將會執(zhí)行圖8所示流程。比如控制傳輸(Control Transfer)需要3個階段。
3)控制傳輸(Control Transfer)結(jié)束,向EndPoint結(jié)構體中寫入傳送完成的結(jié)果,并根據(jù)傳輸?shù)念愋妥鱿鄳幚怼?br /> 4)塊傳輸(BULK Transfer)結(jié)束,向EndPoint結(jié)構體中寫入傳送完成的結(jié)果,并向并口上發(fā)送ACK BUSY信號。
4 并口到USB接口打印轉(zhuǎn)換器實現(xiàn)
4.1 打印轉(zhuǎn)換器功能描述
利用上述系統(tǒng),設計一個能夠把并口轉(zhuǎn)換為USB接口的打印轉(zhuǎn)換器,這個轉(zhuǎn)換器只是把從并口收到的數(shù)據(jù)轉(zhuǎn)發(fā)到USB接口上,然后根據(jù)USB接口規(guī)范,把數(shù)據(jù)重新包裝后發(fā)送給USB打印機,轉(zhuǎn)換器中并不需要對并口的數(shù)據(jù)內(nèi)容進行解釋,只是轉(zhuǎn)發(fā)。
4.2 并口打印機數(shù)據(jù)傳輸過程
并口打印機采用IEEE1284標準進行通訊。IEEE1284標準為PC和外設之間的通訊定義了雙向通訊協(xié)議,通過該協(xié)議PC和外設之間的雙向數(shù)據(jù)傳輸率可以比以前提高20到50倍,同時該協(xié)議保持了軟件的向下兼容性。IEEE1284標準一共定義了5種數(shù)據(jù)傳輸模式,即正向傳輸模式(兼容模式),兩種反向傳輸模式(半字節(jié)模式和字節(jié)模式),兩種雙向傳輸模式(EPP模式一高速增強并行端口和ECP模式-擴展并行端口)。
打印電纜我們采用D25接口,并行口一般有25個引腳,其中包括8位數(shù)據(jù)線,5位打印機狀態(tài)線,4位控制線。
4.3 USB接口打印機數(shù)據(jù)傳輸過程
打印設備它們能夠把頁面描述語言(PDL)轉(zhuǎn)換為人們能夠讀懂的打印頁面。因此需要制定打印機如何來接收這些PDL格式的數(shù)據(jù),如何能夠返回打印機的狀態(tài)信息。常規(guī)的并口打印機用一個雙向打印端口來只認識這些語言。USB用一個Bulk OUT端點來發(fā)送這些數(shù)據(jù)到打印機,并用一個Bulk IN端點來發(fā)送狀態(tài)信息或其他數(shù)據(jù)。對于現(xiàn)已存在的方式來說,能夠在主機中通過Bulk IN端點使用查詢機制來檢索并口的狀態(tài)信息。一些PDL允許打印機返回大量的數(shù)據(jù),諸如一些字體定義等信息。如果打印機實現(xiàn)了這個功能,它將使用用于傳送回狀態(tài)信息的Bulk IN端點來傳送回這些數(shù)據(jù)。
4.4 功能設計
1)并口部分功能
①為了方便處理打印并口只支持IEEE 1284-1994 SPP模式。
②打印數(shù)據(jù)只支持單方向(數(shù)據(jù):PC→轉(zhuǎn)換器)。
③BUSY和ACK的信號時序類型為A-B(Ack-in-Busy)。
2)USB打印機接口功能
①支持USB Ver2.0 Full Speed。
②符合Universal Serial Bus Specification 2.0。
③符合Universal Serial Bus Device Class Definition for Printing Devices規(guī)范。
④控制傳送的數(shù)據(jù)最大值為64字節(jié)。
⑤批量(Bulk)傳送的數(shù)據(jù)最大值為64字節(jié)。
⑥不處理USB Hub。
3)內(nèi)部功能
①定期取得打印機的狀態(tài)(以1秒為單位),反映到并口信號線中(利用USB控制傳送的GET_PORT_STATUS)。
②并口的收信緩沖存儲為64字節(jié),接收到64字節(jié)后由USB接口傳送給打印機。
③并口的收信處理中設置了超時(1秒),一旦超時發(fā)生,接收到的數(shù)據(jù)由USB接口傳送給打印機。
4.5 并口模塊
負責和并口相關的工作。從并口讀取數(shù)據(jù)放入數(shù)據(jù)緩沖區(qū)。設置和讀取并口狀態(tài)和控制端口。通過讀取時間,來生成并口的時序。使用中斷(Interrupt)對并口的InputPrime信號進行相應的處理。使用中斷(Interrupt)對并口的nStrobe信號進行相應的處理。
4.6 主模塊(Main Module)
主模塊負責初始化整個系統(tǒng),包括Parallel Module,MiniHost Module以及整個系統(tǒng)的變量。編寫一個回調(diào)函數(shù),此函數(shù)在設備狀態(tài)(連接或斷開)改變時調(diào)用。在檢測到設備連接后,調(diào)用MiniHost Module枚舉功能,枚舉打印機,并把打印機設置為某種模式。檢查是否要發(fā)送的控制或批量傳送。如果要,則把它們發(fā)送出去。
5 結(jié)束語
本論文設計了一種嵌入式USB主機系統(tǒng),并完成了該系統(tǒng)的硬件和固件的實現(xiàn)和調(diào)試。為了驗證系統(tǒng),實現(xiàn)了打印機IEEE 1284中的SPP模式協(xié)議到USB打印設備類協(xié)議轉(zhuǎn)換器。在硬件設計中,系統(tǒng)采用富士通90330系列MCU中的MB90F337完成中央控制器和USB Host控制器,電路設計簡潔。文章為其他嵌入式USB Host設備的開發(fā)提供了設計參考。本文引用地址:http://butianyuan.cn/article/149178.htm linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論