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