董建樹(shù),袁曉宇,王 惠,嚴(yán)宗瑞
(1.北京自動(dòng)化控制設(shè)備研究所,北京100074;2.北京振興計(jì)量測(cè)試研究所,北京100074;3.海軍指揮學(xué)院,南京210016)
?
基于Nios Ⅱ嵌入式處理器的SOPC中精度測(cè)頻電路的設(shè)計(jì)
董建樹(shù)1,袁曉宇1,王 惠2,嚴(yán)宗瑞3
(1.北京自動(dòng)化控制設(shè)備研究所,北京100074;2.北京振興計(jì)量測(cè)試研究所,北京100074;3.海軍指揮學(xué)院,南京210016)
中精度頻率測(cè)量電路主要用于中精度石英振梁加速度計(jì)頻率輸出的二次測(cè)量。通過(guò)比較并選擇合適的測(cè)量方法,詳細(xì)地分析了方案的理論誤差,研究基于Nios Ⅱ嵌入式處理器的測(cè)頻電路,將數(shù)據(jù)采樣和運(yùn)算單元都集成在FPGA芯片中,形成一個(gè)片上操作系統(tǒng)SOPC,獲得了較高精度的測(cè)量結(jié)果。
測(cè)頻;FPGA;嵌入式處理;SOPC
石英振梁加速度計(jì)是一種力敏感梁式諧振器約束的線性加速度計(jì),其產(chǎn)生的諧振頻率表示為慣性系統(tǒng)的輸入加速度的函數(shù)。中精度頻率測(cè)量電路主要用于中精度石英振梁加速度計(jì)頻率信號(hào)輸出的二次測(cè)量,它將測(cè)量結(jié)果反饋給導(dǎo)航計(jì)算機(jī)。
由于石英振梁加速度計(jì)的標(biāo)度因數(shù)較小,只能通過(guò)專用的測(cè)量電路進(jìn)行精確的測(cè)量。在以前的設(shè)計(jì)方案中,一般通過(guò)數(shù)字邏輯電路與微處理芯片共同組合,實(shí)現(xiàn)要求的功能,很顯然,系統(tǒng)的集成程度不高,甚至無(wú)法滿足高速電路設(shè)計(jì)的要求。
這里提出一套新的基于Nios Ⅱ嵌入式處理器的SOPC中精度測(cè)頻電路方案,可以將設(shè)計(jì)中幾乎所有的邏輯模塊、運(yùn)算模塊、控制模塊都高度集成在一片F(xiàn)PGA中,最大限度地減少了外圍電路的使用,同時(shí)片上可編程系統(tǒng)(SOPC)還具有設(shè)計(jì)周期短、開(kāi)發(fā)成本低、設(shè)計(jì)靈活的優(yōu)點(diǎn)。
頻率測(cè)試有很多種方法,目前常用的有四種方法:測(cè)頻法、測(cè)周期法、等精度法和相檢法。傳統(tǒng)的測(cè)頻法和測(cè)周期法在實(shí)際應(yīng)用中具有較大的局限性,并且對(duì)被測(cè)信號(hào)的計(jì)數(shù)始終存在±1個(gè)字的誤差,測(cè)試精度與計(jì)數(shù)器中記錄的數(shù)值量相關(guān),記錄數(shù)據(jù)越少,精度越低。所以,這兩種測(cè)試方法不能滿足較高精度的要求。
相檢法通過(guò)檢測(cè)信號(hào)的相位重合點(diǎn),不僅實(shí)現(xiàn)了對(duì)被測(cè)信號(hào)的同步,也實(shí)現(xiàn)了對(duì)標(biāo)頻信號(hào)的同步,大大消除了一般測(cè)頻系統(tǒng)中的±1個(gè)字的計(jì)數(shù)誤差。但是,當(dāng)待測(cè)信號(hào)和標(biāo)準(zhǔn)信號(hào)的頻率值相等或成整數(shù)倍或分?jǐn)?shù)倍的關(guān)系時(shí),一旦兩信號(hào)有相位差,就不會(huì)有相位重合的時(shí)刻,則測(cè)量進(jìn)程陷入死胡同。
等精度測(cè)頻法中,由實(shí)際閘門(mén)控制兩個(gè)計(jì)數(shù)器分別對(duì)標(biāo)準(zhǔn)信號(hào)和被測(cè)信號(hào)同時(shí)計(jì)數(shù),通過(guò)兩個(gè)計(jì)數(shù)器計(jì)數(shù)值之間的比較,計(jì)算得到被測(cè)頻率。實(shí)際閘門(mén)由根據(jù)測(cè)試需要設(shè)置的預(yù)置閘門(mén)經(jīng)被測(cè)信號(hào)同步后形成,測(cè)量過(guò)程中,由于實(shí)際閘門(mén)與被測(cè)信號(hào)完全同步,消除了被測(cè)信號(hào)的±1個(gè)字的誤差,誤差的來(lái)源只有標(biāo)準(zhǔn)信號(hào)本身以及其計(jì)數(shù)誤差。
其基本原理如圖1所示。
圖1 等精度測(cè)頻原理時(shí)序圖Fig.1 The timing scheme of equallyaccurate frequency measurement
綜合考慮采用等精度頻率測(cè)量法,它能夠消除對(duì)被測(cè)頻率信號(hào)計(jì)數(shù)所產(chǎn)生的誤差,實(shí)現(xiàn)了寬頻率范圍內(nèi)的中精度測(cè)量[1]。在設(shè)計(jì)中充分考慮引起誤差的各種因素,盡量將其降低到適當(dāng)范圍,以滿足中精度的要求。
如果在一次實(shí)際閘門(mén)時(shí)間T中,計(jì)數(shù)器對(duì)被測(cè)信號(hào)的計(jì)數(shù)值為Nx,對(duì)標(biāo)準(zhǔn)信號(hào)的計(jì)數(shù)值為Ns。標(biāo)準(zhǔn)信號(hào)的頻率為fs,則被測(cè)信號(hào)的頻率為
(1)
由式(1)可知,若忽略標(biāo)頻fs的誤差,則等精度測(cè)頻可能產(chǎn)生的相對(duì)誤差為
(2)
其中,fxe為被測(cè)信號(hào)頻率的準(zhǔn)確值。
(3)
將式(1)和式(3)代入式(2),并整理得
(4)
由式(4)可知,測(cè)量頻率的相對(duì)誤差與被測(cè)信號(hào)頻率的大小無(wú)關(guān),僅與閘門(mén)時(shí)間和標(biāo)準(zhǔn)信號(hào)頻率有關(guān),這樣就實(shí)現(xiàn)了整個(gè)測(cè)試頻段的等精度測(cè)量。
閘門(mén)時(shí)間越長(zhǎng),標(biāo)準(zhǔn)頻率越高,測(cè)頻的相對(duì)誤差就越小。標(biāo)準(zhǔn)頻率可由穩(wěn)定度好、精度高、頻率高的晶體振蕩器產(chǎn)生,在保證測(cè)量精度不變的前提下,提高標(biāo)準(zhǔn)信號(hào)頻率,可使閘門(mén)時(shí)間縮短,即提高測(cè)試速度。
前面將標(biāo)頻信號(hào)作為一個(gè)穩(wěn)定的常數(shù),忽略了標(biāo)頻fs的誤差,這里將它考慮進(jìn)去綜合推導(dǎo)。
對(duì)式(1)進(jìn)行微分得到被測(cè)頻率的誤差為
(5)
(6)
由式(6)可知,測(cè)量頻率的相對(duì)誤差與標(biāo)準(zhǔn)頻率的數(shù)值、準(zhǔn)確度以及閘門(mén)時(shí)間相關(guān)。在硬件電路中,實(shí)際閘門(mén)時(shí)間T的準(zhǔn)確度是與晶振頻率的準(zhǔn)確度息息相關(guān)的,標(biāo)準(zhǔn)頻率信號(hào)也是直接或間接地來(lái)自晶振頻率。
當(dāng)前嵌入式系統(tǒng)發(fā)展朝著小體積、低功耗、高性能的趨勢(shì)發(fā)展。MCU、DSP、FPGA三種處理器的結(jié)合是未來(lái)嵌入式系統(tǒng)發(fā)展的趨勢(shì),可編程片上系統(tǒng)SOPC可以將三者完美結(jié)合起來(lái)。一般采用大容量FPGA作為載體,在片上定制MCU處理器和DSP功能模塊,同時(shí)設(shè)計(jì)其他邏輯功能模塊。NiosⅡ系統(tǒng)為用戶提供了最基本的IP核,設(shè)計(jì)師可以用它裁減合適的嵌入式系統(tǒng)。
NiosⅡ處理器是指在一個(gè)芯片上包含一個(gè)或多個(gè)可配置的CPU軟核、與CPU相連接的片內(nèi)外設(shè)和存儲(chǔ)器以及與外設(shè)相連的接口等,所有的組件在一個(gè)FPGA上實(shí)現(xiàn)。NiosⅡ處理器具有定制指令、靈活的外設(shè)配置與地址映射、自動(dòng)創(chuàng)建系統(tǒng)等特點(diǎn),極大地提高了系統(tǒng)性能。
測(cè)頻電路的核心設(shè)計(jì)是SOPC片上可編程系統(tǒng)的設(shè)計(jì),NiosⅡ軟核是片上系統(tǒng)的核心內(nèi)容[2],測(cè)頻電路的原理如圖2所示。通過(guò)對(duì)FPGA芯片進(jìn)行編程,能夠?qū)崿F(xiàn)九路信號(hào)的計(jì)數(shù)、運(yùn)算處理、串口通信三大復(fù)雜的功能。
采用QuartusII軟件進(jìn)行FPGA的硬件設(shè)計(jì)如圖3所示。標(biāo)準(zhǔn)頻率信號(hào)從外部的時(shí)鐘輸入端倍頻后獲得,經(jīng)過(guò)整形后的被測(cè)信號(hào)輸入到觸發(fā)器中。NiosⅡ軟核控制預(yù)置門(mén)信號(hào)為高電平時(shí),被測(cè)信號(hào)的上升沿通過(guò)觸發(fā)器的輸出端,啟動(dòng)計(jì)數(shù)器計(jì)數(shù);當(dāng)預(yù)置門(mén)信號(hào)為低電平時(shí),計(jì)數(shù)器關(guān)閉。隨后將數(shù)據(jù)送入乘除法器中進(jìn)行運(yùn)算,結(jié)果通過(guò)UART外設(shè)輸出。通過(guò)對(duì)實(shí)際數(shù)據(jù)容量的理論分析,設(shè)計(jì)采用了宏功能模塊來(lái)實(shí)現(xiàn)32位硬件乘法器和96位的硬件除法器。
圖2 測(cè)頻電路原理框圖Fig.2 The functional block diagram of frequency measurement circuit
圖3 FPGA的硬件設(shè)計(jì)圖Fig.3 The hardware design scheme of FPGA
NiosⅡ作為一個(gè)可靈活定制的32位CPU,它的外設(shè)是可選的IP核或自定制邏輯[3],我們根據(jù)系統(tǒng)設(shè)計(jì)要求,通過(guò)SOPCBuilder向?qū)降慕缑娑ㄖ撇脺p得當(dāng)?shù)腟OPC系統(tǒng)。完整的基于NiosⅡ的SOPC系統(tǒng)作為一個(gè)軟硬件復(fù)合的系統(tǒng),在開(kāi)發(fā)時(shí)可以分為硬件、軟件兩部分,如圖4和圖5所示。
圖4 Nios Ⅱ硬件設(shè)計(jì)圖Fig.4 The hardware design scheme of Nios Ⅱ
圖5 Nios Ⅱ軟件設(shè)計(jì)圖Fig.5 The software design scheme of Nios Ⅱ
在NiosⅡ的開(kāi)發(fā)流程中,我們首先使用SOPCBuilder系統(tǒng)綜合軟件來(lái)選取合適的CPU、存儲(chǔ)器以及外圍器件,并且定制相應(yīng)的功能;然后使用QuartusⅡ軟件選取可編程器件,對(duì)生成的HDL設(shè)計(jì)文件進(jìn)行布局布線,并對(duì)NiosⅡ系統(tǒng)上的I/O口分配管腳、編譯,綜合生成一個(gè)適合目標(biāo)器件的網(wǎng)表作為配置文件;最后,使用編程器和下載電纜將配置文件下載到開(kāi)發(fā)板上。FPGA工程的編譯報(bào)告如圖6所示。
圖6 FPGA工程的編譯報(bào)告Fig.6 The compile report of FPGA project
利用高端復(fù)雜電路設(shè)計(jì)軟件ExpeditionPCB設(shè)計(jì)的電路板,如圖7所示。同時(shí)采用信號(hào)完整性分析軟件對(duì)電路板圖進(jìn)行了高速信號(hào)的串?dāng)_、EMC等分析,預(yù)先確保了電路板設(shè)計(jì)質(zhì)量[4]。
圖7 高端復(fù)雜電路設(shè)計(jì)軟件Expedition PCB設(shè)計(jì)的電路板圖Fig.7 The circuit PCB scheme designed by advanced circuit design software Expedition PCB
樣機(jī)為一塊專用測(cè)頻電路板,按照功能可以分為:晶體振蕩器、輸入信號(hào)電平轉(zhuǎn)換器、閘門(mén)發(fā)生器、計(jì)數(shù)器、乘法器、除法器、數(shù)字信號(hào)處理軟核、通信接口以及電源管理系統(tǒng)[5]等模塊。
其中,晶體振蕩器作為標(biāo)準(zhǔn)頻率源和FPGA工作的全局時(shí)鐘;電平轉(zhuǎn)換器起到電平轉(zhuǎn)換和整形驅(qū)動(dòng)的作用;鎖存器鎖存九路標(biāo)頻和被測(cè)頻率的計(jì)數(shù)值;閘門(mén)發(fā)生器用于信號(hào)同步;乘法器/除法器用于數(shù)字運(yùn)算;數(shù)字信號(hào)處理軟核進(jìn)行數(shù)據(jù)處理、計(jì)數(shù)控制及通信處理,依據(jù)上位機(jī)的命令,將采樣結(jié)果通過(guò)通信串口傳輸給外部系統(tǒng)。電源管理系統(tǒng)給電路板分別提供5V、3.3V和1.2V三種電壓。
另外,設(shè)計(jì)不僅采用了新器件,而且大量地采用了新的軟件,包括FPGA設(shè)計(jì)軟件QuartusII系列(NiosⅡ、SignalTapII)、高端復(fù)雜電路設(shè)計(jì)軟件ExpeditionPCB系列(DxDesigner、ExpeditionPCB、I/ODesigner)、信號(hào)完整性分析軟件HyperLynx[6]。其他小軟件如串口調(diào)試助手、BorlandC++Builder等,這些先進(jìn)的開(kāi)發(fā)軟件都為電路設(shè)計(jì)提供了極大而有效率的幫助[7]。
在試驗(yàn)中,采用高精度的銣原子鐘WX-10標(biāo)準(zhǔn)頻率源做對(duì)比試驗(yàn)。銣原子鐘準(zhǔn)確度為5×10-9。將頻率標(biāo)準(zhǔn)的三路輸出信號(hào)隨機(jī)接入(并記錄)測(cè)頻電路的九路輸入端,分別進(jìn)行0.1Hz、1Hz、10Hz采樣頻率的測(cè)試。在通電2s后開(kāi)始采數(shù)。在0.1Hz、1Hz、10Hz采樣頻率下,現(xiàn)場(chǎng)至少測(cè)試15min,并提交調(diào)試階段測(cè)試的數(shù)據(jù)。測(cè)試完成后,用Excel繪制曲線圖,進(jìn)行精度和穩(wěn)定性分析。
在每個(gè)采樣頻率下,對(duì)每通道數(shù)據(jù)求均值,該均值與頻率真值的相對(duì)誤差作為該通道的測(cè)頻準(zhǔn)確度。對(duì)每通道數(shù)據(jù)求標(biāo)準(zhǔn)偏差,標(biāo)準(zhǔn)偏差與測(cè)頻真值之比作為該通道的測(cè)頻穩(wěn)定性。
取第一通道的測(cè)試均值與安捷倫5312A頻率計(jì)測(cè)得的結(jié)果進(jìn)行對(duì)比,如表1所示。
表1 加速度計(jì)測(cè)試結(jié)果對(duì)比Tab.1 The test results contrast of accelerometer
加表的第一通道輸出,10Hz采樣頻率下的測(cè)試曲線如圖8所示。
圖8 加表的第一通道輸出的測(cè)試曲線Fig.8 The test curve of the firstchannel output for accelerometer
對(duì)測(cè)量精度進(jìn)行了分析和計(jì)算,獲得以下對(duì)比的結(jié)果如表2所示。
表2 測(cè)試結(jié)果Tab.2 The test results
結(jié)果表明,該測(cè)頻電路實(shí)現(xiàn)了九路通道輸入,測(cè)頻范圍25~50kHz,輸出接口為RS422方式,測(cè)頻精度滿足指標(biāo)要求,采樣頻率實(shí)現(xiàn)了輸出數(shù)據(jù)的速率有1次/10s、1次/s、10次/s三擋的要求。與振梁表聯(lián)調(diào),在1Hz采樣時(shí),不同通道的測(cè)試結(jié)果一致性好。
通過(guò)研究與試驗(yàn),基于Nios Ⅱ嵌入式處理器的SOPC中精度測(cè)頻電路具有以下的特點(diǎn):
(1)測(cè)頻電路系統(tǒng)的高度集成化
方案設(shè)計(jì)中,在一片F(xiàn)PGA內(nèi)部集成了所有的邏輯模塊、運(yùn)算模塊、控制模塊、UART軟核等,幾乎實(shí)現(xiàn)了信號(hào)采集、數(shù)據(jù)處理、通信協(xié)議等全部功能,最大限度地減少了外圍離散電路的使用,這也是未來(lái)嵌入式系統(tǒng)發(fā)展的趨勢(shì)。
(2)設(shè)計(jì)軟件的高端復(fù)雜化
使用高端復(fù)雜電路設(shè)計(jì)軟件進(jìn)行BGA封裝設(shè)計(jì),采用BGA球柵陣列的封裝形式芯片,進(jìn)行電路板制板。另外,PCB廠家只能獲得Gerber文件和鉆孔文件,這樣也提高了設(shè)計(jì)文件的保密性。
(3)較高的頻率測(cè)量精度
設(shè)計(jì)并改進(jìn)運(yùn)算模塊,提高測(cè)頻精度,高速采樣下的連續(xù)、實(shí)時(shí)采樣,優(yōu)化設(shè)計(jì),盡量降低FPGA的資源利用率和功耗。實(shí)際測(cè)試時(shí),被測(cè)信號(hào)為(40±10)kHz時(shí),輸出數(shù)據(jù)的速率有1次/10s、1次/s、10次/s三擋(主要是受RS422/RS232轉(zhuǎn)換接頭的實(shí)時(shí)性和穩(wěn)定性的影響)。該樣機(jī)在1Hz采樣頻率下靜態(tài)測(cè)試每一路的實(shí)際精度為:相對(duì)誤差小于9.99×10-7,穩(wěn)定度小于4.90×10-8。
(4)FPGA的嵌入式軟核的應(yīng)用
鑒于FPGA的飛速發(fā)展,在可編程邏輯器件中不僅采用硬件的IP核,以節(jié)約資源提高設(shè)計(jì)效率,而且采用了Nios Ⅱ軟核這款32位高性能處理器在FPGA內(nèi)部進(jìn)行配置,實(shí)現(xiàn)了可編程片上系統(tǒng),提高了系統(tǒng)的可靠性。
基于Nios Ⅱ嵌入式處理器的SOPC中精度測(cè)頻電路的設(shè)計(jì),采用以上關(guān)鍵技術(shù)將數(shù)據(jù)采樣和運(yùn)算單元都集成在FPGA芯片中,形成一個(gè)片上操作系統(tǒng)SOPC,獲得了較高精度的測(cè)量結(jié)果。
[1] 章軍,張平,于剛.多周期同步測(cè)頻測(cè)量精度的提高[J].電測(cè)與儀表,2003,40(6):16-17.
[2] 李蘭英.Nios Ⅱ嵌入式軟核SOPC設(shè)計(jì)原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2008.
[3] 周立功.SOPC嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航空航天大學(xué)出版社,2008.
[4] 張海風(fēng).HyperLynx仿真與PCB設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2006.
[5] 徐海軍,葉衛(wèi)東.FPGA在高性能數(shù)據(jù)采集系統(tǒng)中的應(yīng)用[J].計(jì)算機(jī)技術(shù)與應(yīng)用,2005,25(1):40-43.
[6] 周潤(rùn)景,景曉松.Mentor高速電路設(shè)計(jì)與仿真[M].北京:電子工業(yè)出版社,2008.
[7] 王誠(chéng),吳繼華,范麗珍,等.Altera FPGA/CPLD設(shè)計(jì)[M].北京:人民郵電出版社,2011.
SOPC Medium Precision Design for Frequency Measurement Circuit Based on Nios Ⅱ
DONG Jian-shu1,YUAN Xiao-yu1,WANG Hui2,YAN Zong-rui3
(1.Beijing Institute of Automatic Control Equipment,Beijing 100074,China;2.Beijing Revitalization Institute of Measurement and Test,Beijing 100074,China;3.Nanjing Naval Command Academy,Nanjing 210016,China)
The medium precision frequency measurement circuit is presented for the second measurement of quartz flap accelerator’s frequency output.Firstly,the scheme’s theoretical error is analyzed in detail by comparing and selecting proper measurements.Secondly,the frequency measurement circuit based on Nios Ⅱ embedded processor is discussed:both the data sampling and operation unit are integrated in FPGA chip,which forms SOPC,and a higher precision measurement result is achieved.
Frequency measurement;FPGA;Embedded processing;SOPC
2015 - 03 - 20;
2015 - 04 - 15。
董建樹(shù)(1979 - ),男,主要從事工業(yè)測(cè)控技術(shù),信息化技術(shù)等方面的研究。
E-mail:treeplanter@163.com
TL822
A
2098-8110(2015)05-0070-06