《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > SST89E58RD2單片機(jī)在增強(qiáng)系統(tǒng)抗干擾性能方面的應(yīng)用
SST89E58RD2單片機(jī)在增強(qiáng)系統(tǒng)抗干擾性能方面的應(yīng)用
摘要: SST公司的FlashFlex51系列單片機(jī)具有內(nèi)部看門狗和片內(nèi)Flash存儲(chǔ)器,可以用于解決單片機(jī)程序跑飛和重要數(shù)據(jù)的掉電存儲(chǔ)問題,。本文是采用SST公司的SST89E58RD2單片機(jī)來解決視頻字符疊加系統(tǒng)在惡劣環(huán)境下程序跑飛和疊加字符丟失的問題,。
Abstract:
Key words :

  0 引言

  以單片機(jī)為核心的儀器儀表的工作穩(wěn)定性和可靠性往往受工作環(huán)境的影響很大。在電磁干擾較弱(如室內(nèi)))時(shí),,可靠性和穩(wěn)定性往往容易達(dá)到應(yīng)用要求,然而,,在室外,,尤其是工作環(huán)境較惡劣的情況下,就有可能導(dǎo)致儀器儀表工作不正?;蚴ъ`,。因此,利用單片機(jī)自身的優(yōu)勢和豐富的外圍模塊來提高儀器儀表的抗干擾能力,,具有十分重要的現(xiàn)實(shí)意義,。

  目前,解決單片機(jī)程序跑飛主要利用開門狗來實(shí)現(xiàn),。解決掉電數(shù)據(jù)保護(hù)功能時(shí),,數(shù)據(jù)存儲(chǔ)介質(zhì)常選用兩類:一類是EEPROM,但寫入時(shí)間較長,;另一類是帶有后備電池的小容量SRAM來構(gòu)成非易失存儲(chǔ)器,,這種方法寫入速度快,,但增加了電路的復(fù)雜性。

  SST公司的FlashFlex51系列單片機(jī)具有內(nèi)部看門狗和片內(nèi)Flash存儲(chǔ)器,,可以用于解決單片機(jī)程序跑飛和重要數(shù)據(jù)的掉電存儲(chǔ)問題,。本文是采用SST公司的SST89E58RD2單片機(jī)來解決視頻字符疊加系統(tǒng)在惡劣環(huán)境下程序跑飛和疊加字符丟失的問題。

  1 視頻字符疊加系統(tǒng)的問題分析

  視頻字符疊加系統(tǒng)在室內(nèi)環(huán)境下的字符疊加效果一般都可以滿足應(yīng)用要求,。然而,,將該系統(tǒng)應(yīng)用于室外電磁干擾較為嚴(yán)重的環(huán)境時(shí),疊加系統(tǒng)往往會(huì)出現(xiàn)疊加字符消失,、系統(tǒng)與上位機(jī)通信不正常等問題,。通過對該問題的分析研究發(fā)現(xiàn),單片機(jī)程序跑飛和疊加系統(tǒng)中的字符疊加芯片在受到外界干擾時(shí),,其視頻存儲(chǔ)器內(nèi)容被清除是導(dǎo)致系統(tǒng)不能正常運(yùn)行的真正原因,。由于系統(tǒng)的硬件結(jié)構(gòu)一般不便于更改,因此,,找到一款與目前AT89C51兼容且能解決系統(tǒng)不穩(wěn)定的單片機(jī)是解決問題的最好方法,。在對AT89C51單片機(jī)和其它51單片機(jī)進(jìn)行對比分析后,本文選擇了SST89E58RD2單片機(jī)來解決系統(tǒng)穩(wěn)定性和可靠性的問題,。

  2 SST89E5 8RD2簡介

  2.1 SST89E58RD2的主要特性

  SST89E58RD2單片機(jī)可兼容80C51系列單片機(jī),,且內(nèi)置超級FLASH存儲(chǔ)器,5 V工作電壓下的工作頻率為0~40 MHz,,與現(xiàn)行的80C52系列單片機(jī)硬件PIN-TO-PIN完全兼容,,同時(shí)軟件、開發(fā)工具也完全兼容,;SST89E58RD2帶有1 K字節(jié)的內(nèi)部RAM,,并包含32 K字節(jié)的基本存儲(chǔ)塊和8K字節(jié)二級存儲(chǔ)塊的超級FLASH;具有ISP (在系統(tǒng)編程)和IAP(在應(yīng)用中編程)功能,;芯片內(nèi)有SPI(串行外圍接口)和增強(qiáng)型UART,、10個(gè)中斷源、四個(gè)中斷優(yōu)先級以及可編程看門狗定時(shí)器(WDT),;兼容TTL和CMOS邏輯電平,;內(nèi)含PCA(可編程計(jì)數(shù)器陣列),具有PWM和捕獲,、比較功能,;可實(shí)現(xiàn)掉電檢測。

  2.2 看門狗定時(shí)器

  SST89E58RD2內(nèi)置的可編程看門狗定時(shí)器可用于程序死循環(huán)或程序運(yùn)行不正常(如程序跑飛)時(shí)的自動(dòng)恢復(fù),。為保護(hù)系統(tǒng)因程序死循環(huán)等引起的運(yùn)行不正常,,用戶程序需要在其定義的周期內(nèi)刷新看門狗定時(shí)器,否則,,當(dāng)WDRE(看門狗復(fù)位)有效時(shí),,將觸發(fā)內(nèi)部硬件復(fù)位。WDT(看門狗定時(shí)器)用系統(tǒng)時(shí)鐘作為基準(zhǔn)時(shí)鐘,,因此,,嚴(yán)格的說,看門狗定時(shí)器應(yīng)稱為看門狗計(jì)數(shù)器,。WDT寄存器每344064個(gè)系統(tǒng)時(shí)鐘加1,。看門狗數(shù)據(jù)/重載寄存器(WDTD)作為WDT的重載寄存器,。WDT的結(jié)構(gòu)框圖如圖1所示,。看門狗可通過兩個(gè)特殊寄存器WDTC(看門狗定時(shí)器控制寄存器)和WDTD工作,。在空閑模式下,,WDT運(yùn)行被臨時(shí)掛起,并在接收到中斷信號后從空閑模式恢復(fù)為正常工作模式,。WDT的計(jì)數(shù)周期計(jì)算公式如下:

周期=(255-WDTD)x344064x1/Fclk

  式中,,WDTD是放入WDTD寄存器的重載值,F(xiàn)clk是系統(tǒng)的晶振頻率,。

WDT的結(jié)構(gòu)框圖

  3 FLASH存儲(chǔ)器編程

  SST89E58RD2單片機(jī)可使用IAP模式對其內(nèi)部的FLASH存儲(chǔ)器進(jìn)行擦除或?qū)懭霐?shù)據(jù),。當(dāng)SST89E58RD2單片機(jī)的CPU進(jìn)入IAP模式后,其FLASH存儲(chǔ)器的兩個(gè)區(qū)中的一個(gè)可在擦除數(shù)據(jù)或?qū)懭霐?shù)據(jù)的同時(shí),,另一區(qū)的用戶代碼仍可以被CPU執(zhí)行,。即在內(nèi)部FLASH存儲(chǔ)器寫人數(shù)據(jù)的同時(shí),CPU可以從外部存儲(chǔ)器載入代碼,。位于單片機(jī)內(nèi)部的特殊功能寄存器SFST,、SFCM、SFAL,、SFAH,、SFDT和SFCF用于控制和管理FLASH的擦除和編程執(zhí)行。在IAP模式下,,CPU內(nèi)核和FLASH控制單元將關(guān)閉外部時(shí)鐘,,內(nèi)部晶振提供編程和擦除操作的時(shí)序參考。內(nèi)部晶振只有在被請求時(shí)才打開,,而當(dāng)FLASH操作完成后立刻被關(guān)閉,。CPU要運(yùn)行于IAP模式,必須使能IAP使能位(SFCF[6]),,否則,,F(xiàn)LASH的編程命令將不起作用。所有的IAP命令只有在IAP模式才能執(zhí)行,,但當(dāng)被選擇的存儲(chǔ)器區(qū)域已被安全鎖使能時(shí),,IAP命令將無法執(zhí)行,。編程命令向存儲(chǔ)器塊寫入新數(shù)據(jù)時(shí),必須保證該存儲(chǔ)器塊處于被擦除狀態(tài),,即其值為0xFF,。如果存儲(chǔ)器塊沒有被擦除,則應(yīng)用合適的擦除命令進(jìn)行擦除操作,。尤其不能在CPU正載入代碼的存儲(chǔ)器區(qū)域進(jìn)行編程或擦除操作,,這將導(dǎo)致不可預(yù)測的編程并可能導(dǎo)致編程數(shù)據(jù)損毀。

 

  3.1 片擦除

  片擦除命令可擦除FLAH存儲(chǔ)器的所有數(shù)據(jù),。該命令只有在EA為0時(shí)才有效,,其執(zhí)行操作流程如圖2所示。

執(zhí)行操作流程

  3.2 塊擦除

  塊擦除命令可擦除FLASH存儲(chǔ)器塊(塊0和塊1)中任何一塊的所有數(shù)據(jù),,塊的選擇可通過設(shè)置SFAH寄存器的值來實(shí)現(xiàn),。當(dāng)SFAH[7]為0時(shí),選擇塊0,;當(dāng)SFAH[7:4]為E,,選擇塊時(shí)1。塊擦除的操作程序如圖3所示,。

塊擦除的操作程序

  3.3 扇區(qū)擦除

  扇區(qū)擦除操作可擦除扇區(qū)的所有信息,,扇區(qū)的大小是128字節(jié),對哪個(gè)扇區(qū)進(jìn)行擦除操作由SFAH和SFAL寄存器決定,,其執(zhí)行操作程序框圖4所示,。

執(zhí)行操作程序框圖

  3.4 字節(jié)編程

  字節(jié)編程命令用于編程一個(gè)字節(jié)的數(shù)據(jù),其編程地址由SFAH和SFAL決定,,編程的數(shù)據(jù)存于SFDT存儲(chǔ)器,,字節(jié)編程的流程框圖如圖5所示。

字節(jié)編程的流程框圖

  4 解決方案

  在對字符疊加系統(tǒng)出現(xiàn)疊加字符丟失和程序跑飛問題進(jìn)行深入分析后發(fā)現(xiàn),,影響系統(tǒng)正常工作的原因是字符疊加芯片的復(fù)位腳被干擾信號復(fù)位從而導(dǎo)致視頻疊加信息的丟失,;或者是由于干擾單片機(jī)的PC指針超出了應(yīng)用程序的范圍而導(dǎo)致程序無法正常運(yùn)行。為增強(qiáng)視頻字符疊加系統(tǒng)的抗干擾能力,,可以利用看門狗功能使單片機(jī)在程序跑飛的情況下自動(dòng)恢復(fù)正常,。其實(shí)現(xiàn)原理是看門狗定時(shí)器在計(jì)數(shù)到設(shè)定值時(shí)產(chǎn)生內(nèi)部復(fù)位信號,使單片機(jī)重新運(yùn)行用戶程序,,以對視頻疊加的字符信息定時(shí)進(jìn)行刷新,。保證疊加的字符信息在丟失后仍能及時(shí)的疊加到視頻上。其改進(jìn)后的程序流程如圖6所示,。

改進(jìn)后的程序流程

  5 結(jié)束語

  通過本文提出的方案可在不改變硬件的情況下,,通過充分利用SST89E58RD2單片機(jī)的內(nèi)部資源,成功解決視頻疊加信息丟失和程序跑飛的問題,以增強(qiáng)視頻字符疊加系統(tǒng)的抗干擾能力,。本文所提出的方案目前得到了成功的應(yīng)用,。這對利用單片機(jī)內(nèi)部資源來增強(qiáng)系統(tǒng)的抗干擾能力,具有非常重要的實(shí)用價(jià)值,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。