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