职称论文发表 发表论文
职称论文 发表论文 合作流程 联系方式 论文发表
职称论文发表 会员登录 用户名: 密码: 我要注册
职称论文发表网   首页   经济论文 |法学论文 |理工科论文 |管理学论文 |计算机论文 |文史论文 |医学论文 |教育论文 |艺术论文 |社会学论文 |政治论文 |试题 |应用文 |论文投稿 |职称评定 |教案 |论文关键词 |电子商务 |体育论文 |学术机构 |发表论文 |教育资讯 |医学资讯 |物联网论文 |中国论文网 | 职称论文
职称论文 本站论文搜索
职称论文 设为首页 职称论文发表网 收藏本站 职称论文发表 联系我们
职称论文  首页-->计算机论文-->计算机理论论文-->文章正文
基于SOPC的Flash数据烧写

作者 :王晓雁,黄孜理,汪一鸣更新时间:2012-11-12

职称论文发表
职称论文发表 专业提供:发表论文、论文发表、毕业论文、职称论...
住在汉口网
住在汉口网是一个专业提供汉口房产信息、车辆服务、生活服务、招...
职称论文网
职称论文网提供:发表论文、论文发表、毕业论文、职称论等服务。
 (苏州大学电子信息学院,江苏苏州 215021)
摘要: 随着EDA技术的发展和可编程逻辑器件性能的不断提高,可编程片上系统技术为系统设计提供了一种简单、灵活、高效的途径,而Nios II嵌入式处理器是Altera公司新近开发的可编程片上系统解决方案。本文简单介绍了基于Nios II的可编程片上系统的系统设计,并以Flash数据烧写为实例,讨论了在应用过程中遇到的一些问题和解决方案。
关键词: 可编程片上系统;嵌入式处理器;Flash烧写;同步动态随机存储器
引言
随着微电子技术的飞速发展,集成电路设计和工艺技术水平有了很大的提高,从而使得由许多IC组成的电子系统集成在一个单片硅片上已成为可能,构成所谓的片上系统(System On Chip, SOC)。对于一些仅为小批量应用或处于开发阶段的SOC,若马上投入生产,风险较大,SOPC(System On a Programmable Chip)技术的出现为此提供了有效的解决方案。SOPC是以大规模FPGA为物理载体进行的系统芯片的设计,是基于FPGA解决方案的SOC,简单易行而且成本低廉。
构成SOPC的方案有多种途径,其中将IP软核嵌入FPGA的SOPC系统被广泛使用,目前最具有代表性的软核嵌入式处理器是Altera的Nios和Nios II核。Nios嵌入式CPU是一种专门为SOPC设计应用而优化的CPU软核,Nios II是继之推出的第二代Nios嵌入式处理器,处理性能更高。
随着现代设计越来越复杂化,FPGA中片内存储器的资源早已不能满足用户的需要,往往需要使用外部存储器来解决问题。其中,Flash烧写就提供了一个有效手段。一般地,烧写Flash最常用的方法是用编程器把程序或数据写入Flash,但如果要把Flash存储器和芯片(比如FPGA芯片)连接起来使用,那么就需要用硬件来做成一个接口模块,而现在很多FPGA开发板本身就带有Flash存储器,这就为FPGA芯片和Flash通信提供了方便,而且Nios II IDE为此提供了一个方便的Flash编程方法,任何连接到FPGA的兼容通用闪存接口(CFI)的Flash器件都可以通过Nios II IDE闪存编程器(Flash Programmer)来烧录。
虽然Nios II IDE闪存编程器(Flash Programmer)为FPGA开发板提供了一种Flash烧写方法,但是使用它更多地是为了将程序烧入Flash,避免每次上电时需要下载程序的麻烦。

如果仅仅想把大量数据写入Flash存储器,作为系统的输入信息使用,则可以采用一种更为简单、方便的方法。本文提出的即是一种基于SOPC开发的Flash数据烧写方法。它利用SOPC开发过程,把Flash作为普通的外设来对待,待数据写入Flash后,SOPC系统所占的资源就可以释放,所以它为Flash数据烧写提供了一种简单、方便并且能够节省FPGA资源的有效方法。

1 基于Nios II的SOPC开发
与传统嵌入式系统设计不同,Nios系统的开发分硬件开发和软件开发两个流程。硬件开发过程主要由用户定制系统硬件,软件开发在Nios II IDE中完成,Nios II使用Nios II IDE集成开发环境来完成整个软件工程的编辑、编译、调试和下载。图1所示的是基于Nios II的SOPC系统开发流程。
设计规划
将硬件程序下
载至开发板上
将软件程序下
载至开发板上
SOPC系统实现
硬件设计
定义Nios II处理器系统(SOPC Builder)

(SOPC Builder)
分配引脚、编译硬件
(Quartus II)
生成系统模块
(SOPC Builder)
软件设计
根据硬件系统生成HAL(Nios II IDE)

编写应用程序
(Nios II IDE)

编译、连接、调试
(Nios II IDE)

图1 基于Nios II的SOPC系统开发流程
Nios II的硬件设计是为了定制合适的CPU和外设,利用SOPC Builder的图形用户界面,可以快速方便地定义和连接复杂的系统。系统定义过程中,可对CPU和各外设模块的特性、大小及在系统中地址分配等进行设定。接着让SOPC Builder帮助Nios II开发者生成SOPC系统,实际上,它是用生成的.ptf文件来描述Nios II处理器系统。同时,也生成了用于Quartus II编译的HDL文件。在完成上述操作之后,使用Quatus II软件对Nios II系统上的各种I/O口进行引脚分配,并且进行硬件编译。在编译的过程中,Quatrus II从HDL源文件综合生成一个适合目标器件的网表。最后,将生成的配置文件下载到开发板上。
Nios II IDE(Nios II 集成开发环境)为Nios II的软件开发提供了一个平台,利用它可以向生成的SOPC系统写入程序。在进行软件开发时,会涉及到与硬件设备的通信问题。HAL(硬件抽象层)系统库工程包括所有和硬件处理器相关的接口,它是在Nios II IDE中建立一个新的工程时,由IDE根据SOPC系统自动生成的。用户在Nios II IDE环境中编写软件程序,实际是基于HAL系统库的应用程序,通过HAL系统库,与硬件设备联系起来。程序编辑完之后,使用Nios II IDE的编译器、调试器对软件工程进行编译、调试。一切顺利通过之后,就可以将软件下载到开发板上,并可以在硬件上运行。

2 开发实例
2.1 Flash烧写
这里以Flash数据烧写为例,详细讨论基于Nios II的SOPC开发,本实例是针对一次性向Flash写入大量数据的设计方案,首先是设计规划,即软、硬件的划分问题,之后就分硬件开发和软件开发两部分分别讨论。
2.2 硬件开发
本设计使用的开发板是Cyclone EP1C6Q240C8。采用的FPGA芯片是Cyclone系列的EP1C6。开发板上还附有8Mbyte的SDRAM(Synchronous Dynamic Random Access Memory)和2Mbyte的Flash存储器。图2就是最终的系统工程文件。它的开发过程如下。
由于Nios II开发时采用默认的系统时钟50MHz,即图2中SOPC系统时钟clk,而核心板上的晶振是25MHz,所以需要添加一个锁相环(PLL)模块,将频率提升到50MHz再供给系统。
图2 系统工程文件
首先定义Nios II处理器系统,它是为Flash数据烧写特别定制的,所以使用了最精简的系统组件。它们分别是:
(1)CPU核,这里选择了经济型的Nios II,因为它占用最少的逻辑单元;
(2)On-Chip Memory,为系统添加内存储器,使用FPGA内部RAM资源,速度快,但存储容量较小,这里定义了4KB的RAM;
(3)JTAG UART,它主要用于在线调试,在调试中,只要配置了CPU、On-Chip Memory和JTAG UART就可以完成一个最小系统;
(4)Avalon三态总线桥(Avalon Tri-State Bridge),Avalon Tri-State Bridge也可以称作是外部RAM总线,在Nios II开发板上,要实现Nios II系统和FPGA片外存储器通信,就需要Avalon三态总线桥;
(5)SDRAM控制器,SDRAM能够提供更大的存储容量,解决片内RAM不够用的情况,它通过Avalon三态总线桥接入Nios II系统中;
(6)加入Flash接口,它的加入类似PC机接入了硬盘,用于存放程序和数据,并且具有非易失性,这里用它来存放要写入的数据。
其次,在自动分配基地址和中断后,进行SOPC系统地址的分配。这里由于软件程序较长,Reset address就设置为SDRAM。接着利用SOPC Builder就可以生成SOPC系统,并且生成用于综合的硬件描述语言(HDL)。
硬件设计的最终目的是为软件开发提供一个平台,所以最后还是要通过对工程文件的编译来获得配置文件,通过JTAG口下载配置信息,从而实现在FPGA芯片中建立硬件系统。在此之前,分配引脚的过程是十分重要的,如图2中,除了时钟和复位引脚以外,其余的都是关于SDRAM和Flash的引脚。
使用了SDRAM,就需要给它分配时钟,根据SDRAM的芯片HY57V641620HG(L)T-7,时钟应为100MHz,所以利用锁相环倍频至100MHz,供给SDRAM的时钟,即图2中的sd_clk。图2中,sd_addr和sd_data是SDRAM的地址和数据线,它们分别是12位和16位。由于SOPC系统的地址总线为“tri_state_bridge_0_address[20..0]”共21条地址线,而Flash芯片AM29LV160只有20位地址线,所以必须将“tri_state_bridge_0_address[20..0]”的高20位地址线与Flash的20位地址线对齐,同时由于所选用的Flash芯片是16位数据总线,每次读写16位,因此只用到“tri_state_bridge_0_address[20..0]”的高20位地址总线。关于SDRAM、Flash的控制和片选信号也通过其余的引脚表示出来了。
除此之外,不同型号的片外存储器(如SDRAM、Flash)的操作时序都可能不同,所以在定制系统组件时要根据所选用的芯片,对它们的时序做出正确的设置,否则将使Nios II不能工作或者工作不稳定。
2.3 软件开发
通常来说,往往是因为数据量很大才需要把数据写入Flash中,这些数据很可能是以特殊方式保存下来的,比如在Matlab环境中经过数据处理被保存在数据文件(.mat)中。本设计的软件开发就是实现向Flash写入数据,而这个过程是在Nios II IDE的C/C++编程环境下完成的,如何在该环境中引用那些被保存的数据成为了一个关键问题。这里提出的一个解决方法是:运用文件这个概念。
该方法的主要思路是:首先在MATLAB中编写程序把需要保存的数据保存在某个文件中,如data.h;关于保存数据的文件的路径,建议使用绝对路径,并且将它存放在软件工程文件夹下;然后在C/C++环境中,添加头文件#include<data.h>,这样就可以在该环境下直接引用data.h中的数据。
其次,由于在开发过程中是把Flash当作普通外设来对待的,需通过访问Flash的方法来向Flash写数据,因为本设计是针对一次性向Flash写入大量数据,并且无需保存Flash中原来的数据,因此不会涉及到Flash的跨块擦除问题,故采用简单访问Flash的方法。使用Flash的操作函数时,需包含头文件“sys/alt_flash.h”。
编辑…… 职称论文发表网http://www.issncn.com 职称论文发表网http://www.issncn.com

1 2
论文首页】【设为主页】【加入收藏】【打印本文】【回到顶部
最新上传
 武汉市发展低碳经济探讨
 “谷贱伤农”解决之道
 基于LBS和O2O的移动...
 勘察设计企业如何国际化
 区域品牌培育和提升探讨
 AHP在医药批发企业物流...
 浅谈经济发展方式与农村水...
 浅谈中小企业创业基地
 高校学生就业与政府政策之...
 农学类专业研究生如何创业
 浅谈科学地管理科技人才
 研发联盟的知识协同效应探...
 科技在新农村建设中的应用
 农业自主创新能力评价研究
 农业科技人才开发模式创新
职称论文
本站推荐
 武汉市发展低碳经济探讨
 “谷贱伤农”解决之道
 基于LBS和O2O的移动...
 勘察设计企业如何国际化
 区域品牌培育和提升探讨
 AHP在医药批发企业物流...
 浅谈经济发展方式与农村水...
 浅谈中小企业创业基地
 高校学生就业与政府政策之...
 农学类专业研究生如何创业
 浅谈科学地管理科技人才
 研发联盟的知识协同效应探...
 科技在新农村建设中的应用
 农业自主创新能力评价研究
 科技创新与现代服务业融合...
职称论文发表
所有资料均源于网上的共享资源及期刊共享,请特别注意勿做其他非法用途。
如有侵犯您的版权或其他有损您利益的行为,请联系指出,我们会立即进行改正或删除有关内容!
  网站介绍 联系我们 广告服务 网站导航 投诉建议 服务承诺 人才招聘 版权声明  
  •   投稿邮箱:83041061@qq.com    服务热线:027-62220402 手机: 18907137973
    点击及可直接咨询
    联系地址:武汉市江汉区新华下路江花苑13楼   电子地图
  • Copyright (C) 2007-2009 http://www.issncn.com/ All Rights Reserved.. 鄂ICP备:09016318号
    技术支持:腾浪科技    法律顾问:廖泉冰律师