劉千令,許兆健,朱振池
(1.東南大學(xué) 軟件學(xué)院,南京 210096;2.東南大學(xué) 電氣工程學(xué)院)
?
基于ARM的振動(dòng)信號(hào)采集及文件存儲(chǔ)系統(tǒng)
劉千令1,許兆健1,朱振池2
(1.東南大學(xué) 軟件學(xué)院,南京 210096;2.東南大學(xué) 電氣工程學(xué)院)
為了更精確地對(duì)振動(dòng)微弱信號(hào)進(jìn)行采集,設(shè)計(jì)了一種基于ARM的嵌入式振動(dòng)信號(hào)采集及SD卡存儲(chǔ)系統(tǒng)。本文首先介紹了硬件電路的綜合設(shè)計(jì),完成了信號(hào)調(diào)理電路、SD卡硬件連接電路、USB連接電路和音頻功放電路的設(shè)計(jì),隨后完成了軟件和算法的設(shè)計(jì),其中包括基于FatFs的文件系統(tǒng)、AD5245的自適應(yīng)調(diào)節(jié)算法等。由對(duì)比試驗(yàn)和頻譜分析可知,本系統(tǒng)可更精確地完成大批量的數(shù)據(jù)采集工作,具有較強(qiáng)的實(shí)用性。
信號(hào)采集;自適應(yīng);SD卡;文件系統(tǒng)
在機(jī)械結(jié)構(gòu)的振動(dòng)過(guò)程中,許多微弱信號(hào)包含機(jī)械運(yùn)動(dòng)的豐富特征信息,如故障特征信息等,有必要提取出來(lái)加以分析。在微弱信號(hào)提取過(guò)程中,有時(shí)信號(hào)非常微弱,極易受到外界的干擾而淹沒(méi)于強(qiáng)噪聲之中,有時(shí)被測(cè)信號(hào)振幅變化范圍又很大,會(huì)紿信號(hào)采集帶來(lái)很大困難。放大電路本身的噪聲性能和頻率特性也將影響信號(hào)的提取精度。對(duì)振動(dòng)信號(hào)的采集及處理,通常是用普通的數(shù)據(jù)采集系統(tǒng)去采集,然后用數(shù)字信號(hào)處理的方法來(lái)提取數(shù)據(jù)的特征信息。但是,一些由于采集系統(tǒng)的不足對(duì)信息造成的損失,是后期的數(shù)字信號(hào)處理無(wú)法補(bǔ)償?shù)摹U駝?dòng)信號(hào)的檢測(cè)是機(jī)械系統(tǒng)狀態(tài)檢測(cè)和早期故障診斷的關(guān)鍵,機(jī)械系統(tǒng)早期故障引起的異常振動(dòng)信號(hào)有時(shí)很微弱,而且持續(xù)時(shí)間短、信噪比低,容易淹沒(méi)于背景噪聲中[1-8]。
測(cè)量的方法、可測(cè)量的種類和范圍應(yīng)不斷拓寬和更新,準(zhǔn)確度要提高,可靠性要增強(qiáng),并能夠適應(yīng)各種不同的實(shí)驗(yàn)環(huán)境需要,同時(shí)故障分析需要對(duì)大量樣本進(jìn)行對(duì)比分析,這就要求我們配備可移動(dòng)的大容量存儲(chǔ)介質(zhì)[10-12]。針對(duì)此情況,本文主要研究了基于ARM處理器的振動(dòng)信號(hào)的智能調(diào)節(jié)振幅數(shù)據(jù)采集電路設(shè)計(jì)和基于FatFs文件系統(tǒng)的SD卡的大容量存儲(chǔ)系統(tǒng)設(shè)計(jì)。
針對(duì)信息化管理程度,該系統(tǒng)設(shè)計(jì)成既可作為一個(gè)獨(dú)立系統(tǒng)單獨(dú)運(yùn)行,又可作為功能模塊無(wú)縫整合接入基于ARM的信息管理系統(tǒng)。該系統(tǒng)功能結(jié)構(gòu)如圖1所示。

圖1 系統(tǒng)功能結(jié)構(gòu)
信號(hào)調(diào)理模塊:通過(guò)加速度傳感器采集微弱振動(dòng)信號(hào),進(jìn)而經(jīng)過(guò)信號(hào)調(diào)理電路(包括程控調(diào)節(jié)增益)送到LPC1768的A/D轉(zhuǎn)換模塊進(jìn)行采集。
PC機(jī)通信模塊:通過(guò)USB接口與PC機(jī)通信,可實(shí)現(xiàn)文件數(shù)據(jù)的增加、刪除、新建等功能。
SD卡存儲(chǔ)模塊:基于FatFs文件系統(tǒng)的存儲(chǔ)設(shè)計(jì),通過(guò)SPI總線與主芯片通信,可完成數(shù)據(jù)的任何格式(如Wav)的寫入,也可對(duì)SD卡內(nèi)的數(shù)據(jù)進(jìn)行讀取。
語(yǔ)音播報(bào)模塊:在測(cè)試過(guò)程中實(shí)時(shí)語(yǔ)音提醒用戶當(dāng)前的操作狀態(tài),語(yǔ)音命令預(yù)存儲(chǔ)在SD卡內(nèi),可通過(guò)SPI總線通信進(jìn)行。
2.1 信號(hào)調(diào)理電路設(shè)計(jì)
信號(hào)調(diào)理電路主要包括壓電式加速度傳感器、電荷放大電路、兩級(jí)程控放大電路、帶通濾波電路和電壓抬升電路等。
加速度傳感器:把振動(dòng)信號(hào)轉(zhuǎn)化為電荷信號(hào),此處采用壓電式加速度傳感器,靈敏度高達(dá)1.294 pC/m·s-2,本實(shí)驗(yàn)主要測(cè)試頻率段為1~10 kHz。

帶通濾波電路:設(shè)計(jì)由低通濾波電路和高通濾波電路組合的帶通濾波電路,可根據(jù)通帶頻率計(jì)算出電阻電容值,本實(shí)驗(yàn)通帶頻率為1~10 kHz。
電壓抬升電路:利用運(yùn)放將電壓抬升到1.5 V,同時(shí)增加了電位器的設(shè)計(jì),可實(shí)現(xiàn)對(duì)抬升電位的靈活調(diào)節(jié)。
2.2 信號(hào)放大電路設(shè)計(jì)
該調(diào)理電路最突出的特點(diǎn)是運(yùn)用數(shù)字電位器AD5245來(lái)實(shí)現(xiàn)對(duì)信號(hào)的自適應(yīng)放大,如圖2所示。

圖2 信號(hào)放大電路
數(shù)字電位器AD5245可實(shí)現(xiàn)與機(jī)械電位器或可變電阻相同的電子調(diào)節(jié)功能,具有增強(qiáng)的分辨率、固態(tài)可靠性和出色的低溫度系數(shù)性能,可通過(guò)IC兼容型數(shù)字接口控制,其調(diào)節(jié)范圍可達(dá)256位。在數(shù)據(jù)采集中,主芯片LPC1768通過(guò)預(yù)采樣值來(lái)判斷AD5245的調(diào)節(jié)范圍和調(diào)節(jié)方向,并通過(guò)I2C總線對(duì)放大倍數(shù)進(jìn)行調(diào)節(jié)。
由表1可知,AD5245有多種連接方式。針對(duì)此實(shí)驗(yàn),本文采用的連接方式如圖3所示。

表1 AD5245各引腳功能

圖3 AD5245接線圖
這種接法放大器的放大倍數(shù)為Rd/R,可對(duì)放大倍數(shù)進(jìn)行256位分辨率的調(diào)節(jié)。
3.1 FatFs文件系統(tǒng)
FatFs是一個(gè)為小型嵌入式系統(tǒng)設(shè)計(jì)的通用FAT文件系統(tǒng)模塊。FatFs的編寫遵循ANSIC,并且完全與磁盤I/O層分開。獨(dú)立于硬件架構(gòu),可以被嵌入到低成本的微控制器中。其結(jié)構(gòu)圖如圖4所示。

圖4 FatFs結(jié)構(gòu)圖
FatFs具有非常清晰的層次結(jié)構(gòu),應(yīng)用層為用戶提供一系列API函數(shù),如f_open、f_close、f_read、f_write等,用于對(duì)文件的讀寫等;中間層FatFs Module為Fat協(xié)議層;最底層是用戶在移植過(guò)程中需要處理的接口,包括存儲(chǔ)媒介讀/寫接口DiskIO和文件修改時(shí)間所需的實(shí)時(shí)時(shí)鐘。根據(jù)層次式軟件設(shè)計(jì)的思想,將軟件工作分為3步:SD卡的通信實(shí)現(xiàn)、RTC時(shí)鐘配置和FatFs的移植。
① SD卡的通信實(shí)現(xiàn)。通過(guò)SPI總線系統(tǒng)實(shí)現(xiàn)SD卡與LPC1768、PC機(jī)的通信,可實(shí)現(xiàn)采樣數(shù)據(jù)的自動(dòng)存儲(chǔ)與通過(guò)PC機(jī)對(duì)SD卡內(nèi)數(shù)據(jù)的新建、刪除、修改和查找等功能。主要包括SPI模式的配置、SPI字節(jié)的讀寫實(shí)現(xiàn)、SD卡的讀寫實(shí)現(xiàn)和USB接口的配置。
② RTC時(shí)鐘配置。利用LPC1768內(nèi)含的RTC設(shè)備實(shí)現(xiàn)實(shí)時(shí)時(shí)鐘功能,主要包括時(shí)鐘頻率的選擇SysTick_Config、RTC實(shí)時(shí)時(shí)鐘的初始化RTC_Init及設(shè)定RTC_SetFullTime,為文件系統(tǒng)提供準(zhǔn)確的時(shí)間,可實(shí)現(xiàn)對(duì)每個(gè)存儲(chǔ)文件的時(shí)間標(biāo)記。
③ FatFs的移植。對(duì)FatFs接口函數(shù)的編寫,主要包括:存儲(chǔ)介質(zhì)初始化函數(shù)disk_initialize、存儲(chǔ)介質(zhì)狀態(tài)檢測(cè)函數(shù)disk_status、讀扇區(qū)函數(shù)disk_read、寫扇區(qū)函數(shù)disk_write、存儲(chǔ)介質(zhì)控制函數(shù)disk_ioctl等。
3.2 算法設(shè)計(jì)和軟件流程實(shí)現(xiàn)
LPC1768微控制器內(nèi)置一個(gè)8通道的12位A/D轉(zhuǎn)換器,而該采集系統(tǒng)僅用到單路信號(hào)輸入,可以實(shí)現(xiàn)較高頻率的采樣,提高了采集數(shù)據(jù)的精度。軟件設(shè)計(jì)思想是在系統(tǒng)初始化后首先進(jìn)行模式的判斷,分為采集模式和USB通信模式。在采集模式下,正式數(shù)據(jù)采集存儲(chǔ)前先進(jìn)行數(shù)據(jù)預(yù)采集,對(duì)預(yù)采集的信號(hào)進(jìn)行采樣處理,計(jì)算采集到的信號(hào)的幅值差,并與滿量程3.3 V進(jìn)行判斷是否需要調(diào)節(jié)和計(jì)算出調(diào)節(jié)值。通過(guò)I2C總線來(lái)調(diào)節(jié)AD5245,預(yù)調(diào)節(jié)完成后進(jìn)行正式信號(hào)采集,把采集到的數(shù)據(jù)進(jìn)行數(shù)字濾波并存儲(chǔ)到數(shù)組中,數(shù)組中的數(shù)據(jù)通過(guò)SPI總線存儲(chǔ)在SD卡中,存儲(chǔ)完成后通過(guò)功放播放語(yǔ)音信號(hào)提示完成。USB模式主要為SD卡中數(shù)據(jù)與PC機(jī)的通信。主流程如圖5所示。

圖5 系統(tǒng)主流程設(shè)計(jì)
3.2.1 信號(hào)幅值檢測(cè)的算法
在程控放大器的設(shè)計(jì)中,對(duì)被測(cè)信號(hào)振幅的檢測(cè)至關(guān)重要,它是實(shí)現(xiàn)程控放大的關(guān)鍵。以往的程控放大器,多數(shù)是根據(jù)被測(cè)信號(hào)的幅值來(lái)調(diào)節(jié)程控放大器的放大倍數(shù),此方法比較適合直流信號(hào)的檢測(cè)。交流信號(hào)的幅值是變化的,若根據(jù)被測(cè)信號(hào)的幅值調(diào)節(jié)程控放大器的增益,需要時(shí)刻改變程控放大器的增益,這將浪費(fèi)CPU的很多資源,影響了A/D轉(zhuǎn)換的速度,限制了被測(cè)信號(hào)的范圍。因器件程序的計(jì)算和器件的延時(shí)也會(huì)給測(cè)量結(jié)果帶來(lái)很大的誤差,不適合做高頻信號(hào)的采集。
故本設(shè)計(jì)采用預(yù)采集進(jìn)行幅值判斷,具體方法為開辟定長(zhǎng)的數(shù)組Buffer用來(lái)存儲(chǔ)預(yù)采集信號(hào),同時(shí)注意在設(shè)定此Buffer長(zhǎng)度的時(shí)候,一定要滿足該長(zhǎng)度至少為待采集信號(hào)的一個(gè)周期,然后對(duì)預(yù)采集信號(hào)進(jìn)行處理判斷,確定調(diào)節(jié)值及調(diào)節(jié)方向。
對(duì)預(yù)采集信號(hào)的處理:首先要計(jì)算出數(shù)組中的最大值和最小值,由于定義的數(shù)組可能較大,故給出一種新的算法代碼,以大幅提高其效率(n很大時(shí))。具體做法是:每次成對(duì)地處理數(shù)據(jù),先將一對(duì)元素進(jìn)行比較,然后把較大者與當(dāng)前最大值比較,較小者與當(dāng)前最小者比較,因此每?jī)蓚€(gè)元素需要比較3次。具體實(shí)現(xiàn)時(shí)需考慮n的奇偶,n為奇數(shù),3×(n/2)次;n為偶數(shù),3n/2-2次,因此總的比較次數(shù)至多為3×(n-2),大大提高了計(jì)算的速度。
根據(jù)以上算法可得ΔV=Vmax-Vmin,故需要調(diào)節(jié)的放大倍數(shù)β約為:
(1)
同時(shí)讀取此刻的AD5245_R值,可計(jì)算出將要調(diào)節(jié)的AD5245_W的值如下所示:

(2)
此時(shí)的電阻值為Rd:
(3)
這樣就計(jì)算出了需要調(diào)節(jié)的AD5245_W的調(diào)節(jié)值,通過(guò)I2C總線通信完成調(diào)節(jié),進(jìn)而進(jìn)行數(shù)據(jù)的正式采集。
通過(guò)對(duì)系統(tǒng)進(jìn)行設(shè)計(jì)和實(shí)現(xiàn),并對(duì)系統(tǒng)進(jìn)行了測(cè)試,在采樣頻率為50kHz下,對(duì)振動(dòng)信號(hào)進(jìn)行采樣分析,預(yù)采集信號(hào)時(shí)間長(zhǎng)度為50ms,正式采集長(zhǎng)度為400ms,由頻帶為1~10kHz的激勵(lì)源來(lái)激振被測(cè)物體,同時(shí)實(shí)驗(yàn)存儲(chǔ)數(shù)據(jù)格式為標(biāo)準(zhǔn)的WAV格式。通過(guò)USB接口上傳到PC,用上位機(jī)頻譜分析軟件對(duì)實(shí)驗(yàn)數(shù)據(jù)原信號(hào)和頻譜分析進(jìn)行對(duì)比試驗(yàn),試驗(yàn)現(xiàn)象如圖6所示。

圖6 信號(hào)采集原信號(hào)對(duì)比
通過(guò)對(duì)普通采樣系統(tǒng)和本系統(tǒng)采樣的原信號(hào)對(duì)比,可見(jiàn)在相同振動(dòng)激勵(lì)下普通信號(hào)采集系統(tǒng)采集出信號(hào)的幅值最大值約為1000,并未填滿A/D轉(zhuǎn)換采集模塊最大的量程4 096。而本系統(tǒng)通過(guò)對(duì)信號(hào)的自適應(yīng)放大,可將采集信號(hào)幅值最大提高到4 000左右,在一定程度上提高了信號(hào)采集的精度。
對(duì)普通采樣系統(tǒng)和本系統(tǒng)采樣信號(hào)的頻譜分析圖進(jìn)行對(duì)比,如圖7所示。

圖7 信號(hào)采集頻譜分析
可見(jiàn)普通采集系統(tǒng)的信號(hào)的頻譜分析不僅能量值較

[1] 王冬星, 程書偉, 張麗華,等. 基于ARM的數(shù)據(jù)采集與存儲(chǔ)系統(tǒng)的研究與實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2012, 33(12): 4526-4530.
[2] 李桂香, 常赟杰. 嵌入式數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J]. 計(jì)算機(jī)時(shí)代, 2010 (3): 33-35.
[3] 李美俊, 李光明. 基于嵌入式的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J]. 煤炭技術(shù), 2012, 31(2): 178-180.
[4] 范寒柏, 王少仙, 彭安,等. 大容量SD卡在海洋數(shù)據(jù)存儲(chǔ)中的應(yīng)用[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用, 2010(4): 30-32.
[5] 王飛. 大容量信號(hào)采集存儲(chǔ)系統(tǒng)研制[D]. 哈爾濱:哈爾濱工程大學(xué), 2011.
[6] 劉爽, 趙凱生, 龍?jiān)俅?,? 基于ARM和FPGA的嵌入式CCD采集系統(tǒng)[J]. 光電子·激光, 2007, 18(11): 1296-1298.
[7] 彭國(guó)盛. 基于ARM和以太網(wǎng)的振動(dòng)信號(hào)采集器設(shè)計(jì)[J].電力自動(dòng)化設(shè)備, 2007, 27(1) :87-89.
[8] 江俊輝. 基于ARM的嵌入式系統(tǒng)硬件設(shè)計(jì)[J]. 微計(jì)算機(jī)信息, 2005(20): 120-122.
[9] 張波, 朱新華. 基于ARM的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J]. 火力與指揮控制, 2009, 34(2): 127-129.
[10] 王紅亮, 符多鐸, 廣威,等. 基于ARM的數(shù)據(jù)采集存儲(chǔ)系統(tǒng)設(shè)計(jì)[J]. 火力與指揮控制, 2014 (1): 119-121.
[11] 蘇維嘉, 阮彬鑫, 李鑫,等. 基于ARM和SD卡的汽車安全性能檢測(cè)儀[J]. 儀表技術(shù)與傳感器, 2013(1): 41-43.
[12] 李永建, 李舜酩, 郝青青,等. 微弱振動(dòng)信號(hào)自適應(yīng)采集系統(tǒng)設(shè)計(jì)[J]. 現(xiàn)代電子技術(shù), 2009, 32(5): 187-190.
劉千令(碩士研究生),主要研究嵌入式通信、智能電網(wǎng)。
Vibration Signal Data Acquisition and File Storage System Based on ARM
Liu Qianling1, Xu Zhaojian1, Zhu Zhenchi2
(1.School of Software Engineering,Southeast University,Nanjing 210096,China;2.School of Electrical Engineering,Southeast University)
In order to accurately collect the weak vibration signal,a system based on ARM including vibration signal acquisition and SD card storage is designed.This paper first introduces the integrated design of the hardware circuit,including the signal conditioning circuit,SD card hardware connection circuit,USB connection circuit and the design of the audio power amplifier circuit.Then the software and algorithm design are completed,including the FatFs file system,AD5245 adaptive control algorithm.Through the contrast test and spectrum analysis,the result shows that this system can be more accurately to complete the work of data acquisition in large quantities, and it has stronger practicability.
signal acquisition;self-adaption;SD card;file system
TP271
A
迪娜
2014-08-05)