arm系統復位電路的結構並不複雜,且參考電路的形式較多。但是,在嵌入式系統設計中,由於arm復位模組的複雜性,因此其外部的復位電路設計也是一種複雜而重要的設計工作,設計時也不能輕視。
1例項說明
在嵌入式應用系統的設計中,復位問題是arm設計中乙個基本而又重要的問題,復位電路的設計是相當重要的一步。復位的目的是為了在**時將設計強制定位在乙個可知狀態,合理選擇復位方式是電路設計的關鍵。在arm的應用系統中,會經常要求進入到復位狀態,因此要求系統的復位電路必須能夠準確、可靠地工作。同時,在arm設計中不論是採用同步復位還是非同步復位,復位訊號都必須盡量與時鐘訊號同步,否則設計可能被復何到乙個無效狀態。
本例項給出了arm的不同復位型別,以及基於arm處理器的嵌入式系統復位電路的設計方法,並且給出復位硬體電路及其測試方法。
2 arm復位原理
2.1 arm復位源型別
arm處理器的復位源型別如表10-1所示,包括上電復位、外部硬體復位、內部硬復位(包括鎖相環失鎖復位、軟體看門狗復位、檢錯停機復位和除錯埠硬復位)、jtag復位、外部軟體復位和內部軟體復位(包括除錯埠軟復位和jtag軟復位)。
所有的這些復位源都被引入到復位控制器,並且根據不同的復位源產生不同的復位動作。
arm處理器還內建有復位控制器和硬體復位配置控制器,其中的復位控制器功能是確定復位原因、同步復位模組(若有必要的話),並且復位相應片內的邏輯模組(包括arm嵌入式處理器模組、系統介面單元模組和通訊處理器模組等)。
2.2復位工作原理
為保證arm晶元在電源未達到所要求的電平時,不會產生不受控制的狀態,必須在系統中加入電源監控和復位電路,由該電路確保在系統加電過程中,在核心電壓和外圍埠電壓達到要求之前,arm晶元始終處於復位狀態,直到核心電壓和外圍介面電壓達到所要求的電平。系統復位過程如圖10-1所示。
同時,如果電源電壓一旦降到門限值以下,則強制晶元進入復位狀態,以確保系統穩定工作。對於復位電路的設計,一方面應確保復位低電平時間足夠長(一般需要20ms以上),以保證arm可靠復位;另一方面應保證穩定性良好,以防止arm誤復位。
一般應保證復位輸入端(rs)低電甲至少持續6個時鐘週期,即當時鐘為20mhz時,為保讓arm晶元在電源未達到所要求的電平時,不會產生不受控制的狀態,必須在系統中加入電源監控和復位電路,由該電路確保在系統加電過程中,在核心電壓和外圍埠電壓達到要求之前,arm晶元始終處於復位狀態,直到核心電壓和外圍介面電壓達到所要求的電平。
此外,arm系統中還可以用硬體監控復位(看門狗電路,如硬體監控晶元max706等)。這是由於arm系統的時鐘頻率較高,在執行時難以避免發生干擾和被干擾的現象,嚴重時系統會出現宕機或程式異常現象,可以採用「看門狗」(watch dog)電路來代替rc電路。這種電路除了具有上電復位功能外,還具有監視系統執行並在系統發生故障或宕機時再次進行復位的能力。
該電路的功能為:當看門狗使能時,系統如果沒有在規定時間間隔內對看門狗電路進行重新整理,則產生復位訊號,使系統重新從初始狀態開始執行,以提高系統抗干擾能力。看門狗電路在上電復位後,應處於禁止狀態,看門狗電路通過將系統控制暫存器o(watchdog)中的控制位wden置1來使能。看門狗電路使能後,通過對看門狗重新整理口做寫操作,來重新整理看門狗。
3硬體電路設計
3.1復位電路原理圖
系統復位模組提供給arm啟動訊號,是整個系統執行的開端。arm的復位訊號為reset,如它有效,系統復位將由內部產生。reset掛起程式,放arm進復位狀態。在電源開啟已經穩定時,reset必須保持低電平至少4個mclk週期。本系統利用容阻電路設計的復位電路,如圖10-2(a)所示,按鍵復位也可以設計成如圖10-2(b)所示的形式。
如果電源晶元帶有復位引腳,則可以輸出低電平復位訊號用於上電復位,可以不使用該復位訊號。
如圖10-2(a)所示,該復位電路的工作流程為:在系統上電時,通過電阻r1向電容c1充電,當c1兩端的電壓未達到高電平的門限電壓時,reset端輸出為低電平,系統處於復位狀態;當c1兩端的電壓達到高電平的門限電上壓時,reset端輸出為高電平,系統進入正常工作狀態。
當使用者按下按鈕s1時,c1兩端的電荷被洩放掉,reset端輸出為低電平,系統進入復位狀態,再重複以上的充電過程,系統進入正常工作狀態。
由一塊74hc32d晶元搭成的兩級非閘電路用於按鈕去抖動和波形整形,通過調整rl
和c1的引數,可調整復位狀態的時間。
3.2復位電路的除錯
上電時arm處於復位狀態,rs為低電平使晶元復位。為了使晶元初始化正確,應保證rs為低至少持續5個clkout週期,即當速度為25ns時約為125ns。但是,由於在上電後,系統的晶體振盪器往往需要幾百毫秒的穩定時間,所以,rs為低的時間主要由系統的穩定時間所確定,一般為 100~200ms。
電源部分工作正常之後,應該對arm及其周邊電路如復位電路進行除錯,當然也可以進行簡單的輸出,這裡用到了兩個led,同時這兩個led也是終端的兩個控制輸出。
對復位電路進行測試的過程是:斷開ide與核心板的連線,亦即斷開jtag除錯介面,注意,在斷開jtag介面連線電纜前先斷掉板上的電源。然後給核心硬體板加電,此時led會有閃爍,等程式執行後乙個led會閃爍,按下復位鍵時,系統處於上電初始化期間,如果不鬆開復位鍵,所有的i/o口都會保持高電平,那麼兩個led都會亮;鬆開復位鍵,程式重新開始執行。如果功能正常則復位電路除錯完畢。
4看門狗軟體復位
看門狗復位電路主要是利用arm正常工作時,定時復位計數器,使得計數器的值不超過某一值;當arm不能正常工作時,由於計數器不能被復位,因此其計數會超過某一值,從而產生復位脈衝,使得arm恢復正常工作狀態。
看門狗復位電路的可靠性主要取決於軟體設計,即將定時向復位電路發出脈衝的程式放在何處,在一般設計中,將此段程式放在定時器中斷服務子程式中。然而,有時這種設計仍然會引起程式工作不正常,原因主要是,當程式異常發生在定時器初始化及開中斷之後時,這種情況就有可能不能由watch dog復位電路校正回來。
因為定時器中斷一直在產生,即使程式工作不正常,watch dog也能被正常復位。為此可以使用定時器加預設的設計方法,即在初始化時壓入堆疊乙個位址,在此位址內執行的是一條關中斷和一條死迴圈語句。在所有不被程式**占用的位址盡可能地用子程式返回指令代替,這樣,當程式異常後,其進入陷阱的可能性將大大增加。而一旦進入陷阱,定時器就會停止工作並且關閉中斷,從而使watch dog復位電路產生乙個復位脈衝將arm復位。
看門狗應用程式如下所示。
5例項總結
在arm嵌入式應用系統的設計中,保證arm能夠準確、可靠地復位,是arm應用系統的重要環節。本章根據arm復位模組的結構與特性,介紹了基於arm處理器的嵌入式系統復位電路的設計方法,並且給出實用電路。
在進行arm處理器復位電路設計時需要注意如下問題。
·要正確理解上電復位、硬體復位、軟體復位和測試復位的功能及其之間的區別。當上電復位有效時,可以產生處理器內部硬復位和軟復位;當硬體復位時,可以產生處理器內部硬復位和軟復位;但是,軟體復位只能產生處理器內部的軟復位。
·在進行具有下電模式的低功耗嵌入式系統復位電路設計時,由於要求上電復位電路 的供電來自帶有電池的保持電源有效,因此在設計時應盡量選擇低功耗器件作為復位電路的主器件。
復位模組設計
arm系統復位電路的結構並不複雜,且參考電路的形式較多。但是,在嵌入式系統設計中,由於arm復位模組的複雜性,因此其外部的復位電路設計也是一種複雜而重要的設計工作,設計時也不能輕視。1例項說明 在嵌入式應用系統的設計中,復位問題是arm設計中乙個基本而又重要的問題,復位電路的設計是相當重要的一步。復...
復位電路設計 非同步復位 同步釋放
以下內容摘自正點原子的 邏輯設計開發指南 復位電路是數字邏輯設計中非常常用的電路,不管是 fpga 還是 asic 設計,都會涉及到復位,一般 fpga或者 asic 的復位需要我們自己設計復位方案。復位指的是將暫存器恢復到預設值。一般復位功能包括同步復位和非同步復位。復位一般由硬體開關觸發引起,也...
IC設計中同步復位和非同步復位
非同步復位 非同步復位,同步釋放 本文部分摘自 verilog程式設計藝術 同步復位和非同步復位是積體電路設計中兩種不同的訊號復位方式。長期以來,關於這兩者之間的優劣眾說紛紜,而兩者又都在各種電路中被大規模使用,無法明確的判斷出孰好孰壞。本文對同步復位和非同步復位的優缺點進行了分析,並對比了兩種復位...