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