專利名稱:區(qū)別系統(tǒng)上電復位和帶電復位的方法
技術(shù)領(lǐng)域:
本發(fā)明屬于電路系統(tǒng)復位技術(shù)領(lǐng)域,尤其涉及一種區(qū)別系統(tǒng)上電復位和帶電復位的方法。
背景技術(shù):
某些設(shè)備需要在系統(tǒng)重新啟動后區(qū)別系統(tǒng)復位觸發(fā)因素(上電復位還是帶電復位),現(xiàn)有的常用方法是使用CPU外圍SRAM來判斷,系統(tǒng)啟動以后往SRAM某個存儲空間寫入特定的數(shù)據(jù)(下面以0x55為例),系統(tǒng)復位啟動以后再來讀相同地址的數(shù)據(jù),如果仍是0x55,則認為系統(tǒng)是帶電復位,如果為其他的任何值,則判斷為上電復位。此方法存在兩個問題1、CPU外圍經(jīng)常是沒有SRAM的,此種情況下如果專門從復位判斷需求考慮增加一個SRAM從成本方面考慮是很不值得的;2、SRAM為隨機存儲器,上電以后,各存儲空間數(shù)據(jù)不確定,存在上電后目標空間與預置數(shù)(上文提到的0x55)相同的可能,因此,判斷是不可靠的,有誤判的可能。
因此,目前存在無法可靠判斷復位類型的情況。
發(fā)明內(nèi)容
為了克服現(xiàn)有無法可靠判斷電路系統(tǒng)復位類型的不足,提供一種利用可編程器件寄存器區(qū)別系統(tǒng)上電復位和帶電復位的方法。
本文提供了一種區(qū)別系統(tǒng)上電復位和帶電復位的方法,包括使能可編程邏輯器件的寄存器上電復位可預置功能,那么上電復位以后,設(shè)對應寄存器的值被預置為A;對器件編程,設(shè)置寄存器復位(指通過IO引腳或者寫寄存器復位)值為B(B不等于A),系統(tǒng)(指CPU或者微控制器)啟動以后,讀取對應寄存器的值,如果為A,則判斷為上電復位,否則判斷為帶電復位。
系統(tǒng)在復位可編程邏輯器件之前讀取對應寄存器的值。
可編程邏輯器件的復位受系統(tǒng)直接或者間接控制。
本發(fā)明的有益效果是對于稍復雜的電路系統(tǒng),CPU外圍一般都會有CPLD或者FPGA作Glue Logic,而且存儲器接口一般也是軟件開發(fā)方便接口,采用本發(fā)明在不增加任何系統(tǒng)硬件成本的情況下(只占用很少的邏輯資源),無需升級硬件即能可靠、簡單的區(qū)別上電復位和帶電復位,可廣泛應用于有復位判斷需求的各類電子產(chǎn)品。
圖1為D端為1(或0)的觸發(fā)器;
圖2為輸入直接驅(qū)動輸出示意圖;圖3為寄存器上電復位為0,與觸發(fā)器D端無關(guān)。
具體實施例方式
本發(fā)明利用可編程器件寄存器上電狀態(tài)可預知/設(shè)置的特點區(qū)別上電復位和帶電復位。目前很多的可編程器件提供上電復位(PoR)寄存器可設(shè)置的功能,因此判斷上電復位和帶電復位只需作如下處理1、邏輯設(shè)計時使能可編程器件的寄存器上電復位可預值功能;2、邏輯設(shè)計中,使得可編程器件Reset信號有效以后對應的寄存器復位成與上電復位不同的某個值。
CPU啟動后,未復位可編程器件前,根據(jù)該寄存器的值即可判斷是上電復位還是帶電復位。
下面詳述本發(fā)明的一個較佳實施例。
某網(wǎng)絡(luò)設(shè)備要求區(qū)別系統(tǒng)是上電復位還是帶電復位。如果是上電復位,則復位以后自檢CPU小系統(tǒng)的DDR-SDRAM,并在日志文件中記錄復位類型(上電復位)和時間信息;如果是帶電復位,則復位后不再自檢CPU小系統(tǒng)的DDR-SDRAM,并在日志文件中紀錄復位類型(帶電復位)和時間信息。
單板CPU小系統(tǒng)上有作粘合邏輯用的某公司CPLD一片,CPLD掛在CPU的LoealBus上,邏輯上以SRAM方式提供訪問接口。
在該公司的IDE編譯選項設(shè)置中,有power-up don’t care選項提供對此功能的使能選擇。如果選中,那么,上電初始化以后的寄存器狀態(tài)與綜合結(jié)果直接相關(guān),register的狀態(tài)由上電時觸發(fā)器D端狀態(tài)確定,圖1在上電期間的狀態(tài)等效于圖2。也就是說如果D端是1,Q端也為1,如果D端是0,Q端也是0。如果不選中power-up don’t care,那么,不管上電期間觸發(fā)器D端狀態(tài)如何,寄存器的值都為0(如圖3所示)。此選項對于整個設(shè)計是全局有效的,會帶來一定的面積開銷。所有該開發(fā)環(huán)境支持的器件都有此功能。
首先,在邏輯代碼設(shè)計中設(shè)置一個8bit寄存器,復位時(指復位引腳出現(xiàn)有效復位信號,不包括上電復位)設(shè)置為0x55,該寄存器只讀不可寫(防止軟件寫操作破壞標志位);下面是Verilog描述的一段簡單的示例代碼module powerup(Data,Addr,Wr,Rd,Rst,CS);inout[7:0]Data;input[2:0]Addr;input Wr,Rd,Rst,CS;
wire PldWr,PldRd;reg[7:0]PoR;reg[7:0]Reg1,Reg2,Reg3;reg[7:0]DataIn;assign PldWr=(CS==1′b1&&Rd==1′b1)?1Wr;assign PldRd=(CS==1′b1)?1Rd;assign Data=(PldRd==1′b1)?8′bzzzzzzzzDataIn;always@(posedge PldWr or negedge Rst)if(!Rst)beginPoR<=8′h55;//復位初始化位0x55Reg1<=8′h00;Reg2<=8′h00;Reg3<=8′h00;endelsecase(Addr)//沒有對PoR的寫操作,即PoR為只讀,CPU無法改寫;3′b001Reg1<=Data;3′b010Reg2<=Data;3′b011Reg3<=Data;default;endcasealways@(negedge PldRd)case(Addr)3′b000DataIn<=PoR;3′b001DataIn<=Reg1;3′b010DataIn<=Reg2;
3′b011DataIn<=Reg3;defaultDataIn<=8′h11;endcaseendmodule注如果將PoR位寬設(shè)為1,則資源上只占用一個觸發(fā)器,無需8個。
鉤掉(不選中)Verilog編譯器選項power-up don’t care;邏輯設(shè)計階段其他的地方按照不需要改變。
在硬件設(shè)計上,不可將看門狗之類的復位輸出直接接到CPLD上,因為常用看門狗芯片提供上電復位,在上電后會發(fā)出復位脈沖,此時CPLD實際上是收到Reset信號后復位,破壞了上電復位后的寄存器初始數(shù)據(jù),CPLD的復位信號可以由CPU的GPIO發(fā)出或者使用其它類似的處理??傊?,上電以后,CPLD的復位信號應該由CPU直接或者間接控制(如通過寫復位寄存器控制)。
在軟件設(shè)計上,CPU判斷復位方式的步驟如下1、CPU啟動;2、讀CPLD相應的PoR寄存器;3、如果PoR為0x55,則判斷為帶電復位,后續(xù)不作內(nèi)存自檢,并且紀錄日志事件為帶電復位;如果PoR為0x00,則判斷為上電復位,后續(xù)作內(nèi)存自檢,并且紀錄日志事件為上電復位;4、復位CPLD使之所有寄存器進入預定狀態(tài),啟動系統(tǒng)其它部分。
權(quán)利要求
1.一種區(qū)別系統(tǒng)上電復位和帶電復位的方法,包括使能可編程邏輯器件的寄存器上電復位可預置功能,上電復位以后,寄存器會自動復為預置值;系統(tǒng)啟動以后,讀取對應寄存器的數(shù)據(jù),如果該數(shù)據(jù)為上述預置值,則判斷為帶電復位;如果該數(shù)據(jù)不是上述預置值,則判斷為上電復位。
2.如權(quán)利要求1所述的區(qū)別系統(tǒng)上電復位和帶電復位的方法,其特征在于對器件編程,設(shè)置寄存器通過IO引腳或者寫寄存器復位的值,該復位值不同于上述預置值。
3.如權(quán)利要求1所述的區(qū)別系統(tǒng)上電復位和帶電復位的方法,其特征在于系統(tǒng)在復位可編程邏輯器件之前讀取對應寄存器的值。
4.如權(quán)利要求1或2所述的區(qū)別系統(tǒng)上電復位和帶電復位的方法,其特征在于可編程邏輯器件的復位受系統(tǒng)直接或者間接控制。
全文摘要
本發(fā)明提供一種區(qū)別系統(tǒng)上電復位和帶電復位的方法,在可編程邏輯器件內(nèi)部設(shè)置寄存器,利用可編程邏輯器件上電復位可預置的功能,設(shè)上電復位該寄存器值為A,而因外圍其他操作(IO引腳或者寄存器寫操作)引起的復位值為B,CPU啟動以后,在CPU復位可編程邏輯器件之前,先讀此寄存器的值,如果為A,則判斷為上電復位,如果不為A,則判斷為帶電復位,然后,CPU復位可編程邏輯器件為下次判斷做準備。本發(fā)明對于外圍已有可編程邏輯器件的系統(tǒng),無需增加額外硬件成本,并能可靠、簡單地區(qū)別系統(tǒng)的上電復位和帶電復位。
文檔編號G06F1/24GK1776566SQ20051012410
公開日2006年5月24日 申請日期2005年11月25日 優(yōu)先權(quán)日2005年11月25日
發(fā)明者戴多好, 李剛 申請人:港灣網(wǎng)絡(luò)有限公司