欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種定時系統(tǒng)及定時方法與流程

文檔序號:12010161閱讀:258來源:國知局
一種定時系統(tǒng)及定時方法與流程
本發(fā)明涉及MCU應用系統(tǒng)技術領域,特別涉及一種定時系統(tǒng)及定時方法。

背景技術:
在一些簡單低成本且使用電池供電的MCU應用系統(tǒng)中,希望能最大限度的降低系統(tǒng)的待機功耗,延長電池的使用壽命。而該系統(tǒng)在待機時一般只需要較長時間定時但對定時精度有一定要求。如在噴香機的應用中,一般定時時間為10分鐘/20分鐘/30分鐘,定時精度要求為5%左右,待機功耗希望能達到幾個μA。目前,在需要定時的MCU應用系統(tǒng)中,一般都是使用內置定時計數(shù)器來實現(xiàn)。但是現(xiàn)有的定時方案中均存在缺陷,具體如下:如果MCU應用系統(tǒng)使用的定時計數(shù)器的時鐘源采用系統(tǒng)時鐘或者外設時鐘,系統(tǒng)時鐘或外設時鐘頻率一般都比較精確且頻率較高,且受MCU供電電壓和環(huán)境溫度變化的影響較小。因此在正常工作模式時該系統(tǒng)能實現(xiàn)精確定時,但是正常工作模式時的功耗都比較高。在MCU進入睡眠/停機(STOP)模式,定時計數(shù)器所使用的時鐘源系統(tǒng)時鐘或外設時鐘都會停止,無法實現(xiàn)定時/計數(shù)功能,因此無法在睡眠/停機(STOP)模式時使用定時計數(shù)器來定時,使用較高精度的時鐘源通常功耗都比較大(50μA以上)。如果MCU應用系統(tǒng)使用的定時計數(shù)器的時鐘源采用低頻時鐘,低頻時鐘工作時功耗較低。低頻時鐘的來源有2種:MCU外置低頻晶振時鐘和MCU內置低頻時鐘。如果使用MCU外置低頻晶振時鐘,則系統(tǒng)能實現(xiàn)精確定時但是需要額外增加元器件和占用MCU芯片的IO管腳。MCU內置低頻時鐘隨MCU供電電壓和環(huán)境溫度變化較大,導致在不同的電壓和環(huán)境溫度下的定時誤差較大。使用內置低頻時鐘做時鐘源的功耗較?。?μA以下),但是精度較差,特別是電壓特性和溫度特性不好。綜上可見,低功耗和高精度定時是一個兩難的選擇,而提供一種較低功耗、較高精度的定時系統(tǒng)/方法也成了一大難題。

技術實現(xiàn)要素:
本發(fā)明的目的在于提供一種定時系統(tǒng)及定時方法,以解決現(xiàn)有的定時方式中,難以同時實現(xiàn)較低功耗和較高精度的問題。為解決上述技術問題,本發(fā)明提供一種定時系統(tǒng),所述定時系統(tǒng)包括:第一定時計數(shù)器,所述第一定時計數(shù)器使用MCU系統(tǒng)內部的第一頻率時鐘作為計數(shù)時鐘;第二定時計數(shù)器,所述第二定時計數(shù)器使用MCU系統(tǒng)內部的第二頻率時鐘作為計數(shù)時鐘;其中,所述第一頻率時鐘的頻率比所述第二頻率時鐘的頻率低;所述第一定時計數(shù)器能夠在MCU系統(tǒng)處于睡眠/停機狀態(tài)時工作,并能夠喚醒處于睡眠/停機狀態(tài)的MCU系統(tǒng);當處于睡眠/停機狀態(tài)的MCU系統(tǒng)被喚醒后,所述第二定時計數(shù)器能夠工作。可選的,在所述的定時系統(tǒng)中,在進行MCU系統(tǒng)定時時,所述第一定時計數(shù)器輸出多個子定時,所述第二定時計數(shù)器獲取每個子定時對應的第一頻率時鐘的頻率,所述第一定時計數(shù)器根據(jù)所述第一頻率時鐘的頻率調整計數(shù)值,使得多個子定時均等于一設定值并且多個子定時的累加值與系統(tǒng)定時之間的誤差在誤差范圍內??蛇x的,在所述的定時系統(tǒng)中,在進行MCU系統(tǒng)定時時,所述第一定時計數(shù)器輸出多個子定時,所述第二定時計數(shù)器獲取每個子定時的值,使得多個子定時的累加值與系統(tǒng)定時之間的誤差在誤差范圍內??蛇x的,在所述的定時系統(tǒng)中,還包括定時寄存器,所述定時寄存器用以存儲所述子定時的累加值。本發(fā)明還提供一種定時方法,所述定時方法包括:步驟10A:第一定時計數(shù)器開始工作;步驟20A:MCU系統(tǒng)進入睡眠/停機狀態(tài);步驟30A:第一定時計數(shù)器對第一頻率時鐘進行計數(shù),輸出子定時,所述子定時的時間值等于一設定值,并喚醒處于睡眠/停機狀態(tài)的MCU系統(tǒng),此時第二定時計數(shù)器開始工作;步驟40A:第二定時計數(shù)器獲取第一頻率時鐘的頻率,所述第一定時計數(shù)器根據(jù)第二定時計數(shù)器獲取的第一頻率時鐘的頻率調整計數(shù)值,使得下一子定時的時間值能夠等于一設定值;步驟50A:累加子定時,將子定時的累加值與系統(tǒng)定時進行比較,若子定時的累加值大于或者等于系統(tǒng)定時,則MCU系統(tǒng)處理定時事件,同時繼續(xù)重復執(zhí)行步驟20A、步驟30A及步驟40A;若子定時的累加值小于系統(tǒng)定時,則繼續(xù)重復執(zhí)行步驟20A、步驟30A及步驟40A??蛇x的,在所述的定時方法中,步驟10A、步驟20A、步驟30A、步驟40A及步驟50A的發(fā)生順序為:步驟10A、步驟20A、步驟30A、步驟40A、步驟50A;或者步驟10A、步驟20A、步驟30A、步驟50A、步驟40A??蛇x的,在所述的定時方法中,在步驟10A之前,先執(zhí)行一次步驟40A??蛇x的,在所述的定時方法中,設步驟40A的測量時間為TS,則在步驟50A每次累加子定時時,同時累加測量時間TS??蛇x的,在所述的定時方法中,在步驟50A中,累加子定時后,將子定時的累加值存儲于定時寄存器中。本發(fā)明還提供一種定時方法,所述定時方法包括:步驟10B:第一定時計數(shù)器開始工作;步驟20B:MCU系統(tǒng)進入睡眠/停機狀態(tài);步驟30B:第一定時計數(shù)器對第一頻率時鐘進行計數(shù),輸出子定時并喚醒處于睡眠/停機狀態(tài)的MCU系統(tǒng),此時第二定時計數(shù)器開始工作;步驟40B:第二定時計數(shù)器獲取第一頻率時鐘的頻率,根據(jù)第二定時計數(shù)器獲取的第一頻率時鐘的頻率及第一定時計數(shù)器的計數(shù),得到子定時的時間值;步驟50B:累加子定時,將子定時的累加值與系統(tǒng)定時進行比較,若子定時的累加值大于或者等于系統(tǒng)定時,則MCU系統(tǒng)處理定時事件,同時繼續(xù)重復執(zhí)行步驟20B、步驟30B及步驟40B;若子定時的累加值小于系統(tǒng)定時,則繼續(xù)重復執(zhí)行步驟20B、步驟30B及步驟40B??蛇x的,在所述的定時方法中,在步驟50B中,累加子定時后,將子定時的累加值存儲于定時寄存器中。在本發(fā)明提供的定時系統(tǒng)及定時方法中,通過使用第一定時計數(shù)器及第二定時計數(shù)器,其中,第一定時計數(shù)器使用MCU系統(tǒng)內部的第一頻率時鐘作為計數(shù)時鐘,第二定時計數(shù)器使用MCU系統(tǒng)內部的第二頻率時鐘作為計數(shù)時鐘,并且所述第一頻率時鐘的頻率比所述第二頻率時鐘的頻率低,由此,即能夠通過第一定時計數(shù)器獲取一個較低的功耗,又能夠通過第二定時計數(shù)器獲取一個較高的精度,從而同時實現(xiàn)了較低功耗和較高精度。附圖說明圖1是本發(fā)明實施例的定時系統(tǒng)的框結構示意圖;圖2是本發(fā)明實施例的一定時方法的流程示意圖;圖3是本發(fā)明實施例的利用第二定時計數(shù)器獲取第一頻率時鐘的一波形示意圖;圖4是本發(fā)明實施例的利用第二定時計數(shù)器獲取第一頻率時鐘的另一波形示意圖;圖5是本發(fā)明實施例的另一定時方法的流程示意圖。具體實施方式以下結合附圖和具體實施例對本發(fā)明提出的定時系統(tǒng)及定時方法作進一步詳細說明。根據(jù)下面說明和權利要求書,本發(fā)明的優(yōu)點和特征將更清楚。需說明的是,附圖均采用非常簡化的形式且均使用非精準的比例,僅用以方便、明晰地輔助說明本發(fā)明實施例的目的。請參考圖1,其為本發(fā)明實施例的定時系統(tǒng)的框結構示意圖。如圖1所示,所述定時系統(tǒng)用于MCU系統(tǒng)10,所述定時系統(tǒng)包括:第一定時計數(shù)器11,所述第一定時計數(shù)器11使用MCU系統(tǒng)10內部的第一頻率時鐘FLA作為計數(shù)時鐘;第二定時計數(shù)器12,所述第二定時計數(shù)器12使用MCU系統(tǒng)10內部的第二頻率時鐘FH作為計數(shù)時鐘;其中,所述第一頻率時鐘FLA的頻率比所述第二頻率時鐘FH的頻率低;所述第一定時計數(shù)器11能夠在MCU系統(tǒng)10處于睡眠/停機狀態(tài)時工作,并能夠喚醒處于睡眠/停機狀態(tài)的MCU系統(tǒng)10;當處于睡眠/停機狀態(tài)的MCU系統(tǒng)10被喚醒后,所述第二定時計數(shù)器12能夠工作。其中,所述第一頻率時鐘FLA為MCU系統(tǒng)10內置低頻時鐘,其受MCU系統(tǒng)10供電電壓和環(huán)境溫度變化的影響較大;所述第二頻率時鐘FH為MCU系統(tǒng)10內置高頻時鐘,其受MCU系統(tǒng)10供電電壓和環(huán)境溫度變化的影響較小。具體的,在進行MCU系統(tǒng)10定時時,所述第一定時計數(shù)器11輸出多個子定時,所述第二定時計數(shù)器12獲取每個子定時對應的第一頻率時鐘FLA的頻率,所述第一定時計數(shù)器11根據(jù)所述第一頻率時鐘FLA的頻率調整計數(shù)值,使得多個子定時均等于一設定值并且多個子定時的累加值與系統(tǒng)定時之間的誤差在誤差范圍內?;蛘撸谶M行MCU系統(tǒng)10定時時,所述第一定時計數(shù)器11輸出多個子定時,所述第二定時計數(shù)器12獲取每個子定時的值,使得多個子定時的累加值與系統(tǒng)定時之間的誤差在誤差范圍內。在本實施例中,所述定時系統(tǒng)還包括定時寄存器13,所述定時寄存器13用以存儲所述子定時的累加值。接下去,將提供兩種利用所述定時系統(tǒng)的定時方法,具體說明如何同時滿足較低功耗和較高精度的要求,實現(xiàn)系統(tǒng)定時。方法一請參考圖2,其為本發(fā)明實施例的一定時方法的流程示意圖。如圖2所示,所述定時方法包括:步驟10A:第一定時計數(shù)器開始工作;步驟20A:MCU系統(tǒng)進入睡眠/停機狀態(tài);步驟30A:第一定時計數(shù)器對第一頻率時鐘進行計數(shù),輸出子定時,所述子定時的時間值等于一設定值,并喚醒處于睡眠/停機狀態(tài)的MCU系統(tǒng),此時第二定時計數(shù)器開始工作;步驟40A:第二定時計數(shù)器獲取第一頻率時鐘的頻率,所述第一定時計數(shù)器根據(jù)第二定時計數(shù)器獲取的第一頻率時鐘的頻率調整計數(shù)值,使得下一子定時的時間值能夠等于一設定值;步驟50A:累加子定時,將子定時的累加值與系統(tǒng)定時進行比較,若子定時的累加值大于或者等于系統(tǒng)定時,則MCU系統(tǒng)處理定時事件,同時繼續(xù)重復執(zhí)行步驟20A、步驟30A及步驟40A;若子定時的累加值小于系統(tǒng)定時,則繼續(xù)重復執(zhí)行步驟20A、步驟30A及步驟40A。具體的,設MCU系統(tǒng)10設有一系統(tǒng)定時TQ,所述系統(tǒng)定時TQ通常較長,例如為10分鐘、20分鐘或者30分鐘等。MCU系統(tǒng)10進入睡眠/停機狀態(tài),第一定時計數(shù)器11開始工作,在本定時方法一中,第一定時計數(shù)器10需要輸出多個時間間隔相等的子定時,具體通過如下方法實現(xiàn):預設一設定值,所述設定值即為每個子定時需要與其相等的值。在所述第一定時計數(shù)器11第一次輸出子定時時,由于所述第一頻率時鐘FLA的當前確切頻率未知,因此可先使用所述第二定時計數(shù)器12獲取第一頻率時鐘FLA的頻率,然后所述第一定時計數(shù)器11根據(jù)所述第一頻率時鐘FLA的當前頻率進行設定計數(shù)值,即可得到第一個子定時,該第一個子定時等于預設值。但是,由于為了獲取較低的功耗,所述第一定時計數(shù)器11所使用的第一頻率時鐘FLA為MCU系統(tǒng)10內置低頻時鐘,其受MCU系統(tǒng)10供電電壓和環(huán)境溫度變化的影響較大,也就是說,在輸出后續(xù)子定時的過程中,所述第一頻率時鐘FLA的頻率往往發(fā)生了改變。為此,在本實施例的定時方法中提出,第一定時計數(shù)器11輸出一子定時的同時,喚醒處于睡眠/停機狀態(tài)的MCU系統(tǒng)10,則此時第二定時計數(shù)器12開始工作,通過第二定時計數(shù)器12獲取第一頻率時鐘FLA的頻率,由此,所述第一定時計數(shù)器11根據(jù)第二定時計數(shù)器12獲取的第一頻率時鐘FLA的頻率(即最新的第一頻率時鐘FLA的頻率)調整計數(shù)值,使得下一子定時的時間值能夠等于一設定值。其中,所述第二定時計數(shù)器12可通過如下方式獲取所述第一定時頻率時鐘FLA的頻率。在此,可相應參考圖1,第一頻率時鐘FLA通過分頻器14的分頻,得到第一頻率時鐘FLA的分頻FLB,所述分頻FLB為第一頻率時鐘FLA的N分頻,其中N≥1,即F(FLB)=F(FLA)/N,誤差(或者說頻率的變化量)跟隨第一頻率時鐘FLA的頻率。當利用第二定時計數(shù)器12獲取第一頻率時鐘FLA的頻率時,所述第二定時計數(shù)器12可在分頻FLB的上升沿開始計數(shù),到第N1個波形周期的上升沿結束計數(shù)。對此,可相應參考圖3,其為本發(fā)明實施例的利用第二定時計數(shù)器獲取第一頻率時鐘的一波形示意圖?;蛘?,所述第二定時計數(shù)器12可在分頻FLB的下降沿開始計數(shù),到第N1個波形周期的下降沿結束計數(shù)。對此,可相應參考圖4,其為本發(fā)明實施例的利用第二定時計數(shù)器獲取第一頻率時鐘的頻率的另一波形示意圖。其中,N1≥1,N1越大,測量精度相對來說越高。假定此時第二定時計數(shù)器12的計數(shù)值為N2,則第一頻率時鐘FLA的頻率為F(FLA)=F(FH)*N*N1/N2,即第一頻率時鐘FLA的周期為T(FLA)=N2/(F(FH)*N*N1)。通過第二定時計數(shù)器12獲取了第一頻率時鐘FLA的頻率之后,所述第一定時計數(shù)器11便可根據(jù)第二定時計數(shù)器12獲取的第一頻率時鐘FLA的頻率(即最新的第一頻率時鐘FLA的頻率)調整計數(shù)值,使得下一子定時的時間值能夠等于一設定值。接著,累加子定時,將子定時的累加值與系統(tǒng)定時TQ進行比較,若子定時的累加值大于或者等于系統(tǒng)定時TQ,則MCU系統(tǒng)10處理定時事件,同時繼續(xù)重復執(zhí)行步驟20A、步驟30A及步驟40A;若子定時的累加值小于系統(tǒng)定時TQ,則繼續(xù)重復執(zhí)行步驟20A、步驟30A及步驟40A。在本實施例中,累加子定時后,將子定時的累加值存儲于定時寄存器13中。由此,當新產生一個子定時后,可從所述定時寄存器13中提取前一個子定時的累加值(即不包括當前新產生的子定時的所有子定時的累加值),將新產生的子定時與前一個子定時的累加值相加,即可得到當前的子定時累加值。接著,將子定時的累加值與系統(tǒng)定時TQ進行比較,若子定時的累加值大于或者等于系統(tǒng)定時TQ,MCU系統(tǒng)10即可處理定時事件。在本實施例中,當MCU系統(tǒng)10處理完一次定時事件或者子定時的累加值小于系統(tǒng)定時TQ時,均繼續(xù)重復執(zhí)行步驟20A、步驟30A及步驟40A,由此可以反復處理定時事件。其中,所述定時的終止可以通過設定一定時事件處理次數(shù),當達到定時事件處理次數(shù)時,所述定時即可終止。當所述定時事件處理次數(shù)為一次時,則當MCU系統(tǒng)10處理完一次定時事件便可終止執(zhí)行步驟20A、步驟30A及步驟40A。此外,在本實施例中,對于步驟40A及步驟50A的發(fā)生順序不作限定,既可以先得到第一頻率時鐘FLA的最新頻率再進行子定時的累加;也可以先進行子定時的累加再獲取第一頻率時鐘FLA的最新頻率;還可以兩種同時進行。即步驟10A、步驟20A、步驟30A、步驟40A及步驟50A的發(fā)生順序為:步驟10A、步驟20A、步驟30A、步驟40A、步驟50A;或者步驟10A、步驟20A、步驟30A、步驟50A、步驟40A。在本方法一中,設步驟40A中第二定時計數(shù)器獲取第一頻率時鐘的頻率所花測量時間為TS,為了盡可能的減少系統(tǒng)定時誤差,在步驟50A每次累加子定時,可同時累加測量時間TS。通過使得每次子定時均等于/基本等于一設定值,控制了每次子定時的誤差,從而能夠使得子定時的累加值與系統(tǒng)定時TQ之間的誤差在誤差范圍內。方法二請參考圖5,其為本發(fā)明實施例的另一定時方法的流程示意圖。如圖5所示,所述定時方法包括:步驟10B:第一定時計數(shù)器開始工作;步驟20B:MCU系統(tǒng)進入睡眠/停機狀態(tài);步驟30B:第一定時計數(shù)器對第一頻率時鐘進行計數(shù),輸出子定時并喚醒處于睡眠/停機狀態(tài)的MCU系統(tǒng),此時第二定時計數(shù)器開始工作;步驟40B:第二定時計數(shù)器獲取第一頻率時鐘的頻率,根據(jù)第二定時計數(shù)器獲取的第一頻率時鐘的頻率及第一定時計數(shù)器的計數(shù),得到子定時的時間值;步驟50B:累加子定時,將子定時的累加值與系統(tǒng)定時進行比較,若子定時的累加值大于或者等于系統(tǒng)定時,則MCU系統(tǒng)處理定時事件,同時繼續(xù)重復執(zhí)行步驟20B、步驟30B及步驟40B;若子定時的累加值小于系統(tǒng)定時,則繼續(xù)重復執(zhí)行步驟20B、步驟30B及步驟40B。在本方法二中,所述第一定時計數(shù)器11每次的計數(shù)值相同,但是,考慮到所述第一頻率時鐘FLA的頻率可能發(fā)生的變化,其每次輸出的子定時將不同。為此,在本方法二中,通過所述第二定時計數(shù)器12獲取所述第一頻率時鐘FLA的頻率(其獲取方法與方法一中的相同),由此得到每次子定時的時間值(或者說時間間隔)。在本方法二中,相當于將一個系統(tǒng)定時分割成多個子定時來予以實現(xiàn),設系統(tǒng)定時TQ為10分鐘,假設按照第一頻率時鐘FLA的初始值進行計算,每個子定時為1分鐘,需要10個子定時。而在實際的定時過程中,第一個子定時為1分鐘,第二個到第五個子定時為1.1分鐘,第六個到第十個子定時為1.2分鐘,由于通過子定時的累加,發(fā)現(xiàn)累加到第九個子定時時,即已經大于系統(tǒng)定時TQ了,從而能夠觸發(fā)MCU系統(tǒng)10處理定時事件。此時的誤差僅為0.2分鐘。若沒有通過將一個系統(tǒng)定時分割成多個子定時來予以實現(xiàn),則按照第一頻率時鐘FLA的初始值進行計算,雖然沒有十個子定時的概念,但事實將完成十個子定時后才能觸發(fā)MCU系統(tǒng)10處理定時事件,因為此時第一定時計數(shù)器11一直認為第一頻率時鐘FLA的頻率值為初始值,也就不會發(fā)生調整。此時的誤差將為1.4分鐘。由此可見,通過本方法二能夠獲得較高的精度,同時,在定時系統(tǒng)中,主要工作(即產生功耗)的是功耗較小的第一定時計數(shù)器11,也就是說能夠獲得較低的功耗。在本方法二中,在系統(tǒng)定時TQ一定時,該系統(tǒng)定時需要的子定時越多,相對來說系統(tǒng)定時TQ的誤差越小。此外在本方法二中,同樣的,累加子定時后,將子定時的累加值存儲于定時寄存器13中,對此可參考方法一中的描述,在此不再贅述。上述描述僅是對本發(fā)明較佳實施例的描述,并非對本發(fā)明范圍的任何限定,本發(fā)明領域的普通技術人員根據(jù)上述揭示內容做的任何變更、修飾,均屬于權利要求書的保護范圍。
當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
台安县| 蓬溪县| 阿拉善盟| 繁昌县| 会东县| 溆浦县| 柳州市| 武鸣县| 宜宾县| 周宁县| 和林格尔县| 娄底市| 永城市| 巴楚县| 陈巴尔虎旗| 鹤岗市| 徐汇区| 扎兰屯市| 井研县| 棋牌| 白城市| 响水县| 温宿县| 曲周县| 滦南县| 溆浦县| 都兰县| 兰州市| 威海市| 同德县| 吉水县| 米脂县| 平陆县| 和平区| 三亚市| 红河县| 二连浩特市| 冷水江市| 武宣县| 枣强县| 阿尔山市|