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