嵌入式系统定义
嵌入式系统(Embedded System)是以特定应用为中心、以计算机技术为基础,并将可配置与 可裁剪的软、硬件集成于一体的专用计算机系统。
嵌入式系统的最大特点就是系统的运行和开发是在不同环境中进行的, 通常将运行环境称为“目标机”环境,称开发环境为“宿主机”环境,宿主机与目标机之间通过串 口、网络或JTAG接口连接。由于宿主机和目标机的指令往往是不同的,嵌入式系统的开发通常需 要交叉平台开发环境支持,基本开发工具是交叉编译器、交叉链接器和源代码调试器 。还需要注意 实时性、安全性和可靠性、代码规模、软/硬件协同工作的效率和稳定性、特定领域的需求等。
采用嵌入式实时操作系统的主要理由及优点:
操作系统提供的任务调度功能,可以有效地管理本系统多周期任务的调度,并且操作系统提供的事件、信号和任务间的通信机制,可以有效地解决本系统中资源共享中的互斥问题。
采用商品化的软件,可提高所开发软件的可靠性,还可简化软件开发成本,提高开发效率。
选择嵌入式实时操作系统,主要考虑操作系统以下功能和性能:
(1)任务的上下文切换时间越短越好、中断响应时间越快越好、内核代码占用空间比较小。
(2)操作系统提供的服务接口应较丰富,有利于灵活使用(接口的开放性)。
(3)操作系统对可靠性有较强的保障支持能力。
(4)使用简单,支撑环境配套好,可配置、可剪裁能力强。
嵌入式系统的组成结构
(1)硬件层,包括处理器、存储器、总线、I/O接口及电源、时钟等。
(2)抽象层,包括硬件抽象层(HAL),为上层应用(操作系统)提供虚拟的硬件资源;板 级支持包(BSP),是一种硬件驱动软件,为上层操作系统提供对硬件进行管理的支持。
(3)操作系统层,由嵌入式操作系统、文件系统、图形用户接口、网络系统和通用组件等可 配置模块组成。
(4)中间件层,是连接两个独立应用的桥梁,常用的有嵌入式数据库、OpenGL、消息中间件、 Java 中间件、虚拟机(VM)、DDS/CORBA和Hadoop等。
(5)应用层,包括不同的应用软件。
嵌入式系统的特点
(1)专用性强,常常面向特定应用需求,配备多种传感器。
(2)技术融合,将先进的计算机技术、通信技术、半导体技术和电子技术与各个行业的具体 应用紧密结合难以拆分。
(3)软硬一体软件为主,在通用的嵌入式系统版本基础上裁剪冗余,高效设计。
(4)资源受限,由于低功耗、体积小和集成度高等要求,系统的资源非常少。
(5)程序代码固化在ROM中,以提高执行速度和系统可靠性。
(6)需专门开发工具和环境,见2.3节。
(7)体积小、价格低、工艺先进、性能价格比高、系统配置要求低、实时性强。
(8)对安全性和可靠性的要求高。
嵌入式系统分类
实时操作系统RTOS(Real-time operating system, RTOS)
嵌入式实时系统是指能够及时响应外事件的请求,在特定时间内必须完成任务,并控制所有实时任务协调一致的系统,通常用于对时间要求严格的应用场景。
实时系统的主要特性:时间敏感性,并发行,数值计算,复杂行,效能,可靠性,安全性,预测性
强实时(Hard Real-Time)系统
强实时系统是指在规定的时间内必须完成任务,否则将导致系统失效或严重后果。这类系统通常用于安全性要求极高的场合,如: - 飞行控制系统 - 医疗设备(如心脏起搏器) - 工业自动化控制系统。在强实时系统中,任务的时间约束是绝对的,任何延迟都可能导致灾难性的后果
弱实时(Weak Real-Time)系统。
弱实时系统则允许在一定程度上延迟任务的完成,但仍然希望在尽可能短的时间内完成。这类系统通常用于对时间要求不那么严格的应用,如: - 多媒体系统 - 网络通信协议 - 一些消费电子产品 在弱实时系统中,虽然任务的及时性是重要的,但偶尔的延迟是可以接受的,且不会导致系统的完全失效。
嵌入式非实时系统
嵌入式非实时系统是指对时间没有严格要求的嵌入式系统。这类系统的任务可以在任何时间完成,不会影响系统的基本功能。常见的应用包括: - 家用电器(如洗衣机、微波炉) - 一些智能家居设备 - 监控系统
安全攸关(Safety-Critical或Life-Critical)系统
安全攸关系统是指在其功能失效时可能导致人身伤害、财产损失或环境破坏的系统。这类系统通常需要遵循严格的设计和验证标准,以确保其安全性。示例包括: - 航空航天系统 - 核电站控制系统 - 医疗设备(如手术机器人)IEEE 定义安全攸关软件是“用于一个系统中,可能导致不可接受的风险的软件”。DO-178B 根据软件在系统中的重要程度将软件的安全等级分为 A~E五级,分别对应灾难级(A)、危害级(B)、严重级(C)、不严重级(D)和没有影响级(E)
非安全攸关系统。
非安全攸关系统则是指其功能失效不会导致严重后果的系统。这类系统的设计和验证标准相对宽松,通常用于一些日常应用中,如: - 娱乐设备(如游戏机) - 一些办公自动化设备 - 消费电子产品(如电视、音响)
硬件-处理器
(1)微处理器(Microprocessor Unit,MPU):微处理器+专门设计的电路板,集成度低、可 靠性高,主要有:Am186/88、386EX、SC-400、PowerPC、68000、MIPS、ARM系列等。
(2)微控制器(Microcontroller Unit,MCU):又称单片机,把核心存储器和部分外设封装在 片内。优点是单片化、体积小、功耗和成本下降,可靠性提高。包括 8501,P5IXA,MCS-251, MCS-96/196/296,C166/167,MC68HC05/11/12/16,68300 和数目众多的 ARM 系列。
(3)数字信号处理器(Digital Signal Processing,DSP):采用哈佛结构,对系统结构和指令进 行了特殊设计,适合执行大量数据处理。包括 TMS320 系列(含 C2000、C5000、C6000、C8000 系列)、DSP56000系列、实时DSP处理器等。
冯诺依曼体系(Von Neumann architecture)和哈佛体系(Harvard architecture)是两种计算机体系结构,它们的主要区别在于指令和数据的存储方式。
1. 冯诺依曼体系:指令和数据共享同一个存储空间,并通过同一条总线进行传输。,导致可能的“堵车”(瓶颈)。
2. 哈佛体系:哈佛体系使用独立的存储器和总线来分别存储指令和数据。这意味着计算机可以同时访问指令和数据,处理效率更高。
冯诺依曼体系广泛应用于通用计算机,比如PC和服务器;而哈佛体系则更多用于对效率和速度要求更高的嵌入式系统和微控制器中,比如单片机和DSP芯片。
(4)图形处理器(Graphics Processing Unit,GPU):与CPU相比大幅加强了浮点运算能力和 多核并行计算能力,因此常用于AI技术的深度学习的数据运算。
(5)片上系统(System on Chip,SoC):由多个具有特定功能的集成电路组合在一个芯片上 形成的系统或产品,其中包含完整的硬件系统,如处理器、IP(Intellectual Property)核、存储器 等及其承载的嵌入式软件,如操作系统和定制的用户软件。
硬件-存储器
(1)随机存取存储器(Random Access Memory,RAM)。工作需要持续电力提供,可随机读写。
1)动态随机存取存储器(Dynamic RAM,DRAM),采用电容存储信息,优点是集成度高、 容量大、成本低,缺点是访问速度较慢、需要定期刷新。常作主存。
2)静态随机存取存储器(Static RAM,SRAM),采用多个晶体管自锁的方式保存状态,优点 是访问速度快、不需要刷新,缺点是集成度低、容量小、成本高。常用作高速缓存。
(2)只读存储器(Read Only Memory,ROM),存储的数据不会因掉电而丢失,读取的速度 比RAM快,常见的有以下几种:
1)掩膜型只读存储器(Mask Programmed ROM,MROM),优点是通过掩膜大批量制造、成 本低,缺点是同批数据全部一致且不可修改,只适合大批量生产。
2)可编程只读存储器(Programmable ROM,PROM),可以用专用编程设备一次性烧录数据, 适合少量制造。
3)可擦可编程只读存储器(Erasable Programmable ROM,EPROM),优点是写入的数据可以通过紫外线擦除重写。
4)电可擦可编程只读存储器(Electrically Erasable Programmable ROM,EEPROM),优点是 写入的数据可以通过电压来清除,但是清除的速度很慢。
5)快闪存储器(Flash Memory),优点是可以联机擦写数据且擦写的次数多、速度快,缺点是 读取的速度慢(相对其他ROM的速度而言)。
硬件-总线逻辑
根据传输的信息种类分类,可分为以下几种。 ①数据总线,用于传送需要处理或者需要存储的数据。 ②地址总线,用于指定在RAM之中存储的数据的地址。 ③控制总线,将微处理器控制单元的信号传送到周边设备。
根据连接部件分类,可分为以下几种。 ①片内总线,连接芯片内部各元件。 ②系统总线或板级总线,连接计算机系统的核心组件。 ③局部总线,连接局部少数组件。 ④通信总线,主机连接外设的总线。
按照数据传输的方向,总线可以分为单工总线和双工总线。单工总线只能从一端向另一端 传输而不能反向;双工总线能在两个方向传输。双工总线又分为半双工总线和全双工总线。半双工 总线只能轮流向两个方向传输;全双工总线可以同时在两个方向传输。
按照总线使用的信号类型,总线可以分为并行总线和串行总线。并行总线包含多位传输线, 在同一时刻可以传输多位数据,但一致性要求高,传输距离较近;而串行总线只使用一位传输线, 同一时刻只传输一位数据,但距离可以较远。
看门狗电路
看门狗电路(Watchdog Circuit)是一种用于监测系统运行状态的电路,主要用于确保系统在发生故障或异常时能够自动重启或采取其他恢复措施。它通常用于嵌入式系统、计算机、工业控制系统等领域。
是嵌入式系统必须具备的一种系统恢复能力,可防止程序出错或者死锁。 主要由输入端、寄存器、计数器和狗叫模块构成。通过寄存器对看门狗进行基本设置,计数器计算 狗叫时间,狗叫模块决定看门狗超时后发出的中断或复位方式。程序正常运行时MCU会在输入端 定期“喂狗”,超时不“喂狗”就会触发狗叫模块,一般是重启MCU。
在设计看门狗电路时,需要考虑以下几个方面: - **超时时间**:设置合理的超时时间,以避免误触发。 - **复位机制**:确定在故障发生时的复位方式。 - **冗余设计**:在关键系统中,可以考虑冗余看门狗电路以提高可靠性。