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