串行EEPROM存储器及应用.ppt
《串行EEPROM存储器及应用.ppt》由会员分享,可在线阅读,更多相关《串行EEPROM存储器及应用.ppt(36页珍藏版)》请在一课资料网上搜索。
1、附录B 串行EEPROM存储器及应用,一、二线制I2C总线CMOS 24系列串行EEPROM存储器,图 附B-1 DIP8封装的24系列串行EEPROM存储器,1. I2C总线特性 I2C总线协议是Philips公司开发的两线制(即串行时钟信号SCL和串行数据/地址线SDA)串行通讯接口,I2C协议主要特点如下: (1) 在I2C通讯协议中,通讯过程由产生SCL时钟信号的主器件(如微处理器)控制,即主器件除了产生作为读/写同步信号的SCL外,还发出“启动”和“停止”总线操作的控制信号。,(2) 在I2C总线协议中,允许总线上挂接多个从器件(如存储器),形成“一主多从”结构(采用总线仲裁方式后,
2、可允许同时存在多个主器件,不过在单片机系统中很少见,因此不介绍)。每个从器件均有惟一“从片地址”,主器件启动了 I2C总线后,所有从器件均处于接收状态,接收主器件发送来的地址信息(广播形式),并与自身的“从片地址”比较:如果相符,则通过SDA引脚回送低电平的“应答信号”;反之,不做任何响应。在7位地址格式中,从片地址由7位从片地址(最多可以连接128个从器件)和控制数据传输方向的读写标志位(R/W)组成。例如,采用I2C总线接口的EEPROM存储器的从片地址格式为1 0 1 0 A2 A1 A0,(3) 对于主器件来说,SCL引脚为输出,且漏极开路;对于从器件来说,SCL引脚为输入。SDA是漏
3、极开路的数据/地址输入/输出引脚。 (4) 在I2C总线协议中,把数据发送到SDA线的器件称为“发送器”,接收数据的器件称为“接收器”。例如,主器件(如CPU)把数据或从器件地址写入从器件(如存储器)时,主器件是发送器,从器件是接收器;当主器件读取从器件存储单元信息时,从器件是发送器,主器件是接收器。接收器收到发送器一个字节数据后,必须回送一个低电平的应答信号,否则发送器将停止发送数据。,图 附B-2 I2C总线操作时序,(5) I2C总线标准约定的时间参数。 在I2C总线标准中,对下列时间宽度有严格要求: 读写同步信号SCL高电平最小时间。 读写同步信号SCL低电平最小时间。 “停止”操作时
4、,SCL由低电平变为高电平(即SCL信号上升沿)到SDA变为高电平的最小时间。 “启动”操作时,SDA由高电平变为低电平(即SDA信号下降沿)到SCL变为低电平的最小时间。 以上时间不得小于4.7 s。 最大数据传输率,每秒传输的数据量不得超过100 Kbit,即同步信号SCL频率最大为100 kHz。,2. 二线制I2C总线24系列串行EEPROM存储器写入过程 二线制I2C总线24系列串行EEPROM存储器支持字节写入方式和页写入方式。 1) 字节写入方式 字节写入过程如下:启动给出芯片控制字节等待EEPROM芯片回送应答信号输出EEPROM存储单元地址字等待EEPROM芯片回送应答信号输
5、出写入存储单元的数据等待EEPROM芯片回送应答信号停止。,2) 页面写入 串行EEPROM存储器内部有页写入缓冲器(页写入缓冲器容量P的大小与芯片生产厂家、型号有关,如表附B-1所示),因此可以使用页面写入方式: 启动给出芯片控制字节等待EEPROM芯片回送应答信号输出EEPROM存储单元地址字(n)等待EEPROM芯片回送应答信号输出写入存储单元的数据(n)等待EEPROM芯片回送应答信号输出写入存储单元的数据(n+1)等待EEPROM芯片回送应答信号输出写入存储单元的数据(n+P)等待EEPROM芯片回送应答信号停止。,表 附 B-1,3) 写周期结束查询,图 附B-3,3. 读操作,1
6、) 立即地址读,图 附B-4 立即读操作,2) 读指定存储单元(字节读),图 附B-5 字节读操作,3) 连续读,图 附B-6 连续读操作,4. 串行EEPROM与MCS-51接口,图 附B-7 I2C总线存储器与MCS-51的连接,图 附B-8 I2C总线器件的连接,5. 用软件模拟在P1.0、P1.1引脚产生I2C总线定时信号参考程序 说明: ByteCnt DATA 30H ; I2C数据字节计数器 SlvAdr DATA 31H ; 从器件地址 SubAdr DATA 32H ; 待读写的从器件存储单元地址 RcvDat DATA 40H ; 接收数据缓冲区 XmtDat DATA 5
7、0H ; 发送数据缓冲区 ; 端口位定义 SDA BIT P1.1 ; 模拟I2C数据传送位 SCL BIT P1.0 ; 模拟I2C时钟控制状态标志 FHbit BIT 0F0H; 发送及接收成功标志存放在0F0H位单元中 NOACK BIT 0F1H; 读操作时主器件非应答标志位,1表示非应答,0表示应答,1) 启动 ;“启动” I2C总线串行EEPROM子程序 START: CLR SCL NOP SETB SDA NOP SETB SCL NOP; 插入空操作指令的数目由CPU时钟频率决定。SCL高电平时间最小 ; 为0.6 s,当时钟频率为12 MHz时,NOP指令执行时间为一个机器
8、周 ; 期(即1 s),可见插入一条NOP指令足够,NOP NOP NOP CLR SDA; 在SCL为高电平时,使SDA由高电平变为低电 平,启动I2C总线 NOP NOP NOP NOP CLR SCL; 将SCL时钟置为低电平,以便发送和接收 RET,2) 停止 ; “停止”I2C总线串行EEPROM子程序 STOP : CLR SCL NOP CLR SDA NOP SETB SCL NOP; 插入空操作指令的数目由CPU时钟频率决定。 SCL高电平时间最小 ; 为0.6 s,当时钟频率为12 MHz时,NOP指 令执行时间为一个机器周 ; 期(即1 s),可见插入一条NOP指令足够,
9、NOP NOP NOP SETB SDA; 在SCL为高电平时,使SDA由低电平变为高电平,停止I2C总线 NOP NOP NOP NOP RET ; “停止”总线操作结束后,SCL、SDA均处于高电平状态,即总线处于空闲 状态,3) 字节写 ; 字节发送子程序。 ; 用于将控制(即从器件地址)字节或数据字节发送到从器件(串行EEPROM)中 ; 待发送字节信息存放在寄存器A中,返回标志存放在Fhbit(位地址)中,0表示成功,1 ; 表示失败(即从器件没有应答,发送失败) PROC SentByte SentByte: NOP MOV R7,#08H; 初始化发送数据位长度R7 SentLO
10、OP: CLR SCL NOP; 根据CPU时钟频率可以插入02条空操作指令 NOP RLC A; 将Acc.7位移到进位标志C中,即先写高位 MOV SDA, C; 将数据位发送到SDA引脚。由于写入时用SCL上升 沿同步,因此 ; 要先送数据后将SCL置高电平,SETB SCL; 使时钟引脚为高电平 NOP; 插入空操作 NOP DJNZ R7, SentLOOP; R7减1不为0转移 NOP CLR SCL; 当R7=0,则表示已发送Acc.0位,将SCL置低电平,形成发送Acc.0 ; 位的时钟脉冲 NOP; 插入空操作指令,以便形成第9个SCL脉冲,检测从器件回送的 ; 应答信号 N
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 串行 EEPROM 存储器 应用
