嵌入式系统与物联网的基础

嵌入式系统与物联网的基础

时间:2021-3-4 作者:admin

嵌入式系统无处不在。几乎任何与您交互的电子设备都比简单的光开关更复杂,它包含一个数字处理器,它从其环境中读取输入数据,执行计算算法,并生成某种与环境交互的输出。

从早上睁开眼睛(对数字设备发出的警报)到刷牙(用含有数字处理器的电动牙刷)、烤早餐百吉饼(在数字控制烤箱中)、禁用(数字)家庭警报系统,您都可以与嵌入式设备交互。一整天,您向许多其他设备(如电视遥控器、交通信号和铁路交叉口)提供输入并接收输出。高度数字化的运输系统,包括汽车、飞机和客运渡轮,每个系统都包含几十个甚至数百个嵌入式处理器,这些处理器管理着驱动列车的运行,监督安全功能,保持舒适的气候,并为他们携带的人类提供娱乐。

让我们花点时间澄清一下,将嵌入式系统和通用计算设备分开的分界线,有时是模糊的。定义嵌入式计算系统的属性是将数字处理集成在一个具有某种更大用途的设备中,而不仅仅是计算。不包含任何类型的数字处理的设备不是嵌入式系统。例如,只包含电池和由开关控制的电机的电动牙刷不是嵌入式系统。一种包含微控制器的牙刷,当你在刷牙时用力按压时,它会照亮红灯,这是一种嵌入式系统。

一台台式机,即使它能够执行许多任务,可以通过增加各种各样的外围设备来增强,但它只是一台计算机。另一方面,汽车的主要目的是运送乘客。在执行此功能时,它依赖于包含嵌入式处理的各种子系统。汽车是嵌入式系统。个人电脑不是。

智能手机更难分类。当作为电话使用时,它显然是在执行与嵌入式系统定义一致的功能。不过,当它作为网络浏览器使用时,它更像一台小型通用计算机.显然,并不总是能够确定一个设备是嵌入式系统还是非嵌入式系统。

与嵌入式设备相比,了解通用计算机运行环境的差异是很有帮助的。个人电脑往往在气候控制的室内环境中工作得最好。嵌入式设备,如汽车中的设备,往往暴露在更加崎岖的环境中,包括雨、雪、风、尘和热的全方位影响。

很大比例的嵌入式设备缺乏任何类型的主动冷却系统(这在个人计算机中是标准的),必须采取措施确保它们的内部部件保持在安全的运行温度,而不管外部条件如何。

嵌入式系统,无论是相对简单的设备还是高度复杂的系统,通常都由多种元素组成,我们将讨论这些元素。

电源

所有的电子数字设备都需要某种电源。最常见的情况是,嵌入式系统由公用电源或电池供电,或由设备运行的主机系统提供的电源供电。例如,包含处理器和CAN总线通信接口的汽车尾灯组件由汽车电气系统提供的12伏特直流(DC)供电。

还可以从连接太阳能电池板的可充电电池上为嵌入式设备供电,使其能够在夜间和阴天继续工作,甚至可以从环境中收集能量。自绕腕表使用从手臂运动中获得的能量来产生机械或电力。安全和安全关键的嵌入式系统通常使用公用电源作为主要动力源,同时提供电池作为备用电源,以便在停电期间进行操作。

时基

嵌入式系统通常需要一些方法来跟踪时间的进度(也称为挂钟时间),无论是在短期内(用于微秒和毫秒的时间)还是从长期来看,都要跟踪一天中的日期和时间。最常见的是,主系统时钟信号由晶体振荡器或微机电系统(MEMS)振荡器产生,产生几兆赫的输出频率。晶体振荡器放大物理晶体的共振振动,通常由石英制成,利用压电效应产生方波电信号。MEMS振荡器包含振动机械结构,利用静电传导产生电输出。

一旦设置到正确的时间,由晶体振荡器或微机电系统振荡器驱动的时钟将在频率上出现小误差(通常为百万分之1-100),这些误差会在几天和几周的时间内累积起来,逐渐漂移几秒钟,然后离正确的时间只有几分钟的距离。为了缓解这一问题,大多数互联网连接的嵌入式设备定期访问时间服务器,将内部时钟重置为当前时间。

数字处理

根据定义,嵌入式计算系统包含某种形式的数字处理器。处理功能通常由微控制器、微处理器或芯片上的系统(SoC)提供。微控制器是一种高度集成的设备,它包含一个或多个中央处理单元(CPU)、随机存取存储器(RAM)、只读存储器(ROM)和各种外围设备。微处理器包含一个或多个CPU,但与微控制器相比,与微控制器相比,集成到同一设备中的总体系统功能少,通常依赖于RAM、ROM和外围接口的外部电路。

SoC甚至比微控制器具有更高的集成度,通常将一个或多个微控制器与配置为以高速执行专门功能的附加数字硬件资源相结合。SoC设计可以作为现场可编程门阵列(FPGA)器件在传统微控制器与自定义高性能数字逻辑相结合的体系结构中实现。

记忆

嵌入式系统通常包含用于工作存储器的RAM以及某种类型的ROM(通常是闪存),用于存储可执行程序代码和其他所需的信息,如静态数据库。每种类型的内存的数量必须足以满足嵌入式系统体系结构在其计划生命周期中的需求。如果该设备旨在支持固件升级,则必须在硬件设计中提供足够的内存资源,以支持系统生命周期内可能出现的能力增强范围。

软件和固件

在传统的计算环境中,用户使用的可执行代码(如Web浏览器和电子邮件程序)称为软件。这个术语用于区分程序代码和构成计算机系统物理部件的硬件。在通用计算机中,软件作为文件存储在磁盘驱动器上.在嵌入式系统中,可执行代码通常存储在ROM中,ROM是设备内部的硬件组件。由于这种安排,我们可以认为代码在硬件和软件之间占据了一个中间位置。这种中间立场被称为固件。在早期的嵌入式系统中,代码常常被刻录到内存设备中,在初始编程之后无法更改。这些设备比大多数目前生产的嵌入式设备更像硬件(因此更“坚固”),而嵌入式设备通常包含可重写的闪存。尽管如此,我们仍然使用固件这个术语来描述被编程到嵌入式系统中的代码。

专用电路

嵌入式系统支持各种各样的应用程序,其中一些是相对简单的处理过程,例如在电视遥控器上按下监视按钮并向电视产生相应的输出信号,而其他类型的系统在高数据速率输入信号上执行极其复杂的处理密集型工作。虽然一个简单的嵌入式系统可能能够使用一个微型微控制器来执行所有必要的数字处理,但一个更复杂的系统可能需要处理资源,这些资源超过了现成的微控制器和更强大的微处理器(如x86和ARM处理器)的能力。

在过去的几年里,这些更复杂的嵌入式设计的架构师将转向应用专用集成电路(Asic)来实现自定义电路,以适当的系统操作所需的速度执行处理。ASIC是包含自定义数字电路的集成电路,用于支持特定的应用程序。ASIC设备的生产通常涉及一个非常昂贵的生产安装阶段,这使得它们在项目原型化和小规模生产运行中的使用不切实际。

幸运的是,ASIC提供的大部分功能现在可以在低成本的FPGA(现场可编程门阵列)设备中使用.由于FPGA易于重新编程,因此它们通常用于嵌入式系统原型设计和低批量生产运行。对于大批量生产(千百万台),ASIC单位成本较低可以使生产设置成本物有所值。

来自环境的投入

嵌入式系统通常需要环境的输入,无论是来自人类操作用户界面的输入,还是来自测量其工作系统某些方面的传感器的输入。例如,电动汽车动力系统控制器将跟踪车辆状态的各个方面,如电池电压、电机电流、车辆速度和油门踏板的位置。系统架构必须提供硬件外设,以测量来自每个传感器的输入,具有必要的精度。整个系统必须能够以适当的车辆操作所需的速度执行来自所有传感器的测量。

对环境的产出

除了读取来自环境的输入,嵌入式系统通常产生一个或多个输出,供人类操作员或主机系统使用。继续电动汽车示例,动力总成控制器使用油门踏板位置以及其他输入,计算对驱动电机控制器的命令,以调整驱动系统的转矩输出。嵌入式控制器除了直接支持系统运行外,还经常提供供人使用的输出,如在仪表板上显示车速等。每个输出必须以足够的速度更新,以支持适当的系统操作,包括人类感知的需要。在实现人机界面时,图形输出必须在没有明显故障或闪烁的情况下顺利更新,音频输出必须避免与定时相关的问题,如间隙或跳过。

网络通信

当许多简单的嵌入式系统以完全独立的方式运行,读取它们的输入,计算输出,更新输出设备时,越来越多的嵌入式系统设计支持某种形式的网络通信。这一功能使设备功能,如从家庭视频门铃远程通知和持续监测工厂地板上的机器。

增强具有始终可用的网络通信能力的嵌入式系统可以增加重要的功能类型。但是,如果开发人员不小心强调系统架构中的安全性,则此特性还会带来安全风险,恶意行为者可能会利用这种风险。理解和解决嵌入式系统体系结构中包含通信能力所带来的安全风险是非常重要的。

嵌入式系统架构师将这些元素结合在一起,产生一个系统设计,在整个预期的环境条件下执行其预期的功能,并具有适当的安全裕度。

合适的系统设计满足其他要求,如尺寸和重量限制,以及功耗限制,并将生产成本控制在可接受的水平。嵌入式系统的可用设计空间在很大程度上取决于诸如将要生产的单元数量、系统的安全关键方面以及在崎岖条件下操作的需要等属性。

包括持久通信能力的嵌入式系统架构必须解决设计空间的一个附加维度,涉及单个设备和集中式节点之间的通信(通常是通过Internet访问的服务器)以及用户与嵌入式系统之间的交互。

具有网络连接性的小型嵌入式系统的广泛部署引入了物联网(物联网)这个术语。下一节讨论物联网与嵌入式系统体系结构的相关性。

物联网

从概念上讲,物联网代表了通过大规模网络通信最大限度地利用大量不同的嵌入式设备的努力。将物联网设备与更普通的嵌入式系统区分开来的特点是每个设备与一个或多个中心节点之间存在通信路径。这些节点从设备的海洋中收集数据,在许多情况下,允许授权用户向单个设备和设备集合发出命令。

在物联网设备开发过程中,特别是在开发能够访问敏感个人信息的设备(如家庭安全摄像头)时,负责任的嵌入式系统架构师必须采取广泛的措施来确保终端设备的安全。物联网设备通常安装在消费者的家中,必须尽可能防止使恶意行为者控制摄像机、麦克风或安全系统的安全故障。虽然系统设计人员无法防止最终用户可能犯的每一个安全错误,但安全系统设计可以通过采取诸如指导强密码的选择和抵抗常见类型的攻击(例如,蛮力密码猜测)等步骤来帮助用户。

物联网设备和系统的例子包括:

  • 一种由门窗传感器和运动传感器组成的家庭报警系统:这种类型的系统通常包括一个智能手机应用程序,提供警报事件的即时通知。该系统不仅通知报警公司对报警事件进行响应,而且还将这些事件的发生通知房主。显然,这种类型的警报系统必须抵抗会使警报系统失效的网络攻击。
  • 电灯及电源插座:许多不同的照明设备都有基于互联网的监控和控制,包括灯泡、灯具和能开关灯的电源条。与这些设备相关联的应用程序允许远程控制单个灯,并在一天中安排亮灯、开灯和关灯时间。与物联网报警系统一样,安全性是系统设计中必须充分集成的一个重要特征。
  • 智能扬声器:诸如亚马逊回声(AmazonEcho)和谷歌巢(GoogleNest)这样的物联网扬声器提供了一个语音界面,允许用户用自然语言提出请求。用户在开头用一个词或短语来“唤醒”演讲者,比如“Alexa”或“嘿Google”,然后是命令或请求。这些设备可以与各种其他物联网设备进行交互,包括警报系统和照明控制。语音命令的一个例子是“Alexa,打开灯”。
  • 医疗监测和治疗:许多类型的嵌入式设备部署在医院和家庭环境中,以监测病人健康的各个方面,如温度、血氧、心率、呼吸等等。这些设备通常与中央数据库通信,以便医务人员能够跟踪当前和历史上的健康模式。其他数字系统执行积极的治疗功能,如注入药物和辅助呼吸。
  • 工业应用:嵌入式系统广泛应用于工厂线路、能源发电系统、能源传输系统以及石油天然气工业中,用于监测和控制复杂的系统和过程。例如,需要广泛的传感器和执行器来对可能长达数千英里的输油管道的运行进行实时监测和管理。

我的新书,高性能嵌入式系统架构,重点介绍了执行高吞吐量数据处理的嵌入式系统的体系结构和设计.这本书审查了物联网嵌入式系统设计的所有方面,包括网络通信。为了展示在物联网体系结构中运行的嵌入式设备的全部上下文,本书通过一个物联网设计示例进行工作,包括在满足物联网安全要求的同时与Internet访问的服务器进行通信。

如果你想需要软件开发,可以点以下链接进行询问

版权所有:https://www.eraycloud.com 转载请注明出处