添加到收藏夹 | 设为首页    首页 | 会员登录 | 我的电子助手 | 电子网站地图 | PD资料站 | 联系我们  
51电子网LOGO
 
  首 页  | 供应信息   |  求购信息  |  非IC专区   
   电子资讯   |  电子论坛
 
 
 
位置:首页 > 技术文章 > 存 储 器 > 详细内容  

带RTC的I2C总线铁电存储器FM31256的设计

发布时间:2008-5-27   访问次数:
        

    

    

    作者:中南大学 陈淼 凌玉华 廖力清

    

    摘 要 fm31256是一种基于i2c总线、采用铁电体技术的多功能存储芯片。除了非易失存储器外,该器件还具有实时时钟、低电压复位、看门狗计数器、非易失性事件计数器、可锁定的串行数字标识等多种功能。文章主要介绍了fm31256的基本功能、原理,并结合实例给出了其在电磁铸轧电源控制装置中的具体应用方法。

    

    关键词 i2c总线 铁电体技术 rtc msp430f

    

    fm31256是由ramtron公司推出的新一代多功能系统监控和非易失性铁电存储芯片。与其他非易失性存储器比较,它具有如下优点: 读/写速度快,没有写等待时间;功耗低,静态电流小于1 ma,写入电流小于150 ma;擦写使用寿命长,芯片的擦写次数为100亿次,比一般的eeprom存储器高10万倍,即使每秒读/写30次,也能用10年;读/写的无限性,芯片擦写次数超过100亿次后,还能和sram一样读/写。

    

    铁电存储器(fram)的核心技术是铁电晶体材料。这一特殊材料使铁电存储器同时拥有随机存取存储器(ram)和非易失性存储的特性。本文介绍了fm31256的主要功能,并具体给出了基于嵌入式c语言编写的存储器读/写程序。

    

    1 fm31256的基本结构及原理

    

    fm31256由256 kb存储器和处理器配套电路(processor companion)两部分组成。与一般的采用备份电池保存数据不同,fm31256是真正意义上的非易失(truly nonvolatile)存储器,并且用户可以选择对不同的存储区域以软件方式进行写保护。

    

    fm31256 器件将非易失fram与实时时钟(rtc)、处理器监控器、非易失性事件计数器、可编程可锁定的64位id号和通用比较器相结合。其中,通用比较器可提前在电源故障中断(nmi)时发挥作用或实现其他用途。采用先进的0.35 μm制造工艺,这些功能通过一个通用接口嵌入到14个引脚的soic封装中,从而取代系统板上的多个元件。存储器的读/写以及其他控制功能都通过工业标准的i2c总线来实现。

    

    图1为fm31256的原理图。其中,sda和scl引脚用于与cpu进行数据交换和命令写入,数据输出部分均具有施密特触发器,以提高抗干扰性能;同时,sda作为二线接口中的双向信号线,集电极开路输出,可与二线总线上其他器件进行“线或”。a1~a0为器件地址选择信号,即总线上可同时使用4个同类器件。正常模式下,pfi引脚分别为比较器的输入(不可悬空),cal/pfo引脚输出pfi引脚的输入信号与1.2 v参考电压之间的比较结果;校准模式下,cal/pfo引脚将输出512 hz的方波用于时钟校准。cnt2~cnt1是通过备份电池支持的事件计数器的两路输入端,通过边沿触发启动计数器,触发沿由用户自由选择。

    

    

    

    图1 fm31256原理图

    

    2 fm31256功能及使用方法

    

    在fm31256中,有25个特殊功能寄存器(sfr)00h~18h。通过对这些功能寄存器进行操作,可以实现各种功能。

    

    2.1 特殊功能寄存器

    

    (1) 实时时钟和比较器

    

    实时时钟包括晶体振荡器、时钟分频器和寄存器系统。它分割32.768 hz的时基信号以提供1 s(1 hz)的分辨率,寄存器(02h~08h)以bcd格式提供秒、分、时、星期、日、月、年信息,用户可对其进行读/写访问。启动时钟前须将sfr中01h地址的oscen位(d7)置位,振荡器起振;同时将00h地址的r位(d0)置位,可将时钟数据写入寄存器用于读出。若此时正处于时钟刷新阶段,则由于刷新操作优先于写入寄存器的操作,因而保证了时钟的准确性。重新设置时钟时,只须设定00h地址的w位。

    

    fm31256的时钟精度可通过软件校准,将00h地址的cal位(d2)置位,时钟进入校准模式,比较器输出512 hz的频率信号,并可通过设置01h地址的cal4~cal0位(d4~d0)确定校准值。当00h地址的cal位(d2)为0时,进入比较器模式。

    

    (2) 处理器伴侣

    

    处理器伴侣包括cpu通常需要的功能。系统监测由低电平状态或看门狗计数溢出的中断输出信号。

    

    当系统电源电压低于设定的阈值或看门狗计数器溢出时,fm31256将输出低电平复位脉冲,复位信号持续100ms。改变0bh地址的vtp1~vtp0位(d1~d0),可以设定电平检测的阈值;改变0ah地址的wdt4~wdt0位(d4~d0),看门狗的溢出时间可以在100 ms到3 s之间选择,其中0ah地址的wde位(d7),用于看门狗启动或停止;09h地址用于监视复位信号来源(看门狗计数器、上电复位或后备电源电压)以及控制看门狗计数器清零。系统软件须在要求的时间周期内,向09h地址的wr3~wr0位(d3~d0)写入1010,使计数器清零。

    

    (3) 事件计数器

    

    fm31256有2个独立的后备电池支持的16位事件计数器cn1和cn2,位于寄存器0dh~10h中。若将sfr中0ch地址的cc位(d2)置位,则可以组成一个32位的计数器。cin1和cin2是事件计数器信号输入端,在32位计数器模式下cin2无效。计数采用可编程边沿触发方式,若0ch地址的c1p位(d0)置位,则cin1采用上升沿触发,否则是下降沿触发;0ch地址的c2p位(d1)用于控制cin2。

    

    (4) 串行数据标识区

    

    fm31256的sfr中的11h~18h地址串行标识区中可以保存8字节(64位)数据。该存储区为非易失性存储区,可对其进行无限次的读/写操作,但如果将0bh地址的snl位(d7)置位,则不能再对该存储区进行操作,且这种操作是不可逆的。

    

    2.2 fm31256的读/写操作

    

    fm31256作为从机,集成了两个功能不同的部件,每个部件都可以被独立访问。一个是存储器,访问时从机地址的位7~4必须被设置为1010b;若要访问实时时钟/处理器伴侣,则从机地址的位7~4必须被设置为1101b。该器件采用二线制的i2c接口,二线协议由sda和scl两个引脚的状态确定。共有4种状态: 开始、停止、数据传输及应答。其通信基本格式如图2所示。

    

    

    

    图2 i2c总线通信基本格式

    

    fm31256严格按i2c总线的时序和数据格式操作,其访问操作过程可描述为如下步骤: 启动—从机地址—应答—目标地址—应答—(启动—从机地址—应答)—数据(单或多字节)—应答—停止(注: 从机地址中包含了读写命令;括号中的步骤为当前地址读和连续地址读命令所特有的)。这里对应答信号作些说明。应答脉冲发生在第8个数据位传送之后。在这个状态下,发送方须释放sda让接收方驱动;当接收方发出低电平时,表示正常应答,当发出高电平时,表示无应答。不应答有两种情况: 一是数据传送出错,无应答使发送方终止当前操作,以便重新寻址;二是接收方有意不作应答,以结束当前操作。

    

    在对sfr操作时,首先发送的命令字节为“1 1 0 1 x a1 a0 r/w”,目标地址为单字节范围(00h~18h)。fm31256的32 kb存储单元地址为0000h~7fffh,对其进行操作时,首先发送的命令字节为“1 0 1 0 x a1 a0 r/w”,目标地址长度为双字节,即ram区的寻址能力为0~65 535。fm31系列存储器具有内部地址锁存和自动累加功能,当对连续地址区进行读/写操作时,只须发送存储区首地址。

    

    3 fm31256在电磁铸轧电源控制中的应用

    

    将fm31256应用在电磁铸轧电源控制装置当中,实现主控系统的看门狗复位、给定参数、实时时钟及故障记录保存的功能。

    

    作为一种解决微处理器因干扰而死机问题的有效方法,看门狗的作用是必不可少的。针对控制对象,需要对a、b、c三相控制装置进行调节,包括设定正弦波的频率和幅值、反馈系数、pid参数、过流延时、开放延时和关断延时等;将这些给定的参数及时写入铁电存储器fm31256的存储单元中,使之掉电后仍能保存。当系统发生故障时,例如控制装置中晶闸管周围温度超过额定温度,装置就会发出报警信号,并将发生故障的准确时间、实际温度值记录在fm31256的存储单元中,以便系统查询;同时,fm31256的事件计数器加1计数。同样,利用串行标识区可锁定的功能,可将电磁铸轧电源控制装置的序列号写入其中,非常安全可靠。

    

    3.1 硬件原理

    

    电磁铸轧电源控制装置应用fm31256的硬件接口电路如图3所示。从图3中可以看出,系统以超低功耗msp430系列芯片msp430f149作为控制器;fm31256作为参数存储单元,与处理器之间采用i2c总线进行通信。由于msp430f149没有i2c总线接口,所以任取2个i/o口模拟。实时时钟在vdd掉电以后自动切换到后备电源vbak。

    

    

    

    图3 fm31256msp430f149的硬件接口电路

    

    32.768 khz晶振等效于6 pf电容。若将sfr的01h单元对应的oscen位设为0,同时置00h单元的cal位为1,使cal引脚输出512 hz的脉冲信号,则可检测晶振工作是否正常,因为512 hz是晶振频率的64分频。制pcb板时须注意: x1和x2晶振引脚均为高阻引脚,两引脚之间的距离须小于5 mm;即使信号位于板内层,也不允许信号线靠近x1和x2引脚。在晶振引脚周围使用接地保护环,内部或板反面使用接地保护敷铜。

    

    3.2 存储区访问程序设计

    

    对fm31256存储器访问操作过程中,微处理器处于主机地位,器件始终处于从机地位。根据上述对fm31256的分析,可以把所有的通信过程归纳为3种类型: ① 单脉冲,如start、stop、ack、nack;② 字节发送,如从机地址、目标地址和数据传送;③ 字节接收,如读操作中的数据传送。因此只要把这些操作以子程序的形式编写好,所有的通信操作就可通过调用这些子程序来完成。这里以msp430f149微处理器的嵌入式c语言编写。设微处理器端口p6.6为数据线(sda);p5.4为时钟线(scl)。

    

    限于篇幅,本文不作详细介绍,只给出模拟i2c总线及字节写入、读出的部分c语言程序:

    

      #definertc_sdabit6

      #definertc_sclbit4

      void fm31256_start(void) {/*fm31256启动程序*/

        p6out |=rtc_sda;// sda=1

        p5out |=rtc_scl;// scl=1

        delay(iic_delay);

        p6out &=~ rtc_sda;// sda=0

        delay(iic_delay);

        p5out &=~ rtc_scl;// scl=0}

      void fm31256_stop( void ) {/*fm31256停止程序*/

        p6out &=~ rtc_sda;// sda=0

        delay(iic_delay);

        p5out |=rtc_scl;// scl=1

        delay(iic_delay);

        p6out |=rtc_sda;// sda=1

        delay(iic_delay);}

      void fm31256_send_ack( void ) {/*fm31256应答程序*/

        p5out &=~ rtc_scl;// scl=0

        p6out &=~ rtc_sda;// sda=0

        p5out |=rtc_scl;// scl=1

        delay(iic_delay);

        p5out &=~ rtc_scl;// scl=0}

      void fm31256_send_noack( void ) {/*fm31256不应答程序*/

        p5out |=rtc_scl;// scl=1

        delay(iic_delay);

        p5out &=~ rtc_scl;// scl=0}

    

      说明:scl线是高电平时,sda线从高电平向低电平切换,表示起始条件;当scl是高电平时,sda线由低电平向高电平切换,表示停止条件。相关的确认时钟脉冲由主机产生,在确认的时钟脉冲器件发送方释放sda(高电平),在此期间接收方须将sda拉低。

    

      void fm31256_transfbyte_to_iic( unsigned char tran_byte ) {/* cpu字节发送程序*/

        unsigned char i , current_bit =0x80;

        p5out &=~ rtc_scl;

        delay(iic_delay);

        for( i=0; i <=7; i++ ) {

          if ( tran_byte & current_bit )

          p6out |= rtc_sda;

        else

          p6out &=~ rtc_sda;

        current_bit >>=1;

        delay(iic_delay);

        p5out |=rtc_scl;//scl=1

        delay(iic_delay);

        p5out &=~ rtc_scl;//scl=0

        delay(iic_delay);

        }

      }

      unsigned char fm31256_recebyte_from_iic( void ){/*cpu字节接收程序*/

        unsigned char mvalue, i, rece_data =0;

        p6dir &=~ rtc_sda;//设置为输入方向

        p5out &=~ rtc_scl; //scl=0

        delay(iic_delay);

        for(i=0;i<8;i++) {

          rece_data = rece_data<<1;

          p5out |=rtc_scl;//scl=1

          delay(iic_delay);

          mvalue = p6in & rtc_sda;//当前位的值

          if( mvalue )//接收位为高

            rece_data = rece_data | 0x01;

          else//接收位为低

            rece_data = rece_data & 0xfe;

          p5out &=~ rtc_scl;//scl=0

          delay(iic_delay);

        }

        p6dir |=rtc_sda;//p6.6输出

        return(rece_data);//返回收到的字节

      }

    

    说明:发送到sda线上的每个字节须为8位。tran_byte为cpu要发送的字节,cpu读入的数据存储在rece_data中。对fm31256存储器可以直接对当前地址进行“读”操作,也可以连续“读/写”多个字节而无须逐一指定地址。依据上述一般步骤,对存储器的访问操作可归纳为3种基本操作: ① 设置当前操作目标地址; ② 写入数据; ③ 读出数据。

    

    访问存储器操作有多种,如内存“写”、当前地址或顺序连续“读”和随机地址“读”操作。在控制程序中,需要向fm31256内存中写入并读出给定参数、故障信息等数据。内存读/写的方法如下:

    

    内存写操作,首先由cpu发送从机地址,然后是内存16位地址,主机通过设置从机地址字节的最低位为0声明一个写操作;接收应答信号后,cpu向fm31256发送数据的每个字节,之后器件又产生应答信号,任何数量的连续字节可以被写入,以停止信号结束传输。有两种类型的读操作:当前地址读操作和随机地址读操作。读操作同样先由cpu发送从机地址,主机通过设置从机地址字节的最低位为1声明一个读操作。当要进行随机读操作时,还要在读取数据之前,发送16位内存地址之后读取任意个字节,每个字节后应跟随应答信号,以停止信号结束传输。

    

    在电磁铸轧电源控制装置的主控程序中,还将调用时钟刷新函数flash_time()、时钟写入函数write_time()、寄存器写入函数register_write()和寄存器读出函数register_read()。

    

    启动rtc和watchdog的流程图如图4所示。

    

    

    

    图4 启动rtc和watchdog的流程图

    

    结语

    

    将铁电存储器用于电磁铸轧电源控制装置中,与msp430系列单片机相结合,充分发挥了其强大的功能;同时取代了传统的eeprom和实时时钟芯片,既降低了硬件成本,又简化了软件设计。实践证明,fm31256具有良好的推广应用前景。

    

    

 
 关闭窗口  打印本页
一个六自由度机构控制系统的实现 [2008-6-3]
  此篇文章推荐型号 HCF4520BE  的供应信息
精密I号装配机器人新型控制系统研制 [2008-6-3]
  此篇文章推荐型号 DCP022415DP  的供应信息
基于Sugeno型模糊推理算法的模糊控制器及其应用  [2008-6-3]
  此篇文章推荐型号 DM74S240N  的供应信息
遥操作机器为系统中6自由度输入设备的设计  [2008-6-3]
  此篇文章推荐型号 X25128P  的供应信息
基于神经网络模块SN9701开发多变量系统解耦控制器  [2008-6-3]
  此篇文章推荐型号 TLC393CPS  的供应信息
模糊控制在基于CAN总线的数据采集与控制系统中的应用  [2008-6-3]
  此篇文章推荐型号 VT8363E  的供应信息
BP神经网络用于三相电弧炉弧流控制  [2008-6-3]
  此篇文章推荐型号 LTC1798CS8-4.1  的供应信息
带RTC的I2C总线铁电存储器FM31256的设计  [2008-5-27]
  此篇文章推荐型号 LMV931MG  的供应信息
基于ISP1362的U盘MP3播放器设计来源:电子设计应用  [2008-5-27]
  此篇文章推荐型号 AT49F040-12TI  的供应信息
铁电在电力参数监测中的应用  [2008-5-27]
  此篇文章推荐型号 GM71VS65163CLT5  的供应信息
AM30L V0064D在单片机系统中的典型应用  [2008-5-27]
  此篇文章推荐型号 DTC114YK  的供应信息
赛普拉斯非易失性静态随机存取存取器(NVSRAM) [2008-6-3]
  此篇文章推荐型号 MSP3410B-PP-F7  的供应信息
基于OrCAD/Pspice 9平台的电子电路设计 [2008-6-3]
  此篇文章推荐型号 MB3776APNF-G-BND-EF  的供应信息
基于USB的数据采集系统设计及实现 [2008-6-3]
  此篇文章推荐型号 M64084AGP  的供应信息
用Visual C++实现工控设备多线程控制程序  [2008-6-3]
  此篇文章推荐型号 MIC4426BN  的供应信息
 
 
 

 
版权所有:51电子网-中国最专业的电子元件交易平台 2000-2005 → 给本站留言 粤ICP备06016101
服务热线 深圳:0755-83754112、83754219 传真:0755-83752517 
库存上载:51dzw_stock@163.com  在线MSN咨询:jing_51dzw@hotmail.com OICQ:点击这里给我发消息  点击这里给我发消息