跳转到内容

嵌入式控制系统设计/处理器

来自维基教科书,开放的书籍,开放的世界
维基教科书的


嵌入式控制系统设计


处理器技术涉及用于实现系统所需功能的计算引擎的体系结构。我们知道的所有设备中都嵌入有处理器(微波炉、汽车等)。选择合适的嵌入式处理器对于执行所需的操作至关重要。

如今硬件越来越像软件。最终用户可以轻松地对它进行编程并将其与其他组件集成。一个简单的例子是 FPGA,它包含比实际需要的更多的组件,因此它可以被编程用于各种应用程序。它也可以用作多个硬件组件之间的通信接口,例如在手机芯片上集成 DSP 和混合 CPU。

另一个重要的趋势是模块化设计。这意味着硬件组件被设计成独立的部分,可以组合在一个设备中。通过这种方式,设备只对不同组件的控制和通信进行编程。这具有以下优点:

  • 组件在损坏时可以轻松更换
  • 添加新功能(升级)非常简单
  • 迈向标准化的一小步

在机电一体化领域,标准化还不常见。然而,电子行业是标准化的先驱,因为我们可以在其中找到许多标准化的例子:VHDL、标准组件,如加法器、多路复用器、寄存器、内存等。这里一个简单的例子是 美国国家仪器公司。随着时间的推移,机械领域也将需要这种标准化。

特定分支

[编辑 | 编辑源代码]

在汽车领域,有一种向集中的趋势。这是因为设计师在过去发现,有太多零件需要各自的控制器。所以现在他们试图尽可能少地使用 CPU。因此,设计越来越侧重于由少数 CPU 控制的多个组件之间的通信总线。

在航空领域,要求大不相同。首先,安全至关重要。因此,标准化和认证变得非常重要。一个简单的例子是,在航空领域,他们只使用经过认证的硬件。他们仍然使用奔腾 II,因为它是经过验证的技术。

硬件选择

[编辑 | 编辑源代码]

当一个人达到必须对处理器技术做出选择的时候,可以选择 5 类处理器,每类都有其自身的优缺点。

  • 通用处理器:可用于多个应用程序,价格低廉,设计时间短,但性能低,功耗高,尺寸大
  • 单用途处理器:性能好,尺寸小,功耗低,但设计难度大,价格昂贵,灵活性差
  • ASIP:介于单用途处理器和通用处理器之间的中间解决方案
  • PLD:设计成本低,产品开发速度快,数量众多,但功耗比 ASIP 高。一些例子是:PLAFPGA
  • PLC:可用于多种工作条件,标准化程度更高,但不适合复杂计算,价格相对昂贵

除了处理器选择外,设计师还必须寻找合适的通信和存储技术。固态硬盘是一个坚固的存储技术示例。它们具有抗振动、抗磁场和抗尘的特性,因此可以在多种工作条件下使用。通信技术示例包括 USB、Firewire、CAN 总线、以太网等。


处理器技术涉及用于实现系统所需功能的计算引擎的体系结构。我们知道的大多数设备中都嵌入有处理器(微波炉、汽车等)。选择合适的嵌入式处理器对于执行所需的操作至关重要。在设计过程中,处理器选择可以在两个时刻进行。你可以在设计之初选择一个处理器,那时你只是对规格有一个大致的了解,这意味着在设计过程的后续阶段,你需要将所需的功能适应处理器的可能性。例如,当你的处理器预算有限时,可以选择具有最高可能性且符合预算的处理器。或者,你可以在项目结束时做出决定,这样你就知道要实现的所有必要功能,并且可以选择完全符合你情况的处理器类型。如果可能,你必须始终选择你最熟悉的处理器,以最大程度地减少设计时间并避免问题。最大程度地减少设计时间意味着更低的成本和更快的上市时间。

首先,我们将概述一些在选择处理器时应该牢记的术语和概念。然后,我们将研究目前可用的不同类型的处理器技术,并了解当今可用的处理器。在本章的第三部分,我们将讨论可编程逻辑控制器 (PLC)。

文本中将引用一些有趣的文章、网站和链接,你可以从中找到关于该主题的清晰解释和更广泛的观点。文本中将这些引用显示为数字,数字对应于参考资料列表中显示的网站。所有参考资料的列表位于本章末尾。

术语、问题

[编辑 | 编辑源代码]

处理器的性能/速度

[编辑 | 编辑源代码]

这表示每秒的时钟周期数。它决定了每秒执行的指令数量。如果您的处理器要求超过处理器技术所能提供的,单个处理器将无法胜任。这时就需要考虑双核处理器。这不仅可以使计算负载翻倍,还可以提供软件在内核之间架构的灵活性,甚至可以降低功耗,而单个内核运行在两倍的频率上。

  • 电子兼容性

所有选择的硬件都应该能够相互通信。

  • 环境兼容性

处理器工作环境可能会造成损坏,因此必须采取预防措施以避免意外故障。

输入/输出

[编辑 | 编辑源代码]

为此,您应该查看硬件外设

定点/浮点设备

[编辑 | 编辑源代码]

这是处理器计算算术的两种类别。一般来说

定点

  • 更快
  • 更节能
  • 成本敏感

浮点

  • 高精度

指的是可以定义分数的粒度

  • 动态范围

指的是数字格式中可以表示的最大数与最小数之比

  • 缓存:处理器用来减少与(主)内存通信所需的时间。
  • 内存地址
  • RAM(随机存取存储器)
  • ROM(只读存储器)

我的系统需求是否会随着时间而改变

[编辑 | 编辑源代码]
  • 是:那么可能需要可编程解决方案(DSP、MCU、FPGA)

示例:用户界面功能的更改

  • 否:ASIC 可能适合

使用寿命

[编辑 | 编辑源代码]

所需寿命取决于系统所需的寿命,更换控制器的意愿或在其他系统中重复使用控制器的愿望

如何在处理器上进行开发

[编辑 | 编辑源代码]

如果您使用一个好的、易于使用的开发工具,您将提高生产力并缩短开发/调试时间。这也取决于您拥有的经验丰富的员工(成本更高)以及您的公司对某些处理器类型的经验。当然,如果您使用用通用语言编写的代码,它可以轻松移植到新的处理器,并增加了扩展和重写程序的可能性。

设备可以从电网获取电源或使用电池工作。这种限制(电池)通常会涉及性能和能效之间的权衡。选择使用电池的系统,我们需要考虑电池的重量、充电间隔时间和安全性。

实时方面

[编辑 | 编辑源代码]
  • 中断中断向量
  • 支持“原子操作”~ 互斥量(=互斥)如 测试并设置比较并交换
  • 粒度
  • 特权级别CPU 模式
      • 对于最常见的处理器类型
  • 微处理器:当选择微处理器以及嵌入式操作系统时,操作系统是导致实时操作不直接的原因。
  • 微控制器:作为一种非常简单的微处理器,实时操作很困难。
  • DSP:当实时性很重要,例如在信号处理(音频、视频等)中,DSP 的性能最佳。
  • FPGA:FPGA 可以配置成完全像微处理器一样工作,也可以完全像 DSP 一样工作。因此,实时性能取决于是否选择类似 DSP 的配置。
  • PLC:PLC 从传感器获取输入,评估这些输入并进行更改(输出),因此它充当实时系统

操作系统

[编辑 | 编辑源代码]

操作系统管理系统:管理和处理 I/O、内存管理、控制同时运行的进程。如果是这样,请确保您的处理器支持您选择的 OS。

-> 关于某些主题的更详细说明的有趣链接

[1]

处理器技术类型

[编辑 | 编辑源代码]

在本部分,我们将讨论常见的处理器类型、其特点和示例

选择适合您的应用程序的正确处理器类型的有趣链接:[1] [1]

通用处理器

[编辑 | 编辑源代码]

系统设计师只需要对处理器的内存进行编程以执行所需的功能:软件部分。这些类型是为了针对各种应用产生大量的数字而创建的

以下是一些通用处理器的通用特征

  • 优点
      • 易于设计和使用(只需要对内存进行编程)
      • 因此设计时间很短
      • 因此设计成本很低
      • 可重新编程(当您只需要更改程序时,更改功能或改进系统变得容易)
  • 缺点
      • 性能不是很好
      • 尺寸很大(因为它们是为用于各种具有不同规格的应用而构建的,并且所有这些规格都必须在处理器上可用)
      • 它们消耗大量的功率

通常,它们用于在产品首次上市时投入使用,因为它们的设计成本低廉且易于使用。由于使用代码,设计师通常会努力最小化编译后的代码大小,而不是最大化性能。

基本上,微处理器执行微控制器/嵌入式系统必须完成的所有任务。 普通的微处理器包含一个总线单元,它是与(计算机)内存通信的通路;一个指令缓存,用于跟踪通过总线单元从计算机内存中获取的指令;一个(预取)获取单元,将指令从指令缓存中复制出来进行进一步处理;一个解码单元,从预取单元中获取指令,并将其转换为处理器理解的二进制代码;一个控制单元,执行由解码单元提供的二进制代码中的任务或指令;一个“数据缓存”,用于保存指令或数据;一个 ALU(算术逻辑单元),执行加、乘等数学运算;最后是寄存器,它们也是 ALU 使用的一些内存,用于存储执行操作的结果。 微控制器没有像普通微处理器那样描述的数据总线或总线单元。 原因是不需要与内存通信,因为内存与微处理器本身集成在同一个芯片上。 MCU 通常用作系统控制器,具有许多条件操作和程序流程的频繁变化。 MCU 代码是用 C 或 C++ 编写的。 有各种各样的 MCU 可供选择:从 4 位、32 kHz 型号到 32 位、500 MHz 器件,以及超越(“-位”表示设备数据总线、寄存器、执行单元等的宽度)。

如果您选择嵌入式操作系统(Windows、Linux、Dos…),则需要微处理器。 但是对于实时操作,最好不要使用微处理器。 微控制器实际上是一种低端微处理器,用于更简单的任务(红绿灯,在一定时间内保持灯光…)。

单用途处理器

[edit | edit source]

这种类型的处理器被设计为精确执行一个程序。 嵌入式设计人员通过设计定制的数字电路来创建单用途处理器,优缺点或多或少与通用处理器相反。

  • 优点
      • 性能非常好
      • 尺寸小(精确地适合一个解决方案)
      • 它们功耗低
  • 缺点
      • 设计起来并不容易,因此设计时间很长
      • 因此设计成本更高
      • 重新编程很困难
      • 灵活性有限:不容易更改,适应功能

在设计中,我们可以区分标准单用途处理器和定制单用途处理器(ASSP)。 标准单用途处理器(硬件外设)在另一章中解释 硬件外设。 它们用于各种各样的应用程序以完成相同的任务。

它们被设计为满足最终产品的特定要求。 在设计过程中,它们将针对功耗和性能进行优化。 ASIC 通常是在产品在市场上稳定(使用非 ASIC 解决方案)后引入的,因为开发时间和成本较高。 稳定后,制造商可以通过尽一切努力使处理器尽可能适合其应用程序来寻求更大的利润。 缺点是,如果出错,则需要制作一个全新的芯片,但对于通用处理器,只需更改代码并重新编译即可。 您可以在技术和需求不会快速变化的稳定市场中使用 ASIC。

专用指令集处理器 (ASIP)

[edit | edit source]

ASIP 是为具有共同特征的特定类别应用程序而设计的,它是通用处理器和单用途处理器之间的“中间”解决方案,比单用途处理器具有更高的灵活性,并且仍然比通用处理器具有更好的性能、功耗和尺寸。 当然,这会导致更长的设计时间(成本),而且还存在编译器问题,通常您必须自己创建编译器。

DSP 经过优化,可以有效地执行重复的和数值密集的任务,例如矩阵运算、用于实时过滤的卷积,因为 MCU 的性能有限。 DSP 可以以非常高的时钟频率运行,并且通常根据它们每秒可以执行多少百万次 MAC 运算来比较。 此指标称为“兆 MAC”,或 MMACS。

DSP 经过优化可以执行数学运算,但不适合监督控制。 因此,基于 DSP 的系统与速度较慢的 MCU 集成在一起,这可以通过两种方式完成

    • 离散 DSP + MCU(在系统中分开)
      • 优点
        • DSP 和 MCU 的设计彼此分离
      • 缺点
        • 在控制和 DSP 功能之间进行硬分区,如果 DSP 有太多指令,MCU 无法接管
        • DSP 和 MCU 需要不同的开发工具
    • 收敛处理器 [2](收敛处理器针对实时数据流的计算和面向控制的任务进行了优化)
      • 优点
        • 针对实时数据流的计算以及面向控制的任务进行了优化
        • 高时钟频率
        • 功耗更低
      • 缺点
        • 在同一设备上混合控制应用程序和信号处理,非实时任务可能会干扰时间关键任务
        • 开发人员的技能必须更高

可编程逻辑器件 (PLD)

[edit | edit source]

处理器由多层组成:最底层是晶体管,如果连接晶体管,您将获得逻辑门,通过连接这些逻辑门,您可以制作一个电路。 在 PLD 中,所有层都已存在,这些层实现了一个可编程电路,其中编程的含义比软件程序的含义更低级。

有两种类型的 可编程逻辑器件

  • 简单的 PLD
  • 复杂的 PLD
    • CPLD
      • CPLD 由…[Fixme:定义]
    • 现场可编程门阵列 (FPGA)
      • FPGA 在逻辑块之间提供更通用的连接,而不仅仅是像 PLA 和 PAL 那样使用逻辑阵列,因此能够实现更复杂的设计。

可编程逻辑器件与全定制芯片相比的优势

    • 设计成本低(快速产品开发)
    • 几乎可以立即获得
  • 缺点
    • 单位成本更高
    • 比 ASIC 更大
    • 功耗更高
  • 示例:FPGA

有大量针对信号处理的标准构建块库可用(快速开发)FPGA 像 ASIC 一样针对特定最终产品优化硬件。 它们还可以执行大规模并行计算(MCU 或 DSP 无法做到)。 由于它们的功耗和成本,它们不应在便携式或对成本敏感的系统中使用。 [需要引用] FPGA 由于其可配置的特性,能够与任何外部设备通信。 可以基于 FPGA 实现创建 ASIC

有关更多详细信息,请参阅 可编程逻辑

[edit | edit source]
  • 多核 CPU
  • Cell 处理器
  • GFX 卡:随着这些卡上可用处理能力的提高,使用它们不仅仅用于图形处理本身变得越来越有趣。 它们特别擅长 并行处理,可以用作 流处理器,它们通常被称为 GPGPU。 目前只有 NVIDIA CUDAATI/AMD CTM 系统可用。
  • 多处理器 解决方案:可以使用多个不同的处理器在不同级别控制系统。 例如:微控制器可用于低级本地控制,它们可以接收来自更高控制级别的命令,这些命令可能在嵌入式 CPU 上实现,而嵌入式 CPU 又可以通过控制室中的通用 CPU 进行重新编程。

制造商

[edit | edit source]

核心业务是汽车电子系统。 Melexis 也是具有传感器兼容接口的全保护微控制器的制造商。 标准产品系列包括微控制器和传感器 IC 等。

恩智浦提供微控制器、集成电路和逻辑器件。

嵌入式系统设计咨询。

Coware 是一家专注于 ESL 电子系统级 DSP 系统软硬件设计的公司。

Easics 参与设计完整的电信产品 ASSP,即针对电信设备制造商的 应用特定标准产品

研究和技术领域包括宽带、嵌入式系统和无线网络。

Atmel 公司设计和制造先进的半导体产品,重点是微控制器、非易失性存储器、逻辑、射频 (RF) 元件和传感器。

Microchip 开发了名为 PIC 的多种微控制器,用于汽车应用、家用电器、热管理、电源管理等。该公司还在存储器、射频产品和接口方面活跃。

MIPS 为全球嵌入式市场提供广泛的 32 位和 64 位处理器内核。

ARM 开发处理器、缓存和 SoC 设计、应用特定标准产品 (ASSP)、相关软件和开发工具。

瑞萨电子是日立和三菱半导体集团的合并公司,它开发 SuperH CPU 内核、架构和产品(SuperH

德州仪器提供广泛的嵌入式处理器,从流行的超低功耗 MSP430 到高速 DSP。TI 还专门从事模拟和无线解决方案。

可编程逻辑控制器 (PLC)

[edit | edit source]

可编程逻辑控制器诞生于需要一种设备来消除调整和更换复杂继电器式机器控制系统所带来的巨大成本。可编程逻辑控制器是专门的工业计算机。PLC 是一种实时设备:接收来自开关和传感器的输入,根据程序(逻辑)评估这些输入,并改变输出状态来控制机器或过程。

优点

[edit | edit source]

PLC 的使用非常简单:编程、布线、安装和更改简单快捷。PLC 的另一个重要特性是其环境适应能力:PLC 设计用于

  • 扩展温度范围
  • 脏污或粉尘条件
  • 抗电气噪声
  • 抗振动和冲击

PLC 不仅仅包含处理器,还包含 I/O 布局:所有 PLC 都包含六个基本组件

    • 处理器或 CPU
    • 机架或安装座
    • 输入组件(传感器可以是模拟或数字的)
    • 输出组件
    • 电源
    • 编程单元、设备 (PC)

PLC 程序

[edit | edit source]

CPU 执行程序。该逻辑可以用梯形图、指令表、顺序功能图或任何 IEC 语言编写。

该程序将被下载到 PLC。

I/O 功能

[edit | edit source]

现代 PLC 与其他处理器的主要区别在于 I/O 布局。这些布局将 PLC 连接到传感器和执行器。根据这些布局,PLC 可以分为三类:模块化、机架式和 P2P。

模块化 PLC 内置有限数量的输入和输出连接(数字和模拟)。如果基本型号没有足够的 I/O 连接,可以使用扩展模块。

  • 机架式 PLC

机架式 PLC 具有处理器模块和独立的 I/O 模块,这些模块可能占据多个机架。这些模块通常具有数千个离散和模拟输入和输出。通常使用高速串行 I/O 链接,以便机架可以远程安装在处理器之外,从而减少大型工厂的布线成本。

在较大的 I/O 系统中,PLC 之间可能存在 P2P(对等)通信。这允许复杂过程的不同部分具有独立的控制,同时允许子系统通过通信链路进行协调。

通信

[edit | edit source]
    • I/O 模块可以通过以下方式与 PLC 的 CPU 通信
      • 背板

I/O 模块可以位于同一个机架或站点。通信在机架内或跨背板进行。

      • 背板扩展

背板扩展模块允许 I/O 模块位于与控制器分离的机架或站点。

      • 设备网络

模块可以通过网络与控制器通信。工业网络用于将现场设备与控制器互连。(现场总线ProfibusDeviceNet

    • PLC 之间
      • 串行通信
      • 工业通信网络
      • 工业 I/O 网络

缺点

[edit | edit source]
  • 它无法处理复杂情况
  • 价格昂贵,因此不适合大规模生产
  • 需要维护

-> 关于比较 PLC 与其他类型处理器技术的良好参考资料:[3][4]

有关 PLC 和编程的参考资料 [5][6][7][8][9]

[edit | edit source]

为了能够处理更复杂的情况,正在朝着 PC 的方向发展(PAC:可编程自动化控制器)。PC 和 PLC 之间的界限越来越模糊。语言也变得更加复杂,同时朝着更复杂的 PLC 方向发展。

-> 一个关于其未来和向 PC 发展的有趣链接:[10](荷兰语),[11]

链接和参考资料

[edit | edit source]
  1. a b 如何选择嵌入式媒体处理器,第一部分 由 David Katz 和 Rick Gentile 撰写;和 如何选择嵌入式媒体处理器,第二部分 由 David Katz 和 Rick Gentile 撰写

  • 嵌入式系统设计:统一的硬件/软件介绍

作者:F. Vahid 和 T. D. Givargis

作者:Rick Kuhlman

作者:Joel Huebner

作者:Kim Rowe

作者:David Katz

作者:Henk Capoen

嵌入式控制系统设计

华夏公益教科书