您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子百科>通信技術(shù)>移動通信>

串行通訊系統(tǒng)軟件的可靠性設(shè)計 - 電梯串行通訊系統(tǒng)可靠性設(shè)計方案

2011年06月03日 11:55 未知 作者:秩名 用戶評論(0
4 串行通訊系統(tǒng)軟件的可靠性設(shè)計

  4.1 利用軟件提高系統(tǒng)可靠性

  電梯串行通訊系統(tǒng)是由硬件和軟件組成的,因此系統(tǒng)的可靠性也分硬件可靠性和軟件可靠性兩個方面。通過提高元器件的質(zhì)量,采用冗余設(shè)計,進(jìn)行預(yù)防性維護(hù),增設(shè)抗干擾裝置等措施,能夠提高硬件的可靠性。但是,要讓整個系統(tǒng)得到理想的可靠性上述措施還顯不夠,還要利用軟件來進(jìn)一步提高系統(tǒng)的可靠性。利用軟件提高系統(tǒng)可靠性的措施主要有下面幾種。

  4.1.1 設(shè)置自檢程序

  系統(tǒng)開機(jī)后先對硬件進(jìn)行自檢,如硬件有故障,系統(tǒng)則停止運(yùn)行并報警。另外,各節(jié)點微處理器內(nèi)部設(shè)置狀態(tài)標(biāo)志,程序運(yùn)行時不斷查詢這些狀態(tài)標(biāo)志,及時發(fā)現(xiàn)并糾正錯誤,以保證系統(tǒng)運(yùn)行的高可靠性。

  4.1.2 指令冗余法

  微處理器受干擾后,往往會把操作數(shù)當(dāng)操作碼來執(zhí)行,使程序的正確執(zhí)行順序被打亂且亂飛,即程序彈飛。若程序彈飛到某條單字指令上,則可自動納入正軌;當(dāng)程序彈飛到某條雙字節(jié)指令上時,有可能落到其操作數(shù)上,從而繼續(xù)出錯;當(dāng)程序彈飛到3字節(jié)指令上時,因它有2個操作數(shù),出錯的幾率更大。

  因此編程時應(yīng)盡量多采用單字節(jié)指令,并在關(guān)鍵的地方人為地插入一些單字節(jié)指令(NOP),或?qū)⒂行巫止?jié)指令重復(fù)書寫,這便是指令冗余。指令冗余無疑會降低微處理器的工作效率,但在絕大多數(shù)情況下,微處理器還不至于忙到不能多執(zhí)行幾條指令的程度。

  4.1.3 設(shè)置軟件陷阱

  在非程序區(qū)設(shè)置一些陷阱程序。正常運(yùn)行時不會進(jìn)入非程序區(qū),當(dāng)程序彈飛時就可能遇到這些陷阱,在陷阱處強(qiáng)令程序進(jìn)入初始狀態(tài),避免出現(xiàn)“死機(jī)”現(xiàn)象。例如對于MC5-51系列單片機(jī),可利用“LJMP #0000H”和“JB bit,aa”指令,在非程序區(qū)反復(fù)用 0200000002000000……H填滿。這樣不論程序計數(shù)器PC失控后指向哪一字節(jié),最后都能讓程序回到復(fù)位狀態(tài)。

  4.1.4 看門狗定時復(fù)位技術(shù)(WATCHDOG)

  WATCHDOG可這樣設(shè)置:本身獨立工作,基本不依賴于CPU,CPU在1個固定的時間間隔內(nèi)和該系統(tǒng)打1次交道,以表明系統(tǒng)工作正常并封鎖復(fù)位信號。當(dāng)CPU陷入死循環(huán)后,則因超過規(guī)定的時間間隔而啟動復(fù)位信號使系統(tǒng)復(fù)位。此外,前面介紹的監(jiān)視跟蹤定時器也屬于一種WATCHDOG。

  4.1.5 輸入輸出信號的抗干擾技術(shù)

  電梯串行通訊系統(tǒng)的輸入干擾主要來自于各層呼梯按鈕和轎內(nèi)***按鈕,由于干擾信號一般為持續(xù)時間很短的尖脈沖,因此在滿足采樣要求的前提下,將采樣延時一定時間(一般50ms以上),等輸入信號穩(wěn)定后再進(jìn)行取樣并輸入微處理器,即可消除輸入干擾。因為干擾是隨機(jī)的,所以對于輸出干擾,編程時可以采取重復(fù)輸出的辦法加以克服。即在數(shù)據(jù)或控制信號輸出后,以最短的周期重復(fù)輸出原來的信息,這樣當(dāng)電梯控制系統(tǒng)接受到一個被干擾錯誤信息后,還未來得及作出有效的反應(yīng),錯誤信息就已被糾正。當(dāng)然,如果對電梯控制系統(tǒng)的所有輸出信號都進(jìn)行重復(fù)輸出的話,難免會降低電梯控制系統(tǒng)的效率,但是,對于一些關(guān)鍵的輸出,如起動、開閘、減速、平層、下閘、停車、開關(guān)門等命令,采用重復(fù)輸出將可大大提高電梯控制系統(tǒng)的可靠性和安全性。

  4.2 提高軟件的可靠性

  雖然利用軟件可提高系統(tǒng)的可靠性,但是由于種種原因,軟件本身也會發(fā)生故障,因此應(yīng)采取措施,提高軟件的可靠性。

  4.2.1 程序分段和層次結(jié)構(gòu)

  在進(jìn)行程序結(jié)構(gòu)設(shè)計時,將程序分成若干具有獨立功能的子程序塊。各子程序可單獨也可和其它程序一起使用,各子程序之間通過一個固定的通訊區(qū)和一些指定的單元進(jìn)行通訊。每個程序塊能分別進(jìn)行調(diào)整而不影響其它程序塊。這些各自獨立的程序塊在連接時,盡量減少程序之間的依賴關(guān)系,按層次排列,而各程序塊具有獨立功能,結(jié)構(gòu)簡單,易于修改和擴(kuò)充,故障少。

  例如,對于CANBUS通訊程序,就可分成下面3個模塊進(jìn)行設(shè)計和調(diào)試。①PCA82C200發(fā)送接收數(shù)據(jù)時能否產(chǎn)生中斷。調(diào)試時通過仿真器讀取 PCA82C200中斷寄存器的中斷字即可。②通訊程序能否正常執(zhí)行設(shè)定的命令。這牽涉到設(shè)定命令的具體情況,需分情況作出相應(yīng)的判斷。③通訊程序錯誤處理能力和解決總線沖突能力的測試。這可以通過故意設(shè)置通訊錯誤和頻繁通訊來檢驗。

  4.2.2 提高程序的可測試性設(shè)計

  軟件故障具有和硬件不同的特點,軟件故障往往是在設(shè)計階段,由人為錯誤或者在運(yùn)行初期輸入程序時的操作錯誤而引起。這種存在程序中的錯誤,必須通過反復(fù)測試才能發(fā)現(xiàn)。因此,必須進(jìn)行提高軟件可測試性設(shè)計,使軟件便于測試。

  分享到|

非常好我支持^.^

(1) 100%

不好我反對

(0) 0%

( 發(fā)表人:葉子 )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?