專利名稱:嵌入式微處理器應用系統中時鐘丟失和毛刺檢測方法
技術領域:
本發明屬于計算機時鐘檢測領域,具體地說,涉及一種嵌入式微處理器應用系統中通用的時鐘品質的檢測方法。
目前,在嵌入式微處理器應用系統中,除需要系統時鐘以外,還有其它種類的時鐘(如串行同步通信時鐘、交換電路時鐘等等)。這些時鐘有時將產生毛刺或暫時的丟失(毛刺指在標準的時鐘波形上疊加的高頻雜波,時鐘的暫時丟失表現為時鐘信號呈現單一的高電平或低電平),這些毛刺或丟失有時對整個系統的影響不大,因此常采用單穩電路(如74HC123等)來檢測時鐘的丟失并告知微處理器。但也有相當的應用中,毛刺與丟失的情況一旦出現,就會產生嚴重的影響,如在目前廣泛使用的Motorola的MPC860 CPU內部的多通道通信控制器(QMC)的使用中,如果供給它的時鐘產生毛刺或暫時丟失,即使時鐘很快恢復,多通道通信控制器也無法恢復,會一直進行錯誤包的收發,導致多通道通信控制器功能的喪失。該狀況的出現,對于整個系統來說是個非常嚴重的問題。這時用上述現有技術電路已不能達到要求。
在一些專利中(如專利號為JP02226432A和EP00676695B1等),針對時鐘故障提出的具體電路,要使用到嵌入式微處理器應用系統中,存在通用性和精度的可控性不高以及不便于實施等問題,而對于時鐘較高頻率的毛刺故障檢測方法尚無相關文獻的報道。
因此,提供一種嵌入式微處理器應用系統具備通用性和精度的可控性的時鐘檢測方法將具有十分重要的現實意義。
本發明的目的在于針對目前嵌入式微處理器應用系統的特點,提出一種以系統時鐘為基準,并結合可編程邏輯器件對時鐘的丟失或時鐘的毛刺進行檢測的方法。
本發明的構思是這樣的嵌入式微處理器應用系統中,以系統時鐘作為基準,當待檢時鐘(如串型通信時鐘,交換網絡的同步與比特時鐘)正常時,系統時鐘與待檢時鐘的頻率比應為一定值n,如果允許兩者頻率比有誤差,則頻率比應在n1~n2之間(n1<n<n2),當待檢時鐘時鐘丟失時,此時待檢時鐘呈現一直為高或為低的狀態,相當于頻率為零的時鐘,兩者頻率比大于誤差上限n2;當待檢時鐘出現毛刺時,此時待檢時鐘相當于變為一個高頻時鐘,則兩者頻率比小于誤差下限n1。
由此,只要對待檢時鐘與系統時鐘的頻率比進行檢測和比較,即可實現對待檢時鐘的丟失或毛刺進行檢測。
實現本發明目的的技術方案依次包括如下步驟①預先設定系統時鐘與待檢時鐘的頻率比(n=系統時鐘頻率/待檢時鐘頻率),n1和n2(n1<n<n2),n1=n-i,n2=n+j,根據精度要求可設i=1、2或3,j=1、2或3。n1和n2的值分別設定時鐘毛刺比較器和時鐘丟失比較器中;②由脈沖信號控制一個系統時鐘計數器的清零,清零后,計數器從頭開始對系統時鐘進行計數;③通過一個觸發器捕獲待檢時鐘的上升沿(即信號由低電平轉為高電平的時刻);④通過一個脈沖發生器對觸發器捕獲的狀態發出相應的脈沖信號;
⑤通過兩個比較器,時鐘丟失比較器和時鐘毛刺比較器,將計數器的計數值分別與設定的n1、n2進行比較;⑥將比較結果告知CPU。
整個過程可在可編程邏輯器件內部實現。所說的可編程邏輯器件可采用市售產品,如Altera公司的可編程邏輯器件。下面將結合附圖對本發明的詳細內容進行闡述。
圖1為待檢時鐘正常時的波形仿真結果。
圖2為待檢時鐘丟失時的波形仿真結果。
圖3為待檢時鐘出現毛刺時的波形仿真結果。
圖4為邏輯流程圖。
圖5為可編程邏輯實現電路圖。
圖1~3中各波形的意義為波形1為系統時鐘,即為嵌入式微處理器應用系統中的系統工作時鐘;波形2為待檢時鐘,即為要檢測的時鐘,(如串型通信同步時鐘,交換網絡的同步與比特時鐘),波形3為脈沖信號,是由脈沖發生器根據待檢時鐘產生的脈沖,用于控制計數器清零等;波形4為時鐘丟失表示出現時鐘丟失時產生高電平;波形5為時鐘毛刺表示出現毛刺時信號由低電平變為高電平;波形6為清零控制,指CPU用來復位該時鐘檢測電路;波形7為至CPU是指當時鐘丟失或毛刺產生時,該檢測電路將產生一高電平到CPU的中斷口或I/O口,當CPU檢測到該信號后,應將清零控制端置零以清除該信號,然后將清零控制端置高,使得檢測電路繼續檢測。
由圖1可見,當待檢時鐘正常時,脈沖信號在一個待檢時鐘的周期內產生兩個脈沖;由圖2可見,當待檢時鐘短暫丟失時,待檢時鐘表現為高電平,脈沖信號的間隔超過一個正常待檢時鐘周期;由圖3可見,當待檢時鐘出現毛刺時,待檢時鐘表現為一較窄寬度的高頻波形,此時脈沖信號的間隔低于一個正常待檢時鐘周期。
由圖4可見,該方法包括以下步驟①啟動檢測電路;②通過計數器8開始對系統時鐘進行計數;③通過觸發器9捕獲待檢時鐘的上升沿。如上升沿到來,觸發器翻轉,其狀態輸入脈沖發生器10;④脈沖發生器發出相應的脈沖信號,該脈沖信號一方面指令系統時鐘計數器8清零,重新開始計數;另一方面將清零前計數器8的計數值與時鐘毛刺比較器11中的設定值誤差下限n1進行比較,時鐘毛刺比較器11的工作原理是,脈沖發生器的脈沖信號作為其使能信號,當存在脈沖信號時,如果計數值小于n1,輸出高電平,反之為低電平。
⑤如果待檢時鐘丟失,則上升沿不會到來,此時由時鐘丟失比較器12隨時將計數值和設定值誤差上限n2進行比較。時鐘丟失比較器12的工作原理是,當計數值大于n2時,輸出為高電平,反之為低電平;⑥如果時鐘丟失比較器12和時鐘毛刺比較器11的比較結果為真,即信號由低電平變為高電平,則報送CPU13說明產生了時鐘丟失或時鐘毛刺現象;⑥計數器8在脈沖信號控制下不斷進行,因此整個時鐘檢測不斷進行。
對該方案有三點說明(1)采用上升沿作為計數基準,是考慮到毛刺本身的特點,一般毛刺較窄,即使下降沿先出現,隨后便會出現上升沿,因此以上升沿作為計數基準是可行的,如要求以下降沿為計數基準,只需加一反相器即可,也可將兩種電路接合起來,同時以毛刺的上升和下降沿為計數基準;(2)對于寬度小于系統時鐘的毛刺,仍然可以捕捉到,這在下面的詳細描述中給予說明;(3)實際使用該方法時,判斷丟失時鐘和毛刺出現的計數值可根據要控制的精度靈活設定,即合理設定誤差下限n1和誤差上限n2的大小,類似于一個帶通濾波器,在n1<計數值<n2時為正常,n1和n2的范圍越大,檢測的精度越低,反之則越高。一般,n可根據系統時鐘和待檢測時鐘的頻率比來確定,n=系統時鐘頻率/待檢時鐘頻率,如用64M的系統時鐘來檢測4M的時鐘,則n=64/4=16,可選定n1=15,n2=17,如果容許4MHz時鐘的相位等有較大誤差,可適當放寬取值范圍,如n1=14,n2=18。
圖5為可編程邏輯實現電路圖。
根據圖4所示的方案框圖的具體可編程邏輯的實現電路圖如附圖5所示,該圖可用Altera公司的MaxPlusⅡ軟件實現。在可編程邏輯設計軟件環境中將可編程邏輯實現電路畫好,編譯并燒入可編程邏輯器件,將系統時鐘和待檢時鐘輸入器件管腳,而將輸出管腳和CPU相連即可實現該方法。圖中以系統時鐘64M,待檢測時鐘4M為例,則兩者關系為16倍,在圖中電路以大于18和小于14作為判決條件,判斷時鐘是否丟失或出現毛刺。
由圖5可見,該實現電路包括一個具有同步清零端的計數器25、時鐘丟失比較器14、比較器26和帶使能端的D觸發器15構成的時鐘毛刺比較器16、T觸發器17和D觸發器18構成的觸發器19、D觸發器20和異或門21構成的脈沖發生器22、三輸入或門23和與門24構成的狀態保持電路。
計數器25的同步清零控制信號來自脈沖發生器22;時鐘丟失比較器14的信號來自計數器25,它判斷當計數值大于n2大于18時,輸出為高電平,反之為低電平;時鐘毛刺比較器16的使能端信號來自脈沖發生器22;組成觸發器19的T觸發器17的T端接VCC,因此只要來的脈沖寬度大于可編程邏輯器件的觸發器建立時間(一般較小,如8ns),就可使T觸發器5翻轉,從而檢測出來,該方法可達到較高的精度正在于此。D觸發器18的作用在于用系統時鐘同步一下,以使后面的脈沖發生器22產生的脈沖寬度保持恒定;三輸入或門23和與門24用于保持時鐘丟失或時鐘毛刺產生的高電平信號,是整個電路和CPU的接口部分。圖5中此處電路產生的作用是,一旦出現時鐘丟失或毛刺,就將產生的高電平保持住并輸到CPU,直到CPU響應并發出清零信號為止。這部分可根據需要進行修改以符合各利CPU的需要。
可編程邏輯實現電路中的輸出信號可直接連到CPU的中斷腳,也可將該輸出信號連接到CPU的一般I/O腳,如圖6所示。圖6中還有另外一I/O腳接時鐘檢測電路的清零控制腳,用于CPU控制時鐘檢測電路的清零和啟動。
上述電路在工作時,脈沖信號在一個待檢時鐘的周期內產生兩個脈沖,計數器的計數值在14到18之間時,待檢時鐘是正常的;大于或小于14或18時,即為時鐘丟失或產生毛刺。在實際應用中,可根據要求精度進行調整這兩個值,從而可以非常靈活地使用該方法。
上述方法和實現電路已在幾塊設計單板中使用,如在目前廣泛使用的Motorola的MPC860 CPU內部的多通道通信控制器(QMC)中的使用,應用該方法后,一旦時鐘出現毛刺或丟失,該電路即可通知CPU進行處理,不至于多通道通信控制器在錯誤狀態下不停地運行,效果良好。與常規的使用專門芯片(如單穩電路)來檢測時鐘相比,該方法和電路不僅省略了芯片,而且實現了芯片所不能實現的功能和性能。所以,在廣泛的嵌入式微處理器系統的應用中,如果存在時鐘檢測問題,只要使用該通用性強、高精度的方法和電路,即可非常簡捷、有效的解決問題。
權利要求
1.一種嵌入式微處理器應用系統中時鐘丟失和毛刺檢測方法,其特征在于,該方法依次包括如下步驟①啟動檢測電路;②通過計數器(8)開始對系統時鐘進行計數;③通過觸發器捕(9)獲待檢時鐘的上升沿;如上升沿到來,觸發器翻轉,其狀態輸入脈沖發生器(10);④脈沖發生器(10)發出相應的脈沖信號,該脈沖信號一方面指令系統時鐘計數器(8)清零,重新開始計數;另一方面將清零前計數器的計數值與時鐘毛刺比較器的設定值誤差下限n1進行比較;⑤如果待檢時鐘丟失,則上升沿不會到來,時鐘丟失比較器(12)隨時將計數值和設定值誤差上限n2進行比較;⑥如果時鐘丟失比較器(12)和時鐘毛刺比較器(11)的比較結果為真,即報送CPU(13);⑦計數器(8)在脈沖信號控制下連續進行計數,使整個時鐘檢測連續進行。
2.如權利要求1所述的方法,其特征在于,n1=n-i,n2=n+j,i為1、2或3,j為1、2或3,n為系統時鐘頻率與待檢時鐘頻率之比。
3.如權利要求1所述的方法,其特征在于,待檢時鐘通過一反相器后以下降沿為計數基準。
4.如權利要求1所述的方法,其特征在于,同時以待檢時鐘的上升和下降沿為計數基準同時捕獲上升沿和下降沿毛刺。
全文摘要
本發明提供了一種嵌入式微處理器應用系統中時鐘丟失和毛刺檢測方法。本發明通過待檢時鐘與系統時鐘的頻率比進行檢測和比較,實現對待檢時鐘的丟失或毛刺進行檢測。整個過程可在可編程邏輯器件內部實現。上述方法已在目前廣泛使用的Motorola的MPC860CPU內部的多通道通信控制器(QMC)中的使用,效果良好,不僅省略了芯片,而且實現了芯片所不能實現的功能和性能。
文檔編號G06F11/00GK1317741SQ0011686
公開日2001年10月17日 申請日期2000年6月29日 優先權日2000年6月29日
發明者謝建良, 許俊文, 文峰 申請人:深圳市中興通訊股份有限公司