一種嵌入式便攜數(shù)據(jù)采集分析儀
引言
對旋轉(zhuǎn)機(jī)械的多點(diǎn)振動測試實踐中,需要使用多種儀器,如示波器、動平衡儀、振動分析儀等。隨著測試技術(shù)的進(jìn)步,虛擬儀器的出現(xiàn)將其合而為一,大大簡化了復(fù)雜的測試工作。虛擬儀器的概念是使用計算機(jī)對被測信號進(jìn)行數(shù)據(jù)采集,并對采集到的數(shù)據(jù)序列進(jìn)行分析和顯示的全過程。按照虛擬儀器概念搭建的儀器需要三部分:計算機(jī)、數(shù)據(jù)采集硬件和分析軟件。數(shù)據(jù)采集硬件一般由A/D板卡實現(xiàn)。然而計算機(jī)的進(jìn)步和總線的變化使曾經(jīng)可行的測量結(jié)構(gòu)和分析程序在新的總線、操作系統(tǒng)上不能正常工作。各個廠家的A/D板卡一般只具有簡單的采樣觸發(fā)方式;硬件和windows底層源代碼的保密性又扼殺了用戶自行開發(fā)新的采樣觸發(fā)方式的可能性。PC機(jī)體積過大不便移動工作;筆記本電腦雖便攜,內(nèi)部幾乎沒有插入板卡的空間,接口性能也嬌氣。這些不足又為測試工作帶來了新的不便。
近年來嵌入式技術(shù)發(fā)展很快,使用單片機(jī)控制的數(shù)據(jù)采集系統(tǒng)方興未艾。但由于單片機(jī)性能的限制,采樣速率有限,存儲空間很小,不能滿足高速大容量采樣的需求,更不可能使儀器運(yùn)行分析軟件,擺脫電腦獨(dú)立工作。
ARM系列微處理器功耗低且性能大大高于單片機(jī),使在嵌入式系統(tǒng)上實現(xiàn)虛擬儀器成為可能。本文基于ARM7TDMI設(shè)計的嵌入式數(shù)據(jù)采集分析儀實現(xiàn)了上述目的。
硬件結(jié)構(gòu)和工作原理
儀器的硬件結(jié)構(gòu)及工作原理圖如圖1所示。處理器選用三星(samsung)公司的s3c44b0x替代51單片機(jī),在保持微小功耗的前提下獲得了更高的運(yùn)行頻率和更強(qiáng)大的數(shù)據(jù)處理能力。其ARM7TDMI內(nèi)核應(yīng)用改進(jìn)的RISC設(shè)計思想來獲得更好的功耗性能比,具有0.06mW/MHz的低功耗,保證儀器可以在電池供電條件下工作較長時間。ARM7的三級指令流水線提供0.97MIPS/MHz的指令效率,接近每周期執(zhí)行一條指令。
圖1 硬件結(jié)構(gòu)及工作原理圖
S3c44b0x外接10MHz的晶體振蕩器,通過內(nèi)部的PLL倍頻,運(yùn)行在64MHz的主頻下。這樣的主頻比一般單片機(jī)高了5~10倍,保證處理器在控制高速A/D進(jìn)行數(shù)據(jù)采集的同時,還能提供額外運(yùn)算時間來分析數(shù)據(jù)。除ARM7TDMI內(nèi)核外,s3c44b0x還提供PWM計數(shù)器、UART、DMA、 8通道10位精度A/D變換器等外圍設(shè)備。
存儲器方面,系統(tǒng)配置了8Mbyte的SDRAM和16Mbyte的FLASH。大容量的SDRAM提供了充足的程序運(yùn)行空間和采集數(shù)據(jù)緩存。FLASH 一部分用作系統(tǒng)的啟動存儲器;一部分存儲采集到的數(shù)據(jù),即使掉電也不會丟失。存儲器通過16位數(shù)據(jù)線、地址線和片選線與處理器連接。S3c44b0x提供八個存儲器片選空間(bank)。
A/D變換器是數(shù)據(jù)采集的關(guān)鍵部件。儀器擁有兩個A/D變換器。一個是s3c4bb0x內(nèi)部的A/D變換器,具有10位精度,8通道和單通道最高 100kSps的速度。另一個是AD公司的AD7859芯片,具有12位精度,8通道和單通道最高200kSps的速度,自帶采樣保持器。AD7859通過16位數(shù)據(jù)線、地址線和片選線連接到處理器,占用一個存儲器bank。處理器以訪問存儲器的方式訪問AD7859,也可以使用處理器的DMA控制數(shù)據(jù)傳輸。AD7859的觸發(fā)端通過一個多路開關(guān)分別連接了儀器外時鐘輸入端和處理器的計數(shù)器輸出端,以實現(xiàn)多種觸發(fā)方式。此外,處理器還可以通過數(shù)據(jù)線傳送命令的方式觸發(fā)AD7859進(jìn)行采樣。
USB控制器是數(shù)據(jù)傳輸?shù)闹饕考?。本儀器選用Philips公司的PDIUSBD12芯片,符合USB1.1標(biāo)準(zhǔn),數(shù)據(jù)傳輸速度達(dá)到12Mbps。 PDIUSBD12作為下位機(jī)通過8位數(shù)據(jù)線、地址線和片選線連接到s3c44b0x,占用一個存儲器bank。PDIUSBD12的INT_N管腳連接到s3c44b0x的EINT2管腳,通過中斷方式通知處理器處理USB上位機(jī)的呼叫。PDIUSBD12的硬件連接電路原理圖如圖2所示。
圖2 PDIUSBD12硬件連接原理圖
儀器的人機(jī)交互界面由一塊320×240的高分辨率單色液晶顯示器和一塊4×4鍵盤組成。液晶顯示器模塊以8位數(shù)據(jù)線、地址和片選連接到s3c44b0x,占用一個存儲器bank。
軟件系統(tǒng)
軟件系統(tǒng)主要包括初始化程序、操作系統(tǒng)、采樣觸發(fā)程序、USB固件和應(yīng)用軟件5個部分。
初始化程序
初始化程序是針對s3c44b0x使用匯編語言編寫的。在將控制權(quán)交給操作系統(tǒng)前,初始化最基本的硬件設(shè)備。主要工作是配置SDRAM并將操作系統(tǒng)代碼從FLASH拷貝到SDRAM中。這一部分的主要代碼如下:
ResetHandler:
ldrr0,=WTCON;//watchdogdisable
ldrr1,=0x0
strr1,[r0]
mrsr0,cpsr;//disableinterrupt
orrr0,r0,#0xc0
msrcpsr,r0
/*Setclockcontrolregisters*/
ldrr0,=LOCKTIME
ldrr1,=2000; //count=t_lock*Fin
strr1,[r0]
ldrr0,=PLLCON
ldrr1,=0xf8033; //MCLK=64MHz
strr1,[r0]
ldrr0,=CLKCON
ldrr1,=0x7ff8; //AllunitblockCLKenable
strr1,[r0]
;/*Setmemorycontrollerregisters,initializeSDRAM*/
ldrr1,=0x11110002;//BWSCON
ldrr2,=0X600; //GCS0FLASHROM
ldrr3,=0X7FFC; //GCS1LCDCONTROLLER
ldrr4,=0X7FFC; //GCS2
ldrr5,=0X7FFC; //GCS3
ldrr6,=0X7FFC; //GCS4
ldrr7,=0X7FFC; //GCS5
ldrr8,=0X18000; //GCS6SDRAM
ldrr9,=0X18000; //GCS7SDRAM
ldrr10,=0x820419; //REFRESH
ldrr11,=0x16; //BankSize
ldrr12,=0x20; //MRSR6
ldrr13,=0x20; //MRSR7
ldrr0,=0x01c80000; //BWSCONAddress
stmiar0,{r1-r13}
;/*Copyentireprogramsto0x0c008000atSDRAM*/
ldrr0,=0x0;//startaddressoftheflashrom
ldrr1,=0xc008000; //targetaddressintheSDRAM
ldrr2,=0x128e0; //thenumberofbytesneedtocopy
COPY:
ldr r3,[r0],#4
str r3,[r1],#4
subs r2,r2,#4
bne COPY
ldrr4,=0xc007ffc;//jumptoSDRAM
addpc,pc,r4
……
b__main;//jumptoOS
操作系統(tǒng)
儀器使用μC/OS-II嵌入式操作系統(tǒng)。μC/OS-II是一個公開源代碼的搶占式實時嵌入式內(nèi)核,它在內(nèi)核上保證了系統(tǒng)的實時性。在這個系統(tǒng)中,己經(jīng)就緒的高優(yōu)先級任務(wù)可以剝奪正在運(yùn)行的低優(yōu)先級任務(wù)的CPU使用權(quán)。只要保證數(shù)據(jù)采集任務(wù)的優(yōu)先級足夠高,就可以保證數(shù)據(jù)采集過程不會被打斷,從而保證數(shù)據(jù)的連續(xù)性和完整性。
μC/OS-II易于移植,僅需針對s3c44b0x修改3個文件就可完成移植工作。這3個文件分別是OS_CPU.H、OS_CPU_A.ASM、 OS_CPU_C.C。主要是修改SWI軟中斷異常響應(yīng)、中斷例程和任務(wù)切換例程。其他的文件都是處理器無關(guān)的,一般不需修改。功能菜單選擇任務(wù)是優(yōu)先級最低的任務(wù),沒有其它高級任務(wù)運(yùn)行時即運(yùn)行這個任務(wù)。使用時,通過液晶顯示器和鍵盤選擇需要的功能,即可進(jìn)行采樣測量工作。
采樣觸發(fā)方式
本儀器除具有其它儀器都有的內(nèi)觸發(fā)、外觸發(fā)、定時觸發(fā)方式外,還根據(jù)工業(yè)測試現(xiàn)場的需要,設(shè)計了倍頻觸發(fā)方式和單A/D多通道并行無時延觸發(fā)方式。
(1)內(nèi)觸發(fā)方式,即由一方波觸發(fā)采樣,操作者指定其頻率fs、時間長度(測點(diǎn)長度)T和開始時刻,也稱為數(shù)字觸發(fā)。這是一般的A/D板卡都具有的功能。如果對采樣得到的數(shù)據(jù)進(jìn)行緩存,并將每一個值和指定電壓值比較,可以實現(xiàn)電平觸發(fā)。即當(dāng)采樣電平達(dá)到和超過某閾值后,才存儲采樣數(shù)據(jù)。儀器還專門留有一條IO線,由IO線的電平變化事件觸發(fā)采樣,可以實現(xiàn)前觸發(fā)和后觸發(fā)。前觸發(fā)即僅在IO線事件發(fā)生后,以預(yù)先選擇的采樣頻率fs和截斷長度進(jìn)行采樣;后觸發(fā)指在IO線事件發(fā)生前,以預(yù)先選擇的采樣頻率fs采樣,IO事件發(fā)生即結(jié)束采樣。
(2)倍頻觸發(fā)方式。在大型旋轉(zhuǎn)設(shè)備升降速過程中,要了解各軸承或軸上某截面測點(diǎn)處過臨界轉(zhuǎn)速過程的表現(xiàn),不允許按常規(guī)分時巡檢進(jìn)行,需要特殊的觸發(fā)方式。這種情況下多采用倍頻觸發(fā)方式采樣。即用轉(zhuǎn)子轉(zhuǎn)速信號進(jìn)行外同步,每轉(zhuǎn)采N個點(diǎn)。當(dāng)轉(zhuǎn)速變化時,儀器自動修正采樣頻率,保證各通道對應(yīng)點(diǎn)的采樣是同一時刻的,同時還獲得了精確的轉(zhuǎn)子轉(zhuǎn)速信息。
為實現(xiàn)這種觸發(fā)方式,需將轉(zhuǎn)速信號連接到儀器的外時鐘輸入端。轉(zhuǎn)速信號一般為每轉(zhuǎn)一周期的方波。一個采樣周期一般包括4個轉(zhuǎn)速信號周期:第一個周期,處理器通過查詢方式檢測到外時鐘信號的上升沿時使一內(nèi)部計數(shù)器以指定頻率開始計數(shù),這個計數(shù)器稱為測周期計數(shù)器。再次檢測到上升沿時停止計數(shù)。這時計數(shù)器的值即包含了轉(zhuǎn)速信號的周期信息。第二個周期內(nèi),將這個值除以N(每周期采樣點(diǎn)數(shù))傳遞給另一個計數(shù)器。第二個計數(shù)器稱為觸發(fā)計數(shù)器,計數(shù)頻率和測周期計數(shù)器相同,輸出頻率就是采樣頻率。這時,采樣頻率就相當(dāng)于轉(zhuǎn)速信號的N倍,實現(xiàn)倍頻。當(dāng)處理器再次檢測到上升沿時(第三個周期),觸發(fā)計數(shù)器開始計數(shù),輸出的信號觸發(fā)A/D采樣,采集兩個周期的數(shù)據(jù)。如此循環(huán)往復(fù)。整個采樣程序的流程圖如圖3所示。
圖3 外觸發(fā)整周期倍頻采樣流程圖
經(jīng)過倍頻,可以精確實現(xiàn)每周期采集N個點(diǎn),并且平均分布;使用轉(zhuǎn)速信號上升沿作為采樣開始的標(biāo)志保證了采樣開始于每個周期的起始,結(jié)束于每個周期的結(jié)束。每次采樣前先進(jìn)行轉(zhuǎn)速信號周期測量保證了采樣頻率可以跟隨轉(zhuǎn)速信號變化,由于大型旋轉(zhuǎn)機(jī)械的慣性和轉(zhuǎn)加速度的限制,轉(zhuǎn)子相鄰轉(zhuǎn)速變化不大,而且在測試處理時可以預(yù)測修正。這些措施嚴(yán)格保證了采樣的整周期性,雖然得到的數(shù)據(jù)是間斷的,但由于其起始和結(jié)束相位相同,連接到一起后不會影響后面的數(shù)據(jù)分析。
(3)多通道并行無時延觸發(fā)方式。多通道巡檢測試通常是分時逐一完成的,有時會引入誤差。在工業(yè)現(xiàn)場進(jìn)行模態(tài)測量時,無論一點(diǎn)激勵、多點(diǎn)測量,還是多點(diǎn)激勵、兩點(diǎn)(激勵點(diǎn)和響應(yīng)點(diǎn))測量,都要求各測點(diǎn)所測數(shù)據(jù)是同一時刻的(沒有時延)。例如大型轉(zhuǎn)子升降速過程中測試各測點(diǎn)過臨界轉(zhuǎn)速的表現(xiàn),即有這種無時延的要求。
為了確保各測點(diǎn)無時延,每次采樣前,通過采樣保持器將各通道狀態(tài)保持住,再令A(yù)/D以最快速度對各通道做一次掃描采樣,然后釋放保持,準(zhǔn)備下一次掃描測量。這樣采集的數(shù)據(jù)經(jīng)過整理后就能獲得各通道的實際采樣序列。這種觸發(fā)方式以犧牲A/D最高采樣速率的代價,用一片A/D實現(xiàn)多通道并行無延時采樣,相對于多片A/D并行工作的方式,成本下降很多。
USB固件
儀器上的USB驅(qū)動程序也稱為USB固件。儀器連接到上位機(jī)后,PDIUSBD12響應(yīng)上位機(jī)的信號,并向ARM7發(fā)出中斷請求。ARM7響應(yīng)中斷并調(diào)用固件中的程序處理上位機(jī)的請求,發(fā)送數(shù)據(jù)。數(shù)據(jù)從SDRAM或FLASH傳輸?shù)絇DIUSBD12,由后者發(fā)送給上位機(jī)。數(shù)據(jù)傳輸采用bulk方式以保證準(zhǔn)確性。實際傳輸實驗表明,傳輸速度達(dá)到1Mbytes。
應(yīng)用軟件
數(shù)據(jù)分析軟件是本儀器應(yīng)用軟件的主要部分。目前已開發(fā)出的數(shù)據(jù)分析軟件是示波器功能軟件。本儀器在采集數(shù)據(jù)的同時可以由大屏幕液晶顯示器進(jìn)行波形示蹤。這個功能的實現(xiàn)充分體現(xiàn)了ARM7比單片機(jī)運(yùn)算速度快的優(yōu)勢。A/D的最高采樣速率是200ksps,即每個采樣周期為5ηs。ARM7運(yùn)行在64MHz主頻下,每個周期為15.625ns。這樣每個采樣周期包括320個主頻周期。ARM7具有0.97MIPSMHz的指令效率,320個主頻周期可以運(yùn)行約 310條的指令。在計數(shù)器觸發(fā)A/D采樣的情況下,處理器的工作是每采樣周期從A/D讀取一次數(shù)據(jù)并保存到RAM中,代碼如下:
LDRr0,[r1];/*寄存器r1中保存了A/D數(shù)據(jù)寄存器的地址;需要3周期*/
STRr0,[r2,#4]!;/*寄存器r2中保存了RAM中數(shù)據(jù)存儲空間的起始地址;需要2周期*/
這個操作需要5個主頻周期。利用剩余的A/D轉(zhuǎn)換時間,ARM7就可以將上一次采集的數(shù)據(jù)顯示在大屏幕液晶上,實現(xiàn)波形示蹤,方便使用者進(jìn)行現(xiàn)場信號觀察,省去了攜帶示波器的麻煩。這是其他的數(shù)據(jù)采集儀所不具備的。
充分利用ARM7高性能的優(yōu)勢,還可以進(jìn)行其他數(shù)據(jù)分析處理。目前其他數(shù)據(jù)處理功能正在開發(fā)中。μC/OS-II操作系統(tǒng)大部分用C語言編寫,開發(fā)方便。除儀器自帶的軟件模塊外,用戶可以自己開發(fā)新的模塊,不斷擴(kuò)展功能。
實驗數(shù)據(jù)
按照上述思路設(shè)計的嵌入式數(shù)據(jù)采集分析儀已經(jīng)初步實現(xiàn)。使用s3c44b0x內(nèi)置A/D變換器進(jìn)行實驗。選擇內(nèi)觸發(fā)方式和倍頻觸發(fā)方式分別采集714Hz三角波。內(nèi)觸發(fā)方式選擇最高采樣頻率fs=100kHz,采樣長度為512點(diǎn);倍頻觸發(fā)模式選擇32倍頻(N=32),采集4個周期(M=4);各采樣兩組。將采集到的數(shù)據(jù)通過USB傳輸?shù)诫娔X,用Matlab軟件進(jìn)行數(shù)據(jù)處理,分別繪制波形圖;進(jìn)行FFT后繪制幅頻圖。結(jié)果如圖4所示。
從圖4中各圖可以看出由本儀器采集的數(shù)據(jù)繪制的波形平滑沒有雜波,說明儀器實現(xiàn)了其性能指標(biāo)。
圖4 對三角波的采樣對比分析圖
對比圖4中各圖可以看出這兩種觸發(fā)方式的幾點(diǎn)區(qū)別:
(1)圖4a和圖4c中兩個波形存在相位差異;而圖4e和圖4g的相位是相同的。這說明內(nèi)觸發(fā)采樣開始和結(jié)束的時間是隨機(jī)的;而倍頻觸發(fā)采樣的起點(diǎn)(開始于外觸發(fā))和終點(diǎn)(結(jié)束于整周期末尾),都是相對固定的。
(2)圖4a和圖4c的波形都不是整周期的;圖4e和圖4g的波形都是整4個周期。
(3)反映在各自的FFT幅頻圖上:圖4b和圖4d都有明顯的泄漏效應(yīng)和柵欄效應(yīng),最大旁瓣幅值為一倍頻幅值的5.75%;圖4f和圖4h都是干凈的三角波n次諧波分量的譜線,最大旁瓣幅值僅為一倍頻幅值的1.09%。上述現(xiàn)象說明倍頻觸發(fā)方式能保證采樣數(shù)據(jù)序列的整周期截斷,保證采樣頻率是待測信號基頻的整數(shù)倍,有利于提高FFT信號分析的準(zhǔn)確性;內(nèi)觸發(fā)采樣則由于其采樣頻率和截斷長度的人為性,以及開始和結(jié)束的隨機(jī)性,不具備這個特點(diǎn)。要得到好的 FFT結(jié)果,或者修改采樣頻率和截斷長度,或者加特種窗函數(shù),給測試過程帶來許多麻煩。
每一種被測信號均有不同的特性。選擇合適的觸發(fā)方式可以過濾無用的信號,獲得更多有用的信號。例如進(jìn)行旋轉(zhuǎn)機(jī)械振動測試時選用本儀器提供的倍頻觸發(fā)方式就可以獲得適合進(jìn)行FFT的整周期信號,利于后續(xù)分析;其他的觸發(fā)方式就顯得不適合。而采集激勵振動信號就需要選用電平觸發(fā)方式,以準(zhǔn)確獲得從激勵開始的信號。作為儀器設(shè)計者,應(yīng)當(dāng)多進(jìn)行各種測試實踐,了解各種測試的實際需要,不斷豐富儀器的采樣觸發(fā)方式,以適應(yīng)不同測試環(huán)境的需要。
結(jié)論
綜上所述,基于ARM7開發(fā)的數(shù)據(jù)采集分析儀除具有單通道最高200ksps的數(shù)據(jù)采集能力外,具有現(xiàn)場顯示波形并進(jìn)行數(shù)據(jù)分析等虛擬儀器的功能是其一大特色。對于采樣觸發(fā)方式的豐富使儀器能從容應(yīng)對更多測試環(huán)境的特殊要求。USB接口便于連接電腦傳輸數(shù)據(jù),速度可達(dá)1Mbytes。
自上世紀(jì)90年代虛擬儀器概念提出以來,虛擬儀器極大的提高了儀器設(shè)計應(yīng)用的靈活性和適用性。在當(dāng)今嵌入式系統(tǒng)大發(fā)展和微處理器性能不斷提高的情況下,將虛擬儀器便攜化,在保持其功能靈活性的前提下,重新使儀器擺脫電腦的束縛,是儀器發(fā)展的一個潮流?;贏RM7的嵌入式便攜數(shù)據(jù)采集分析儀雖然只是初步實現(xiàn)了便攜式虛擬儀器的功能,但是證明了這種理論在實踐上的可行性。隨著應(yīng)用軟件的不斷開發(fā)升級,實現(xiàn)目前全部的虛擬儀器功能也是必然的結(jié)果。