基于CPLD的系統硬件看門(mén)狗設計
2.2 DSP上電過(guò)程及復位時(shí)序分析
DSP上電初始化時(shí)序如圖2所示。WDT是喂狗信號輸出,在定時(shí)器中斷或主循環(huán)中使其電平周期性取反;RST是上電復位信號。Trst是上電復位信號的脈寬,約為100 ms;Twork是從上電時(shí)到首次進(jìn)入定時(shí)器中斷程序的時(shí)間,約為130 ms。在主程序中首先使WDT輸出低電平,則從上電復位完成到WDT變?yōu)榈碗娖降臅r(shí)間A為DSP復位后自身的各項配置所占用的時(shí)間。在定時(shí)器中每次取反WDT信號,則到WDT第一次變?yōu)楦唠娖降臅r(shí)間B為各軟件模塊及中斷初始化所占用的時(shí)間。A+B為系統初始化所用的時(shí)間,約為30ms。本文引用地址:http://dyxdggzs.com/article/190434.htm
由此可見(jiàn),如果系統程序跑飛,則每次復位都要經(jīng)過(guò)A、B兩個(gè)過(guò)程,約30 ms的時(shí)間;那么在CPLD軟件的看門(mén)狗模塊中,每次在給出復位信號后都要等待DSP的初始化完成(約30 ms)后再開(kāi)始對喂狗信號監測并計時(shí)。
選擇看門(mén)狗定時(shí)器溢出上限以5ms為例,從程序跑飛到重新正常運行大約35 ms。設定控制系統給伺服發(fā)送控制指令信號的周期是20 ms,伺服機構常態(tài)速度10°/s,最大速度是20°/s,20 ms的時(shí)間擺動(dòng)的角度是0.2°和0.4°,該角度是其控制姿態(tài)的最小步長(cháng),因此35 ms以?xún)鹊臒釓臀粫r(shí)間最多丟失兩條指令,伺服機構在可控范同之內。此外,軟件代碼還有一定的優(yōu)化余量,初始化時(shí)間和看門(mén)狗定時(shí)器溢出上限還可進(jìn)一步減少。
2.3 看門(mén)狗設計要考慮的幾點(diǎn)問(wèn)題
①喂狗方式:可分為電平喂狗和邊沿喂狗,本設計采用后者。與電平喂狗相比較,邊沿喂狗在狀態(tài)機的設計中可以減少狀態(tài)數量,從而節省CPLD資源,且DSP的喂狗也很容易,只要取反WDT電平,就可被認為已喂狗,簡(jiǎn)化軟件代碼。
②定時(shí)器溢出上限:根據具體需要靈活設定,這里暫定5 ms。
③輸出系統復位信號脈寬:這里只要超過(guò)DSP所需的512個(gè)時(shí)鐘周期即可,以30 MHz品振為例,時(shí)長(cháng)約為171μs。
④系統上電初始化時(shí)間:系統上電復位后DSP需要一斷時(shí)間初始化,而這段時(shí)間內不能喂狗,所以CPLD不能檢測是否有喂狗信號,否則會(huì )造成連續的錯誤復位,使DSP無(wú)法正常工作,因此在CPLD代碼設計時(shí)需要越過(guò)初始化階段再去檢測喂狗信號。
⑤與主控芯片的摒手信號:根據系統任務(wù)需求,可增加與主控芯片的握手信號。例如,當主控芯片需要實(shí)現總線(xiàn)寫(xiě)程序功能時(shí),對DSP片內的Flash進(jìn)行寫(xiě)操作,此時(shí)不能對DSP進(jìn)行復位,DSP也無(wú)法輸出喂狗信號,這就需要在總線(xiàn)寫(xiě)程序之前通過(guò)總線(xiàn)與CPLD實(shí)現握手與應答,關(guān)閉看門(mén)狗功能,程序寫(xiě)入完成后系統重新加電即可正常工作。為了簡(jiǎn)化功能描述,本設計術(shù)加入握手設計。
2.4 看門(mén)狗狀態(tài)機的設計
此設計采用Mealy型狀態(tài)機,使用Verilog HDL語(yǔ)言編寫(xiě)代碼,信號、寄存器說(shuō)明如下所示:Count,時(shí)間計數器;NUM1,定時(shí)器溢出上限(5 ms);NUM2,輸出復位脈沖寬度(大丁171μs);NUM3,上電復位后等待DSP初始化的時(shí)間(30 ms);WDT_fiag,3位寬移位寄存器,接收喂狗信號,比較首未位是否相等來(lái)判斷是否有喂狗信號;SYS_RST,看門(mén)狗輸出的系統復位信號;WAIT、IDLE、ADDING、ERROR、KEEPING,狀態(tài)機的5個(gè)狀態(tài);EN,看門(mén)狗功能使能信號,高電平禁止,低電平使能。
評論