一種嵌入式便攜數(shù)據(jù)采集分析儀
引言
本文引用地址:http://butianyuan.cn/article/171587.htm對旋轉機械的多點振動測試實踐中,需要使用多種儀器,如示波器、動平衡儀、振動分析儀等。隨著測試技術的進步,虛擬儀器的出現(xiàn)將其合而為一,大大簡化了復雜的測試工作。虛擬儀器的概念是使用計算機對被測信號進行數(shù)據(jù)采集,并對采集到的數(shù)據(jù)序列進行分析和顯示的全過程。按照虛擬儀器概念搭建的儀器需要三部分:計算機、數(shù)據(jù)采集硬件和分析軟件。數(shù)據(jù)采集硬件一般由A/D板卡實現(xiàn)。然而計算機的進步和總線的變化使曾經(jīng)可行的測量結構和分析程序在新的總線、操作系統(tǒng)上不能正常工作。各個廠家的A/D板卡一般只具有簡單的采樣觸發(fā)方式;硬件和windows底層源代碼的保密性又扼殺了用戶自行開發(fā)新的采樣觸發(fā)方式的可能性。PC機體積過大不便移動工作;筆記本電腦雖便攜,內(nèi)部幾乎沒有插入板卡的空間,接口性能也嬌氣。這些不足又為測試工作帶來了新的不便。
近年來嵌入式技術發(fā)展很快,使用單片機控制的數(shù)據(jù)采集系統(tǒng)方興未艾。但由于單片機性能的限制,采樣速率有限,存儲空間很小,不能滿足高速大容量采樣的需求,更不可能使儀器運行分析軟件,擺脫電腦獨立工作。
ARM系列微處理器功耗低且性能大大高于單片機,使在嵌入式系統(tǒng)上實現(xiàn)虛擬儀器成為可能。本文基于ARM7TDMI設計的嵌入式數(shù)據(jù)采集分析儀實現(xiàn)了上述目的。
硬件結構和工作原理
儀器的硬件結構及工作原理圖如圖1所示。處理器選用三星(samsung)公司的s3c44b0x替代51單片機,在保持微小功耗的前提下獲得了更高的運行頻率和更強大的數(shù)據(jù)處理能力。其ARM7TDMI內(nèi)核應用改進的RISC設計思想來獲得更好的功耗性能比,具有0.06mW/MHz的低功耗,保證儀器可以在電池供電條件下工作較長時間。ARM7的三級指令流水線提供0.97MIPS/MHz的指令效率,接近每周期執(zhí)行一條指令。
圖1 硬件結構及工作原理圖
S3c44b0x外接10MHz的晶體振蕩器,通過內(nèi)部的PLL倍頻,運行在64MHz的主頻下。這樣的主頻比一般單片機高了5~10倍,保證處理器在控制高速A/D進行數(shù)據(jù)采集的同時,還能提供額外運算時間來分析數(shù)據(jù)。除ARM7TDMI內(nèi)核外,s3c44b0x還提供PWM計數(shù)器、UART、DMA、 8通道10位精度A/D變換器等外圍設備。
存儲器方面,系統(tǒng)配置了8Mbyte的SDRAM和16Mbyte的FLASH。大容量的SDRAM提供了充足的程序運行空間和采集數(shù)據(jù)緩存。FLASH 一部分用作系統(tǒng)的啟動存儲器;一部分存儲采集到的數(shù)據(jù),即使掉電也不會丟失。存儲器通過16位數(shù)據(jù)線、地址線和片選線與處理器連接。S3c44b0x提供八個存儲器片選空間(bank)。
A/D變換器是數(shù)據(jù)采集的關鍵部件。儀器擁有兩個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ā)端通過一個多路開關分別連接了儀器外時鐘輸入端和處理器的計數(shù)器輸出端,以實現(xiàn)多種觸發(fā)方式。此外,處理器還可以通過數(shù)據(jù)線傳送命令的方式觸發(fā)AD7859進行采樣。
USB控制器是數(shù)據(jù)傳輸?shù)闹饕考?。本儀器選用Philips公司的PDIUSBD12芯片,符合USB1.1標準,數(shù)據(jù)傳輸速度達到12Mbps。 PDIUSBD12作為下位機通過8位數(shù)據(jù)線、地址線和片選線連接到s3c44b0x,占用一個存儲器bank。PDIUSBD12的INT_N管腳連接到s3c44b0x的EINT2管腳,通過中斷方式通知處理器處理USB上位機的呼叫。PDIUSBD12的硬件連接電路原理圖如圖2所示。
圖2 PDIUSBD12硬件連接原理圖
儀器的人機交互界面由一塊320×240的高分辨率單色液晶顯示器和一塊4×4鍵盤組成。液晶顯示器模塊以8位數(shù)據(jù)線、地址和片選連接到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
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論