薛清華 張元媛



摘 要:在現代大型環境控制系統中,高精度溫度測量是實施精確控制的前提。而高精度溫度測量單元也對本身的控制提出了較高的要求。本文給出了一種利用FPGA來實現測量板卡整個工作流程和VME總線接口的控制方式,與傳統采用微控器相比,此控制方案具有設計性能更優、設計思路更清晰、周期短、成本低等優點。
關鍵詞:高精度;VME總線;FPGA
中圖分類號:TP274 文獻標識碼: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
在現代大型環境控制系統中,溫度參數的測量至關重要,它往往不但需要很高精度,而且需要多點、實時。系統的復雜性必然導致可靠性和穩定性下降,而這又會嚴重影響系統的性能。作為子系統的測量板卡也面臨同樣的問題。板卡采用VME總線作為板卡內外部的接口,可以滿足系統穩定性的要求。VME總線的規范同時確保了機械結構的穩定性。板卡整個控制都在FPGA中實現,包括VME協議、控制、算法、存儲等。
1 整體設計方案
1.1 板卡模塊分解
VME總線高精度溫度測量板卡設計主要分為以下幾部分:主控FPGA、模-數轉換、恒流源、恒壓源、掃描開關陣列等。由于系統測溫精度高達±0.01℃,在板卡內部數據采集時的精度要求達到0.01%,所以AD芯片的轉換位數至少高達14bits。但是,受目前相關模擬芯片的精度限制,加上環境造成的溫度漂移,使之最終的轉換精度有所下降。為了達到設計要求,對測量精度起關鍵作用的AD芯片選用TI公司的ADS1255,它的轉換分辨率為24bits,具有FPGA(可編程增益放大倍數)性能,能夠滿足設計性能的要求[1]。
除了AD芯片具備很高的精度外,外接傳感器激勵信號精度也至關重要,其精度高低在某種意義上決定了設計的成敗。板卡除主要外接溫度傳感器外,提供電壓及電流激勵等。測量板卡通過掃描開關來對每一路傳感器進行數據采集,板卡總共有17路差分輸入的掃描通道。
FPGA芯片是整個板卡的控制核心,它實現了VME總線協議、完成對AD芯片的控制、對數據進行64次遞推平均濾波算法、通過Megafunction生成DPRAM、掃描開關陣列的時序配合控制等。
1.2 控制固件功能劃分
板卡控制固件所需控制的元件主要有:AD芯片ADS1255的控制,掃描開關陣列的控制,LED指示的控制,狀態指示和調試。
其中板卡控制固件功能模塊有:①時鐘倍頻PLL;②AD芯片控制;③VME總線;④掃描開關陣列控制;⑤DPRAM(Daul Port RAM)模塊;⑥頂層控制主狀態機;⑦濾波算法模塊。
2 FPGA設計
2.1 FPGA模塊劃分
控制固件的模塊劃分是FPGA設計的基礎,在FPGA中進行了設計的詳細定義,確立了輸入輸出的接口關系。
晶振產生時鐘主要有20M和8M兩種,前者提供給FPGA芯片應用,后者提供給AD芯片使用。板卡固件內部時序邏輯工作的主時鐘頻率是40M,DPRAM模塊時鐘為160M,通過芯片內部的PLL模塊,分別倍頻2倍和8倍可以達到設計的要求。
AD芯片準確控制是確保板卡正常工作的關鍵。該芯片硬件電路設計為差分輸入,這決定了芯片寄存器的參數。在AD芯片的整個控制中,與芯片通信的SPI模塊占據十分重要的位置。同時,AD芯片控制時序比較復雜,必須滿足相關信號的延時要求。
VME總線是整個板卡與外界通信的橋梁。板卡采用的VME總線符合VME64標準,同時根據板卡具體設計,對標準VME信號進行裁減,使之更符合實際需要[2]。板卡采用的通信格式為A16:D16:D8(E0),接口芯片為符合VXI標準的寄存器器件。板卡在VME協議中規定為從模式。它的設計主要包括,中斷請求處理和數據傳輸(從模式)控制模塊。
掃描開關陣列控制是為配合板卡頂層主狀態機控制模塊的時序要求。但掃描開關數量比較多,容易產生比較大的漏電流和寄生電容等影響板卡精度的負面因素。為了達到良好的控制效果,必須等待掃描開關達到合適的穩定時間,使AD芯片采樣到準確的數據[3]。
板卡掃描通路較多,同時濾波算法、板卡每路通道采樣數據需要大量存儲,需用較大容量DPRAM存儲器。FPGA芯片內含M4K邏輯資源,通過Megafunction配置生成4K×16bits的DPRAM。配置DPRAM地址線12位,雖然與VME總線的16位短地址模式不匹配,但通過地址重新映射,VME總線可以實現對DPRAM的訪問。
板卡頂層主狀態機主要負責協調各個模塊工作,使其按照預定設計的流程完成對數據的采集功能。為了使工作效率更高,須對狀態機進行優化,并選擇合適的編碼方式。
板卡濾波算法是嵌入主狀態機之中,從硬件上實現了對數據64次遞推平均濾波算法。
FPGA模塊設計的主要任務集中在AD芯片時序控制、VME總線接口、頂層主狀態機實現等部分。本論文僅從這3部分來展開闡述。
2.2 模塊功能實現
圍繞主要功能模塊,下面對其展開論述。
在AD芯片時序控制中,主要完成與芯片通信的SPI接口和芯片時序控制。
SPI模塊分為3部分:①頂層控制模塊,主要完成其他功能模塊的信號轉接和對SPI工作模式的寄存器參數設置;②串行時鐘產生模塊,它主要是完成按設置參數產生準確的串行時鐘,以及輔助控制信號;③傳輸細節控制模塊,配合頂層控制模塊產生的串行時鐘完成串并轉換或并串轉換的功能。對芯片其他信號的控制是在狀態機中完成的,如芯片復位、芯片讀寫寄存器、讀取24位采樣結果。
初步設計中采用參數化設計,為以后上電調試提供便利。
VME總線模塊的FPGA劃分為以下幾部分:中斷控制模塊和數據傳輸控制模塊。在數據傳輸控制模塊中又包括SLAVER(從模式)控制模塊、地址譯碼、背板接口邏輯、實用邏輯等模塊。
主狀態機是頂層控制模塊,它負責協調各個功能模塊的工作。主要狀態包括所有模塊的復位、設置相關寄存器、啟動采集任務、數據濾波處理、對DPRAM進行讀寫等,它設計的優劣關系采樣的效率和速度,對板卡采集的實時性有較大影響。
2.3 仿真驗證
在FPGA設計中,仿真是非常重要的環節。仿真主要分兩個階段:在前期對各單獨模塊仿真,后期對整個模塊進行仿真。在仿真的時候,一般需要建立專門的Testbench。模塊獨立仿真階段,由于VME總線模塊信號很多,仿真需要外加的激勵信號也很多,所以編寫了Testbench加以驗證。而對于AD芯片控制模塊等,激勵信號有限,只需要通過建立波形文件手動加上激勵信號即可。
所有的仿真驗證工作全部在ALTERA公司提供的集成開發環境QuartusII 5.0下完成。經過仿真驗證,基本可以確定模塊設計的正確性。
部分仿真波形如圖1—4所示。
3 測試
3.1 測試平臺
固件代碼下載到FPGA芯片進行調試成功,表明控制固件的功能已經實現。為了對其性能作全面測評,還必須要進行長期的穩定性和可靠性測試。上位機軟件用于記錄測量結果,該軟件通過串口通信與VME機箱交互,記錄每一通道傳感器的測量數據,同時通過繪制圖形的方式來實時顯示當前測量結果。
3.2 測試結論
測試結果表明,高精度數據采集板卡精度完全達到設計標準,性能良好,運行穩定可靠。
4 結語
測量板卡經過使用后的反饋表明,性能完全能夠達到設計的精度。板卡設計過程中由于采用以FPGA芯片為控制器的方式,大大加快了設計進度,板卡控制達到了自身的要求,板卡性能滿足達到環境系統的要求。
參考文獻:
[1]夏宇聞.Verilog數字系統設計教程[M].北京:北京航空航天大學出版社,2003.
[2]American National Standard for VME64[C].American Nationanl Standards Institute, Inc.,1995.
[3]費業泰.誤差理論與數據處理[M].北京:機械工業出版社,2002.