嵌入式技术(Embedded Technology)是以应用为中心,以计算机技术与软件工程为基础,软硬件可裁剪,对功能、可靠度、成本、体积、功耗严格要求的专用计算机技术。嵌入式技术通过“感知、通信、控制和监控”等方式在板(片)上实现智能系统。
嵌入式技术的产品是嵌入式系统,它是软件和硬件的综合体,还可以涵盖机械等附属装置。嵌入式系统上运行的软件一般称为嵌入式软件,嵌入式软件在嵌入式微处理器上运行。
嵌入式系统一般由5部分组成:微处理器、专用集成电路、外围硬件设备、嵌入式操作系统和特定应用程序。
中央处理器CPU(Central Processing Unit)是系统的运算和控制核心,也是信息处理、程序运行的最终执行单元。CPU一般包含算术逻辑单元ALU(Arithmetic and Logic Unit)、控制单元以及工作寄存器 [5] 。基于MIPS的国产芯片龙芯迅速崛起,为芯片国产化提供了技术保障。
微处理器MPU (Microprocessor Unit)是具有中央处理器的硅芯片,能够依据厂商专用的预定义指令集,执行算术运算和逻辑运算。微处理器不是独立的单位,为了实现正确的功能,需要与其他硬件设备组合使用,比如存储器、定时器、中断控制器等 [5] 。微处理器通常有4位、8位、32位和64位。
高阶精简指令集机器ARM(Advanced RISC Machine)作为嵌入式系统最常用的MPU,它具有精简指令集计算机RISC(Reduced Instruction Set Computer)架构。采用RISC架构的ARM具有体积小、功耗低、成本低、性能高以及指令长度固定等特点;它支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8位/16位器件;ARM拥有大量寄存器,大多数据操作在寄存器中完成,因此指令执行速度快,寻址方式灵活简单,执行效率高。
专用集成电路ASIC (Application Specific Integrated Circuit)是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路,实现系统的特定功能。在嵌入式技术领域,ASIC除了实现系统的特定功能外,还有加速功能,使系统运行速度更快。目前复杂可编程逻辑器件CPLD(Complex Programmable Logic Device)和现场可编程门阵列FPGA(Field-Programmable Gate Array)是最为流行的ASIC设计方式 [6] 。
FPGA是目前ASIC中集成度最高的一种半定制电路 [7] 。FPGA采用了逻辑单元阵列LCA(Logic Cell Array),内部包括逻辑阵列块LAB(Logic Array Block)或可配置逻辑块CLB(Configurable Logic Block)、输入输出块IOB(Input Output Block)和内部连线(Interconnect)三个部分,还包括存储器、乘法器、时钟源等其他资源,主要用于实现以状态机为主要特征的时序逻辑电路。国内FPGA生产企业有复旦微电子、广州高云、中芯国际等。
用户可对FPGA内部的逻辑块和输入输出块重新配置,以实现所需的逻辑架构。它具有静态部分可重复编程和动态部分可重复配置的特性,使得硬件的功能可以像软件一样通过编程来修改。作为ASIC领域的一种半定制电路,FPGA既解决了定制电路的不足,又克服了原有可编程器件门电路数量有限的缺点。FPGA中最小的逻辑单元由查找表LUT(Look Up Table)、可编程寄存器PR(Programmable Register)、触发器FF(Flip Flop)和数字信号处理DSP(Digital Signal Processing)等单元组成。
外围硬件设备 依据应用场景的不同而不同,通常包括用来为嵌入式系统提供电能的电源、通用输入输出(General Purpose Input Output,GPIO)、串行外设接口SPI(Serial Peripheral Interface)、控制器域网CAN(Controller Area Network)总线、无线与网络扩展接口、音频/视频接口、USB接口、打印机、PC机以及键盘与鼠标等通用设备。
嵌入式操作系统EOS (Embedded Operating System)是嵌入式系统设计实现的基础之一,它与桌面操作系统有共同的特点:负责软硬件资源的分配与调度,控制与协调并发事务的活动,完成任务调度、同步机制与中断管理等。EOS具有实时操作性、专用性、精简性、稳定性等特点。常见的EOS有Linux、μClinux、μC/OS、Windows CE、VxWorks、ReWorks、Palm OS等。面向智能嵌入式系统的EOS也在发展中:ARM Mbed OS(2014)、华为Lite OS(2015)、AliOS Things(2017)、中国移动One OS(2020) [8] 和华为鸿蒙及欧拉(2021)。
调度通常涉及4个任务状态:①执行(Execute):任务获得MPU控制权;②就绪(Ready):任务进入任务等待队列,通过调度可转为运行状态;③挂起(Suspend):任务发生阻塞,被移出任务等待队列,等待系统实时事件发生后被唤醒,从而转为就绪或运行状态;④休眠(Dormant):任务因完成或发生错误等原因被清除,也可以表示系统中不存在的任务。任何时刻系统中都只能有一个任务处在运行状态,各任务按级别通过时间片算法获得对MPU的控制权。
特定应用程序 一般是指嵌入式系统要完成的具体功能和任务,依赖于应用领域和实现的功能与任务。如智能手机的照片美颜功能;再如房间空调的温控应用程序,当设定房间的温度(如20℃)后,空调温控应用程序就会自动启动或关闭空调以便将房间温度保持在这个温度。