在FPGA中置入可配置的32位处理器增加设计灵活度

发布者:采菊东篱下最新更新时间:2011-07-28 来源: 赛灵思公司关键字:嵌入式系统  MCU 手机看文章 扫描二维码
随时随地手机看文章
     嵌入式系统与桌面PC结构非常不同,但其底层技术发展却是一样的,而且遵循着类似发展趋势。当桌面PC转向64位架构来满足不断增长的存储器要求时,嵌入式系统也由于同样的原因快速转向32位处理器。桌面/服务器计算市场主要围绕x86架构,大多数创新和差异都在系统级,如双核、四核或多核架构、集成图像处理器单元和存储器控制器等等。同样,嵌入式系统则主要围绕简单的32位RISC处理器,多核架构、集成外设以及可配置处理等系统级进展,使得设计人员能够快速适应不断变化的应用要求。    

    根据iSuppli的研究报告,200732位微控制器(MCU)市场将超过8MCU市场。如图1所示, 32MCU市场的增长速度超过了半导体市场其它部分的增长速度,而8MCU市场的份额过去几年时间里则有所下降。  

    这一趋势的主要推动力是嵌入式系统中软件内容和复杂性不断增加,因此直接产生的后果是需要更宽的存储器总线(32位)来满足软件程序所使用的代码和数据要求。与传统微处理器不同,32位处理器不需要分段等存储器管理技巧就可以处理更大的存储器空间,因此使编程更容易。8MCU必须采用难学难用的汇编语言来满足小存储器空间限制(少于32K字节),而许多32位嵌入式应用则可以利用C/C++来编程,从而提高了嵌入式软件开发人员生产力。更为重要的是,越来越多的操作系统(实时和非实时)都提供现成的驱动程序和软件库,从而使软件开发人员能够集中于应用本身的开发。  

集成 = 更低的价格  

    在摩尔定律的指引下,越来越细的硅工艺线宽使得32位嵌入式解决方案的成本不断降低,从而可以满足更多的应用对价格的要求。此外,集成外设和片上存储器进一步降低了元器件和总体材料清单成本。通过集成针对手机和游戏机等垂直应用而优化的外设,许多器件的价格大大降低,直接推动了市场增长。  

    价格压力还导致只能在这些系统中集成一组固定的外设,因此通常的外设组合是面向大批量应用的。然而,不可能有适用于所有应用的万能器件,因此许多小批量、中等规模甚至大批量应用都无法直接利用成品集成解决方案。其结果是设计人员必须采用额外的芯片来扩展外设、分流处理器的负担,或增加胶合逻辑。这也是可配置处理解决方案产生的原因。 

可配置32位处理 

    根据Gartner Dataquest的报告如图2所示基于FPGA嵌入式处理方案的应用正在增长201040%FPGA设计将包括嵌入式处理器。因为能够定制满足特定应用或产品的要求,嵌入系统设计人员正在越来越多地采用基于FPGA的可配置处理解决方案。这一方法的主要优点是可通过集成降低成本,同时还可实现产品在市场上的差异化。  

    通过选择同一FPGA系列中的不同器件,或者将设计重新适配到新的FPGA器件中,能够针对更高性能、更低成本、或者不同的I/O标准进行个性设计。这样可以降低设计过时的风险,从而保证设计是未来可用的。对于必须有长使用寿命的产品(如汽车或工业应用),这是特别关键的一个因素。  

    可配置处理系统的配置(或定制)的层面包括:    

处理器配置:  

  • 乘法器、除法器、浮点单元以及其它。  
  • 指令或数据缓冲配置。  
  • 协处理器或硬件加速器。  

系统配置  

  • I/O外设选择、定制、DMA选择。  
  • 存储器外设选择、定制。  

应用配置  

  • RTOS选择、定制。  
  • 应用库/中间件定制。 

    许多产品都包括需要某种形式网络或通信接口的嵌入式系统。由于以太网成本低、几乎无处不在,并且可以利用TCP/IP等因特网协议连接因特网,因此以太网是目前在嵌入式产品中应用最广泛的网络接口之一。根据目标应用的不同,网络子系统的要求变化也相当大。简单的远程控制和监控应用只需要每秒数千bps的传输能力,而高端存储可视频应用则需要持续的Gbps吞吐能力。  

    为简单起见,我们将使用TCP载荷吞吐能力做为性能比较的主要指标。表1列出了一些典型应用以及相应的TCP/IP载荷吞吐能力要求。  

表一、示例应用的网络吞吐量要求 

例子应用 

吞吐量要求 

工业控制/监视 

< 1 Mbps  

安全/监控 

10-50 Mbps  

广播质量视频流 

50-500 Mbps  

可配置的嵌入式网络 

    基于FPGA的处理解决方案提供的强大灵活性允许您根据需要开启或禁止处理器、IP内核以及软件平台的高级功能,并且可以对许多独立参数进行精细调整,直到在软件一级满足应用的要求。此外,利用建模工具可以识别任何性能关键的软件功能并将其分流至适当的硬件加速器或协处理器来完成。  

    让我们来分别看一下可利用IP内核满足典型应用性能要求的三种以太网子系统的例子。每种设计具有不同的系统架构:包括处理器配置、Ethernet MAC IP配置以及存储器接口。此外,这些例子还突出了可与这些硬件子系统配合使用的不同TCP/IP软件栈。由于硬件构建模块和软件层都是可定制的,因此您可以根据应用的需要对这些系统进行增减。  [page]

简化以太网子系统 

    对于远程监视或控制应用中所需要的简单网络接口来说,如图3所示的最小化网络子系统就足够了。在此类应用中,TCP/IP性能要求较低(< 1 Mbps),因此LwIP(简化版因特网协议栈)这样的小TCP/IP堆栈(不需要RTOS实时操作系统)就足够了。  

    这可以使用不间断的Ethernet Lite IP在简单的查询模式下实现。全部软件,包括简单的应用层,可全部存储在FPGA中的本地存储器中。如图3中所示其它需要的I/O接口RS-232 UARTGPIO可以增加到基本子系统中。  

    通过对图3中的最小系统做一定的修改,可以实现更高TCP/IP吞吐能力(10-50 Mbps),并转向如图4所示的更为典型的10/100以及网解决方案。 

主要的变化有:  

  • Ethernet MAC增加直接存储器访问(DMA)引擎,实现中断驱动。  
  • 为系统增加外部存储器,为处理器增加缓存。  
  • 更复杂的TCP/IP栈,如Linux (Clinux)系统TCP/IP协议栈。 

      对于需要100 Mbps以上TCP/IP吞吐能力的应用,可以考虑硬IP或软IP内核方式提供的三模式以太网MAC(图5)。为获得高端应用所需要的500+ Mbps吞吐能力,需要同时配合使用环形缓冲(scatter/gather)DMA(SGDMA)等高级DMA技术,以及数据对齐引擎(DRE)和校验和分流(CSO)等FPGA硬加速器。

 

    为满足千兆以太网对更高数据吞吐率的需求,可能需要更高性能的嵌入式(硬)处理器或FPGA上实现的可定制软处理器,以及更大的缓冲容量、如16 kbit指令和数据缓存。就软件平台来说,LinuxVxWorksIntegrityQNX等软件平台中的高级TCP/IP栈支持诸如零拷贝和校验和旁路等功能。  

    包括硬件和软件在内的许多因素都会影响到TCP性能,并进而影响系统TCP吞吐能力。这些因素包括:  

处理器,包括频率、功能和缓存:  

    频率TCP/IP协议通常需要将载荷从用户缓存拷贝到协议栈控制的缓存,然后再将其拷贝到以太网MACFIFO中去。这些存储器拷贝操作有些是以软件方式完成的,因此需要处理器的处理周期。同时处理器还参与TCP校验和的计算,计算过程中需要将整个数据包从存储器读出。更快的处理器配合更快的存储器能在更短的时间内完成这些操作,从而可以保持较高的数据速率。  

    功能TCP/IP协议栈需要对数据包的头和载荷进行访问处理。做为头处理的一部分,典型的访问包括读取头信息的特定位。因此每个数据包的处理过程都需要相当多的移位操作。此外在处理每个数据包时都需要进行乘法操作。在可配置的处理器中,必须开启完成移位或乘法的指令才能获得更高的性能。  

    缓存数据包从以太网MAC被拷贝到存储器中之后,将会通过TCP/IP协议栈的不同层。然后TCP/IP栈中的数据包处理代码会被执行。将所有代码和数据包读到缓存中会大大提高处理器效率并提高以太网带宽。 

    存储器存储器访问时间和延迟对于系统性能有巨大的影响。典型应用中,TCP/IP应用并不存储在本地存储器中,程序和数据存储在外部存储器中。存取数据和指令所花费的时间对于性能有很大影响。存储器因素通常与缓存大小有关。提高指令和数据缓存大小有助于减轻外部存储器延迟和存取时间所带来的影响。  

    以太网MACFPGA中实现的以太网MAC外设提供了很大的灵活性特别是在工作模式DMASGDMA、数据包FIFO深度、DRE支持、CSO支持以及巨型帧jumbo frame支持方面。每一项都会影响到MAC所需要的资源,以及其能够从处理器分流的功能多少,从而对整体性能造成影响。  

    TCP/IP协议栈灵活的优化TCP/IP协议栈是影响系统性能的重要因素。对硬件CSO和零拷贝API(数据不需要从应用拷贝到协议栈缓存)以及可配置栈选项等TCP/IP栈功能的支持可帮助提高系统性能。  

   信息多少信息(应用数据)的大小是影响性能的另一个因素。随着信息减少,TCP/IP协议头(如TCPIP和以太网头)的开销增加,从而会减小总体的数据载荷吞吐能力。  

    大多数应用对于价格、性能和功能都有一组基本的要求。当为特定应用设计产品时,设计人员必须在这些要求之间进行正确的折衷,然而,为了适应市场条件,这些要求在产品生命周期内可能会发生变化。采用灵活可配置的平台能够在不改变设计平台或供应商的情况下根据需要对这些要求进行重新平衡。  

关键字:嵌入式系统  MCU 引用地址:在FPGA中置入可配置的32位处理器增加设计灵活度

上一篇:基于FPGA的实时无损数据压缩系统设计
下一篇:汽车工程师可选用FPGA和完整的IP解决方案优化其电气架构设计

推荐阅读最新更新时间:2024-05-02 21:30

单片机成长之路(51基础篇) - 019 51单片机每个引脚功能
RST复位输入 用来完成单片机单片机的复位初始化操作 ALE/(30引脚):地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲 PSEN :外部程序存储器选通信号 当AT89C51RC从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而访问外部数据存储器时,将不被激活。 EA:访问外部程序存储器控制信号 XTAL1(19引脚):振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2(18引脚):振荡器反相 放大器的输入端。 锁存器(Latch)是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态。锁存,就是把信号暂存以维持某种电平状态。锁存器的最主要作用是缓存,其次完成高速
[单片机]
基于AT89C51单片机无线收发控制的交通信号灯模型
引言 随着我国经济的高速发展,人们对私家车、公交车的需求越来越大。相应地,我国进入WTO以后,我国经济贸易与世界接轨,汽车业关税大大降低,使很多人都能负担得起,买私家车不再是梦想。但是,私家车、公交车的大增无疑会对我国交通系统带来沉重的压力。放眼现在的中国,如广州、香港、上海等大都市,无不受到交通堵塞的困扰。中国要发展,交通事业决不能停步不前。有及于此,我国交通管制系统应当以人性化、智能化为目的,作出相应的改善。本论文正是以此为出发点,对单片机控制的交通信号灯模型作了较详尽的介绍。 单片机无线收发控制的交通信号灯模型可以分为电源电路、单片机主控电路、无线收发控制电路和显示电路四部分组成,组成电路如图1: 由于
[单片机]
基于AT89C51<font color='red'>单片机</font>无线收发控制的交通信号灯模型
C51单片机定时器/计数器控制字设置
在使用定时/计数器之前需要先通过定时/计数器的方式控制字来设置其工作方式。 在单片机中有两个特殊功能寄存器与定时/计数有关,这就是TMOD和TCON。顺便说一下,TMOD和TCON是名称,我们在写程序时就能直接用这个名称来指定它们,当然也能直接用它们的地址89H和88H来指定它们(其实用名称也就是直接用地址,汇编软件帮你翻译一下而已)。 从图1中我们能看出,TMOD被分成两部份,每部份4位。分别用于控制T1和T0,至于这里面是什么意思,我们下面介绍。 从图2中我们能看出,TCON也被分成两部份,高4位用于定时/计数器,低4位则用于中断(我们暂不管)。而TF1(0)我们上节课已提到了,当计数溢出后TF1(0)就由0变为
[单片机]
C51<font color='red'>单片机</font>定时器/计数器控制字设置
单片机的指令系统和寻址方式介绍
1、MOVA,#20H 这条指令表示把20H这个数送入累加器A中(一个特殊功能寄存器)。 2、ADDA,70H 这条指令表示把累加器A中的内容(在上例中送入的#20H)和存贮器中地址为70H单元中的内容(也是一个数字),通过算术逻辑单元(英文缩写为ALU)相加,并将结果保留在A中。这里MOV、ADD等称为操作码,而A、#20H、70H等均称为操作数。在汇编语言程序中,操作码通常由英文单词缩写而成,这样有助于记忆,所以又称助记符。如MOV就是英文单词MOVE的缩写,含有搬移的意思;而ADD即为英文单词,其意为相加。因此,对于略懂英语的用户,掌握单片机指令的含意是较为方便的。操作数有多种表示法,如以上的#20H称为立即数,
[单片机]
51单片机C语言教程(七) 表达式1
上课到这一课相隔了好长一段时间,这些日子里收到不少网友的来信支持和鼓励,要求尽快完成余下的部分。出门在外的人不得不先为吃饭而努力,似乎这也成为我的借口,以后每晚抽空打一些吧这样大家也就可以不用隔太久就能看到一些新东西。或许我的笔记并不是很正确,但我尽量的保证每课的实验都会亲自做一次,包括硬件的部分,已求不会误人子弟。 随着访问量不断的增加,网站已启用了www.cdle.net的国际域名,在这里我感谢各位一直支持磁动力工作室的朋友,更要感激身在远方一直默默支持我的女友。                     明浩 2003-7-14 晚   呵,费话少说了。上两课说了常量和变量,先来补充一个用以重新定义数据类型的的语句吧。这个语句
[单片机]
51<font color='red'>单片机</font>C语言教程(七) 表达式1
意法半导体(ST)推出先进无线微控制器
中国,2012年5月9日 —— 横跨多重电子应用领域、全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)推出最新的可支持下一代智能电网标准的单片无线微控制器的样片。新款微控制器的设计目的是减少停电次数和二氧化碳排放量,同时还可支持未来的生活方式,包括插电式电动车充电。 STM32W微控制器是首批取得IEEE802.15.4认证的平台,可支持新的 ZigBee® Smart Energy Profile 2.0 (SEP 2.0)协议,该标准定义了智能电网环境,以实现一个更节能的世界。使用基于最新的互联网协议(IPv6)的无线通信协议栈 (ZigBeeIP),扩大了不同厂
[单片机]
AT89S51单片机驱动扬声器实现报警器功能的设计
1. 用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行,P1.7接一开关进行控制,当开关合上响报警信号,当开关断开告警信号停止,编出程序。 2. 电路原理图 “单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上; 在“音频放大模块”区域中的SPK OUT端口上接上一个8欧的或者是16欧的喇叭; 把“单片机系统”区域中的P1.7/RD端口用导线连接到“四路拨动开关”区域中的K1端口上; 3. 程序框图 4. 参考源程序 FLAG BIT 00H ORG 00H START: JB P1.7,STA
[单片机]
AT89S51<font color='red'>单片机</font>驱动扬声器实现报警器功能的设计
【51单片机】矩阵键盘线反转法实验仿真
前言 在上篇文章【51单片机】〈C语言+Keil5+Proteus仿真〉矩阵键盘逐行扫描法-20210414中,提到了矩阵键盘的线反转法,但是在仿真上出现了一些问题,导致没能做出来。当时都已经开始怀疑自己,课本上的虽然是汇编写的代码段,但是我用C来实现居然会出错,不禁让我陷入沉思……后来经过不断地控制变量反复实验,终于我发现,这是仿真软件的问题,与我无瓜。 主要体现在逐行扫描法可以完美运行,一换到线反转法就出错。所以这篇文章主要用于记录矩阵键盘线反转法的仿真实现。 一、实验环境 由于目前学校的实验课程尚未开始,即使实验课程开始我也不会用实验室的器材来记录,所以CSDN上的学习记录必将长期或绝大部分用软件仿真来实现。其实不论是仿
[单片机]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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