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