基于ARM的嵌入式系统中从串配置FPGA的实现

发布者:安静宁静最新更新时间:2011-07-09 关键字:ARM  嵌入式系统  配置FPGA 手机看文章 扫描二维码
随时随地手机看文章

  1 引言

  ARM(Advanced RISC Machines)既可以认为是一个公司。也可以认为是对一类微处理器的统称,还可以认为是一项技术。基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到人们生活的各个方面[1]。到目前为止,ARM微处理器及技术已经广泛应用到各个领域,包括工业控制领域、网络应用、消费类电子产品、成像和安全产品等。

  FPGA(Field Programmable Gate Array)是一种高密度现场可编程逻辑器件,其逻辑功能是通过把设计生成的数据文件配置到器件内部的静态配置数据存储器(SRAM)来实现的。FPGA具有可重复编程性,能灵活实现各种逻辑功能。

  基于SRAM工艺的FPGA具有易失性。系统掉电以后其内部配置数据容易丢失,因此需要外接ROM保存其配置数据,系统上电后必须重新配置数据才能正常工作。目前有两种方案可以实现,一种是使用专用的PROM,以Xilinx公司FPGA,XCFxx系列PROM为例,能够提供FPGA的配置时序,上电时自动加载PROM中的配置数据到FPGA的SRAM中;另一种是在含有微处理器的系统(如嵌入式系统)中采用其他非易失性存储器如E2PROM、Flash存储配置数据,微处理器模拟FPGA的配置时序将ROM中的数据置入FPGA。与第一种方案相比,该方案节省成本、缩小系统体积。适用于对成本和体积苛刻要求的系统。

  在便携式虚拟仪器设计中,使用嵌入式系统和FPGA实现系统功能。嵌入式微处理器采用Samsung公司的ARM7TDMI系列处理器S3C44BOX:FPGA采用Xilinx公司的Spartan-3E系列XC3S100E,采用S3C44BOX完成对XC3S100E的配置。取得了良好效果。

  2 从串配置的原理

  2.1从串配置原理

  Xilinx公司的Spartan-3E系列FPGA产品是采用90 nm工艺的2.5 V低电压FPGA器
  件,具有高性能、低功耗、可无限次编写的特点。XC3S100E是Spartan-3E系列FPGA中的一款,总门数达10万门,可采用从串、主串、从并、主并、JTAG等模式对其进行配置[2]。XC3S100E与从串配置模式相关的主要引脚功能如下:

  M[2:0]:配置模式选择。M2、M1、M0均接上拉电阻,即M[2:0]:111时为从串模式;

  CCLK:配置时钟,微处理器提供时钟源,且上升沿有效:

  DIN:串行配置数据输入:

  DOUT:串行数据输出,用于菊花链式配置:

  PROG_B:低电平异步复位FPGA内部逻辑,内部可配置:Memory完全复位后,该引脚指示高电平。

  当此引脚为高时,才能配置FPGA:

  INIT_B:由低电平到高电平跳变时,采样配置模式,即M[2:0]的值确定配置方式;配置过程中若出现配置错误,INIT_B将呈现低电平;

  DONE:复位时为低电平。若配置成功,则为高电平。

  2.2 微处理器从串配置:FPGA的时序

  FPGA的配置过程如下:

  系统上电后,将PROG_B拉低以复位FPGA内部逻辑重新配置FPGA,充分复位内部逻辑后(约100μs),将PROG_置高。

  INIT_B为低电平,PROG_B拉高保持300 ns后,FPGA将INIT_B置高。在INIT_B由低向高跳变的瞬间,采样配置模式M[2:0]。此系统采用从串配置模式。
[page]

  在FPGA采样配置模式后,微处理器就可以向FPGA配置时钟CCLK和数据,在CCLK的上升沿,传输数据至DIN,数据字节先发送低位,再发送高位。配置过程中若发生错误,则INIT_B为低电平。

  所有的配置数据传送完成,CRC校验无误。则DONE为高电平,否则为低电平。

  DONE为高电平,FPGA释放全局三态(GTS),激活I/O引脚,释放全部置位复位(GSR)和全局写使能(GWE)有效,开始执行配置区的逻辑。

  微处理器从串配置FPGA的时序如图1所示。

  2.3 配置文件的产生方法

  利用Xilinx公司提供的开发工具ISE8.1,经过综合、映射、布局布线后可产生编程文件,编程文件含有.bit、.bin、.mcs、.tek、.hex等格式。其中,.bit格式用于JTAG下载,其他几种格式用于专用PROM编程。首先按照产生专用PROM编程文件的方法来产生.bin文件.然后将该.bin文件转换成ASCⅡ码文件的存储形式,并且各个字节之间用逗号分隔。再将该配置数据存放在系统程序的一个头文件的数组config_data_array[]中,作为系统程序源代码的一部分,并和其他程序一起编译。

  3 硬件设计

  嵌入式微处理器S3C44BOX内置ARM7TDMI核,集成了丰富的外围功能模块,内部8 kB Cache大大提高了性能。S3C44BOX可访问256MB的地址空间,最高工作频率达66 MHz 。采用4 MB Flash作为程序存储器,可用于存放系统运行的代码。XC3S100E从串配置程序和配置文件都固化于其中保存,该Flash支持低电压(1.65 V~3.3 V)写操作。8 MB的SDRAM是程序的运行空间,直接运行Flash中的代码,但速度非常慢。通常是将Flash中的代码移至SDRAM中。S3C44BOX与XC3S100E主要通过PROG_B、INIT_B、DONE、CCLK、DIN 5根信号线连接,如图2所示。其中VCC33表示3.3 V,VCC25表示2.5 V。

  4 软件设计

  软件设计流程如图3所示。配置软件的编程要确保ARM完全按照配置信号的时序工作,关键问题

  是采用S3C44BOX的通用I/O口GPF0、GPF1、GPF2、GPF3、GPF4模拟DIN、CCLK、DONE、INIT_B、PROG_B的时序。[page]
  在S3C44BOX中,大多数引脚都是多功能引脚,可以通过端口配置寄存器选择相应的引脚功能。

  以端口F为例,控制寄存器rPCONF用作设定引脚的输入、输出或特殊功能;数据寄存器rPDATF[0:8]对应于GPF0~GPF8引脚上的数据。读写寄存器rPDATF的各个位对应于引脚的读或写。例如,CCLK上升沿时序是向GPF1先写0,再写1得到,延时程序则由for循环实现。

  则一直循环等待

  CCLK在每个上升沿把1 bit的数据置入DIN中,先将GPF1置低,在GPF0准备好1 bit数据,再将GPF1置高即可,以此循环将config_data_array[]中的每个字节按先低位再高位的次序写入FPGA。

  Xilinx的FPGA配置文件大小相同,与FPGA内部逻辑设计的复杂度无关。以Spartan_3E系列的10万门FPGA XC3S100E为例,它的配置文件固定为581 344 bit,若CCLK的时钟周期置为2μs,配置时间约为1.2 s。

  5 实验结果验证

  验证环境:硬件采用自行开发的实验板和武汉创维特公司的:JTAG硬件仿真器;软件则使用Xilinx公司的开发工具ISE8.1和武汉创维特公司的集成开发环境ADT 1000(支持ARM7,ARM9)。

  利用Verilog HDL编写程序led.v在七段数码管上循环显示0~F,采用:ISE8.1编译、综合、映射、布局布线。生成用于编程专用PROM的led.bin文件。用一个简单的C程序将.bin文件转换成ASCⅡ码文件,再将ASCⅡ码文件复制到配置数据数组config_data_array[]中,然后在ADT环境下编译配置程序、配置数据和系统程序,将生成的.bin文件通过JTAG口烧写到Flash中。重新上电后,FPGA配置正常,实验结果与预设相一致。

  6 结束语

  基于ARM的FPGA从串配置方案结构简单、接线容易、软件编程简单,非常适用于嵌入式系统设计。虽然该控制电路是为Xilinx公司Spartan-3E系列的FPGA设计的,但稍加修改也可用于其他系列FPGA器件,故具有一定的通用性。另外,由于FPGA具有可重复配置的灵活性,在嵌入式系统中可通过串口、网口远程烧写Flash,重构系统功能,这种在线重构技术为设备的智能化在线维护、功能重组和在线升级等提供了可能,而且灵活性很强。本文提出的方案对数字系统设计具有借鉴意义,有着广阔的应用前景。

 

关键字:ARM  嵌入式系统  配置FPGA 引用地址:基于ARM的嵌入式系统中从串配置FPGA的实现

上一篇:基于ARM的ADSL2+测试仪的设计与实现
下一篇:ARM S3C2410X系统中断编程机制的研究与应用

推荐阅读最新更新时间:2024-03-16 12:38

基于ARM LINUX的嵌入式GUI的研究和移植
引言 什么是嵌入式系统 嵌入式系统一般指以嵌入式微处理器为核心,有别于PC系统,有计算机的部分功能但又不称之为计算机的设备或器材。它主要是以应用为目的,系统软硬件于一体,通常要求具有代码小、响应速度快、可靠性高、低功耗、集成度高等特点。嵌入式系统遍布于各个行业以及人们的日常生活当中,比如掌上PDA、移动计算设备、电视机顶盒、手机、汽车、数字相机、家庭自动化系统、安全系统、自动售货机、工业自动化仪表与医疗仪器等。 什么是嵌入式系统中的GUI 随着后PC时代的到来,嵌入式系统的性能有了大幅度的提高,应用范围也越来越广,当初的一些简单的人机交互接口已经无法满足人们的要求。而与此同时,在台式PC机上图形交互界面早已普及并成熟,于是
[单片机]
基于<font color='red'>ARM</font> LINUX的嵌入式GUI的研究和移植
ARM处理器异常处理的返回地址分析
ARM 处理器一共有7 种类型的异常,按优先级从高到低排列如下: Reset Data Abort FIQ IRQ Prefetch Abort SWI Undefined instruction 当任何一个异常发生并得到响应时,ARM内核自动完成以下动作: 1、拷贝CPSR到SPSR_ mode 2、设置适当的CPSR位: 改变处理器状态进入ARM状态; 改变处理器模式进入相应的异常模式; 设置中断禁止位禁止相应中断。 3、更新LR_ mode 4、设置PC到相应的异常向量 当一个异常处理返回时,一共有3 件事情需要处理:通用寄存器的恢复、状态寄存器的恢复以及PC 指针的恢复。 通用寄存器的恢复采用一般的堆栈操作指令,
[单片机]
<font color='red'>ARM</font>处理器异常处理的返回地址分析
基于μC/OS-Ⅱ和ARM的超声波测距系统设计
1 引言   超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而用于距离测量。利用超声波检测往往较迅速、方便、计算简单、易于实时控制,且测量精度能达到工业实用要求,因此在移动机器人的研制中得到广泛应用。移动机器人要在未知和不确定环境下运行,必须具备自动导航和避障功能。超声波传感器以其信息处理简单、速度快和价格低的特点广泛用作移动机器人的测距传感器,实现避障、定位、环境建模和导航等功能。   2 系统总体设计方案   2.1 超声波测距原理   2.1.1 超声波发生器   超声波为直线传播方式,频率高,反射能力强。空气中其传播速度为340 m/s,容易控制,受环境影响小。因此采用超生波传感器作为距离探测的“眼睛”,可
[模拟电子]
基于μC/OS-Ⅱ和<font color='red'>ARM</font>的超声波测距系统设计
ARM想将芯片装进人类大脑 降低能耗是一大挑战
    新浪科技讯 北京时间5月18日,在计算产业英国ARM公司举足轻重,在移动设备领域更是如此。现在ARM对外宣布,公司有兴趣开发可以装进大脑的芯片。   脑部植入技术是当前的热点。年初时,一名完全瘫痪的男子通过植入技术让自己的手臂移动,许多年来第一次移动。硅谷投资者也投入巨额资金研究脑植入技术,他们一方面想解决艰难的研究问题,另一方面想开发出在商业上可行的产品。许多科技名人都对大脑技术兴趣浓厚,比如马斯克和扎克伯格,他们相信未来人类可以用植入技术增强大脑智力,获得心灵感应能力。   ARM的目标似乎小一些,至少现在看起来小一些。软银已经收购ARM。ARM宣布,将与华盛顿大学感觉运动神经工程中心携手合作,帮助研究人员开发
[半导体设计/制造]
Raspberry Pi微型电脑发布被短暂推迟
今天本来是25-35美元的Raspberry Pi电脑的最终发布日期了,不过厂商一依然选择了推迟这款产品,理由是操作系统中还有一些问题还没有解决,这款超廉价又超简单的电脑将内置Fedora Remix操作系统。 Raspberry Pi采用700MHz ARM11处理器,256M内存,HDMI输出可回放1080p视频,操作系统完全运行在一张SDHC卡上,键盘和鼠标则通过USB链接。
[嵌入式]
Raspberry Pi微型电脑发布被短暂推迟
基于ARM的智能家居远程控制系统设计
  随着互联网技术和信息通信技术向普通家庭生活的不断普及,如何将消费电子、计算机和通信融为一体,已成为人们非常关心的一个问题。智能家电网络管理系统能够实现家用电器的网络化、智能化管理。通过该系统将家中的网络电器与互联网和GPRS网络相连,这样无论何时何地,用户都可以通过该系统远程操纵家用电器。本文主要讨论智能家居远程控制系统的设计与实现。    智能家居系统的总体结构   智能家居远程控制系统的核心部分是一个嵌入式Web服务器,系统集有线和无线Web服务器于一体,用户可以利用办公室的PC或者手机登录家中的Web服务器,在通过用户名和密码验证后,便可以查看并控制家用电器;系统带有LCD和键盘,具有良好的人机界面;用户还可以通过键
[嵌入式]
net-snmp移植到arm
关于net-snmp的移植,是基于静态编译的,动态的没有做成功,在arm上的移植过程大致如下: 如果没有涉及到扩展agent,则蓝色字体不需要理会。 1.将源码包另找一个路径放下,解压 tar -xzvf net-snmp-5.4.1.tar.gz, 若想扩展agent,则可以将此模块的.c和.h文件先放到net-snmp-5.4.4/agent/mibgroup下一起配置编译; 例如我这里想用代理读写encoder模块,那么先将写好的encoder源文件复制到net-snmp-5.4.4/agent/mibgroup路径下 ; 2.CC=arm-linux-gcc ./configure --prefix=/home/a
[单片机]
普然选择ARM高速物理接口解决方案开发下一代网络SoC
ARM Velocity DDR助力fabless半导体公司针对IP融合应用设计高性能、低功耗解决方案 中国上海,2007年7月12日 —— ARM公司(伦敦证交所:ARM;纳斯达克:ARMHY)和国内领先的fabless半导体设计公司普然通讯今天共同宣布,普然获得ARM Velocity高速DDR解决方案授权。作为ARM物理IP系列的一员,Velocity DDR是适用于关键应用到低功耗存储子系统的广泛SDRAM DDR应用的高速物理接口解决方案。普然基于ARM技术的产品是专为下一代网络(NGN)应用设计的,现已上市。 如今市场对消费级数字服务提出了巨大的需求,xDSL、3G无线、NGN和FTTx应用需要具备更佳性能、更低
[焦点新闻]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

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