0 引言
以单片机为核心的仪器仪表的工作稳定性和可靠性往往受工作环境的影响很大。在电磁干扰较弱(如室内))时,可靠性和稳定性往往容易达到应用要求,然而,在室外,尤其是工作环境较恶劣的情况下,就有可能导致仪器仪表工作不正常或失灵。因此,利用单片机自身的优势和丰富的外围模块来提高仪器仪表的抗干扰能力,具有十分重要的现实意义。
目前,解决单片机程序跑飞主要利用开门狗来实现。解决掉电数据保护功能时,数据存储介质常选用两类:一类是EEPROM,但写入时间较长;另一类是带有后备电池的小容量SRAM来构成非易失存储器,这种方法写入速度快,但增加了电路的复杂性。
SST公司的FlashFlex51系列单片机具有内部看门狗和片内Flash存储器,可以用于解决单片机程序跑飞和重要数据的掉电存储问题。本文是采用SST公司的SST89E58RD2单片机来解决视频字符叠加系统在恶劣环境下程序跑飞和叠加字符丢失的问题。
1 视频字符叠加系统的问题分析
视频字符叠加系统在室内环境下的字符叠加效果一般都可以满足应用要求。然而,将该系统应用于室外电磁干扰较为严重的环境时,叠加系统往往会出现叠加字符消失、系统与上位机通信不正常等问题。通过对该问题的分析研究发现,单片机程序跑飞和叠加系统中的字符叠加芯片在受到外界干扰时,其视频存储器内容被清除是导致系统不能正常运行的真正原因。由于系统的硬件结构一般不便于更改,因此,找到一款与目前AT89C51兼容且能解决系统不稳定的单片机是解决问题的最好方法。在对AT89C51单片机和其它51单片机进行对比分析后,本文选择了SST89E58RD2单片机来解决系统稳定性和可靠性的问题。
2 SST89E5 8RD2简介
2.1 SST89E58RD2的主要特性
SST89E58RD2单片机可兼容80C51系列单片机,且内置超级FLASH存储器,5 V工作电压下的工作频率为0~40 MHz,与现行的80C52系列单片机硬件PIN-TO-PIN完全兼容,同时软件、开发工具也完全兼容;SST89E58RD2带有1 K字节的内部RAM,并包含32 K字节的基本存储块和8K字节二级存储块的超级FLASH;具有ISP (在系统编程)和IAP(在应用中编程)功能;芯片内有SPI(串行外围接口)和增强型UART、10个中断源、四个中断优先级以及可编程看门狗定时器(WDT);兼容TTL和CMOS逻辑电平;内含PCA(可编程计数器阵列),具有PWM和捕获、比较功能;可实现掉电检测。
2.2 看门狗定时器
SST89E58RD2内置的可编程看门狗定时器可用于程序死循环或程序运行不正常(如程序跑飞)时的自动恢复。为保护系统因程序死循环等引起的运行不正常,用户程序需要在其定义的周期内刷新看门狗定时器,否则,当WDRE(看门狗复位)有效时,将触发内部硬件复位。WDT(看门狗定时器)用系统时钟作为基准时钟,因此,严格的说,看门狗定时器应称为看门狗计数器。WDT寄存器每344064个系统时钟加1。看门狗数据/重载寄存器(WDTD)作为WDT的重载寄存器。WDT的结构框图如图1所示。看门狗可通过两个特殊寄存器WDTC(看门狗定时器控制寄存器)和WDTD工作。在空闲模式下,WDT运行被临时挂起,并在接收到中断信号后从空闲模式恢复为正常工作模式。WDT的计数周期计算公式如下:
周期=(255-WDTD)x344064x1/Fclk
式中,WDTD是放入WDTD寄存器的重载值,Fclk是系统的晶振频率。
3 FLASH存储器编程
SST89E58RD2单片机可使用IAP模式对其内部的FLASH存储器进行擦除或写入数据。当SST89E58RD2单片机的CPU进入IAP模式后,其FLASH存储器的两个区中的一个可在擦除数据或写入数据的同时,另一区的用户代码仍可以被CPU执行。即在内部FLASH存储器写人数据的同时,CPU可以从外部存储器载入代码。位于单片机内部的特殊功能寄存器SFST、SFCM、SFAL、SFAH、SFDT和SFCF用于控制和管理FLASH的擦除和编程执行。在IAP模式下,CPU内核和FLASH控制单元将关闭外部时钟,内部晶振提供编程和擦除操作的时序参考。内部晶振只有在被请求时才打开,而当FLASH操作完成后立刻被关闭。CPU要运行于IAP模式,必须使能IAP使能位(SFCF[6]),否则,FLASH的编程命令将不起作用。所有的IAP命令只有在IAP模式才能执行,但当被选择的存储器区域已被安全锁使能时,IAP命令将无法执行。编程命令向存储器块写入新数据时,必须保证该存储器块处于被擦除状态,即其值为0xFF。如果存储器块没有被擦除,则应用合适的擦除命令进行擦除操作。尤其不能在CPU正载入代码的存储器区域进行编程或擦除操作,这将导致不可预测的编程并可能导致编程数据损毁。
3.1 片擦除
片擦除命令可擦除FLAH存储器的所有数据。该命令只有在EA为0时才有效,其执行操作流程如图2所示。
3.2 块擦除
块擦除命令可擦除FLASH存储器块(块0和块1)中任何一块的所有数据,块的选择可通过设置SFAH寄存器的值来实现。当SFAH[7]为0时,选择块0;当SFAH[7:4]为E,选择块时1。块擦除的操作程序如图3所示。
3.3 扇区擦除
扇区擦除操作可擦除扇区的所有信息,扇区的大小是128字节,对哪个扇区进行擦除操作由SFAH和SFAL寄存器决定,其执行操作程序框图4所示。
3.4 字节编程
字节编程命令用于编程一个字节的数据,其编程地址由SFAH和SFAL决定,编程的数据存于SFDT存储器,字节编程的流程框图如图5所示。
4 解决方案
在对字符叠加系统出现叠加字符丢失和程序跑飞问题进行深入分析后发现,影响系统正常工作的原因是字符叠加芯片的复位脚被干扰信号复位从而导致视频叠加信息的丢失;或者是由于干扰单片机的PC指针超出了应用程序的范围而导致程序无法正常运行。为增强视频字符叠加系统的抗干扰能力,可以利用看门狗功能使单片机在程序跑飞的情况下自动恢复正常。其实现原理是看门狗定时器在计数到设定值时产生内部复位信号,使单片机重新运行用户程序,以对视频叠加的字符信息定时进行刷新。保证叠加的字符信息在丢失后仍能及时的叠加到视频上。其改进后的程序流程如图6所示。
5 结束语
通过本文提出的方案可在不改变硬件的情况下,通过充分利用SST89E58RD2单片机的内部资源,成功解决视频叠加信息丢失和程序跑飞的问题,以增强视频字符叠加系统的抗干扰能力。本文所提出的方案目前得到了成功的应用。这对利用单片机内部资源来增强系统的抗干扰能力,具有非常重要的实用价值。
上一篇:基于MAX038的单片机多波调频信号产生器的设计
下一篇:基于单片机的16×64LED点阵显示屏的设计
推荐阅读最新更新时间:2024-03-16 12:43
设计资源 培训 开发板 精华推荐
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况