




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片機(jī)常用軟件抗干擾技術(shù)的研究
1系統(tǒng)的可靠性設(shè)計(jì)在單次機(jī)制設(shè)計(jì)中,中斷設(shè)計(jì)是一項(xiàng)系統(tǒng)工程,應(yīng)在軟件、硬件和結(jié)構(gòu)設(shè)計(jì)方面進(jìn)行全面考慮。單片機(jī)系統(tǒng)抗干擾設(shè)計(jì)的根本是硬件系統(tǒng)的可靠性設(shè)計(jì),而軟件系統(tǒng)的可靠性設(shè)計(jì)起到抑制外來(lái)干擾的作用。在進(jìn)行單片機(jī)系統(tǒng)設(shè)計(jì)時(shí),應(yīng)做到在提高硬件系統(tǒng)抗干擾能力的同時(shí),采用適當(dāng)?shù)能浖垢蓴_措施。軟件抗干擾設(shè)計(jì)因其設(shè)計(jì)靈活、節(jié)省硬件資源、可靠性好越來(lái)越受到重視。軟件抗干擾設(shè)計(jì)的技術(shù)主要有:軟件陷阱捕獲、軟件看門狗、開(kāi)機(jī)自檢、指令冗余、輸出端口刷新等技術(shù)。通過(guò)軟件系統(tǒng)的可靠性設(shè)計(jì),可達(dá)到最大限度地降低干擾對(duì)系統(tǒng)工作的影響,確保單片機(jī)能及時(shí)發(fā)現(xiàn)因干擾導(dǎo)致程序出現(xiàn)的錯(cuò)誤,并使系統(tǒng)恢復(fù)到正常工作狀態(tài)或及時(shí)報(bào)警的目的。下面就以MCS-51單片機(jī)系統(tǒng)為例,介紹在進(jìn)行單片機(jī)系統(tǒng)設(shè)計(jì)時(shí)常用軟件抗干擾技術(shù)。2常用軟件干擾技術(shù)2.1捕獲程序錯(cuò)誤程序存儲(chǔ)器中的未使用區(qū)域一般全是0FFH,對(duì)MCS-51來(lái)說(shuō)是“MOVR7,A”的單字節(jié)指令,若因干擾導(dǎo)致單片機(jī)的程序計(jì)數(shù)器PC值被錯(cuò)置,程序一旦跑飛到這些非程序存儲(chǔ)空間,就會(huì)飛流直下,引起程序出錯(cuò)。捕獲是指將跑飛的程序引向指定位置,再進(jìn)行出錯(cuò)處理。這通常采用軟件陷阱實(shí)現(xiàn)。故要先合理設(shè)計(jì)陷阱,其次要將陷阱安排在適當(dāng)?shù)奈恢谩?.1.1子程序入口地址的處理軟件陷阱是指用來(lái)將捕獲的跑飛程序引向程序“跑飛”處理子程序入口地址的指令。這通常用2條空操作和無(wú)條件跳轉(zhuǎn)指令實(shí)現(xiàn),無(wú)條件跳轉(zhuǎn)指令指向程序“跑飛”處理子程序的入口地址。其具體實(shí)現(xiàn)代碼為:NOPNOPLJMPFLY2.1.2軟件陷阱要求對(duì)未使用的程序存儲(chǔ)器區(qū)域,通常在一些固定地址加上5個(gè)字節(jié)的軟件陷阱指令,如果程序飛到這些未用區(qū)域,就會(huì)執(zhí)行無(wú)條件跳轉(zhuǎn)指令,轉(zhuǎn)到相應(yīng)的程序出錯(cuò)“跑飛”處理子程序。其具體實(shí)現(xiàn)為在源程序的末尾用起始地址偽指令加上如下軟件陷阱指令:ORG0600H(或07FBH)NOP;軟件陷阱NOPLJMPFLY對(duì)中斷向量區(qū)后、表格區(qū)后、各程序段之間(如子程序之間及一段處理程序完成后)及一頁(yè)的末尾處加上軟件陷阱,效果會(huì)更好。其具體實(shí)現(xiàn)的一段程序例子為:TAB:;表格區(qū)DB…DB…NOP;軟件陷阱NOPLJMPFLYDSP:…;顯示子程序RETNOP;軟件陷阱NOPLJMPFLYDLY:…;延時(shí)子程序RETNOP;軟件陷阱NOPLJMPFLY…FLY:…;“跑飛”處理子程序,實(shí)現(xiàn)單片機(jī)復(fù)位NOPNOPLJMP0000H考慮到程序存貯器的容量,一般在1k空間設(shè)置2~3個(gè)軟件陷阱即可進(jìn)實(shí)現(xiàn)有效捕獲。2.2硬件復(fù)位系統(tǒng)程序程序運(yùn)行過(guò)程中,有時(shí)由于某種噪聲干擾的影響,會(huì)出現(xiàn)死循環(huán)現(xiàn)象。這通常采用“看門狗”技術(shù)使程序脫離死循環(huán)?!翱撮T狗”技術(shù)是通過(guò)不斷檢測(cè)程序循環(huán)運(yùn)行時(shí)間,若發(fā)現(xiàn)程序循環(huán)時(shí)間超過(guò)最大循環(huán)運(yùn)行時(shí)間,則認(rèn)為系統(tǒng)陷入死循環(huán),需進(jìn)行出錯(cuò)處理?!翱撮T狗”技術(shù)既可由硬件實(shí)現(xiàn),也可由軟件實(shí)現(xiàn)。在系統(tǒng)成本允許的情況下,應(yīng)選擇專門的看門狗芯片或片內(nèi)帶看門狗的單片機(jī)。若條件不允許,應(yīng)加軟件“看門狗”。其具體實(shí)現(xiàn)是在單片機(jī)中設(shè)置一個(gè)定時(shí)器,定時(shí)發(fā)出中斷信號(hào),中斷信號(hào)一經(jīng)發(fā)出,就表示程序已經(jīng)超時(shí)運(yùn)行,在用戶程序中及時(shí)安排清除定時(shí)器的計(jì)時(shí)數(shù)據(jù)。故程序正常運(yùn)行時(shí),不可能產(chǎn)生超時(shí)中斷信號(hào),反之,若出現(xiàn)死循環(huán),則會(huì)產(chǎn)生超時(shí)中斷信號(hào),單片機(jī)收到這個(gè)中斷信號(hào)后,進(jìn)入中斷處理程序,強(qiáng)迫單片機(jī)復(fù)位,重新執(zhí)行程序。其具體實(shí)現(xiàn)代碼為:ORG0000HLJMPSTARTORG000BH;軟件狗定時(shí)器T0中斷入口LJMPSWDGSTART:MOVSP,#50HMOVTMOD,#01H;T0為16位定時(shí)器方式MOVTL0,#78H;2MHz晶振,定時(shí)5msMOVTH0,#0ECHSETBET0;允許T0中斷SETBPT0;設(shè)T0中斷為高優(yōu)先級(jí)SETBTR0;啟動(dòng)T0計(jì)時(shí)SETBEA;CUP開(kāi)中斷MAIN:…;正常執(zhí)行程序代碼MOVTL0,#78H;喂狗防止看門狗定MOVTH0,#0ECH;時(shí)器T0溢出中斷…LJMPMAINSWDG:CLREA;禁止中斷MOVPSW,#00H;復(fù)位PSW寄存器MOVR0,#02HRST1:MOVSP,#50H;重置SP指針MOVDPTR,#RST;修改中斷返回地址PUSHDPL;返回地址低字節(jié)入棧PUSHDPH;返回地址高字節(jié)入棧RETIRST:DJNZR0,RST1;兩次執(zhí)行RETI指令確保系統(tǒng)恢復(fù)正常…;模擬硬件復(fù)位單片機(jī)狀態(tài)LJMP0000H;轉(zhuǎn)到復(fù)位入口處2.3硬件及軟件狀態(tài)檢測(cè)開(kāi)機(jī)自檢技術(shù)是指開(kāi)機(jī)后首先對(duì)單片機(jī)系統(tǒng)的硬件及軟件狀態(tài)進(jìn)行檢測(cè),一旦發(fā)現(xiàn)不正常,就進(jìn)行相應(yīng)處理。這種自檢技術(shù)通常包括對(duì)RAM,ROM,I/O口狀態(tài)等的檢測(cè)。2.3.1讀取必為0h,看ffh對(duì)RAM讀寫檢測(cè)是先向RAM單元寫入00H,讀出必為00H,再向其寫入FFH,讀出必為FFH。當(dāng)檢測(cè)到RAM單元讀寫出錯(cuò)時(shí),給出聲光等出錯(cuò)提示,等待處理。2.3.2單元或初單元所取得的成績(jī)對(duì)ROM檢測(cè)主要是檢查ROM單元內(nèi)容的校驗(yàn)和(將ROM的內(nèi)容逐一相加后得到的一個(gè)數(shù)值)。因ROM單元存放的是程序、常數(shù)和表格。一旦程序編寫完成,ROM中的內(nèi)容就確定了,故其校驗(yàn)和是惟一的。如ROM校驗(yàn)和出錯(cuò),給出聲光出錯(cuò)提示,等待處理。2.3.3熱容量的檢測(cè)進(jìn)行I/O口狀態(tài)檢測(cè)時(shí),首先要確定系統(tǒng)I/O口的待機(jī)狀態(tài),然后檢測(cè)單片機(jī)I/O口的待機(jī)狀態(tài)是否正常(如有無(wú)短路或開(kāi)路現(xiàn)象等)。如不正常,給出聲光等出錯(cuò)提示,等待處理。2.3.4擴(kuò)展接口電路故障診斷除了對(duì)上述單片機(jī)內(nèi)部資源進(jìn)行檢測(cè)外,對(duì)系統(tǒng)中的其他外圍擴(kuò)展接口電路如E2PROM等均應(yīng)通過(guò)軟件進(jìn)行檢測(cè),確定是否有故障。只有在各項(xiàng)檢測(cè)都正常的情況下,程序才能繼續(xù)執(zhí)行,否則提示出錯(cuò)。2.4指令協(xié)同檢測(cè)CPU取指令過(guò)程是先取操作碼,再取操作數(shù)。當(dāng)單片機(jī)的程序計(jì)數(shù)器PC值因干擾出錯(cuò)時(shí),程序可能亂飛到某雙字節(jié)指令,若取指令時(shí)刻落在操作數(shù)上,則會(huì)誤將操作數(shù)當(dāng)作操作碼,從而導(dǎo)致程序出錯(cuò)。若飛到3字節(jié)指令,出錯(cuò)的機(jī)率會(huì)更大。指令冗余技術(shù)是指在關(guān)鍵地方加上若干單字節(jié)指令,或?qū)⒂行巫止?jié)指令重寫。這通常是在雙字節(jié)或3字節(jié)指令后加上兩個(gè)以上NOP實(shí)現(xiàn)。這樣即使亂飛程序飛到操作數(shù)上,因空操作指令NOP的存在,避免了后續(xù)的指令被當(dāng)作操作數(shù)執(zhí)行,使程序自動(dòng)納入正軌。另外,在RETI,RET,LJMP,LCALL及JC等對(duì)系統(tǒng)流向起重要作用的指令前加上兩條NOP,也可將亂飛的程序納入正軌,確保這些重要指令的執(zhí)行。2.5輸出端口刷指令單片機(jī)的I/O口很容易因受到外部干擾而改變輸出口的狀態(tài)。在程序中周期性地添加輸出端口刷新指令,可降低干擾對(duì)輸出口狀態(tài)的影響。這一般通過(guò)在程序中指定RAM單元存儲(chǔ)輸出口當(dāng)時(shí)應(yīng)處狀態(tài),在程序運(yùn)行過(guò)程中根據(jù)這些RAM單元的內(nèi)容去刷新I/O口實(shí)現(xiàn)。3硬件與軟件抗干技術(shù)擾相結(jié)合的原則單片機(jī)軟件系統(tǒng)的可靠性設(shè)計(jì)的技術(shù)很多,在工程實(shí)踐中通常都是幾種抗干擾技術(shù)并用,互為補(bǔ)充完善來(lái)取得較好的抗干擾效果。從根本上來(lái)說(shuō),硬件抗干擾是主動(dòng)的,而軟件是抗干擾是被動(dòng)的。細(xì)致周到地分析干擾源,硬件與軟件抗干技術(shù)擾
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 房產(chǎn)代持合同協(xié)議書范本
- 汽車內(nèi)飾配件采購(gòu)合同
- 離婚后住房分配合同樣本
- 二手施工設(shè)備購(gòu)銷合同
- 家族遺產(chǎn)分配合同
- 借款擔(dān)保反擔(dān)保合同樣本
- 學(xué)校裝修合同案例
- 門面房屋買賣合同
- 太陽(yáng)能發(fā)電政策考核試卷
- 新材料在新能源領(lǐng)域的應(yīng)用考核試卷
- 中央2025年中國(guó)科協(xié)所屬單位招聘社會(huì)在職人員14人筆試歷年參考題庫(kù)附帶答案詳解-1
- 殯儀服務(wù)員職業(yè)技能鑒定考試題(附答案)
- 電動(dòng)葫蘆吊裝方案計(jì)劃
- 2025年山東電工電氣集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 造價(jià)咨詢服務(wù)方案進(jìn)度計(jì)劃安排及保證措施
- 2024年認(rèn)證行業(yè)法律法規(guī)及認(rèn)證基礎(chǔ)知識(shí) CCAA年度確認(rèn) 試題與答案
- 2024年濰坊工程職業(yè)學(xué)院高職單招(英語(yǔ)/數(shù)學(xué)/語(yǔ)文)筆試歷年參考題庫(kù)含答案解析
- JIS C9335-1-2014 家用和類似用途電器.安全性.第1部分:通用要求
- 甲溝炎治療的護(hù)理與預(yù)防
- 哈工大微電子工藝緒論01單晶硅
- 供養(yǎng)直系親屬有關(guān)文件
評(píng)論
0/150
提交評(píng)論