当前位置:首页 > 消费电子 > 消费电子
[导读] 摘要:Nand Flash以其优越的特性和更高的性价比,在现代数码产品中得到了广泛的应用。在片上系统芯片中集成Nand Flash控制器成为一种趋势。本文提出了在一款基于ARM7TDMI CPU CORE的片上系统( SoC)芯片中的Nand Fl

    摘要:Nand Flash以其优越的特性和更高的性价比,在现代数码产品中得到了广泛的应用。在片上系统芯片中集成Nand Flash控制器成为一种趋势。本文提出了在一款基于ARM7TDMI CPU CORE的片上系统( SoC)芯片中的Nand Flash控制器实现方案。通过直接内存存取(DMA)的数据传输方式,使Nand Flash的数据传输速率得到了一定提高,满足了实际应用的设计要求。该设计方法已通过了RTL级验证、FGPA验证,并在实际芯片的演示样机上得到了具体实现。

关键词:片上系统;Nand Flash;直接内存存取

1 引 言

    Flash因为具有非易失性及可擦除性在数码相机、手机、个人数字助理( PDA)、掌上电脑、MP3播放器等手持设备中得到广泛的应用。自1989年东芝公司发表了Nand Flash结构以来, Nand Flash以其相对于Nor Flash具有更小的体积,更快的写入和擦除速度,更多次的可擦除次数,以及更低廉的每bit价格得到了迅速发展。大容量的Nand Flash特别适合现在数码设备中大数据量的存储携带,可以降低成本,提高性能。

ARM7TDMI是世界上广泛使用的32位嵌入式RISC低端处理器内核,在基于ARM7TDMI内核的SoC( System on Chip )芯片中集成Nand Flash控制器将大大扩宽芯片应用范围、降低芯片成本、提升产品性能。但是,Nand型闪存的使用相对于Nor型闪存在硬件设计和软件控制上都有相当的难度,值得在技术上进一步探索和研究。

2 Nand Flash的结构特点对其读写的限制

   笔者选用的Nand Flash是东芝TC58512FT(见图1) ,该款的Nand Flash 以528个byte 组成一个页(page) , 32个页组成一个块( block) ,由4096个块组成整个Flash存储器。在每页中前512bytes是用于存储数据,而后16bytes则用于存放ECC数据校验码,称为OOB(Out of Bank)区。对Nand Flash读出和写入是以页为单位,而对其擦除则是以块为单位,在存储组织上和硬盘采用的方式类似。在读出和写入时数据量都必须是页大小的整数倍,这一点上和NorFlash可以随机读写的方式完全不同,但对于大数据量的读写而言这正是Nand Flash其优点的体现。

   基于Nand Flash特殊的组织结构,在设计时考虑了一种适合其读写按单位大小特点的传输方式,即利用DMA(DirectMemory Access)方式,每次读写配置DMA通道,使传输一整页的数据量。在传输过程中, DMA 模块占用总线,传输完成后,释放总线。因为DMA地数据传输效率要高于CPU CORE通过直接向Flash发送指令然后读写Nand Flash I/O口数据,所以这样的设计有利于提高读写速度,从而提高Nand Flash控制器性能。

图1 TC58512FT 512M-bit   Nand Fla sh组织结构图

3 Nand Flash控制器的结构和工作流程

  如图2所示,Nand Flash控制器和DMA控制器(DMAC) 都是AMBA (ARM 总线标准) 高速总线AHB上的master模块,都包含符合AMBA标准的总线接口模块与之交互工作。

图2 Nand Flash控制器和DMA模块组织结构图

Nand Flash控制器包含总线接口模块,控制状态机转换的状态控制模块,用以缓冲数据、收发命令和状态字的寄存器组,提供ECC校验纠错码的ECC算法编程/解码器模块和直接控制“裸”Nand Flash体的接口模块。

   总线接口模块负责接受ARM CORE(CPU核)发送的指令,将收发数据送至相应数据寄存器和指令寄存器,并将状态寄存器内容返回给CORE。寄存器组负责整个Flash控制器的控制工作,包含指令、状态、数据、错误地址寄存器等等,是控制器的核心。ECC算法编程/解码器模块提供校验功能,提供纠错信息。

   状态控制模块提供包括命令字发送状态组、地址发送状态组、读状态组、写状态组共21种Nand Flash状态的翻转,用以发出对Nand flash读写控制信号。与Nand Flash直接连接的接口模块提供Nand Flash体工作电压、使能和动作时所需的相应的电平状态,例如图3所示读时序要求。该模块受到状态机控制模块的控制。该控制器对电平的控制 简化了软件工作,驱动软件不必再按照读写时序配置繁琐的控制电平。

图3 Nand Flash读时序图
 
以从Nand Flash中读取一页数据块到内存首地址0x30000000为例,分析该控制器的工作过程。首先,由ARM CORE发出配置DMA某一通道的指令,配置DMA源地址寄存器为Nand Flash数据寄存器地址,目标地址寄存器为0x30000000,配置DMA _Control、DMA _ Config 寄存器, 设定DMA传输的Burst传输大小、数据宽度、总数据量(应为页大小512bytes)等等并使能该通道,等待其他master模块发送的请求信号;其次,配置Nand Flash控制器的地址寄存器(指定从Flash 中哪一页读取数据) 和Nand _ Config 寄存器; 最后, 发送读命令字0x80000000,向DMAC发出传输请求信号。一旦请求被接受,DMAC占用AHB总线,开始高速块传输。

Nand Flash控制器不断从Nand Flash体中通过8位I/O口分4次读取32位数据放置到Flash数据寄存器中,DMA从该数据寄存器中读取数据到DMA数据缓冲fifo中。当fifo内数据量达到设定的Burst大小时,运送至指定内存地址, DMA数据计数器减1,然后继续从Nand Flash数据寄存器中读取数据,填充DMA数据缓冲区,直至计数器至0,即完成预先设定搬运数量, DMA释放总线,这样就完成一页数据的读取工作。如果继续读,则需要由CORE重新发起命令,配置DMA和Nand Flash各寄存器。当然,DMAC和Nand Flash必须用同一个HCLK进行同步,保持模块间动作的一致。而向Nand Flash中写数据,控制过程大致相同,数据流方向相反。

相比与直接由CORE 发送命令字给NandFlash,然后直接从I/O 口读写数据的工作方式而言,通过DMA方式的传输,效率明显要高。特别在连续读取大批量数据的情况下,这种工作方式优点能更好的体现。在实际产品应用中(如数码照片的存取) ,读写数据量一般都是页大小的上千倍,所以这样的设计有助于提高实用性。出于SOC芯片面积和功耗的考虑,简化了通用控制器的一些功能,如识别芯片型号。因为在具体应用时,具体的NandFlash型号是确定的,只需在驱动开发时跳过这一步,直接填上具体已知的信息即可。

4 模块验证和应用开发

4. 1 模块验证
该模块已经先后通过了带有ARM7TDMI CORE的SUN服务器上进行寄存器级(RTL)仿真、后仿真验证和在ARM FPGA开发板上的验证,并在实际芯片演示样机上得到了具体的应用验证。编写测试向量( Testbench)在SUN服务器上进行VCS验证,截图见图4。图中信号内容为系统总线信号。


图4 SUNSERVER Nand Fla sh控制器RTL信号仿真时序图
  
在ARM FPGA开发板上,使用ADS开发套件和ARM Multi - ICE进行验证程序的屏幕截图见图5。



图5 ARM ADS开发系统界面
  
内存区内显示的是用C语言编写的测试程序。一般过程是先擦除Flash某块地址的数据,然后向该地址写入一定量数据,再将其读出,在内存区就可以看到开发板上SDRAM或者SRAM的内容,该内容应该和写入的数据完全一致,如果一致则读写都成功。ADS开发套件的使用在此就不展开描述。

4. 2 关于bootloader和从Nand Flash启动系统
由于Nand Flash生产厂家保证第一个block是available block (可用块) ,可以把启动代码( bootloader)放置在Flash的第一个page内,以实现从NandFlash启动系统。设置外部跳线,选择系统从Nand Flash启动方式。当带有芯片的系统板上电启动时, DMAC默认占用系统总线,自动从Nand Flash的第一个page搬运数据(即事先烧入的bootloader程序)到芯片片内的ESRAM,并从ESRAM开始顺序执行bootloader语句。
该段代码用汇编语言编写,完成的主要工作是:
(1) 片外存储控制器( EMI)的初始化,使内存可读写;
(2) 搬运存储在Nand Flash中的操作系统Kernel代码到较大容量的内存(一般是SDRAM) ,然后设置remap寄存器,使Kernel所在内存地址指向零,以满足中断向量表必须从零地址开始存放的要求;
(3) 最后设置程序计数器( PC)到零,从Kernel代码开始运行,真正的开始启动操作系统。
上述应用在实际芯片的演示样机中已经得到具体的实现,达到了预期的设计目的。

5 结束语

本文提出了在一款片上系统( SoC)芯片设计中的Nand Flash控制器实现方案,并介绍了验证过程和应用。该设计方案已在成品芯片的演示样机的应用中得到证实,具有相当的应用价值,达到了预期设计效果。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

加利福尼亚州 坎贝尔 – 2024 年 5月 21 日 – Arteris, Inc.(纳斯达克股票代码:AIP)是一家领先的系统 IP 供应商,致力于加速片上系统(SoC)的创建,晶心科技(台湾证券交易所股票代码:65...

关键字: 片上系统 RISC-V 人工智能

2024年5月6日 – 专注于引入新品的全球电子元器件和工业自动化产品授权代理商贸泽电子 (Mouser Electronics) 即日起开售Analog Devices, Inc. (ADI) 的MAX32690微控制...

关键字: 可穿戴设备 微控制器 片上系统

美光 2500 SSD 采用业界领先的 QLC NAND,性能远超竞品

关键字: 数据中心 SSD NAND

【2024年4月10日,德国慕尼黑讯】英飞凌科技股份公司(FSE代码:IFX / OTCQX代码:IFNNY)推出了业界首款-48 V宽输入电压数字热插拔控制器XDP700-002,扩展了其XDP™数字功率保护控制器系列...

关键字: 控制器 晶体管 5G

【2024年4月10日,德国慕尼黑和美国加利福尼亚州旧金山讯】全球功率系统和物联网领域的半导体领导者英飞凌科技股份公司(FSE代码:IFX / OTCQX代码:IFNNY)宣布其OPTIGA™ Trust M安全控制器现...

关键字: 物联网 控制器 供应链

作为全球最大数据产生国之一,随着数据规模的成倍增长,中国对更高性能数据中心的需求日益迫切。根据IDC Global DataSphere对每年数据产生量的预测,全球数据量的复合年增长率(CAGR)将达到 21.2%,并在...

关键字: 数据中心 CXL技术 控制器

北京,2024年4月8日,运动与控制领域的先行者——派克汉尼汾携APK系列控制器、CRV系列工业电磁阀、RRV系列快开电磁阀和SEHI系列电子膨胀阀组等新品亮相2024中国制冷展,并展示公司在商超冷库、冷水机组、环测设备...

关键字: 控制器 工业电磁阀 数据中心

为增进大家对视频控制器的认识,本文将对视频控制器模块设计、视频控制器的特殊技术予以介绍。

关键字: 控制器 指数 视频控制器

PLC(可编程逻辑控制器)和单片机是两种不同的控制设备,它们之间存在明显的区别:

关键字: 单片机 plc 控制器
关闭
关闭