基于USB-Host的大容量數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)
發(fā)布時(shí)間:2007/8/29 0:00:00 訪問(wèn)次數(shù):478
作者:長(zhǎng)江大學(xué) 萬(wàn)天軍 徐愛(ài)鈞 李家緒
摘 要 利用USB主控制器控制U盤作為數(shù)據(jù)采集系統(tǒng)的移動(dòng)存儲(chǔ)器。該設(shè)計(jì)基于USB主/從控制芯片CH375S,遵守大容量存儲(chǔ)設(shè)備類規(guī)范中的BulkOnly和UFI子規(guī)范,支持FAT16文件系統(tǒng),實(shí)現(xiàn)了數(shù)據(jù)采集系統(tǒng)中可用U盤進(jìn)行數(shù)據(jù)存儲(chǔ),方便與計(jì)算機(jī)交互;配合液晶和外擴(kuò)鍵盤,可以完全拋開(kāi)PC,實(shí)現(xiàn)采集數(shù)據(jù)的實(shí)時(shí)顯示和指定存儲(chǔ)區(qū)域內(nèi)數(shù)據(jù)的查看。
關(guān)鍵詞 CH375S USB-Host 數(shù)據(jù)采集系統(tǒng) Mass-Storage類 FAT16 文件系統(tǒng)
引言
隨著移動(dòng)數(shù)據(jù)存儲(chǔ)領(lǐng)域的日益擴(kuò)大,在嵌入式系統(tǒng)中實(shí)現(xiàn)USB主機(jī)功能,以實(shí)現(xiàn)利用USB存儲(chǔ)設(shè)備進(jìn)行數(shù)據(jù)存儲(chǔ)的需求變得日益迫切。U盤作為新型移動(dòng)存儲(chǔ)設(shè)備,以體積小、速度高、抗震動(dòng)、通用性強(qiáng)的特點(diǎn)倍受青睞,因此,在數(shù)據(jù)采集系統(tǒng)中開(kāi)發(fā)出嵌入式USB主機(jī)控制U盤作為數(shù)據(jù)存儲(chǔ)器,將具有良好的實(shí)用價(jià)值和應(yīng)用前景。
1 USB大容量存儲(chǔ)設(shè)備協(xié)議分析
基于USB的大容量數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì),主要是要實(shí)現(xiàn)嵌入式USBHost。要想設(shè)計(jì)出能直接讀寫U盤的嵌入式USBHost,就必須理解USB大容量存儲(chǔ)設(shè)備協(xié)議。目前USB大容量存儲(chǔ)設(shè)備軟件結(jié)構(gòu)如圖1所示。
圖1 USB大容量存儲(chǔ)設(shè)備軟件結(jié)構(gòu)示意圖
圖1中,虛線左邊部分是主機(jī)的驅(qū)動(dòng)程序結(jié)構(gòu),也是嵌入式USBHost所要實(shí)現(xiàn)的。左邊最頂層是FAT文件系統(tǒng)層API ,用于提供給用戶訪問(wèn)存儲(chǔ)設(shè)備的方法。U盤中的數(shù)據(jù)都是以文件格式存儲(chǔ)的,F(xiàn)AT16因具有高度兼容性而被廣泛應(yīng)用于移動(dòng)存儲(chǔ)設(shè)備中。這里簡(jiǎn)要分析一下FAT16文件系統(tǒng)結(jié)構(gòu)和存儲(chǔ)空間的組織原則。
(1) FAT16文件系統(tǒng)結(jié)構(gòu)
FAT格式的磁盤大致可以分5個(gè)部分:MBR區(qū)、DBR區(qū)、FAT區(qū)、FDT區(qū)和DATA區(qū)。
MBR區(qū): 又稱主引導(dǎo)記錄,其后為64字節(jié)的DPT(Disk Partition Table,磁盤分區(qū)表)。由于不需要從U盤啟動(dòng),且U盤就一個(gè)分區(qū),所以U盤上沒(méi)有這個(gè)數(shù)據(jù)區(qū)。
DBR區(qū): 即操作系統(tǒng)引導(dǎo)記錄區(qū),通常占用分區(qū)的第0扇區(qū),共512字節(jié),由跳轉(zhuǎn)指令、BPB、結(jié)束標(biāo)志幾部分組成。
FAT 區(qū): 存放文件分配表。文件分配表是一一對(duì)應(yīng)于數(shù)據(jù)區(qū)簇號(hào)的列表,反映了所有簇的使用情況。每個(gè)表項(xiàng)單元的大小決定了FAT的類型,比如FAT16的表項(xiàng)單元為16位。FAT表一般都有一個(gè)備份。
FDT區(qū): 存放著文件目錄表,位于備份FAT表之后。FDT由32位的目錄項(xiàng)線性構(gòu)成,記錄著根目錄下每個(gè)文件(子目錄)的起始單元、屬性等。FDT大小為32個(gè)扇區(qū),最多可以保存512個(gè)目錄項(xiàng)。
DATA區(qū): 是真正意義上的數(shù)據(jù)存儲(chǔ)的地方,位于FDT之后,占據(jù)硬盤上的大部分?jǐn)?shù)據(jù)空間。
(2) FAT16的存儲(chǔ)空間組織原則
當(dāng)磁盤空間格式化為FAT分區(qū)時(shí),F(xiàn)AT文件系統(tǒng)就將這個(gè)分區(qū)當(dāng)成整塊可分配的區(qū)域進(jìn)行規(guī)劃,以便數(shù)據(jù)的存儲(chǔ)。FAT將磁盤空間以一定數(shù)目的扇區(qū)為單位進(jìn)行劃分,這樣的單位稱為簇。通常情況下,每扇區(qū)512字節(jié)的原則是不變的。簇的大小一般是2n(n為整數(shù))個(gè)扇區(qū)的大。總(gè)簇的最大存儲(chǔ)空間為32 KB)。一般采用邏輯塊LBA(Logical Block Addressing)尋址方式。
圖1虛線左邊中間的UFI/ATA驅(qū)動(dòng)層將應(yīng)用程序的訪問(wèn)轉(zhuǎn)換成UFI或ATA命令/數(shù)據(jù)格式,與外部存儲(chǔ)設(shè)備之間按照子規(guī)范UFI或ATA的定義進(jìn)行命令/狀態(tài)/數(shù)據(jù)的交換;最底層則是USB傳輸驅(qū)動(dòng),負(fù)責(zé)將上層的UFI/ATA數(shù)據(jù)發(fā)送到USB總線上以及接收從存儲(chǔ)設(shè)備返回的狀態(tài)/數(shù)據(jù)。CBI/BulkOnly/ATA/UFI是USB Mass Storage類規(guī)范中4個(gè)獨(dú)立的子類規(guī)范的簡(jiǎn)稱。前兩個(gè)子規(guī)范定義了數(shù)據(jù)/命令/狀態(tài)在USB上的傳輸方法。BulkOnly傳輸規(guī)范僅使用Bulk端點(diǎn)傳送數(shù)據(jù)/命令/狀態(tài),CBI傳輸規(guī)范則使用Control/Bulk/Interrupt三種類型的端點(diǎn)進(jìn)行數(shù)據(jù)/命令/狀態(tài)傳送。后兩個(gè)子規(guī)范則定義了存儲(chǔ)介質(zhì)的操作命令。ATA命令規(guī)范用于硬盤,UFI命令規(guī)范是針對(duì)USB移動(dòng)存儲(chǔ)而制定的。
2 嵌入式USB-Host設(shè)計(jì)
2.1 硬件設(shè)計(jì)
系統(tǒng)采用增強(qiáng)型8051內(nèi)核的單片機(jī)STC89C516RD+作為中央處理芯片,選用南京沁恒電子公司的CH375S作為USB主機(jī)控制芯片。
STC89C516RD+具有64 KB的Flash程序存儲(chǔ)器,1 280字節(jié)的RAM(256字節(jié)的內(nèi)部RAM和1 KB的外部RAM),支持在系統(tǒng)/在應(yīng)用可編程(ISP,IAP);CH375S是一款符合USB1.1協(xié)議規(guī)范的USB總線的通用接口芯片,支持USBHost主機(jī)方式和USBDevice/Slave設(shè)備方式。CH375S具有8位數(shù)據(jù)總線和讀、寫、片選控制線以及中斷輸出,因此CH375S作全速USBHost 主機(jī)接口時(shí),外圍元器件只需要晶振和電容,就可以方便地掛接到單片機(jī)/DSP/MCU/MPU等控制器的系統(tǒng)總線上?紤]到讀/寫U盤或移動(dòng)硬盤時(shí)一般都是以扇區(qū)模式進(jìn)行的,所以要加磁盤數(shù)據(jù)緩沖區(qū)和文件數(shù)據(jù)緩沖區(qū)(都是512字節(jié)的整數(shù)倍),并且緩沖區(qū)越大,執(zhí)行的效率越高,所以外擴(kuò)了32 KB的RAM
作者:長(zhǎng)江大學(xué) 萬(wàn)天軍 徐愛(ài)鈞 李家緒
摘 要 利用USB主控制器控制U盤作為數(shù)據(jù)采集系統(tǒng)的移動(dòng)存儲(chǔ)器。該設(shè)計(jì)基于USB主/從控制芯片CH375S,遵守大容量存儲(chǔ)設(shè)備類規(guī)范中的BulkOnly和UFI子規(guī)范,支持FAT16文件系統(tǒng),實(shí)現(xiàn)了數(shù)據(jù)采集系統(tǒng)中可用U盤進(jìn)行數(shù)據(jù)存儲(chǔ),方便與計(jì)算機(jī)交互;配合液晶和外擴(kuò)鍵盤,可以完全拋開(kāi)PC,實(shí)現(xiàn)采集數(shù)據(jù)的實(shí)時(shí)顯示和指定存儲(chǔ)區(qū)域內(nèi)數(shù)據(jù)的查看。
關(guān)鍵詞 CH375S USB-Host 數(shù)據(jù)采集系統(tǒng) Mass-Storage類 FAT16 文件系統(tǒng)
引言
隨著移動(dòng)數(shù)據(jù)存儲(chǔ)領(lǐng)域的日益擴(kuò)大,在嵌入式系統(tǒng)中實(shí)現(xiàn)USB主機(jī)功能,以實(shí)現(xiàn)利用USB存儲(chǔ)設(shè)備進(jìn)行數(shù)據(jù)存儲(chǔ)的需求變得日益迫切。U盤作為新型移動(dòng)存儲(chǔ)設(shè)備,以體積小、速度高、抗震動(dòng)、通用性強(qiáng)的特點(diǎn)倍受青睞,因此,在數(shù)據(jù)采集系統(tǒng)中開(kāi)發(fā)出嵌入式USB主機(jī)控制U盤作為數(shù)據(jù)存儲(chǔ)器,將具有良好的實(shí)用價(jià)值和應(yīng)用前景。
1 USB大容量存儲(chǔ)設(shè)備協(xié)議分析
基于USB的大容量數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì),主要是要實(shí)現(xiàn)嵌入式USBHost。要想設(shè)計(jì)出能直接讀寫U盤的嵌入式USBHost,就必須理解USB大容量存儲(chǔ)設(shè)備協(xié)議。目前USB大容量存儲(chǔ)設(shè)備軟件結(jié)構(gòu)如圖1所示。
圖1 USB大容量存儲(chǔ)設(shè)備軟件結(jié)構(gòu)示意圖
圖1中,虛線左邊部分是主機(jī)的驅(qū)動(dòng)程序結(jié)構(gòu),也是嵌入式USBHost所要實(shí)現(xiàn)的。左邊最頂層是FAT文件系統(tǒng)層API ,用于提供給用戶訪問(wèn)存儲(chǔ)設(shè)備的方法。U盤中的數(shù)據(jù)都是以文件格式存儲(chǔ)的,F(xiàn)AT16因具有高度兼容性而被廣泛應(yīng)用于移動(dòng)存儲(chǔ)設(shè)備中。這里簡(jiǎn)要分析一下FAT16文件系統(tǒng)結(jié)構(gòu)和存儲(chǔ)空間的組織原則。
(1) FAT16文件系統(tǒng)結(jié)構(gòu)
FAT格式的磁盤大致可以分5個(gè)部分:MBR區(qū)、DBR區(qū)、FAT區(qū)、FDT區(qū)和DATA區(qū)。
MBR區(qū): 又稱主引導(dǎo)記錄,其后為64字節(jié)的DPT(Disk Partition Table,磁盤分區(qū)表)。由于不需要從U盤啟動(dòng),且U盤就一個(gè)分區(qū),所以U盤上沒(méi)有這個(gè)數(shù)據(jù)區(qū)。
DBR區(qū): 即操作系統(tǒng)引導(dǎo)記錄區(qū),通常占用分區(qū)的第0扇區(qū),共512字節(jié),由跳轉(zhuǎn)指令、BPB、結(jié)束標(biāo)志幾部分組成。
FAT 區(qū): 存放文件分配表。文件分配表是一一對(duì)應(yīng)于數(shù)據(jù)區(qū)簇號(hào)的列表,反映了所有簇的使用情況。每個(gè)表項(xiàng)單元的大小決定了FAT的類型,比如FAT16的表項(xiàng)單元為16位。FAT表一般都有一個(gè)備份。
FDT區(qū): 存放著文件目錄表,位于備份FAT表之后。FDT由32位的目錄項(xiàng)線性構(gòu)成,記錄著根目錄下每個(gè)文件(子目錄)的起始單元、屬性等。FDT大小為32個(gè)扇區(qū),最多可以保存512個(gè)目錄項(xiàng)。
DATA區(qū): 是真正意義上的數(shù)據(jù)存儲(chǔ)的地方,位于FDT之后,占據(jù)硬盤上的大部分?jǐn)?shù)據(jù)空間。
(2) FAT16的存儲(chǔ)空間組織原則
當(dāng)磁盤空間格式化為FAT分區(qū)時(shí),F(xiàn)AT文件系統(tǒng)就將這個(gè)分區(qū)當(dāng)成整塊可分配的區(qū)域進(jìn)行規(guī)劃,以便數(shù)據(jù)的存儲(chǔ)。FAT將磁盤空間以一定數(shù)目的扇區(qū)為單位進(jìn)行劃分,這樣的單位稱為簇。通常情況下,每扇區(qū)512字節(jié)的原則是不變的。簇的大小一般是2n(n為整數(shù))個(gè)扇區(qū)的大。總(gè)簇的最大存儲(chǔ)空間為32 KB)。一般采用邏輯塊LBA(Logical Block Addressing)尋址方式。
圖1虛線左邊中間的UFI/ATA驅(qū)動(dòng)層將應(yīng)用程序的訪問(wèn)轉(zhuǎn)換成UFI或ATA命令/數(shù)據(jù)格式,與外部存儲(chǔ)設(shè)備之間按照子規(guī)范UFI或ATA的定義進(jìn)行命令/狀態(tài)/數(shù)據(jù)的交換;最底層則是USB傳輸驅(qū)動(dòng),負(fù)責(zé)將上層的UFI/ATA數(shù)據(jù)發(fā)送到USB總線上以及接收從存儲(chǔ)設(shè)備返回的狀態(tài)/數(shù)據(jù)。CBI/BulkOnly/ATA/UFI是USB Mass Storage類規(guī)范中4個(gè)獨(dú)立的子類規(guī)范的簡(jiǎn)稱。前兩個(gè)子規(guī)范定義了數(shù)據(jù)/命令/狀態(tài)在USB上的傳輸方法。BulkOnly傳輸規(guī)范僅使用Bulk端點(diǎn)傳送數(shù)據(jù)/命令/狀態(tài),CBI傳輸規(guī)范則使用Control/Bulk/Interrupt三種類型的端點(diǎn)進(jìn)行數(shù)據(jù)/命令/狀態(tài)傳送。后兩個(gè)子規(guī)范則定義了存儲(chǔ)介質(zhì)的操作命令。ATA命令規(guī)范用于硬盤,UFI命令規(guī)范是針對(duì)USB移動(dòng)存儲(chǔ)而制定的。
2 嵌入式USB-Host設(shè)計(jì)
2.1 硬件設(shè)計(jì)
系統(tǒng)采用增強(qiáng)型8051內(nèi)核的單片機(jī)STC89C516RD+作為中央處理芯片,選用南京沁恒電子公司的CH375S作為USB主機(jī)控制芯片。
STC89C516RD+具有64 KB的Flash程序存儲(chǔ)器,1 280字節(jié)的RAM(256字節(jié)的內(nèi)部RAM和1 KB的外部RAM),支持在系統(tǒng)/在應(yīng)用可編程(ISP,IAP);CH375S是一款符合USB1.1協(xié)議規(guī)范的USB總線的通用接口芯片,支持USBHost主機(jī)方式和USBDevice/Slave設(shè)備方式。CH375S具有8位數(shù)據(jù)總線和讀、寫、片選控制線以及中斷輸出,因此CH375S作全速USBHost 主機(jī)接口時(shí),外圍元器件只需要晶振和電容,就可以方便地掛接到單片機(jī)/DSP/MCU/MPU等控制器的系統(tǒng)總線上?紤]到讀/寫U盤或移動(dòng)硬盤時(shí)一般都是以扇區(qū)模式進(jìn)行的,所以要加磁盤數(shù)據(jù)緩沖區(qū)和文件數(shù)據(jù)緩沖區(qū)(都是512字節(jié)的整數(shù)倍),并且緩沖區(qū)越大,執(zhí)行的效率越高,所以外擴(kuò)了32 KB的RAM
熱門點(diǎn)擊
- 數(shù)字視頻壓縮的大容量記錄系統(tǒng)設(shè)計(jì)
- 嵌入式Linux的低功耗策略研究
- 基于USB-Host的大容量數(shù)據(jù)采集系統(tǒng)的設(shè)
- 基于C8051F023的軟件注入技術(shù)
- 設(shè)計(jì)靈活、高性能的嵌入式系統(tǒng)
- 嵌入式Linux系統(tǒng)中I2C總線設(shè)備的驅(qū)動(dòng)設(shè)
推薦技術(shù)資料
- 羅盤誤差及補(bǔ)償
- 造成羅盤誤差的主要因素有傳感器誤差、其他磁材料干擾等。... [詳細(xì)]
- 分立器件&無(wú)源元件選型及工作原
- 新一代“超越EUV”光刻系統(tǒng)參
- 最新品BAT激光器制造工藝設(shè)計(jì)
- 新款汽車SoC產(chǎn)品Malibo
- 新芯片品類FPCU(現(xiàn)場(chǎng)可編程
- 電動(dòng)汽車動(dòng)力總成系統(tǒng)̴
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究