嵌入式系统无处不在。与您进行交互的几乎所有电气设备都比简单的电灯开关复杂,它包含一个数字处理器,该数字处理器从其环境中读取输入数据,执行计算算法,并生成与环境进行交互的某种输出。
从早上睁开眼睛(响应数字设备发出的警报)到刷牙(使用包含数字处理器的电动牙刷)到烤面包圈(在电烤箱中) ,要禁用您的(数字)家庭报警系统,您需要与嵌入式设备进行交互。整天,您都向许多其他设备(例如电视遥控器,交通信号灯和铁路道口)提供输入并从中接收输出。高度数字化的运输系统,包括汽车,飞机和客运渡轮,每个系统都包含数十个(即使不是数百个)嵌入式处理器,用于管理传动系统的运行,监督安全功能,保持舒适的气候并为所载人员提供娱乐。
让我们花一点时间澄清有时模糊的分隔线,该分隔线将嵌入式系统与通用计算设备区分开。定义嵌入式计算系统的属性是设备中数字处理的集成,该设备具有除单纯的计算之外的更大用途。不包含任何类型的数字处理的设备不是嵌入式系统。例如,仅包含电池和由开关控制的电动机的电动牙刷不是嵌入式系统。包含微控制器的牙刷是嵌入式系统,当您在刷牙时用力向下按时,该微控制器会亮起红灯。
台式计算机尽管可以执行许多任务,并且可以通过添加各种外围设备来增强功能,但它只是一台计算机。另一方面,汽车的主要目的是运送乘客。在执行此功能时,它依赖于包含嵌入式处理的各种子系统。汽车是嵌入式系统。个人计算机不是。
智能手机更难清晰地分类。当用作电话时,它显然在执行与嵌入式系统定义一致的功能。但是,将其用作Web浏览器时,它更类似于小型通用计算机。显然,并非总是能够确定一个设备是否是嵌入式系统。
了解通用计算机与嵌入式设备相比在操作环境方面的差异是有帮助的。个人计算机往往在气候受控的室内环境中运行效果最佳。诸如汽车中的嵌入式设备经常暴露于更加恶劣的条件下,包括雨,雪,风,灰尘和热的各种影响。
很大一部分嵌入式设备缺少任何类型的有源冷却系统(这在个人计算机中是标准的),因此必须采取步骤以确保其内部组件在不受外部条件影响的情况下仍保持安全的工作温度。
嵌入式系统,无论是相对简单的设备还是高度复杂的系统,通常都由多种元素组成,我们现在将对其进行讨论。
能量源
所有电子数字设备都需要某种电源。最常见的是,嵌入式系统由市电或电池供电,或由设备在其中运行的主机系统提供的电源供电。例如,包含处理器和CAN总线通信接口的汽车尾灯组件由汽车电气系统提供的12伏直流电(DC)供电。
还可以通过与太阳能电池板连接的可充电电池为嵌入式设备供电,从而使该设备在夜间和阴天甚至从环境中收集能量就可以继续运行。自动上弦手表使用从手臂运动中收集到的能量来产生机械或电能。对安全性和安全性至关重要的嵌入式系统通常使用市电作为主要电源,同时提供电池作为备用电源,以便在停电期间进行操作。
时基
嵌入式系统通常需要一些方法来跟踪短期(对于微秒和毫秒的持续时间)和长期的时间(也称为挂钟时间)的进度,以跟踪日期和时间。最常见的是,使用产生几兆赫兹输出频率的晶体振荡器或微机电系统(MEMS)振荡器生成一次系统时钟信号。晶体振荡器放大通常由石英制成的物理晶体的谐振,从而利用压电效应产生方波电信号。MEMS振荡器包含一个振动的机械结构,该结构通过静电传导产生电输出。
一旦设置为正确的时间,由晶体振荡器或MEMS振荡器驱动的时钟将表现出微小的频率误差(通常为百万分之一1-100),这些误差会在几天和几周的时间内累积,逐渐偏移几秒钟,然后逐渐偏移几分钟偏离正确的时间。为了缓解此问题,大多数与Internet连接的嵌入式设备都会定期访问时间服务器,以将其内部时钟重置为当前时间。
数字处理
根据定义,嵌入式计算系统包含某种形式的数字处理器。处理功能通常由微控制器,微处理器或片上系统(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访问的服务器)之间的通信以及用户与嵌入式系统之间的交互。
具有网络连接性的小型嵌入式系统的广泛部署引入了物联网(IoT)一词。下一节将讨论物联网与嵌入式系统架构的相关性。
物联网
从概念上讲,物联网代表着通过大规模网络通信来最大限度地利用大量不同的嵌入式设备的努力。IoT设备与普通的嵌入式系统的区别在于,每个设备与一个或多个中央节点之间都存在通信路径。这些节点从设备的海洋中收集数据,并且在许多情况下,允许授权用户向单个设备和设备集合发出命令。
在物联网设备开发过程中,尤其是在开发将能够访问敏感个人信息的设备(例如家庭安全摄像机)时,负责任的嵌入式系统架构师必须采取广泛的措施以确保终端设备的安全性。IoT设备通常安装在消费者的家中,必须最大程度地防止允许恶意行为者控制摄像头,麦克风或安全系统的安全漏洞。尽管系统设计人员无法防止最终用户可能犯下的每一个安全性错误,但是安全的系统设计可以通过采取一些步骤来帮助用户,例如指导选择强密码以及抵御常见的攻击类型,例如蛮力攻击。密码猜测。
物联网设备和系统的示例包括:
由窗户和门传感器以及运动传感器组成的家庭警报系统:这种类型的系统通常包括一个智能手机应用程序,可立即通知警报事件。该系统不仅通知警报公司启动对警报事件的响应,还通知房主这些事件的发生。显然,这种警报系统必须能够抵抗使警报系统失效的网络攻击。
电灯和电源插座:提供基于Internet的监视和控制功能的许多不同的照明设备,包括灯泡,灯具和能够打开和关闭灯的电源板。与这些设备中的每一个相关联的应用程序都可以对单个照明进行远程控制,并可以全天调度照明的开启和关闭时间。与物联网警报系统一样,安全性是一项重要功能,必须完全集成到系统设计中。
智能扬声器: IoT扬声器 提供语音界面,允许用户以自然语言发出请求。用户在命令前添加单词或词组以“唤醒”扬声器,例如“ Alexa”或“ Hey Google”,后跟命令或请求。这些设备可以与各种其他物联网设备进行交互,包括警报系统和照明控制。语音命令的一个示例是“ Alexa,开灯”。
医疗监视和治疗:在医院和家庭环境中部署了许多类型的嵌入式设备,以监视患者健康状况,例如温度,血氧,心率,呼吸等。这些设备通常与集中式数据库进行通信,以使医疗专业人员能够跟踪当前和历史的健康状况。其他数字系统执行主动治疗功能,例如注入药物和协助呼吸。
工业应用:嵌入式系统广泛用于工厂线,能源发电系统,能源传输系统以及石油和天然气行业中,以监视和控制复杂的系统和过程。例如,需要各种各样的传感器和执行器来执行对可能长达数千英里的输油管道的运行情况的实时监视和管理。