• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      CH378與ARM處理器的大容量數(shù)據(jù)記錄儀設(shè)計

      2018-08-08 07:31:40,
      關(guān)鍵詞:記錄儀U盤扇區(qū)

      ,

      (1.湖北四機賽瓦石油鉆采設(shè)備有限公司, 荊州 434023;2.長江大學(xué)電信學(xué)院)

      引 言

      工業(yè)現(xiàn)場的各種實時數(shù)據(jù)的采集和保存一直是應(yīng)用工程師關(guān)心的問題,尤其是在數(shù)據(jù)量大、采集時間長的場合,如何對數(shù)據(jù)進行安全有效的保存和分析顯得格外重要。U盤作為新型移動存儲設(shè)備,具有體積小、容量大、抗震動、通用性強的特點,以U盤作為存儲介質(zhì)來保存工業(yè)現(xiàn)場數(shù)據(jù),不僅可以有效提高保存數(shù)據(jù)的可靠性,而且便于與計算機進行數(shù)據(jù)交換。采用USB器件CH378[1],結(jié)合ARM處理器設(shè)計的大容量實時數(shù)據(jù)記錄儀,將現(xiàn)場采集的各種數(shù)據(jù)按文件方式存儲在大容量U盤中,可以方便地實現(xiàn)現(xiàn)場數(shù)據(jù)采集、室內(nèi)進行數(shù)據(jù)分析的要求,特別適合于長時間數(shù)據(jù)采集的場合。

      1 USB海量存儲協(xié)議與文件系統(tǒng)

      USB通信[2]以分層方式進行,總體上可分為功能層、USB設(shè)備層和總線接口層。U盤屬于USB家族內(nèi)的海量存儲(USB Mass Storage)[3]設(shè)備,它與主機之間采用“控制/批量/中斷”(CBI)方式或“批量”(Bulk_Only)方式進行通信。海量存儲協(xié)議包括CBI、 Bulk-Only、 ATA和 UFI等4個獨立的子類規(guī)范,前兩個子規(guī)范定義了數(shù)據(jù)/命令/狀態(tài)在USB總線上的傳輸方法,后兩個子規(guī)范定義了存儲介質(zhì)的操作命令,ATA命令規(guī)范用于硬盤,UFI命令規(guī)范則是針對USB移動存儲制定的。

      U盤在能夠進行數(shù)據(jù)保存之前必須先按文件系統(tǒng)[4]進行格式化,F(xiàn)AT32[5]文件系統(tǒng)因具有高度兼容性而被廣泛應(yīng)用于U盤移動存儲設(shè)備中。FAT32文件系統(tǒng)結(jié)構(gòu)分為5個部分:

      主引導(dǎo)記錄區(qū)(MBR),其后為64字節(jié)的磁盤分區(qū)表DPT。U盤一般只有一個分區(qū),沒有磁盤分區(qū)。操作系統(tǒng)引導(dǎo)記錄區(qū)(DBR),占用分區(qū)的第0扇區(qū),共512字節(jié),由跳轉(zhuǎn)指令、結(jié)束標志等幾部分組成。文件分配表區(qū)(FAT),文件分配表與數(shù)據(jù)區(qū)簇號一一對應(yīng),反映所有簇的使用情況。每個表項單元大小決定了FAT的類型,FAT32的表項單元為32位。FAT表一般都有一個備份。文件目錄表區(qū)(FDT),位于備份FAT表之后。FDT由32位線性目錄項構(gòu)成,記錄著根目錄下每個文件或子目錄的起始單元、屬性等。數(shù)據(jù)存儲區(qū)(DATA),位于FDT之后,占據(jù)U盤上的大部分空間。

      當U盤格式化為FAT32分區(qū)時,文件系統(tǒng)就將這個分區(qū)進行整體規(guī)劃,以便于數(shù)據(jù)存儲。通常將U盤空間以一定數(shù)目的扇區(qū)為單位進行劃分稱為簇,每個扇區(qū)512字節(jié),每個簇的最大存儲空間為32 KB。

      2 高速USB接口芯片CH378

      CH378 是一種新型高速USB總線通用接口芯片,支持Host主機方式和Slave設(shè)備方式。內(nèi)置了多種固件程序,如USB通信協(xié)議的基本固件、海量存儲設(shè)備的專用通信協(xié)議固件、SD卡通信接口固件、FAT32文件系統(tǒng)管理固件。支持常用的USB存儲設(shè)備,包括U 盤、USB移動硬盤和SD卡(包括標準容量SD卡和高容量HC-SD卡以及協(xié)議兼容的MMC卡和TF卡)。CH378支持8位標準并行接口、高速SPI串行接口以及異步串口接口,MCU處理器可以通過上述任何一種通信接口來控制CH378芯片,對U 盤或SD卡中的文件進行讀寫操作,或者與其它USB設(shè)備進行通信。

      CH378芯片具有如下主要特點:

      支持12 Mbps全速和480 Mbps高速USB通信,外圍元器件只需要一個晶振和2個電容。支持USB主機接口和USB設(shè)備接口,支持動態(tài)切換主機方式和設(shè)備方式。 支持USB設(shè)備的控制傳輸、批量傳輸和中斷傳輸。自動檢測USB設(shè)備或SD卡的連接和斷開,提供設(shè)備連接和斷開的事件通知。提供最高 50 MHz 的SPI主機接口,支持 SD 卡以及與其協(xié)議兼容的 MMC 卡和 TF 卡等。內(nèi)置文件系統(tǒng),提供文件管理功能,支持長文件名。以字節(jié)為單位或者以扇區(qū)為單位對多級子目錄下的文件進行讀寫操作,支持容量高達32 GB的U盤和SD卡。提供磁盤管理功能,包括磁盤初始化、查詢物理容量、查詢剩余空間、物理扇區(qū)讀寫。提供高速8位并行接口,支持8位并行數(shù)據(jù)總線。提供最高30 MHz速度的SPI 設(shè)備接口,支持SPI串行總線。提供最高10 Mbps速度的異步串行串口,支持串行通信波特率動態(tài)調(diào)整。支持低功耗模式。內(nèi)置20 KB的RAM存儲器,可作為文件讀寫緩沖區(qū)使用,也可作為普通RAM 使用,極大降低了外部系統(tǒng)的資源要求。

      3 硬件系統(tǒng)設(shè)計

      圖1 大容量實時數(shù)據(jù)記錄儀硬件電路框圖

      大容量實時數(shù)據(jù)記錄儀硬件電路如圖1所示。

      ARM處理器LPC2138[6]為記錄儀核心,工業(yè)現(xiàn)場需要測量采集的模擬信號,通過整形和調(diào)理電路之后,通過LPC2138片內(nèi)A/D轉(zhuǎn)換器進行采樣并轉(zhuǎn)換成數(shù)字量,ARM處理器對測量結(jié)果進行數(shù)字濾波,進一步提高抗干擾能力。記錄儀根據(jù)實時時鐘芯片DS1302提供的時間,對測量數(shù)據(jù)進行實時處理,并按時間標記存儲到U盤中。記錄儀采用點陣圖形液晶作為本地顯示接口,控制芯片為SED1335,既可以通過文本模式顯示所采集的數(shù)據(jù),也可以以圖形方式顯示數(shù)據(jù)曲線。系統(tǒng)外擴矩陣鍵盤用于設(shè)定數(shù)據(jù)采集間隔、采集時間等,根據(jù)用戶設(shè)定的參數(shù)定時啟動數(shù)據(jù)采集,并自動將采集得到的數(shù)據(jù)通過CH378存儲到U盤之中。當U盤中數(shù)據(jù)即將存滿時系統(tǒng)將顯示報警,提醒用戶及時更換U盤。

      CH378支持三種通信接口,在芯片上電復(fù)位時,CH378將采樣SEL和TXD引腳的狀態(tài),根據(jù)這2個引腳狀態(tài)的組合選擇當前的通信接口,如表1所列。

      表1 CH378的通信接口選擇

      CH378采用USB主機方式,通過并行方式實現(xiàn)與LPC2138 ARM處理器之間的接口。并口信號線包括:8 位雙向數(shù)據(jù)總線 D7~D0、讀選通輸入引腳 RD、寫選通輸入引腳 WR、片選輸入引腳 PCS以及地址輸入引腳A0。CH378芯片通過并行接口,可以很方便地掛接到各種8位系統(tǒng)總線上,并且可以與多個外圍器件共存。表2為CH378并行接口操作的真值表。

      表2 CH378并行接口操作的真值表 (其中X表示不關(guān)心此位)

      為使CH378工作于并口方式,應(yīng)將CH378的SEL引腳接地,TXD引腳接高電平。8位雙向數(shù)據(jù)總線D7~D0直接與LPC2138的P0口相連。片選端PCS連接到LPC2138的P1.1引腳,該引腳為低電平時選通CH378芯片。地址輸入線A0連接至LPC2138的P1.0引腳,當A0為高電平時選擇命令端口,向CH378寫入操作命令;當A0為低電平時選擇數(shù)據(jù)端口,對CH378進行數(shù)據(jù)讀寫。讀、寫信號端RD和WR分別連接到LPC2138的P1.6和P1.7引腳。中斷請求信號端INT連接到LPC2138外部中斷輸入EINT0引腳,低電平有效。考慮到讀寫U盤時一般以扇區(qū)方式進行,為了提高讀寫效率,利用LPC2138片內(nèi)32 KB的RAM作為數(shù)據(jù)文件緩沖區(qū),一般來說緩沖區(qū)越大,數(shù)據(jù)讀寫效率越高。

      4 系統(tǒng)軟件設(shè)計

      CH378芯片內(nèi)置了處理海量存儲設(shè)備的專用通信協(xié)議固件,支持Bulk-Only傳輸協(xié)議和SCSI、UFI、RBC等命令集,這使得USB控制傳輸過程大為簡化,CH378編程時只需要根據(jù)發(fā)出文件管理和數(shù)據(jù)讀寫命令,極大地方便了用戶對U盤的讀寫等操作。

      U盤提供若干個物理扇區(qū)用于數(shù)據(jù)存儲,每個扇區(qū)大小為 512 字節(jié)。通常將U盤中的物理扇區(qū)組織為FAT32文件系統(tǒng),為了方便起見,ARM處理器也應(yīng)該在FAT32規(guī)范下通過文件的形式存取U盤中的數(shù)據(jù)。一個U盤中可以有若干個文件,每個文件都是一組數(shù)據(jù)的集合,以文件名來區(qū)分和識別。實際文件數(shù)據(jù)的存放可能不是連續(xù)的,而是通過一組“指針”鏈接的多個塊(也就是分配的簇),從而能夠根據(jù)需要隨時增大文件長度以便容納更多數(shù)據(jù)。

      目錄(文件夾)是為了便于分類管理,可以將多個文件歸檔在一起。在FAT32文件系統(tǒng)中,U盤容量以簇為基本單位進行分配,而簇的大小總是扇區(qū)的倍數(shù),所以文件的占用空間總是簇的倍數(shù),也就是扇區(qū)的倍數(shù)。但在實際應(yīng)用中,保存在文件中的有效數(shù)據(jù)的長度卻不一定是扇區(qū)的倍數(shù),所以FAT32在文件目錄信息FAT_DIR_INFO中專門記錄了當前文件中有效數(shù)據(jù)的長度,也就是通常所說的文件長度,文件長度總是小于或者等于文件占用的空間。

      在對文件寫入數(shù)據(jù)后,如果覆蓋了原數(shù)據(jù),則文件長度可能不發(fā)生變化,當超過原文件長度后,變?yōu)樽芳訑?shù)據(jù),那么文件長度將會增大。如果向文件追加數(shù)據(jù)后,沒有修改文件目錄信息中的文件長度,那么FAT32 文件系統(tǒng)會認為超過文件長度的數(shù)據(jù)是無效的,這時處理器將無法讀出超過文件長度的數(shù)據(jù),雖然數(shù)據(jù)實際存在。如果數(shù)據(jù)量少或者數(shù)據(jù)不連續(xù),那么可以在每次追加數(shù)據(jù)后立即更新文件目錄信息中的文件長度,但是如果數(shù)據(jù)量大并且需要連續(xù)寫入數(shù)據(jù),立即更新文件目錄信息會降低效率,并且頻繁修改文件目錄信息會縮短U盤的使用壽命。

      所以在這種情況下,應(yīng)該在連續(xù)寫入多組數(shù)據(jù)后再更新一次文件目錄信息中的文件長度,或者一直等到關(guān)閉文件時再更新文件長度,CH378的內(nèi)置命令 CMD_FILE_CLOSE可以將內(nèi)存中的文件長度刷新到U盤的文件目錄信息中。雖然CH378最大支持1 GB的單個文件,但是為了提高效率,一般單個文件的長度不要超過100 MB,通常在幾KB到幾MB范圍是比較正常的,數(shù)據(jù)較多時可以分為多個目錄、多個文件存儲。

      圖2為大容量數(shù)據(jù)記錄儀軟件系統(tǒng)在U盤中創(chuàng)建文件并寫入數(shù)據(jù)的流程圖。采用FAT32文件系統(tǒng)時最小單元為簇,即使一個很小的文件也會占用一簇,為了節(jié)約存儲空間,創(chuàng)建文件時如果有同名文件存在,只需要向原來的同名文件追加數(shù)據(jù)。系統(tǒng)軟件對于U盤的操作主要包括如下幾點:

      圖2 在U盤中創(chuàng)建文件并向其中寫入數(shù)據(jù)的流程圖

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

      ② 寫文件:創(chuàng)建新文件時,在FAT表中查找未使用的簇,并將該簇號寫入文件對應(yīng)目錄數(shù)據(jù)結(jié)構(gòu)中的起始簇號位置。當文件長度大于一簇時,需要在FAT表對應(yīng)的起始簇號位置填入下一個可用簇號,直到文件的最后一簇。

      ③ 刪除文件:除了在FDT中對應(yīng)的目錄項設(shè)置相應(yīng)標志外,還要修改FAT表,將要刪除文件所使用的簇號位置清0,表示此簇當前未被使用。

      通過CH378構(gòu)建的FAT32文件系統(tǒng)為用戶提供了多種API函數(shù),用戶只需要調(diào)用相關(guān)命令即可完成對應(yīng)的操作。下面按操作順序給出常用的幾種命令。

      (1)初始化操作

      這是進行任何一項文件操作之前的必要步驟,相關(guān)命令如下:

      ① 發(fā)送 CMD_SET_USB_MODE 命令,進入 USB-HOST工作方式。

      ② 等待U盤連接,由處理器向CH378發(fā)送CMD_DISK_CONNECT命令定期查詢。

      ③ 發(fā)送CMD_DISK_MOUNT命令,初始化U盤,并測試磁盤是否就緒,失敗后可以重試最多5次。

      ④ 上述步驟只需執(zhí)行一次,如果U盤斷開后重新連接,則必須回到步驟②。

      (2)新建文件并寫入數(shù)據(jù)

      相關(guān)命令如下:

      ① 發(fā)送 CMD_SET_FILE_NAME 命令+CMD_FILE_CREATE 命令,新建文件。

      ② 多次發(fā)送 CMD_WR_HOST_OFS_DATA 命令+CMD_BYTE_WRITE 命令,寫入數(shù)據(jù)。

      ③ 發(fā)送 CMD_FILE_CLOSE 命令,參數(shù)是 1,關(guān)閉文件并允許自動更新文件長度。

      (3)向已有文件追加數(shù)據(jù)

      相關(guān)命令如下:

      ① 發(fā)送 CMD_SET_FILE_NAME 命令+CMD_FILE_OPEN 命令,打開文件。

      ② 發(fā)送 CMD_BYTE_LOCATE 命令,參數(shù)是 0F FFFF FFFH,移動文件指針到文件末尾。

      ③ 多次發(fā)送 CMD_WR_HOST_OFS_DATA 命令+CMD_BYTE_WRITE 命令,寫入數(shù)據(jù)。

      ④ 發(fā)送 CMD_FILE_CLOSE 命令,參數(shù)是 1,關(guān)閉文件并允許自動更新文件長度。

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

      系統(tǒng)軟件設(shè)計還包括數(shù)據(jù)記錄儀的液晶驅(qū)動、A/D轉(zhuǎn)換驅(qū)動以及鍵盤驅(qū)動等,其中液晶驅(qū)動程序較為復(fù)雜,包括初始化液晶、讀寫參數(shù)子程序、寫命令子程序、建坐標子程序、繪圖子程序、漢字寫入子程序等,限于篇幅,這里不再一一列舉。

      結(jié) 語

      猜你喜歡
      記錄儀U盤扇區(qū)
      分階段調(diào)整增加扇區(qū)通行能力策略
      南北橋(2022年2期)2022-05-31 04:28:07
      采用U盤文件冗余方案實現(xiàn)TSP系統(tǒng)的可靠裝載
      做夢記錄儀
      基于GPS的便攜式汽車行駛記錄儀的研制
      U盤故障排除經(jīng)驗談
      汽車記錄儀保險絲搭接轉(zhuǎn)換裝置及其模具設(shè)計
      基于貝葉斯估計的短時空域扇區(qū)交通流量預(yù)測
      重建分區(qū)表與FAT32_DBR研究與實現(xiàn)
      大容量Flash在井下記錄儀中的應(yīng)用
      U盤“鬧肚子”
      浦县| 襄汾县| 定州市| 邵阳县| 新建县| 曲松县| 富裕县| 明水县| 象山县| 扬中市| 格尔木市| 山西省| 闻喜县| 呼伦贝尔市| 永兴县| 卓资县| 依安县| 杭锦后旗| 卓资县| 皋兰县| 察隅县| 泾川县| 尼玛县| 宜良县| 泾川县| 渑池县| 沅陵县| 弥勒县| 朝阳县| 林州市| 华安县| 松滋市| 敦化市| 吉安市| 朝阳县| 呼和浩特市| 彭阳县| 隆化县| 秦安县| 揭西县| 临夏市|