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

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

3天内不再提示

基于ARM的FPGA嵌入式系统实现

FPGA设计论坛 来源:未知 2023-05-18 13:05 次阅读


点击上方蓝字关注我们






基于ARMFPGA嵌入式系统实现



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







往期推荐
  • 至芯科技-FPGA就业培训来袭!你的选择开启你的高薪之路!5月6号北京中心开课、欢迎咨询!

  • 英特尔两个重要发布加速FPGA应用开发

  • 简谈FPGA 有符号数、无符号数



扫码二维码

获取更多精彩

FPGA设计论坛


喜欢就点个在看再走吧





原文标题:基于ARM的FPGA嵌入式系统实现

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

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

    关注

    1625

    文章

    21663

    浏览量

    601670

原文标题:基于ARM的FPGA嵌入式系统实现

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    嵌入式系统怎么学?

    、C++或者Python。这些语言在嵌入式系统开发中都被广泛应用。 3、微处理器/微控制器架构:学习常见的微处理器和微控制器架构,如ARM、AVR、PIC等,了解其特性和应用场景。 4、
    发表于 07-02 10:10

    Altera SOPC 嵌入式系统设计(一)

    的 SOPC 系统是指在 FPGA 中预先植入处理器。目前最常用的嵌入式处理器大多是采用含有 ARM32 位知识产权处理器核的器件。为了达到通用性, 必须为常规的
    发表于 06-25 20:39

    简谈Xilinx Zynq-7000嵌入式系统设计与实现

    今天给大侠带来简谈Xilinx Zynq-7000嵌入式系统设计与实现,话不多说,上货。 Xilinx的ZYNQ系列FPGA是二种看上去对立面的思想的融合,
    发表于 05-08 16:23

    简谈Xilinx Zynq-7000嵌入式系统设计与实现

    今天给大侠带来简谈Xilinx Zynq-7000嵌入式系统设计与实现,话不多说,上货。 Xilinx的ZYNQ系列FPGA是二种看上去对立面的思想的融合,
    发表于 04-10 16:00

    嵌入式片上系统ARM哪个更好

    嵌入式片上系统ARM各有其优势,难以直接比较哪个更好,因为它们在不同的应用场景和需求下都有各自的价值。
    的头像 发表于 03-28 15:14 479次阅读

    fpga嵌入式应该学哪个

    FPGA嵌入式系统是两个不同的领域,各有其特点和优势,选择学习哪个取决于个人的兴趣、职业目标以及市场需求。
    的头像 发表于 03-27 14:43 714次阅读

    嵌入式fpga是什么意思

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

    嵌入式fpga的关系

    FPGA(现场可编程门阵列)和嵌入式系统之间存在密切的关系,它们都是计算机硬件领域的重要组成部分,并在许多应用中发挥着关键作用。
    的头像 发表于 03-15 14:19 829次阅读

    fpga嵌入式的区别和联系

    FPGA嵌入式系统虽然在电子设计中都有广泛应用,但它们在体系结构、功能和用途等方面存在一些区别。
    的头像 发表于 03-14 17:25 2948次阅读

    fpga嵌入式

    FPGA(现场可编程门阵列)不是嵌入式系统,但FPGA嵌入式系统中有着重要的应用。
    的头像 发表于 03-14 17:19 2138次阅读

    fpga嵌入式的区别 嵌入式fpga开发有什么关系

    fpga嵌入式的区别 FPGA嵌入式系统在设计和应用上存在一些关键的区别,具体如下: 灵活性:FPG
    的头像 发表于 03-14 17:04 6750次阅读

    fpga嵌入式哪个前景好

    FPGA嵌入式系统各有其独特的优势和应用领域,因此很难直接判断哪个的前景更好。它们在不同的领域都有广泛的应用和重要的价值。
    的头像 发表于 03-14 16:37 2240次阅读

    嵌入式系统发展前景?

    的发展前景也十分广阔。 随着物联网和智能设备的快速发展,嵌入式系统将更为普遍地应用于各种设备和设施,包括家用电器、医疗设备、交通工具等。这些设备将通过嵌入式系统
    发表于 02-22 14:09

    智能集成:整合模拟元件和ARM微控制器内核,解决棘手嵌入式系统问题

    智能集成:整合模拟元件和ARM微控制器内核,解决棘手嵌入式系统问题
    的头像 发表于 01-05 18:18 663次阅读
    智能集成:整合模拟元件和<b class='flag-5'>ARM</b>微控制器内核,解决棘手<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>问题

    什么是嵌入式系统嵌入式系统的具体应用

    嵌入式,一般是指嵌入式系统。用于控制、监视或者辅助操作机器和设备的装置。
    的头像 发表于 12-20 13:33 2382次阅读