基于WISHBONE总线的FLASH闪存接口设计

发布者:Blissful444最新更新时间:2015-04-16 来源: eechina关键字:WISHBONE总线  FLASH  闪存接口 手机看文章 扫描二维码
随时随地手机看文章
引言

随着半导体工艺技术的发展,IC设计者已能将微处理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)集成在单一芯片上,即SoC芯片。对片上系统(SoC)数据记录需要低功耗、大容量、可快速重复擦写的存储器。常用的介质主要有:动态存储器(DRAM)、静态存储器(SRAM)和闪速存储器(FLASH MEMORY)。DRAM容量大,但需要不断刷新才能保持数据,会占用微处理器时间,同时增加了功耗;SRAM虽然不需要动态刷新,但价格太贵,并且断电后跟DRAM一样数据都无法保存。FLASH MEMORY是一种兼有紫外线擦除EPROM和电可擦除可编程只读存储器(EEPROM)两者优点的新型非易失存储器。由于它可在线进行电可擦除和编程,芯片每区可独立擦写至少1000 000次以上,因而对于需周期性地修改被存储的代码和数据表的应用场合,以及作为一种高密度的、非易失的数据存储介质FLASH是理想的器件选择。在我们设计的系统中,处理器是Openrisc1200,所用的FLASH是AMD与富士公司的Am29LV160D芯片。利用FPGA实现接口,由于Openrisc1200(OR1200)采用WISHBONE总线,所以本设计的接口具有可移植性。

Am29LV160D芯片特点

Am29LV160D是一种仅需采用3.0V电源进行读写的闪存。该器件提供了70ns、90ns、120ns读取时间,无需高速微处理器插入等待状态进行速度匹配。为了消除总线竞争,芯片引入了片选使能(CE#),写使能(WE#)和输出使能(OE#)控制端口。芯片采用分块结构,非常适用于要求高密度的代码或数据存储的低功耗系统。

● 甚低功耗
---工作在5MHz时, 电流典型值为:
---睡眠模式下电流为200nA;
---备用模式下电流为200nA;
---读数据时为9mA;
---编程/擦除模式下电流为20mA。

● 灵活的分块结构
---一个16KB,两个8KB,一个32KB,和31个64KB块(字节模式);
---一个8KB,两个4 KB,一个16 KB,和31个32 KB块(字模式);
---支持整个芯片擦除;
---复杂的块保护特性。

● 具有内部嵌入算法
---内部嵌入擦除算法自动预编程和擦除整个芯片或任意块的组合;
---内部嵌入算法自动将给定地址的数据写入芯片及对其校验。

● 与JEDEC标准兼容

● 具有硬件RESET复位与Ready/Busy擦写查询管脚

● 具有擦除暂停与擦除继续功能

WISHBONE总线简介

WISHBONE总线规范是一种片上系统IP核互连体系结构。它定义了一种IP核之间公共的逻辑接口,减轻了系统组件集成的难度,提高了系统组件的可重用性、可靠性和可移植性,加快了产品市场化的速度。WISHBONE总线规范可用于软核、固核和硬核,对开发工具和目标硬件没有特殊要求,并且几乎兼容所有的综合工具,可以用多种硬件描述语言来实现。

灵活性是WISHBONE总线的另一个优点。由于IP核种类多样,其间并没有一种统一的间接方式。为满足不同系统的需要,WISHBONE总线提供了四种不同的IP核互连方式:

---点到点(point-to-point),用于两IP核直接互连;
---数据流(data flow),用于多个串行IP核之间的数据并发传输;
---共享总线(shared bus)(见图1),多个IP核共享一条总线;
---交叉开关(crossbar switch),同时连接多个主从部件,提高系统吞吐量。

FLASH接口的设计



由于OR1200采用的是WISHBONE共享总线,其地址线为32位,数据线也为32位。设计中采用将低位与FLASH相联接,并将接口位度设计为16位。原理框图如图2所示。逻辑接口部分采用FPGA来实现。系统选用Xilinx公司最新推出的90nm工艺制造的现场可编程门阵列芯片Spartan-3来实现接口设计,利用它的可编程性特性带来了电路设计的简单化和调试的灵活性。[page]

FLASH读接口设计

该接口可实现单周期读与块读功能,时序部分与WISHBONE兼容。由于采用的FLASH最大读周期时间至少为90ns,故只有在总线时钟工作在10MHz以下频率时可以直接将ACK_O端口与STB_I端口相联。当MASTER(指令CACHE)发出块读信号时,将发出一个LOCK_O=VIH信号给总线仲裁器,要求总线能不间断提供总线。其对SLAVE(FLASH接口部分)控制信号为:

---WE_I=VIL,CYC_I=VIH,STB_I=VIH,BYTE=VIH
---当MASTER结束块读时发出STB_O= VIL信号即可。其输出接口部分如图3所示。
---该输出接口模块源代码如下:
---module WBOPRT16(CLK_I, RST_I,WE_I,STB_I,ACK_O,DQ_I,DAT_O);
--- //WISHBONE SLAVE interface
---input CLK_I,RST_I,WE_I,STB_I;
---output ACK_O;
---output [15:0] DAT_O;
---//non-WISHBONE interface
---input [15:0] DQ_I;
---reg [15:0] DAT_O;
---always @(posedge CLK_I or negedge RST_I)
---begin :label_A
---if (!RST_I)
---DAT_O<=16'b0;//asynchronous reset
---else if ((STB_I & !WE_I)=='b1)
---DAT_O<=DQ_I;
---else 
---DAT_O<=DAT_O;
---end
---assign ACK_O=STB_I;
---endmodule



FLASH写接口设计

因为FLASH写命令需要多个时钟周期时间,其中采用Unlock Bypass模式时为2个时钟周期,采用正常写模式需要4个时钟周期,并且在对FLASH写和擦写时更是需要等待几十微秒到几秒钟的时间,因此对接口SLAVE必须引入写或擦写完成状态信号来控制总线数据的传输。为简化设计采用RY/BY引脚来判断。输出端口原理图与图3类似,只需对部分端口进行修改即可。
---为了能够对块保护的程序代码进行升级,特别设计了一个12V电源电路来实现暂时块写保护解除功能,如图4所示。利用Am29LV160D芯片提供的暂时块写保护解除模式——即通过对RESET#引脚加VID电压。在该模式下先前被保护的块可以通过块地址选中来进行编程和擦除。并且一旦VID移除所有先前保护的块恢复到保护状态。



图4中RV控制信号处采用了R=5kΩ,C=100pF,以便使得VID电压上升时间与下降时间≥500ns,从而满足相应的时序要求。肖特基二极管的引入保证了系统RESET信号被钳制在Vcc+0.3V以内。总体上来说,该电源隔离电路的引入对整个系统的成本影响很小,而使系统可以在线编程被保护的FLASH存储块。

在进行FLASH编程时部分要用到命令总线时序定义,如表1所示。

总结

本文介绍了AMD公司Am29LV160D芯片特点,并在此基础上设计了基于WISHBONE总线的接口。该接口设计方法对其他相关SoC总线接口设计具有直接的参考意义。

参考文献

1 AMD Am29LV160D Data Sheet .AMD Corporation
2 WISHBONE SoC Architecture Specification. 
Revision B.3. Silicore Corporation
3 邓良惠,梁国龙. 超大容量FLASH闪存与
关键字:WISHBONE总线  FLASH  闪存接口 引用地址:基于WISHBONE总线的FLASH闪存接口设计

上一篇:MPC850中复位逻辑和CPM协议的CPLD实现
下一篇:利用MCU实现超长的电池使用寿命

推荐阅读最新更新时间:2024-03-16 13:58

为什么单片机会用EEPROM作为data memory而不用flash
受单片机成本限制,用flash的话比如我要对某字节存储,那么就需要把整页都擦除,其他地方的数据要保留就得进行缓存,占用RAM资源较多。而用EEPROM就要方便操作,有能够节省本来就不多的单片机资源。 EEPROM,EPROM,FLASH 都是基于一种浮栅管单元(Floating gate transister)的结构。 EPROM 的浮栅处于绝缘的二氧化硅层中,充入的电子只能用紫外线的能量来激出,EEPROM 的单元是由FLOTOX(Floating- gate tuneling oxide transister)及一个附加的Transister 组成,由于FLOTOX 的特性及两管结构,所以可以单元读/写。技术上,FLASH 是结
[单片机]
ARM片外Flash存储器IAP解决办法
  以 ARM 芯片为处理器核的 嵌入式 应用系统,以其小体积、低功耗、低成本、高性能、丰富的片内资源以及对操作系统的广泛支持,得到了人们越来越多的青睐。在应用编程IAP(InAppl ic atAiONProgram)就是这样的自修改程序。它先在RAM存储器中写人数据值,然后使PC指向该存储段,把该段作为程序段来执行。很多ARM7芯片自带IAP处理器,应用其自带的IAP处理器可以方便地对其片内集成的Flash存储器进行在应用编程,但几乎所有的ARM核芯片均不支持片外IAP处理,因为片外Flash存储器是用户选型的,芯片生产厂家无法先知先觉,而不同Flash存储器其编程时序也不尽相同,导致芯片生产厂家无法提供通用的IAP代码。那么
[电源管理]
ARM片外<font color='red'>Flash</font>存储器IAP解决办法
STM32 Flash做为存储器储存数据
说到STM32的FLSAH,我们的第一反应是用来装程序的,实际上,STM32的片内FLASH不仅用来装程序,还用来装 芯片 配置、芯片ID、自举程序等等。当然, FLASH还可以用来装数据。 自己收集了一些资料,现将这些资料总结了一下,不想看的可以直接调到后面看怎么操作就可以了。 FLASH分类 根据用途,STM32片内的FLASH分成两部分:主存储块、信息块。 主存储块用于存储程序,我们写的程序一般存储在这里。 信息块又分成两部分:系统存储器、选项字节。 系统存储器存储用于存放在系统存储器自举模式下的启动程序(BootLoader),当使用ISP方式加载程序时,就是由这个程序执行。这个区域由芯片厂写入
[单片机]
TMS320VC5509在线烧写Flash并自举启动方法研究
摘 要: 为了解决TMS320VC55X系列DSP系统程序代码的保存问题,设计了一种利用JTAG接口,在线烧写Flash并实现自举启动的方法。这种在线编程的方法利用并行外部存储器加载(EMIF)接口将TMS320VC5509和Flash芯片相连接,通过搬移程序将应用程序的已初始化段按照C55X系列DSP引导表格式烧写进外部扩展的Flash存储器中,从而实现自举启动。该方法为DSP系统的软件维护和升级带来了方便,具有实际的应用价值。 关键词: TMS320VC5509;自举启动;在线编程;Flash 随着数字信号处理技术的快速发展,DSP被广泛应用于各种数字信号处理系统中。最终开发的系统若要脱离仿真器运行,必须将程序代码存储在
[嵌入式]
TMS320VC5509在线烧写<font color='red'>Flash</font>并自举启动方法研究
PLC在风电控制系统中的应用
一、概述 近年来随着国家对可再生能源扶持政策的进一步出台,可再生能源特别是风力发电呈现蓬勃发展的趋势,国内众多厂家正通过自主研发和技术引进等形式进行风电设备的成套工作。目前,国内生产厂家对高速齿轮箱、电机和叶片等已具有了独立生产能力,但作为风力发电控制系统的大脑——风电控制器,一直以来主要依靠国外技术引进。通过对国内主流风电设备生产厂家的控制系统研究发现,多数厂家的控制系统是和主机一起成套技术引进而来,如MITA和WINDTEC公司的产品。由于风电设备运行环境较为恶劣,安装空间有所限制,并且要求有很强的数据处理能力,因此现有的通用可编程控制器很难达到其技术要求。一是高低温要求,通用PLC运行温度一般为0℃~50℃,但风电设备要
[嵌入式]
Data I/O牵手Intel闪存部门,探讨NAND接口标准
Data I/O公司日前宣布与Intel闪存部门建立全球联盟,以为他们共同的客户带来更高的价值。双方公司将提供综合解决方案以减少上市的时间,并推动对英特尔的闪存设备和Data I/O的自动编程解决方案的采用和制造。 按照Data I/O的优先合作计划(Preferred Partnership Program),Data I/O将与英特尔的闪存部门协调,将资源用于实现在设备层面以及本地销售、营销以及技术层面的更紧密的客户支持。双方合作的领域包括: ·致力于向共同的客户提高蜂窝式消费电子产品、通讯产品。 ·计算和工业应用产品的服务质量和价值。 ·使协作的工程部门在由开发向制造的过渡中减少上市的时间。 ·通过精益生产和更高的品质程
[焦点新闻]
第48章 STM32F429的内部Flash和SPI Flash都使用MDK下载
48.1 初学者重要提示 SPI Flash的相关知识点可以看第31章和32章。 操作本章配套例子前务必先将SPI Flash的下载算法放到MDK安装目录。 本章节配套例子实现了将12点阵,16点阵,24点阵和32点阵中文全字库下载到外置SPI Flash。 注意不可以STM32F4的内部Flash和外部SPI Flash同时下载,依次下载即可,详情看此本章48.5和48.6小节即可。 48.2 内部Flash和SPI Flash都使用MDK下载的优势 通过这种方式,可以方便的更新SPI Flash中的数据,特别是全字库,图库,主题等资源文件的下载。 48.3 下载算法存放位置 编译例子:V6-025_SPI Flas
[单片机]
第48章 STM32F429的内部<font color='red'>Flash</font>和SPI <font color='red'>Flash</font>都使用MDK下载
ARM与Flash ROM
以ARM为核心的嵌入式设备,是一种以计算机为核心的产品,必须要有存储软件的存储器。单片机中软件存储在单片机芯片内的ROM存储器中,单片机的ROM容量很小,一般都小于1MBytes,所以ROM集成在芯片内。PC机要求的ROM比较大,主板上启动计算机用的BIOS存储在主板上一片1MBytes左右的Flash ROM中,操作系统和应用程序存储在硬盘中。ARM产品因为体积的缘故,通常都不用硬盘,但软件的体积一般都在几MBytes以上,通常在芯片外扩展联接容量较大的Flash ROM存储软件。 Flash ROM分为两种:NOR Flash ROM 和 NAND Flash ROM。NOR Flash ROM 用法类似于SDRAM 内存,有地
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved