采用MXT5611的高精度可配置定時(shí)電路
在工業(yè)控制、家電應(yīng)用、民用爆破、武器引信等領(lǐng)域,利用到很多時(shí)間類控制事件,這些時(shí)間類控制控制事件需要用到不同功能的定時(shí)器電路,這些時(shí)間控制事件要求的定時(shí)長(zhǎng)度各不相同,需要的定時(shí)器數(shù)目也不一樣,針對(duì)不同的應(yīng)用領(lǐng)域,定時(shí)的進(jìn)制、定時(shí)方式也不盡相同。在某些應(yīng)用中,可能會(huì)利用到多個(gè)時(shí)間事件,但是時(shí)間長(zhǎng)度不是很長(zhǎng),而別的應(yīng)用中卻是單個(gè)時(shí)間事件,但是要求時(shí)間長(zhǎng)度很長(zhǎng)。也有可能某些應(yīng)用中定時(shí)方式是要求總共定時(shí)多長(zhǎng)時(shí)間,而別的應(yīng)用中要求定時(shí)方式為從某一時(shí)刻到另一時(shí)刻??傊瑧?yīng)用領(lǐng)域的不同,對(duì)定時(shí)電路的要求也不盡相同。這就要求定時(shí)器電路具備一定的配置功能,已滿足該定時(shí)器電路在不同領(lǐng)域的應(yīng)用。
本文設(shè)計(jì)的定時(shí)電路具備以下配置能力:時(shí)間長(zhǎng)度、定時(shí)方式、定時(shí)進(jìn)制、定時(shí)器的啟動(dòng)、定時(shí)達(dá)到后輸出、數(shù)據(jù)通信方式等主要可配置項(xiàng)。

圖1 可配置定時(shí)電路原理框
電路內(nèi)嵌128×16 B 容量EEPROM存儲(chǔ)陣列,把需要處理的數(shù)據(jù)做為一個(gè)最小項(xiàng),把EEPROM空間按地址順序分為8個(gè)16×16 B存儲(chǔ)窗口。其中固定一個(gè)窗口為功能配置信息存儲(chǔ)窗口,其余窗口為定時(shí)數(shù)據(jù)存儲(chǔ)窗口。功能配置信息中設(shè)置一個(gè)“有效定時(shí)數(shù)據(jù)存儲(chǔ)窗口”控制字,可以把一些常見固定的定時(shí)出具寫入EEPROM某些窗口中,如果需要進(jìn)行某種固定的定時(shí)時(shí),只需要把功能配置字中““有效定時(shí)數(shù)據(jù)存儲(chǔ)窗口”控制字進(jìn)行改寫,即可立即進(jìn)行需要的定時(shí)功能。EEPROM與寄存器組映射關(guān)系如圖2。
電路在上電后,由上電引導(dǎo)模塊把EEPROM中的配置信息載入到功能寄存器組中,再根據(jù)功能寄存器組配置狀態(tài)(主要指“有效定時(shí)數(shù)據(jù)存儲(chǔ)窗口控制字)把相應(yīng)的定時(shí)數(shù)據(jù)載入到定時(shí)寄存器組中。完成上電引導(dǎo)過程后,可由DATAin進(jìn)行電路配置更改和定時(shí)數(shù)據(jù)更新等功能,確認(rèn)配置方式和定時(shí)數(shù)據(jù)無誤后,可以通過電路定時(shí)啟動(dòng)端口發(fā)送啟動(dòng)電平脈沖或者由DATAin發(fā)送定時(shí)器啟動(dòng)禎來啟動(dòng)內(nèi)部定時(shí)器,三個(gè)定時(shí)器可以同時(shí)或者分時(shí)啟動(dòng),可根據(jù)控制需要進(jìn)行啟動(dòng)。

定時(shí)器配置
表1 定時(shí)器配置字

表1為定時(shí)器配置字,電路內(nèi)每個(gè)定時(shí)器對(duì)應(yīng)都對(duì)應(yīng)一個(gè)定時(shí)器配置字,這樣,可以根據(jù)應(yīng)用定時(shí)要求,對(duì)三個(gè)定時(shí)器進(jìn)行任一定時(shí)器的配置。同時(shí)要說明的是,定時(shí)器的啟動(dòng)方式配置和輸出脈沖控制所定義的信號(hào)類型基本一致,這樣就可以實(shí)現(xiàn)啟動(dòng)一個(gè)定時(shí)器定時(shí)完畢后立即啟動(dòng)另一個(gè)定時(shí)器的定時(shí)功能。
電路內(nèi)含三個(gè)16位定時(shí)器,三個(gè)16位定時(shí)器之間進(jìn)行一定規(guī)律的級(jí)聯(lián),以構(gòu)成更大定時(shí)范圍的定時(shí)器。配制方式如下圖:

級(jí)聯(lián)公式: 這樣,電路可通過配制C0、C1、C2來使定時(shí)器實(shí)現(xiàn)不同方式的組合。當(dāng)然,當(dāng)C0、C1、C2都為1時(shí),定時(shí)器電路將無外部時(shí)鐘輸入,此時(shí)電路不具備定時(shí)功能。
其中定時(shí)器0和定時(shí)器1的組成基本一致,以五個(gè)觸發(fā)器(其中4個(gè)觸發(fā)器處理正常計(jì)數(shù)功能,一個(gè)觸發(fā)器處理進(jìn)位、置數(shù)使能)作為“定時(shí)單元”,四個(gè)“定時(shí)單元”構(gòu)成16位定時(shí)器,通過對(duì)“定時(shí)單元”定時(shí)過程中置數(shù)使能的產(chǎn)生和置數(shù)值的設(shè)定來設(shè)置不同的定時(shí)狀態(tài)(如十進(jìn)制定時(shí)則“定時(shí)單元”在從9減到0這個(gè)過程的下一個(gè)時(shí)鐘周期為置數(shù)周期,產(chǎn)生置數(shù)使能信號(hào),同時(shí)置數(shù)值設(shè)定為1001;而如果是六進(jìn)制定時(shí)則“定時(shí)單元”在從5減到0這個(gè)過程的下一個(gè)時(shí)鐘周期為置數(shù)周期,產(chǎn)生置數(shù)使能信號(hào),同時(shí)置數(shù)值設(shè)定為0110。其他進(jìn)制的定時(shí)過程同理。)通過對(duì)4個(gè)定時(shí)單元的不同設(shè)置,可產(chǎn)生全十進(jìn)制定時(shí)方式,二進(jìn)制定時(shí)方式,六十進(jìn)制定時(shí)方式(應(yīng)用于北京時(shí)間的分、秒處理)、二十四進(jìn)制定時(shí)方式(應(yīng)用于北京時(shí)間的小時(shí)處理)、三十進(jìn)制定時(shí)方式(應(yīng)用于北京時(shí)間的日處理,因?yàn)闆]有“0天”這種說法,故該處理需要在定時(shí)單元的結(jié)構(gòu)上增加一個(gè)判定)。
在此結(jié)構(gòu)上,如果需要增加新的定時(shí)進(jìn)制處理,只需要對(duì)置數(shù)rom邏輯進(jìn)行增加即可。
定時(shí)器T2的設(shè)計(jì)是針對(duì)北京時(shí)間二進(jìn)制表示的定時(shí)設(shè)計(jì),同時(shí)具備基本的二進(jìn)制定時(shí)。它主要處理北京時(shí)間小時(shí)級(jí)及小時(shí)以上的數(shù)據(jù)處理。做為基本二進(jìn)制定時(shí)時(shí),它可單獨(dú)使用,也可以與定時(shí)器T0和定時(shí)器T1做級(jí)聯(lián)使用。當(dāng)它需要處理北京時(shí)間二進(jìn)制表示高位信息處理時(shí),和定時(shí)器T1組成32位定時(shí)器,定時(shí)器1處理“秒”、“分”信息,定時(shí)器T2處理“小時(shí)”、“天”“月”“年”數(shù)據(jù)。T2+T1的級(jí)聯(lián)方式,主要用于處理從某一時(shí)刻到另一時(shí)刻的定時(shí)方式。
精度控制
電路提供兩種可選擇時(shí)鐘源輸入:內(nèi)部集成硅振蕩器和外部晶體振蕩器輸入。電路設(shè)計(jì)了兩種精度控制方法,其一是時(shí)基腳準(zhǔn),時(shí)基校準(zhǔn)就是解決因定時(shí)時(shí)鐘誤差引起的定時(shí)累計(jì)誤差的辦法。如果我們能得到一個(gè)精確的定時(shí)時(shí)鐘,則沒有這部分定時(shí)誤差。但是不管怎么樣的校準(zhǔn),始終是無法得到一個(gè)完全精確的定時(shí)時(shí)鐘的,我們要做的是最大可能的得到一個(gè)精確定時(shí)時(shí)鐘。
其二是定時(shí)校正,指在定時(shí)過程中,電路根據(jù)設(shè)定的某一固定值對(duì)定時(shí)過程進(jìn)行校正或者接受外部校正信號(hào)對(duì)定時(shí)過程進(jìn)行校正。這一方法旨在解決引非時(shí)鐘誤差問題引起的定時(shí)誤差。同時(shí),該校正方法也可以用于解決因時(shí)鐘規(guī)律性偏差所引起的誤差問題,比如時(shí)鐘的溫度漂移偏差問題。
硅振蕩器的精度調(diào)整方法總的來說有兩種:模擬方法和數(shù)字方法。模擬調(diào)整方法主要是在電路中測(cè)過程對(duì)電路中的電容陣列進(jìn)行熔絲處理,調(diào)整電容值大小,得到一個(gè)較為精確的時(shí)鐘,但是這種方法需要很大的成本,并且調(diào)整后的精度范圍為1%左右,如果要得到更高精度的硅振蕩器,則需要付出更大的成本,并且給電路設(shè)計(jì)帶來很大的挑戰(zhàn)。本電路提供一種更高精度的數(shù)字調(diào)整方法,該方法可以在電路正常工作前對(duì)電路進(jìn)行在線校準(zhǔn),也可以在測(cè)試過程中對(duì)批電路進(jìn)行一次性校準(zhǔn)。
本電路的時(shí)基校準(zhǔn)方法是通過外部端口輸入標(biāo)準(zhǔn)512ms時(shí)間長(zhǎng)度,以振蕩器輸出頻率對(duì)512ms時(shí)間進(jìn)行采樣計(jì)數(shù),得出一個(gè)計(jì)數(shù)值。然后把該計(jì)數(shù)值除以512,得到商值和余數(shù)。商值做為1ms時(shí)鐘的基本長(zhǎng)度,然后通過判斷再次基本長(zhǎng)度上增加或者不增加1個(gè)計(jì)數(shù)脈沖來得到最終的1ms時(shí)鐘信號(hào),這樣每一個(gè)1ms輸出時(shí)鐘最大誤差為1T(硅振蕩器輸出時(shí)鐘周期),而512ms時(shí)間最大誤差也為1T。上述判斷過程以512位周期,即每一個(gè)512ms對(duì)商和余數(shù)做同樣的處理。
那么,在不考慮溫度等條件的情況下,以該方案得到的時(shí)鐘進(jìn)行Nms(N=512X+Y,X=0,1,2,3,……;0≤Y≤511)時(shí)間長(zhǎng)度定時(shí),最大誤差為
(X+Y/4)·T。我們通過分析,可以得出以下幾句數(shù)據(jù):
438s時(shí)間長(zhǎng)度定時(shí)誤差為103T(T為內(nèi)建振蕩器輸出時(shí)鐘周期,當(dāng)設(shè)計(jì)值為1us時(shí),此時(shí)的定時(shí)精度約為2ppm)。
82m時(shí)間長(zhǎng)度定時(shí)誤差為104T(T為內(nèi)建振蕩器輸出時(shí)鐘周期,當(dāng)設(shè)計(jì)值為1us時(shí),此時(shí)的定時(shí)精度約為2ppm)。
142h時(shí)間長(zhǎng)度定時(shí)誤差為106T(T為內(nèi)建振蕩器輸出時(shí)鐘周期,當(dāng)設(shè)計(jì)值為1us時(shí),此時(shí)的定時(shí)精度約為2ppm)。
在不考慮硅振蕩器的溫度特性條件下,利用本方法產(chǎn)生時(shí)鐘進(jìn)行的定時(shí)精度為2ppm,可以等同于壓控制式晶體振蕩器頻率精度的10^(-6)~10^(-5)量級(jí)。
本電路給出的定時(shí)校正方法主要是用以解決定時(shí)過程中因外部環(huán)境所引起的定時(shí)偏差,或者解決因控制需要而改變定時(shí)時(shí)間長(zhǎng)度的問題。電路在定時(shí)過程中,接受外部信號(hào),對(duì)定時(shí)過程進(jìn)行實(shí)時(shí)校正。

圖4為定時(shí)器的結(jié)構(gòu)示意圖,以減計(jì)數(shù)器為核心,同時(shí)接受定時(shí)數(shù)據(jù)和修正數(shù)據(jù)。定時(shí)數(shù)據(jù)做為減計(jì)數(shù)器的定時(shí)起點(diǎn),而修正數(shù)據(jù)主要是用來對(duì)進(jìn)入定時(shí)器的定時(shí)時(shí)鐘進(jìn)行調(diào)整。定時(shí)器的修正功能模塊可以保證,在任何一時(shí)刻,處理一幀數(shù)據(jù),緩存一幀數(shù)據(jù),讓進(jìn)入修正模塊處理的數(shù)據(jù)完成后,緩存器中的數(shù)據(jù)立刻進(jìn)入修正模塊,而修正總線上的數(shù)據(jù)進(jìn)入緩存器。
修正方法是根據(jù)外部修正數(shù)據(jù)的符號(hào)位進(jìn)行增減判斷,如果是增長(zhǎng)定時(shí)過程N(yùn)個(gè)時(shí)鐘周期,則,在對(duì)定時(shí)時(shí)鐘進(jìn)行N個(gè)時(shí)鐘周期的上升沿磨平處理,如果是縮短N(yùn)個(gè)時(shí)鐘周期,則在N個(gè)時(shí)鐘周期內(nèi),定時(shí)器進(jìn)入雙沿觸發(fā)定時(shí)過程。
圖5為定時(shí)修正波形圖,從ADJUST端口輸入具體修正時(shí)間,圖中第一幀為定時(shí)增長(zhǎng)7個(gè)時(shí)鐘周期,第二幀為定時(shí)縮短7個(gè)時(shí)鐘周期。CLKIN為定時(shí)時(shí)鐘,CLKOUT為修正后時(shí)鐘。T0counter[15:0]為定時(shí)器的數(shù)據(jù)。

根據(jù)電路的工作狀態(tài),可以把電路分為配置工作狀態(tài)和定時(shí)狀態(tài)。任意工作狀態(tài)下,并非所有的模塊都處于工作狀態(tài)下。在設(shè)計(jì)模塊間接口信號(hào)時(shí),同時(shí)設(shè)計(jì)模塊電源控制信號(hào)。在進(jìn)行配置工作狀態(tài)下,通信模塊和儲(chǔ)存單元處于工作狀態(tài),而整個(gè)定時(shí)處理工作模塊處于等待狀態(tài)。在這段時(shí)間,定時(shí)處理工作模塊一直處于清零狀態(tài),而且對(duì)定時(shí)器時(shí)鐘信號(hào)進(jìn)行鎖定不工作。當(dāng)處于定時(shí)狀態(tài)下,大部分的通信模塊及存儲(chǔ)單元不會(huì)發(fā)生數(shù)據(jù)變化,此時(shí)可以關(guān)斷EEPROM的參考電流源來降低電路功耗。
結(jié)論
通過本文的配置方案和精度方案,可以保證電路定時(shí)精度在2ppm左右。采用菊花鏈?zhǔn)脚渲枚〞r(shí)器結(jié)構(gòu),可以通過簡(jiǎn)單的配置得到多種定時(shí)應(yīng)用,滿足多種控制要求。
電子發(fā)燒友App








































評(píng)論