0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

探究USB-Host的大容量數(shù)據(jù)采集系統(tǒng)的設(shè)計

電子工程師 ? 來源:《單片機(jī)與嵌入式系統(tǒng)應(yīng) ? 作者:萬天軍 , 徐愛鈞 ? 2021-04-07 17:58 ? 次閱讀

引言

隨著移動數(shù)據(jù)存儲領(lǐng)域的日益擴(kuò)大,在嵌入式系統(tǒng)中實現(xiàn)USB主機(jī)功能,以實現(xiàn)利用USB存儲設(shè)備進(jìn)行數(shù)據(jù)存儲的需求變得日益迫切。U盤作為新型移動存儲設(shè)備,以體積小、速度高、抗震動、通用性強(qiáng)的特點倍受青睞,因此,在數(shù)據(jù)采集系統(tǒng)中開發(fā)出嵌入式USB主機(jī)控制U盤作為數(shù)據(jù)存儲器,將具有良好的實用價值和應(yīng)用前景。

1 USB大容量存儲設(shè)備協(xié)議分析

基于USB的大容量數(shù)據(jù)采集系統(tǒng)的設(shè)計,主要是要實現(xiàn)嵌入式USB-Host。要想設(shè)計出能直接讀寫U盤的嵌入式USB-Host,就必須理解USB大容量存儲設(shè)備協(xié)議。目前USB大容量存儲設(shè)備軟件結(jié)構(gòu)如圖1所示。

pIYBAGBtgXqAFw6aAAC_IZ99b30846.png

圖1中,虛線左邊部分是主機(jī)的驅(qū)動程序結(jié)構(gòu),也是嵌入式USB-Host所要實現(xiàn)的。左邊最頂層是FAT文件系統(tǒng)層API,用于提供給用戶訪問存儲設(shè)備的方法。

U盤中的數(shù)據(jù)都是以文件格式存儲的,F(xiàn)AT16因具有高度兼容性而被廣泛應(yīng)用于移動存儲設(shè)備中。這里簡要分析一下FAT16文件系統(tǒng)結(jié)構(gòu)和存儲空間的組織原則。

(1)FAT16文件系統(tǒng)結(jié)構(gòu)

FAT格式的磁盤大致可以分5個部分:MBR區(qū)、DBR區(qū)、FAT區(qū)、FDT區(qū)和DATA區(qū)。

MBR區(qū):又稱主引導(dǎo)記錄,其后為64字節(jié)的DPT(Disk Partition Table,磁盤分區(qū)表)。由于不需要從U盤啟動,且U盤就一個分區(qū),所以U盤上沒有這個數(shù)據(jù)區(qū)。

DBR區(qū):即操作系統(tǒng)引導(dǎo)記錄區(qū),通常占用分區(qū)的第O扇區(qū),共512字節(jié),由跳轉(zhuǎn)指令、BPB、結(jié)束標(biāo)志幾部分組成。

FAT區(qū):存放文件分配表。文件分配表是一一對應(yīng)于數(shù)據(jù)區(qū)簇號的列表,反映了所有簇的使用情況。每個表項單元的大小決定了FAT的類型,比如FAT16的表項單元為16位。FAT表一般都有一個備份。

FDT區(qū):存放著文件目錄表,位于備份FAT表之后。FDT由32位的目錄項線性構(gòu)成,記錄著根目錄下每個文件(子目錄)的起始單元、屬性等。FDT大小為32個扇區(qū),最多可以保存512個目錄項。

DATA區(qū):是真正意義上的數(shù)據(jù)存儲的地方,位于FDT之后,占據(jù)硬盤上的大部分?jǐn)?shù)據(jù)空間。

(2)FAT16的存儲空間組織原則

當(dāng)磁盤空間格式化為FAT分區(qū)時,F(xiàn)AT文件系統(tǒng)就將這個分區(qū)當(dāng)成整塊可分配的區(qū)域進(jìn)行規(guī)劃,以便數(shù)據(jù)的存儲。FAT將磁盤空間以一定數(shù)目的扇區(qū)為單位進(jìn)行劃分,這樣的單位稱為簇。通常情況下,每扇區(qū)512字節(jié)的原則是不變的。簇的大小一般是2n(n為整數(shù))個扇區(qū)的大小(每個簇的最大存儲空間為32 KB)。一般采用邏輯塊LBA(Logical Block Addressing)尋址方式。

圖1虛線左邊中間的UFI/ATA驅(qū)動層將應(yīng)用程序的訪問轉(zhuǎn)換成UFI或ATA命令/數(shù)據(jù)格式,與外部存儲設(shè)備之間按照子規(guī)范UFI或ATA的定義進(jìn)行命令/狀態(tài)/數(shù)據(jù)的交換;最底層則是USB傳輸驅(qū)動,負(fù)責(zé)將上層的UFI/ATA數(shù)據(jù)發(fā)送到USB總線上以及接收從存儲設(shè)備返回的狀態(tài)/數(shù)據(jù)。CBI/Bulk-Only/ATA/UFI是USB Mass Storage類規(guī)范中4個獨立的子類規(guī)范的簡稱。前兩個子規(guī)范定義了數(shù)據(jù)/命令/狀態(tài)在USB上的傳輸方法。Bulk-Only傳輸規(guī)范僅使用Bulk端點傳送數(shù)據(jù)/命令/狀態(tài),CBI傳輸規(guī)范則使用Control/Bulk/Interrupt三種類型的端點進(jìn)行數(shù)據(jù)/命令/狀態(tài)傳送。后兩個子規(guī)范則定義了存儲介質(zhì)的操作命令。ATA命令規(guī)范用于硬盤,UFI命令規(guī)范是針對USB移動存儲而制定的。

2 嵌入式USB-HOST設(shè)計

2.1 硬件設(shè)計

系統(tǒng)采用增強(qiáng)型8051內(nèi)核的單片機(jī)STC89C516RD+作為中央處理芯片,選用南京沁恒電子公司的CH375S作為USB主機(jī)控制芯片。

STC89C516RD+具有64 KB的Flash程序存儲器,1280字節(jié)的RAM(256字節(jié)的內(nèi)部RAM和1KB的外部RAM),支持在系統(tǒng)/在應(yīng)用可編程(ISP,IAP);CH375S是一款符合USB1.1協(xié)議規(guī)范的USB總線的通用接口芯片,支持USB-Host主機(jī)方式和USB-Device/Slave設(shè)備方式。CH375S具有8位數(shù)據(jù)總線和讀、寫、片選控制線以及中斷輸出,因此CH375S作全速USB-Host主機(jī)接口時,外圍元器件只需要晶振和電容,就可以方便地掛接到單片機(jī)/DSPMCU/MPU等控制器的系統(tǒng)總線上。

考慮到讀/寫U盤或移動硬盤時一般都是以扇區(qū)模式進(jìn)行的,所以要加磁盤數(shù)據(jù)緩沖區(qū)和文件數(shù)據(jù)緩沖區(qū)(都是512字節(jié)的整數(shù)倍),并且緩沖區(qū)越大,執(zhí)行的效率越高,所以外擴(kuò)了32 KB的RAM。

USB-Host電路如圖2所示。

pIYBAGBtgY2ADfRjAACNZ9WdmP8953.png

根據(jù)以上分析,即可設(shè)計如下文件操作:

①創(chuàng)建文件。在FDT中申請新目錄項。

②寫文件。當(dāng)寫一新文件時,需在FAT表中查找未使用的簇,并將該簇號寫入文件對應(yīng)目錄數(shù)據(jù)結(jié)構(gòu)中的起始簇號位置。當(dāng)此文件長度大于一簇時,還需在FAT表中對應(yīng)的起始簇號位置填入下一可用簇的簇號,直到文件的最后一簇(FAT表中的相應(yīng)位置填FFFF)。若磁盤有備份FAT,則須在備份FAT表的相應(yīng)位置填入正確的內(nèi)容。

③刪除文件。除了將FDT中對應(yīng)的目錄項置相應(yīng)標(biāo)志外,還要修改FAT表及備份FAT表。將此文件使用的簇號位置清0,表示此簇當(dāng)前未被使用。

由于在FAT16中子目錄被視為特殊的文件,對其操作類似于文件操作,所以不再贅述。

構(gòu)建的FAT16文件系統(tǒng)對用戶提供文件級API函數(shù),如CH375_Creat_File()、CH375_write_File()、CH375_Delete_File()等,當(dāng)執(zhí)行文件級API函數(shù)時,將調(diào)用Seck_Empty_Cluster()尋找一個空簇、Link_Cluster_List()建立簇鏈、Seck_Sector()定位文件指針等中間函數(shù)。這些中間函數(shù)在調(diào)用CH375S專用于海量存儲設(shè)備類對應(yīng)的命令,如SET_USB_MODE、DISK_READ、DISK_WRITE等。下面以創(chuàng)建ADC.TXT,并向其中寫入A/D采樣數(shù)據(jù)為例,其工作流程如圖3所示。

用FAT16文件系統(tǒng)存儲文件時最小單元為簇。即使一個很小的文件也會占用一簇,所以,為了節(jié)約存儲空間,在圖3中將創(chuàng)建同名文件并向其中寫入數(shù)據(jù)轉(zhuǎn)換為向原文件追加數(shù)據(jù)。

pIYBAGBtgZyAatJgAAD-oL7nzvw216.png

3 大容量數(shù)據(jù)采集系統(tǒng)設(shè)計

利用已設(shè)計好的嵌入式USB-Host搭建起大容量數(shù)據(jù)采集系統(tǒng),系統(tǒng)的框圖如圖4所示。

pIYBAGBtgamAFUXOAAB5A5U6qAs104.png

溫度傳感器采用DS18B20。它是單總線數(shù)字溫度傳感器,測量范圍為-55~+125℃,可編程9~12位A/D轉(zhuǎn)換精度,測溫分辨率可達(dá)O.0625℃。液晶采用TM320240ECCW,它是320×240點陣液晶,顯示控制芯片是SED1335,既可以以文本模式顯示所測溫度數(shù)據(jù),也可以自建平面坐標(biāo)以曲線模式顯示溫度數(shù)據(jù)。外擴(kuò)了4×5鍵盤,用于設(shè)定采集的時間間隔、時間長度;系統(tǒng)所允許的高、低溫容限;設(shè)定采集時的時間以及輸入自己想查看數(shù)據(jù)的存儲區(qū)域。

鍵盤用8279管理,目的是減輕單片機(jī)的負(fù)擔(dān)。因為單片機(jī)處理溫度采集及溫度數(shù)據(jù)在液晶上顯示時已經(jīng)耗去一些時間,再加上定時和不定時的讀/寫U盤,負(fù)荷已經(jīng)很重了,所以鍵盤掃描與處理交給8279來做。單片機(jī)采用查詢方式查詢8279的中斷。

驅(qū)動程序包括液晶驅(qū)動、DS18820驅(qū)動和8279驅(qū)動。其中主要的工作是液晶驅(qū)動程序的編寫。液晶驅(qū)動包括初始化液晶、讀寫參數(shù)子程序、寫命令子程序、建坐標(biāo)子程序、繪點子程序、漢字寫入子程序等。液晶在系統(tǒng)初始化和對U盤初始化與枚舉時顯示提示信息,在采集過程中,以曲線模式顯示溫度數(shù)據(jù)。

結(jié)語

基于CH375S實現(xiàn)的USB-Host接口,其硬件結(jié)構(gòu)便于在其他開發(fā)平臺上擴(kuò)充,其核心的文件層協(xié)議棧采用標(biāo)準(zhǔn)的C語言編寫,具有良好的移植性。類似的基于USB的大容量數(shù)據(jù)采集方案已用于輕軌鐵路、無紙記錄儀的數(shù)據(jù)存儲系統(tǒng)中。隨著USB OTG時代的到來,基于USB的大容量數(shù)據(jù)采集將會有非常廣闊的應(yīng)用前景。

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6026

    文章

    44455

    瀏覽量

    630922
  • 驅(qū)動
    +關(guān)注

    關(guān)注

    12

    文章

    1812

    瀏覽量

    85048
  • 移動硬盤
    +關(guān)注

    關(guān)注

    2

    文章

    175

    瀏覽量

    44223
收藏 人收藏

    評論

    相關(guān)推薦

    多通道數(shù)據(jù)采集系統(tǒng)的設(shè)計的意義

    多通道數(shù)據(jù)采集系統(tǒng)(Multi-channel Data Acquisition System, 簡稱MDAS)是一種能夠同時采集、處理和存儲多個信號源數(shù)據(jù)的電子設(shè)備。這種
    的頭像 發(fā)表于 07-02 09:00 ?507次閱讀

    多通道數(shù)據(jù)采集串?dāng)_問題怎么解決

    多通道數(shù)據(jù)采集系統(tǒng)在現(xiàn)代工業(yè)、科研和醫(yī)療等領(lǐng)域中有著廣泛的應(yīng)用。然而,在多通道數(shù)據(jù)采集過程中,串?dāng)_問題是一個常見的問題,它會導(dǎo)致數(shù)據(jù)采集的準(zhǔn)確性和可靠性降低。本文將詳細(xì)探討多通道
    的頭像 發(fā)表于 07-02 08:58 ?736次閱讀

    多通道數(shù)據(jù)采集系統(tǒng)的轉(zhuǎn)換誤差怎么算

    多通道數(shù)據(jù)采集系統(tǒng)是一種廣泛應(yīng)用于工業(yè)、科研、醫(yī)療等領(lǐng)域的高精度數(shù)據(jù)采集設(shè)備。它通過多個通道同時采集信號,并對信號進(jìn)行處理、轉(zhuǎn)換和存儲,以實現(xiàn)對信號的實時監(jiān)測和分析。在多通道
    的頭像 發(fā)表于 07-01 16:36 ?512次閱讀

    多通道數(shù)據(jù)采集系統(tǒng)的優(yōu)缺點

    多通道數(shù)據(jù)采集系統(tǒng)是一種廣泛應(yīng)用于工業(yè)、科研、醫(yī)療等領(lǐng)域的技術(shù),它能夠同時采集多個通道的信號,實現(xiàn)對多種物理量的實時監(jiān)測和分析。本文將詳細(xì)介紹多通道數(shù)據(jù)采集
    的頭像 發(fā)表于 07-01 15:58 ?930次閱讀

    數(shù)據(jù)采集系統(tǒng)分為幾類

    數(shù)據(jù)采集系統(tǒng)是大數(shù)據(jù)生態(tài)系統(tǒng)中的重要組成部分,它負(fù)責(zé)從各種數(shù)據(jù)源收集、整合和存儲數(shù)據(jù)。根據(jù)不同
    的頭像 發(fā)表于 07-01 15:44 ?1179次閱讀

    DAS數(shù)據(jù)采集系統(tǒng)的作用是什么

    DAS(Data Acquisition System,數(shù)據(jù)采集系統(tǒng))是一種用于收集、存儲和處理各種類型數(shù)據(jù)系統(tǒng)。它在許多領(lǐng)域都有廣泛的應(yīng)用,如工業(yè)自動化、科學(xué)研究、環(huán)境監(jiān)測、醫(yī)療健
    的頭像 發(fā)表于 07-01 15:41 ?813次閱讀

    物聯(lián)網(wǎng)工業(yè)數(shù)據(jù)采集系統(tǒng)是什么?

    物聯(lián)網(wǎng)工業(yè)數(shù)據(jù)采集系統(tǒng)通過物聯(lián)網(wǎng)技術(shù)將各種設(shè)備和傳感器連接起來,實現(xiàn)數(shù)據(jù)的實時采集、傳輸和分析,為工業(yè)生產(chǎn)提供智能化、自動化的解決方案。 ? 物聯(lián)網(wǎng)工業(yè)
    的頭像 發(fā)表于 05-20 15:16 ?523次閱讀

    GPIB轉(zhuǎn)USB采集卡在儀器控制和數(shù)據(jù)采集中的應(yīng)用

    USB采集卡的應(yīng)用案例,展示了它在儀器控制和數(shù)據(jù)采集領(lǐng)域的重要性和價值。 實驗室儀器控制和數(shù)據(jù)采集: GPIB轉(zhuǎn)USB
    的頭像 發(fā)表于 04-12 09:36 ?606次閱讀

    如何才能實現(xiàn)對兩路USB3014芯片的數(shù)據(jù)采集

    在對兩個USB數(shù)據(jù)采集電路板進(jìn)行數(shù)據(jù)采集,使用一臺帶win7-64位系統(tǒng)的電腦無法同時對兩個設(shè)備進(jìn)行數(shù)據(jù)采集,當(dāng)名為VNIR這個
    發(fā)表于 02-28 07:41

    什么是USB HOST、USB Slave和USB OTG?它們之間有什么區(qū)別?

    什么是USB HOSTUSB Slave和USB OTG?它們之間有什么區(qū)別? USB(通用串行總線)是一種用于連接設(shè)備的通信接口標(biāo)準(zhǔn),它
    的頭像 發(fā)表于 02-02 15:32 ?1.1w次閱讀

    PLC遠(yuǎn)程監(jiān)控與數(shù)據(jù)采集系統(tǒng)的原理及組成

    PLC遠(yuǎn)程監(jiān)控與數(shù)據(jù)采集系統(tǒng)的原理及組成 PLC遠(yuǎn)程監(jiān)控與數(shù)據(jù)采集系統(tǒng)是一種可以遠(yuǎn)程監(jiān)控和采集設(shè)備運(yùn)行數(shù)
    的頭像 發(fā)表于 01-22 16:46 ?1329次閱讀
    PLC遠(yuǎn)程監(jiān)控與<b class='flag-5'>數(shù)據(jù)采集</b><b class='flag-5'>系統(tǒng)</b>的原理及組成

    數(shù)據(jù)采集卡怎么用 數(shù)據(jù)采集卡怎么讀取數(shù)據(jù)

    將物理量(如溫度、壓力、光強(qiáng)等)轉(zhuǎn)換為數(shù)字信號,供電腦進(jìn)行處理和分析。 以下是使用和讀取數(shù)據(jù)采集卡的詳細(xì)步驟: 1. 硬件連接: 首先,確保數(shù)據(jù)采集卡與電腦通過適當(dāng)?shù)慕涌谶B接,如USB、PCI等。根據(jù)
    的頭像 發(fā)表于 12-15 09:50 ?1551次閱讀

    數(shù)據(jù)采集網(wǎng)關(guān):工業(yè)數(shù)據(jù)采集上云

    數(shù)據(jù)采集網(wǎng)關(guān),以其高效、便捷的特點,成為了現(xiàn)代工業(yè)物聯(lián)網(wǎng)數(shù)據(jù)采集處理的重要工具。它是連接不同數(shù)據(jù)源和數(shù)據(jù)接收設(shè)備的橋梁,將各種形式和格式的數(shù)據(jù)
    的頭像 發(fā)表于 12-12 16:46 ?696次閱讀
    <b class='flag-5'>數(shù)據(jù)采集</b>網(wǎng)關(guān):工業(yè)<b class='flag-5'>數(shù)據(jù)采集</b>上云

    專注數(shù)據(jù)采集分析系統(tǒng)研發(fā) 做設(shè)備與MES系統(tǒng)中轉(zhuǎn)站

    數(shù)據(jù)采集是實現(xiàn)MES系統(tǒng)與設(shè)備對接的核心環(huán)節(jié)。通過采集設(shè)備產(chǎn)生的實時數(shù)據(jù),將其傳輸給MES系統(tǒng)進(jìn)行處理和分析。
    發(fā)表于 12-01 17:09

    阿爾泰數(shù)據(jù)采集數(shù)據(jù)采集——穩(wěn)定可靠

    USB數(shù)據(jù)采集卡 簡介 USB數(shù)據(jù)采集卡體積小巧,流行外觀設(shè)計,外型小巧美觀,攜帶方便,能夠即插即用,支持熱插拔,帶有先進(jìn)的USB2.0高速
    的頭像 發(fā)表于 11-23 14:35 ?770次閱讀
    阿爾泰<b class='flag-5'>數(shù)據(jù)采集</b>卡 <b class='flag-5'>數(shù)據(jù)采集</b>——穩(wěn)定可靠