在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于MCS-96單片機控制系統(tǒng)的程序失控防范

            基于MCS-96單片機控制系統(tǒng)的程序失控防范

            作者: 時間:2012-02-15 來源:網(wǎng)絡(luò) 收藏

            1 引言

              單片機構(gòu)成控制系統(tǒng)時,在滿足了各項控制功能后,為了使系統(tǒng)投入實用,必須提高其可靠性。但是,由于工業(yè)現(xiàn)場環(huán)境惡劣,常會受到電磁設(shè)備啟動、停止、電源波形畸變等因素的影響,各種干擾不可避免,若只靠避錯設(shè)計很難滿足要求,而且也很難確保這些硬件萬無一失,必須為系統(tǒng)配備容錯功能。所以,抗干擾設(shè)計、容錯設(shè)計(包括故障檢測與診斷技術(shù))和功能設(shè)計成為單片機系統(tǒng)設(shè)計缺一不可的重要內(nèi)容。

              在工業(yè)現(xiàn)場,大多數(shù)情況下干擾不會造成單片機系統(tǒng)硬件的損壞,主要是對軟件運行造成不良影響。其主要特征是:指令碼或數(shù)字碼受干擾,使程序的執(zhí)行出現(xiàn)錯誤。最典型的錯誤有:1)CPU中的程序計數(shù)器PC的值發(fā)生跳變,使程序跑飛,轉(zhuǎn)去執(zhí)行一個毫無意義或錯誤的程序段,使系統(tǒng)出現(xiàn)混亂或失控,嚴重時可能會造成設(shè)備損壞,甚至危及人身安全;2)輸出口被失控程序非法操作,使控制量發(fā)生波動或使系統(tǒng)出現(xiàn)“死機”;3)RAM區(qū)域受干擾,造成數(shù)據(jù)被沖毀,使系統(tǒng)出現(xiàn)運行不正常,輸出出錯。下面以MCS-96系列單片機所組成的實時控制系統(tǒng)為例,提出一些有效、實用的防范措施。

            2 捕捉跑飛程序的方法

            2.1 

              單片機最易受干擾的是內(nèi)部程序計數(shù)器——PC的值。在受到強干擾時,PC的值被改變,改變后的值是隨機的不確定值。這可使CPU將程序從正確的位置跑飛到ROM中的任何一個地址,當PC值飛到用戶工作程序ROM區(qū)內(nèi)時,可采用的方法使程序走上正軌。具體方法是:1)在一些對程序流向起決定性作用的指令,如SJMP、LJMP、LCALL、CALL等之前插入幾條NOP指令;2)在某些對系統(tǒng)工作至關(guān)重要的指令,如中斷、堆棧等之前插入幾條NOP 指令;3)在程序中每隔若干條指令,插入一條NOP指令;4)在多字節(jié)指令前插入一條或兩條NOP指令。

              由于單片機指令大多數(shù)為單字節(jié)指令,在一個程序中,其中斷和堆棧指令使用的次數(shù)也很有限,因此,采用這種方法增加存儲單元的數(shù)量不會太多。區(qū),如EPROM中未被使用的空間或程序中的數(shù)據(jù)表格區(qū)時,常采用軟件陷阱的方法來使程序納入正軌。

              所謂軟件陷阱,就是一條引導指令,利用這條指令強行將程序引向一個指定的地址,在指定的地址上有一個專門的出錯處理程序。假設(shè)該程序的入口標號為EPROM,則軟件陷阱由以下3條指令構(gòu)成:

              NOP
              NOP
              LJMP  ERROR

              該軟件陷阱除了安裝在未使用的用戶EPROM區(qū)外,還常常安置在未使用的中斷向量區(qū)、表格區(qū)的最后和程序的斷裂點后(斷裂點是指象LJMP、SJMP、RET等類指令)。

            2.3 看門狗(WATCHDOGTIMER)

              當跑飛的程序既沒有落入軟件陷阱,又沒有遇到冗余指令,而是在用戶程序之間或用戶根本未使用的地址空間內(nèi)跳來跳去,自動形成一個死循環(huán),解決這一問題的辦法是利用軟件啟動單片機的監(jiān)視定時器,俗稱“看門狗”。當出現(xiàn)上述情況時,利用它來使系統(tǒng)復(fù)位。這種方法簡單、直觀,只需不超過64K狀態(tài)周期(16ms)的時間(用12M晶振時),計算機就可恢復(fù)正常。但此時,一定要通過軟件每隔一定時間(如15ms)使WATCHDOG TIMER復(fù)位一次。


            上一頁 1 2 3 下一頁

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉