0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于ARM的FPGA从串配置方案设计适用于嵌入式系统的应用

电子设计 来源:郭婷 作者:电子设计 2019-09-24 08:05 次阅读

1 、引言

ARMAdvanced RISC Machines)既可以认为是一个公司。也可以认为是对一类微处理器的统称,还可以认为是一项技术。基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到人们生活的各个方面。到目前为止,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]。此系统采用从串配置模式。

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

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

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

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

基于ARM的FPGA从串配置方案设计适用于嵌入式系统的应用

2.3 配置文件的产生方法

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

基于ARM的FPGA从串配置方案设计适用于嵌入式系统的应用

3、 硬件设计

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

4、 软件设计

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

基于ARM的FPGA从串配置方案设计适用于嵌入式系统的应用

是采用S3C44BOX的通用I/O口GPF0、GPF1、GPF2、GPF3、GPF4模拟DIN、CCLK、DONE、INIT_B、PROG_B的时序。

在S3C44BOX中,大多数引脚都是多功能引脚,可以通过端口配置寄存器选择相应的引脚功能。

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

基于ARM的FPGA从串配置方案设计适用于嵌入式系统的应用

则一直循环等待

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)。

利用VerilogHDL编写程序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,重构系统功能,这种在线重构技术为设备的智能化在线维护、功能重组和在线升级等提供了可能,而且灵活性很强。本文提出的方案对数字系统设计具有借鉴意义,有着广阔的应用前景。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1625

    文章

    21620

    浏览量

    601187
  • ARM
    ARM
    +关注

    关注

    134

    文章

    9027

    浏览量

    366449
  • 嵌入式
    +关注

    关注

    5059

    文章

    18972

    浏览量

    301924
收藏 人收藏

    评论

    相关推荐

    基于ARMFPGA嵌入式数控系统设计

    本文提出一种基于ARMFPGA嵌入式数控系统设计方案。该系统
    发表于 05-31 15:45 6293次阅读
    基于<b class='flag-5'>ARM</b>和<b class='flag-5'>FPGA</b>的<b class='flag-5'>嵌入式</b>数控<b class='flag-5'>系统</b>设计

    怎么实现嵌入式系统配置FPGA

    基于ARM嵌入式系统配置FPGA的实现
    发表于 03-03 06:16

    基于ARM嵌入式系统配置FPGA的实现,不看肯定后悔

    关于基于ARM嵌入式系统配置FPGA的实现,
    发表于 04-15 06:29

    适用于自主机器的嵌入式系统是什么

    课程名字:Jetson:适用于自主机器的嵌入式系统课程地址:
    发表于 12-20 06:06

    一种适用于嵌入式系统的模块动态加载技术

    嵌入式系统中的模块动态加载技术摘要提出一种适用于嵌入式系统的模块动态加载技术,设计实现简单,占用资源少,开销小,并且成功运
    发表于 12-20 06:32

    基于ARM和DSP的嵌入式导航计算机方案设计

    基于ARM和DSP的嵌入式导航计算机方案设计:针对微小型组合导航、制导与控制系统对其导航计算机处理能力、体积、功耗及适用性等方面的要求,设计
    发表于 03-18 15:54 29次下载

    基于EmJTAG的ARM嵌入式系统调试工具

    摘要 设计实现一个适用于基于EmJTAG的ARM嵌入式系统调试工具。它首先定义了一个轻量级的远程调试协议EmRDI,用于PC机与基于EmJT
    发表于 03-29 15:13 877次阅读
    基于EmJTAG的<b class='flag-5'>ARM</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>调试工具

    一种基于嵌入式系统和Internet的FPGA动态配置方案

    摘要: 一种基于嵌入式系统和Inlternet的FPGA动态配置方案。详细介绍了该方案的设计思想
    发表于 06-20 10:37 443次阅读
    一种基于<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>和Internet的<b class='flag-5'>FPGA</b>动态<b class='flag-5'>配置</b><b class='flag-5'>方案</b>

    基于ARMFPGA嵌入式与CCD采集系统

    基于ARMFPGA嵌入式与CCD采集系统
    发表于 09-24 11:36 9次下载
    基于<b class='flag-5'>ARM</b>和<b class='flag-5'>FPGA</b>的<b class='flag-5'>嵌入式</b>与CCD采集<b class='flag-5'>系统</b>

    基于ARM嵌入式数控系统方案研究与应用

    基于ARM嵌入式数控系统方案研究与应用
    发表于 10-25 09:20 5次下载
    基于<b class='flag-5'>ARM</b>的<b class='flag-5'>嵌入式</b>数控<b class='flag-5'>系统</b><b class='flag-5'>方案</b>研究与应用

    基于FPGA嵌入式Linux操作系统解决方案

    的传输。结合FPGA和Linux双方优势,可以很好地满足嵌入式系统设计需求,量体裁衣,去除冗余。本文给出了一种基于Xilinx FPGA嵌入式
    发表于 11-24 17:24 6172次阅读

    适用于嵌入式管理器的SmartMesh IP简易入门指南

    适用于嵌入式管理器的SmartMesh IP简易入门指南
    发表于 05-10 18:12 1次下载
    <b class='flag-5'>适用于</b><b class='flag-5'>嵌入式</b>管理器的SmartMesh IP简易入门指南

    基于ARMFPGA嵌入式系统实现

    基于ARMFPGA嵌入式系统实现(嵌入式开发工作怎么这么难找)-该文档为基于ARM
    发表于 07-30 13:03 15次下载
    基于<b class='flag-5'>ARM</b>的<b class='flag-5'>FPGA</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>实现

    ARM嵌入式系统

    一、常见的ARM嵌入式系统开发环境配置:1、编译器/汇编器2、指令系统模拟器3、在线仿真器或调试探测器4、目标开发板5、跟踪捕捉仪6、
    发表于 10-20 18:20 6次下载
    <b class='flag-5'>ARM</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>

    嵌入式fpga是什么意思

    嵌入式FPGA是指将FPGA技术集成到嵌入式系统中的一种解决方案
    的头像 发表于 03-15 14:29 1165次阅读