USB OTG技術(shù)及其在存儲(chǔ)測(cè)試中的應(yīng)用
存儲(chǔ)測(cè)試是在對(duì)被測(cè)對(duì)象無(wú)影響或影響在允許范圍的條件下,在被測(cè)體或測(cè)試現(xiàn)場(chǎng)放置微型數(shù)據(jù)采集與存儲(chǔ)測(cè)試儀,現(xiàn)場(chǎng)實(shí)時(shí)完成信息的快速采集與記憶,事后回收并由計(jì)算機(jī)處理和再現(xiàn)測(cè)試信息的一種動(dòng)態(tài)測(cè)試技術(shù)。存儲(chǔ)測(cè)試的主要技術(shù)特點(diǎn)是現(xiàn)場(chǎng)實(shí)時(shí)快速完成動(dòng)態(tài)數(shù)據(jù)采集與存儲(chǔ)記憶,特別是在多種惡劣環(huán)境和緊湊設(shè)計(jì)條件下完成動(dòng)態(tài)參數(shù)測(cè)試,事后回收處理再現(xiàn)。傳統(tǒng)的存儲(chǔ)測(cè)試儀存在著如下不足:
(1)存儲(chǔ)介質(zhì)置于儀器內(nèi)部,回讀數(shù)據(jù)必須將整個(gè)儀器伺收。由于存儲(chǔ)測(cè)試所面臨的測(cè)試環(huán)境復(fù)雜,往往加裝了復(fù)雜、笨重的防護(hù)體或置于掩體中,給儀器的拆卸回收造成了困難。而戶(hù)外回讀分析數(shù)據(jù)往往受條件所限難以續(xù)施。 (2)隨著存儲(chǔ)測(cè)試技術(shù)的發(fā)展,存儲(chǔ)測(cè)試所面臨的對(duì)豫和環(huán)境日趨復(fù)雜,測(cè)試時(shí)間和所需容量靈活多變,并逐步加大。由于傳統(tǒng)的存儲(chǔ)測(cè)試儀設(shè)計(jì)結(jié)構(gòu)所限,不同容量就意味著要重新設(shè)計(jì)生產(chǎn)新的儀器。
(3)當(dāng)前的計(jì)算機(jī)主板普遍集成了USB接口,存儲(chǔ)測(cè)試儀一貫采用的"大端口"如:并口、串口等已逐漸被拋棄。一些新推出的主板甚至只集成了。USB 口。存儲(chǔ)測(cè)試儀接口必須適應(yīng)這一轉(zhuǎn)變,通過(guò)一定的措施實(shí)現(xiàn)基于。USB 口的通信。本設(shè)計(jì)采用南京沁恒公司的CH375和Atmel的ATmega32單片機(jī)所設(shè)計(jì)的存儲(chǔ)測(cè)試儀有效克服了以上的不足,在實(shí)際應(yīng)用中取得了良好的效果。U盤(pán)作為新型移動(dòng)存儲(chǔ)設(shè)備,以體積小、速度快、抗震動(dòng)、通用性強(qiáng)的特點(diǎn)備受青睞。該系統(tǒng)通過(guò)單片機(jī)對(duì)U盤(pán)進(jìn)行讀寫(xiě)操作,采集數(shù)據(jù)按文件方式直接存儲(chǔ)到U盤(pán),可以有效提高數(shù)據(jù)保存速度及可靠性。特別適合于長(zhǎng)時(shí)問(wèn)、大容量數(shù)據(jù)采集的場(chǎng)合,方便了與PC等上位機(jī)進(jìn)行數(shù)據(jù)交換,從而實(shí)現(xiàn)現(xiàn)場(chǎng)采集數(shù)據(jù)、室內(nèi)分析數(shù)據(jù)。通過(guò)更換U盤(pán)可以靈活選擇系統(tǒng)容量,極大地提高了存儲(chǔ)測(cè)試儀的通用性,降低了測(cè)試成本。
2 USB OTG及海量存儲(chǔ)設(shè)備協(xié)議
作為USB 2.0的補(bǔ)充規(guī)范USB OTG(On The Go)以其雙重強(qiáng)大功能使USB設(shè)備擺脫了對(duì)PC的完全依賴(lài),USB外設(shè)在無(wú)PC主機(jī)參與的情況下可以直接互連以進(jìn)行通信。USB通信以分層方式進(jìn)行,總體上可分為功能層、USB設(shè)備層和總線接口層。U盤(pán)屬于USB家族內(nèi)的海量存儲(chǔ)(USB Mass Storage)設(shè)備,是一種基于塊/扇區(qū)的隨機(jī)存儲(chǔ)設(shè)備,他與主機(jī)之間采用"控制/批量/中斷"(CBI)方式或"批量"(Bulk-Only)方式與主機(jī)通信。USB通信協(xié)議規(guī)范十分復(fù)雜,'USB海量存儲(chǔ)協(xié)議包括CBI,Bulk-Only,ATA和UFI等4個(gè)獨(dú)立的子類(lèi)規(guī)范。前2個(gè)子規(guī)范定義了數(shù)據(jù)/命令/狀態(tài)在USB總線上的傳輸方法,后2個(gè)子規(guī)范定義了存儲(chǔ)介質(zhì)的操作命令。其中,ATA命令規(guī)范用于硬盤(pán),UFI命令規(guī)范則是針對(duì)USB移動(dòng)存儲(chǔ)制定的。U盤(pán)在進(jìn)行數(shù)據(jù)保存之前,必須先按某個(gè)文件系統(tǒng)的規(guī)定進(jìn)行格式化。相對(duì)于計(jì)算機(jī)硬盤(pán)來(lái)說(shuō)U盤(pán)的存儲(chǔ)容量要小得多,因此在U盤(pán)中FAT16文件系統(tǒng)可取得比較高的綜合效率且兼容性較好,廣泛地應(yīng)用于U盤(pán)之類(lèi)的移動(dòng)存儲(chǔ)設(shè)備中。FAT16文件系統(tǒng)結(jié)構(gòu)分為5個(gè)部分:MBR區(qū),DBR區(qū),F(xiàn)AT區(qū),F(xiàn)DT區(qū),DATA區(qū)。其中MBR區(qū)為主引導(dǎo)記錄區(qū),DBR區(qū)為操作系統(tǒng)引導(dǎo)記錄區(qū),F(xiàn)AT區(qū)存放文件分配表,F(xiàn)DT區(qū)存放文件目錄表,DATA區(qū)是真正意義上的數(shù)據(jù)存儲(chǔ)區(qū)。
3 系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)采用AVR高檔機(jī)系列中功能強(qiáng)大的單片AT-mega32作為中央處理芯片,選用南京沁恒電子公司的CH375作為USB主機(jī)控制芯片。硬件系統(tǒng)的工作原理框圖如圖1所示:
ATmega32是一款基于AVR RISC結(jié)構(gòu)的低功耗8位單片機(jī),外接:16 MHz晶振性能可達(dá):16 MI/S。AT-mega32包含了32 kB的系統(tǒng)內(nèi)可編程FLASH,1kBE2PROM,2kB SRAM,32個(gè)通用I/O 口,32個(gè)通用工作寄存器,一個(gè)8路10位具有可選增益差分輸入的A/D轉(zhuǎn)換器,支持多種接口方式。豐富的片上存儲(chǔ)器空間極大地提高了對(duì)U盤(pán)操作時(shí)的工作效率,多樣化的外圍接口方便了系統(tǒng)的擴(kuò)展,高效的CPU指令集可以使系統(tǒng)獲得比較高的采樣率。CH375具有8位數(shù)據(jù)總線和讀、寫(xiě)、片選控制線以及中斷輸出,同時(shí)支持5 V和3.3 V電源電壓,遵循USB 1.1規(guī)范。因此CH375作全速USB Host。主機(jī)接口時(shí)只需外加晶振和電容,就可以方便地掛接到單片機(jī)/DSP/MCU/MPU等控制器的系統(tǒng)總線上。由于讀寫(xiě)U盤(pán)或移動(dòng)硬盤(pán)時(shí)一般都是以扇區(qū)模式進(jìn)行的,為了進(jìn)一步提高執(zhí)行效率可以適當(dāng)增大磁盤(pán)數(shù)據(jù)緩沖區(qū)和文件數(shù)據(jù)緩沖區(qū)(都是512 B的整數(shù)倍),并且緩沖區(qū)越大,執(zhí)行的效率越高,所以外擴(kuò)了32 kB的RAM 62256。傳感器信號(hào)經(jīng)模擬電路調(diào)理之后由A/D轉(zhuǎn)換器MAX 153量化成數(shù)字信號(hào),在單片機(jī)ATmega32的控制下循環(huán)存入62256。待觸發(fā)信號(hào)到來(lái)之后,按照程序預(yù)設(shè)的負(fù)延遲點(diǎn)數(shù)將62256扣的數(shù)據(jù)連同后續(xù)到來(lái)的信號(hào)全部經(jīng)由CH375存入外掛的U盤(pán),直至寫(xiě)滿(mǎn)在U盤(pán)中新建的文件并關(guān)閉。同時(shí)由系統(tǒng)所設(shè)置的狀態(tài)燈指示工作已完成。
{{分頁(yè)}}
實(shí)際設(shè)計(jì)中ATmega32與CH375接口部分的原理圖如圖2所示:
4 系統(tǒng)軟件設(shè)計(jì)
USB大容量存儲(chǔ)設(shè)備軟件結(jié)構(gòu)示意圖3所示:
一般情況下,單片機(jī)或嵌入式系統(tǒng)處理USB存儲(chǔ)設(shè)備的文件系統(tǒng)需要實(shí)現(xiàn)圖3左邊的幾個(gè)層次,右邊是USB存儲(chǔ)設(shè)備的內(nèi)部結(jié)構(gòu)層次。由于CH375不僅是一個(gè)通用的USB-HOST硬件接口芯片,還內(nèi)置了相關(guān)的固件程序,簡(jiǎn)化了外部編程。內(nèi)置固件包含上圖左邊的UFI命令層,USB基本傳輸命令層及Bulk-Only協(xié)議層,所以實(shí)際的單片機(jī)程序只需要處理FAT文件系統(tǒng)層,并且即使這一層也可以由CH 375的U盤(pán)文件級(jí)子程序庫(kù)實(shí)現(xiàn)。CH375以C語(yǔ)言子程序庫(kù)提供了。USB存儲(chǔ)設(shè)備的文件級(jí)接口,這些應(yīng)用層接口API包含了常用的文件級(jí)操作,可以移植并嵌入到各種常用的單片機(jī)程序中。
這里采用ICC AVR軟件來(lái)編寫(xiě)ATmega32的程序,并調(diào)用CH375所提供的AVRU盤(pán)文件級(jí)子程序庫(kù)CH375HFB.A。程序運(yùn)行并初始化后,系統(tǒng)進(jìn)入待觸發(fā)狀態(tài)。檢測(cè)到觸發(fā)信號(hào)到來(lái)之后,通過(guò)CH375FileCreate新建文件,將AD所采集的數(shù)據(jù)通過(guò)CH375FileWrite寫(xiě)入U(xiǎn)盤(pán),文件寫(xiě)滿(mǎn)之后調(diào)用CH375FileClose關(guān)閉文件。采集結(jié)束之后直接取下外接的U盤(pán)便可以拿回室內(nèi)分析。由于采用了文件管理模式,所需操作十分簡(jiǎn)單,就像平常讀取U盤(pán)中的文件一樣。
5 結(jié) 語(yǔ)
經(jīng)測(cè)試該系統(tǒng)在實(shí)際使用時(shí)達(dá)到了預(yù)想效果,克服了以前存儲(chǔ)測(cè)試儀的一些不足。尤其對(duì)于緩變大容量信號(hào)的采集取得了良好效果。由于CH375只支持USB1.1協(xié)議,并且采用了單片機(jī)作為控制器負(fù)責(zé)管理整個(gè)系統(tǒng)的運(yùn)行,勢(shì)必影響到儀器的采樣率。因此,選用支持USB 2.0協(xié)議的OTG器件,同時(shí)采用性能更好的控制器如DSP,CPLD等可極大地提高儀器的采樣速率,以適應(yīng)更高的需求。
評(píng)論