日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件

利用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ù)的查看。

引言

隨著移動(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)用前景。

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

基于USB的大容量數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì),主要是要實(shí)現(xiàn)嵌入式USBHost。要想設(shè)計(jì)出能直接讀寫(xiě)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ù)總線和讀、寫(xiě)、片選控制線以及中斷輸出,因此CH375S作全速USBHost 主機(jī)接口時(shí),外圍元器件只需要晶振和電容,就可以方便地掛接到單片機(jī)/DSP/MCU/MPU等控制器的系統(tǒng)總線上??紤]到讀/寫(xiě)U盤或移動(dòng)硬盤時(shí)一般都是以扇區(qū)模式進(jìn)行的,所以要加磁盤數(shù)據(jù)緩沖區(qū)和文件數(shù)據(jù)緩沖區(qū)(都是512字節(jié)的整數(shù)倍),并且緩沖區(qū)越大,執(zhí)行的效率越高,所以外擴(kuò)了32 KB的RAM。

USB-Host電路如圖2所示。

在圖2中,CH375S芯片的RD和WR可以分別連接到單片機(jī)的讀選通輸出引腳和寫(xiě)選通輸出引腳。CS可以直接由單片機(jī)I/O腳驅(qū)動(dòng)。INT輸出的中斷請(qǐng)求是低電平有效,可以連接到單片機(jī)的中斷輸入引腳或者普通I/O 引腳;單片機(jī)可以使用中斷方式或者查詢方式獲知中斷請(qǐng)求。這里用中斷方式,使用單片機(jī)的INTO。

當(dāng)WR為高電平并且CS和RD及A0 都為低電平時(shí),CH375S中的數(shù)據(jù)通過(guò)D7~D0輸出;當(dāng)RD為高電平并且CS和WR及A0 都為低電平時(shí),D7~D0上的數(shù)據(jù)被寫(xiě)入CH375S 芯片中;當(dāng)RD為高電平并且CS和WR都為低電平而A0為高電平時(shí),D7~D0上的數(shù)據(jù)被作為命令碼寫(xiě)入CH375S芯片中。

2.2 軟件設(shè)計(jì)

CH375S不僅是一個(gè)通用的USBHost 硬件接口芯片,而且還內(nèi)置了控制傳輸?shù)膮f(xié)議處理器和處理MassStorage海量存儲(chǔ)設(shè)備的專用通信協(xié)議固件,支持Bulk?Only傳輸協(xié)議和SCSI、UFI、RBC 或等效命令集的USB 存儲(chǔ)設(shè)備,簡(jiǎn)化常用的控制傳輸。參考圖1,單片機(jī)程序主要是構(gòu)建FAT文件系統(tǒng)。

設(shè)計(jì)文件系統(tǒng),就是在指定的存儲(chǔ)介質(zhì)上,選擇一種或幾種數(shù)據(jù)組織方式,實(shí)現(xiàn)常用的幾個(gè)文件API函數(shù)功能,最終實(shí)現(xiàn)數(shù)據(jù)的按名存取。

從第一個(gè)分區(qū)數(shù)據(jù)結(jié)構(gòu)的分區(qū)起始扇區(qū)數(shù)的位置讀取512字節(jié),為DBR,包括一個(gè)引導(dǎo)程序和BPB參數(shù)塊。BPB參數(shù)塊記錄本分區(qū)的起始扇區(qū)、結(jié)束扇區(qū)、文件存儲(chǔ)格式、介質(zhì)描述符、根目錄項(xiàng)數(shù)、FAT個(gè)數(shù)、保留扇區(qū)數(shù)和分配單元的大小等重要參數(shù)。

根據(jù)保留扇區(qū)的數(shù)目可知FAT表的位置(分區(qū)起始扇區(qū)數(shù)+保留扇區(qū)數(shù))。根據(jù)FAT的個(gè)數(shù)以及每個(gè)FAT表占用的扇區(qū)數(shù),即可算出FDT的位置(FAT表位置+FAT表個(gè)數(shù)×FAT表所占扇區(qū)數(shù))。FDT中保存著目錄項(xiàng),目錄項(xiàng)中的文件首簇號(hào)就是讀/寫(xiě)文件的入口。

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

① 創(chuàng)建文件。在FDT中申請(qǐng)新目錄項(xiàng)。
②寫(xiě)文件。當(dāng)寫(xiě)一新文件時(shí),需在FAT表中查找未使用的簇,并將該簇號(hào)寫(xiě)入文件對(duì)應(yīng)目錄數(shù)據(jù)結(jié)構(gòu)中的起始簇號(hào)位置。當(dāng)此文件長(zhǎng)度大于一簇時(shí),還需在FAT表中對(duì)應(yīng)的起始簇號(hào)位置填入下一可用簇的簇號(hào),直到文件的最后一簇(FAT表中的相應(yīng)位置填FFFF)。若磁盤有備份FAT,則須在備份FAT表的相應(yīng)位置填入正確的內(nèi)容。
③刪除文件。除了將FDT中對(duì)應(yīng)的目錄項(xiàng)置相應(yīng)標(biāo)志外,還要修改FAT表及備份FAT表。將此文件使用的簇號(hào)位置清 0,表示此簇當(dāng)前未被使用。


圖2 USBHost電路框圖

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

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



圖3 創(chuàng)建文件并向其中寫(xiě)入數(shù)據(jù)流程

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

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

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


圖4 系統(tǒng)硬件框圖

溫度傳感器采用DS18B20。它是單總線數(shù)字溫度傳感器,測(cè)量范圍為-55~+125℃,可編程9~12位A/D轉(zhuǎn)換精度,測(cè)溫分辨率可達(dá)0.062 5℃。液晶采用TM320240ECCW,它是320×240點(diǎn)陣液晶,顯示控制芯片是SED1335,既可以以文本模式顯示所測(cè)溫度數(shù)據(jù),也可以自建平面坐標(biāo)以曲線模式顯示溫度數(shù)據(jù)。外擴(kuò)了4×5鍵盤,用于設(shè)定采集的時(shí)間間隔、時(shí)間長(zhǎng)度;系統(tǒng)所允許的高、低溫容限;設(shè)定采集時(shí)的時(shí)間以及輸入自己想查看數(shù)據(jù)的存儲(chǔ)區(qū)域。鍵盤用8279管理,目的是減輕單片機(jī)的負(fù)擔(dān)。因?yàn)閱纹瑱C(jī)處理溫度采集及溫度數(shù)據(jù)在液晶上顯示時(shí)已經(jīng)耗去一些時(shí)間,再加上定時(shí)和不定時(shí)的讀/寫(xiě)U盤,負(fù)荷已經(jīng)很重了,所以鍵盤掃描與處理交給8279來(lái)做。單片機(jī)采用查詢方式查詢8279的中斷。

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

結(jié)語(yǔ)

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

2025年8月13日 – 提供超豐富半導(dǎo)體和電子元器件?的業(yè)界知名新品引入 (NPI) 代理商貿(mào)澤電子 (Mouser Electronics) 即日起開(kāi)售Asahi Kasei Microdevices (AKM) 的...

關(guān)鍵字: 數(shù)模轉(zhuǎn)換器 USB 無(wú)線揚(yáng)聲器

物聯(lián)網(wǎng)與智能化設(shè)備快速普及,供電方式的選擇直接影響設(shè)備部署的靈活性、成本與可靠性。PoE(以太網(wǎng)供電)與USB供電作為兩大主流技術(shù),分別在工業(yè)網(wǎng)絡(luò)、智能家居、消費(fèi)電子等領(lǐng)域占據(jù)關(guān)鍵地位。本文將從設(shè)備適配性、傳輸距離、功率...

關(guān)鍵字: PoE USB

在人工智能的發(fā)展歷程中,我們往往認(rèn)為更多的訓(xùn)練、更復(fù)雜的數(shù)據(jù)能讓 AI 變得更加智能。然而,近期一些研究卻揭示了令人意外的現(xiàn)象:對(duì)小型 AI 語(yǔ)言模型進(jìn)行數(shù)學(xué)訓(xùn)練時(shí),過(guò)度訓(xùn)練可能會(huì)導(dǎo)致其表現(xiàn)急劇下降,甚至出現(xiàn) “變笨”...

關(guān)鍵字: 人工智能 數(shù)據(jù) 模型

在無(wú)線技術(shù)的發(fā)展歷程中,部署的簡(jiǎn)便性往往是成功的關(guān)鍵。像Wi-Fi、藍(lán)牙和早期的蜂窩技術(shù),只有在集成變得簡(jiǎn)單、無(wú)縫且實(shí)惠時(shí),才能實(shí)現(xiàn)大規(guī)模的應(yīng)用。而如今,Wi-Fi HaLow——一種專為物聯(lián)網(wǎng)(IoT)設(shè)計(jì)的遠(yuǎn)距離、低...

關(guān)鍵字: 物聯(lián)網(wǎng) Wi-Fi USB

2025年8月5日 – 專注于引入新品的全球電子元器件和工業(yè)自動(dòng)化產(chǎn)品授權(quán)代理商貿(mào)澤電子 (Mouser Electronics)即日起開(kāi)售Microchip Technology的新款A(yù)VR? SD 8位MCU。AVR...

關(guān)鍵字: MCU 工業(yè)自動(dòng)化 USB

隨著高解析度音頻應(yīng)用的不斷發(fā)展和廣泛部署,諸如USB與I2S之間等不同專業(yè)接口之間的高品質(zhì)音頻轉(zhuǎn)換需求日益增長(zhǎng),由此帶來(lái)了實(shí)現(xiàn)高性能、高實(shí)時(shí)性與高靈活性的新挑戰(zhàn)。為此,邊緣AI和智能音頻專家XMOS攜手其全球首家增值分銷...

關(guān)鍵字: SoC USB 處理器

【2025年7月24日, 德國(guó)慕尼黑訊】全球功率系統(tǒng)和物聯(lián)網(wǎng)領(lǐng)域的半導(dǎo)體領(lǐng)導(dǎo)者英飛凌科技股份公司(FSE代碼:IFX / OTCQX代碼:IFNNY)近日推出新型英飛凌ID Key系列,進(jìn)一步擴(kuò)展其通用串行總線(USB)...

關(guān)鍵字: 控制器 USB 非易失性存儲(chǔ)器

其他電腦(比如安卓手機(jī)/平板電腦)的屏幕壞了,你可能想在安排維修之前緊急訪問(wèn)一些東西。你可以使用android的USB OTG功能(是的,幾乎每個(gè)android都支持這個(gè)功能,你可以將鼠標(biāo)和鍵盤連接到它)。

關(guān)鍵字: USB 鼠標(biāo) Android 樹(shù)莓派

M5Stack Cardputer非常適合作為硬件密碼管理器。它很小巧,有一個(gè)內(nèi)置鍵盤,一個(gè)SD卡插槽,運(yùn)行在帶有本地USB支持的ESP32-S3上。屏幕使其易于使用,并且由于USB HID,它可以直接在登錄字段中鍵入密...

關(guān)鍵字: 密碼管理器 M5Stack Cardputer USB

【2025年7月10日, 德國(guó)慕尼黑訊】全球功率系統(tǒng)和物聯(lián)網(wǎng)領(lǐng)域的半導(dǎo)體領(lǐng)導(dǎo)者英飛凌科技股份公司(FSE代碼:IFX / OTCQX代碼:IFNNY)為CIS的新款USB 5 Gbit/s和10 Gbit/s攝像頭提供E...

關(guān)鍵字: 控制器 USB 圖像信號(hào)處理器
關(guān)閉