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