蔡雪佳,周征翰,伍郁韓
(暨南大學(xué)信息科學(xué)技術(shù)學(xué)院,廣東廣州510632)
在傳統(tǒng)的分布式數(shù)據(jù)采集系統(tǒng)中,多個(gè)遠(yuǎn)端采集設(shè)備一般通過(guò)串口方式連接到主機(jī)。而傳統(tǒng)的串口不但速度比較慢,而且還需要長(zhǎng)距離布線施工。傳統(tǒng)的存儲(chǔ)方案存在著以下不足:
1)存儲(chǔ)介質(zhì)置于存儲(chǔ)端儀器內(nèi)部,回讀數(shù)據(jù)必須將整個(gè)單元回收。而戶外回讀分析數(shù)據(jù)往往受條件限制而難以實(shí)施。
2)隨著技術(shù)的發(fā)展,數(shù)據(jù)采集所面臨的環(huán)境日趨復(fù)雜,采集時(shí)間和數(shù)據(jù)容量逐步加大。由于傳統(tǒng)的存儲(chǔ)方案設(shè)計(jì)結(jié)構(gòu)所限,擴(kuò)大容量就意味著要在其系統(tǒng)中集成容量足夠的RAM存儲(chǔ)器。但是單片RAM的容量有限,即使使用多個(gè)RAM也無(wú)法達(dá)到存儲(chǔ)要求,而且其高昂的價(jià)格也限制了它在系統(tǒng)中的大量使用。
USB憑借它易擴(kuò)展、速度快、高可靠性[1]的優(yōu)勢(shì),已大范圍推廣并使用到數(shù)據(jù)采集系統(tǒng)中。本設(shè)計(jì)采用C8051F020單片機(jī)和南京沁恒公司的CH376所設(shè)計(jì)的大容量數(shù)據(jù)采集方案有效克服了以上的不足,在實(shí)際應(yīng)用中取得了良好的效果。
該系統(tǒng)通過(guò)單片機(jī)對(duì)U盤進(jìn)行操作,采集的數(shù)據(jù)通過(guò)USB-Host模塊直接按文件方式存儲(chǔ)到U盤,可以有效地提高數(shù)據(jù)保存速度及可靠性。在對(duì)實(shí)時(shí)性要求不高的場(chǎng)合,此系統(tǒng)實(shí)現(xiàn)了長(zhǎng)時(shí)間、大容量數(shù)據(jù)采集,方便了與PC等上位機(jī)的數(shù)據(jù)交換,降低了數(shù)據(jù)采集的成本,從而實(shí)現(xiàn)了現(xiàn)場(chǎng)采集數(shù)據(jù)、室內(nèi)分析數(shù)據(jù)的可移動(dòng)“無(wú)線”功能。
一個(gè)完整的USB系統(tǒng)包括USB主機(jī)、USB設(shè)備以及主機(jī)與設(shè)備之間的數(shù)據(jù)通信3個(gè)要素[2]。USB主機(jī)在整個(gè)USB系統(tǒng)中是唯一的。USB主機(jī)包括主機(jī)控制器、USB子系統(tǒng)及USB客戶幾個(gè)部分[3]。主機(jī)控制器實(shí)現(xiàn)了主機(jī)端的USB總線接口,同時(shí)還具有一個(gè)根集線器以提供與USB設(shè)備的物理連接。在USB2.0協(xié)議中,PC機(jī)被稱為主機(jī),多數(shù)USB接口數(shù)據(jù)采集設(shè)備、嵌入式系統(tǒng)及其他的USB外設(shè)只是作為外設(shè)由PC機(jī)控制[4]。所以,數(shù)據(jù)采集設(shè)備與USB移動(dòng)存儲(chǔ)器之間數(shù)據(jù)交換的實(shí)現(xiàn)需要在數(shù)據(jù)采集設(shè)備中集成主終端的功能。
U盤屬于USB家族內(nèi)的海量存儲(chǔ)(USB Mass Storage)設(shè)備,是一種基于塊/扇區(qū)的隨機(jī)存儲(chǔ)設(shè)備,它與主機(jī)之間采用“控制/批量/中斷”(CBI)方式或“批量”(Bulk-Only)方式與主機(jī)通信。USB海量存儲(chǔ)協(xié)議包括CBI,Bulk-Only,ATA和UFI等4個(gè)獨(dú)立的子類規(guī)范[5]。前2個(gè)規(guī)范定義了數(shù)據(jù)/命令/狀態(tài)在USB總線上的傳輸方法,后2個(gè)子規(guī)范定義了存儲(chǔ)介質(zhì)的操作命令。其中,ATA命令規(guī)范適用于硬盤,UFI命令規(guī)范則適用于USB移動(dòng)存儲(chǔ)介質(zhì)。
U盤在進(jìn)行數(shù)據(jù)保存之前,必須先按照某個(gè)文件系統(tǒng)的規(guī)定進(jìn)行格式化。U盤的存儲(chǔ)容量相對(duì)計(jì)算機(jī)硬盤來(lái)說(shuō)要小得多,因此在U盤中FAT16文件可取得比較高的綜合效率且兼容性較好,其廣泛地應(yīng)用于U盤之類的移動(dòng)存儲(chǔ)設(shè)備中。
系統(tǒng)采用單片機(jī)C8051F020作為中央處理芯片,選用南京沁恒電子公司的CH376作為USB主機(jī)控制芯片。其硬件框圖如圖1所示。
圖1 系統(tǒng)硬件原理框圖Fig.1 Schematics of system hardware
C8051F020是一款完全集成的混合信號(hào)系統(tǒng)級(jí)MCU芯片,外接21 MHz晶振。C8051F020包含了64 k字節(jié)的可編程FLASH,4352字節(jié)的RAM,64個(gè)數(shù)字I/O口,一個(gè)8路12位的A/D轉(zhuǎn)換器,其CIP-51指令集與MCS-51指令集完全兼容,且支持多種接口方式[6]。豐富的外圍接口方便了其系統(tǒng)功能的擴(kuò)展,高效的指令集也可使系統(tǒng)獲得較高的采樣率。
CH376是一款U SB接口芯片,支持USB主機(jī)方式和USB從機(jī)方式,同時(shí)支持5 V和3.3 V電源電壓,具有并行、串行、SPI 3種接口[7]。因此只需外加晶振和電容就可使CH376作為USB-Host接口使用。
設(shè)備啟動(dòng)后,A/D轉(zhuǎn)換模塊MAX153開始工作,將傳感器信號(hào)量化為數(shù)字信號(hào),在系統(tǒng)單片機(jī)的控制下循環(huán)存入單片機(jī)RAM內(nèi)部,而后通過(guò)USB-Host模塊以寫扇區(qū)的方式將數(shù)據(jù)以文件的格式存入U(xiǎn)SB移動(dòng)存儲(chǔ)器,直至寫滿在USB移動(dòng)存儲(chǔ)器中新建的文件并關(guān)閉。同時(shí)有系統(tǒng)所設(shè)置的狀態(tài)燈指示工作已完成。
實(shí)際設(shè)計(jì)中,單片機(jī)與CH376接口部分的硬件框圖如圖2所示。
圖2 單片機(jī)與CH376接口硬件框圖Fig.2 Block diagram of the interface between MCU and CH376
USB大容量存儲(chǔ)設(shè)備軟件分層通信模型示意圖[8]如圖3所示。
圖3 USB設(shè)備軟件分層通信模型Fig.3 Layered communication model of USB device
當(dāng)模塊作為USB-Host主控制器模式運(yùn)行時(shí),控制程序切換到圖3的左半部分。CH376不僅是一個(gè)可用作USBHost的硬件接口芯片,還內(nèi)置了相關(guān)的固件程序,簡(jiǎn)化了外部編程。內(nèi)置固件包含上圖左邊的UFI命令層,USB基本傳輸命令層及Bulk-Only協(xié)議層[8]。
U盤采用的文件系統(tǒng)一般為FAT文件系統(tǒng),它將存儲(chǔ)空間分為5個(gè)部分[9]:主引導(dǎo)扇區(qū)(MBR)、DOS引導(dǎo)區(qū)(DBR)、文件分配表(FAT)、文件目錄表(FDT)和數(shù)據(jù)區(qū)(DATA)。CH376提供了U盤文件級(jí)子程序庫(kù),單片機(jī)可以直接調(diào)用子程序讀寫U盤中的文件數(shù)據(jù)。
CH376內(nèi)置了處理海量存儲(chǔ)設(shè)備的專用通信協(xié)議的固件,所以嵌入式系統(tǒng)的單片機(jī)可以通過(guò)CH376將U盤作為可移動(dòng)的大容量存儲(chǔ)器。數(shù)據(jù)讀寫只需要幾條指令,而不需要詳細(xì)了解USB通信協(xié)議。
U盤文件的寫入方式采取以扇區(qū)為基本單位進(jìn)行寫操作,從而將USB存儲(chǔ)設(shè)備簡(jiǎn)化為一種外部數(shù)據(jù)存儲(chǔ)器,單片機(jī)可以將數(shù)據(jù)自由寫入U(xiǎn)SB存儲(chǔ)設(shè)備,也可以自由定義其數(shù)據(jù)結(jié)構(gòu)。CH376以C語(yǔ)言子程序庫(kù)提供了USB存儲(chǔ)設(shè)備的文件級(jí)接口,這些應(yīng)用層接口API[10]包含了常用的文件級(jí)操作,可以移植并嵌入到單片機(jī)程序中。
這里采用KeilC軟件來(lái)編寫程序,調(diào)用CH376提供的子程序庫(kù)。程序運(yùn)行并初始化后,系統(tǒng)進(jìn)入待觸發(fā)狀態(tài)。檢測(cè)到觸發(fā)信號(hào)到來(lái)之后,通過(guò)CH376FileCreate新建文件,將A/D所采集的數(shù)據(jù)通過(guò)CH376SecWrite寫入U(xiǎn)盤,文件寫滿之后調(diào)用CH376FileClose關(guān)閉文件。采集結(jié)束之后直接取下外接的U盤即可拿回室內(nèi)進(jìn)行分析。其具體實(shí)現(xiàn)過(guò)程如下所示:
寫數(shù)據(jù)子函數(shù)節(jié)選:
dshan表示進(jìn)入函數(shù)時(shí)所讀取到的扇區(qū)序號(hào),可利用它判斷指針位于文件開頭或文件末端,shanq表示該文件所占用的扇區(qū)數(shù),yushu是總扇區(qū)數(shù)除以7的余數(shù),便于最后一次寫扇區(qū)用。此函數(shù)每次寫入7個(gè)扇區(qū)的數(shù)據(jù),若最后一次寫入數(shù)據(jù)的扇區(qū)數(shù)小于7,則將剩余數(shù)據(jù)一次寫入U(xiǎn)盤,利用文件扇區(qū)指針的移動(dòng)可成功將所有數(shù)據(jù)寫入U(xiǎn)盤文件。
文中論述的基于CH376的USB-Host大容量數(shù)據(jù)采集方案可很好地實(shí)現(xiàn)對(duì)U盤的識(shí)別和數(shù)據(jù)的采集,克服了以前數(shù)據(jù)采集的不足,提高了系統(tǒng)的存儲(chǔ)能力,靈活地實(shí)現(xiàn)了數(shù)據(jù)采集的存儲(chǔ)并簡(jiǎn)化了整個(gè)系統(tǒng)的結(jié)構(gòu)。
根據(jù)其基本思想,采用性能更好的控制器如DSP,CPLD等可極大地提高儀器的采樣速率,以適應(yīng)更高的要求。
[1]魯宏偉,汪厚祥.計(jì)算機(jī)技術(shù)[M].北京:電子工業(yè)出版社,2004.
[2]薛園園,趙建領(lǐng).USB應(yīng)用開發(fā)實(shí)力詳解[M].北京:人民郵電出版,2009.
[3]王舜燕,吳帆,王志標(biāo),等.USB OTG設(shè)備互聯(lián)方案的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與數(shù)字工程,2006,34(7):116-119.
WANG Shun-yan,WU Fan,WANG Zhi-biao,et al.Design and implementation of two USB host interconnect[J].Computer and Digital Engineering,2006,34(7):116-119.
[4]夏益民,王廣君.基于USB總線的高速數(shù)據(jù)采集系統(tǒng)[J].國(guó)外電子元器件,2003(10):20-23.
XIA Yi-min WANG Guang-jun.A high speed data collection system based on USB[J].International Electronic Elements,2003(10):20-23.
[5]Axelson J.USB mass storage[M].Madison:Lakeview Research LLC(Independent Publisher Group),2006.
[6]Cygnal Integrated Products.C8051F020/1/2/3—Mixed-signal ISP FLASH MCU Family[EB/OL](2008-10-21)[2011-05-16].http://download.csdn.net/source/705680,2008.
[7]南京沁恒電子有限公司.CH376中文手冊(cè)[EB/OL].(2010-09-26).http://download.csdn.net/source/2720091.
[8]胡曉軍,張愛成.USB接口開發(fā)技術(shù)[M].西安:西安電子科技大學(xué)出版社,2005.
[9]李國(guó)峰,董海坤,張勇,等.基于ISP1362的U盤MP3播放器設(shè)計(jì)[J].電子設(shè)計(jì)應(yīng)用,2007(2):98-101.
LI Guo-feng,DONG Hai-kun,ZHANG Yong,et al.The MP3 player for U-disk based on ISP1362[J].Electronic Design&Application World for Design and Application Engineers,2007(2):98-101.
[10]何蘇勤,黃翠翠.基于USB2.0的異步數(shù)據(jù)傳輸和控制接口的設(shè)計(jì)[J].國(guó)外電子測(cè)量技術(shù),2010,29(3):79-83.
HE Su-qin,HUANG Cui-cui.Design of asynchronous data transmission and control interface based on USB2.0[J].Foreign Electronic Measurement Technology,2010,29(3):79-83.