CY8C29666芯片的高精度頻率測(cè)量系統(tǒng)設(shè)計(jì)
引言
本文引用地址:http://m.butianyuan.cn/article/201610/308820.htm在電工技術(shù)領(lǐng)域內(nèi),頻率是一個(gè)最基本的參數(shù),頻率與其他許多電參量的測(cè)量方案、測(cè)量結(jié)果都有十分密切的關(guān)系。隨著航天軍事科學(xué)技術(shù)的發(fā)展,對(duì)時(shí)間及頻率的測(cè)量精度有了更高的要求。但是在現(xiàn)有基于單片機(jī)、CPLD等的測(cè)頻設(shè)備中,在高頻率的工作條件下工作不夠穩(wěn)定,電路板的設(shè)計(jì)比較困難,測(cè)量精度達(dá)不到系統(tǒng)要求的數(shù)量級(jí)。因此,研究測(cè)量精度更高的測(cè)量設(shè)備具有重大意義。
PSoC(Programmable System on Chip)是Cypress公司推出的一款基于通用IP模塊,并且具有真正混合信號(hào)處理能力的可編程片上系統(tǒng)芯片。在PSoC芯片的設(shè)計(jì)中,設(shè)計(jì)者可以根據(jù)不同設(shè)計(jì)要求調(diào)用不同的數(shù)字和模擬模塊,完成芯片內(nèi)部的功能設(shè)計(jì)。使用一塊芯片就可以配置成具有多種不同外圍元器件的微控制器,以實(shí)現(xiàn)從確定系統(tǒng)功能開始,到軟硬件劃分,并完成設(shè)計(jì)的整個(gè)過程。因此,PSoC能夠滿足非常復(fù)雜的實(shí)時(shí)控制需求,使用它進(jìn)行產(chǎn)品開發(fā)可以大大提高開發(fā)效率,降低系統(tǒng)開發(fā)的復(fù)雜性和費(fèi)用,同時(shí)增強(qiáng)系統(tǒng)的可靠性和抗干擾能力。因此,PSoC特別適用于各種控制和自動(dòng)化領(lǐng)域。
1 測(cè)量原理
頻率測(cè)量主要有測(cè)頻法和測(cè)周法兩種。測(cè)頻法就是在確定的閘門時(shí)間Tw內(nèi),記錄被測(cè)信號(hào)的變化周期數(shù)(或脈沖個(gè)數(shù))Nx,則被測(cè)信號(hào)的頻率為fx=Nx/Tw。測(cè)周法需要有標(biāo)準(zhǔn)頻率的信號(hào)fs,在待測(cè)信號(hào)的一個(gè)周期Tx內(nèi),記錄標(biāo)準(zhǔn)頻率信號(hào)的周期數(shù)Ns,則被測(cè)信號(hào)的頻率為fx=fs/Ns;在多個(gè)周期內(nèi),記錄被測(cè)頻率的變化周期數(shù)(或脈沖個(gè)數(shù))Nx,則被測(cè)頻率為fx=fs×Nx/Ns。這兩種方法的計(jì)數(shù)值會(huì)產(chǎn)生±1個(gè)脈沖誤差,并且測(cè)試精度與計(jì)數(shù)器中記錄的數(shù)值Nx或Ns有關(guān)。
本設(shè)計(jì)采用多周期同步測(cè)頻法:首先通過對(duì)定時(shí)器的設(shè)定來預(yù)置閘門時(shí)間。將標(biāo)準(zhǔn)頻率信號(hào)和被測(cè)頻率信號(hào)分別輸入兩個(gè)計(jì)數(shù)器進(jìn)行多個(gè)周期的同步計(jì)數(shù)。預(yù)置閘門時(shí)間結(jié)束時(shí),兩個(gè)計(jì)數(shù)器并不停止計(jì)數(shù),而是等到被測(cè)頻率信號(hào)下一個(gè)同相位觸發(fā)沿到來之后才關(guān)閉同步門并停止計(jì)數(shù)。因此,測(cè)量結(jié)果的精度僅與閘門時(shí)間和標(biāo)準(zhǔn)頻率有關(guān),誤差由被測(cè)頻率的±1個(gè)脈沖減少到標(biāo)準(zhǔn)頻率信號(hào)的±1個(gè)脈沖,測(cè)量精度有顯著提高。多周期同步測(cè)頻法原理圖如圖1所示。
2 系統(tǒng)設(shè)計(jì)
2.1 硬件設(shè)計(jì)
由原理分析可知,采用多周期同步測(cè)頻法測(cè)量單路信號(hào)頻率時(shí),至少需要一個(gè)能提供閘門信號(hào)的定時(shí)器,一個(gè)控制實(shí)際閘門信號(hào)在被測(cè)信號(hào)上升沿處啟停的同步控制模塊,以及兩個(gè)分別對(duì)實(shí)際閘門內(nèi)的被測(cè)頻率信號(hào)和標(biāo)準(zhǔn)頻率信號(hào)進(jìn)行計(jì)數(shù)的計(jì)數(shù)器。由運(yùn)算器對(duì)計(jì)數(shù)器的結(jié)果進(jìn)行運(yùn)算,求出被測(cè)頻率值,最后通過顯示模塊顯示測(cè)量結(jié)果。
在兩路信號(hào)頻率測(cè)量中,不同信號(hào)的閘門信號(hào)產(chǎn)生電路和計(jì)數(shù)器都是彼此獨(dú)立的,但其控制運(yùn)算部分都由CPU來完成?;趯?duì)PsoC內(nèi)部資源上的考慮,本設(shè)計(jì)采用1片PSoC芯片CY8C29666作為頻率測(cè)量系統(tǒng)的主體部分,每個(gè)PsoC芯片內(nèi)部至少需要配置2個(gè)定時(shí)器功能模塊和4個(gè)計(jì)數(shù)器功能模塊。各計(jì)數(shù)器的計(jì)數(shù)結(jié)果輸入到CPU中進(jìn)行計(jì)算,得到的被測(cè)信號(hào)頻率值并輸出到顯示部分。
PSoC芯片是整個(gè)頻率測(cè)量系統(tǒng)的核心,其配置方式的可行性和合理性直接關(guān)系到系統(tǒng)功能能否順利實(shí)現(xiàn)。本設(shè)計(jì)中使用PSoC Designer軟件中的器件編輯器對(duì)CY8C29666內(nèi)部的全局資源、用戶模塊、連接關(guān)系以及芯片引腳進(jìn)行配置,在此基礎(chǔ)上添加外部器件,即可完成系統(tǒng)的硬件平臺(tái)的搭建。本設(shè)計(jì)中,兩路信號(hào)對(duì)應(yīng)的處理部分將系統(tǒng)資源一分為二,即定時(shí)器模塊均為8位,兩個(gè)被測(cè)頻率計(jì)數(shù)器均為16位,兩個(gè)標(biāo)準(zhǔn)頻率計(jì)數(shù)器均為32位。
定時(shí)器的配置方式是關(guān)鍵的環(huán)節(jié)。定時(shí)器模塊是由1個(gè)周期寄存器、1個(gè)同步遞減計(jì)數(shù)器和1個(gè)捕獲比較寄存器組成。周期寄存器和捕獲比較寄存器中要分別存放兩個(gè)值,即Period和CompareValue,這兩項(xiàng)值決定著閘門時(shí)間的長短。定時(shí)器模塊共有兩項(xiàng)輸出:比較輸出和最終計(jì)數(shù)輸出。其中比較輸出連到同步控制模塊,用于產(chǎn)生同步使能信號(hào);最終計(jì)數(shù)輸出端接到指定的GPIO引腳,用來判斷何時(shí)讀取計(jì)數(shù)器的計(jì)數(shù)值及重寫計(jì)數(shù)器的初值。
開啟定時(shí)器后,遞減計(jì)數(shù)器由Period值開始遞減,同時(shí)兩個(gè)輸出端均輸出低電平。當(dāng)計(jì)數(shù)值等于Compare Value時(shí),在下一個(gè)系統(tǒng)時(shí)鐘上升沿,比較輸出端輸出高電平,直至計(jì)數(shù)值遞減到零時(shí),比較輸出跳低——這樣就產(chǎn)生了定閘門信號(hào)。定閘門信號(hào)進(jìn)入同步控制模塊,產(chǎn)生與被測(cè)信號(hào)上升沿同步的使能信號(hào)。兩個(gè)計(jì)數(shù)器在使能信號(hào)為高時(shí)開始遞減計(jì)數(shù)。當(dāng)使能信號(hào)跳低后,計(jì)數(shù)器暫停計(jì)數(shù)。讀取當(dāng)前計(jì)數(shù)值,即可計(jì)算出測(cè)量結(jié)果。系統(tǒng)結(jié)構(gòu)框圖如圖2所示。
2.2 軟件設(shè)計(jì)
該系統(tǒng)的程序設(shè)計(jì)主要由主程序、中斷服務(wù)子程序和顯示子程序構(gòu)成。為了使設(shè)計(jì)出來的軟件功能明確,便于調(diào)試、擴(kuò)展和移植,采用結(jié)構(gòu)化的程序設(shè)計(jì)方法。主程序如圖3所示。
需要注意的是,定時(shí)器最終計(jì)數(shù)結(jié)束后的下一個(gè)系統(tǒng)時(shí)鐘周期,定時(shí)器會(huì)自動(dòng)重新加載計(jì)數(shù)初值,所以要在此之前讀取兩計(jì)數(shù)器的計(jì)數(shù)值。故使用定時(shí)器的最終計(jì)數(shù)輸出功能,在此時(shí)輸出一個(gè)脈沖觸發(fā)中斷,即可通過編寫中斷處理程序?qū)崿F(xiàn)讀取計(jì)數(shù)值,并重置計(jì)數(shù)器初值的功能。
3 實(shí)驗(yàn)結(jié)果及誤差分析
設(shè)標(biāo)準(zhǔn)信號(hào)的頻率為fs,通過配置定時(shí)器模塊得到的閘門時(shí)間為T,被測(cè)信號(hào)頻率的理論值為fxe,T時(shí)間內(nèi)計(jì)數(shù)器對(duì)被測(cè)頻率信號(hào)和基準(zhǔn)頻率信號(hào)的計(jì)數(shù)值分別為Nx和Ns,則被測(cè)信號(hào)的頻率為fx=fs×Nx/Ns。在忽略基準(zhǔn)頻率fs誤差的情況下,測(cè)頻可能產(chǎn)生的誤差為:
δ=[(fxe-fx)/fxe]×100% (1)
由于測(cè)量中兩計(jì)數(shù)器的計(jì)數(shù)啟停都由fx的上升沿觸發(fā),即實(shí)際閘門時(shí)間為被測(cè)頻率信號(hào)的整數(shù)倍,故對(duì)fx計(jì)數(shù)不存在誤差;對(duì)fs的計(jì)數(shù)Ns最多相差一個(gè)脈沖的誤差,即|△ Ns| ≤1,此時(shí)測(cè)量頻率為:
由式(3)可以看出,測(cè)量頻率的相對(duì)誤差與被測(cè)信號(hào)頻率的大小無關(guān),僅與閘門時(shí)間和基準(zhǔn)信號(hào)頻率有關(guān)。閘門時(shí)間越長,標(biāo)準(zhǔn)頻率越高,測(cè)頻的相對(duì)誤差就越小。這里選定標(biāo)準(zhǔn)信號(hào)頻率為48 MHz,閘門時(shí)間分別為10 s和10 ms的情況。通過計(jì)算可知:閘門時(shí)間為10 s時(shí),理論誤差為2.083×10-9;閘門時(shí)間為10 ms時(shí),理論誤差為2.083×10-8。系統(tǒng)電路安裝調(diào)試成功后,對(duì)上述結(jié)果進(jìn)行驗(yàn)證。兩路輸入信號(hào)分別取自綠楊牌YB1631信號(hào)發(fā)生器以及信達(dá)牌XD11BH多用信號(hào)發(fā)生器。被測(cè)信號(hào)參考頻率由Keithley 2000數(shù)字萬用表測(cè)得。測(cè)量結(jié)果如表1所列。
由表1可知,本設(shè)計(jì)測(cè)量結(jié)果的相對(duì)精度在10-6以上,基本達(dá)到設(shè)計(jì)精度要求,但是與理論誤差相比還有一定差距。原因有兩方面:一方面在現(xiàn)有的實(shí)驗(yàn)室條件下,沒有頻率精度更高的頻率計(jì),故以其為標(biāo)準(zhǔn)計(jì)算得到的誤差只能作為參考,更高的測(cè)量精度無法驗(yàn)證;另一方面是系統(tǒng)本身存在誤差。
結(jié)語
本系統(tǒng)以PSoC芯片CY8C29666為核心,以多周期同步測(cè)頻法為基礎(chǔ),充分利用了PSoC芯片內(nèi)部集成的功能模塊資源,完成了兩路信號(hào)頻率測(cè)量系統(tǒng)的設(shè)計(jì)。其硬件電路簡單,提高了頻率測(cè)量的精度,實(shí)現(xiàn)了高集成度、高速和高可靠性。同時(shí),由于PSoC器件的體積和功能優(yōu)勢(shì),簡化了系統(tǒng)的設(shè)計(jì),進(jìn)一步降低了成本。
評(píng)論