基于USB-Host的大容量數據采集系統的設計
發布時間:2007/8/29 0:00:00 訪問次數:472
作者:長江大學 萬天軍 徐愛鈞 李家緒
摘 要 利用USB主控制器控制U盤作為數據采集系統的移動存儲器。該設計基于USB主/從控制芯片CH375S,遵守大容量存儲設備類規范中的BulkOnly和UFI子規范,支持FAT16文件系統,實現了數據采集系統中可用U盤進行數據存儲,方便與計算機交互;配合液晶和外擴鍵盤,可以完全拋開PC,實現采集數據的實時顯示和指定存儲區域內數據的查看。
關鍵詞 CH375S USB-Host 數據采集系統 Mass-Storage類 FAT16 文件系統
引言
隨著移動數據存儲領域的日益擴大,在嵌入式系統中實現USB主機功能,以實現利用USB存儲設備進行數據存儲的需求變得日益迫切。U盤作為新型移動存儲設備,以體積小、速度高、抗震動、通用性強的特點倍受青睞,因此,在數據采集系統中開發出嵌入式USB主機控制U盤作為數據存儲器,將具有良好的實用價值和應用前景。
1 USB大容量存儲設備協議分析
基于USB的大容量數據采集系統的設計,主要是要實現嵌入式USBHost。要想設計出能直接讀寫U盤的嵌入式USBHost,就必須理解USB大容量存儲設備協議。目前USB大容量存儲設備軟件結構如圖1所示。
圖1 USB大容量存儲設備軟件結構示意圖
圖1中,虛線左邊部分是主機的驅動程序結構,也是嵌入式USBHost所要實現的。左邊最頂層是FAT文件系統層API ,用于提供給用戶訪問存儲設備的方法。U盤中的數據都是以文件格式存儲的,FAT16因具有高度兼容性而被廣泛應用于移動存儲設備中。這里簡要分析一下FAT16文件系統結構和存儲空間的組織原則。
(1) FAT16文件系統結構
FAT格式的磁盤大致可以分5個部分:MBR區、DBR區、FAT區、FDT區和DATA區。
MBR區: 又稱主引導記錄,其后為64字節的DPT(Disk Partition Table,磁盤分區表)。由于不需要從U盤啟動,且U盤就一個分區,所以U盤上沒有這個數據區。
DBR區: 即操作系統引導記錄區,通常占用分區的第0扇區,共512字節,由跳轉指令、BPB、結束標志幾部分組成。
FAT 區: 存放文件分配表。文件分配表是一一對應于數據區簇號的列表,反映了所有簇的使用情況。每個表項單元的大小決定了FAT的類型,比如FAT16的表項單元為16位。FAT表一般都有一個備份。
FDT區: 存放著文件目錄表,位于備份FAT表之后。FDT由32位的目錄項線性構成,記錄著根目錄下每個文件(子目錄)的起始單元、屬性等。FDT大小為32個扇區,最多可以保存512個目錄項。
DATA區: 是真正意義上的數據存儲的地方,位于FDT之后,占據硬盤上的大部分數據空間。
(2) FAT16的存儲空間組織原則
當磁盤空間格式化為FAT分區時,FAT文件系統就將這個分區當成整塊可分配的區域進行規劃,以便數據的存儲。FAT將磁盤空間以一定數目的扇區為單位進行劃分,這樣的單位稱為簇。通常情況下,每扇區512字節的原則是不變的。簇的大小一般是2n(n為整數)個扇區的大小(每個簇的最大存儲空間為32 KB)。一般采用邏輯塊LBA(Logical Block Addressing)尋址方式。
圖1虛線左邊中間的UFI/ATA驅動層將應用程序的訪問轉換成UFI或ATA命令/數據格式,與外部存儲設備之間按照子規范UFI或ATA的定義進行命令/狀態/數據的交換;最底層則是USB傳輸驅動,負責將上層的UFI/ATA數據發送到USB總線上以及接收從存儲設備返回的狀態/數據。CBI/BulkOnly/ATA/UFI是USB Mass Storage類規范中4個獨立的子類規范的簡稱。前兩個子規范定義了數據/命令/狀態在USB上的傳輸方法。BulkOnly傳輸規范僅使用Bulk端點傳送數據/命令/狀態,CBI傳輸規范則使用Control/Bulk/Interrupt三種類型的端點進行數據/命令/狀態傳送。后兩個子規范則定義了存儲介質的操作命令。ATA命令規范用于硬盤,UFI命令規范是針對USB移動存儲而制定的。
2 嵌入式USB-Host設計
2.1 硬件設計
系統采用增強型8051內核的單片機STC89C516RD+作為中央處理芯片,選用南京沁恒電子公司的CH375S作為USB主機控制芯片。
STC89C516RD+具有64 KB的Flash程序存儲器,1 280字節的RAM(256字節的內部RAM和1 KB的外部RAM),支持在系統/在應用可編程(ISP,IAP);CH375S是一款符合USB1.1協議規范的USB總線的通用接口芯片,支持USBHost主機方式和USBDevice/Slave設備方式。CH375S具有8位數據總線和讀、寫、片選控制線以及中斷輸出,因此CH375S作全速USBHost 主機接口時,外圍元器件只需要晶振和電容,就可以方便地掛接到單片機/DSP/MCU/MPU等控制器的系統總線上。考慮到讀/寫U盤或移動硬盤時一般都是以扇區模式進行的,所以要加磁盤數據緩沖區和文件數據緩沖區(都是512字節的整數倍),并且緩沖區越大,執行的效率越高,所以外擴了32 KB的RAM
作者:長江大學 萬天軍 徐愛鈞 李家緒
摘 要 利用USB主控制器控制U盤作為數據采集系統的移動存儲器。該設計基于USB主/從控制芯片CH375S,遵守大容量存儲設備類規范中的BulkOnly和UFI子規范,支持FAT16文件系統,實現了數據采集系統中可用U盤進行數據存儲,方便與計算機交互;配合液晶和外擴鍵盤,可以完全拋開PC,實現采集數據的實時顯示和指定存儲區域內數據的查看。
關鍵詞 CH375S USB-Host 數據采集系統 Mass-Storage類 FAT16 文件系統
引言
隨著移動數據存儲領域的日益擴大,在嵌入式系統中實現USB主機功能,以實現利用USB存儲設備進行數據存儲的需求變得日益迫切。U盤作為新型移動存儲設備,以體積小、速度高、抗震動、通用性強的特點倍受青睞,因此,在數據采集系統中開發出嵌入式USB主機控制U盤作為數據存儲器,將具有良好的實用價值和應用前景。
1 USB大容量存儲設備協議分析
基于USB的大容量數據采集系統的設計,主要是要實現嵌入式USBHost。要想設計出能直接讀寫U盤的嵌入式USBHost,就必須理解USB大容量存儲設備協議。目前USB大容量存儲設備軟件結構如圖1所示。
圖1 USB大容量存儲設備軟件結構示意圖
圖1中,虛線左邊部分是主機的驅動程序結構,也是嵌入式USBHost所要實現的。左邊最頂層是FAT文件系統層API ,用于提供給用戶訪問存儲設備的方法。U盤中的數據都是以文件格式存儲的,FAT16因具有高度兼容性而被廣泛應用于移動存儲設備中。這里簡要分析一下FAT16文件系統結構和存儲空間的組織原則。
(1) FAT16文件系統結構
FAT格式的磁盤大致可以分5個部分:MBR區、DBR區、FAT區、FDT區和DATA區。
MBR區: 又稱主引導記錄,其后為64字節的DPT(Disk Partition Table,磁盤分區表)。由于不需要從U盤啟動,且U盤就一個分區,所以U盤上沒有這個數據區。
DBR區: 即操作系統引導記錄區,通常占用分區的第0扇區,共512字節,由跳轉指令、BPB、結束標志幾部分組成。
FAT 區: 存放文件分配表。文件分配表是一一對應于數據區簇號的列表,反映了所有簇的使用情況。每個表項單元的大小決定了FAT的類型,比如FAT16的表項單元為16位。FAT表一般都有一個備份。
FDT區: 存放著文件目錄表,位于備份FAT表之后。FDT由32位的目錄項線性構成,記錄著根目錄下每個文件(子目錄)的起始單元、屬性等。FDT大小為32個扇區,最多可以保存512個目錄項。
DATA區: 是真正意義上的數據存儲的地方,位于FDT之后,占據硬盤上的大部分數據空間。
(2) FAT16的存儲空間組織原則
當磁盤空間格式化為FAT分區時,FAT文件系統就將這個分區當成整塊可分配的區域進行規劃,以便數據的存儲。FAT將磁盤空間以一定數目的扇區為單位進行劃分,這樣的單位稱為簇。通常情況下,每扇區512字節的原則是不變的。簇的大小一般是2n(n為整數)個扇區的大小(每個簇的最大存儲空間為32 KB)。一般采用邏輯塊LBA(Logical Block Addressing)尋址方式。
圖1虛線左邊中間的UFI/ATA驅動層將應用程序的訪問轉換成UFI或ATA命令/數據格式,與外部存儲設備之間按照子規范UFI或ATA的定義進行命令/狀態/數據的交換;最底層則是USB傳輸驅動,負責將上層的UFI/ATA數據發送到USB總線上以及接收從存儲設備返回的狀態/數據。CBI/BulkOnly/ATA/UFI是USB Mass Storage類規范中4個獨立的子類規范的簡稱。前兩個子規范定義了數據/命令/狀態在USB上的傳輸方法。BulkOnly傳輸規范僅使用Bulk端點傳送數據/命令/狀態,CBI傳輸規范則使用Control/Bulk/Interrupt三種類型的端點進行數據/命令/狀態傳送。后兩個子規范則定義了存儲介質的操作命令。ATA命令規范用于硬盤,UFI命令規范是針對USB移動存儲而制定的。
2 嵌入式USB-Host設計
2.1 硬件設計
系統采用增強型8051內核的單片機STC89C516RD+作為中央處理芯片,選用南京沁恒電子公司的CH375S作為USB主機控制芯片。
STC89C516RD+具有64 KB的Flash程序存儲器,1 280字節的RAM(256字節的內部RAM和1 KB的外部RAM),支持在系統/在應用可編程(ISP,IAP);CH375S是一款符合USB1.1協議規范的USB總線的通用接口芯片,支持USBHost主機方式和USBDevice/Slave設備方式。CH375S具有8位數據總線和讀、寫、片選控制線以及中斷輸出,因此CH375S作全速USBHost 主機接口時,外圍元器件只需要晶振和電容,就可以方便地掛接到單片機/DSP/MCU/MPU等控制器的系統總線上。考慮到讀/寫U盤或移動硬盤時一般都是以扇區模式進行的,所以要加磁盤數據緩沖區和文件數據緩沖區(都是512字節的整數倍),并且緩沖區越大,執行的效率越高,所以外擴了32 KB的RAM