基于FPGA的遠(yuǎn)距離測溫器數(shù)控系統(tǒng)設(shè)計
FPGA的核心控制系統(tǒng)是由1 400~1 800 LE構(gòu)成的,運(yùn)行起來可以到達(dá)86DMIPSD的f型NiosⅡCPU。除了CPU外,數(shù)控系統(tǒng)主要還包括一個標(biāo)志NiosⅡ系統(tǒng)的系統(tǒng)ID核;一個提供JTAG串行異步收發(fā)器的IP核,用于在線調(diào)試FPGA的程序;一個可以實(shí)現(xiàn)任何標(biāo)準(zhǔn)RS 232標(biāo)準(zhǔn)波特率的UART核,用在控制電路調(diào)試成功后在單機(jī)工作狀態(tài)下與外接計算機(jī)通信;兩組并行輸入、輸出PIO核,分別對A/D采樣電路進(jìn)行控制和讀取A/D采樣后得到的數(shù)據(jù);兩個LCD控制器IP核;一個用于運(yùn)行程序的片內(nèi)ROM;一個提供系統(tǒng)時鐘的pll;一個EPCS串行配置器件控制器IP核。如圖5所示。
系統(tǒng)生成的原理圖如圖6所示。
3 系統(tǒng)開發(fā)測試
系統(tǒng)構(gòu)建好之后,需要進(jìn)一步的測試才能確保其正常測溫。系統(tǒng)的開發(fā)測試流程如圖7所示。
上電后首先觀測系統(tǒng)的主要硬件是否正常工作,將在NiosⅡIDE中生成的SOF文件下載到FPGA中,完成NiosⅡ系統(tǒng)的下載和初始化。然后將NiosⅡ軟件通過JTAG口下載到目標(biāo)系統(tǒng)中。系統(tǒng)正常工作后,由遠(yuǎn)端計算機(jī)通過串口對A/D進(jìn)行初始化,采集數(shù)據(jù)。計算機(jī)接收到A/D采樣數(shù)據(jù)后,就可以對測溫器進(jìn)行標(biāo)定,通過數(shù)據(jù)處理計算出用于標(biāo)定各臺測溫器的校準(zhǔn)方程。
標(biāo)定過程如下,將測溫器紅外接收探測頭對準(zhǔn)熱源,熱源產(chǎn)生準(zhǔn)確的溫度。為了測量準(zhǔn)確,對于同一個溫度點(diǎn),采用多次測量取平均值的方法。由計算機(jī)通過串口通信記錄下多次A/D采樣的值與對應(yīng)的溫度值。從低溫開始到較高的溫度,由計算機(jī)通過串口通信記錄下A/D采樣值。當(dāng)記錄下的數(shù)值達(dá)到可以反映各溫度段變化的情況時,就可以讓計算機(jī)采用合適的數(shù)據(jù)擬合方法生成反映該測溫器測量特性的曲線方程。計算機(jī)將方程系數(shù)傳送給NiosⅡ系統(tǒng),完成對整個測溫器的校準(zhǔn)。
最后檢查FPGA中NiosⅡ處理器能否通過LCD控制器與LCD正常通信、LCD能否正常顯示字符;NiosⅡ軟處理器可否與PROM實(shí)現(xiàn)正常的讀寫。調(diào)試成功后為了節(jié)約資源可將JTAG調(diào)試去掉,然后將正確的程序燒錄到EPCS4中。這時所設(shè)計的程序即可脫離計算機(jī)及NiosⅡIDE獨(dú)立運(yùn)行。
完成了整個開發(fā)過程的測溫器即可正常使用,對標(biāo)定溫度范圍內(nèi)的溫度進(jìn)行測量。脫機(jī)測量時,由定時器產(chǎn)生對A/D采樣時所需的時鐘脈沖,NiosⅡ系統(tǒng)的兩組PIO,分別控制A/D的控制信號和將A/D采樣值讀入NiosⅡ系統(tǒng)。在使用時,仍然采用多次測量取平均值的方法來得到A/D采樣值,然后根據(jù)擬合方程,即可得到對應(yīng)的溫度值,然后NiosⅡ系統(tǒng)控制LCD控制器的R/W,RS和DB0~DB7,將對應(yīng)的溫度值顯示在
LCD上。而當(dāng)需要聯(lián)機(jī)使用時,NiosⅡ系統(tǒng)通過串口將存儲在內(nèi)部的A/D采樣值和對應(yīng)的溫度值發(fā)送到計算機(jī)中,形成文件供分析用。
4 結(jié)語
本文設(shè)計的測溫器的數(shù)控電路以Altera公司的CycloneⅡ系列的FPGA為核心,完成了從總體方案設(shè)計到系統(tǒng)調(diào)試等一系列過程。整個數(shù)控系統(tǒng)共計占用3 700多個LE,99 200個存儲器比特。為整個測溫器提供了穩(wěn)定可靠的數(shù)據(jù)處理平臺,可為更高級別的功能擴(kuò)展提供一定的參考,具有很廣的應(yīng)用前景。
評論