基于FPGA的多MCU读写NANDFlash的实现方法技术

技术编号:13739911 阅读:152 留言:0更新日期:2016-09-22 16:25
本发明专利技术提供一种基于FPGA的多MCU读写NANDFlash的实现方法,利用FPGA强大的逻辑运算和方便的时序电路设计能力,巧妙地设计控制开关Act_A、Act_B……Act_N寄存器型变量作为MCU_1、MCU_2……MCU_N选通NANDFlash的开关,Act_A、Act_B……Act_N只有高低电平两种状态,彼此互锁,同一时刻只能有一个控制开关为高电平状态,保证同一时刻只有一个MCU读写NANDFlash;利用FPGA作为中间桥梁,不仅简化了硬件电路结构,降低了成本,也解决了越来越多的电子设备以及工业领域中多MCU访问存储设备冲突的问题;同时FPGA又能方便地进行时序电路的设计,使得多MCU读写NANDFlash的控制程序具有广泛的移植性,大大简化了编程的难度。

【技术实现步骤摘要】

本专利技术属于电子设计自动化领域,具体涉及一种基于FPGA的多MCU读写NANDFlash的实现方法
技术介绍
如今与人们生活息息相关的电子产品,小到优盘,闪存卡、电脑、以及数码相机、手机等各类随身移动的闪存式数码存储产品,大到固态硬盘等产品最重要的组成部分之一正是NANDFlash闪存芯片。非易失性NANDFlash存储芯片具有存储密度高、功耗低、芯片引脚兼容性好、掉电不丢失数据、短时间内不需要重新刷新数据等特性。随着芯片的集成度越来越高,加之越来越多的电子设备对数据存储提出了更高的要求,NANDFlash在最近几年得到了突飞猛进的发展,容量不断增大,单位容量的成本也大幅下降,生产工艺也在不断进步,NANDFlash的应用领域势必也会越来越多。多功能的电子设备往往设有多个MCU,使用时会出现多个MCU访问同一NANDFlash的情况,但由于NANDFlash没有单独的地址和数据总线,NANDFlash使用复杂的I/O口来串行地存取数据,8个I/O引脚用来传送控制、地址和数据信息。理论上每个NANDFlash只能连接一个MCU,当需要多个MCU访问NANDFlash时,会出现引脚不足的现象,若每个MCU配置一个NANDFlash,既使得硬件电路图变得复杂,同时也增加了成本。
技术实现思路
为了克服上述现有技术存在的缺陷和不足,本专利技术提供了一种基于FPGA的
多MCU读写NANDFlash的实现方法,采用FPGA作中间桥梁,既解决了多MCU访问同一NANDFlash的问题,方便了数据的存储,同时也简化了系统结构和布局布线,降低了成本。为达到上述目的,本专利技术所述的基于FPGA的多MCU读写NANDFlash的实现方法,主要包括以下步骤:1)硬件设计上采用FPGA作中间桥梁,将多个MCU模块分布于FPGA周围,以总线方式与FPGA进行数据交换;2)软件上实现多MCU模块读写NANDFlash的控制,在FPGA中首先进行寻址设计,通过MCU模块与FPGA通讯地址总线的高四位地址和地址锁存信号ALE来设计16个片选信号CS[16],片选信号CS[16]负责选通需要读写的MCU模块;利用MCU模块的低五位地址和地址锁存信号ALE设计32个寻址信号MCUportL[32],寻址信号MCUportL[32]负责选通每个MCU模块里的读写控制;3)在FPGA中的NANDFlash读写模块中,设计控制开关Act_A、Act_B……Act_N寄存器型变量作为MCU_1、MCU_2……MCU_N选通NANDFlash的开关,控制开关Act_A、Act_B……Act_N只有高低电平两种状态,彼此互锁,同一时刻只能有一个为高电平状态,保证同一时刻只有一个MCU读写NANDFlash。进一步,所述步骤2)中在FPGA中利用MCU_n与FPGA通讯的读信号RD与片选信号CS[n]进行或运算构成读选通信号RD_n;利用MCU_n与FPGA通讯的写信号WR与片选信号CS[n]进行或运算构成写选通信号WR_n。进一步,在MCU_n读写NANDFlash之前,首先检测此时有没有其它MCU模块正在访问NANDFlash,在MCU_n中执行到该检测程序时,相应的FPGA中
的读选通信号RD_n和寻址信号MCUportL_n_[i]进行按位与运算触发读控制信号Act_n_RD,如果此时没有其它MCU访问NANDFlash,即其它n-1个控制开关为低电平,表示除Act_n之外其它所有控制开关Act,控制开关Act_n在读控制信号Act_n_RD的上升沿和控制开关为低电平的情况下被置为高电平,当MCU_n读取到控制开关Act_n信号为高电平时才会执行后续读写操作,否则会报错跳出程序;MCU_n的控制开关Act_n若为高电平,同时会将其它的MCU的控制开关锁为低电平,控制开关Act_n为高电平,FPGA中NANDFlash模块的输入输出信号选通到FPGA中MCU_n模块相对应的信号。进一步,MCU_n访问完NANDFlash后,MCU_n会向FPGA发送Act_n的清零指令,利用写信号WR_n和寻址信号MCUportL_n_[i]触发FPGA中的清零信号Act_n_Clr,清零信号Act_n_Clr将控制开关Act_n置为低电平,此时MCU_n访问NANDFlash完毕,其它等待的MCU检测到此时的状态便可访问NANDFlas。4)当出现两个MCU(MCU_i、MCU_j,已设定MCU_i读写优先级高于MCU_j)在同一时刻同时访问NANDFlash时,这两个MCU的读控制开关Act_i_RD、Act_j_RD同时被置为高电平,由于这两个MCU的控制开关Act_i、Act_j初始状态均为低电平,随即这两个控制开关Act_i、Act_j被触发为高电平,由于MCU_i读写优先级高于MCU_j,MCU_i的控制开关Act_i为高电平的同时会将MCU_j的清零信号Act_j_Clr置为高电平,高电平的清零信号Act_j_Clr又会将控制开关Act_j置为低电平,即Act_i为高电平,Act_j为低电平,实现了高优先级的MCU_i优先访问NANDFlash,待MCU_i访问完NANDFlash后MCU_j
再访问NANDFlash,保证了同一时刻只有一个MCU读写NANDFlash。当出现两个以上的MCU在同一时刻同时访问NANDFlash时,原理相同。本专利技术具有以下有益效果:本专利技术所述的基于FPGA的多MCU读写NANDFlash的实现方法实现多MCU读写NANDFlash的过程中,利用FPGA强大的逻辑运算和方便的时序电路设计能力,巧妙地设计控制开关Act_A、Act_B……Act_N寄存器型变量作为MCU_1、MCU_2……MCU_N选通NANDFlash的开关,Act_A、Act_B……Act_N只有高低电平两种状态,彼此互锁,同一时刻只能有一个控制开关为高电平状态,保证同一时刻只有一个MCU读写NANDFlash。进一步,任意一个MCU读写完NANDFlash后,该MCU都会发送相应的清零指令,将控制开关Act_n置为低电平,保证其它MCU可以顺利读写NANDFlash。FPGA具有多达上百个的I/O引脚,可以连接大量的外设,同时FPGA又能方便地进行时序电路的设计,利用FPGA作为中间桥梁,不仅简化了硬件电路结构,降低了成本,也解决了越来越多的电子设备以及工业领域中多MCU访问存储设备冲突的问题。同时FPGA又能方便地实现时序电路,使得多MCU读写NANDFlash的控制程序具有广泛的移植性,大大简化了编程的难度。【附图说明】图1为本专利技术的系统结构原理图。图2为本专利技术中实施例一的RTL逻辑电路图。图3为本专利技术中实施例一的仿真实验结果图。【具体实施方式】下面结合附图和实施例对本专利技术作进一步的详细说明,但不限于这些实施例。本专利技术所述的基于FPGA的多MCU读写NANDFlash的实现方法,主要包括以下步骤:1)硬件设计上采用FPGA作中间桥梁,结合FPGA具有上百个I/O引脚的特点,将多个MCU分布于FPGA周围,以总线方式与FPGA进行数据交换。2)软件上实现多MCU读写NANDFlash的控本文档来自技高网
...

【技术保护点】
基于FPGA的多MCU读写NANDFlash的实现方法,其特征在于包括以下步骤:1)硬件设计上采用FPGA作中间桥梁,将多个MCU模块分布于FPGA周围,以总线方式与FPGA进行数据交换;2)软件上实现多MCU模块读写NANDFlash的控制,在FPGA中首先进行寻址设计,通过MCU模块与FPGA通讯地址总线的高四位地址和地址锁存信号ALE设计16个片选信号CS[16],片选信号CS[16]负责选通需要读写的MCU模块;利用MCU模块的低五位地址和地址锁存信号ALE设计32个寻址信号MCUportL[32],寻址信号MCUportL[32]负责选通每个MCU模块里的读写控制;3)在FPGA中的NANDFlash读写模块中,设计控制开关Act_A、Act_B……Act_N寄存器型变量作为MCU_1、MCU_2……MCU_N选通NANDFlash的开关,控制开关Act_A、Act_B……Act_N只有高低电平两种状态,彼此互锁,同一时刻只能有一个为高电平状态,保证同一时刻只有一个MCU读写NANDFlash。

【技术特征摘要】
1.基于FPGA的多MCU读写NANDFlash的实现方法,其特征在于包括以下步骤:1)硬件设计上采用FPGA作中间桥梁,将多个MCU模块分布于FPGA周围,以总线方式与FPGA进行数据交换;2)软件上实现多MCU模块读写NANDFlash的控制,在FPGA中首先进行寻址设计,通过MCU模块与FPGA通讯地址总线的高四位地址和地址锁存信号ALE设计16个片选信号CS[16],片选信号CS[16]负责选通需要读写的MCU模块;利用MCU模块的低五位地址和地址锁存信号ALE设计32个寻址信号MCUportL[32],寻址信号MCUportL[32]负责选通每个MCU模块里的读写控制;3)在FPGA中的NANDFlash读写模块中,设计控制开关Act_A、Act_B……Act_N寄存器型变量作为MCU_1、MCU_2……MCU_N选通NANDFlash的开关,控制开关Act_A、Act_B……Act_N只有高低电平两种状态,彼此互锁,同一时刻只能有一个为高电平状态,保证同一时刻只有一个MCU读写NANDFlash。2.如权利要求1所述的基于FPGA的多MCU读写NANDFlash的实现方法,其特征在于:所述步骤2)中在FPGA中利用MCU_n与FPGA通讯的读信号RD与片选信号CS[n]进行或运算构成读选通信号RD_n;利用MCU_n与FPGA通讯的写信号WR与片选信号CS[n]进行或运算构成写选通信号WR_n。3.如权利要求2所述的基于FPGA的多MCU读写NANDFlash的实现方法,其特征在于:在MCU_n读写NANDFlash之前,首先检测此时有没有其它MCU模块正在访问NANDFlash,在MCU_n中执行到该检测程序时,相应的FPGA中的读选通信号RD...

【专利技术属性】
技术研发人员:陶涛杜志国刘星梅雪松马星星
申请(专利权)人:西安交通大学
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1