專利名稱:一種微控制器uart通信中斷的自動恢復(fù)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及UART通信控制領(lǐng)域,特別是一種微控制器UART通信中斷的自動恢復(fù) 方法。
背景技術(shù):
目前微控制器MCU的監(jiān)控糾錯方式主要有看門狗、設(shè)置軟件陷阱、應(yīng)用冗余指令 等方法,其主要是針對軟件跑飛的現(xiàn)象進行控制。而在家用電器產(chǎn)品的實際應(yīng)用過程中,由 于電網(wǎng)波動的不確定性,以及部分家用電器產(chǎn)品本身非隔離電源的實際情況,以及個別MCU 存在最大的復(fù)位電壓低于其最低正常工作電壓的情況,導(dǎo)致家用電器產(chǎn)品在工作過程中, 出現(xiàn)MCU內(nèi)部特殊寄存器的數(shù)據(jù)被干擾而改變的現(xiàn)象,導(dǎo)致MCU的UART通信失效,從而引 起操作面板操作失效,甚至引起電器損壞。
發(fā)明內(nèi)容
本發(fā)明提供一種微控制器UART通信中斷的自動恢復(fù)方法,以解決現(xiàn)有技術(shù)中對 UART通信中斷不能自動恢復(fù)導(dǎo)致電器損壞的技術(shù)問題。本發(fā)明采用的技術(shù)方案如下一種微控制器UART通信中斷的自動恢復(fù)方法,包括(1)在微控制器中定時更新需要發(fā)送的數(shù)據(jù)內(nèi)容;(2)在微控制器中定時保存需要發(fā)送的數(shù)據(jù)內(nèi)容;(3)把保存需要發(fā)送的數(shù)據(jù)內(nèi)容放在UART發(fā)送數(shù)據(jù)緩沖寄存器中后,初始化設(shè)置 UART正常通信的相關(guān)特殊寄存器。其中步驟(1)定時更新需要發(fā)送的數(shù)據(jù)內(nèi)容和步驟(2)定時保存需要發(fā)送的數(shù)據(jù) 內(nèi)容所在的內(nèi)存地址不同,但內(nèi)容一致。作為一種優(yōu)選方案,所述步驟(3)為定時執(zhí)行。作為一種優(yōu)選方案,所述步驟(3)在微控制器MCU因受外界電壓干擾而出現(xiàn)UART 相關(guān)特殊寄存器內(nèi)容被改變,從而導(dǎo)致通信失效時執(zhí)行。作為進一步的優(yōu)選方案,微控制器對UART特殊寄存器進行監(jiān)控,當(dāng)監(jiān)控到UART特 殊寄存器異常時,執(zhí)行步驟(3)。作為進一步的優(yōu)選方案,所述步驟(1)和步驟⑵的定時間隔為10毫秒。作為進一步的優(yōu)選方案,所述步驟(3)的定時間隔為1秒。本發(fā)明的UART通信失效后自動恢復(fù)的軟件糾錯方法可以大大提高MCU通信的抗 干擾能力,確保電器系統(tǒng)安全可靠的工作。
圖1為本發(fā)明本實施例主程序調(diào)用通信失效后自動恢復(fù)的軟件糾錯程序流程圖;圖2為本發(fā)明本實施例通信失效后自動恢復(fù)的軟件糾錯程序流程圖。
具體實施例方式下面結(jié)合附圖和具體實施例對本發(fā)明進行進一步詳細(xì)的說明。本實施例是以該軟件設(shè)計方法應(yīng)用在電磁爐產(chǎn)品上為例進行說明,作為MCUUART 通信失效后自動恢復(fù)的軟件糾錯設(shè)計方法,確保使系統(tǒng)工作的MCU通信失效后,能夠自動 重啟UART通信,保證電磁爐產(chǎn)品的核心功率器件不損壞和安全。如圖1所示,電磁爐微控制器MCU在主程序循環(huán)體中每隔10ms調(diào)用一次發(fā)送數(shù)據(jù) 更新子程序和發(fā)送數(shù)據(jù)保存子程序,每隔Is調(diào)用一次UART通信初始化自動恢復(fù)子程序,當(dāng) 調(diào)用了 UART通信初始化自動恢復(fù)子程序,不管UART通信有沒有受到干擾而出現(xiàn)通信中斷, 都能確保系統(tǒng)通信正常,相當(dāng)于每隔Is重新啟動一次UART通信,啟動后發(fā)送的數(shù)據(jù)為當(dāng)前 已經(jīng)更新過的發(fā)送數(shù)據(jù),這樣一來,既不影響正常通信,又能確保UART因干擾而出現(xiàn)通信 中斷時自動重新啟動。如圖2所示,主程序調(diào)用UART通信初始化自動恢復(fù)子程序后,自動恢復(fù)子程序首 先把保存過的發(fā)送更新數(shù)據(jù)放到UART發(fā)送數(shù)據(jù)緩沖寄存器中,然后初始化設(shè)置UART相關(guān) 特殊寄存器,并置發(fā)送中斷使能標(biāo)志,UART發(fā)送中斷程序開始工作,并發(fā)送當(dāng)前更新過的正 常數(shù)據(jù)。
權(quán)利要求
一種微控制器UART通信中斷的自動恢復(fù)方法,包括(1)在微控制器中定時更新需要發(fā)送的數(shù)據(jù)內(nèi)容;(2)在微控制器中定時保存需要發(fā)送的數(shù)據(jù)內(nèi)容;其特征在于,所述方法還包括(3)把保存需要發(fā)送的數(shù)據(jù)內(nèi)容放在UART發(fā)送數(shù)據(jù)緩沖寄存器中后,初始化設(shè)置UART正常通信的相關(guān)特殊寄存器。
2.根據(jù)權(quán)利要求1所述的微控制器UART通信中斷的自動恢復(fù)方法,其特征在于,所述 步驟(3)為定時執(zhí)行。
3.根據(jù)權(quán)利要求1所述的微控制器UART通信中斷的自動恢復(fù)方法,其特征在于,所述 步驟(3)在微控制器MCU因受外界電壓干擾而出現(xiàn)UART相關(guān)特殊寄存器內(nèi)容被改變,從而 導(dǎo)致通信失效時執(zhí)行。
4.根據(jù)權(quán)利要求3所述的微控制器UART通信中斷的自動恢復(fù)方法,其特征在于,微控 制器對UART特殊寄存器進行監(jiān)控,當(dāng)監(jiān)控到UART特殊寄存器異常時,執(zhí)行步驟(3)。
5.根據(jù)權(quán)利要求1所述的微控制器UART通信中斷的自動恢復(fù)方法,其特征在于,所述 步驟⑴和步驟(2)的定時間隔為10毫秒。
6.根據(jù)權(quán)利要求2所述的微控制器UART通信中斷的自動恢復(fù)方法,其特征在于,所述 步驟(3)的定時間隔為1秒。
全文摘要
本發(fā)明涉及UART通信控制領(lǐng)域,特別是一種微控制器UART通信中斷的自動恢復(fù)方法,包括(1)在微控制器中定時更新需要發(fā)送的數(shù)據(jù)內(nèi)容;(2)在微控制器中定時保存需要發(fā)送的數(shù)據(jù)內(nèi)容;(3)把保存需要發(fā)送的數(shù)據(jù)內(nèi)容放在UART發(fā)送數(shù)據(jù)緩沖寄存器中后,初始化設(shè)置UART正常通信的相關(guān)特殊寄存器。本發(fā)明的UART通信失效后自動恢復(fù)的軟件糾錯方法可以大大提高MCU通信的抗干擾能力,確保電器系統(tǒng)安全可靠的工作。
文檔編號G06F11/00GK101853187SQ20101016388
公開日2010年10月6日 申請日期2010年4月30日 優(yōu)先權(quán)日2010年4月30日
發(fā)明者李新峰, 毛宏建, 謝波 申請人:美的集團有限公司