嵌入式系统的运算处理架构
eeskill 2022-08-15

硬件三人行,专注于工程师在线教育。以模拟电路课程和PCB实战课程为主,以基于stm32的算法课程和产品结构课程为辅。满足5年以下工作经验的硬件工程师技术提升需求,适应汽车电子,工业控制,仪器仪表,小家电,智能硬件等其他嵌入式设计行业的发展。

下图是一个相对比较复杂的数据采集分析系统。从图中可以看出,中心两个最重要的单元,一个是ARM处理器、一个是FPGA,其中FPGA做了AD的采集,RS232的通信拓等。ARM做的任务较多,这里就不罗列,大家可以自行分解。可能很多人疑惑,为什么这里需要用两个处理单元,一个ARM不就搞定了吗?所以这里就需要大家对FPGA有一个认识,FPGA利用硬件并行的优势,打破了顺序执行的模式,在每个时钟周期内完成更多的处理任务,超越了数字信号处理器(DSP)的运算能力。

所以简单一句话就是,FPGA处理事情的实时性很高。举个例子,比如你要同时买一瓶水和一袋饼干,ARM的做法是有时间顺序的,先水后饼干,或者反之。但是FPGA就是同时的,没有先后顺序。从这里,我们就可以知道FPGA的最大优点就是并行处理任务的能力。所以在这里如果我们通过ARM去采集数据,那么在采集的过程中,肯定会被其他任务,如继电器驱出发驱动等介入,这样我们采集到的数据就会产生延时,导致不能实时的反应出传感器的变化。导致不满足要求。而利用FPGA就轻松的解决了这个问题。

上述分析,我们来看单片机时代,人们通过MCU实现一些简单的控制与显示,但是随着任务越来越复杂,功能越来越多,通信带宽越来越高,处理速度越来越快。当时的MCU早已经不能满足我们的需求。随后出现了更高性能的CPU,但是同样高性能的CPU可以处理大多数任务,但是在实时性要求较高的场景,运算能力却无法满足。所以FPGA产生了。从下图看出,越往后在运算处理的硬件平台上,CPU+FPGA将是趋势。

在我们的《ADC信号链第2部,高速模数混合电路设计》中,我们使用的就是ZYNQ,这是XILINX在最近几年出的一款FPGA+ARM集成在一起的芯片。很明显,这样的芯片在应用中占地面积小,总线带宽速率高,既有FPGA的实时性,同时也兼顾了ARM的运算、通信能力。但是因为目前市场占有率不高,稳定性有待验证,价格昂贵。导致没有能正在的流行开来。但是笔者相信,未来这样的集成芯片一定会大放异彩。

那么在无法使用集成芯片时,我们也可以使用其他的架构来构建我们的运算平台。

比如在对实时性要求高、IO口资源紧张、通信运算处理要求能力一般的项目中,可以考虑用单独的FPGA来实现,价格便宜且可以很好的完成功能设计。

在通信接口较多、功能复杂、实时性要求不高的应用中,可以考虑ARM,同时如果系统中包含比较复杂的逻辑,可以在ARM的基础上增加一颗STM32或者其他的MCU来实现。

最后,在功能复杂、实时性要求也很高的场合,ARM+FPGA的架构就成了一个标准框架。通常ARM用作核心处理芯片,相当于人的大脑,而FPGA作为底层实践、实现者,完成大部分电路驱动和数据采集处理,做一个不恰当的比喻,FPGA相当于人的四肢。在设计中,通常要衡量到底哪些事情需要ARM完成,哪些事情需要FPGA完成,完成的质量如何,效率如何。

上述简单描述了当前嵌入式系统的运算处理架构,其实在系统设计之初,如果处理器框架选好了,电路设计就成功一半了,所以希望大家对这块进行深入研究。

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
  • 以32位微处理器为控制核心的超级电容器组管理系统

    在传统的能量供应系统中,电池作为主要的储能单元被广泛使用。随着科学技术的发展和保护环境的需求,超级电容器因其容量大、寿命长、放电速度快、工作温度范围宽、可以串并

    09-30
  • 多节动力电池检测系统的单片机控制模块

    针对动力电池工作参数的监测,保护其安全性和使用寿命的问题,提出基于电池管理芯片 LTC6803 设计一套电池管理系统,利用 LTC6803 和 STC12C54

    09-30
  • CFS任务的负载均衡

    负载均衡的系列文章共分为三篇,第一篇为框架篇,描述负载均衡的相关原理、场景和框架。本篇作为该系列文章第二篇,主要通过对任务放置场景(task placement)的均衡分布进行分析,以便加深读者对内核调度器实现任务均衡分布的理解。 本文基于linux-5.4.24分

    09-29
  • Multi-queue 架构分析

    Linux上传统的块设备层(Block Layer)和IO调度器(如cfq)主要是针对HDD(hard disk drivers)设计的。我们知道,HDD设备的随机IO性能很差,吞吐量大约是几百IOPS(IOs per second),延迟在毫秒级,所以当时IO性能的瓶颈在硬件,而不是内核。但是,随着高速

    09-29
  • ARMv8 异常处理简介

    内核稳定性问题复杂多样,最常见的莫过于“kernel panic”,意为“内核恐慌,不知所措”。这种情况下系统自然无法正常运转,只能自我结束生命,留下死亡信息。诸如: “Unable to handle kernel XXX at virtual address XXX” “undefined instruction XXX”

    09-29
  • 新型 IO 调度器 BFQ 简介

    Linux io调度器有很多种,大多数调度器都经受住了各种市场环境的长时间验证,稳定性、性能得到各种用户的认可,但新的调度器依然展露头角,在4.12内核中出现了一个新的bfq调度器,这个调度器将取代曾经的辉煌的cfq调度器。社区对待大的改动都是很谨慎的,为什

    09-29
  • CFS任务的负载均衡(框架篇)

    我们描述负载均衡的系列文章一共三篇,第一篇是框架部分,即本文,主要描述了负载均衡相关的原理、场景和框架。后面的两篇是对均衡代码的情景分析,通过对load balance、task placement和active upmigration几个典型的负载均衡来呈现其实现细节,稍后发布,敬

    09-29
  • linux IO Block layer 解析

    早期的 Block 框架是单队列(single-queue)架构,适用于“硬件单队列”的存储设备(比如机械磁盘),随着存储器件技术的发展,支持“硬件多队列”的存储器件越来越常见(比如 NVMe SSD),传统的单队列架构也因此被改成了多队列(multi-queue)架构。早在 3.

    09-29
  • eMMC简介

    1 eMMC是什么 eMMC是embedded MultiMediaCard的简称,即嵌入式多媒体卡, 是一种闪存卡的标准,它定义了基于嵌入式多媒体卡的存储系统的物理架构和访问接口及协议,具体由电子设备工程联合委员会JEDEC订立和发布。 它是对 MMC的一个拓展,具有体积小,功耗低,

    09-29
  • 低纹波、高精度电流源设计

    低纹波、高精度电流源是一种重要的仪器设备;广泛应用于电光源、电化学、通信、测量技术、电子仪器等领域。目前,市场上的电流源不具备连续可调功能;并且输出电流范围小、

    09-29
  • Linux 电信基站系统解决方案

      自从1991年Linux第一次面世以来,任何人也不会想到这个不起眼的操作系统现在会应用得如此广泛。无论是从嵌入式领域的智能手机到大型计算服务器都可以找到它的

    09-28
  • 单片机振荡电路中如何选择晶体?

    1.单片机晶振的原理晶振一般采用三端式(考毕兹) 交流等效振荡电路;实际的晶振交流等效电路中,其中Cv是用来调节振荡频率,一般用变容二极管加上不同的反偏电压来实

    09-28
下载排行榜
更多
广告