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

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

定時器配置
表1 定時器配置字

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

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

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

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








































評論