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