基于ARM和FPGA的微加速度計數(shù)據(jù)采集系統(tǒng)設(shè)計
摘要:基于常用的MEMS慣性器件微型加速度計,介紹一種采用ARM和FPGA架構(gòu)來采集加速度數(shù)值的設(shè)計方案,微加速度計的模擬輸出信號經(jīng)A/D芯片轉(zhuǎn)換后由FPGA進行處理和緩存,然后ARM接收FPGA的輸出數(shù)據(jù)并對數(shù)據(jù)進行顯示和存儲.對如何用FPGA實現(xiàn)該數(shù)據(jù)采集系統(tǒng)的傳輸控制和數(shù)據(jù)緩存,以及FPGA與A/D轉(zhuǎn)換芯片和ARM的接口設(shè)計給出了說明,實現(xiàn)了加速度數(shù)值的采集、傳輸、顯示和存儲,該方法配置靈活、通用性強,可以較好地移植到相關(guān)器件的數(shù)據(jù)采集系統(tǒng)中。
關(guān)鍵詞:數(shù)據(jù)采集;微加速度計;FPGA;ARM;TLC0820
0 引言
加速度計是一種應(yīng)用十分廣泛的慣性傳感器,它可以用來測量運動系統(tǒng)的加速度。目前的加速度計大多采用微機電技術(shù)(MEMS)進行設(shè)計和制造的微型加速度計,由于采用了微機電技術(shù),其設(shè)計尺寸大大縮小,一個MEMS加速度計只有指甲蓋的一小部分,MEMS加速度計具有體積小、重量輕、能耗低等優(yōu)點。
隨著微加速度計的應(yīng)用越來越廣泛,對于微加速度計的數(shù)據(jù)信號采集和存儲變得極為重要。傳統(tǒng)的數(shù)據(jù)采集方法多數(shù)是用單片機完成的,其編程簡單、控制靈活,但缺點是控制周期長、速度慢,特別是對高速轉(zhuǎn)換的數(shù)據(jù)來說,單片機的慢速度極大地限制了數(shù)據(jù)傳輸速度。而FPGA(現(xiàn)場可編程門陣列)具有單片機無法比擬的優(yōu)勢。FPGA時鐘頻率高,內(nèi)部延時小,全部控制邏輯由硬件完成,速度快、效率高,適于大數(shù)據(jù)量的高速傳輸控制。在高速數(shù)據(jù)采集方面,F(xiàn)PGA有單片機無法比擬的優(yōu)勢,然而單片機的接口豐富,數(shù)據(jù)處理能力強,便于完成數(shù)據(jù)的顯示和存儲等操作。
綜合單片機與FPGA的優(yōu)點,這里介紹一種基于ARM和FPGA的微加速度計數(shù)據(jù)采集存儲系統(tǒng),結(jié)合MXR6150G/M加速度計傳感器和TLC0820-A/D轉(zhuǎn)換芯片,提供了一種配置靈活、通用性強的數(shù)據(jù)采集方案。
1 系統(tǒng)整體設(shè)計方案
圖1是數(shù)據(jù)采集系統(tǒng)的總體結(jié)構(gòu)框圖,該系統(tǒng)主要由雙軸加速度計、A/D轉(zhuǎn)換器、FPGA和ARM處理器四大部分組成。雙軸加速度計輸出兩路模擬信號,分別代表z軸與y軸的加速度值,通過A/D轉(zhuǎn)換芯片把輸入的兩路模擬信號轉(zhuǎn)換為8位的數(shù)字信號,F(xiàn)PGA接收來自A/D轉(zhuǎn)換芯片的數(shù)字信號,并對數(shù)字信號進行處理,處理后的數(shù)據(jù)經(jīng)過FPGA中的FIFO存儲器緩存后由ARM處理器采取中斷方式接收采集,采集到的數(shù)據(jù)可以通過串口通信在PC機上實時顯示,也可以通過IDE接口存儲到大容量硬盤。
2 系統(tǒng)硬件設(shè)計與實現(xiàn)
2.1 MXR6150G/M加速度計傳感器
MXR6150G/M是無錫美新半導(dǎo)體公司生產(chǎn)的雙軸加速度計傳感器,它采用標(biāo)準(zhǔn)的亞微米CMOS工藝制造,可以測量從-5g~+5g(g為重力加速度)范圍內(nèi)的加速度信號,該加速度計是利用兩路模擬電壓反映加速度值的大小,當(dāng)加速度計靜止,加速度值為0時輸出電壓為1.50 V,電壓輸出靈敏度為150 mV/g。圖2為此加速度計的外觀頂視圖,表1為加速度計的引腳描述,其中引腳7和引腳6分別輸出x軸和y軸的加速度分量。實際加速度的值需要將x軸與y軸加速度的值進行合成得到,這可利用FPGA的并行計算處理來完成。
2.2 8位A/D轉(zhuǎn)換芯片TLC0820
TLC0820是德州儀器公司(TI)推出的,采用先進LinCMOS工藝制造的A/D轉(zhuǎn)換器,它由兩個4位的閃速(FLASH)轉(zhuǎn)換器,一個4位的數(shù)/模轉(zhuǎn)換器,一個計算誤差放大器,控制邏輯電路和結(jié)果鎖存電路組成。它采用8位并行輸出,并且不需要外部時鐘和振蕩元件,廣泛應(yīng)用于高速數(shù)據(jù)采集系統(tǒng)、工業(yè)控制和工廠自動化系統(tǒng),其封裝引腳如圖3所示。引腳功能描述如下:ANLG IN為模擬輸入;為片選,低有效;DO~D3,D4~D7為三態(tài)數(shù)據(jù)輸出;為中斷輸出端,表示轉(zhuǎn)換結(jié)束;MODE為方式選擇輸入;為溢出標(biāo)志;為讀輸人端;REF-為參考電壓下限值;REF+為參考電壓上限值;VCC為電源電壓;為寫輸入/讀狀態(tài)輸出。
2.3 Altera-FPGA與ARM處理器
該系統(tǒng)的FPGA采用Altera FPGA公司的CycloneⅡ系列的EP2C35實現(xiàn),EP2C35提供多達33 216個邏輯單元(LE),35個18×18位乘法器483 840 b的內(nèi)部RAM塊,專用外部存儲器接口電路,4個鎖相環(huán)(PLL)和高速差分I/O等功能。
該系統(tǒng)中采用的ARM處理器是Philips公司的LPC2210,是基于一個支持實時仿真和嵌入式跟蹤的16/32位ARM7TDMI-S CPU的微控制器。 LPC2210的144腳封裝、極低的功耗、兩個32位定時器、八路lO位ADC,PWM輸出以及多達九個外部中斷使其特別適用于工業(yè)控制、醫(yī)療系統(tǒng)、訪問控制和電子收款機等。通過配置,LPC2210最多可提供76個GPIO。由于內(nèi)置了寬范圍的串行通信接口,其也非常適合于通信網(wǎng)關(guān)、協(xié)議轉(zhuǎn)換器以及其他各種類型的應(yīng)用。
3 采集系統(tǒng)整體實施方案
3.1 FPGA控制A/D芯片進行加速度計數(shù)據(jù)采集
該加速度計是利用兩路模擬電壓輸出來反映加速度值的大小,當(dāng)加速度值為O時輸出電壓為1.50 V,電壓輸出靈敏度為150 mV/g,A/D轉(zhuǎn)換器模擬輸入電壓范圍為VCC±0.1 V,低于VREF- +(1/2)LSB或高于VREF+ -(1/2)LSB的模擬輸入電壓分別轉(zhuǎn)換為00000000或1111111,系統(tǒng)中所加電壓分別為VCC=VREF+=5 V,VREF-=GND=O V。TLC0820可通過MODE的設(shè)置工作在只讀和讀寫兩種方式。當(dāng)MODE為低時,轉(zhuǎn)換器為只讀方式。在這種方式中,作為輸出,且作為準(zhǔn)備輸出端;同時。當(dāng)為低時,亦為低,表明器件忙,轉(zhuǎn)換器在的下降沿開始轉(zhuǎn)換,經(jīng)過不到2.5μs轉(zhuǎn)換完成,此時下降.為高阻,數(shù)據(jù)輸出也由高阻變?yōu)橛行У臄?shù)據(jù)端,當(dāng)數(shù)據(jù)讀出后,變高,返回高,數(shù)據(jù)輸出端返回到高阻態(tài)。當(dāng)MODE為高時,轉(zhuǎn)換器為讀/寫方式,作為寫輸出端。當(dāng)和為低時,轉(zhuǎn)換器開始測量輸入信號,大約600 ns后返回高,轉(zhuǎn)換器完成轉(zhuǎn)換,在讀寫方式中,在上升沿開始轉(zhuǎn)換。該實驗采用讀寫方式來控制A/D芯片來讀取加速度計的值,所需的控制信號由FPGA輸出,相關(guān)的邏輯控制采用Verilog硬件描述語言進行編寫,圖4為QuartusⅡ中FPGA連接A/D芯片與ARM系統(tǒng)的頂層模塊圖。
由A/D轉(zhuǎn)換輸出轉(zhuǎn)換后的8位數(shù)字信號,可以從QuartusⅡ內(nèi)置的邏輯分析儀中讀取,圖5為通過QuartusⅡ軟件內(nèi)置邏輯分析儀查看讀取數(shù)據(jù)值的截圖。從圖5中可以看出在讀寫方式中,在WR/RDY的上升沿開始啟動轉(zhuǎn)換,到INT的下降沿轉(zhuǎn)換完成,轉(zhuǎn)換時間可通過時間標(biāo)尺計算出來,為24×40=960 ns,之后就可以通過RD的上升沿開始讀取轉(zhuǎn)換后的數(shù)據(jù)到數(shù)據(jù)總線中,如圖5中的XDD以及YDD。因為單片機的處理速度一般都低于A/D轉(zhuǎn)換芯片的速度,故將XDD與YDD的數(shù)據(jù)存儲到FPGA中的FIFO中,F(xiàn)IFO便起到數(shù)據(jù)緩沖的作用,以備接下來單片機對數(shù)據(jù)進行讀取。
3.2 ARM系統(tǒng)接收FPGA數(shù)據(jù)
圖6為FPGA與ARM相連接部分的傳輸接口框圖。ARM系統(tǒng)主要控制數(shù)據(jù)采集的啟動和采集結(jié)束后對數(shù)據(jù)的顯示和存儲,在數(shù)據(jù)采集的過程中,ARM處理器系統(tǒng)讀取FPGA中的數(shù)據(jù),實際上是讀取FIFO中的數(shù)據(jù)。FIFO的容量可以通過軟件進行設(shè)置,它有兩個狀態(tài)顯示信號,分別為ALFUL和EMPTY,ALFUL是指FIFO接近滿,當(dāng)ALFUL從低電平變?yōu)楦唠娖胶?,ARM單片機系統(tǒng)就可以發(fā)送RDFIFO信號來讀取FIFO中的數(shù)據(jù)輸出端口的數(shù)據(jù),當(dāng)FIFO中的EMPTY信號從低電平變?yōu)楦唠娖?,表明FIFO中已無數(shù)據(jù)可讀,ARM單片機就開始等待ALFUL的跳變進行下一次的讀取。
3.3 加速度數(shù)據(jù)顯示和存儲
由ARM系統(tǒng)采集到的數(shù)據(jù)可通過串口線發(fā)送到上位機進行實時顯示,也可以通過模擬IDE通信協(xié)議儲存到IDE硬盤中。LPC2210通過串口線與上位機進行通信主要是應(yīng)用ARM芯片LPC2210中的通用異步接收/發(fā)送裝置UART0,而使用LPC2210的通用可編程I/O口,可以模擬產(chǎn)生IDE硬盤的讀寫時序,實現(xiàn)對存儲設(shè)備的讀寫操作。這樣可以實現(xiàn)加速度數(shù)據(jù)的顯示和存儲。
4 結(jié)語
這里介紹一種MEMS器件微加速度計的數(shù)據(jù)采集設(shè)計方案,結(jié)合當(dāng)前應(yīng)用廣泛的處理芯片ARM和FPGA,給出了一種配置靈活、通用性強的數(shù)據(jù)采集方案。實驗中可準(zhǔn)確采集美新加速度計MXR6150G/M的加速度信號,采集到的信號既可以在上位機實時顯示,又可以存儲在IDE接口硬盤中,達到了數(shù)據(jù)顯示和存儲的目的。