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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > LPC11U14實現SD卡U盤

          LPC11U14實現SD卡U盤

          作者: 時間:2016-11-10 來源:網絡 收藏
          此實驗在本人設計的LPC1114/LPC1343/LPC11U14開發(fā)板是驗證成功:下面先秀秀圖吧,下面是三種芯片三種開發(fā)板。SD卡在背面。。。

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

          要實現SD卡U盤功能只有實驗LPC1343或者LPC11U14才行,因為它們都有USB功能。下面先講講大概的思路。通過USB和PC進行通信,并枚舉一個U盤,具體的操作是通過SPI總線操作SD卡。

          下面就先看NXP源代碼模擬的U盤,和我們修改后實現的SD卡U盤:

          NXP模擬U盤

          SD卡U盤

          1.NXP原廠代碼免費贈送:USBMem.rar(294.52 KB)

          2.本人修改的SD卡U盤,收費哦:SD卡U盤.rar(1.45 MB)

          下面看看U盤是讀寫速度:

          從U盤讀數據到PC的速度

          從PC寫數據到U盤速度

          從上面可以看出,SD卡U盤的讀寫速度都非常慢,所以本實驗只有實驗價值,不能真正作為U盤來使用,當然如用來實現IAP等還是很不錯的,至于提升速度,應該還是有一定的空間,大不會很大。。。

          下面我們詳細說明從模擬U盤到SD卡U盤都修改了些什么內容,這里使用Beyond Compare軟件進行對比。

          左邊是模擬U盤代碼,右邊是修改后的代碼

          1.添加兩個變量:

          2. 修改Read函數:

          3. 修改Write函數:

          4.修改MSC_GetCBW函數:

          5.修改宏定義,獲取SD卡實際容量等信息

          大體的修改就這些,還有部分細節(jié)這里就不再說明,網友可以下載程序對比??纯词遣皇欠浅:唵伟?!下載到硬件中試試吧。。。。。。。。。。。。。。

          對于U盤,本人在剛開始時以為是,通過文件系統(tǒng)來操作文件的讀寫、格式等。所以一想到對中文長文件名的支持,就有點畏懼,因為光是對長文件名的支持代碼都要170K,而LPC11U14是沒有這么大的空間的。通過學習,感覺自己完全是誤會了,其實U盤的代碼變不復雜,當然要產品化還是很難的。下面簡單講講U盤的實現。

          1.怎樣實現文件讀寫?

          U盤的命令很多,而我們使用的就幾個,其中最重要的是Read(10/12)和Write(10/12)兩個命令,PC機就是通過這兩個命令來讀寫U盤的,而這兩個命令中我們只需要知道該讀寫哪一個扇區(qū),然后通過SD卡的扇區(qū)讀寫函數就可以實現文件的讀寫操作了。

          2.那么PC怎么知道文件的存放地址,以及有那些文件的呢?

          要知道文件的讀寫就離不開FAT文件系統(tǒng)了,所以存儲介質里邊必須有FAT表,而FAT里邊就是存放文件,目錄等的信息(具體的FAT表這里就不介紹了,網友可以到網絡上去搜索)。所以在NXP的源代碼里邊有個數組DiskImage,這個數組就是模擬FAT表和啟動扇區(qū)的,如:0xEB,0x3C,0x90,0x4D,0x53,0x44,0x4F,0x53,0x35,0x2E,0x30,0x00,0x02,0x01,0x01,0x00,從前面幾個字節(jié)就可以看出是啟動扇區(qū)的命令吧。。。。。

          所以只有我們的介質里邊有啟動扇區(qū)和FAT表,那么我們只需要按照PC指令讀取相應的扇區(qū),PC機獲取啟動扇區(qū)和FAT表后就可以解碼出文件的存儲格式,文件大小等一系列信息了,跟讀取硬盤沒有多大的區(qū)別。。。。



          關鍵詞: LPC11U14SD卡U

          評論


          技術專區(qū)

          關閉
          看屁屁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); })();