<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

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

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

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

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

          本文引用地址:http://www.ex-cimer.com/article/202687.htm


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

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


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

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



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

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();