第三章,存储器件

第三章存储器件 一 存储器概述二 EEPROM存储器件三 SRAM存储器件四 Nor Flash存储器件五 Nand Flash存储器件六 附录 Nor Flash与Nand Flash比较 一 存储器件概述 存储器的重要性存储器是嵌入式系统的主要组成部分 运行的程序需要存储器 处理数据需要存储器 存储数据也需要存储器 没有存储器 系统无法工作 存储器的种类 只读存储器 简称ROM ROM是一种非易失性的存储器 即在电源被关掉之后也不会丢失数据的 随机访问存储器 简称RAM RAM是一种易失性的存储器 即在电源被关掉之后数据会丢失 1 1存储器ROM ROM的种类很多 一般分为以下5种 1 只读存储器 ROM 2 可编程ROM PROM 3 电可编程ROM EPROM 4 电可擦除可编程ROM EEPROM 5 闪存 FlashMemory 1 2随机访问存储器RAM 与ROM相比 RAM具有如下一些优点 1 读取速度比ROM快2 写入数据跟从RAM读出的速度一样 根据所采用的存储单元工作原理的不同 RAM又分为SRAM和DRAM 二 EEPROM存储器件 EEPROM的种类很多 它们大致可分为以下3种 并行EEPROM 速度快 高度集成 引脚多串行EEPROM 引脚少 结构复杂 容量不大加密型EEPROM 可加密 操作复杂 成本高 EEPROM概述 1 1CAT24WC16介绍 CAT24WC16是CATALYST公司生产的EEPROM 同系列还有CAT24WC02 CAT24WC04 CAT24WC08 CAT24WC32等 CAT24WC16的存储空间内部总共有128页 每一页为16字节 byte 每一字节为8位 bit 共有2K个存储字节单元 即16K比特位 CAT24WC16的其他特性1 8到6 0伏工作电压范围 16字节页写缓冲器 与400KHz的I2C总线兼容 符合双向数据传输协议 具有硬件写保护和软件数据保护功能 自动定时擦写周期 引脚说明 注意 I2C是个漏极开路的接口 需要外接上拉电阻 电路连接 1 2CAT24WC16工作时序 1 起停信号起始信号 时钟线SCL保持高电平期间 数据线SDA电平发生从高到低的跳变 停止信号 时钟线SCL保持高电平期间 数据线SDA电平发生从低到高的跳变 2 设备选址3 应答信号4 写操作5 读操作 设备选址 主器件发送1个起始信号启动发送过程 然后发送寻址的从器件地址 8位从器件地址的高4位固定为1010 接下来3位 A10 A9 A8 为从器件的地址位 R W为读写控制位 CAT24WC16监测总线当其地址与发送的从地址相符时发出1个应答信号 CAT24WC16根据读写控制位的状态准备读写操作 应答信号 在SCL时钟线上的第9个时钟周期将SDA线拉低就表示一个应答信号 I2C总线每成功传送1Byte 接收器都必须产生1个应答信号 CAT24WC16在接收到起始信号和从器件地址之后也要产生应答信号 如果该器件工作于读模式时 在发送1个8位数据后释放SDA线并等待1个应答信号 写操作 写操作分为 字节写 和 页写 在 字节写 操作模式下 主器件首先给从器件发送起始信号和从器件地址信息 在从器件送回应答信号后 然后主器件再发送一字节的地址信息到CAT24WC16地址指针 主器件在收到从器件的应答信号后 最后发送1Byte的数据到被寻址的存储单元 从器件再次应答 并在主器件产生停止信号后开始内部数据擦写 在 页写 操作模式下 页写操作的启动和字节写一样 不同在于传送了一字节数据后并不产生停止信号 主器件被允许发送15个额外的字节 每发送1字节数据后 CAT24WC16产生一个应答位并将字节地址位加1 高位保持不变 如果在发送停止信号之前主器件发送超过16个字节 地址计数器将自动翻转先前写入的数据被覆盖 在发送最后一个字节后 主器件发送一个停止信号通知数据传输结束 如图所示 应答查询 主器件发送一个起始信号和进行写操作的从器件地址来进行应答查询 读操作 CAT24WC16支持三种读操作方式 1 当前地址读2 随机地址读3 连续读 在 当前地址读 操作方式时 CAT24WC16地址计数器内容为最后操作字节的地址上加1 CAT24WC16接收到从器件地址信号后 首先发送一个应答信号 然后发送一个8位字节数据 如图所示 随机地址读 操作允许主器件对存储器的任意字节进行读操作 1 主器件首先通过发送起始信号 从器件地址并选择写操作 2 等CAT24WC16应答之后主器件重新发送起始信号和从器件地址 3 CAT24WC16响应并发送应答信号 然后输出该地址处的一个字节数据 最后主器件发送一个停止信号结束此次读操作 过程如图 连续读 操作既可以是当前地址读 也可以是随机地址读 工作时序上大体相同 不同的是 当主器件每接收到一个数据字后 会回应一个应答信号给CAT24WC16 而不是停止信号 CAT24WC16在接收到应答信号后会将地址加1 直到主器件发送停止位才结束此操作 CAT24WC16输出的数据按顺序由地址N开始输出 读操作时地址计数器在CAT24WC16内部增加 如果上次读写地址为芯片末地址 0 x7FF 则计数器将翻转到第一个字节地址 0 x00 处 1 3实验目的与内容 实验目的 通过实验 理解I2C数据传输的原理 掌握I2C接口电路连接和软件编程 实验内容 事先往CAT24WC16的某个地址区域Addr写入一个字符串 Hello 然后从地址Addr处读取5个字节内容 并在屏幕上显示 检查读出来的字符串是否也为 Hello 1 4实验原理分析 电路原理分析EEPRROM CAT24WC16 通过I2C接口与处理器进行通信 电路中将EEPRROM的地址线A0 A1 A2接地 SCL和SDA线上都接一个10K的上拉电阻 软件设计为了方便编程与程序可读性 首先定义几个宏 这些宏分别对应I2C控制寄存器I2CONSET的某些控制位 defineSI0 x08 I2C中断标志位 defineSTO0 x10 I2C停止位 defineSTA0 x20 I2C起始位 defineAA0 x04 I2C应答位 defineI2EN0 x40 I2C使能位根据实验内容我们设计了3个底层驱动函数 这三个底层驱动函数分别是 CAT24WC16 Init 初始化设置函数 CAT24WC16 Write CAT24WC16的写函数 CAT24WC16 Read CAT24WC16的读函数 CAT24WC16 Init 名称 CAT24WC16 Init 功能 I2C初始化 入口参数 fi2c初始化I2C总线速率 最大值为40K 出口参数 无 voidCAT24WC16 Init uint32F I2C PINSEL0 PINSEL0 使能主I2C CAT24WC16 Write 名称 CAT24WC16 Write 功能 主发送模式 向CAT24WC16写入数据 入口参数 sla器件地址 slaveAddr器件子地址pWriteData待发送数据缓存区指针num待写入字符的个数 出口参数 1代表发送成功I2STAT返回错误状态码 代表发送不成功 uint8CAT24WC16 Write uint8sla uint8slaveAddr uint8 pWriteData uint8num uint8i 通过软件置位STA进入主发送模式 I2CONCLR AA SI STA 清零 SI位 起始标志位 应答标志位I2CONSET I2EN STA 启动总线while I2CONSET 返回错误状态码 发送器件地址 W位 I2CONCLR SI STA 清零 SI位 起标志位标志位I2DAT sla 返回错误状态码 发送数据 for i num i 0 i I2CONCLR SI SI位清零I2DAT pWriteData while I2CONSET CAT24WC16 Read 名称 CAT24WC16 Read 功能 主接收模式 从器件CAT24WC16读取数据 入口参数 slaveAddrCAT24WC16器件中具体的某一存储单元 pWriteData数据接收缓冲区指针 num要读取的数据个数 出口参数 1代表发送成功I2STAT返回错误状态码 代表发送不成功 uint8CAT24WC16 Read uint8sla uint8slaveAddr uint8 pReadData uint8num uint8i state 0 定位CAT24WC16器件的存储单元 state CAT24WC16 Write sla slaveAddr 0 0 if state 1 return state 发送起始标志位 I2CONCLR SI AA 清零 起始 中断 应答标志位I2CONSET STA 启动总线while I2CONSET 等待SI置位 if I2STAT 0 x08 查看状态码 I2CONSET STO 结束数据传输结束return I2STAT 返回错误状态码 发送器件地址 R位 I2CONCLR SI STA SI位 STA位清零I2DAT sla 0 x01 while I2CONSET 1 5实验参考程序 uint8EEPROM TAB 10 Hello 0 名称 main 功能 对EEPROM进行读写控制 intmain void uint8REEPROM buf 5 uint8flag 初始化 IO1DIR IO1DIR BEE 设置蜂鸣器控制引脚BEEOFF 关闭蜂鸣器CAT24WC16 Init 10000 写数据 flag CAT24WC16 Write CAT24WC16 0 x00 EEPROM TAB 5 DelayMS 1 等待内部写操作完成if flag 1 BEEON DelayMS 1 BEEOFF 读数据 flag CAT24WC16 Read CAT24WC16 0 x00 REEPROM buf 5 if flag 1 BEEON DelayMS 1 BEEOFF return 0 全速运行 我们将在变量观察窗口中观察到数组REEPROM buf中的内容也为 Hello 正确运行结果如下图 三 SRAM存储器件 SRAM概述RAM分为SRAM和DRAM两种类型 DRAM的存取速度没有SRAM快 但是DRAM更容易做成大容量的RAM 在存放信息比较多的嵌入式系统中 主存储器采用DRAM 而快速存储器则采用SRAM SRAM它不具有掉电保持数据的特性 但其存取速度高于Flash存储器 且具有读 写的属性 系统及用户堆栈 运行数据也都放在SRAM中 SRAM架构是处于同一列的基本存储单元共用一条列地址线 而处于同一行的基本存储单元共用一条行地址线 组成一个基本存储单元构成的矩阵架构 在SRAM中 字节是最小的可寻址的单元 1 1IS61LV25616AL介绍 IS61LV25616AL是美国ISSI公司生产的高速SRAM器件 IS61LV25616AL的特性如下 高速访问时间10 12nsCMOS低功耗工作单个3 3V电源工作 TTL兼容接口电平完全静态操作无需时钟和刷新三态输出高低字节数据控制可用的工业级温度 IS61LV25616AL内部功能模块与引脚描述 IS61LV25616AL内部主要由4部分组成 1 控制电路2 数据电路3 译码器电路4 存储器阵列 内部功能框图IS61LV25616AL引脚图 IS61LV25616AL芯片一共有44条引脚 其中18根地址线 16根数据线 5根控制线 4根电源线和1根闲置线 IS61LV25616AL引脚描述见表所列 IS61LV25616AL的读写和擦除操作 ARM是通过操作IS61LV25616AL的控制线而执行相应的操作 IS61LV25616AL可工作在输出禁能 读操作 写操作3种工作模式下 IS61LV25616AL工作模式 1 2实验目的与内容 实验目的 通过实验 深刻理解RAM器件操作与电路连接