色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于CH375S和STC89C516RD單片機實現大容量數據采集系統的設計

電子設計 ? 來源:單片機與嵌入式系統應用 ? 作者:萬天軍,徐愛鈞,李 ? 2021-01-12 10:31 ? 次閱讀

作者:萬天軍,徐愛鈞,李家緒

隨著移動數據存儲領域的日益擴大,在嵌入式系統中實現USB主機功能,以實現利用USB存儲設備進行數據存儲的需求變得日益迫切。U盤作為新型移動存儲設備,以體積小、速度高、抗震動、通用性強的特點倍受青睞,因此,在數據采集系統中開發出嵌入式USB主機控制U盤作為數據存儲器,將具有良好的實用價值和應用前景。

1 USB大容量存儲設備協議分析

基于USB的大容量數據采集系統的設計,主要是要實現嵌入式USBHost。要想設計出能直接讀寫U盤的嵌入式USBHost,就必須理解USB大容量存儲設備協議。目前USB大容量存儲設備軟件結構如圖1所示。

基于CH375S和STC89C516RD單片機實現大容量數據采集系統的設計

圖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-Host電路如圖2所示。

圖2 USBHost電路框圖

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

當WR為高電平并且CS和RD及A0 都為低電平時,CH375S中的數據通過D7~D0輸出;當RD為高電平并且CS和WR及A0 都為低電平時,D7~D0上的數據被寫入CH375S 芯片中;當RD為高電平并且CS和WR都為低電平而A0為高電平時,D7~D0上的數據被作為命令碼寫入CH375S芯片中。

2.2 軟件設計

CH375S不僅是一個通用的USBHost 硬件接口芯片,而且還內置了控制傳輸的協議處理器和處理MassStorage海量存儲設備的專用通信協議固件,支持Bulk Only傳輸協議和SCSI、UFI、RBC 或等效命令集的USB 存儲設備,簡化常用的控制傳輸。參考圖1,單片機程序主要是構建FAT文件系統。

設計文件系統,就是在指定的存儲介質上,選擇一種或幾種數據組織方式,實現常用的幾個文件API函數功能,最終實現數據的按名存取。

從第一個分區數據結構的分區起始扇區數的位置讀取512字節,為DBR,包括一個引導程序和BPB參數塊。BPB參數塊記錄本分區的起始扇區、結束扇區、文件存儲格式、介質描述符、根目錄項數、FAT個數、保留扇區數和分配單元的大小等重要參數。

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

根據以上分析,即可設計如下文件操作:

① 創建文件。在FDT中申請新目錄項。

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

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

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

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

圖3 創建文件并向其中寫入數據流程

用FAT16文件系統存儲文件時最小單元為簇。即使一個很小的文件也會占用一簇,所以,為了節約存儲空間,在圖3中將創建同名文件并向其中寫入數據轉換為向原文件追加數據。

3 大容量數據采集系統設計

利用已設計好的嵌入式USBHost搭建起大容量數據采集系統,系統的框圖如圖4所示。

圖4 系統硬件框圖

溫度傳感器采用DS18B20。它是單總線數字溫度傳感器,測量范圍為-55“+125℃,可編程9~12位A/D轉換精度,測溫分辨率可達0.062 5℃。液晶采用TM320240ECCW,它是320×240點陣液晶,顯示控制芯片是SED1335,既可以以文本模式顯示所測溫度數據,也可以自建平面坐標以曲線模式顯示溫度數據。外擴了4×5鍵盤,用于設定采集的時間間隔、時間長度;系統所允許的高、低溫容限;設定采集時的時間以及輸入自己想查看數據的存儲區域。鍵盤用8279管理,目的是減輕單片機的負擔。因為單片機處理溫度采集及溫度數據在液晶上顯示時已經耗去一些時間,再加上定時和不定時的讀/寫U盤,負荷已經很重了,所以鍵盤掃描與處理交給8279來做。單片機采用查詢方式查詢8279的中斷。

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

結語

基于CH375S實現的USBHost接口,其硬件結構便于在其他開發平臺上擴充,其核心的文件層協議棧采用標準的C語言編寫,具有良好的移植性。類似的基于USB的大容量數據采集方案已用于輕軌鐵路、無紙記錄儀的數據存儲系統中。隨著USB OTG時代的到來,基于USB的大容量數據采集將會有非常廣闊的應用前景。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6039

    文章

    44575

    瀏覽量

    636386
  • usb
    usb
    +關注

    關注

    60

    文章

    7959

    瀏覽量

    265048
  • 數據采集
    +關注

    關注

    39

    文章

    6157

    瀏覽量

    113760
收藏 人收藏

    評論

    相關推薦

    STC90C516RD+單片機資料

    `大家好:最近在網上買了個STC90C516RD+單片機 把帶的資料貢獻給大家哈。共同學習進步 歡迎加好友!上圖 上資料 `
    發表于 07-28 13:58

    SST89E516RD仿真單片機的一個重要問題

    STC89C52一類的單片機的話可以正常下載并運行程序,但是換到SST89E516RD仿真單片機就不行了,EA管腳必須接高電平。僅供參考,謝謝批評指正。
    發表于 01-24 09:22

    基于STC89C52RC單片機與MATLAB的PM2.5數據采集系統設計

    摘要:本文設計了基于STC89C52RC單片機與MATLAB的PM2.5數據采集系統。通過STC89C52RC
    發表于 07-20 06:12

    STC89C516RD+,STC89LE516RD中文資料

    第1 章 STC 單片機宣傳資料........................................................... 2 1.1 STC89 系列單片機
    發表于 10-24 16:38 ?1785次下載

    STC89C51 RC RD系列單片機中文指南

    目錄..... 2STC89 系列單片機選型指南 3STC89C51RC / RD+ 系列單片機 管腳圖 編譯器及仿真器. 6
    發表于 07-04 17:12 ?514次下載

    基于GSM控制的LED顯示控制系統設計

    討論了以 STC89C516RD +單片機為核心的無線LED 顯示控制系統的設計方案,闡述了STC89C516RD+單片機的端口分布、字庫電
    發表于 08-03 10:33 ?84次下載
    基于GSM控制的LED顯示控制<b class='flag-5'>系統</b>設計

    STC89C51RC和STC89C54RD+系列單片機中文指南免費下載

    本文檔的主要內容詳細介紹的是STC89C51RC和STC89C54RD+系列單片機中文指南免費下載。
    發表于 01-07 08:00 ?111次下載
    <b class='flag-5'>STC89C</b>51RC和<b class='flag-5'>STC89C54RD</b>+系列<b class='flag-5'>單片機</b>中文指南免費下載

    STC89C51系列單片機的中文指南資料免費下載

    本文檔的主要內容詳細介紹的是STC89C51系列單片機的中文指南資料免費下載包括了:STC89C51RC, STC89LE51RC,STC89C
    發表于 05-28 08:00 ?210次下載
    <b class='flag-5'>STC89C</b>51系列<b class='flag-5'>單片機</b>的中文指南資料免費下載

    采用單片機stc89c516rd+和ch375s芯片實現嵌入式usb-host設計

    基于usb的大容量數據采集系統的設計,主要是要實現嵌入式usb-host。要想設計出能直接讀寫u盤的嵌入式usb-host,就必須理解usb大容量
    發表于 05-19 09:54 ?4651次閱讀
    采用<b class='flag-5'>單片機</b><b class='flag-5'>stc89c516rd</b>+和<b class='flag-5'>ch375s</b>芯片<b class='flag-5'>實現</b>嵌入式usb-host設計

    探究USB-Host的大容量數據采集系統的設計

    CH375S,USB-Host,數據采集系統,Mass-Storage類,FAT16文件系統
    的頭像 發表于 04-07 17:58 ?2125次閱讀
    探究USB-Host的大<b class='flag-5'>容量</b><b class='flag-5'>數據采集</b><b class='flag-5'>系統</b>的設計

    STC89C51RC/RD系列單片機用戶手冊

    STC89C51RC/RD系列單片機用戶手冊免費下載。
    發表于 04-15 11:13 ?60次下載

    單片機STC89C51RC/RD+器件手冊下載

    單片機STC89C51RC/RD+器件手冊下載
    發表于 07-21 09:44 ?16次下載

    基于單片機STC89C516的電子密碼鎖設計

    基于單片機STC89C516的電子密碼鎖設計
    發表于 08-23 15:52 ?43次下載

    STC89C51RC/RD單片機英文資料

    電子發燒友網站提供《STC89C51RC/RD單片機英文資料.pdf》資料免費下載
    發表于 10-25 15:27 ?4次下載
    <b class='flag-5'>STC89C</b>51RC/<b class='flag-5'>RD</b><b class='flag-5'>單片機</b>英文資料

    STC89C51RC/RD+系列單片機用戶手冊

    電子發燒友網站提供《STC89C51RC/RD+系列單片機用戶手冊.pdf》資料免費下載
    發表于 10-25 17:24 ?12次下載
    <b class='flag-5'>STC89C</b>51RC/<b class='flag-5'>RD</b>+系列<b class='flag-5'>單片機</b>用戶手冊
    主站蜘蛛池模板: 亚洲免费国产| 无码丰满人妻熟妇区| 青青伊人影院| 《乳色吐息》无删减版在线观看 | qvod电影在线观看| 两个奶头被吃得又翘又痛| 印度性hd18| 久久深夜视频| 56prom在线精品国产| 久青草国产在线视频| 2019精品国产品在线不卡| 麻豆精选2021| 99RE6国产精品视频播放| 男人J桶女人P视频无遮挡网站| 3d无遮挡h肉动漫在线播放| 美女在线永久免费网站| ASIAN大陆明星裸休合成PICS| 欧美日韩久久久精品A片 | 56prom在线精品国产| 秘密教学26我们在做一次吧免费 | 真人美女精美小穴| 免费国产在线观看| xnxx高中生| 臀精插宫NP文| 国产亚洲欧洲日韩在线观看 | 国产电影无码午夜在线播放| 午夜亚洲精品不卡在线| 黑人玩弄极品人妻系列| 永久久久免费人妻精品| 欧美 亚洲 有码中文字幕| 刺激一区仑乱| 亚洲精品高清在线| 兰桂坊人成社区亚洲精品 | chinese耄耋70老太性| 日韩人妻无码精品-专区| 国产精品亚洲欧美| 影音先锋影院中文无码| 青青娱乐网| 吉吉av电影| 波多结衣一区二区三区| 亚洲AV午夜福利精品香蕉麻豆|