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