本應(yīng)用說(shuō)明介紹了在噪聲干擾較重的應(yīng)用中使用 S08PT60、FL16 和 AC60 的 MCU 器件時(shí)如何實(shí)現(xiàn)強(qiáng)大的軟件。在一般情況下,軟件設(shè)計(jì)無(wú)法改變將噪聲耦合到系統(tǒng)中的物理介質(zhì),也無(wú)法降低外部源產(chǎn)生的噪聲的絕對(duì)幅度。但是,軟件必須能夠識(shí)別特定事件,如果它是由噪聲源觸發(fā)的誤報(bào),或者是正常的驅(qū)動(dòng)事件,然后對(duì)相應(yīng)的操作做出明智的決定。例如,如果請(qǐng)求的操作存在任何不確定性,則軟件不得打開 power control stage。良好的防御性軟件設(shè)計(jì)是提高整體性能、系統(tǒng)保護(hù)和噪聲環(huán)境下運(yùn)行穩(wěn)定性的關(guān)鍵因素之一。
這里說(shuō)明了大多數(shù)微波爐應(yīng)用使用的典型軟件設(shè)計(jì),以展示如何在實(shí)際案例中應(yīng)用以下軟件技術(shù)。每個(gè)主題還包括設(shè)備 PT60、FL16 和 AC60 的示例代碼,作為快速入門指南,以幫助用戶更快地采用這些技術(shù)。
一個(gè)好的防御軟件推薦使用以下軟件技術(shù)。
? 啟用 Watch-Dog 以避免代碼失控
? 定期刷新數(shù)據(jù)方向寄存器
? 填充未使用的內(nèi)存以避免代碼失控
? 定義所有中斷向量,甚至包括未使用的中斷向量
? 選擇鎖頻環(huán) (FLL) 接合模式
? 始終重新確認(rèn)邊緣觸發(fā)的事件
? 在輸出端口上啟用轉(zhuǎn)換速率控制
? 啟用輸入毛刺濾波器(PT60 內(nèi)置功能)
當(dāng)應(yīng)用軟件無(wú)法按預(yù)期執(zhí)行時(shí),例如,當(dāng)瞬態(tài)噪聲注入 MCU 時(shí),正在運(yùn)行的軟件跳轉(zhuǎn)到意外的內(nèi)存位置或進(jìn)入無(wú)限循環(huán),從而強(qiáng)制系統(tǒng)重置。為了防止在啟用 WDOG 計(jì)時(shí)器時(shí)從 WDOG 計(jì)時(shí)器重置系統(tǒng),應(yīng)用程序軟件必須定期重置 WDOG 計(jì)數(shù)器。如果應(yīng)用程序丟失并且無(wú)法在 WDOG 計(jì)數(shù)器超時(shí)之前重置 WDOG 計(jì)數(shù)器,則會(huì)生成系統(tǒng)重置以強(qiáng)制系統(tǒng)返回到已知的起點(diǎn)。建議將 WDOG 刷新routine 而不是 sub-routines 和 interrupt routines。WDOG 函數(shù)在主循環(huán)開始時(shí)初始化,WDOG 計(jì)數(shù)器在 forever 循環(huán)內(nèi)定期重置。WDOG 重置代碼由宏 __RESET_WATCHDOG() 定義。