用MSP430單片機進行微功耗數據采集
讀寫扇區(qū)時,首先需要設置起始扇區(qū)的LBA地址和扇區(qū)數目,并設置命令寄存器,讀取數據設置命令“20H”,寫入數據設置命令“30H”。然后讀取狀態(tài)寄存器,判斷狀態(tài)寄存器是否為“58H”。若為是,則開始讀寫操作;若為否則繼續(xù)讀取狀態(tài)寄存器。接下來讀狀態(tài)寄存器是否為“50H”,判斷CF卡操作是否完成。若為否,則繼續(xù)讀取判斷;若為是,則結束讀寫過程。如果在判斷狀態(tài)寄存器中發(fā)生了超時或出現錯誤,則設置超時或錯誤標志,并跳出讀寫過程。圖4為CF卡讀寫一個扇區(qū)的流程圖。
由于對CF卡的操作是以扇區(qū)位單位,在單片機內部RAM開辟了兩個大小為1 kByte的緩沖區(qū),每個緩沖區(qū)的數據正好可以寫滿CF卡的兩個扇區(qū),AD采集的數據先存儲在緩沖區(qū),當存滿一個緩沖區(qū)后,設置CF的LBA地址、扇區(qū)數目及寫命令,把緩沖區(qū)內的數據寫入CF卡,同時AD采集的數據存儲在另外一個緩沖區(qū)。
CF卡如果要通過讀卡器在計算機上直接讀取數據,CF卡中的文件系統(tǒng)必須與計算機的文件系統(tǒng)一致,現在計算機的文件系統(tǒng)有FATl6、FAT32及NTFS等。由于微功耗單片機處理能力有限,在采樣周期內完成數據采集及數據存儲的工作后,所剩時間已經不多,如果再加上處理文件系統(tǒng)的程序,勢必影響系統(tǒng)數據采集的實時性。在本設計的程序里并沒有將數據寫成文件系統(tǒng),而是從數據扇區(qū)對應的LBA地址開始從小到大依次將數據寫入扇區(qū),直到寫滿整個CF卡。在讀取數據時,利用磁盤操作函數編寫一個小的VC程序,將CF卡中數據依次讀出并存為文件存儲在計算機的硬盤里,讀取的扇區(qū)及文件的大小也可以方便地設置,非常靈活。這樣也就在處理器能力有限的情況下實現了系統(tǒng)的實時數據采集和存儲。
4 結論
采取這種設計方法使整個采集系統(tǒng)的功耗大大減小,經測量,整個系統(tǒng)功耗為150mW。采用高能鋰離子電池作為系統(tǒng)電源,使整個系統(tǒng)輕松裝入一個內徑為15cm,高15cm的圓柱形密封罐內,體積的減小也更加有利于系統(tǒng)在水下的布放。該系統(tǒng)經過在吉林松花湖試驗,能夠穩(wěn)定可靠地工作,實時采集并存儲水下環(huán)境的噪聲和過往船只的噪聲數據。
評論