智能接觸器可靠性設(shè)計的軟件實現(xiàn)方法(06-100)
·對表格使用軟件陷阱
本文引用地址:http://www.ex-cimer.com/article/81284.htm單片機表格有兩類:一類是數(shù)據(jù)表格供“MOVC A,@A+PC”或“MOVE A,@A+DPTR”兩類指令使用,它的內(nèi)容完全不是指令,僅僅是指令所使用的數(shù)據(jù),可以不按排陷阱。另一類是散轉(zhuǎn)表格供“JMP @A+DPTR” 指令使用,其內(nèi)容為一系列三字節(jié)指令LJMP或兩字節(jié)指令A(yù)JMP,單片機對此類表格可以在最后安排五字節(jié)的陷阱。
·對程序區(qū)設(shè)置軟件陷阱
當(dāng)程序運行到含有LJMP、SJMP、AJMP、RET、RETI、ACALL、LCALL等指令則會發(fā)生跳轉(zhuǎn),即正常執(zhí)行的程序運行到此類指令便不會繼續(xù)往下執(zhí)行(程序斷裂點),PC的值將出現(xiàn)正常轉(zhuǎn)移。如果干擾使彈飛來的程序剛好落到斷裂點的操作數(shù)上或斷裂點下一條指令的操作數(shù)上時,則程序就會越過斷裂點,繼續(xù)往前沖,應(yīng)用軟件必然出錯。所以,在程序斷裂點處設(shè)置軟件陷阱可有效地捕獲因干擾引起的跨斷點彈飛,而不會影響正常執(zhí)行的程序流程。
軟件看門狗
當(dāng)程序受干擾,彈飛到一個臨時構(gòu)成的死循環(huán)中,軟件陷阱就無能為力了。此時,系統(tǒng)將面臨著完全癱瘓。而軟件看門狗(SWD)法可以成功地解決此類問題。軟件看門狗實質(zhì)上是一種監(jiān)控定時器,它具有以下特征:
·本身能獨立工作,基本上不依賴于CPU。
·CPU在一個固定的時間間隔與該系統(tǒng)打一次交道,以表明系統(tǒng)目前尚正常。
·當(dāng)CPU陷入死循環(huán)后,能及時發(fā)覺并使系統(tǒng)復(fù)位。
軟件看門狗(SWD)技術(shù)具體實現(xiàn)方法如下:
首先,在初始化程序中設(shè)置Ti的工作方式,并啟動其中斷和計數(shù)功能。其次,計算各條指令執(zhí)行時所耗時間,以適當(dāng)?shù)拈g隔設(shè)置Ti的初值。最后,設(shè)計Ti溢出所對應(yīng)的中斷子程序。此子程序只有一條指令,即在Ti對應(yīng)的中斷向量地址(000BH)寫入無條件轉(zhuǎn)移指令,把PC拖回整個程序的第一行,對單片機重新進(jìn)行初始化,并獲得正確執(zhí)行順序。
控制器中的軟件冗余技術(shù)
“冗余設(shè)計”原是系統(tǒng)可靠性設(shè)計的一種技術(shù),常用于系統(tǒng)工程設(shè)計上。在零侵蝕接觸器的控制器軟件容錯模塊設(shè)計中,筆者充分利用冗余設(shè)計思想,有效的解決許多難點問題。軟件冗余模塊,可分為兩類,其一是,“工作冗余軟件模塊”,它利用冗余資源(CPU時間,RAM空間)把干擾的后果“屏蔽”掉,而不改變現(xiàn)行監(jiān)控程序的進(jìn)程;其二是“備用冗余軟件模塊”,它在發(fā)現(xiàn)特定的隨機干擾后,通過中斷程序,調(diào)用對應(yīng)的軟件模塊,恢復(fù)或重構(gòu)數(shù)據(jù)結(jié)構(gòu)。然后,再返回現(xiàn)行監(jiān)控程序。
下面,簡單介紹筆者在零侵蝕接觸器的控制器應(yīng)用軟件開發(fā)中,常使用的幾種軟件冗余設(shè)計技巧。
評論