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