基于 SoPC 的震動(dòng)信號(hào)采集設(shè)備設(shè)計(jì)
在工程結(jié)構(gòu)測(cè)試和分析中,震動(dòng)信號(hào)的采集是一項(xiàng)基礎(chǔ)性的工作,其采集的速度、精度和穩(wěn)定度對(duì)測(cè)試的結(jié)果分析有重要的意義。震動(dòng)數(shù)據(jù)分析技術(shù)的不斷提高要求速度更快、精度更高、功能更強(qiáng)、成本更低的數(shù)據(jù)采集系統(tǒng)。AD7329恰好滿(mǎn)足這些要求,它集成了可編程輸入范圍切換矩陣、高精度基準(zhǔn)源和高性能A/D轉(zhuǎn)換單元于一體,而Nios Ⅱ嵌入式軟核CPU具有數(shù)據(jù)吞吐率高、配置靈活、可升級(jí)性強(qiáng)等特點(diǎn),是一款性?xún)r(jià)比很高的微控制器,結(jié)合兩者并通過(guò)高速SPI總線(xiàn)進(jìn)行通信,構(gòu)成了高速、高精度震動(dòng)信號(hào)采集設(shè)備。
SoPC與Nios Ⅱ嵌入式系統(tǒng)簡(jiǎn)介
SoPC(System On Programmable Chip,可編程的片上系統(tǒng))是Altera公司提出來(lái)的一種靈活、高效的SoC解決方案。它將處理器、存儲(chǔ)器、I/O口等系統(tǒng)設(shè)計(jì)需要的功能模塊集成到一個(gè)可編程器件上,構(gòu)成一個(gè)可編程的片上系統(tǒng)。SoPC是PLD和ASIC技術(shù)融合的結(jié)果,可以認(rèn)為SoPC代表了半導(dǎo)體產(chǎn)業(yè)未來(lái)的發(fā)展方向。
Nios Ⅱ系列32位RISC嵌入式處理器具有超過(guò)200DMIP的性能,在低成本FPGA中實(shí)現(xiàn)成本只有35美分。由于處理器是軟核形式,具有很大的靈活性,可以在多種系統(tǒng)設(shè)置組合中進(jìn)行選擇,滿(mǎn)足成本和功能要求。采用Nios Ⅱ處理器進(jìn)行設(shè)計(jì),可以幫助用戶(hù)將產(chǎn)品迅速推向市場(chǎng),延長(zhǎng)產(chǎn)品生命周期,防止出現(xiàn)處理器逐漸過(guò)時(shí)的情況。
AD7329模/數(shù)轉(zhuǎn)換器
AD7329是ADI公司推出的基于iCMOS(industrial CMOS)工藝的8通道12位精度1MSa/s采樣速度的逼近型模/數(shù)轉(zhuǎn)換器。iCMOS是一種結(jié)合了高電壓CMOS和低電壓CMOS的特殊工藝,使得高精度模擬器件操作電壓的范圍達(dá)到了33V,遠(yuǎn)遠(yuǎn)高于上一代器件所能承受的極限。由于采用了此種新的工藝,AD7329在實(shí)現(xiàn)雙極性輸入的同時(shí)提高了精度,并且減小了功耗和體積。
AD7329可以實(shí)現(xiàn)真正的雙極性輸入,并且具有4種可編程輸入范圍,即±10V,±5V,±2.5V和0~+10V,每個(gè)模擬輸入通道可以被獨(dú)立設(shè)置。同時(shí)模擬輸入通道也可配置成單端輸入模式、差分輸入模式以及偽差分模式。該器件內(nèi)置了一個(gè)2.5V的基準(zhǔn)源,同時(shí)也允許外部基準(zhǔn)的輸入,在外部基準(zhǔn)為3V時(shí)雙極性模擬輸入的范圍是±12V。該器件采用的是SPI高速串行接口,總線(xiàn)時(shí)鐘頻率可以穩(wěn)定工作在20MHz,在給ADC提供時(shí)鐘的同時(shí)完成數(shù)據(jù)的傳輸。
系統(tǒng)原理與組成
系統(tǒng)組成框圖如圖1所示,包括Nios Ⅱ嵌入式處理器、Avalon總線(xiàn)、JTAG控制器和調(diào)試接口、SDRAM、DM9000A網(wǎng)絡(luò)接口以及AD7329采樣控制模塊。
圖1 系統(tǒng)結(jié)構(gòu)框圖
在A/D采樣控制器的控制下,AD7329采集得到的電壓信號(hào)通過(guò)SPI接口傳送到控制器的FIFO中,當(dāng)數(shù)據(jù)量達(dá)到FIFO的75%時(shí),控制器產(chǎn)生中斷,通知CPU讀取數(shù)據(jù)。CPU收到中斷后,啟動(dòng)DMA,將A/D采樣控制器FIFO中的數(shù)據(jù)傳送到以太網(wǎng)控制器的FIFO中,而后利用NicheStack協(xié)議棧采用UDP方式將數(shù)據(jù)發(fā)送到網(wǎng)上。JTAG控制器和調(diào)試接口用來(lái)軟硬件調(diào)試和系統(tǒng)軟硬件程序的配置。SDRAM用來(lái)運(yùn)行軟件程序和提供FIFO的物理空間。
AD7329與Nios Ⅱ接口的設(shè)計(jì)
1 接口硬件設(shè)計(jì)
SPI(Serial Peripheral Interface)即串行外圍設(shè)備接口是Motorola公司推出的一種同步串行接口。SPI總線(xiàn)是一種4線(xiàn)同步總線(xiàn),占用較少的I/O資源。Nios Ⅱ與外界SPI接口通信可采用軟件控制I/O、Mege IP Core以及自定義外設(shè)等方法。
軟件控制I/O是利用CPU執(zhí)行程序來(lái)模擬SPI接口的時(shí)序從而完成通信,其特點(diǎn)是設(shè)計(jì)簡(jiǎn)單、使用方便,但是由于CPU長(zhǎng)時(shí)間進(jìn)行時(shí)序模擬,不能發(fā)揮出高速信號(hào)處理的優(yōu)勢(shì),故不適合本設(shè)計(jì);Mege IP Core是Altera公司(或第三方)推出的可以實(shí)現(xiàn)特定功能的IP核,通過(guò)將它集成到SoPC系統(tǒng)中,可以快速構(gòu)成SPI接口,但利用此種方法只能完成基本的通信功能,不能實(shí)現(xiàn)更多的擴(kuò)展,故本設(shè)計(jì)不采用;自定義外設(shè)即定制基于Avalon的用戶(hù)外設(shè),通過(guò)自行設(shè)計(jì)SPI硬件控制器,在實(shí)現(xiàn)通信功能的同時(shí),使其具有采樣通道控制、FIFO緩沖以及DMA功能,使CPU不再參與通信操作,而利用DMA中斷進(jìn)行采樣數(shù)據(jù)的傳輸,可以極大的提高CPU利用率,故本設(shè)計(jì)采用此種方法。
本設(shè)計(jì)采用Verilog硬件描述語(yǔ)言對(duì)自定義的A/D采樣控制器進(jìn)行設(shè)計(jì)。如圖2所示,控制器與Avalon總線(xiàn)通過(guò)data_bus、addr、pro_clk、WR、RD以及interrupt進(jìn)行通信,接受CPU的控制指令和回傳采樣數(shù)據(jù);控制器與AD7329通過(guò)miso、mosi、sclk以及CS進(jìn)行通信,完成采集的控制和數(shù)據(jù)的傳輸??刂破髟O(shè)計(jì)好后利用SoPC Builder對(duì)其封裝成一個(gè)元件(也可稱(chēng)之為IP核),而后可以像Altera提供的Mege IP Core外設(shè)一樣使用。[!--empirenews.page--]
圖2 SPI原理圖
2 接口軟件實(shí)現(xiàn)
為了實(shí)現(xiàn)A/D采樣控制器的功能,除了硬件設(shè)計(jì)外,還需要開(kāi)發(fā)相應(yīng)的硬件抽象層(HAL)驅(qū)動(dòng)程序。HAL可以看作是一個(gè)支持應(yīng)用程序開(kāi)發(fā)的軟件平臺(tái),它提供API函數(shù)接口,屏蔽硬件訪問(wèn)細(xì)節(jié),雖然占用了一些額外的資源,但大大增加了應(yīng)用程序的開(kāi)發(fā)速度和可移植性。
驅(qū)動(dòng)開(kāi)發(fā)的第一步就是創(chuàng)建一個(gè)用于描述設(shè)備寄存器的設(shè)備頭文件,在這個(gè)文件中應(yīng)用清晰易懂的宏符號(hào)描述出寄存器集合,并給出其訪問(wèn)方法;第二步為創(chuàng)建驅(qū)動(dòng)程序,即為應(yīng)用程序編寫(xiě)API函數(shù),用以完成控制器初始化、工作模式設(shè)定、SPI通信等功能;驅(qū)動(dòng)程序開(kāi)發(fā)完畢后,還需要把源程序文件放到約定的目錄下,并為它編寫(xiě)一個(gè)簡(jiǎn)單的Makefile文件,這樣,驅(qū)動(dòng)程序才能編譯到HAL系統(tǒng)庫(kù)中。下面列出了主要的API函數(shù):
bool Init_SPI(void); //SPI控制器初始化,返回值為0表示成功,下同
bool Init_ad7329(void); //AD7329初始化
bool Set_ad7329_InputMode(unsigned int inputmode) ; //設(shè)置模擬輸入模式
bool Set_ad7329_PowerMode(unsigned int powermode); //設(shè)置輸入電源范圍
bool Set_ad7329_WorkMode(char workmode,char startchannl,char number);
//設(shè)置工作模式:即所選通道、通道自動(dòng)切換模式
int Set_ad7329_SampleStart(void); //開(kāi)始采樣,返回值為采樣工作模式
3 仿真與測(cè)試
A/D采樣控制器是在Quartus Ⅱ 7.2 SP3環(huán)境下設(shè)計(jì)的,在完成時(shí)序仿真后采用modelsim 7.2中進(jìn)行功能仿真,仿真結(jié)果如圖3所示。通過(guò)仿真結(jié)果可以看出,在CPU控制下,通過(guò)Avalon總線(xiàn)控制命令和數(shù)據(jù)傳遞給A/D采樣控制器并寫(xiě)入到其內(nèi)部寄存器中,在控制命令的作用下,完成AD7329的初始化、輸入模式、輸入電壓范圍和采樣通道的選擇,并開(kāi)始進(jìn)行采樣。在采樣數(shù)據(jù)達(dá)到預(yù)定數(shù)量時(shí),interrupt變低,通知CPU啟動(dòng)DMA數(shù)據(jù)傳輸,而后,在DMA控制器的控制下,完成了數(shù)據(jù)的讀取。
圖3 SPI仿真時(shí)序圖
結(jié)論
本系統(tǒng)經(jīng)多次實(shí)驗(yàn)室測(cè)試,可以對(duì)多種不同輸出范圍的模擬震動(dòng)傳感器進(jìn)行信號(hào)采集,并且精度高、速度快。由于將采集得到的數(shù)據(jù)實(shí)時(shí)發(fā)送到以太網(wǎng)上,故通過(guò)連接在網(wǎng)上的工作站可同時(shí)對(duì)多套信號(hào)采集設(shè)備進(jìn)行控制和記錄,大大提高了系統(tǒng)的可擴(kuò)展性。綜上可以看出,本系統(tǒng)非常適合在對(duì)采集速度和傳感器節(jié)點(diǎn)數(shù)量要求較高的測(cè)試領(lǐng)域應(yīng)用。