論NIOS-II系統中A/D數據采集接口的設計與實(shí)現
設計實(shí)現
圖4為在Quartus-II中設計實(shí)現的ADC0804數據采集接口控制模塊的原理圖。
圖4 A/D數據采集控制模塊原理圖
其中read、readdata、reset、irq分別與AVALON總線(xiàn)相同命名的信號線(xiàn)相連,readclk與AVALON總線(xiàn)中clk相連, AD_50與FPGA的系統時(shí)鐘相連,wr_n、rd_n、writedata分別與ADC0804的寫(xiě)信號線(xiàn)、讀信號線(xiàn)、數據線(xiàn)相連。ADC0804控制信號產(chǎn)生單元的實(shí)現,采用的是上文提到的被動(dòng)模式,該單元以固定的時(shí)序產(chǎn)生讀寫(xiě)信號,本設計使用的采樣頻率約為3200Hz,此頻率可以根據用戶(hù)的需要而設定( 不大于10KHz即可)。
當系統加電后,wr_n輸出一個(gè)有效的寫(xiě)信號啟動(dòng)A/D轉換,經(jīng)過(guò)足夠的時(shí)間后(T=327μs~328μs),輸出讀信號,此時(shí)數據接口單元的寫(xiě)允許信號wr_fifo變?yōu)橛行?,同時(shí)外部A/D轉換器的讀允許信號也變?yōu)橛行?,此后ADC0804的數據端口上輸出有效數據,在wr_clk的上升沿將A/D轉換器的數據讀入FIFO??刂七壿媶卧臅r(shí)序仿真圖如圖5。
由圖5可知,wr_fifo有效時(shí),ADC0804必須在wr_clk的上升沿到來(lái)之前在其數據端口輸出有效的數據。由于wr_clk的周期為1ms,ADC0804的輸出鎖存由其讀引腳rd控制,rd變?yōu)橛行Ъ纯奢敵鲇行У臄祿?,故只要ADC0804的讀信號rd在外部輸入的作用下變?yōu)橛行У臅r(shí)間不超過(guò)500ns,讀操作就不會(huì )出現問(wèn)題。ADC0804的rd信號三態(tài)延時(shí)最大為200ns,典型值為125ns,因此控制信號產(chǎn)生邏輯單元滿(mǎn)足要求。
圖5 控制信號時(shí)序仿真
當NIOS系統需要讀取數據時(shí),在read和readclk上出現的是系統AVALON總線(xiàn)上的讀時(shí)序。時(shí)序圖如圖6。
在A(yíng)VALON總線(xiàn)中定義了兩種類(lèi)型的信號,一種是高電平有效,另一種是低電平有效。在本設計中選用的是高電平有效的類(lèi)型。圖6是低電平有效的總線(xiàn)信號,與之對應的高電平有效的總線(xiàn)信號時(shí)序圖中,read在有效時(shí)為高電平對應于圖6中的readn的低電平部分。而address,be-n和chipselect在此可以不與考慮,添加到AVALON總線(xiàn)時(shí),系統會(huì )自動(dòng)處理其連接問(wèn)題。
當系統不讀取A/D轉換的數據時(shí),采集的數據由數據處理單元控制處理。數據處理單元實(shí)現了對外部信號量的異常檢測,即,當外部信號的幅值超出設定范圍時(shí),該單元產(chǎn)生一個(gè)中斷信號,通知CPU采取相關(guān)處理措施,否則,在FIFO滿(mǎn)的時(shí)候,將其內容清空。
結語(yǔ)
經(jīng)測試,本設計可以不間斷無(wú)數據丟失的進(jìn)行數據采集,CPU可以主動(dòng)的讀取數據,也可以在數據處理單元檢測到外部異常信號時(shí)被動(dòng)的獲取數據,并且CPU讀取數據的操作極其簡(jiǎn)單,運行時(shí)只占用很少的CPU資源,在此,謹希望本文能在如何設計NIOS系統外設方面給讀者以參考借鑒。
評論