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<2 V时,内部电压探测器禁止编程/擦除操作。
使用寿命达100 k次编程、擦除,数据可保存达10年,48脚TSOP封装。K9K1G08U0M的功能组成框图如图1所示。他与控制器的接口信号除8个I/O线外, 还包括地址锁存使能ALE,命令锁存使能CLE,片选信号CE,读使能信号RE ,写I/O信号WE,写保护WP控制线,操作状态指示信号 R/B等控制线,因此主控制器可以方便地实现对他的控制。K9K1G08U0M的地址、数据和命令信号输入都使用8位的I/O口,当CE为低 时,命令、地址和数据在WE变低时由I/O写入,并在WE的上升沿锁 存。通过命令锁存信号CLE和地址锁存信号ALE可实现命令和地址对I/O的复用。K9K1G 08U0M的引脚特性及常用命令见参考文献[4]。
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。
4Verilog-HDL语言的实现
经过上述分析可知,输入XCR3032的信号有微控制器读写信号WRIte, READ ,地址总线低4位address[3:0],
使用Verilog语言设计组合逻辑和时序 逻辑具有很高的效率。由于篇幅所限,相关变量的声明在此略去,部分Verilog-HDL 代码如下:
5结语
完整程序经过Xilinx Project Navigator 6.1编译、调试、仿真,利用并口下载电缆通 过 JTAG接口下载到XCR3032中后,使用C8051F021单片机进行接口实验,证明使用该接口方法K9 K1G08U0M的各项功能和命令均可实现。现已成功应用于国家“863”计划项目“海洋生态环 境自动监测技术”中。
上一篇:HDMI接口的噪声抑制方法
下一篇:基于DSP Builder的VGA接口设计
推荐阅读最新更新时间:2024-05-02 21:52