基于瑞薩QzROM單片機(jī)的EFT抗干擾措施
3. 優(yōu)化程序結(jié)構(gòu)設(shè)計(jì)
•指令冗余:
(1)關(guān)鍵位置的多字節(jié)指令之后插入2個(gè)以上的單字節(jié)指令(NOP),避免后面的指令被當(dāng)作操作數(shù);
(2)跳轉(zhuǎn)指令(JMP,JSR,BRA)和返回指令(RTI,RTS)前插入兩條NOP,避免程序亂飛。
•軟件陷阱:
(1)未用中斷向量
指向一個(gè)錯(cuò)誤處理程序,防止干擾激活未用中斷使程序跑飛;
(2)在未使用的程序空間,ROM中存儲(chǔ)表格后面,程序區(qū)重要的子程序之間加入跑飛處理程序:
Subroutine: ;子程序
RTS
NOP
NOP
B RunAway
RunAway: ;跑飛處理子程序
RTS
•結(jié)合軟件使用看門(mén)狗,見(jiàn)圖6:
(1)MCU正常工作時(shí),定時(shí)給看門(mén)狗定時(shí)器初始化;(2)當(dāng)MCU跑飛時(shí),由于沒(méi)有在看門(mén)狗定時(shí)周期內(nèi)初始化,看門(mén)狗定時(shí)器計(jì)數(shù)溢出產(chǎn)生復(fù)位信號(hào),使MCU復(fù)位;(3)看門(mén)狗初始化設(shè)置:①無(wú)中斷使用時(shí),主程序循環(huán)中初始化看門(mén)狗;②使用中斷,在中斷程序中刷新某一變量,主程序中判斷此變量變化情況,進(jìn)而執(zhí)行初始化看門(mén)狗操作,并初始化此變量;③多個(gè)中斷的情況,根據(jù)相互的關(guān)系任選一中斷刷新變量,主程序作判斷。
措施總結(jié)
• 優(yōu)化PCB布線:提升抗干擾性能最有效的措施——設(shè)計(jì)開(kāi)發(fā)優(yōu)先考慮,優(yōu)先級(jí)最高。
• I/O處理:MCU使用的推薦配置——使用推薦配置獲得最佳性能。
• 軟件措施:可以部分解決干擾問(wèn)題——補(bǔ)救方法,例如量產(chǎn)后降低成本發(fā)現(xiàn)的問(wèn)題,推薦重新考慮前兩種方法。
評(píng)論