一種軟時鐘的實現(xiàn)方法及應用裝置的制造方法
【技術領域】
[0001]本申請涉及通信領域,具體涉及一種軟時鐘的實現(xiàn)方法及應用裝置。
【背景技術】
[0002]系統(tǒng)在進行信息交互時,生成軟時鐘,MCU會對軟時鐘進行監(jiān)控,然后進行其他的邏輯處理。
[0003]現(xiàn)有實現(xiàn)方法是在配置軟時鐘之后,設置一個硬件定時器,中斷次數(shù)的記數(shù)值。在硬件定時器中斷處理中,減少該計數(shù)器的值,當減為零時,表示該定時器定時時間到。若系統(tǒng)需要同時開啟多個軟時鐘,系統(tǒng)生成多個計數(shù)器,定時器中斷函數(shù)需要針對多個計數(shù)器進行處理,定時器中斷函數(shù)處理的內(nèi)容也就增多了,這就降低了系統(tǒng)的執(zhí)行效率。但是當系統(tǒng)需要多個硬件定時事件時,系統(tǒng)內(nèi)將設有多個硬件定時器,這時需要啟動多個硬件定時器,但是硬件定時器的數(shù)量是有限的,當在同一時段內(nèi)需要的定時事件大于此上限時,將不能達到使用要求,從而會引起諸多不便,難以滿足不同系統(tǒng)的需要。同時啟動多個硬件定時器,增大了配置代碼的復雜度,同時也增加了處理器的功耗。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本申請?zhí)峁┮环N軟時鐘的實現(xiàn)方法及應用裝置。
[0005]本申請?zhí)峁┮环N軟時鐘的實現(xiàn)方法,包括以下步驟:
[0006]步驟1、裝置供電后,通過硬件定時器和時鐘頻率維持一個系統(tǒng)時鐘;
[0007]步驟2、所述M⑶接收軟時鐘指令,M⑶啟動定時器邏輯;
[0008]步驟3、所述M⑶在執(zhí)行完定時器邏輯之后啟動中斷邏輯;
[0009]步驟4、所述中斷邏輯完成后,MCU進行軟時鐘的超時判斷,MCU根據(jù)判斷結(jié)果發(fā)送指令。
[0010]進一步,所述硬件定時器根據(jù)時鐘頻率維持一個系統(tǒng)時鐘,所述系統(tǒng)時鐘在上電后從零開始運行,所述硬件定時器處理時更新系統(tǒng)時鐘的值。
[0011 ]進一步,所述MCU的定時器邏輯記錄所述軟時鐘的當前系統(tǒng)時間與定時時長。
[0012]進一步,所述MCU的中斷邏輯循環(huán)查詢定時時長與當前系統(tǒng)時間計算出的超時時亥IJ,若當前系統(tǒng)時間大于等于軟時鐘的超時時刻,則表示軟時鐘時間到,若當前系統(tǒng)時間小于軟時鐘的超時時刻,則繼續(xù)循環(huán)查詢。
[0013]本申請還提供一種軟時鐘的應用裝置,包括:
[0014]供電單元,用于給軟時鐘的應用裝置供電;
[0015]振蕩電路,供電后產(chǎn)生時鐘頻率,并將產(chǎn)生的時鐘頻率傳送給MCU;
[0016]顯示單元,用于顯示系統(tǒng)時鐘的值;
[0017]MCU,在接收到軟時鐘指令時,啟動定時器邏輯;在定時器邏輯完成之后啟動中斷邏輯;在中斷邏輯完成后,進行軟時鐘的超時判斷,并根據(jù)判斷結(jié)果發(fā)送指令。
[0018]進一步,所述M⑶上設置有硬件定時器、頻率采集單元,所述硬件定時器用于更新時鐘計數(shù)次數(shù),所述頻率采集單元用于時鐘頻率的采集,MCU根據(jù)硬件定時器和時鐘頻率維持一個系統(tǒng)時鐘。
[0019]進一步,所述供電單元設置有開關,控制電路的連通。
[0020]進一步,所述振蕩電路上設置有晶體振蕩器、電容。
[0021]進一步,所述晶體振蕩器為有源振蕩器。
[0022]上述本申請?zhí)岢龅囊环N軟時鐘的實現(xiàn)方法及應用裝置,獲得了以下技術效果:
[0023]本申請?zhí)岢龅囊环N軟時鐘的實現(xiàn)方法及應用裝置,減少了系統(tǒng)在硬件定時器中的耗時,通過硬件定時器和時鐘頻率維持一個系統(tǒng)時鐘,僅在定時器中斷時,更新系統(tǒng)時鐘即可。當系統(tǒng)需要設定多個軟時鐘時,僅根據(jù)當前的系統(tǒng)時間,計算出超時時間值,系統(tǒng)循環(huán)查詢軟時鐘是否超時,不會因為多個時鐘計數(shù)器而影響硬件定時器的運行,可以滿足不同系統(tǒng)的需要,提高了系統(tǒng)的執(zhí)行效率,提升了用戶體驗。
【附圖說明】
[0024]為了更清楚地說明本申請實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請中記載的一些實施例,對于本領域普通技術人員來講,還可以根據(jù)這些附圖獲得其他的附圖。
[0025]圖1是一種軟時鐘的實現(xiàn)方法圖。
[0026]圖2是系統(tǒng)有兩個軟時鐘時的系統(tǒng)流程圖。
[0027]圖3是一種軟時鐘的應用裝置的結(jié)構(gòu)示意圖。
[0028]圖4是振湯電路的電路圖。
【具體實施方式】
[0029]下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述。
[0030]本申請實施例提供了一種軟時鐘的實現(xiàn)方法,如圖1所示,包括以下步驟:
[0031 ]步驟1、裝置供電后,通過硬件定時器和時鐘頻率維持一個系統(tǒng)時鐘;
[0032]具體地,系統(tǒng)時鐘是依據(jù)時鐘頻率,在硬件定時器的基礎上實現(xiàn)的。
[0033]更具體地,所述系統(tǒng)時鐘在上電后從零開始運行,設定硬件定時器的次數(shù),所述硬件定時器溢出中斷時更新系統(tǒng)時鐘的值。例如系統(tǒng)時鐘頻率為48MHz,配置硬件定時器240000次時產(chǎn)生溢出中斷,則硬件定時器的中斷周期為240000*( 1/48000000) = 5ms,即每隔5ms產(chǎn)生一次中斷,設定一個全局變量,每進入一次中斷函數(shù),則該變量增一,每增大200,表示系統(tǒng)時鐘增加了 Is。每次中斷函數(shù)處理時,更新系統(tǒng)時鐘的值,然后硬件定時器恢復為初始值,并重復進行計數(shù)動作。
[0034]步驟2、所述M⑶接收軟時鐘指令,M⑶啟動定時器邏輯;
[0035]具體地,所述MCU的定時器邏輯記錄所述軟時鐘的當前系統(tǒng)時間與定時時長,并將超時時刻記錄下來。當啟動多個軟時鐘時,分別根據(jù)各個軟時鐘的當前系統(tǒng)時間與定時時長,計算出各個軟時鐘的超時時刻,并記錄下來。
[0036]步驟3、所述M⑶在執(zhí)行完定時器邏輯之后啟動中斷邏輯;
[0037]具體地,M⑶執(zhí)行完定時器邏輯之后啟動中斷邏輯,所述MCU的中斷邏輯循環(huán)查詢根據(jù)定時時長與所述軟時鐘的當前系統(tǒng)時間計算出的超時時刻,若當前的系統(tǒng)時間大于等于所述軟時鐘的超時時刻,則表示軟時鐘時間到,關閉軟時鐘,并執(zhí)行相應的應用邏輯;若當前系統(tǒng)時間小于所述軟時鐘的超時時刻,則系統(tǒng)繼續(xù)循環(huán)查詢。如果要獲取剩余時間,用設定的超時時間減去當前系統(tǒng)時間即為剩余時間。僅需將所述軟時鐘的超時時刻與當前的系統(tǒng)時間進行對比,不需要同時開啟多個計數(shù)器,只需要維持一個系統(tǒng)時鐘,定時器中斷函數(shù)處理的內(nèi)容減少,提高了系統(tǒng)的執(zhí)行效率,提升了用戶的使用體驗。
[0038]步驟4、所述中斷邏輯完成后,MCU進行軟時鐘的超時判斷,MCU根據(jù)判斷結(jié)果發(fā)送指令。
[0039]具體地,所述中斷邏輯完成后,MCU進行軟時鐘的超時判斷,若軟時鐘的超時時刻大于等于當前系統(tǒng)時間,則關閉軟時鐘,如在USB設備中,顯示交易超時,交易失敗;若系統(tǒng)時間的軟時鐘未超時,則系統(tǒng)繼續(xù)循環(huán)查詢軟時鐘的超時時刻,若在指令完成時,系統(tǒng)查詢軟時鐘的超時時刻未超時,則完成指令,進行下一步的邏輯操作。
[0040]如圖2所示,為系統(tǒng)有兩個軟時鐘時的系統(tǒng)流程圖。
[0041 ]如圖2所示,上電后,系統(tǒng)時鐘從零開始運行,根據(jù)硬件定時器和時鐘頻率維持一個系統(tǒng)時鐘。
[0042]當前系統(tǒng)時鐘Sg_CurTime(即當前的系統(tǒng)時間SgjurTimehMCU接收一個軟時鐘指令,啟動軟時鐘TMRl,M⑶啟動定時器邏輯,定時時長為Tl,則可計算出TMRl的超時時刻為TMRlEndTime = g_CurTime+Tl。同樣的,MCU接收另一個軟時鐘指令,設置另一個軟時鐘,啟動軟時鐘TMR2,定時時長為T2,則可計算出TMR2的超時時刻為TMR2EndTime = g_CurTime+T2o
[0043]M⑶在執(zhí)行完定時器邏輯之后啟動軟時鐘TMRl和TMR2的