<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è) > 嵌入式系統 > 設計應用 > 一種嵌入式USB MiniHost系統設計與實(shí)現

一種嵌入式USB MiniHost系統設計與實(shí)現

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

1)發(fā)送SETUP階段請求;
2)發(fā)送塊請求(BULK Request);
當一個(gè)傳輸請求在一個(gè)階段處理不完時(shí),將會(huì )執行圖8所示流程。比如控制傳輸(Control Transfer)需要3個(gè)階段。
3)控制傳輸(Control Transfer)結束,向EndPoint結構體中寫(xiě)入傳送完成的結果,并根據傳輸的類(lèi)型做相應處理。
4)塊傳輸(BULK Transfer)結束,向EndPoint結構體中寫(xiě)入傳送完成的結果,并向并口上發(fā)送ACK BUSY信號。

4 并口到接口打印轉換器
4.1 打印轉換器功能描述
利用上述,一個(gè)能夠把并口轉換為接口的打印轉換器,這個(gè)轉換器只是把從并口收到的數據轉發(fā)到接口上,然后根據USB接口規范,把數據重新包裝后發(fā)送給USB打印機,轉換器中并不需要對并口的數據內容進(jìn)行解釋?zhuān)皇寝D發(fā)。
4.2 并口打印機數據傳輸過(guò)程
并口打印機采用IEEE1284標準進(jìn)行通訊。IEEE1284標準為PC和外設之間的通訊定義了雙向通訊協(xié)議,通過(guò)該協(xié)議PC和外設之間的雙向數據傳輸率可以比以前提高20到50倍,同時(shí)該協(xié)議保持了軟件的向下兼容性。IEEE1284標準一共定義了5種數據傳輸模式,即正向傳輸模式(兼容模式),兩種反向傳輸模式(半字節模式和字節模式),兩種雙向傳輸模式(EPP模式一高速增強并行端口和ECP模式-擴展并行端口)。
打印電纜我們采用D25接口,并行口一般有25個(gè)引腳,其中包括8位數據線(xiàn),5位打印機狀態(tài)線(xiàn),4位控制線(xiàn)。
4.3 USB接口打印機數據傳輸過(guò)程
打印設備它們能夠把頁(yè)面描述語(yǔ)言(PDL)轉換為人們能夠讀懂的打印頁(yè)面。因此需要制定打印機如何來(lái)接收這些PDL格式的數據,如何能夠返回打印機的狀態(tài)信息。常規的并口打印機用一個(gè)雙向打印端口來(lái)只認識這些語(yǔ)言。USB用一個(gè)Bulk OUT端點(diǎn)來(lái)發(fā)送這些數據到打印機,并用一個(gè)Bulk IN端點(diǎn)來(lái)發(fā)送狀態(tài)信息或其他數據。對于現已存在的方式來(lái)說(shuō),能夠在主機中通過(guò)Bulk IN端點(diǎn)使用查詢(xún)機制來(lái)檢索并口的狀態(tài)信息。一些PDL允許打印機返回大量的數據,諸如一些字體定義等信息。如果打印機了這個(gè)功能,它將使用用于傳送回狀態(tài)信息的Bulk IN端點(diǎn)來(lái)傳送回這些數據。
4.4 功能
1)并口部分功能
①為了方便處理打印并口只支持IEEE 1284-1994 SPP模式。
②打印數據只支持單方向(數據:PC→轉換器)。
③BUSY和ACK的信號時(shí)序類(lèi)型為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規范。
④控制傳送的數據最大值為64字節。
⑤批量(Bulk)傳送的數據最大值為64字節。
⑥不處理USB Hub。
3)內部功能
①定期取得打印機的狀態(tài)(以1秒為單位),反映到并口信號線(xiàn)中(利用USB控制傳送的GET_PORT_STATUS)。
②并口的收信緩沖存儲為64字節,接收到64字節后由USB接口傳送給打印機。
③并口的收信處理中設置了超時(shí)(1秒),一旦超時(shí)發(fā)生,接收到的數據由USB接口傳送給打印機。
4.5 并口模塊
負責和并口相關(guān)的工作。從并口讀取數據放入數據緩沖區。設置和讀取并口狀態(tài)和控制端口。通過(guò)讀取時(shí)間,來(lái)生成并口的時(shí)序。使用中斷(Interrupt)對并口的InputPrime信號進(jìn)行相應的處理。使用中斷(Interrupt)對并口的nStrobe信號進(jìn)行相應的處理。
4.6 主模塊(Main Module)
主模塊負責初始化整個(gè),包括Parallel Module, Module以及整個(gè)的變量。編寫(xiě)一個(gè)回調函數,此函數在設備狀態(tài)(連接或斷開(kāi))改變時(shí)調用。在檢測到設備連接后,調用 Module枚舉功能,枚舉打印機,并把打印機設置為某種模式。檢查是否要發(fā)送的控制或批量傳送。如果要,則把它們發(fā)送出去。

5 結束語(yǔ)
本論文了一種USB主機系統,并完成了該系統的硬件和固件的和調試。為了驗證系統,實(shí)現了打印機IEEE 1284中的SPP模式協(xié)議到USB打印設備類(lèi)協(xié)議轉換器。在硬件設計中,系統采用富士通90330系列MCU中的MB90F337完成中央控制器和USB Host控制器,電路設計簡(jiǎn)潔。文章為其他USB Host設備的開(kāi)發(fā)提供了設計參考。

本文引用地址:http://dyxdggzs.com/article/149178.htm
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

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

評論


相關(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>