O 引言
以電池作為電源的水下數(shù)據(jù)采集系統(tǒng),,若要長時間工作必然要為其配備大量的電池作為電源,如果能降低系統(tǒng)的功耗,,那么將減少電池的數(shù)量,,不僅能降低系統(tǒng)的成 本而且能大大縮小系統(tǒng)的體積和重量,也更有利于水下數(shù)據(jù)采集系統(tǒng)的布放,。本文介紹了一種基于微功耗單片機MSP430F1611和CF卡的水下微功耗數(shù)據(jù) 采集系統(tǒng)的設(shè)計與實現(xiàn),,總功率僅150mW。相比傳統(tǒng)的以DSP為處理器,、IDE硬盤為存儲介質(zhì)的數(shù)據(jù)采集系統(tǒng),,功耗大大降低。
1 系統(tǒng)總體構(gòu)成
本系統(tǒng)是應用在矢量水聽器噪聲測量試驗中,,要求實時采集并存儲矢量水聽器4通道信號,,每通道采樣率為10kHz,在水下不間斷工作7小時,。
鑒于本系統(tǒng)采樣率不高,,7個小時總的數(shù)據(jù)量不超過2個G,所以沒必要采用功耗和體積都比較大的IDE硬盤,,采用容量為2G的CF卡完全可以滿足系統(tǒng)要求,。 CF卡的全稱為Compact Flash,兼容3.3V和5V工作電壓,,工作時沒有運動部件,,其體積小、耗電量小,、容量大,,具有很高的性價比。目前,,CF卡的容量可高達12GB,,CF 卡由控制芯片和閃存模塊組成,,閃存用于存儲信息,控制芯片用于實現(xiàn)與主機的連接及數(shù)據(jù)的傳輸,。CF卡可工作在TRUEIDE模式下,,并且與普通IDE硬盤 接口完全兼容,所以很容易進行開發(fā)使用,。
系統(tǒng)對采集的數(shù)據(jù)只存儲而不做信號處理,,在處理器的選取上也就不必一味追求高速度,本系統(tǒng)采用TI公司的超低功耗單片機MSP430F1611作為系統(tǒng)的 處理器,,負責AD的采集,,并把采集的數(shù)據(jù)寫入CF卡。這是一款高性價比的單片機,,具有以下特點:豐富的片內(nèi)外設(shè),;超低功耗,在電壓3.3V主頻1MHz時 工作電流僅600μA,;強大的處理能力,,在8MHz晶體驅(qū)動下,指令周期為125ns,,完全滿足系統(tǒng)的處理需求,。系統(tǒng)總的結(jié)構(gòu)圖如圖1所示。
2 硬件設(shè)計
2.1 CF卡接口設(shè)計
CF支持三種基本工作模式:PC Card Memory模式,、PCcard I/O模式以及True IDE模式,。在本文的設(shè)計中,使用True IDE模式,,它可以在CF卡上電時自動進入,。在插入CF卡之前,保證CF卡插槽的/OE管腳為低電平,,即可以讓CF卡進入True IDE模式,。單片機與CF卡的接口電圖如圖2所示。
MSP430F1611擁有六個可獨立配置的雙向8位I/O端口(P1~P6),。本文的設(shè)計中將P1端口的P1.0,、P1.1引腳分別與CF卡的讀寫信號 線IORD、IOWR相連,;復位信號RESET由P1.2給出,;A0~A2為數(shù)據(jù)、命令或狀態(tài)寄存器地址線,,由單片機P1.3~P1.5管腳控制。CF卡 總共有16根數(shù)據(jù)線D[15:0],,但可以通過軟件設(shè)定其工作在16 bit模式還是8 bit模式,,由于MSP430F161l單片機數(shù)據(jù)線寬為8位,,硬件中設(shè)計其工作在8 bit模式,使用D0~D7為數(shù)據(jù)線,,與單片機的P2端口相連,,D8~D15懸空。
2.2 AD采集模塊設(shè)計
為了降低系統(tǒng)功耗,,在我們系統(tǒng)指標要求的前提下,,ADC器件的選取盡量選用低功耗ADC器件。設(shè)計中我們采用了美國ADI公司的AD7655,,這款ADC 采樣率在10kSPS時功耗僅2.6mW,,有四個模擬輸入通道,精度為16bit,,最高采樣率高達1MSPS,。數(shù)據(jù)輸出接口支持串行和并行兩種方式,可以 方便地與單片機,、DSP等處理器實現(xiàn)無縫連接,。具體的AD與單片機的硬件接口圖如圖3所示。
AD7655每次對兩路信號進行采樣,,當A0為低電平時對INAl和INBl兩個通道的信號采樣,,當為高電平時對INA2和INB2兩個通道的信號采樣。 CNVST為AD7655的轉(zhuǎn)換開始信號,,這個信號由主控單片機按照設(shè)計的采樣率定周期地給出,。在轉(zhuǎn)換期問BUSY信號一直為高電平,轉(zhuǎn)換結(jié)束后BUSY 信號變?yōu)榈碗娖?,利用這個下降沿可以作為讀取AD采樣數(shù)據(jù)的中斷信號,,單片機在收到這個中斷信號后給出片選CS、讀信號READ和通道選擇信號A/B讀取 AD數(shù)據(jù),。
3 軟件設(shè)計
CF卡的讀寫是以扇區(qū)(sector)為單位的,,每次讀寫一個或連續(xù)的多個扇區(qū),每個扇區(qū)大小為512字節(jié),。對CF卡的讀寫訪問操作都是通過訪問其內(nèi)部寄 存器來實現(xiàn)的,,對不同的寄存器進行訪問是靠上節(jié)所提到的A0~A2、CSO,、CSl這五根數(shù)據(jù)線來譯碼的,,在本文的設(shè)計中,CF卡配置成TRUE IDE工作模式,,具體的寄存器映射如表1所示,。
寄存器0用于CF卡的數(shù)據(jù)讀寫。CF為了節(jié)省I/O資源,,有些I/0端口是復用的,,寄存器1在讀操作時為錯誤寄存器,,寫操作時為特征寄存器。寄存器2的作 用是設(shè)定要讀寫扇區(qū)的數(shù)目,。寄存器3~6是用來尋址要讀寫的具體扇區(qū)位置,,一般的IDE硬盤有CHS和LBA兩種尋址模式,CF卡工作在TRUE IDE模式下也有這兩種尋址模式,,CHS(Cylinder/Head/Sector)是扇區(qū)對應的具體柱面,、磁頭、和扇區(qū)的地址,;邏輯塊尋址方式 LBA(Logical Block Addressing)在邏輯上是連續(xù)的,,比較方便,所以軟件實現(xiàn)上采用這種方式對CF卡的扇區(qū)進行訪問,。寄存器7在讀操作時是狀態(tài)寄存器,,主控器可以得 到CF卡的有關(guān)狀態(tài)信息;寫操作時是命令寄存器,,通過設(shè)置命令,,主控制器操作CF卡完成特定的功能。
讀寫扇區(qū)時,,首先需要設(shè)置起始扇區(qū)的LBA地址和扇區(qū)數(shù)目,,并設(shè)置命令寄存器,讀取數(shù)據(jù)設(shè)置命令“20H”,,寫入數(shù)據(jù)設(shè)置命令“30H”,。然后讀取狀態(tài)寄 存器,判斷狀態(tài)寄存器是否為“58H”,。若為是,,則開始讀寫操作;若為否則繼續(xù)讀取狀態(tài)寄存器,。接下來讀狀態(tài)寄存器是否為“50H”,,判斷CF卡操作是否 完成。若為否,,則繼續(xù)讀取判斷,;若為是,則結(jié)束讀寫過程,。如果在判斷狀態(tài)寄存器中發(fā)生了超時或出現(xiàn)錯誤,,則設(shè)置超時或錯誤標志,并跳出讀寫過程,。圖4為 CF卡讀寫一個扇區(qū)的流程圖,。
由于對CF卡的操作是以扇區(qū)位單位,在單片機內(nèi)部RAM開辟了兩個大小為1 kByte的緩沖區(qū),每個緩沖區(qū)的數(shù)據(jù)正好可以寫滿CF卡的兩個扇區(qū),,AD采集的數(shù)據(jù)先存儲在緩沖區(qū),,當存滿一個緩沖區(qū)后,設(shè)置CF的LBA地址,、扇區(qū)數(shù) 目及寫命令,把緩沖區(qū)內(nèi)的數(shù)據(jù)寫入CF卡,,同時AD采集的數(shù)據(jù)存儲在另外一個緩沖區(qū),。
CF卡如果要通過讀卡器在計算機上直接讀取數(shù)據(jù),CF卡中的文件系統(tǒng)必須與計算機的文件系統(tǒng)一致,,現(xiàn)在計算機的文件系統(tǒng)有FATl6,、FAT32及 NTFS等。由于微功耗單片機處理能力有限,,在采樣周期內(nèi)完成數(shù)據(jù)采集及數(shù)據(jù)存儲的工作后,,所剩時間已經(jīng)不多,如果再加上處理文件系統(tǒng)的程序,,勢必影響系 統(tǒng)數(shù)據(jù)采集的實時性,。在本設(shè)計的程序里并沒有將數(shù)據(jù)寫成文件系統(tǒng),而是從數(shù)據(jù)扇區(qū)對應的LBA地址開始從小到大依次將數(shù)據(jù)寫入扇區(qū),,直到寫滿整個CF卡,。 在讀取數(shù)據(jù)時,利用磁盤操作函數(shù)編寫一個小的VC程序,,將CF卡中數(shù)據(jù)依次讀出并存為文件存儲在計算機的硬盤里,,讀取的扇區(qū)及文件的大小也可以方便地設(shè) 置,非常靈活,。這樣也就在處理器能力有限的情況下實現(xiàn)了系統(tǒng)的實時數(shù)據(jù)采集和存儲,。
4 結(jié)論
采取這種設(shè)計方法使整個采集系統(tǒng)的功耗大大減小,經(jīng)測量,,整個系統(tǒng)功耗為150mW,。采用高能鋰離子電池作為系統(tǒng)電源,使整個系統(tǒng)輕松裝入一個內(nèi)徑為 15cm,,高15cm的圓柱形密封罐內(nèi),,體積的減小也更加有利于系統(tǒng)在水下的布放。該系統(tǒng)經(jīng)過在吉林松花湖試驗,,能夠穩(wěn)定可靠地工作,,實時采集并存儲水下 環(huán)境的噪聲和過往船只的噪聲數(shù)據(jù)。