薛清華 張元媛
摘 要:在現(xiàn)代大型環(huán)境控制系統(tǒng)中,高精度溫度測量是實施精確控制的前提。而高精度溫度測量單元也對本身的控制提出了較高的要求。本文給出了一種利用FPGA來實現(xiàn)測量板卡整個工作流程和VME總線接口的控制方式,與傳統(tǒng)采用微控器相比,此控制方案具有設(shè)計性能更優(yōu)、設(shè)計思路更清晰、周期短、成本低等優(yōu)點。
關(guān)鍵詞:高精度;VME總線;FPGA
中圖分類號:TP274 文獻(xiàn)標(biāo)識碼:A 文章編號:1003-5168(2018)02-0082-03
Design of High Precision Temperature Measurement Board
FPGA Based on VME Bus
XUE Qinghua ZHANG Yuanyuan
(Chongqing Kaiwu Industry Co., Ltd.,Chongqing 401331)
Abstract: In modern large-scale environmental control system, high precision temperature measurement is the prerequisite for the implementation of precise control. The high precision temperature measurement unit also puts forward higher requirements for the control of its own. This paper presented a way to control the whole working process of the card and the VME bus interface by using FPGA. Compared with the traditional microcontroller, the control scheme has the advantages of better design performance, clearer design idea, shorter cycle time and lower cost.
Keywords: high precision;VME bus;FPGA
在現(xiàn)代大型環(huán)境控制系統(tǒng)中,溫度參數(shù)的測量至關(guān)重要,它往往不但需要很高精度,而且需要多點、實時。系統(tǒng)的復(fù)雜性必然導(dǎo)致可靠性和穩(wěn)定性下降,而這又會嚴(yán)重影響系統(tǒng)的性能。作為子系統(tǒng)的測量板卡也面臨同樣的問題。板卡采用VME總線作為板卡內(nèi)外部的接口,可以滿足系統(tǒng)穩(wěn)定性的要求。VME總線的規(guī)范同時確保了機械結(jié)構(gòu)的穩(wěn)定性。板卡整個控制都在FPGA中實現(xiàn),包括VME協(xié)議、控制、算法、存儲等。
1 整體設(shè)計方案
1.1 板卡模塊分解
VME總線高精度溫度測量板卡設(shè)計主要分為以下幾部分:主控FPGA、模-數(shù)轉(zhuǎn)換、恒流源、恒壓源、掃描開關(guān)陣列等。由于系統(tǒng)測溫精度高達(dá)±0.01℃,在板卡內(nèi)部數(shù)據(jù)采集時的精度要求達(dá)到0.01%,所以AD芯片的轉(zhuǎn)換位數(shù)至少高達(dá)14bits。但是,受目前相關(guān)模擬芯片的精度限制,加上環(huán)境造成的溫度漂移,使之最終的轉(zhuǎn)換精度有所下降。為了達(dá)到設(shè)計要求,對測量精度起關(guān)鍵作用的AD芯片選用TI公司的ADS1255,它的轉(zhuǎn)換分辨率為24bits,具有FPGA(可編程增益放大倍數(shù))性能,能夠滿足設(shè)計性能的要求[1]。
除了AD芯片具備很高的精度外,外接傳感器激勵信號精度也至關(guān)重要,其精度高低在某種意義上決定了設(shè)計的成敗。板卡除主要外接溫度傳感器外,提供電壓及電流激勵等。測量板卡通過掃描開關(guān)來對每一路傳感器進(jìn)行數(shù)據(jù)采集,板卡總共有17路差分輸入的掃描通道。
FPGA芯片是整個板卡的控制核心,它實現(xiàn)了VME總線協(xié)議、完成對AD芯片的控制、對數(shù)據(jù)進(jìn)行64次遞推平均濾波算法、通過Megafunction生成DPRAM、掃描開關(guān)陣列的時序配合控制等。
1.2 控制固件功能劃分
板卡控制固件所需控制的元件主要有:AD芯片ADS1255的控制,掃描開關(guān)陣列的控制,LED指示的控制,狀態(tài)指示和調(diào)試。
其中板卡控制固件功能模塊有:①時鐘倍頻PLL;②AD芯片控制;③VME總線;④掃描開關(guān)陣列控制;⑤DPRAM(Daul Port RAM)模塊;⑥頂層控制主狀態(tài)機;⑦濾波算法模塊。
2 FPGA設(shè)計
2.1 FPGA模塊劃分
控制固件的模塊劃分是FPGA設(shè)計的基礎(chǔ),在FPGA中進(jìn)行了設(shè)計的詳細(xì)定義,確立了輸入輸出的接口關(guān)系。
晶振產(chǎn)生時鐘主要有20M和8M兩種,前者提供給FPGA芯片應(yīng)用,后者提供給AD芯片使用。板卡固件內(nèi)部時序邏輯工作的主時鐘頻率是40M,DPRAM模塊時鐘為160M,通過芯片內(nèi)部的PLL模塊,分別倍頻2倍和8倍可以達(dá)到設(shè)計的要求。
AD芯片準(zhǔn)確控制是確保板卡正常工作的關(guān)鍵。該芯片硬件電路設(shè)計為差分輸入,這決定了芯片寄存器的參數(shù)。在AD芯片的整個控制中,與芯片通信的SPI模塊占據(jù)十分重要的位置。同時,AD芯片控制時序比較復(fù)雜,必須滿足相關(guān)信號的延時要求。
VME總線是整個板卡與外界通信的橋梁。板卡采用的VME總線符合VME64標(biāo)準(zhǔn),同時根據(jù)板卡具體設(shè)計,對標(biāo)準(zhǔn)VME信號進(jìn)行裁減,使之更符合實際需要[2]。板卡采用的通信格式為A16:D16:D8(E0),接口芯片為符合VXI標(biāo)準(zhǔn)的寄存器器件。板卡在VME協(xié)議中規(guī)定為從模式。它的設(shè)計主要包括,中斷請求處理和數(shù)據(jù)傳輸(從模式)控制模塊。
掃描開關(guān)陣列控制是為配合板卡頂層主狀態(tài)機控制模塊的時序要求。但掃描開關(guān)數(shù)量比較多,容易產(chǎn)生比較大的漏電流和寄生電容等影響板卡精度的負(fù)面因素。為了達(dá)到良好的控制效果,必須等待掃描開關(guān)達(dá)到合適的穩(wěn)定時間,使AD芯片采樣到準(zhǔn)確的數(shù)據(jù)[3]。
板卡掃描通路較多,同時濾波算法、板卡每路通道采樣數(shù)據(jù)需要大量存儲,需用較大容量DPRAM存儲器。FPGA芯片內(nèi)含M4K邏輯資源,通過Megafunction配置生成4K×16bits的DPRAM。配置DPRAM地址線12位,雖然與VME總線的16位短地址模式不匹配,但通過地址重新映射,VME總線可以實現(xiàn)對DPRAM的訪問。
板卡頂層主狀態(tài)機主要負(fù)責(zé)協(xié)調(diào)各個模塊工作,使其按照預(yù)定設(shè)計的流程完成對數(shù)據(jù)的采集功能。為了使工作效率更高,須對狀態(tài)機進(jìn)行優(yōu)化,并選擇合適的編碼方式。
板卡濾波算法是嵌入主狀態(tài)機之中,從硬件上實現(xiàn)了對數(shù)據(jù)64次遞推平均濾波算法。
FPGA模塊設(shè)計的主要任務(wù)集中在AD芯片時序控制、VME總線接口、頂層主狀態(tài)機實現(xiàn)等部分。本論文僅從這3部分來展開闡述。
2.2 模塊功能實現(xiàn)
圍繞主要功能模塊,下面對其展開論述。
在AD芯片時序控制中,主要完成與芯片通信的SPI接口和芯片時序控制。
SPI模塊分為3部分:①頂層控制模塊,主要完成其他功能模塊的信號轉(zhuǎn)接和對SPI工作模式的寄存器參數(shù)設(shè)置;②串行時鐘產(chǎn)生模塊,它主要是完成按設(shè)置參數(shù)產(chǎn)生準(zhǔn)確的串行時鐘,以及輔助控制信號;③傳輸細(xì)節(jié)控制模塊,配合頂層控制模塊產(chǎn)生的串行時鐘完成串并轉(zhuǎn)換或并串轉(zhuǎn)換的功能。對芯片其他信號的控制是在狀態(tài)機中完成的,如芯片復(fù)位、芯片讀寫寄存器、讀取24位采樣結(jié)果。
初步設(shè)計中采用參數(shù)化設(shè)計,為以后上電調(diào)試提供便利。
VME總線模塊的FPGA劃分為以下幾部分:中斷控制模塊和數(shù)據(jù)傳輸控制模塊。在數(shù)據(jù)傳輸控制模塊中又包括SLAVER(從模式)控制模塊、地址譯碼、背板接口邏輯、實用邏輯等模塊。
主狀態(tài)機是頂層控制模塊,它負(fù)責(zé)協(xié)調(diào)各個功能模塊的工作。主要狀態(tài)包括所有模塊的復(fù)位、設(shè)置相關(guān)寄存器、啟動采集任務(wù)、數(shù)據(jù)濾波處理、對DPRAM進(jìn)行讀寫等,它設(shè)計的優(yōu)劣關(guān)系采樣的效率和速度,對板卡采集的實時性有較大影響。
2.3 仿真驗證
在FPGA設(shè)計中,仿真是非常重要的環(huán)節(jié)。仿真主要分兩個階段:在前期對各單獨模塊仿真,后期對整個模塊進(jìn)行仿真。在仿真的時候,一般需要建立專門的Testbench。模塊獨立仿真階段,由于VME總線模塊信號很多,仿真需要外加的激勵信號也很多,所以編寫了Testbench加以驗證。而對于AD芯片控制模塊等,激勵信號有限,只需要通過建立波形文件手動加上激勵信號即可。
所有的仿真驗證工作全部在ALTERA公司提供的集成開發(fā)環(huán)境QuartusII 5.0下完成。經(jīng)過仿真驗證,基本可以確定模塊設(shè)計的正確性。
部分仿真波形如圖1—4所示。
3 測試
3.1 測試平臺
固件代碼下載到FPGA芯片進(jìn)行調(diào)試成功,表明控制固件的功能已經(jīng)實現(xiàn)。為了對其性能作全面測評,還必須要進(jìn)行長期的穩(wěn)定性和可靠性測試。上位機軟件用于記錄測量結(jié)果,該軟件通過串口通信與VME機箱交互,記錄每一通道傳感器的測量數(shù)據(jù),同時通過繪制圖形的方式來實時顯示當(dāng)前測量結(jié)果。
3.2 測試結(jié)論
測試結(jié)果表明,高精度數(shù)據(jù)采集板卡精度完全達(dá)到設(shè)計標(biāo)準(zhǔn),性能良好,運行穩(wěn)定可靠。
4 結(jié)語
測量板卡經(jīng)過使用后的反饋表明,性能完全能夠達(dá)到設(shè)計的精度。板卡設(shè)計過程中由于采用以FPGA芯片為控制器的方式,大大加快了設(shè)計進(jìn)度,板卡控制達(dá)到了自身的要求,板卡性能滿足達(dá)到環(huán)境系統(tǒng)的要求。
參考文獻(xiàn):
[1]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計教程[M].北京:北京航空航天大學(xué)出版社,2003.
[2]American National Standard for VME64[C].American Nationanl Standards Institute, Inc.,1995.
[3]費業(yè)泰.誤差理論與數(shù)據(jù)處理[M].北京:機械工業(yè)出版社,2002.