數(shù)據(jù)處理模塊的看門狗設(shè)計實現(xiàn)
0引言
HKSP6102處理器是一款以PPC460處理器為核心,集成浮點處理單元、二級Cache,對外提供以太網(wǎng)、EBC等外設(shè)接口的高性能、低功耗的單核處理器,廣泛應(yīng)用于各類嵌入式計算機系統(tǒng)中[1]。
在嵌入式計算機系統(tǒng)中,通常采用看門狗來實現(xiàn)系統(tǒng)運行狀態(tài)的監(jiān)控,提高產(chǎn)品可靠性??撮T狗是一種系統(tǒng)錯誤事件的檢測響應(yīng)機制,通過軟件或硬件的方式實現(xiàn)對系統(tǒng)運行狀態(tài)的監(jiān)控,如果在設(shè)定時間內(nèi)未收到來自系統(tǒng)軟件的喂狗信號,則認(rèn)為系統(tǒng)軟件發(fā)生故障[2],進入中斷處理程序或系統(tǒng)強制復(fù) 位,以保證系統(tǒng)發(fā)生錯誤時能夠及時恢復(fù)正常運行[3—4]。
本文給出了一種數(shù)據(jù)處理模塊的看門狗電路設(shè)計和實現(xiàn)方法。首先介紹了數(shù)據(jù)處理模塊的系統(tǒng)架構(gòu),以HKSP6102為主控芯片,配置多種接口電路;然后分析了通用看門狗的設(shè)計方法及其特點;最后詳細(xì)介紹了數(shù)據(jù)處理模塊看門狗的設(shè)計實現(xiàn)。
1數(shù)據(jù)處理模塊系統(tǒng)結(jié)構(gòu)
數(shù)據(jù)處理模塊的處理器、CPLD、存儲單元等核心器件均采用國產(chǎn)元器件,操作系統(tǒng)采用天脈操作系統(tǒng)。采用一片HKSP6102處理器作為主控芯片,PPC406內(nèi)核配置主頻400MHz,存儲資源配置:SDRAM、 FLASH和NVSRAM。硬件組成結(jié)構(gòu)如圖1所示。
數(shù)據(jù)處理模塊通過CPLD實現(xiàn)處理器EBC總線的邏輯譯碼、中斷控制以及看門狗定時器、RS422控制、PCI控制等功能。數(shù)據(jù)處理模塊提供2路百兆以太 網(wǎng)接口、2路RS422串行接口用于模塊的調(diào)試維護,提供1路PCI總線、1路SPI總線接口,實現(xiàn)與從設(shè)備的數(shù)據(jù)交互。
2看門狗設(shè)計
通用看門狗大致分為兩類:處理器內(nèi)置看門狗和外置看門狗[5]。
2.1處理器內(nèi)置看門狗
主流的處理器(如PowerPC、ARM等)內(nèi)部均集成了看門狗模塊。HKSP6102處理器集成的看門狗模塊,具有32位計數(shù)器、定時周期可配置、狗叫中斷模式/復(fù)位模式可配置、計時精度高的特點,如果使用得當(dāng),可在系統(tǒng)軟件崩潰時恢復(fù)運行。但看門狗模塊可能會因處理器異常而被意外禁用,導(dǎo)致看門狗功能失效,需重新上電恢復(fù)系統(tǒng)運行[5]。
2.2 外置看門狗
2.2.1微處理器監(jiān)測電路
微處理器監(jiān)測電路用于監(jiān)測微處理器系統(tǒng)中的電壓,同時提供復(fù)位、看門狗等功能。微處理器監(jiān)測電路的看門狗設(shè)計原理如圖2所示。
#WDO:看門狗輸出端即狗叫中斷源,接入處理器的GPIO或CPLD中斷控制邏輯中。在看門狗定時周期內(nèi)未接收到喂狗信號,模塊看門狗使能有效。
WDI:看門狗輸入端,接收看門狗喂狗信號,由看門狗喂狗寄存器控制。喂狗信號通過軟件置位寄存器值,初始化寄存器,使看門狗重新開始計數(shù),實現(xiàn)喂狗操作。如果WDI保持高電平或低電平超過看門狗的定時周期1.6 S,#WDO將產(chǎn)生中斷信號。
看門狗電路的默認(rèn)定時周期為1.6S,可以通過SWT 管腳接外接電容的方式來設(shè)定看門狗的定時周期。外接電容的容值范圍為4.7~20 nF。SWT外接片外電容C(單位為nF)時,看門狗定時周期T(單位為mS)的計算公式為:
T=2.1C
硬件看門狗電路設(shè)計簡單,依賴于微處理器監(jiān)測電路,僅具有基礎(chǔ)的看門狗功能。微處理器監(jiān)測電路參數(shù)設(shè)置不靈活,定時周期配置需進行硬件變更,且定時周期精度因受限于配置電容的容值而較低。
2.2.2可編程看門狗定時器
可編程看門狗定時器由CPLD/FPGA邏輯實現(xiàn),定時周期可配置。可編程看門狗定時器支持8位、16位、32位的數(shù)據(jù)訪問,支持狗叫產(chǎn)生中斷或復(fù)位。系統(tǒng)軟件通過總線對邏輯內(nèi)部的看門狗寄存器進行訪問,完成初始化參數(shù)配置、使能、喂狗等操作,實現(xiàn)看門狗定時器的正常工作??撮T狗定時器超時產(chǎn)生看門狗中斷,中斷信號發(fā)送處理器,處理器對中斷信號進行處理,同一時刻看門狗定時器重新計時;如果處理器未對中斷信號進行處理,經(jīng)由延時邏輯作用觸發(fā)自動復(fù)位??删幊炭撮T狗定時器設(shè)計原理如圖3所示。
可編程看門狗定時器設(shè)計復(fù)雜度高,但具有功能豐富、配置靈活、使用簡便的優(yōu)點??删幊炭撮T狗定時器除硬件看門狗的基本功能外,還具有看門狗狗叫次數(shù)配置、看門狗定時周期支持軟件配置、定時周期精度高、空中狀態(tài)看門狗自使能等功能。
3數(shù)據(jù)處理模塊看門狗設(shè)計實現(xiàn)
數(shù)據(jù)處理模塊配置有一路看門狗,為外置看門狗,通過微處理器監(jiān)控電路和可編程看門狗定時器組合實現(xiàn)。數(shù)據(jù)處理模塊看門狗設(shè)計原理如圖4所示。
3.1 可編程看門狗定時器
實現(xiàn)數(shù)據(jù)處理模塊的看門狗功能。系統(tǒng)軟件可通過EBC總線,對看門狗寄存器進行訪問。首先看門狗進行初始化,通過EBC總線完成分頻因子、狗叫上限等參數(shù)的配置;之后當(dāng)前看門狗定時寄存器開始遞減計數(shù),當(dāng)定時器逐一遞減至。后,看門狗定時超時產(chǎn)生看門狗中斷,并在狗叫上限寄存器中置“1”,不產(chǎn)生復(fù)位信號,同一時刻看門狗定時寄存器的值被重新載入,開始新一輪的遞減計數(shù);當(dāng)狗叫次數(shù)達(dá)到上限后,觸發(fā)自動復(fù)位。
看門狗寄存器定義如表1所示。
當(dāng)數(shù)據(jù)處理模塊處于空中狀態(tài)時,上電3。S后看門狗自使能,使能寄存器置“?!?且不能被禁止。看門狗使能前支持定時周期配置,使能后支持喂狗操作。地面狀態(tài),數(shù)據(jù)處理模塊上電后,看門狗使能寄存器置“1”,可通過軟件配置定時周期、使能或關(guān)閉看門狗和喂狗操作??撮T狗喂狗寄存器,在超時值內(nèi)完成喂狗,使看門狗內(nèi)部定時器初始化重新開始計數(shù)。狗叫上限寄存器,當(dāng)看門狗狗叫次數(shù)達(dá)到上限后, 自動復(fù)位。
3.2微處理器監(jiān)測電路
實現(xiàn)對可編程看門狗定時器的監(jiān)控??删幊炭撮T狗定時器喂狗信號接入看門狗輸入端WDI。當(dāng) CPLD工作異常未進行喂狗操作時,微處理器監(jiān)測電路#WDO管腳產(chǎn)生狗叫信號,接入#MR管腳,微處理器監(jiān)測電路產(chǎn)生系統(tǒng)復(fù)位信號,實現(xiàn)數(shù)據(jù)處理模塊復(fù)位重加載。
4 結(jié)束語
本文基于數(shù)據(jù)處理模塊的基本架構(gòu),詳細(xì)介紹了數(shù)據(jù)處理模塊的看門狗設(shè)計方法—微處理器監(jiān)測電路和可編程看門狗定時器組合應(yīng)用?;谖⑻幚砥鞅O(jiān)測電路的硬件看門狗實現(xiàn)簡單、穩(wěn)定;基于 CPLD的可編程看門狗定時器具有良好的通用性、擴展性,功能豐富且配置靈活。兩種方式可以靈活組合應(yīng)用,能夠滿足系統(tǒng)需求,有效提高系統(tǒng)的可靠性和抗干擾能力。
[參考文獻]
[1]楊宇科,王保成.基于FPGA和EMIFA的SPI控制器系統(tǒng)設(shè)計[J].計算機測量與控制,2019,27(5):82-86.
[2]王少婭.基于FPGA的SPIIP核設(shè)計實現(xiàn)[D].秦皇島:燕山大學(xué),2023.
[3]劉博,強凱,詹思維.PowerPC數(shù)據(jù)處理模塊的看門狗設(shè)計[J].航空計算技術(shù),2019,49(2):105-107.
[4] 王鵬,田海波,吳科,等. 自主可控DCS分散處理單元軟看門狗的設(shè)計[J].儀器儀表用戶,2023,30(4):7-11.
[5]鄒國民.基于CPLD的智能看門狗設(shè)計與實現(xiàn)[J].科技廣場,2013(6):55-59.
2025年第1期第12篇