一種基于apb總線的多功能模式定時器電路的制作方法
【技術領域】
[0001]本發(fā)明屬于電路設計領域,用于SoC芯片設計,涉及一種基于APB總線的多功能模式定時器電路。
【背景技術】
[0002]隨著設計工藝的發(fā)展,1C設計水平的不斷提高,使得片上SoC的設計成為目前一種主流技術,并成為未來1C設計發(fā)展的必然趨勢。SoC的設計從整個系統(tǒng)性能要求出發(fā),把微處理器、總線結構、存儲器模塊、模擬/數(shù)字IP等集成到單個芯片上,并且各個功能模塊采用標準的總線協(xié)議進行連接。一般SoC芯片內(nèi)部都配有定時器模塊,因此本發(fā)明設計了一種基于APB總線的多功能定時器電路,用于采用APB總線的SoC設計中,具有易于集成和可重用性。目前SoC芯片中集成的定時模塊一方面功能模式單一,另一方面若產(chǎn)生的PWM信輸出頻率發(fā)生改變時,不能夠產(chǎn)生完整的波形,因此目前的定時器已不能滿足各種控制系統(tǒng)對定時器的需求。
【發(fā)明內(nèi)容】
[0003]本發(fā)明解決的技術問題是:克服現(xiàn)有技術的不足,提供的一種基于APB總線多功能模式定時器電路,用一個定時器實現(xiàn)了 4種功能模式;定時器內(nèi)部設計了兩個獨立的匹配單元,每個比較單元具有獨立的管腳進行波形輸出,因此可以同時輸出兩路波形信號;定時器的控制邏輯相關寄存器采用了緩沖模式,增加了 3個緩沖器,保證了輸出的PWM信號連續(xù)性和完整波性;為了便于系統(tǒng)對定時器的控制,定時器在條件滿足時,能夠產(chǎn)生4類中斷請求信號。
[0004]本發(fā)明的技術方案是:一種基于APB總線的多功能模式定時器電路,包括APB接口模塊、可配置寄存器組、預分頻器、計數(shù)器、捕獲模塊及控制單元;
[0005]APB接口:APB接口與定時器外部的APB總線連接,應答APB總線的讀寫訪問,轉(zhuǎn)換為對定時器內(nèi)部寄存器的讀寫操作;在六?8總線寫周器,APB接口輸出寫操作信號到可配置寄存器組;在六?8總線讀周期,APB接口接收可配置寄存器組輸出、預分頻器的輸出及計數(shù)器的輸出,選擇對應的數(shù)據(jù)送到APB總線上;
[0006]可配置寄存器組:接收APB接口輸出的寫信號、控制單元輸出的捕獲賦值信號、計數(shù)器輸出信號及預分頻器輸出信號;包括控制寄存器、預置值寄存器、比較匹配寄存器A、比較匹配寄存器B、計數(shù)值Top寄存器、捕獲值寄存器6個可配置寄存器;其中控制寄存器用于設置定時器的工作模式、啟動和關閉、輸入信號捕獲時邊沿的選擇;預置值寄存器提供預分頻器起始分頻的預置值;比較匹配寄存器A、比較匹配寄存器B的值分別送入控制單元,在控制單元內(nèi)與計數(shù)器的當前計數(shù)值分別進行比較,控制單元根據(jù)比較結果分別產(chǎn)生定時器輸出信號A、定時器輸出信號B及中斷輸出信號;計數(shù)值Top寄存器送入控制單元,用于設置計數(shù)器計數(shù)的最大值;捕獲值寄存器用于在捕獲事件發(fā)生時,存放計數(shù)器的計數(shù)值;
[0007]預分頻器:接收可配置寄存器組輸出的定時器啟動信號,加載可配置寄存器組輸出的預置值寄存器的值,每個時鐘周期作減1計數(shù),當計數(shù)值減到0時,產(chǎn)生一個時鐘周期的脈沖信號Tick,重新加載預置值寄存器的值,重新開始;
[0008]計數(shù)器:接收控制單元輸出的方向控制及清零信號,以及接收預分頻器的脈沖信號Tick ;在Tick有效時,若方向控制信號為1時,作減1計數(shù),若方向控制信號為0時,作加1計數(shù);當計數(shù)器收到清零信號時,計數(shù)值置為0,重新開始計數(shù);
[0009]捕獲模塊:接收控制單元輸出的捕獲使能信號,并監(jiān)測外部輸入信號,當檢測到外部輸入信號有效的上升沿或下降沿,產(chǎn)生捕獲有效信號,送入控制單元;
[0010]控制單元:控制單元接收可配置寄存器組輸出信號、計數(shù)器輸出信號、捕獲模塊捕獲有效信號;所述的控制單元為時序控制邏輯電路,控制整個定時器的工作;設置定時器的工作模式,產(chǎn)生計數(shù)器的方向控制及清零信號;在捕獲模式時,產(chǎn)生捕獲寄存器賦值信號、捕獲使能信號,在其他模式下,把計數(shù)器的計數(shù)值與可配置寄存器組中相關寄存器的值進行比較,產(chǎn)生定時器輸出信號A、定時器輸出信號B及中斷輸出信號;
[0011]定時器通過配置分為工作在普通模式、捕獲模式、快速PWM模式及相位與頻率修正的PWM模式四種模式;
[0012]在普通模式下,定時器輸出1路頻率可調(diào)的方波信號;在該模式下,定時器工作流程如下:通過APB接口對可配置寄存器組內(nèi)寄存器進行配置,設置控制寄存器的值將定時器置于普通模式,設置預置值寄存器的值、計數(shù)值top寄存器的值,啟動定時器;定時器啟動后,預分頻器開始工作,加載預置值寄存器的值,每個時鐘周期減1計數(shù),當計數(shù)值減到0時,產(chǎn)生一個時鐘周期的Tick脈沖信號,并重新加載預置值寄存器的值,重新開始減1計數(shù);計數(shù)器從0開始加1計數(shù),每檢測到一次Tick信號有效,計數(shù)器的計數(shù)值加1 ;控制單元把計數(shù)器的當前計數(shù)值與計數(shù)值top寄存器的值進行比較,在二者的值相等時,將定時器輸出信號A進行反向后輸出,產(chǎn)生中斷信號和計數(shù)器清零信號;計數(shù)器檢測到控制單元輸出的清零信號有效,將計數(shù)器的計數(shù)值設置為0,重新開始計數(shù);
[0013]在捕獲模式下,定時器不輸出波形信號,而是對定時器的輸入信號進行捕獲;在該模式下,定時器工作流程如下:通過APB接口對可配置寄存器組內(nèi)寄存器進行配置,設置控制寄存器的值將定時器置于捕獲模式,設置預置值寄存器的值,啟動定時器;定時器啟動后,預分頻器開始工作,加載預置值寄存器的值,每個時鐘周期作減1計數(shù),當計數(shù)值減到0時,產(chǎn)生一個時鐘周期的Tick脈沖信號,并重新加載預置值寄存器的值,重新開始減1計數(shù);計數(shù)器從0開始加1計數(shù),每檢測到一次Tick信號有效,計數(shù)器的計數(shù)值加1,計數(shù)器的計數(shù)值達到最大值后,從0開始重新計數(shù);控制單元將輸出的捕獲使能信號有效,捕獲模塊開始工作;捕獲模塊先對定時器輸入信號進行抑噪處理,所有的小于4個時鐘周期的電平變化都被作為毛刺濾掉了,當檢測到輸入信號的有效邊沿時,產(chǎn)生捕獲有效信號;控制單元檢測到捕獲有效信號有效時,產(chǎn)生捕獲賦值信號和中斷輸出信號;可配置寄存器組檢測捕獲賦值信號有效時,將計數(shù)器的當前計數(shù)值寫入到捕獲值寄存器;
[0014]在快速PWM模式,定時器輸出2路頻率和占空比均為可調(diào)的PWM波形;在該模式下,定時器工作流程如下:通過APB接口對可配置寄存器組內(nèi)寄存器進行配置,設置控制寄存器的值將定時器置于快速PWM模式,設置預置值寄存器的值、計數(shù)值top寄存器的值、比較匹配寄存器A的值、比較匹配寄存器B的值,啟動定時器;定時器啟動后,預分頻器開始工作,加載預置值寄存器的值,每個時鐘周期減1計數(shù),當計數(shù)值減到0時,產(chǎn)生一個時鐘周期的Tick脈沖信號,并重新加載預置值寄存器的值,重新開始減1計數(shù);計數(shù)器從0開始加1計數(shù),每檢測到一次Tick信號有效,計數(shù)器的計數(shù)值加1 ;控制單元把計數(shù)值top寄存器的值送入內(nèi)部的緩沖器,緩沖器的輸出值與計數(shù)器的當前計數(shù)值進行比較,在二者的值相等時,控制單元將輸出信號A、B置為高電平、有效中斷輸出信號及計數(shù)器清零信號;控制單元將匹配寄存器A、B的值分別送入內(nèi)部緩沖器,緩沖器的輸出值與計數(shù)器的當前計數(shù)值分別進行比較,若兩個值相等,分別將輸出信號A、B置為低電平,并產(chǎn)生中斷信號;計數(shù)器檢測到控制單元輸出的清零信號有效,將計數(shù)值設置為0,重新開始計數(shù);
[0015]在相位與頻率修正PWM模式下,定時器輸出2路相位與頻率均可調(diào)的PWM信號;在該模式下,定時器工作流程如下:通過APB接口對可配置寄存器組內(nèi)寄存器進行配置,設置控制寄存器的值將定時器置于相位與頻率修正PWM模式,設置預置值寄存器的值、計數(shù)值top寄存器的值、比較匹配寄存器A的值、比較匹配寄存器B的值,啟動定時器;定時器啟動后,預分頻器開始工作,加載預置值寄存器的值,每個時鐘周期減1計數(shù),當計數(shù)值減到0時,產(chǎn)生一個時鐘周期的Tick脈沖信號,并重新加載預置值寄存器的值,重新開始減1計數(shù);在該模式下,計數(shù)器采用雙斜坡的方式工作,每檢測到一次Tick信號有效,控制單元輸出的方向控制信號為0時,計數(shù)器加1計數(shù),為1時,計數(shù)器減1計數(shù);控制單元先將方向控制信號置為0,把計數(shù)值top寄存器的值送入內(nèi)部的緩沖器,緩沖器的輸出值與計數(shù)器的當前計數(shù)值進行比較,在二者的值相等時,控制單元將方向控制信號置為1 ;在方向控制信號為1期間,沖計數(shù)器的當前計數(shù)值與0,進行比較,在二者值相等時,控制單元將計數(shù)方向控制