《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 在NIOS-II系統(tǒng)中A/D數(shù)據(jù)采集接口的設計與實現(xiàn)
在NIOS-II系統(tǒng)中A/D數(shù)據(jù)采集接口的設計與實現(xiàn)
摘要: 在FPGA系統(tǒng)中,實現(xiàn)對外部A/D數(shù)據(jù)采集電路的控制接口邏輯,,由于其邏輯功能不是很復雜,因此可采用自定義的方式,。采用這種方法進行設計有兩種途徑。①從軟件上去實現(xiàn)。這種方案將NIOS處理器作為一個主控制器,通過編寫程序來控制數(shù)據(jù)轉換電路,。由于NIOS處理器的工作頻率相對于外部設備來說要高出許多,故此種方法會造成CPU資源極大的浪費,;②用FPGA 的邏輯資源來實現(xiàn)A/D采集電路的控制邏輯,。FPGA有著豐富的邏輯資源和接口資源,在其中實現(xiàn)并行的數(shù)據(jù)采集很少會受到硬件資源的限制,,在功能上,,設計的接口控制邏輯相當于一個主控制器,,它是針對具體的外部電路而實現(xiàn)的,,容易滿足要求、又能節(jié)約資源,,提高系統(tǒng)性能,。因此,采用硬件邏輯去實現(xiàn)控制將是一種較好的方式,。
Abstract:
Key words :

  在FPGA系統(tǒng)中,,實現(xiàn)對外部A/D數(shù)據(jù)采集電路的控制接口邏輯,由于其邏輯功能不是很復雜,,因此可采用自定義的方式,。采用這種方法進行設計有兩種途徑。①從軟件上去實現(xiàn),。這種方案將NIOS處理器作為一個主控制器,,通過編寫程序來控制數(shù)據(jù)轉換電路。由于NIOS處理器的工作頻率相對于外部設備來說要高出許多,,故此種方法會造成CPU資源極大的浪費,;②用FPGA 的邏輯資源來實現(xiàn)A/D采集電路的控制邏輯。FPGA有著豐富的邏輯資源和接口資源,,在其中實現(xiàn)并行的數(shù)據(jù)采集很少會受到硬件資源的限制,,在功能上,設計的接口控制邏輯相當于一個主控制器,,它是針對具體的外部電路而實現(xiàn)的,,容易滿足要求、又能節(jié)約資源,,提高系統(tǒng)性能,。因此,,采用硬件邏輯去實現(xiàn)控制將是一種較好的方式。

  設計方案

  通過對系統(tǒng)需求進行仔細分析,,此模塊的功能設計可分為數(shù)據(jù)采集控制邏輯,、數(shù)據(jù)接口、數(shù)據(jù)處理邏輯三部分,,其整體功能框架圖如圖1,。

模塊功能框圖

圖1 模塊功能框圖

  說明:AVALON總線主要是用于連接片內處理器與外設,以構成可編程單芯片系統(tǒng),。

  功能描述

  • 數(shù)據(jù)采集控制邏輯:產(chǎn)生A/D轉換需要的控制信號,。
  • 數(shù)據(jù)接口:提供一個外部A/D采集的數(shù)據(jù)流向AVALON總線的數(shù)據(jù)通道,主要是完成速度匹配,,接口時序轉換,。
  • 數(shù)據(jù)處理單元:此部分主要是提供一些附加功能,如檢測外部信號或內部其它單元的工作狀態(tài),,進行簡單信息處理,。

  設計分析

  數(shù)據(jù)采集控制邏輯

  在此以典型的模數(shù)轉換芯片ADC0804為例,進行電路設計,,ADC0804的數(shù)據(jù)寬度為8位,,數(shù)據(jù)轉換時間最快為100ms,轉換時鐘信號可以由內部施密特電路和外接RC電路構成的震蕩器產(chǎn)生,,也可以直接由外部輸入,,其頻率范圍:100KHz~1460KHz。在本設計中ADC0804的時鐘為最大輸入頻率,,控制信號時序如圖2,。

ADC0804控制信號時序圖

圖2 ADC0804控制信號時序圖

  由ADC0804的時序可知,轉換過程由一個寫信號啟動,,轉換完成后,,輸出INTR信號,此時可以讀取數(shù)據(jù),。之后即可

 

進入下一個轉換周期,。由ADC0804的轉換時間可知,其最大采集頻率為10KHz,,只要用戶設置的采樣頻率不超過這個數(shù)值,,ADC0804就可以正常的工作。因此設計時要注意兩點:①寫信號的頻率要低于ADC0804的最大轉換頻率,;②在寫信號之后至少要有100ms的時延,,才能輸出讀信號。

 

  在此,,提出兩種方法來實現(xiàn)ADC0804的控制信號時序:①主動模式—控制電路啟動A/D轉換后,,在INTR信號的作用下,,輸出讀信號,同時從ADC0804的數(shù)據(jù)總線上讀入數(shù)據(jù),,之后輸出一個寫信號,,開始下一次轉換。②被動模式—ADC0804的讀寫信號完全由控制電路按照固定的時序產(chǎn)生,,與其自身輸出無關,。

  數(shù)據(jù)接口

  相對于AVALON總線信號來說,A/D采樣的速率非常低,,而且,,AVALON總線的接口信號和ADC0804數(shù)據(jù)輸出的接口信號時序不一致。因此,,要實現(xiàn)滿足要求的數(shù)據(jù)通道,,要做到兩點:①數(shù)據(jù)緩沖,實現(xiàn)速率匹配,;②信號隔離,,實現(xiàn)接口時序的轉換。解決這兩點,,可以將兩端口通過一個異步的FIFO連接,,該FIFO應該是可以在不同的時鐘信號下進行異步的讀寫,。這樣的一個FIFO的實現(xiàn)可以在Quartus-II里面用ALTERA公司提供的FIFO Core進行定制,。在本設計中,定制的FIFO模塊如圖3,。

FIFO模塊

圖3 FIFO模塊

  設計實現(xiàn)

  圖4為在Quartus-II中設計實現(xiàn)的ADC0804數(shù)據(jù)采集接口控制模塊的原理圖,。

A/D數(shù)據(jù)采集控制模塊原理圖

圖4  A/D數(shù)據(jù)采集控制模塊原理圖

  其中read、readdata,、reset,、irq分別與AVALON總線相同命名的信號線相連,readclk與AVALON總線中clk相連,, AD_50與FPGA的系統(tǒng)時鐘相連,,wr_n、rd_n,、writedata分別與ADC0804的寫信號線,、讀信號線、數(shù)據(jù)線相連,。ADC0804控制信號產(chǎn)生單元的實現(xiàn),,采用的是上文提到的被動模式,該單元以固定的時序產(chǎn)生讀寫信號,,本設計使用的采樣頻率約為3200Hz,,此頻率可以根據(jù)用戶的需要而設定( 不大于10KHz即可),。

  當系統(tǒng)加電后,wr_n輸出一個有效的寫信號啟動A/D轉換,,經(jīng)過足夠的時間后(T=327μs~328μs),,輸出讀信號,此時數(shù)據(jù)接口單元的寫允許信號wr_fifo變?yōu)橛行?,同時外部A/D轉換器的讀允許信號也變?yōu)橛行?,此后ADC0804的數(shù)據(jù)端口上輸出有效數(shù)據(jù),在wr_clk的上升沿將A/D轉換器的數(shù)據(jù)讀入FIFO,??刂七壿媶卧臅r序仿真圖如圖5。

  由圖5可知,,wr_fifo有效時,,ADC0804必須在wr_clk的上升沿到來之前在其數(shù)據(jù)端口輸出有效的數(shù)據(jù)。由于wr_clk的周期為1ms,,ADC0804的輸出鎖存由其讀引腳rd控制,,rd變?yōu)橛行Ъ纯奢敵鲇行У臄?shù)據(jù),故只要ADC0804的讀信號rd在外部輸入的作用下變?yōu)橛行У臅r間不超過500ns,,讀操作就不會出現(xiàn)問題,。ADC0804的rd信號三態(tài)延時最大為200ns,典型值為125ns,,因此控制信號產(chǎn)生邏輯單元滿足要求,。

 

控制信號時序仿真

圖5  控制信號時序仿真

  當NIOS系統(tǒng)需要讀取數(shù)據(jù)時,在read和readclk上出現(xiàn)的是系統(tǒng)AVALON總線上的讀時序,。時序圖如圖6,。

基本從端口讀傳輸

圖6  基本從端口讀傳輸

  在AVALON總線中定義了兩種類型的信號,一種是高電平有效,,另一種是低電平有效,。在本設計中選用的是高電平有效的類型。圖6是低電平有效的總線信號,,與之對應的高電平有效的總線信號時序圖中,,read在有效時為高電平對應于圖6中的readn的低電平部分。而address,,be-n和chipselect在此可以不與考慮,,添加到AVALON總線時,系統(tǒng)會自動處理其連接問題,。

  當系統(tǒng)不讀取A/D轉換的數(shù)據(jù)時,,采集的數(shù)據(jù)由數(shù)據(jù)處理單元控制處理。數(shù)據(jù)處理單元實現(xiàn)了對外部信號量的異常檢測,即,,當外部信號的幅值超出設定范圍時,,該單元產(chǎn)生一個

 

中斷信號,通知CPU采取相關處理措施,,否則,,在FIFO滿的時候,將其內容清空,。

 

  結語

  經(jīng)測試,,本設計可以不間斷無數(shù)據(jù)丟失的進行數(shù)據(jù)采集,CPU可以主動的讀取數(shù)據(jù),,也可以在數(shù)據(jù)處理單元檢測到外部異常信號時被動的獲取數(shù)據(jù),,并且CPU讀取數(shù)據(jù)的操作極其簡單,運行時只占用很少的CPU資源,,在此,,謹希望本文能在如何設計NIOS系統(tǒng)外設方面給讀者以參考借鑒。

此內容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權禁止轉載,。