基于Nios II的過(guò)程控制實(shí)驗裝置的研究
利用SOPC強大的IP核和容易配置的優(yōu)勢簡(jiǎn)化設計流程。充分發(fā)揮NiosⅡ強大的并行處理能力。該系統主要涉及多個(gè)下位機與FPGA的通信問(wèn)題。
1. 功能描述
1.1 整體設計思路
利用SOPC強大的IP核和容易配置的優(yōu)勢簡(jiǎn)化設計流程。充分發(fā)揮NiosⅡ強大的并行處理能力。該系統主要涉及多個(gè)下位機與FPGA的通信問(wèn)題。通過(guò)SOPC設計技術(shù)可以很容易的構造多個(gè)UART接口,降低系統的設計成本。在Quartus中可以用VHDL/Verilog語(yǔ)言寫(xiě)入總線(xiàn)復用模塊,解決SRAM、SDRAM、FLASH之間存在的總線(xiàn)沖突問(wèn)題。
顯示和操作部分的硬件主要在A(yíng)ltera的CycloneⅡEPSC35板上由SOPC Builder配置實(shí)現。傳感檢測和信號處理部分則通過(guò)系統擴展來(lái)實(shí)現。特別是放大和A/D轉換部分,必須由專(zhuān)門(mén)的模塊來(lái)處理。
1.2 系統的主要功能
旋風(fēng)預熱器仿真主要實(shí)現對水泥回轉窯模型在模擬工作狀態(tài)下的參數檢測和控制。由傳感器采集的數據經(jīng)過(guò)放大和修正送入A/D轉換芯片,轉換后的數據送入作為下位機的AT89S52系列單片機中,通過(guò)串口通信的方式將數據流送入作為上位機的DE2開(kāi)發(fā)板中,利用NiosⅡ軟核的VGA視頻顯示功能將采集的數據顯示為狀態(tài)曲線(xiàn)。
同時(shí),利用FPGA快速反應的優(yōu)點(diǎn),實(shí)現對下位機部分的控制,從而對模型的模擬工作狀態(tài)進(jìn)行調整和監控。整個(gè)旋風(fēng)筒模型由透明的有機玻璃構成,具有很強的觀(guān)賞性。LED燈的提示和LCD的數字顯示更加提高了整體的實(shí)用性。由于系統的各個(gè)單元之間存在獨立性,因此,本系統可以做為教學(xué)上的演示模型。傳感器的用法,A/D的用法,放大的原理以及通信和FPGA的使用都可以獨立的用來(lái)作為教學(xué)模型。在旋風(fēng)筒模型上預留了各成120度的三維測量孔,裝入傳感器后可以同時(shí)在X、Y、Z三維場(chǎng)中檢測,實(shí)現同一參數的三維測量。因此,該系統在科研方面也具有很大的實(shí)用性。
2. 系統模塊概述
本系統主要由檢測單元、信號放大修正單元、串口通信單元、顯示單元組成。各個(gè)部分通過(guò)單片機和FPGA之間的通信聯(lián)系在一起。構成一個(gè)完整的集檢測、通信、顯示、控制為一體的系統。本系統只測量模擬工作下一維場(chǎng)中的狀態(tài)參數。風(fēng)機的控制使用專(zhuān)用的晶閘管智能控制模塊,直接由0~5V電壓控制輸出0~220V的風(fēng)機電源電壓。
方案的硬件設計框圖如圖1所示。
3. 模塊功能描述
3.1 顯示單元
整個(gè)處理過(guò)程就是對四路傳感器所采集的實(shí)時(shí)數據進(jìn)行分時(shí)顯示。通過(guò)按鍵操作VGA,讓四路參數狀態(tài)的曲線(xiàn)可以分屏顯示。顯示屏采用普通的PC機顯示器,顯示像素為480640。當第一路數據流通過(guò)串口通信送入上位機后,軟核處理器將該組數據流迅速進(jìn)行暫存,按鍵操作VGA顯示函數選擇屏數并調用這部分數據在顯示屏上依次點(diǎn)亮對應的像素點(diǎn),從而可以將整個(gè)數據流所對應的狀態(tài)曲線(xiàn)動(dòng)態(tài)的顯示在屏幕上,達到可視化的監控效果。
在第一屏進(jìn)行畫(huà)線(xiàn)顯示的同時(shí),處理器將繼續對各路參數的數據流進(jìn)行接收和緩存。按鍵操作進(jìn)入第二屏后,開(kāi)始對第二個(gè)參數狀態(tài)進(jìn)行畫(huà)線(xiàn)和實(shí)時(shí)數值描述,四路狀態(tài)曲線(xiàn)全部畫(huà)完結束返回。 在這個(gè)過(guò)程中,處理器同時(shí)調用字符液晶顯示和數碼管的顯示函數,對當前數據的平均值和瞬時(shí)值進(jìn)行準確的數值描述。LED用于提示當前分屏顯示的屏數,即提示目前采集的參數類(lèi)型。按鍵用于控制風(fēng)機轉速。顯示單元的系統軟件設計框圖如圖2
3.2 檢測單元
由于傳感器的輸出電壓變化都是在毫伏級,因此必須由穩定的放大和濾波電路將采集信號進(jìn)行放大和修正,達到可以滿(mǎn)足數據傳輸的電平要求和線(xiàn)性要求。經(jīng)過(guò)放大的信號送入A/D轉換芯片中,將模擬信號轉換成數字信號后再由單片機送入NiosⅡ中。
旋風(fēng)筒模擬工作時(shí),分別由傳感器將溫度、風(fēng)機轉速、氣壓、氣體流量等參數值進(jìn)行采集。溫度采用高精度的鉑熱敏電阻測量。氣壓和空氣流量采用由Honeywell公司生產(chǎn)的專(zhuān)用檢測傳感器進(jìn)行測量。風(fēng)機轉速通過(guò)單片機對光電開(kāi)關(guān)開(kāi)合產(chǎn)生的脈沖進(jìn)行計數從而予以確定。傳感器將采集的信號通過(guò)放大修正單元的處理后直接送給單片機。四路信號采用同時(shí)采集,分時(shí)傳送的方式發(fā)送給上位機。在NiosⅡ對第一路送入的數據開(kāi)始進(jìn)行顯示處理,同時(shí)將第二路數據送入。
3.3 通信單元
采用串口多機通信的方式。在多路數據傳送方法上,可以選擇485通信的方式。多路下位機同時(shí)掛在485的通信輸出端,分時(shí)的傳送數據。但是這種方式如果有傳送速度上的要求則有很大的弊端,傳送速度會(huì )比較慢。本系統充分發(fā)揮CycloneⅡ處理器可以定制多個(gè)UART的強大功能,實(shí)現上位機對多路數據的同時(shí)接收和處理。在速度上要比485的方式要快。從而實(shí)現對模擬環(huán)境的迅速監控。下位機采用AT89S52系列單片機,同樣支持串行通信。由于通信距離比較近,為了避免資源的浪費,不建議采用RS232或485的串行通信方式。在今后的系統擴展上可以將232通信添加進(jìn)去。
檢測和通信單元的系統軟件設計流程如圖3
4. 軟件設計
4.1 基于Nios IDE的軟件設計
由SOPC Builder構建成的硬件系統首先必須下載到FPGA中,在FPGA上生成對應外設的引腳,然后才能夠通過(guò)IDE燒程序給外設,使外設可以正常的運行。也就是說(shuō)對主程序部分必須要在IDE模式下進(jìn)行調試,這是整個(gè)過(guò)程中感覺(jué)效率比較低的地方,每次修改的程序都必須通過(guò)再次運行Run As Hardware重新編譯才能寫(xiě)入硬件中,造成調試進(jìn)度很慢。程序可以在SRAM或SDRAM上運行。
為了保證斷電后數據不丟失,采用FLASH Programmer把數據寫(xiě)入FLASH,然后把CPU的ResetAddress地址指向FLASH。通電后系統會(huì )自動(dòng)對FPGA進(jìn)行配置,并運行內部程序。該部分的程序主要是設置多個(gè)串口通信的時(shí)序以及VGA顯示的內容。程序流程圖如圖4所示。
5. 結果分析
經(jīng)過(guò)檢測和調試,系統的整體功能完全可以正常實(shí)現。系統采用Nios軟核結合可編程邏輯陣列對旋風(fēng)預熱器的仿真模型的模擬工作狀態(tài)進(jìn)行檢測和控制。實(shí)現了多線(xiàn)程的串口通信和VGA的顯示,充分發(fā)揮了FPGA快速響應的實(shí)用性特點(diǎn)和支持CPU操作的強大功能。使用SOPC Builder可以方便的對系統的擴展部分和自定義部分進(jìn)行添加和刪除,根據需要開(kāi)發(fā)自己的IP核優(yōu)化系統。充分利用SOPC的特點(diǎn)來(lái)縮短設計和開(kāi)發(fā)周期。
利用SOPC Builder配置了四個(gè)串口來(lái)完成這一要求,而這一特殊用法卻是其它處理器如單片機,ARAM等無(wú)法實(shí)現的。
評論