新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一種嵌入式USB MiniHost系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

        一種嵌入式USB MiniHost系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

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

        1)發(fā)送SETUP階段請(qǐng)求;
        2)發(fā)送塊請(qǐng)求(BULK Request);
        當(dāng)一個(gè)傳輸請(qǐng)求在一個(gè)階段處理不完時(shí),將會(huì)執(zhí)行圖8所示流程。比如控制傳輸(Control Transfer)需要3個(gè)階段。
        3)控制傳輸(Control Transfer)結(jié)束,向EndPoint結(jié)構(gòu)體中寫入傳送完成的結(jié)果,并根據(jù)傳輸?shù)念愋妥鱿鄳?yīng)處理。
        4)塊傳輸(BULK Transfer)結(jié)束,向EndPoint結(jié)構(gòu)體中寫入傳送完成的結(jié)果,并向并口上發(fā)送ACK BUSY信號(hào)。

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

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

        本文引用地址:http://www.104case.com/article/149178.htm
        linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

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

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 佛冈县| 西乌| 汾阳市| 互助| 内乡县| 报价| 乌苏市| 哈巴河县| 永清县| 南木林县| 阿瓦提县| 八宿县| 镇雄县| 南陵县| 虎林市| 阿拉善右旗| 神农架林区| 庄河市| 屏东县| 平顶山市| 肥西县| 松潘县| 怀安县| 明光市| 陆丰市| 长顺县| 手游| 桐乡市| 厦门市| 平原县| 兴山县| 义乌市| 临朐县| 石狮市| 图们市| 建瓯市| 中阳县| 西盟| 九寨沟县| 永新县| 灵寿县|