專利名稱:帶有斷電恢復的電池式設(shè)備的制作方法
背景技術(shù):
本發(fā)明總體上涉及由一個可拆卸主電源供電,并有一個輔助電源作為電池備用設(shè)備的電池式設(shè)備,及其操作方法。通常,輔助電源設(shè)備可以是能存儲一段預定義時間能量的任何設(shè)備,例如一個電池,一個大的充電電容,或者類似的東西。這樣的電池式設(shè)備包括諸如尋呼機、移動無線電手機、無繩電話或者此類的通信設(shè)備。
目前帶有電池的設(shè)備在主電源被去除之后通過復位設(shè)備來處理可拆卸主電源的去除,并試圖還原并/或恢復存在設(shè)備中的任何信息。當物理地去除主電源或因電源抖動(bounce)而產(chǎn)生的主電源去除后,正在進行的任何操作都被取消。復位設(shè)備并且試圖恢復導致引入許多軟件漏洞。這是因為在主電源或者電池被移走之前設(shè)備可能處于任何狀態(tài),因此相關(guān)的變量或者數(shù)據(jù)處于一個被修改狀態(tài)。在復位設(shè)備后,需要考慮每個可能變量/數(shù)據(jù)組合,否則設(shè)備不能正確地復位和啟動。這樣目前設(shè)備也使用戶苦惱,當在一個長操作中間時,一個電池的抖動或者其他主電源的去除導致設(shè)備復位,因此迫使用戶再次操作。
其他帶有電池的設(shè)備當主電源去除時通過與硬件和/或機械機構(gòu)來用一個備用電池代替主電源。這些解決方案不是非常適合當主電源去除時設(shè)備運行或者主電源被替換時的操作。在這樣的解決方案中,一般當主電源被替換時設(shè)備被復位,并且不得不進行大量數(shù)據(jù)確認以確定RAM數(shù)據(jù)是否需要清除。對于任何類型的電池抖動,這些解決方案將導致設(shè)備復位并且試圖恢復內(nèi)存。這已經(jīng)證實對用戶而言是不可接受的。一些例子是,如果用戶正在設(shè)定時間或者鬧鐘時,設(shè)備摔了一下,導致主電源的一個電池抖動。如果復位,鬧鐘/時間可能處于一種未知狀態(tài),導致用戶回到屏幕重輸數(shù)據(jù)。這種硬件和/或機械機構(gòu)的例子在美國專利號5,369,802中有公開,其中一個交換前中斷的結(jié)構(gòu)用來保證首先和一個替換將被去除舊電池的新電池進行聯(lián)系,其中,在英國專利申請GB2270445中當檢測到電池去除后用一個交換器保存數(shù)據(jù),而在日本專利申請007107927A中,當主電源正被替換時一個內(nèi)置電池進行接管。
在歐洲專利申請EP0607919中,提供了一個軟件解決方案,其中當檢測到主電源電氣斷連后,設(shè)備的當前運行狀態(tài)存入一個非易失RAM。另外,設(shè)備的當前時間也存入RAM。依賴于所采用的微處理器平臺,把運行狀態(tài)存入非易失RAM有下列缺點。非易失RAM必須為存儲運行狀態(tài)這個特定目的留出。這將需要一個相當數(shù)量的存儲器。特別是低端,即,例如,便宜的微處理器或者應用于尋呼機的硬件設(shè)計,不能提供這么多存儲器用于這個目的。當檢測到一個主電源去除時,由于大量寄存器將要備份用來保存運行狀態(tài)這一事實,這個相當數(shù)量的RAM是必須的。在這種解決方案中,也必須知道在所有時刻運行狀態(tài)是什么。既然非易失RAM不是核心CPU RAM的一部分,當后備電池有足夠的電壓支持非易失RAM時,由于非易失RAM是唯一可用的,因此有必要對運行狀態(tài)進行校驗和并將結(jié)果備份到非易失RAM。如果對運行狀態(tài)沒有校驗和操作,那么當重新裝載時將有很大的風險由于重載的一個無效狀態(tài)導致不可預測的結(jié)果。還有,這種方法不允許在主電源被替換時更新設(shè)備時間。例如,如果在一個給定時間主電源被去除并斷了10分鐘,那么在替換主電源時,時間再保存后會有10分鐘的誤差。需要一個單獨的時鐘芯片來保持計時,這是一個需要電源的附加元件。低成本產(chǎn)品要求最小數(shù)量的元件。
這樣,為了主電源的替換或者電池抖動,或者類似的情況,需要一種更加簡單而且可靠的方法和設(shè)備,適于支持電池替換而不需要麻煩用戶重新操作。
本發(fā)明的另一個目的是當保存和恢復程序函數(shù)的運行狀態(tài)時,避免使用外部存儲器。
本發(fā)明還有另一個目的是提供一個便宜的機制來保存和恢復運行狀態(tài)。
本發(fā)明的另一個目的是提供一個機制,分別檢測可拆卸主電源從設(shè)備電氣斷開和電氣重連。
本發(fā)明還有另一個目的是當檢測到主電源去除時,實現(xiàn)設(shè)備中的能量節(jié)省。
本發(fā)明還有另一個目的是當檢測到主電源去除時以及在主電源的替換中,也能精確地保持時間和日期的計時。
根據(jù)本發(fā)明,在一個電池式便攜電子設(shè)備中,設(shè)備適于接受一個可拆卸主電源,并且設(shè)備包含電子電路,一個輔助電源,以及把主或輔電源耦合到電子電路至少一部分并且在所述主電源中檢測斷電的耦合及檢測裝置,電子電路包含一個包括用于存儲一個操作便攜設(shè)備的運行程序的存儲器裝置的可編程處理單元,一組運行寄存器,以及一個堆棧,可編程單元適于響應至少一個外部中斷信號,a)當主電源從耦合和檢測裝置電氣斷連時,產(chǎn)生一個電氣斷連主電源中斷信號,并且b)電氣斷連主電源中斷信號被響應,通過把運行寄存器集合的至少一個子集壓入堆棧來保存便攜設(shè)備的運行程序中一個當前正在執(zhí)行程序函數(shù)的一個精確運行點,通過把一個主斷源檢查例程壓入堆棧,以及通過執(zhí)行堆棧中的主斷源檢查例程,當確定主電源是否電氣重連時,主電源檢查例程恢復至少保存的運行寄存器集合的子集,并且使處理單元返回到所保存的當前執(zhí)行程序函數(shù)的精確運行點。
一個很大的優(yōu)點是不需要知道當前運行狀態(tài)是什么,因為當主電源從設(shè)備電氣斷連被檢測到后,一段主電源檢查例程被插入一個微處理器的一個堆棧中。本發(fā)明使用一個微處理器的標準運行機制,在堆棧中保存一個電氣斷連主電源中斷發(fā)生處的運行程序點,把主電源檢查例程壓入或者彈出堆棧,并且控制返回到在電氣斷連主電源中斷發(fā)生前的點。不需要一個當前執(zhí)行程序的一個運行狀態(tài)到非易失RAM的傳輸。另外,因為只要和微處理器的堆棧打交道,其為核心微處理器RAM的一部分,如果后備電壓低到一個不能接受的水平而導致微處理器核心RAM出錯時就會發(fā)生設(shè)備復位。而且,因為運行狀態(tài)沒有移到非易失RAM,因而不需要對運行狀態(tài)的正確性進行檢查。當在堆棧上時,主電源檢查例程執(zhí)行一個主電源監(jiān)視功能,并且能容易地編程使得只允許特定中斷的服務,例如當檢測到主電源的電氣重連時產(chǎn)生的一個重連主電源中斷,以及附加的,如果需要,一個計時器中斷。通過啟用計時器中斷,設(shè)備的時間和日期可以被精確更新。
最好,在主電源替換時提供一個電池反抖動機制。最好,當檢測到主電源的一個電氣斷連時,設(shè)備進入一個使用輔助電源的能量節(jié)省狀態(tài)。在本發(fā)明的一個實施方案中時間和日期被準確計時。進一步實施方案在下文討論。
圖1是一個方框圖,說明依照本發(fā)明的包含一個可編程處理單元的一個電池式便攜電子設(shè)備的一種實施方案。
圖2是圖1中可編程處理單元的一個更詳細的方框圖。
圖3是一個主程序流程和一個堆棧,說明圖1中可編程處理單元的運行,包含一個主電源檢查例程。
圖4是圖3中主電源檢查例程的一個程序流程。
最佳實施方案描述圖1是一個方框圖,用來說明依照本發(fā)明一個最佳實施方案的一個包含一個可編程處理單元2的電池式便攜電子設(shè)備1的一種實施方案。電池式便攜電子設(shè)備1,在所給的例子中是一個信息尋呼機,還包含一個無線電前端3,它耦合到一條天線4以及一個混頻器5,一個耦合到混頻器5的本地振蕩裝置6使得混頻器混合一個接收到的無線電信號RF,一個解調(diào)器7用于解調(diào)混合信號,以及一個包含一個緩存9的計時器8用于保持當前時間和日期的計時。參考對圖2的說明,計時保持也可以用一個基于中斷或者一個外部中斷的微控制器來完成。這個中斷使得微控制器管理計時保持功能。那么,不需要外部時鐘芯片。時間可以通過一個軟件中斷計時器而基于軟件產(chǎn)生。設(shè)備1還包含一個可拆卸主電源10,一個輔助電源11,以及耦合和檢測裝置12。還進一步提供警報裝置13和顯示裝置14,例如一個LCD屏幕。內(nèi)部電源線15和16表示給電子設(shè)備1中的內(nèi)部單元供電。
圖2是圖1中可編程處理單元的一個更詳細的方框圖??删幊烫幚韱卧?包含一個微控制器和外部耦合的外部存儲器裝置21。微控制器20包含數(shù)據(jù)寄存器22,地址寄存器23,核心存儲器裝置24,以及一個時序控制單元25,還有一個ALU(算術(shù)邏輯單元),一個狀態(tài)寄存器,以及一個指令寄存器,后面的設(shè)備和功能在本領(lǐng)域中是熟知的因此這里不再詳細表述。外部存儲器裝置21包含一個RAM存儲器26和一個非易失存儲器27,并且核心存儲器裝置24包含一個RAM存儲器28。數(shù)據(jù)寄存器22,以及核心存儲器裝置24內(nèi)部耦合到一條數(shù)據(jù)總線29,外部存儲器裝置21外部耦合到數(shù)據(jù)總線29,地址寄存器23,以及核心存儲器裝置24內(nèi)部耦合到一條地址總線30,并且外部存儲器裝置21外部耦合到地址總線30。地址寄存器23包含一個對應一個所謂STACK堆棧的堆棧指針SP,其在核心存儲器裝置24中定義,以及一個程序計數(shù)器PC。堆棧是一組由堆棧指針SP尋址的連續(xù)存儲器地址。關(guān)于堆棧,定義了一個堆棧底BOT和一個堆棧頂TOP,堆棧底指向一個空堆棧,而堆棧頂指向一個堆棧頂部的存儲器地址。堆棧指針SP指示堆棧頂。微控制器20使用堆棧指針SP的值來定位一個存儲器地址,從該地址讀或者寫數(shù)據(jù)項。存到,所謂壓入,堆棧的數(shù)據(jù)按照一個相反的順序取出,所謂彈出或者拉出。一般,每個地址寄存器都可以用作堆棧指針。微控制器20還包含一個輸入/輸出單元31。提供了中斷線INT1和INT2,使得可編程處理單元2可以響應外部事件,特別是中斷,還有I/O線IOL用于便攜電子設(shè)備1內(nèi)單元的單向或者雙向通信,例如和耦合和檢測裝置12交換控制信息。在主電源10的一個斷電檢測時,由耦合和檢測裝置1 2檢測并由它通過一個中斷發(fā)信號給處理單元2,處理單元2命令耦合和檢測裝置12把輔助電源11連到電源線16,并且,最好,不要給電源線15供電。在斷電模式中,電子設(shè)備消耗最少電力使得從一個斷電后有最長可用時間用來恢復。后者在由換電源導致的斷電情況中比在電池抖動導致的斷電情況中更為重要。
圖3是一個主程序流程40和一個堆棧41,說明圖1中可編程處理單元2的運行,包含一個主電源檢查例程42。當電池式便攜電子設(shè)備1是工作的,一個運行程序,圖3中用波浪線PFlow示意,被執(zhí)行,它存儲在外部存儲器裝置21并包含幾個程序函數(shù)。運行程序PFlow的結(jié)構(gòu)可以是一個主例程形式,其中在需要時調(diào)用子例程。這樣的結(jié)構(gòu)在本領(lǐng)域中是熟悉的。當一個程序中的控制流程被子例程、中斷、或者其他事件的一個調(diào)用所改變時,微控制器20保存信息到堆棧42。當主例程或一個子例程正在執(zhí)行時,運行程序PFlow的正常流程致使執(zhí)行一個來自外部存儲器裝置的程序指令的連續(xù)序列。為此,在一個指令的執(zhí)行時,程序計數(shù)器PC累加這樣它指向?qū)⒈粓?zhí)行的下一條指令。一個中斷導致控制權(quán)交給一個中斷服務例程,直到一個中斷任務完成,中斷服務例程可以存儲在外部存儲器裝置21中,并且它和中斷相關(guān)。之后,通常,控制權(quán)返回優(yōu)先序列的下一條指令。在一個標準的堆??刂茩C制中,轉(zhuǎn)交和返回通過在控制權(quán)交給服務例程之前保存指向?qū)⒈粓?zhí)行的指令的程序計數(shù)器PC的內(nèi)容到堆棧41,并且隨后再恢復程序計數(shù)器PC來完成,這樣運行程序的正常流程被恢復。
根據(jù)本發(fā)明,當中斷線INT1上有一個主電源中斷信號GInt時,使用微控制器20的常用堆棧機制,程序計數(shù)器PC的一個值PCE,它代表中斷發(fā)生處主例程的精確點,被壓入堆棧41,以及其后,主電源檢查例程42,它將在圖4中進一步描述,被壓入堆棧41。一條從中斷返回指令被執(zhí)行使得控制權(quán)交給主電源檢查例程42,用程序計數(shù)器PCCK的一個值指示。在主電源檢查例程42結(jié)束后,控制權(quán)返回主程序Pflow,到中斷GInt發(fā)生時主程序PFlow離開的精確點。
圖4是圖3中主電源檢查例程42的一個程序流程。所示的是程序段或者例程PB1、PB2、PB3、PB4、以及PB5。在這些段或者例程中,下面程序功能被執(zhí)行。PB1耦合和檢測裝置12被命令關(guān)閉所有不是斷電恢復必需的外部設(shè)備,特別是圖1中所示的設(shè)備3、5、6、7、13和14。同樣,所有中斷線除了INT1和INT2,它們分別為斷電檢測和恢復以及計時器功能所需,都被禁用。當主電源中斷狀況依然存在,設(shè)備1進入關(guān)閉狀態(tài)。PB2實現(xiàn)電池抖動。這意味著檢測是否中斷存在一段預定義時間TT,例如2秒。在這段時間內(nèi),重連或者主電源中斷信號RInt導致程序流程暫時交給一個重連或者好的主電源中斷例程PB3。如果確認重連主電源中斷信號RInt是穩(wěn)定的,微控制器20使得進行主電源檢查例程42。
對于一個尋呼機的情況,為了防止所謂的設(shè)備中的低頻振蕩(motorboating),在檢測到重連主電源中斷信號RInt后,任何在斷連主電源中斷信號GInt之前的警報被取消。低頻振蕩是一種在電池電壓到達一個斷連主電源狀況時發(fā)生的現(xiàn)象。典型地,當報警13或者顯示14工作時,電池電壓將會降到100-200mV。然后尋呼機復位,并且外部設(shè)備13和14不工作。這導致電池電壓提升。然后,尋呼機試圖進行一個加電警報,導致另一個復位發(fā)生。這個循環(huán)會持續(xù)發(fā)生直到電池電壓降到不能進行一個基本加電的電平。
最好,中斷線INT1用于為斷連和重連主電源中斷信號GInt和RInt服務。這通過使用一個中斷極性寄存器IP來實現(xiàn)。最初,中斷設(shè)成查找一個在中斷線INT1上的工作低,指示一個電氣斷連主電源10。當進入主電源檢查例程42時,極性改為一個工作高,設(shè)備1進入一個關(guān)閉模式,并等待一個重連主電源中斷信號來喚醒微控制器20。PB3是一個中斷服務例程,其中微控制器20從關(guān)閉模式喚醒。隨后立即返回到程序段PB2中的當前程序流程。PB4是一個中斷服務例程,用來為出現(xiàn)在中斷線INT2上的計時器中斷服務。存在緩存9中的任何累計時間分段信號,例如,分鐘,被微控制器20處理,從而時間和日期功能被更新。PB5微控制器20導致主電源檢查例程42退出,即,檢查例程42從堆棧41中彈出,并把控制權(quán)交給主程序流程Pflow在它離開的精確點,即,在PCE地址。微處理器20致使主程序用檢查例程42執(zhí)行后獲得的分鐘分段數(shù)更新它的軟件時鐘。
如果在檢查例程42中接收到多于一個預定義的分鐘分段數(shù),例如30分段,設(shè)備1復位。這是因為輔助電源11只能保證在一段有限時間內(nèi)存儲器完整。
權(quán)利要求
1.一個電池式便攜電子(1)設(shè)備,適于接受一個可拆卸主電源(10),包含電子電路(2、3、5、6、7、8、13、14),一個輔助電源(11),以及用于電氣耦合主或輔電源(10)耦合到至少電子電路一部分的耦合和檢測裝置(12),并用于檢測在所述主電源(10)中的斷電,耦合和檢測裝置(12)被配置成當主電源(10)從耦合和檢測裝置(12)電氣斷連時產(chǎn)生一個電氣斷連主電源中斷信號(GInt),電子電路包含一個可編程處理單元(2)包含存儲器裝置(21)用于存儲操作便攜設(shè)備的一個運行程序(40),一組運行寄存器(22,23)和一個堆棧(41),可編程單元適于響應至少一個外部中斷信號,其中處理單元(2)配置來響應電氣斷連主電源中斷信號(GInt),通過把運行寄存器集(PCE)的至少一個子集壓入堆棧從而保存便攜設(shè)備(1)中運行程序(40)的一個當前執(zhí)行程序函數(shù)的一個精確運行點(PCE),通過把一個主電源檢查例程(42)壓入堆棧(41),以及通過執(zhí)行在堆棧上的主電源檢查例程(42),當確定主電源(10)是否電氣重連時,主電源檢查例程恢復運行寄存器集(22,23)的至少保存的子集,并使處理單元(2)返回到當前執(zhí)行程序函數(shù)的保存的精確運行點(PCE)。
2.如權(quán)利要求1的電池式便攜電子設(shè)備(1),其中處理單元(2)被配置成在返回到當前執(zhí)行程序函數(shù)的精確運行點(PCE)之前,從堆棧(41)彈出主電源檢查例程(42)。
3.如權(quán)利要求1的電池式便攜電子設(shè)備(1),其中設(shè)備(1)被配置成使用一個輪循機制感測一個電壓的存在來確定電氣重連
4.如權(quán)利要求1的電池式便攜電子設(shè)備(1),其中耦合和檢測設(shè)備(12)被配置成檢測電氣連接并當檢測到電氣重連時產(chǎn)生一個重連主電源中斷信號(RInt)。
5.權(quán)利要求4的電池式便攜電子設(shè)備(1),其中處理單元(2)被配置成確定重連主電源中斷信號(RInt)是否代表在一段預定時間內(nèi)穩(wěn)定的重連狀態(tài)。
6.權(quán)利要求1的電池式便攜電子設(shè)備(1),其中設(shè)備(1)包含關(guān)閉裝置(12,15)用于當確定斷電時電氣關(guān)閉至少一部分電子電路。
7.權(quán)利要求1的電池式便攜電子設(shè)備(1),其中設(shè)備(1)包含一個時序裝置(8)用于至少進行時間計時,以及一個處理單元(2)被配置成在由時序裝置(8)產(chǎn)生的外部時序中斷信號下從時序裝置更新自己的計時,時序裝置包含一個緩存(9)用于在外部時序中斷信號之間累積保存時間分段單元。
8.一種用于電池式便攜電子設(shè)備(1)的方法,其中設(shè)備(1)適于接受一個可拆卸主電源(10),并且設(shè)備(11)包含電子電路(2,3,5,6,7,8,13,14),一個輔助電源(11),以及用于電氣耦合主或輔電源(10,11)到至少電子電路一部分的耦合和檢測裝置(12),并用于檢測在所述主電源(10)中的斷電,電子電路包括一個可編程處理單元,它包含存儲器裝置(21)用于存儲操作便攜設(shè)備的一個運行程序(40),一組運行寄存器(22,23)和一個堆棧(41),可編程單元(2)適于響應至少一個外部中斷信號(GInt),該方法包含a)當主電源(10)從耦合和檢測裝置(12)電氣斷連時,產(chǎn)生一個電氣斷連主電源中斷信號(GInt),以及b)通過把運行寄存器集(PCE)的至少一個子集壓入堆棧(41)從而保存便攜設(shè)備(1)中運行程序的一個當前執(zhí)行程序(40)函數(shù)的一個精確運行點(PCE),通過把一個主電源檢查例程(42)壓入堆棧(41),以及通過執(zhí)行在堆棧(41)上的主電源檢查例程(42),當確定主電源(10)是否電氣重連時,主電源檢查例程恢復運行寄存器集(22,23)的至少保存的子集,并使處理單元(2)返回到當前執(zhí)行程序函數(shù)的保存的精確運行點(PCE)。
全文摘要
一種電池式便攜式電子設(shè)備,有可拆卸主電源和輔助電源,當它檢測到可拆卸主電源的斷電時產(chǎn)生一個電源斷電中斷信號。根據(jù)電源斷電信號的檢測,該電子設(shè)備進入斷電模式,在此模式下,它檢測電源斷電的恢復。該電子設(shè)備使用電池檢測例程檢測電源斷電的恢復;該例程壓入微處理器的堆棧中,并在確定電源恢復時從堆棧中彈出該電池檢測例程,并返回當檢測到電源斷電時主程序離開的精確點,主程序的該精確點由發(fā)生電源斷電中斷信號時自動壓入到堆棧的程序計數(shù)器值表示。
文檔編號G06F11/14GK1300387SQ99801339
公開日2001年6月20日 申請日期1999年5月25日 優(yōu)先權(quán)日1998年6月12日
發(fā)明者T·克萊恩 申請人:皇家菲利浦電子有限公司