基于SOPC的Flash数据烧写_第1页
基于SOPC的Flash数据烧写_第2页
基于SOPC的Flash数据烧写_第3页
基于SOPC的Flash数据烧写_第4页
基于SOPC的Flash数据烧写_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于SOPC的Flash数据烧写作者;王晓雁,黄孜理,汪一鸣摘要:随着EDA技术的开展和可编程逻辑器件性能的不断进步,可编程片上系统技术为系统设计提供了一种简单、灵敏、高效的途径,而NisII嵌入式处理器是Altera公司新近开发的可编程片上系统解决方案。本文简单介绍了基于NisII的可编程片上系统的系统设计,并以Flash数据烧写为实例,讨论了在应用过程中遇到的一些问题和解决方案。关键词:可编程片上系统;嵌入式处理器;Flash烧写;同步动态随机存储器引言随着微电子技术的飞速开展,集成电路设计和工艺技术程度有了很大的进步,从而使得由许多I组成的电子系统集成在一个单片硅片上已成为可能,构成所谓

2、的片上系统Systenhip,S。对于一些仅为小批量应用或处于开发阶段的S,假设马上投入消费,风险较大,SPSystenaPrgraablehip技术的出现为此提供了有效的解决方案。SP是以大规模FPGA为物理载体进展的系统芯片的设计,是基于FPGA解决方案的S,简单易行而且本钱低廉。构成SP的方案有多种途径,其中将IP软核嵌入FPGA的SP系统被广泛使用,目前最具有代表性的软核嵌入式处理器是Altera的Nis和NisII核。Nis嵌入式PU是一种专门为SP设计应用而优化的PU软核,NisII是继之推出的第二代Nis嵌入式处理器,处理性能更高。随着现代设计越来越复杂化,FPGA中片内存储器的

3、资源早已不能满足用户的需要,往往需要使用外部存储器来解决问题。其中,Flash烧写就提供了一个有效手段。一般地,烧写Flash最常用的方法是用编程器把程序或数据写入Flash,但假如要把Flash存储器和芯片比方FPGA芯片连接起来使用,那么就需要用硬件来做成一个接口模块,而如今很多FPGA开发板本身就带有Flash存储器,这就为FPGA芯片和Flash通信提供了方便,而且NisIIIDE为此提供了一个方便的Flash编程方法,任何连接到FPGA的兼容通用闪存接口FI的Flash器件都可以通过NisIIIDE闪存编程器FlashPrgraer来烧录。虽然NisIIIDE闪存编程器FlashPr

4、graer为FPGA开发板提供了一种Flash烧写方法,但是使用它更多地是为了将程序烧入Flash,防止每次上电时需要下载程序的费事。假如仅仅想把大量数据写入Flash存储器,作为系统的输入信息使用,那么可以采用一种更为简单、方便的方法。本文提出的即是一种基于SP开发的Flash数据烧写方法。它利用SP开发过程,把Flash作为普通的外设来对待,待数据写入Flash后,SP系统所占的资源就可以释放,所以它为Flash数据烧写提供了一种简单、方便并且可以节省FPGA资源的有效方法。1基于NisII的SP开发与传统嵌入式系统设计不同,Nis系统的开发分硬件开发和软件开发两个流程。硬件开发过程主要由

5、用户定制系统硬件,软件开发在NisIIIDE中完成,NisII使用NisIIIDE集成开发环境来完成整个软件工程的编辑、编译、调试和下载。图1所示的是基于NisII的SP系统开发流程。设计规划将硬件程序下载至开发板上将软件程序下载至开发板上SP系统实现硬件设计定义NisII处理器系统SPBuilderSPBuilder分配引脚、编译硬件QuartusII生成系统模块SPBuilder软件设计根据硬件系统生成HALNisIIIDE编写应用程序NisIIIDE编译、连接、调试NisIIIDE图1基于NisII的SP系统开发流程NisII的硬件设计是为了定制适宜的PU和外设,利用SPBuilder的

6、图形用户界面,可以快速方便地定义和连接复杂的系统。系统定义过程中,可对PU和各外设模块的特性、大小及在系统中地址分配等进展设定。接着让SPBuilder帮助NisII开发者生成SP系统,实际上,它是用生成的.ptf文件来描绘NisII处理器系统。同时,也生成了用于QuartusII编译的HDL文件。在完成上述操作之后,使用QuatusII软件对NisII系统上的各种I/口进展引脚分配,并且进展硬件编译。在编译的过程中,QuatrusII从HDL源文件综合生成一个合适目的器件的网表。最后,将生成的配置文件下载到开发板上。NisIIIDENisII集成开发环境为NisII的软件开发提供了一个平台,

7、利用它可以向生成的SP系统写入程序。在进展软件开发时,会涉及到与硬件设备的通信问题。HAL硬件抽象层系统库工程包括所有和硬件处理器相关的接口,它是在NisIIIDE中建立一个新的工程时,由IDE根据SP系统自动生成的。用户在NisIIIDE环境中编写软件程序,实际是基于HAL系统库的应用程序,通过HAL系统库,与硬件设备联络起来。程序编辑完之后,使用NisIIIDE的编译器、调试器对软件工程进展编译、调试。一切顺利通过之后,就可以将软件下载到开发板上,并可以在硬件上运行。转贴于论文联盟.ll.2开发实例2.1Flash烧写这里以Flash数据烧写为例,详细讨论基于NisII的SP开发,本实例是

8、针对一次性向Flash写入大量数据的设计方案,首先是设计规划,即软、硬件的划分问题,之后就分硬件开发和软件开发两局部分别讨论。2.2硬件开发本设计使用的开发板是ylneEP16Q2408。采用的FPGA芯片是ylne系列的EP16。开发板上还附有8byte的SDRASynhrnusDynaiRandAessery和2byte的Flash存储器。图2就是最终的系统工程文件。它的开发过程如下。由于NisII开发时采用默认的系统时钟50Hz,即图2中SP系统时钟lk,而核心板上的晶振是25Hz,所以需要添加一个锁相环PLL模块,将频率提升到50Hz再供应系统。图2系统工程文件首先定义NisII处理器

9、系统,它是为Flash数据烧写特别定制的,所以使用了最精简的系统组件。它们分别是:1PU核,这里选择了经济型的NisII,因为它占用最少的逻辑单元;2n-hipery,为系统添加内存储器,使用FPGA内部RA资源,速度快,但存储容量较小,这里定义了4KB的RA;3JTAGUART,它主要用于在线调试,在调试中,只要配置了PU、n-hipery和JTAGUART就可以完成一个最小系统;4Avaln三态总线桥AvalnTri-StateBridge,AvalnTri-StateBridge也可以称作是外部RA总线,在NisII开发板上,要实现NisII系统和FPGA片外存储器通信,就需要Avaln

10、三态总线桥;5SDRA控制器,SDRA可以提供更大的存储容量,解决片内RA不够用的情况,它通过Avaln三态总线桥接入NisII系统中;6参加Flash接口,它的参加类似P机接入了硬盘,用于存放程序和数据,并且具有非易失性,这里用它来存放要写入的数据。其次,在自动分配基地址和中断后,进展SP系统地址的分配。这里由于软件程序较长,Resetaddress就设置为SDRA。接着利用SPBuilder就可以生成SP系统,并且生成用于综合的硬件描绘语言HDL。硬件设计的最终目的是为软件开发提供一个平台,所以最后还是要通过对工程文件的编译来获得配置文件,通过JTAG口下载配置信息,从而实如今FPGA芯片

11、中建立硬件系统。在此之前,分配引脚的过程是非常重要的,如图2中,除了时钟和复位引脚以外,其余的都是关于SDRA和Flash的引脚。使用了SDRA,就需要给它分配时钟,根据SDRA的芯片HY57V641620HG(L)T-7,时钟应为100Hz,所以利用锁相环倍频至100Hz,供应SDRA的时钟,即图2中的sd_lk。图2中,sd_addr和sd_data是SDRA的地址和数据线,它们分别是12位和16位。由于SP系统的地址总线为“tri_state_bridge_0_address20.0共21条地址线,而Flash芯片A29LV160只有20位地址线,所以必须将“tri_state_brid

12、ge_0_address20.0的高20位地址线与Flash的20位地址线对齐,同时由于所选用的Flash芯片是16位数据总线,每次读写16位,因此只用到“tri_state_bridge_0_address20.0的高20位地址总线。关于SDRA、Flash的控制和片选信号也通过其余的引脚表示出来了。除此之外,不同型号的片外存储器如SDRA、Flash的操作时序都可能不同,所以在定制系统组件时要根据所选用的芯片,对它们的时序做出正确的设置,否那么将使NisII不能工作或者工作不稳定。2.3软件开发通常来说,往往是因为数据量很大才需要把数据写入Flash中,这些数据很可能是以特殊方式保存下来的

13、,比方在atlab环境中经过数据处理被保存在数据文件.at中。本设计的软件开发就是实现向Flash写入数据,而这个过程是在NisIIIDE的/+编程环境下完成的,如何在该环境中引用那些被保存的数据成为了一个关键问题。这里提出的一个解决方法是:运用文件这个概念。该方法的主要思路是:首先在ATLAB中编写程序把需要保存的数据保存在某个文件中,如data.h;关于保存数据的文件的途径,建议使用绝对途径,并且将它存放在软件工程文件夹下;然后在/+环境中,添加头文件#inlude,这样就可以在该环境下直接引用data.h中的数据。其次,由于在开发过程中是把Flash当作普通外设来对待的,需通过访问Fla

14、sh的方法来向Flash写数据,因为本设计是针对一次性向Flash写入大量数据,并且无需保存Flash中原来的数据,因此不会涉及到Flash的跨块擦除问题,故采用简单访问Flash的方法。使用Flash的操作函数时,需包含头文件“sys/alt_flash.h。编辑完程序后,假如直接编译,会出现存储容量不够的问题,可以通过以下方法解决。在系统库属性中做一些编译前设置。程序是默认存储在n-hipery中的,这里需要改为SDRA。可以选中“Redueddeviedriver和“SallLibrary,去掉“leanexit选择,这样可以使程序变校NisII程序编译Build通过,就可以下载至已配置

15、好硬件信息的开发板上,但往往会出现运行Run不起来的问题,原因有很多种,比拟典型的有以下几种可能:使用了SDRA却没有合理分配时钟;管脚分配出现问题;SDRA、Flash的时序设置不正确。应仔细检查,排除这些问题。成功运行后,说明已把数据写入了Flash,如想要进一步确认,可以采用对Flash的读操作来进展验证。3结论NisII是一个性价比拟强大的嵌入式处理器软核,结合SP技术,可以有效地实现系统功能。它实际上是一个软硬件复合的系统。与普通的嵌入式系统开发相比,具有更多的优势。在介绍了基于NisII的SP系统的一般开发流程之后,本文以Flash数据烧写为例,详细地说明了软硬件开发过程中需要注意的问题。特别是在软件设计过程中,运用了文件的概念来引用保存在atlab数据文件.at中的数据。另外,针对一次性向Flash写入大量数据这个问题,使用了简单访问Flash的方法,既简单又保证了正确性。在硬件开发中,从节省资源的角度考虑,只为该系统定制了所需的系统组件。总的来说,这为Flash数据烧写提供了一个简单有效的手段。参考文献1Alterarpr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论