嵌入式学习小组
直播中

辛太励

8年用户 1155经验值
擅长:20153
私信 关注

如何使用XCR3032实现大容量FLASH存储器的接口设计?

本文介绍了使用XCR3032实现K9K1G08U0M与微控制器的接口原理,给出了VerilogHD L实现程序。对大容量FLASH存储器的接口设计具有一定的参考价值。

回帖(1)

冯栋

2021-4-29 15:16:09
  FLASH存储器(FLASH Memory)是非易失存储器,即使在供电电源关闭后仍然能保留信 息, 可以对存储器单元块进行擦除和再编程,并且不需要额外的编程电压。FLASH存储器具有工 作电压低、擦写速度快、功耗低、寿命长、价格低廉、控制方法灵活、体积小等优点。近年 来,FLASH存储器在嵌入式系统代码存储和大容量数据存储领域中得到了广泛的应用。本文介绍了使用XCR3032实现K9K1G08U0M与微控制器的接口原理,给出了VerilogHD L实现程序。对大容量FLASH存储器的接口设计具有一定的参考价值。
  1XCR3032
  XCR3032是Xilinx公司生产的CoolRunner XPLA3系列CPLD。他具有如下特点:
  低功耗供电电压仅为2.7“3.6 V。他采用Fast Zero PowerTM( FZP)技术,使得器件的静态电流非常低(小于100 μA);频率为10 MHz时,工作电流仅为1 06mA,比其他公司的CPLD小50%”67%。
  高性能具有32个宏单元,器件所有信号具有等延时,与路径无关,t PD最快可达5 ns。最高运行时钟频率可达200 MHz,多时钟资源使得设计更加方便 。
  总线接口友好特别适合应用于3.3 V系统中,可无需外接上拉电阻而与5 V器件直接接口。
  具有Port Enable管脚使得JTAG管脚具有在系统可编程接口和通用I/O口 2种功能。芯片不处于编程状态时,仍可用作一般I/O口。
  快速ISP编程可达至少1万次的编程擦除次数。
  XCR3032最显著的特点是低功耗和高速度。特别适用于手持、移动等功耗比较低的系统中。 如PDA、笔记本电脑、移动电话等领域。
  2K9K1G08U0M
  K9K1G08U0M是韩国三星(Samsung)公司采用NAND技术生产的128 MB大容量、高可靠、非 易 失性FLASH存储器,具有高密度、高性能的特点。该器件所提供的片内控制器、状态寄存器 和专用命令集使其可以灵活地运用在各种存储系统电路中。他的最大优点是8位I/O端口是地 址、数据和命令的多路复用,这样不但大大减少了芯片的引脚数,而且简化了系统的连线, 便于系统以后扩充芯片容量而不需改变系统板结构设计。
  K9K1G08U0M对于诸如文件存储、声 音和音频信号处理、智能仪器设备等要求大容量非易失性存储的应用场合提供了一种极佳的 解决方案。他的典型特性如下:
  (1)工作电压:2.7“3.6 V
  (2)自动编程和擦除
  页编程:(512+16)B
  块擦除:(16 k+512)B
  (3)可进行528 B/页读操作
  随机访问:12μs(最大值)
  页面连续访问:50μs(最小值)
  (4)快速写周期时间
  编程时间:200μs(典型值)
  块擦除时间:2 ms(典型值)
  (5)硬件数据保护
  在电源电压VCC
  
  3 接口方法
  K9K1G08U0M与微控制器常规接口方法是使用专用的口线模拟ALE,CLE并在CE,RE,的时序配合下完成所有的命令。这种方法的缺点是占用微控制器宝贵的 硬件资源,并要求软件严格控制他们之间的时序,增加了程序运行时间和软件复杂度,降低 了程序的运行效率。而且对于使用5 V电源的微控制器,由于K9K1G08U0M电源电压是3 V,所 以他们之间的接口还存在逻辑电平转换的问题。
  本文提出的方法使用1片XCR3032 CPLD就可以完美地解决上述问题,高效地完成K9K1G08U 0 M的全部功能,而无需占用额外的口线,微控制器只需以固定的地址向XCR3032寻址,通过XC R3032产生的输出信号实现对K9K1G08U0M的控制。XCR3032有如下作用:
  (1)对微控制器送出的最低4位地址信息进行译码。
  (2)分析地址总线的命令并根据命令内容提供K9K1G08U0M的相应接口信号。
  (3)监控K9K1G08U0M的R/B的输出。
  综上所述,利用XCR3032实现的K9K1G08U0M与微控制器接口电路如图2所示。
  
  根据K9K1G08U0M的接口时序要求,XCR3032要根据微控制器最低4位地址线解码出K9K1G08U0 M相对应的操作。XCR3032的输出信号状态取决于微控制器输入的地址信息。假设XCR3032的 基地址是B,不同的输入地址值所对应的输出操作和基本功能如表1所示。
  
  当微控制器送出地址是B+0需要读取K9K1G08U0M数据、状态和ID时候RD信号置0 。当微控制器送出地址是B+0并且要求写数据地址或者微控制器送出地址是B+1要求写命令时 应置0。
  4 Verilog-HDL语言的实现
  经过上述分析可知,输入XCR3032的信号有微控制器读写信号WRITE, READ ,地址总线低4位address[3:0],
  
  使用Verilog语言设计组合逻辑和时序 逻辑具有很高的效率。由于篇幅所限,相关变量的声明在此略去,部分Verilog-HDL 代码如下:
  
  
  
  5 结语
  完整程序经过Xilinx Project Navigator 6.1编译、调试、仿真,利用并口下载电缆通 过 JTAG接口下载到XCR3032中后,使用C8051F021单片机进行接口实验,证明使用该接口方法K9 K1G08U0M的各项功能和命令均可实现。现已成功应用于国家“863”计划项目“海洋生态环 境自动监测技术”中。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分