发布时间:2022-06-10 阅读量:1237 来源: 我爱方案网整理 发布人: Aurora
尽管FPGA已经日益广泛应用于各种系统,但大部分供应商仅采用两种颇为狭窄但截然不同的FPGA结构。市场区别很清楚,一边是集成多个应用处理器内核的高端SoC FPGA,另一边是主要包含逻辑单元的低端FPGA方案。供应商一般都是只采用其中一个方法:要么提供内置高性能ARM A级应用处理器的SoC FPGA,要么提供没有处理器的低端FPGA。
像服务器集群和高性能计算系统这类应用,对计算性能的要求越来越高,为应对这种需求,SoC FPGA也集成多个十分适合处理高性能应用的ARM A级应用处理器。然而,现实情况是这种集成ARM A级处理器的SoC FPGA对很多其它应用来说有点大材小用。它们一般都比较贵,由于操作系统的要求而产生很多软件支持负担,此外,由于高功耗也导致系统过热。一般来说,很多时这种高性能计算能力是不必要的;但要用低端FPGA来替代也不理想,由于没有硬核微控制器或处理器,低端FPGA只是一组逻辑单元的组合,虽然它们带有软核微控制器,但却不带外设或子系统。若需要外设,就必须通过FPGA门来创建。带软核微控制器的低端FPGA一般运行缓慢,而且由于需要FPGA门来创建微控制器和子系统而导致效率低下。此外,它们几乎没有设计安全性可言,而且都是基于专用架构开发的。这两种FPGA选择已经无法满足日益增多的通用型应用的要求。
现在有了第三种选择。基于微控制器的新型SoC FPGA比低端FPGA性能强,而又没有ARM A级SoC FPGA的高成本和支持需求等缺点。它们内置了硬核微控制器内核和外设、I/O及其它功能,可让嵌入式系统设计师实现多种通用型应用。对很多应用,这种基于微控制器而且经过强化的SoC FPGA是最有效的方案,毕竟有很多应用都可以使用32位的微控制器结构,所以使用些架构的微控制器的产量很大。
设计区分策略的实例
一个ARM Cortex M3 SoC FPGA就可以兼具微控制器和FPGA结构的优势。鉴于结构和指令存储访问的要求,微控制器比较适合低速串行任务。而FPGA则更适合对时间要求比较高的并行处理任务。若根据这个特点来区分设计,就比较清楚那个组件应该做什么事情。
比如,在许多设计中,ARM Cortex M3及外设一般用于通信、控制和其它低速功能。而FPGA一般用于实现独特的逻辑功能,或者执行对时间要求比较高的加速功能。按这种方式,一个ARM Cortex M3 SoC FPGA芯片就可以视为一个带可配置硬件加速功能的微控制器,而FPGA也成为硬件加速和实现逻辑功能的理想方案,而这两方面都是FPGA的长处。将ARM Cortex M3与FPGA集成,就可以在很多系统设计应用中很好地解决串行和并行任务的区分。下面我们列出几个设计实例。
多轴马达控制:控制多个马达的一个主要挑战是要求马达控制回路有确定性的响应时间。为确保设计的可靠性,每个马达必须有精确的伺服响应时间,不能有太大的时间波动。由于多轴马达控制算法对时间要求严格,它应该由FPGA来实现。FPGA是实施这种需要确定性响应时间的控制回路的理想方案。图一展示了一个多轴马达控制设计的模块示意图。从图中可以看出,马达控制算法模块位于FPGA区域,而低速接口则连接到ARM M3。

图一:多轴马达控制设计的模块示意图
马达控制算法不是唯一要求实现的功能,一个完整的马达控制设计往往还需要通信接口和控制I/O。这类接口对性能要求不高,因此由M3这类微控制器来实现比较合适。通信接口可以是控制域网络(CAN)、串行外设接口(SPI)、通用异步收发器(UART),或者其它控制总线。
为以太网交换机增加MACsec (MKA):出于对网络数据安全的考虑,IEEE委员会制定了802.1AE MAC安全标准,这通常被称为MACsec 或MACsec Key Agreement (MKA)。MKA标准明确了一系列通过以太网传输数据的保护协议,其中一个要求就是在链路上加密数据,这是通过生成密钥和交换密钥来实现的。虽然MACsec在很多以太网物理层器件(PHY)上都有实现,但很少有以太网交换机带有MKA协议。交换机和PHY需要同时支持,才可以实施MKA协议。而由基于ARM Cortex M3的FPGA来实现,便是再合适不过。
要为以太网交换机增加MKA,交换机必须与带有MACsec 的物理层器件PHY (图二)连接。还需要一个外部器件来管理密钥、运行MKA协议,并监控以太网链接。

图二:MKA协议实施
密钥管理和MKA软件对计算性能没有太高的要求,但是监控以太网链接却需要很高的端口速率性能。一个基于M3的FPGA可以很好地执行这些任务。微控制器运行MKA协议并处理密钥生成,这些任务跟网络类型和所需的安全标准无关,因此不经常运行。例如,如果网络要求每隔一小时改变安全密钥,若FPGA要支持两个链路,那么MKA协议只需要每小时执行两次即可。FPGA逻辑单元可为串行千兆媒质独立接口(SGMII)提供物理接口,也可以过滤特定IP地址或命令行。当新的密钥需要加载时,逻辑单元还为PHY输送信号。
实施一个完整的IEEE1588客户端:IEEE1588是一种在以太网内同步时钟的标准,广泛应用于无线通信产品中,并且在金融网络、智能电网应用和广播视频领域也得到普遍使用。一个IEEE1588网络包括以太网交换机、网关、接入点,以及从端/客户端节点设备(见图三)。从端/客户端节点只需要一个以太网端口,像智能电网中继或机器视觉摄像头等工业应用也只需要一个IEEE1588端口。虽然从端/客户端节点设备仅需要一个端口,但要在设计中添加IEEE1588功能,并不是小事。

图三:完整的IEEE1588客户端方案
在IEEE1588设计中,需要实现如下四个关键功能:
以太网PHY或其它器件,以支持时间戳 在处理器上运行的软件程序,以实现所要求的应用功能 运行算法的IP,以调整基于锁相环(PLL)的IEEE1588输出 可以动态调整的PLL,以输出网络时钟。
一个基于ARM Cortex M3的FPGA是IEEE1588客户端设计的核心。M3用于运行软件时序程序和算法以控制PLL,这个软件可以监控网络时钟,必要时也可以调整PLL。FPGA提供连接以太网PHY的逻辑接口,以及简化系统主机集成所必需的接口总线。这一经过验证的完整方案可以最小化系统软件集成和测试工作量。此外,当新的IEEE1588简档或增强功能面世时,这个基于M3的FPGA方案也可以加快现场的更新。
晶振的启动时间,通常是指其通电后进入稳定振荡状态所需的时间。若启动时间过长,可从以下五个常见的影响因素方面进行优化。
RTC(Real-Time Clock,实时时钟)芯片作为一种独立的专用计时器件,其核心功能包括提供稳定的日历时钟、在主电源断电后持续运行、支持定时中断以及输出高精度时间戳,为各类嵌入式系统提供可靠的时间基准。
时钟系统是保障微控制器(MCU)稳定运行的核心,而晶振作为关键时钟源,主要分为无源晶振与有源晶振两种类型。下面将围绕工作原理、硬件接口、电气特性及其在MCU中的适配场景等维度,系统解析这两类晶振与MCU之间的关联逻辑。
恒温晶振(Oven Controlled Crystal Oscillator,简称OCXO)是高精度频率源的核心组件,选用切型更优(如SC切、AT切高精度型)、封装应力极小的高Q值晶片,通过恒温槽的超精密控温,让晶振始终工作在零温度系数点,几乎消除温度引发的频率漂移。
晶振倍频干扰(即高次谐波辐射)是电磁兼容(EMC)设计中非常棘手的问题,通常表现为基频25MHz的5次、7次谐波(如125MHz、175MHz等)处辐射超标。该问题源于晶振输出方波信号包含丰富的高次谐波成分,若PCB布局不当,晶振及其走线极易构成高效辐射天线,导致电磁干扰增强。