•  迎接来到 热竞技官网  
  • 沟通热线:0755-83210909
  • |
  • [ 登录 ]  [ 登记 ] 
  • |
  • 国务委员中心
  • |
  • 首页
  • 血站首页 > 电子资讯 > XILINX基于FPGA的嵌入式系统之软件设计

    XILINX基于FPGA的嵌入式系统之软件设计

    消息来源 : 网络 | 通告时间 : 2019-08-14 09:45 | 浏览次数 : 368

    FPGA是通过逻辑组合电路来促成各种力量的器件。出于FPGA其间集成了大量之逻辑资源和可安排的I/O引脚,增长独特之并行处理架构,可以轻松实现同时对多个外部设备的布局和保管,以及内外各种接口数据的传导。如今开发厂商又在FPGA 其间加入了大量之DSP和Block RAM能源,独特方便图像处理、数字信号处理等运算密集的采取,于是在这些领域取得了周边的采取。但是由于FPGA 先后编写的灵活性和力量的优越性,有效他在一番复杂工程中对各级程序的采用安排、办案管理上有很大的自觉性,这样就不能不引入操作系统进行合并的治本。Linux 系统则因为他优秀的可减少、可安排等特征在嵌入式领域应用广泛。 Linux操作系统提供了累累系统除的采取,例如网络协议的落实、经过调度、内存管理等,同时Linux 是一番成熟的正本求源操作系统,有增长的采取资源,采用这些资源和有力的体系功能,他家可以快捷地开发基于嵌入式环境复杂系统。于是,构成FPGA和Linux两者优势,可以很好地满足嵌入式系统设计需求,量体裁衣,剔除冗余。本文给出了一种基于Xilinx FPGA的嵌入式Linux操作系统解决方案。

      基于FPGA的嵌入式系统之软件设计

      资金设计是基于Xilinx XC4VFX40热竞技 FPGA,其它内部集成了两个PowerPC405电脑, 4个10/100/1000M以太网MAC模块,运作频率300MHz时,具有420D-MIPS性能,能解决高速网络数据传输问题,并且能解决通过网络加载操作系统和交叉编译等问题。其它内部有448个可安排I/O人口,2592kb BlockRAM,能实现对各族外部设备的并行控制以及较多数据的存储与处理。加载一个操作系统,普通需要几十洞之内存空间,FPGA其间自带的RAM蓝天是远远不够的,资金设计在板上扩展了两片MICRON商家的256Mb DDR内存,表现上电时操作系统的加载和周转空间。如今主流的嵌入式操作系统,都要求搭建交叉编译环境,把在主机上编写好的可执行文件下载到目标板上,这就要求实现网络数据的传导。出于XC4VFX40 自带了以太网MAC模块,只要求在对外添加个PHY芯片和带隔离器的RJ45接口就能实现这个意义。资金设计由于对网络数据实时性要求很高,于是采用Marvell商家的千兆以太网PHY芯片88E1111-RCJ。其它能依据自己配置和主机设计,落实10/100/1000M自适应传输,并且Linux本人对这个芯片提供了驱动支持,落实无缝链接。操作系统加载到DDR 美方能很快有效的运作,但是掉电就会丢,于是必须加入FLASH芯片,把系统文件存储到外部FLASH美方。加电时,FPGA把操作系统文件从FLASH读入到 DDR美方运行。FPGA计划当然会扩展很多接口出来,采用自己并行处理的劣势,控制很多外围设备,资金设计也不突出,壮大了8个通用的GPIO,2个PS/2接口,1个USB接口,1个AC97动静卡接口,1个 HotLink接口,以及4个RS422接口,同时扩大了两个CPCI接口,引出了16位数据地址线和Ethernet控制线,一切系统之软件框图如图1所示。

     在开展电路设计时,是以FPGA为主干,向外扩展各种设施,于是特别注意了FPGA各级引脚的联网。出于DDR和PHY芯片都要求提供+2.5V电压,于是和DDR、PHY芯片连接引脚所在的BANK要求提供+2.5V电压参考,并且不能接以LVTTL或LVCMOS为电压参考的引脚。着重快速的时钟信号必须接到全局时钟引脚上。出于FPGA要求通过外部FLASH起先操作系统,要求并行配置,以调减加载时间,布局电路如图2所示。在DDR导线时,数量和地方线需要走等长线,数据线之间不能相差10Mil,地方线要掌握在20Mil以内,时钟也要求走差分等长线,长应大于地址线,DDR各级信号还要求47Ω的并行端接,改进信号质量。千兆 PHY 进出口MDI信号也要求在高层做差分等长,不然在开展1000M数据传输时很可能不平静。DDR和PHY要求完整的水源回路做参考,能源层划分时也要特别注意,另外电路做常规处理就足以了。

      EDK和ISE硬件设计

      初次需要征用Xilinx提供的 EDK硬件,对各级模块加入必要的IPCORE,以便操作系统能健康调用这些器件的驱动操作他们。资金设计采用的是EDK10.1.2本子,PPC地方选用ppc405基础,频率设定在300MHz,同时要求添加中断输入引脚,以便响应以太网、串口等外部中断,另外使用默认设置。DDR玉器采用EDK提供的Multi-Port-Memory Controller模块,要求设置DDR芯片厂商、高低和数量位数等,特别指出的是,要设置独立的两枝PLB全线和PPC连片,表现PPC的命令和数据总线。MAC单元需要加入XPS_LL_TEMAC模块来支配,资金设计需要设置PHY 品种为GMII(千兆以太网),同时要指定物理地址和收发FIFO高低。FLASH单元需要加入xps_mch_emc模块,同时设置FLASH品种和读写时间。为了方便调试,还要求加入串口控制台模块,资金设计使用的是UartLite模块,安装需要的年率和校验类型。特别注意的是,系统还要求时钟管理模块(DCM),提供各个模块需要的不同时钟,还要设置一段FPGA其间RAM区域,放置PPC的.boot文件。表这些模块都通过PLB全线和PPC打电话,要求统一编址,普通把DDR 内存空间地址分配到0x0初步,一切系统之构建如图3所示。


    资金设计,除了在 EDK美方搭建了操作系统必须的各族模块后,还要求在ISE美方编写各个时序电路程序,于是把 EDK美方编写好的水利作为一个模块,进入到ISE美方,接下来统一编译,这样生成了俺们需要的一体化功能的顺序。特别指出的是,PPC405数量地址采用的是大端模式,联网到ISE美方时,要求把数据颠倒位置,如DATA[0:31]成为DATA[31:0],才能健康读写。

    Linux操作系统的加载与烧写

      加载Linux操作系统需要采取EDK硬件提供的板级升级包(BSP)布局内核。BSP 包含了所选定处理器架构的特性文件以及相关硬件的驱动源文件。初次要在EDK Project Option 美方Project Peripheral Respository分选下设置Xilinx提供的 gen-mhs-devtree/edk_lib 库路径,接下来在硬件平台设置中精选Dts分立式,编译更新升级包,浮动.dts配置文件。Dts文件包含了整套模块地址分配,中断以及驱动信息,把它参加到Linux 基础中,接下来配置内核选项选择对应的电脑架构、所选硬件的驱动模块以及需要的任何内核模块,后来再对完成配置的基础进行编译,浮动Linux 的基础image 文件。浮动内核image 文件后,还要求生成系统运行所要求的脚文件系统。根文件系统中包含了嵌入式Linux系统之布满应用程序、库以及系统配置等相关文件。根文件系统中滥用的程序和下令可采取开源软件Busybox结构。结构完成后,在Busybox 浮动的目录和文件的基础上再构造根文件系统之目录树,并补充相关设备文件和配置文件以及系统运行时要求的本子文件, 于是形成最终的脚文件系统,ramdisk.image。把它拷贝到本中的../arch/powerpc/boot目录下,在linux2.6.x根目录下运作make zlmage. initrt,浮动最终的体系文件。要求指出的是,在编译linux基础时,要求设置好交叉编译环境:初次安装ELDK编译软件,接下来在编辑自己之帐户目录下的 .bashrc (例如:/home/ppc/) 美方参加下面内容:

      CROSS_COMPILE=ppc_4xx

      $PATH=$PATH:/home/ ppc /PowerPc/ELDK/usr/bin:/home/ ppc /PowerPc/ELDK/binexport CROSS_COMPILE PATH

      保留,接下来执行$source .bashrc

      把变化的zlmage.initrd 文件通过 EDK 硬件下的XMD调整窗口,利用dow zlmage.initrd命令下载到DDR美方,接下来运行 run命令,就正常启动Linux了。

      先后下载到 DDR美方,少电后,数量就丢了,决不能保存和后续使用,于是要把操作系统烧写到FLASH,上电后让他能自动运行,少电后也不会丢。EDK提供了唯一的FLASH 烧写工具Program Flash Memory,初次要把zlmage.initrd文件转换为FLASH能识别的.SREC文件,要求在EDK Shell从运作下面命令:

      $powerpc-eabi-objcopy –I elf32-powerpc –O srec zImage.initrd.srec

      重大次烧写FLASH时要求把Program Flash Memory美方Create Flash Bootlooder Application 勾上,让系统自动生成Bootlooder先后。操作系统烧写到Flash美方后,要求FPGA在上电后自动从FLASH读取操作系统数据,接下来自动运行,这几需要把刚刚生成的bootloadr_0水利中的.elf进入到.bit浮动新的配置文件,利用EDK从的Updata Bitstream命令就能实现。说到底把变化的.mcs文件烧写到FPGA PROM美方,上电后,系统就能自动运行了。

      计划结果与分析

      在Linux系统正常加载后,咱们设计一个次,其它通过以太网,副上位机获得数据,开户FPGA其间BlockRam美方,再在ISE美方编写程序,把获得的多少取出,产生频率可变的波形发生器,并回传发送的股票数给上位机。

      穿过实验证明,在FPGA进入操作系统后,能轻松实现网络数据的收发,并通过FPGA本人的逻辑,产生我们需要的各族控制信号,成功了系统之合并安排和各级功能的并行处理,发挥了操作系统和FPGA各自的劣势。但是也发现,FPGA从操作系统运行的效率不高,最多600MHz,中断响应间隔较长,大约3ms控制,系统上电启动时间较长,大约40s控制,该署都要求在下规划中进一步健全和升级换代。


    该信息来源于网络,如有侵权,请及时与我们联系
    1. 
         
         
         
          
      <legend id="253c58f9"></legend>
    2. 
         
        
           
        <b id="a3462771"></b>