工控网首页
>

应用设计

>

铁电存储器FM24C64在PIC16F877A单片机数据采集系统中的应用

铁电存储器FM24C64在PIC16F877A单片机数据采集系统中的应用

2008/1/2 14:02:00
摘要:本文结合PIC16F877A单片机采集系统,采用二线制I2C串行总线方式,给出铁电存储器FM24C64与PIC16F877A单片机的硬件接口电路图,简化线路板的空间。而且,还介绍了关于铁电存储器FM24C64的基本时序,读写过程,及其软件设计的步骤。这种设计方案节省功耗、成本,克服了EEPROM或者其他非易失性存储器的不足,提高了采集系统工作稳定性和可靠性,可以广泛的用于PIC单片机产品的开发和研制。 关键字:铁电存储器;FM24C64;PIC16F877A;I2C总线;单片机 中图分类号:TlP274.5 文献标识码:A The Application of Ferro-Electric RAM FM24C64 to Data Processing and Correspondence of PIC16F877A Single Chip Microcontroller Data Acquisition System Li Fuwei (Changsha Institute of Mining Research, Hunan Changsha, 410012) Abstract: With the system of PIC16F877A Single Chip Microcontroller Data Acquisition, This paper describes the hardware interface circuit between ferroelectric RAM FM24C64 and PIC16F877A MCU by second-line I2C serial bus. And, the basic timing, reading and writing process, and the steps of software designing on ferroelectric RAM FM24C64, are introduced in this paper. This design proposal saves power consumption and cost, overcomes the shortcoming of EEPROM or other non-volatile memory, improves the stability and reliability of Acquisition system, and can be widely used for research and development of PIC products. Key Words: FRAM; FM24C64; PIC16F877A; I2C—Bus; Single Chip Microcontroller 1.引言   铁电存储器FM24C64是Ramtron采用先进的铁电技术制造的64K位非易失性存储器,使用工业标准两线接口,8 脚SOP 封装,操作温度范围为:-40℃至+85。与其他易失性存储器相比,铁电存储器FRAM有三个明显的优势:第一是其执行写操作的速度与读操作的速度一样快。就总线速度写入而言,FRAM对写入数据变成非易失性数据并没有任何延迟。此外,由于没有首选或默认状态,FRAM并没有擦除操作。同其它随机存储器 (RAM) 技术如SRAM一样,写入数据时无需考虑以前的状态。第二,FRAM 实际上不限制擦写操作次数,不像其它非易失性存储器那样擦写操作次数多了就会失效。第三,FRAM的运行无需电荷泵因此能够降低功耗。当较低的功耗乘以更快的写入速度时,FRAM所消耗电能会降低几个数量级,以更加先进的处理过程进行写操作。而且铁电存储器FM24C64的二线制串行总线及其传输规约进行双向传输,这种方式占用脚位少,占用线路板空间小。 结合以上优点,本文中重点介绍一种以铁电存储器FM24C64为存储器的数据采集系统,使其具有更快的写操作速度和更少的系统开销。此系统使用的处理器是美国Microchip公司生产的PIC16F87X系列芯片中功能最为齐全的微控制器PIC16F877A,可以实现在线调试和在线编程,内部带有8路10位A/ D转换器,8K×14位FLASH程序存储器,368×8位RAM,256×8位的EEPROM,14个中断源和3个定时/ 计数器,片内集成多达15个外围设备模块,因此外围电路大大简化,成本降低。最为关键的是美国Microchip公司按I2C总线规范开发的内部配了I2C总线接口的PIC16F877A单片机,其I2C总线接口的主要技术性能有: (1)工作速率可以兼容两种标准,在标准模式下采用100kbit/s,在快速模式下采用400kbit/s; (2)既支持主控制工作模式,也支持被控制工作模式; (3)支持多级通行方式,以及时钟仲裁和总线仲裁; (4)既可以用7位寻址方式,也可以用10位寻址方式; (5)可以支持广播式寻址(或叫通通用呼叫地址寻址)方式; (6)信号线电平可以兼容I2C和SMBus两种总线规范; (7)硬件上可以自动监测总线冲突、启动信号和停止信号,并且自动产生中断标志; (8)支持CPU的睡眠工作方式,即在CPU睡眠方式下I2C端口电路可以接受地址和数据,并且只要MSSP(主控同步串行端口)中断允许,当地址匹配或一个字节传输完毕,都将会唤醒CPU。 将两者有机的结合,对于开发便携式、频繁采集数据的产品有很大的优势。 2.铁电存储器FM24C64与PIC16F877A单片机的硬件接口及其工作原理
图1 PIC16F877A单片机采集系统的硬件接口电路图 基于PIC16F877A单片机采集系统的接口电路如图1所示。本系统主要有前端传感器采集系统和PIC16F877A单片机数据处理部分组成。为了采集系统的准确可靠,前端的传感器采集系统共有四路,将有用的模拟信号采集下来,然后通过PIC16F877A单片机的RA0脚,RA1脚,RA2脚和RA3脚(分别为模拟通道1,模拟通道2,模拟通道3和模拟通道4),送入到单片机中,进行处理。处理后的数据再通过RC3脚和RC4脚与FM24C64的SCL脚和SDL脚相连,分别作为时钟线和数据线。 铁电存储器FM24C64采用I2C串行总线接口.符合I2C总线传输协议的规范.其固定地址为1010.同一系统中最大可扩展8片,其器件地址由A2、A1、A0外接电路决定。Philips公司开发的这种I2C总线以两根连线实现了完善的全双工串行数据传送。由于端口输出为开漏结构,所以总线上必须有上拉电阻,如图1,2所示本系统联接了一个4.7Ω的上拉电阻。
图2 多铁电存储器FM24C64与PIC16F877A单片机的硬件接口电路图 WP引脚的接法也是非常灵活的,可以软件控制,也可以用硬件固定,由于本系统中需要更新存储器的数据,不需要写保护,采用硬件直接接地。另外,只需要扩展一个存储器即可,所以为了接线方便,将铁电存储器FM24C64中的A0,A1,A2三个引脚全部接地。如果需要扩张多个存储器(理论上可以扩张8个存储器),可以通过改变A0,A1,A2三个引脚来控制,如图2所示。 3.铁电存储器FM24C64的软件编程 此系统软件编程共有三部分组成:数据的采集,数据的处理,数据的存储。本文重点介绍铁电存储器FM24C64与PIC16F877A单片机的通信,其他两部分可以参考其他的书籍和论文。由于美国Microchip公司按I2C总线规范开发的内部配了I2C总线接口的PIC16F877A单片机,为软件编程提供了很大的方便。下面分别介绍I2C总线协议的基本时序及其铁电存储器FM24C64多字节读/写程序过程。 3.1 I2C总线协议的基本时序 I2C总线进行通信的过程就是双方不断握手信号的过程,其握手信号就是如下的基本时序:启动信号、重启动信号、应答信号、停止信号等。它们是通过实现MSSP(主控同步串行端口)内部配置了一个专用的波特率发生器BRG,用来设置串行式中SCL的频率来实现的。 3.1.1 启动信号及其重启动信号 为建立和发送一个启动信号(S)时序,需要用户程序将启动时能位SEN置位。具体地讲,当主机把SDA从高电平拉为低电平,同时SCL信号为高电平时被认为是开始信号,所有的读写操作均由开始信号开始。任何时候发布一个开始信号,一个进行中的操作都会被中止。使用开始信号中止一个操作的同时,FM24C64也会处于开始一个新操作的就绪状态。在操作过程中,如果电压降低到规定电压的最低值以下时,FM24C64执行另外一个的操作之前,也会认为出现了一个开始信号。 重启动信号时序建立过程与启动信号的建立过程相似。当用户程序将RSEN为置1时,如果同时I2C总线处于空闲状态,则会产生一个重启动信号(Sr)时序。 3.1.2 应答信号 当用户程序将应答使能为ACKEN置1时,同时需要应答位ACKDT配合使用,就产生一个应答信号时序。具体地讲,在任何传送中,应答信号出现在第8位数据位被传送之后,在这个状态下,发送方应该释放SDA信号以便由接收方驱动。接受方驱动SDA为低电平,以应答收到一个字节数据。如果接收方没有发出应答信号,那么这是一个无应答状态,操作将被中止。有两个明显的理由使得接收方没有发出应答信号,第一是数据传送失败,在这种状态下,无应答会中止当前操作以便器件被重新寻址,这允许在发生通讯错误时恢复最后一个传送字节。第二种情况也是最常见的情况,接收方有意不做应答以便结束操作。举例说,在读操作中,只要接收方发出应答信号(以及时钟信号),FM24C64会继续把数据发送到总线上,当读操作结束时,接收方不应答最后传送的字节。如果接收方应答最后传送的字节,那么FM24C64在下一个时钟来临时会试图继续驱动总线,而此时主机正在发送一个新的命令,比如停止信号。 3.1.1 停止信号 当用户程序将停止信号使能位PEN置1时,在数据字节发送或者接收完毕之后,在总线上就讲产生一个停止信号(P)时序。具体地讲,当主机把SDA从低电平拉为高电平,同时SCL信号为高电平时认为是停止信号,FM24C64所进行的所有操作都必须以此信号结束,如果一个操作还未完成而此时出现了一个停止信号,那么这个操作将被中止。为了发布停止信号,主机必须控制SDA总线。 这几种基本的时序图可以参考Microchip公司或者Ramtron公司网站相关的资料,也可以参考相关的书籍和文献,参考文献已详细列出。 3.2 铁电存储器FM24C64多字节写操作 所有写操作都是从传送器件地址和内存地址开始的。主机通过设置从机地址的最低有效位为0,来表示一个写操作。寻址后,主机传送数据的每个字节到存储器,存储器收到后发送应答。如图3所示为FM24C64多字节写操作时序。 任意数量的顺序字节可以被写入存储器。如果内存地址到达顶端,地址计数器将从1FFFH翻转到0000H。与其它的非易失性存储器技术不同,FRAM在本质上没有写延时。整个存取周期有时比一个总线周期还短,这样,在一个写操作后,可以进行任何操作,包括写操作或者读操作。 一次典型<
投诉建议

提交

查看更多评论