<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>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 用CBI協(xié)議的USB軟驅讀取繡花機花版文件

用CBI協(xié)議的USB軟驅讀取繡花機花版文件

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

在主機命令發(fā)送得到接收正確響應ACK(確認接收)后,設備會(huì )從端口3自動(dòng)返回2字節狀態(tài)碼,用于主機產(chǎn)生中斷(中斷不是必須),數據傳輸狀態(tài)如下:

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


命令發(fā)送全過(guò)程完畢,當需要數據輸入/輸出時(shí),設置主機發(fā)送IN/OUT PID請求,設備按照請求通過(guò)BULK-IN/OUT端口傳輸數據,每次發(fā)送的字節數根據設備描述符所定義的端口最大吞吐量。
1.2 設備描述符及枚舉過(guò)程
按照,所有設備接入主機后,主機進(jìn)行設備枚舉,識別此設備屬于范疇的哪一類(lèi),以及該類(lèi)型中的哪一子類(lèi);然后對此設備進(jìn)行配置,直到該設備能進(jìn)行正確讀寫(xiě)。這些枚舉信息都已固化在USB設備中,主機只進(jìn)行提取操作。
存儲設備支持很多描述符,主要且必須支持下列USB描述符:
①設備描述符(device descriptor)
②配置描述符(configuration descriptor)
③接口描述符(interface descriptor) 存儲設備至少應支持1個(gè)數據接口。
④端點(diǎn)描述符(endpoint descriptor) 除用作初始化和命令傳輸的控制端口Endpoint 0外,CBI存儲設備還必須支持批量輸入、批量輸出、中斷3種端點(diǎn),配置、接口、端口描述符是在主機一次請求時(shí)接收的。
當某設備描述符被識別為mass storage device類(lèi)CBI設備子類(lèi)后,主機進(jìn)行第2次枚舉,對設備進(jìn)行相關(guān)配置和初始化。具體枚舉過(guò)程通過(guò)第1次枚舉所配置的端口,發(fā)送相關(guān)請求命令,進(jìn)行初始化的數據輸入/輸出。具體函數及功能如下:

2 USB 主機程序設計
2.1 開(kāi)發(fā)平臺介紹
開(kāi)發(fā)平臺主要包括:
①MCU S3C24IOA(繡花機主芯片)
②USB芯片 SL811HS
③開(kāi)發(fā)語(yǔ)言 嵌入式C語(yǔ)言
④編譯環(huán)境 CodeWarrior for ARM Developer SuiteVl.2
⑤仿真器 Magic-ICE
⑥USB類(lèi)型 SONY MPF82E-U1磁盤(pán)驅動(dòng)器
2.2.1 USB設備的枚舉
USB首先要進(jìn)行設備枚舉,主機通過(guò)控制端口0向設備發(fā)送DeviceRequest命令。DeviceRequest命令主要有Get_Descriptor,Set_Address,Set_Config,Set_Interface等,而Get_Descriptor描述符又可分為Device_Descriptor、Configuration_Descriptor、Interface_Descrip-tor、Endpoint_Descriptor,枚舉階段所有的請求都是基于setup ID。根據不同的請求命令,配置相應的棧。以下是配置接收描述符的部分參數,以設備描述符為例:


配置請求參數完成以后,利用USB數據傳輸函數usbXfer()來(lái)傳輸該請求。usbXfer()必須完全遵循USBl.1協(xié)議。該函數具體算法流程如圖1所示。

2.2.2 大容量存儲設備的枚舉
此階段任務(wù)的中心是對主機發(fā)送UFI命令的處理。ADSC請求是UFI命令的前導,通過(guò)控制端口0以setup數據包發(fā)送,接著(zhù)仍通過(guò)端口0以數據包的形式發(fā)送UFI命令包。命令包均為12字節,發(fā)送前暫存在ufi[]數組中。以CBI_Read(unsigned long lba,unsigned charlen,unsigned char* pBuffer)函數為例敘述命令發(fā)送過(guò)程,其他枚舉函數實(shí)現基本原理相同。CBI_Read()函數讀取扇區數據到指定數組,源程序如下:



關(guān)鍵詞: CBI USB 協(xié)議 軟驅

評論


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