本發(fā)明涉及一種晶振頻率測量方法,尤其涉及一種利用嵌入式軟件測量cpu外置晶振的頻率的方法。
背景技術(shù):
晶振是數(shù)字電路的源泉,是維持cpu工作的必備器件。傳統(tǒng)測量cpu晶振頻率的方法是采用示波器或者頻率計,通過人工將測試探頭連接到晶振引腳,然后通過示波器或者頻率計讀取,測試比較繁瑣。人工的加入也容易引入靜電,可能使晶振及相關(guān)電路產(chǎn)生內(nèi)部損傷。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種通過嵌入式軟件測量cpu外置晶振的頻率的方法,以解決現(xiàn)有技術(shù)存在的問題。
本發(fā)明采用以下技術(shù)方案:
一種cpu外置晶振頻率測量方法,包括:
對cpu內(nèi)部的定時器施加頻率為f1的脈沖,并獲取該脈沖在n1個周期內(nèi)的震蕩時間,將該震蕩時間作為時間基準t1,利用cpu內(nèi)部的定時器設(shè)置系數(shù)設(shè)置定時器分頻系數(shù)mt,依據(jù)該分頻系數(shù)mt對cpu外置晶振分頻后產(chǎn)生中斷,并獲取時間t2內(nèi)的cpu外置晶振的中斷次數(shù),根據(jù)系統(tǒng)預(yù)先設(shè)定的cpu的分頻系數(shù)m和cpu的倍頻系數(shù)nk,獲取cpu外置晶振的頻率fx;
所述獲取cpu外置晶振的頻率fx的方法為:
首先設(shè)定t1=t2,即在獲取上述兩個時間時,獲取相同的兩個時間;
則有:
其中,將已知頻率為f1的脈沖的周期數(shù)n1取為1,則可得到:
其中,
f1為施加給cpu內(nèi)部的脈沖的頻率,該參數(shù)預(yù)先已知;
fx為cpu外部晶振的頻率;
mt為預(yù)先設(shè)定的定時器的分頻系數(shù),該參數(shù)為預(yù)先設(shè)定;
m為cpu的分頻系數(shù),該參數(shù)為預(yù)先設(shè)定;
nk為cpu的倍頻系數(shù),該參數(shù)為預(yù)先設(shè)定;
n為在已知頻率為f1的脈沖的一個周期內(nèi)計時器的計數(shù),該參數(shù)在cpu運行后獲取。
所述對cpu內(nèi)部施加的脈沖為:通過cpu內(nèi)部的rtc單元產(chǎn)生的頻率為f1的秒中斷源,此時,時間基準t1為秒中斷源在n1個周期內(nèi)的震蕩時間。
所述對cpu內(nèi)部施加的脈沖為:從外部對cpu的某一管腳施加一頻率f1的脈沖,使得內(nèi)部的定時器單元產(chǎn)生秒中斷,獲取該定時器在n1個周期內(nèi)的震蕩時間作為已知的時間基準t1。
本發(fā)明的有益效果:
本發(fā)明能夠很好的解決傳統(tǒng)測量cpu晶振頻率時的繁瑣過程,能夠避免人工的加入可能引入靜電導(dǎo)致的晶振及相關(guān)電路產(chǎn)生內(nèi)部損傷,實現(xiàn)高效安全的測量。
附圖說明
圖1為本發(fā)明的示意框圖。
具體實施方式
下面結(jié)合附圖和具體實施方式對本發(fā)明作進一步詳細說明。
本發(fā)明提供一種cpu外置晶振頻率測量方法,利用嵌入式軟件進行測量。
本發(fā)明的使用嵌入式軟件進行測量的方法包括:
對cpu的定時器單元施加頻率為f1的脈沖,并獲取該定時器的脈沖在n1個周期內(nèi)的震蕩時間,將該震蕩時間作為時間基準t1;然后利用cpu內(nèi)部的定時器設(shè)置系數(shù)設(shè)置定時器分頻系數(shù)mt,依據(jù)該分頻系數(shù)mt對cpu外置晶振分頻后產(chǎn)生中斷,并獲取時間t2內(nèi)的cpu外置晶振的中斷次數(shù),根據(jù)系統(tǒng)預(yù)先設(shè)定的cpu的分頻系數(shù)m和cpu的倍頻系數(shù)nk,獲取cpu外置晶振的頻率fx。
為方便計算,上述依據(jù)該分頻系數(shù)mt對cpu外置晶振分頻后產(chǎn)生中斷后,獲取時間基準t1內(nèi)的cpu外置晶振的中斷次數(shù),作為計算的依據(jù),即t1=t2。
獲取cpu外置晶振的頻率fx的方法為:
由于t1=t2,
則有
其中,將已知頻率為f1的脈沖的周期數(shù)n1取為1,則可得到:
其中,f1為施加給cpu內(nèi)部的脈沖的頻率,該參數(shù)為施加給cpu內(nèi)部的脈沖,在發(fā)送之前已經(jīng)預(yù)先獲知其頻率;fx為cpu外部晶振的頻率,即待測頻率;mt為通過嵌入式軟件預(yù)先設(shè)定的定時器的分頻系數(shù),該參數(shù)已知;m為通過嵌入式軟件設(shè)置的cpu的分頻系數(shù),該參數(shù)為已知;nk為通過嵌入式軟件設(shè)置的cpu的倍頻系數(shù),該參數(shù)為預(yù)先已知;n為在已知頻率為f1的脈沖的一個周期內(nèi)計時器的計數(shù),該參數(shù)在嵌入式軟件運行后,能夠從嵌入式軟件中獲取。
本發(fā)明脈沖的產(chǎn)生有兩種方法,即兩種秒中斷的基準不同。一種是內(nèi)部rtc產(chǎn)生的f1脈沖,通過施加給內(nèi)部定時器,通過內(nèi)部定時器產(chǎn)生秒中斷。一種外部施加到cpu輸入管腳的f1脈沖,也是施加給內(nèi)部定時器,通過內(nèi)部定時器以產(chǎn)生秒中斷。
當cpu內(nèi)部具有rtc單元和rtc振蕩器,即實時時鐘單元時,通過cpu內(nèi)部的rtc單元產(chǎn)生頻率為f1的脈沖,該脈沖施加給cpu內(nèi)部定時器單元,通過內(nèi)部定時器單元產(chǎn)生秒中斷源,獲取秒中斷源在n1個周期內(nèi)的震蕩時間作為已知的時間基準t1,通過cpu內(nèi)部的定時器設(shè)置系數(shù)設(shè)置定時器的分頻系數(shù)mt,對cpu外置晶振分頻后產(chǎn)生中斷,并獲取時間t2內(nèi)的中斷次數(shù),根據(jù)系統(tǒng)設(shè)定的cpu的分頻系數(shù)m和cpu的倍頻系數(shù)nk,在t1=t2的情況下,通過上述的公式(1)和公式(2)獲取cpu外置晶振的頻率fx。
當cpu內(nèi)部不具有rtc單元時,從外部對cpu的某一管腳向cpu內(nèi)的定時器單元施加一頻率f1的脈沖,使得內(nèi)部的定時器單元產(chǎn)生秒中斷,獲取該定時器在n1個周期內(nèi)的震蕩時間作為已知的時間基準t1。通過cpu內(nèi)部的定時器設(shè)置系數(shù)設(shè)置定時器的分頻系數(shù)mt,對cpu外置晶振分頻后產(chǎn)生中斷,并獲取時間t2內(nèi)的中斷次數(shù),根據(jù)系統(tǒng)設(shè)定的cpu的分頻系數(shù)m和cpu的倍頻系數(shù)nk,通過上述的公式(1)和公式(2)獲取cpu外置晶振的頻率fx。
以上所述的僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當指出,對于本領(lǐng)域的技術(shù)人員來說,在不脫離本發(fā)明整體構(gòu)思前提下,還可以作出若干改變和改進,這些也應(yīng)該視為本發(fā)明的保護范圍。