FPGA 嵌入式多处理器的可编程控制器的结构外文翻译资料

 2022-08-22 15:29:46

英语原文共 10 页,剩余内容已隐藏,支付完成后下载完整资料


FPGA 嵌入式多处理器的可编程控制器的结构

Zbigniew Hajduk,IEEE 成员, Bartosz Trybus,IEEE 成员,Jan Sadolewski

摘要:本文介绍了现场可编程门阵列(FPGA)系统中的多处理器可编程控制器的设计与实现。其中所提出解决方案的新颖之处是结合目前为止在 FPGA 领域所使用的两种控制算法, 即基于程序和硬件编码,并在一个 FPGA 芯片中应用了多个处理器。控制器按照 IEC 61131-3 的标准进行编程和并行运行控制任务。原机型性能的测试表明,该控制器具有良好的控制性能并比工业可编程逻辑控制器对程序的控制快。

关键词:现场可编程门阵列(FPGA),工业控制,可编程逻辑控制器(plc)。

  1. 简介

由于它具有广泛的应用领域,健壮性和使用 IEC 61131-3 语言易于编程[1],故可编绳逻辑控制器(plc)是工业自动化的基础。一段时间以来,由于 FPGA 芯片结构的灵活性和速度, 现场可编程门阵列(FPGA)实现的 PLC 算法已经成为一个重要的研究领域[2].[3]。专用控制器[4] 或用于图像处理的特定过滤器[5]就是此类方法的示例。因为普通 plc 的性能始终不能满足高响应系统的要求[6] [7],而 FPGAs 提供的并行执行程序具有巨大的潜力。

论文中涉及用于 FPGA 控制算法实现的各种技术可分为两类。第一类应用程序是从程序的形式描述转换成一种用硬件描述语言(HDL)编写代码的程序。例如,在[7]中介绍的将 PLC 指令转换成超高速非集成电路 HDL,在[8]和[9]中介绍了梯子图(LDs)的转换。在[10]中描述了基于Petri 网矩阵模型的可编程逻辑控制器的实现。能更快地执行硬件编码是第一类方法的基本优势。但是,任何控制概念的更改都需要使用三种软件工具,即 PLC 程序编辑、转换为 HDL, 和 FPGA 合成。

第二类方法假定实现了完整的可编程控制器或至少它的基本组件是可以实现的。

2014 年 3 月 25 日收到稿件;2014 年 6 月 23 日修订,2014 年 8 月 12 日;2014 年 8 月 31

日接受。出版日期 2014 年 10 月 14 日;当前版本日期 2015 年 4 月 8 日。

作者来自于 Rzeszow 大学计算机与控制工程系, 波兰 Rzeszow 35-959( 电子邮件:zhajduk@kia.prz.edu.pl;btrybus@kia.prz.edu.pl;js@kia.prz。edu.pl)。

本 文 章 中 一 个 或 多 个 附 属 图 片 的 彩 色 版 本 是 可 以 在 线 获 得 , 网 址 为 :

http://ieeexplore.ieee.org

数字对象标识符 10.1109/TIE.2014.2362888

在 FPGA 中,这种基于 FPGA 的 PLC 样机可以通过单个工具进行编程,无需转换为 HDL。这在[11]中得到了证明,其中通用的 FPGA 微型 PLC 执行 LD。一些建议的解决方案涉及主处理器和协处理器,例如,在[12]中,简化指令集计算机(RISC)处理器专门用于 PLC, 布 尔 协处理器可加速按位运算。在[13]中描述了用于测试两个 FPGA 中央处理器(cpu) 的软、硬件平台,即一个用于位,另一个用于字节(字)操作。

控制设备制造商对 FPGA 技术也越来越感兴趣。西门子公司[14]的基于 FPGA 的 FM 352-5 布尔处理器模块可能是一个的例子。该模块提高了逻辑运算的速度并可以作为一个更大系统的组件或作为一个独立的控制器。它使用西门子 STEP-7 LD 或函数框图(FBD)语言进行编程并执行程序并行指令。National Instruments (NI) 提供了更强大的涉及 FPGAs 的可编程自动化控制器。CompactRIO 平台[15]包括一个用户可编程的 FPGA 机箱,一个带浮点(FP)处理器的嵌入式控制器和输入/输出(I/O)模块。CompactRIO 是由(NI) LabView 图形编程工具编程。西门子和 NI 的解决方案非常接近在 FPGA 中实现 PLC 程序的第一种方法。程序是利用集成软件开发的隐式调用 FPGA HDL 合成工具。

人们对多处理器系统的 FPGA 实现也越来越感兴趣[16]。例如,在[17]中提出了用于并行执行多个线程的对称多处理器系统的设计。另一个系统是软件定义的无线电实现宽带码分多

址算法 [18]。多个很长的指令字处理器可加速氧饱和度图的计算[19]。

本文提出了一种由在单个 FPGA 芯片上实现的相同 CPU 组成,并且用所有 IEC 61131-3 语言编写的多处理器控制器。因此,这个想法对应于上述 PLC FPGA 实现的第二种方法,但通过使用多个 CPU,控制程序可以分解成并行执行的任务,因此速度更快。此外,该控制器集成了根据第一种方法开发的所谓的硬件功能模块(HFBs),即直接在 HDL 中配置,从而进一步提高了速度。HFB 可以表示连续的控制器,过滤器等。因此,该解决方案结合了现有两种方法,即基于程序和硬件编码。这个想法的初步实现是在[20]中提出的,设计中带有单个处理 器的 FPGA 控制器。在[21]中提出了使用多个处理器执行多个控制任务的概念。但是,该论文在提出了一个初步的体系结构之后,讨论了该解决方案的软件方面的问题。

在此,我们提出新的方面进一步发展的结果:增强的多处理器体系结构,用于 IEC 61131-3 任务的并行执行和同步,HFBs 的扩展体系结构,以及自定义 FP 单元(FPU)。新的硬件包括改善对全局存储器的访问,更宽的 32 位全局内存总线,直接访问寄存器(DARs)用于快速任务同步的直接访问寄存器(DAR)和用于由其他处理器或外部输入即时触发处理器的配置寄存器

(CR)。与一些商用 PLC 进行比较,通过一系列的测试表明性能改进是合理的。还描述了基于 FGPA 的 PLC 多处理器控制器的完整原型。

本文介绍的 FPGA 控制器是前段时间开发的控制程序,由控制程序开发员(CPDev)工程工具编程的[22]。该工具已扩展到 FPGA 处理多道加工和 HFBs。

本文组织如下。第二部分介绍了如何用 FPGA 代替迄今为止由 CPDev 编程的通用微处理器的概念。第三部分介绍了 FPU 的体系结构。第四部分提出 HFBs 和 CPU 的集成。第五部分介绍了具有可配置 CPU 数的多处理器控制器的体系结构。第六部分介绍了多任务处理,全局存储器使用和同步机制的 CPDev 工具扩展。第七部分介绍了多处理器控制器的原型。第八部分给出了性能测试的结果,其中包括与工业 PLC 进行比较以及减少 PLC、HFB 和硬件改进方面的时间。

  1. CPU 的概念和体系结构

基于FPGA 的可编程控制器的概念最初受 CPDev 编程环境的操作结构影响 [22]。最主要的想法就是做好基于 fpga 的 CPDev 程序平台,用 IEC 编写 61131 - 3 种语言等准备。

CPDev 是一个与目标无关的工具,最初是为使用通用 AVR, ARM 编程控制器,和 x86 处理器而开发的。支持 IEC 的类似环境 61131-3 编程包括著名的 CoDeSys, ISaGRAF , 或MULTIPROG。与这三个类似,CPDev 也支持各种平台。然而,它主要是面向的资源有限的中小型控制器(的计算能力、内存)。尽管它缺乏一些先进的商业同行的功能,但是一些独特的解决方案是可用的,如 SysML 建模和对单元测试的支持 [23]。

CPDev 在工业有一些应用,包括小型分布式控制系统[23]和 船舶控制监控[24]。该工具的整体结构如图 1 所示。以结构化文本(ST)或指令表(IL)文本语言编写程序,或从 FBD、LD 或顺序功能图(SFC)图转化为 ST 的程序被编译成虚拟机汇编(VMASM)通用可执行代码,并由虚拟机(VM)在目标处理器上执行,不像 CoDeSys 那样直接生成本机几种 CPU 类型的代码。VMASM 是一种装配类型语言,不涉及任何特定的处理器,但面向的更接近 IEC 61131-3[25]。软件 VM 机是用 C 编写的;因此,它可以运行在不同的硬件平台上,从 8 位微控制器到 32/64 位通用控制器处理器。它包括通用的和平台相关的模块(后者由控制器制造商准备)。VM 模型和体系结构已经在[25]中提出。

图 1:硬件机器的 CPDev 程序的翻译阶段

图 2:可编程控制器的体系结构

有了这样一个工具, FPGA 控制器背后的概念是用 FPGA 中实现的硬件机器代替 VM, 这就不足为奇了。因此,该控制器实际上是一个专用于执行 VMASM 代码的专用FPGA 处理器。另外,FPGA 实现了在通用处理器中不可用的新功能,如多处理和 HFB。

一个专用的 32 位 CPU,它实现的 VM 指令是控制器的重要组成部分。中央处理器的两个版本已在[20]中被调查。这里选择了性能测试结果更好的那个,以进行进一步扩展。

多处理器控制器中一个 CPU 的结构,如图 2 所示。并行执行一些内部操作的能力是直接影响 CPU 性能的重要功能。例如,当从程序内存中读取一个连续的参数数据时,将访问数据存储器,读取操作数并存储在 32 位寄存器中。类似地,写一个算术逻辑单元(ALU)结果与从程序内存读取下一条指令代码的时间周期相同 (类似于管道处理)。

与早期设计的相比,新的多处理器在 CPU 引入的扩展 [20]包括通过全局存储器与其他

CPU 的通信内存,到 FPU 和 HFBs 的接口,附加指令用于全局变量上的信号量操作和内部电路调试功能。与[21]相比,增加了用于任务同步的 WAIT 指令,并且更改和优化了与全局存储器通信有关的指令。负责断言程序计数器(PC)的下一个值的 NEXT PC 块也已经升级(参见图 2)。即修改 PC(跳转)的指令现在在一个指令周期内执行。这里应用的机制与[26]中展示的类似,就典型的微处理器而言,这是相当独特的功能。

  1. FPU

FPGA 结构针对定点计算进行了优化。FP 算法的实现需要大量资源,因此,最大时钟频率变得相对较低[27]。要部分克服这个问题,已经设计高效实现 FP 的算法。例如,序列算法和流水线除法器和平方根块[27],对数和指数函数[28],以及一组特定的库[29]。

前一节中提到的 CPU 的 ALU(参见图 2)只处理整数。实际上 CPDev 工具是 IEEE 754 标准的单精度 FP 数。除了像加法、减法这样的基本运算外,乘法和除法,控制器 FPU 还执行比较(等于,大于等),整数到 FP 的双向转换以及舍入和截断换算,绝对值的确定、符号转换等 IEC 61131-3 的功能(最小,最大,限制)。

在为多处理器控制器设计 FPU 组件时,可接受的资源需求和之间的权衡计算速度一直是设计时的一个重要目标。作为说明,让我们简要地讨论一下 FP 乘法器的设计问题。

两个 FP 数的乘法是通过乘法来执行的尾数和指数的加法。简化 FP 倍增器的结构如图 3 所示。右边的归一化块是一个简单的移位寄存器,有序将尾数乘法结果右移。使用四舍五入到最接近的偶数模式将结果四舍五入。舍入需要在 A3 块中额外确定 3 位,即保护位、舍入位和粘性位。

图 3:FP 乘法器的体系结构

已经研究了乘法器的四个版本。他们在定点乘法器 A3 模块的设计上有所不同,定点乘法器 A3 模块的结构对最终实现的参数(如 FPGA 资源需求和计算速度)有本质的影响。检查了标准的连续纸笔乘法算法,以及并行,流水线,和快速阵列乘法器以及有或没有 FPGA

嵌入式硬件的倍增器。乘法器版本和实现参数评估的性能测试表明纸笔算法是两者之间的一 个很好的折衷速度和资源需求。因此,这个版本被选为 FPU 的 FP 的倍增器。在最终实施之前,已经对 FPU 的其他部件进行了类似的评估。

  1. HFBS

HFBs 是 FPGA 控制器的另一个特性。他们可以驱动自定义设计的外围设备,并提供对底层硬件(例如显示器)的访问。此外,HFBs 也可以用作硬件加速器以提高计算速度。它们可以实现特定的控制算法,例如 continuous 控制、神经网络等,从而成为 PLC 程序在 FPGA 中的实现的桥梁(参见第一部分)。

HFBs 对时间要求高的应用中特别有用,例如,快速传感器和驱动器的建造在微机电系统技术中,它的响应在某些情况下,时间小于 50 纳秒。

在这里,HFBs 被设计为知识产权(IP)核心。因此,它们可以由独立的设计师与控制器集成。HFBs 与 CPU 或 HFB 访问仲裁器的连接方式如图 4 所示。一个 PC 应用程序是为了方便HFBs 的集成而开发的,自动生成硬件 HDL 代码之间的连接块和 CPU。还实现了用于硬件模块与 CPU 之间的数据传输的专用握手协议。

图 4:CPU 和 HFB 之间的连接

  1. 多处理器可编程控制器

如引言中所述,多处理器系统的 FPGA 实现变得越来越重要,[16],[17],[19]。在本节中, 将介绍在 FPGA 中为控制器实现的多处理器片上系统(MPSoC)的体系结构。它由许多带有FPUs 的处理器,HFBs 集成部分和通信模块(CM)组成。MPSoC 是作为可编程控制器来工作的,

能够同时运行多个控制任务。每个任务由单独的处理器执

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[238610],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。