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