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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于LPC2132的U盤軟硬件系統(tǒng)設(shè)計

          基于LPC2132的U盤軟硬件系統(tǒng)設(shè)計

          作者: 時間:2012-08-27 來源:網(wǎng)絡(luò) 收藏

          2.2.3 SCSI命令集實現(xiàn)
          SCSI命令集是SCSI設(shè)備通用命令集。SCSI有3種字長的命令:6字節(jié)、10字節(jié)和12字節(jié)。Microsoft Win—dows環(huán)境下支持12字節(jié)長的命令。圖5給出了通用的UFI命令塊的格式。請注意,這些字節(jié)就是CBW封包中CBWCB字段的內(nèi)容。

          對不同的命令只需根據(jù)SCSI命令集白皮書作出適當(dāng)?shù)幕貞?yīng)。Pm25LV010的最小擦除單位為扇區(qū)(4 KB),故在程序中定義一個4 KB的緩沖區(qū)Cache_STRUC Flash-Cache,把每次收到的數(shù)據(jù)放入緩沖區(qū)中,到緩沖區(qū)滿數(shù)據(jù)接收完畢時再將其寫入Flash存儲器中,流程如圖6所示。

          2.3 Flash存儲器的讀寫控制
          Flash存儲器讀寫程序由SPI控制和Pm25LV010控制兩部分組成。
          Pm25LV010 Flash存儲器采用的是SPI串行接口,其SPI有兩種工作模式——模式O和模式3。SPI.c完成SPI底層操作,給Pm25LV010控制程序提供一個讀寫1字節(jié)數(shù)據(jù)函數(shù)。該函數(shù)使用SPI模式0。
          Pm25LV010控制程序完成Pm25LV010器件的所有操作,其向高層提供的函數(shù)及功能如表2所列。

          Pm25LV010的最小擦除單位是扇區(qū)(每扇區(qū)4 KB),在改寫扇區(qū)內(nèi)任意一字節(jié)數(shù)據(jù)時都需要將該扇區(qū)擦除。針對這種情況,在程序中定義了一個4 KB大小的緩沖區(qū),當(dāng)上層調(diào)用函數(shù)WriteToFlash()向Flash寫數(shù)據(jù)時,并不直接寫入Flash,而是先寫到數(shù)據(jù)緩沖區(qū),其流程如圖7所示。

          3 結(jié)論
          基于微控制器的硬件平臺上實現(xiàn)了USB驅(qū)動、Bulk-Only傳輸協(xié)議、SCSI命令集,實現(xiàn)了完整的功能。


          上一頁 1 2 3 下一頁

          評論


          相關(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); })();