<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > 基于 SoPC 的震動(dòng)信號采集設備設計方法

基于 SoPC 的震動(dòng)信號采集設備設計方法

作者: 時(shí)間:2009-08-16 來(lái)源:網(wǎng)絡(luò ) 收藏

與Nios Ⅱ接口的

1 接口硬件

SPI(Serial Peripheral Interface)即串行外圍設備接口是Motorola公司推出的一種同步串行接口。SPI總線(xiàn)是一種4線(xiàn)同步總線(xiàn),占用較少的I/O資源。Nios Ⅱ與外界SPI接口通信可采用軟件控制I/O、Mege IP Core以及自定義外設等方法。

軟件控制I/O是利用CPU執行程序來(lái)模擬SPI接口的時(shí)序從而完成通信,其特點(diǎn)是簡(jiǎn)單、使用方便,但是由于CPU長(cháng)時(shí)間進(jìn)行時(shí)序模擬,不能發(fā)揮出高速信號處理的優(yōu)勢,故不適合本設計;Mege IP Core是Altera公司(或第三方)推出的可以實(shí)現特定功能的IP核,通過(guò)將它集成到系統中,可以快速構成SPI接口,但利用此種方法只能完成基本的通信功能,不能實(shí)現更多的擴展,故本設計不采用;自定義外設即定制基于A(yíng)valon的用戶(hù)外設,通過(guò)自行設計SPI硬件控制器,在實(shí)現通信功能的同時(shí),使其具有采樣通道控制、FIFO緩沖以及DMA功能,使CPU不再參與通信操作,而利用DMA中斷進(jìn)行采樣數據的傳輸,可以極大的提高CPU利用率,故本設計采用此種方法。

本設計采用Verilog硬件描述語(yǔ)言對自定義的A/D采樣控制器進(jìn)行設計。如圖2所示,控制器與Avalon總線(xiàn)通過(guò)data_bus、addr、pro_clk、WR、RD以及interrupt進(jìn)行通信,接受CPU的控制指令和回傳采樣數據;控制器與通過(guò)miso、mosi、sclk以及CS進(jìn)行通信,完成采集的控制和數據的傳輸??刂破髟O計好后利用 Builder對其封裝成一個(gè)元件(也可稱(chēng)之為IP核),而后可以像Altera提供的Mege IP Core外設一樣使用。

圖2 SPI原理圖

2 接口軟件實(shí)現

為了實(shí)現A/D采樣控制器的功能,除了硬件設計外,還需要開(kāi)發(fā)相應的硬件抽象層(HAL)驅動(dòng)程序。HAL可以看作是一個(gè)支持應用程序開(kāi)發(fā)的軟件平臺,它提供API函數接口,屏蔽硬件訪(fǎng)問(wèn)細節,雖然占用了一些額外的資源,但大大增加了應用程序的開(kāi)發(fā)速度和可移植性。

驅動(dòng)開(kāi)發(fā)的第一步就是創(chuàng )建一個(gè)用于描述設備寄存器的設備頭文件,在這個(gè)文件中應用清晰易懂的宏符號描述出寄存器集合,并給出其訪(fǎng)問(wèn)方法;第二步為創(chuàng )建驅動(dòng)程序,即為應用程序編寫(xiě)API函數,用以完成控制器初始化、工作模式設定、SPI通信等功能;驅動(dòng)程序開(kāi)發(fā)完畢后,還需要把源程序文件放到約定的目錄下,并為它編寫(xiě)一個(gè)簡(jiǎn)單的Makefile文件,這樣,驅動(dòng)程序才能編譯到HAL系統庫中。下面列出了主要的API函數:

bool Init_SPI(void); //SPI控制器初始化,返回值為0表示成功,下同
bool Init_ad7329(void); //初始化
bool Set_ad7329_InputMode(unsigned int inputmode) ; //設置模擬輸入模式
bool Set_ad7329_PowerMode(unsigned int powermode); //設置輸入電源范圍
bool Set_ad7329_WorkMode(char workmode,char startchannl,char number);
//設置工作模式:即所選通道、通道自動(dòng)切換模式
int Set_ad7329_SampleStart(void); //開(kāi)始采樣,返回值為采樣工作模式

3 仿真與測試

A/D采樣控制器是在Quartus Ⅱ 7.2 SP3環(huán)境下設計的,在完成時(shí)序仿真后采用modelsim 7.2中進(jìn)行功能仿真,仿真結果如圖3所示。通過(guò)仿真結果可以看出,在CPU控制下,通過(guò)Avalon總線(xiàn)控制命令和數據傳遞給A/D采樣控制器并寫(xiě)入到其內部寄存器中,在控制命令的作用下,完成AD7329的初始化、輸入模式、輸入電壓范圍和采樣通道的選擇,并開(kāi)始進(jìn)行采樣。在采樣數據達到預定數量時(shí),interrupt變低,通知CPU啟動(dòng)DMA數據傳輸,而后,在DMA控制器的控制下,完成了數據的讀取。

圖3 SPI仿真時(shí)序圖

結論

本系統經(jīng)多次實(shí)驗室測試,可以對多種不同輸出范圍的模擬震動(dòng)傳感器進(jìn)行信號采集,并且精度高、速度快。由于將采集得到的數據實(shí)時(shí)發(fā)送到以太網(wǎng)上,故通過(guò)連接在網(wǎng)上的工作站可同時(shí)對多套信號采集設備進(jìn)行控制和記錄,大大提高了系統的可擴展性。綜上可以看出,本系統非常適合在對采集速度和傳感器節點(diǎn)數量要求較高的測試領(lǐng)域應用。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>