目录
知识要点
嵌入式微处理器
存储器(memory)
内(外)总线逻辑
嵌入式操作系统(Embedded Operating System,EOS)
通用中间件
嵌入式中间件的一般架构
典型嵌入式中间件系统
案例分析
1.嵌入式系统故障检测和诊断
2.ROS/嵌入式实时操作系统
3.嵌入式架构
知识要点
嵌入式微处理器
嵌入式微处理器目前主要有:Am186/88、386EX、SC-400、PowerPC、68000、MIPS、ARM 系列等。与工业控制计算机相比,其优点在于体积小,重量轻,成本低以及可靠性高,但保密性也较差。是电路板上必须包括 ROM、RAM、总线接口、各种外设等器件,降低了系统的可靠性,技术的母板功能。大致可分为:微处理器(Micro Processor Unit,MPU)、微控制器(Micro Control Unit,MCU)、图形处理器(Graphics Processing Unit,GPU)、数字信号处理器(Digital Signal Processor,DSP)、片上系统(System on Chip,SoC)。
- 微处理器(MPU):将微处理器装配在专门设计的电路板上,只保留与嵌入式应用有关的母板功能。与工业控制计算机相比,其优点在于体积小,重量轻,成本低以及可靠性高,但是电路板上必须包括ROM,RAM,总线接口,各种外设等器件,减低了系统的可靠性,技术保密性也比较差。嵌入式微处理器有:Am186/88,386EX,SC-400,PowerPC,68000,MIPS,ARM系列等。
- 微控制器(MCU):又称单片机。微处理器一般以某一种微处理内核为核心,每一种衍生产品的处理器内核都是一样的,不用的是存储器和外设的配置和封装。与 MPU 相比 MCU 的最大优点在于单片化,体积大大减小,从而使功耗和成本下降,可靠性提高。微控制器比较有代表性的通用系列包括:8501、P51XA、MCS-251、MCS-96/196/296、C166/167、MC68HC05/1/12/16、68300 和数目众多的 ARM 系列。
- 信号处理器(DSP):DSP 处理器对系统结构和指令进行了特殊设计(通常,DSP 采用哈佛结构),使其适合于执行 DSP 算法,编译效率高,指令执行速度也高。DSP 处理器比较有代表性的产品是 TI 公司生产的 TMS320 系列(包括用于控制的 C2000 系列,移动通信的 C5000 系列,以及性能更高的 C6000 系列和 C8000 系列)和 Freecale 公司生产的 DSP56000 系列,另外 PHILIPS 公司近年也推出了基于可重置嵌入式 DSP 结构的采用低成本、低功耗技术制造的 R.E.A.L DSP 处理器。
- 图形处理器(GPU):GPU 是图形处理单元的缩写,是一种可执行渲染 3D 图形等图形相关运算工作的半导体芯片(处理器)。GPU 可用于个人电脑、工作站、游戏机和一些移动设备上做图像和图形相关运算工作,可减少对 CPU 的依赖,并进行部分原本 CPU 的工作,尤其是在 3D 图形处理中,GPU 采用了核心技术(如:硬件 T&L、纹理压缩等),保证了快速 3D 渲染能力。
- 片上系统(SoC):各种通用处理器内核作为 SoC 设计公司的标准库,与许多其他嵌入式系统的外设一样,成为 VLSI 设计中的一种标准的器件,用标准的 VHDL 等语言描述,存储在器件库中,用户只需要定义出整个应用系统。除个别无法集成的器件以外,整个嵌入式系统大部分都可集成到一块或几块芯片中。
存储器(memory)
存储器(memory)主要用于存储程序和各种数据信息的记忆部件,它也是时序逻辑电路的一部分。按存储器的使用类型可分为只读存储器(ROM)和随机存储器(RAM),随机存储器在计算期间被用于高速暂存记忆区,数据可以在 RAM 中存储、读取和使用新数据代替;只读存储器被用于存储计算机在必要时的指令集,存储在 ROM 内的信息是一种硬接线方式(即一种物理组成),且不能被计算机改变(即“只读”特性)。可编程只读存储器(PROM)属于可变 ROM,可以将其暴露在一个外部电器设备或光学器件中来改变。
通常,存储器根据结构的不同分类多种,其分类如下:
- RAM(Random Access Memory,随机存取存储器)。RAM 的特点是:打开计算机,操作系统和应用程序的所有正在运行的数据和程序都会放置其中,并且随时可以对存放在里面的数据进行修改和存取。它的工作需要由持续的电力提供,一旦系统断电,存放在里面的所有数据和程序都会自动清空掉,并且再也无法恢复。根据组成元件的不同,RAM 内存又分为以下 18 种:
- DRAM(Dynamic RAM,动态随机存取存储器)。这是最普通的 RAM,一个电子管与一个电容器组成一个位存储单元,DRAM 将每个内存位作为一个电荷保存在位存储单元中,用电容的充放电来做储存动作,但因电容本身有漏电问题,因此必须每几微秒就要刷新一次,否则数据会丢失。存取时间和放电时间一致,约为 2-4ms。因为成本较便宜,通常用作计算机内的主存储器。
- SRAM(Static RAM,静态随机存取存储器)。静态,指的是内存里面的数据可以长驻其中而不需要随时进行存取。每 6 个电子管组成个位存储单元,因为没有电容器,因此无须不断充电即可正常运作,因此它可以比一般的动态随机处理内在处理速度更快更稳定,往往用作高速缓存。因为成本比较便宜,通常都用作计算机内的主存储器。
- VRAM(Video RAM,视频内存)。它的主要功能是将显卡的视频数据输出到数模转换器中,有效降低绘图显示芯片的工作负担。它采用双数据口设计,其中一个数据口是并行式的数据输出入口,另一个是串行式的数据输出口,多用于高级显卡中的高档内存。
- FPM DRAM(Fast Page Mode DRAM,快速页切换模式动态随机存取存储器)。改良版的 DRAM,大多数为 72 Pin 或 30Pin 的模块。传统的 DRAM 在存取一位的数据时,必须送出行地址和列地址各一次才能读写数据。而 FPM DRAM 在触发了行地址后,如果 CPU 需要的地址在同一行内,则可以连续输出列地址而不必再输出行地址了。由于一般的程序和数据在内存中排列的地址是连续的,这种情况下输出行地址后连续输出列地址就可以得到所需要的数据。FPM 将记忆体内部隔成许多页(Pagcs),从 512B 到数 KB 不等,在读取一连续区域内的数据时,就可以通过快速页切换模式来直接读取各 Page 内的资料,从而大大提高读取速度。在 1996 年以前,在 486 时代和 PENTIUM 时代的初期,FPM DRAM 被大量使用。
- EDO DRAM(Extended Data Out DRAM,延伸数据输出动态随机存取存储器)。这是继 FPM 之后出现的一种存储器,一般为 72 Pin、168Pin 的模块。它不需要像 FPM DRAM 那样在存取每一位数据时必须输出行地址和列地址并使其稳定一段时间,然后才能读写有效的数据,而下一位的地址必须等待这次读写操作完成才能输出。因此它可以大大缩短等待输出地址的时间,其存取速度一般比 FPM 模式快 15%左右。它一般应用于中档以下的 Pentium 主板标准内在,后期的 486 系统开始支持 EDO DRAM,到 1996 年后期,EDO DRAM 开始执行。
- BEDO DRAM(Burst Extended Data Out DRAM,爆发式延伸数据输出动态随机存取存储器)。这是改良型的 EDO DRAM,是由美光公司提出的,它在芯片上增加了一个地址计数器来追踪下一个地址。它是突发式的读取方式,也就是当一个数据地址被送出后,剩下的三个数据每一个都只需要一个周期就能读取,因此一次可以存取多组数据,速度比 EDO DRAM 快。但支持 BEDO DRAM 内存的主板很少,只有极少几款提供支持(如 VIA APOLLO VP2),因此很快就被 DRAM 取代了。
- MDRAM(Multi-Bank DRAM,多插槽动态随机存取存储器)。MoSys 公司提出的一种内存规格,其内部分成数个类别不同的小储存库(BANK),即由数个独立的小单位矩阵所构成,每个储存库之间以高于外部的资料速度相互连接,一般应用于高速显示卡或加速卡中,也有少数主机板用于 L2 高速缓存中。
- WRAM(Window RAM,窗口随机存取存储器)。韩国 Samsung 公司开发的内存模式,是 VRAM 内存的改良版,不同之处是它的控制线路有一二十组的输入/输出控制器,并采用 EDO 的资料存取模式,因此速度相对较快,另外还提供了区块搬移功能(BitBlt),可应用于专业绘图工作。
- RDRAM(Rambus DRAM,高频动态随机存取存储器)。Rambus 公司独立设计完成的一种内存模式,速度一般可以达到 50 - 530MB/s,是 DRAM 的 10 倍以上。但使用该内存后内存控制器需要作相当大的改变,因此它们一般应用于专业的图形加速适配卡或者电视游戏机的视频内存中。
- SDRAM(Synchronous DRAM,同步动态随机存取存储器)。这是一种与 CPU 实现外频 Clock 同步的内存模式,一般都采用 168Pin 的内存模组,工作电压为 3.3V。所谓 Clock 同步是指内存能够与 CPU 同步存取资料,这样可以取消等待周期,减少数据传输的延迟,因此可提升计算机的性能和效率。
- SGRAM(Synchronous Graphics RAM,同步绘图随机存取存储器)。SDRAM 的改良版,它以区块 Block(32bit)为基本存取单位,减少内存整体读写的次数。另外还针对绘图需要而增加了绘图控制器,并提供区块搬移功能(BitBlt),效率明显高于 SDRAM。
- SB SRAM(Synchronous Burst SRAM,同步爆发式静态随机存取存储器)。一般的 SRAM 是非同步的,为了适应 CPU 越来越快的速度,需要使它的工作时脉变得与系统同步,这就是 SB SRAM 产生的原因。
- PB SRAM(Pipeline Burst SRAM,管线爆发式静态随机存取存储器)。CPU 外频速度的迅猛提升对与其相搭配的内存提出了更高的要求,管线爆发式 SRAM 取代同步爆发式 SRAM 成为必然的选择,因为它可以有效地延长存取时脉,从而有效提高访问速度。
- DDR SDRAM(Double Data Rate SDRAM,双倍速率同步动态随机存取存储器)。作为 SDRAM 的换代产品,它具有两大特点:其一,速度比 SDRAM 快一倍;其二,采用了 DLL(Delay Locked Loop,延时锁定回路),提供一个数据滤波信号。这是目前内存市场上的主流模式。
- SLDRAM(Synchronize Link DRAM,同步链环动态随机存取存储器)。这是一种扩展型 SDRAM 结构内存,在增加了更先进同步电路的同时,还改进了逻辑控制电路。
- CDRAM(Cached DRAM:同步缓存动态随机存取存储器)。这是三菱电气公司首先研制的专利技术,它是在 DRAM 芯片的外部插针和内部 DRAM 之间插入一个 SRAM 作为二级 Cache 使用。当前,几乎所有的 CPU 都装有一级 Cache 来提高效率,随着 CPU 时钟频率的成倍提高,Cache 不被选中对系统性能产生的影响将会越来越大,而 Cache DRAM 所提供的二级 Cache 正好用以补充 CPU 一级 Cache 之不足,因此能极大地提高 CPU 效率。
- DDRII(Double Data Rate Synchronous DRAM,第二代同步双倍速率动态随机存取存储器)。DDRII 是 DDR 原有的 SLDRAM 联盟于 1999 年解散后将既有的研发成果与 DDR 整合之后的未来新标准。DDRII 的详细规格目前尚未确定。
- DRDRAM(Direct Rambus DRAM)。DRDRAM 是下一代的主流内存标准之一,由 Rambus 公司所设计发展出来,是将所有的接脚都连接到一个共同的 Bus,这样不但可以减少控制器的体积,还可以增加资料传送的效率。
- ROM(Read Only Memory,只读存储器)。ROM 是线路最简单半导体电路,通过掩模工艺,一次性制造,在元件正常工作的情况下,其中的代码与数据将永久保存,并且不能够进行修改。一般应用于 PC 系统的程序码、主机板上的 BIOS(基本输入/输出系统 Basic Input/Output System)等。它的读取速度比 RAM 慢很多。 根据组成元件的不同,ROM 内存又分为以下 5 种:
- MASK ROM(掩模型只读存储器)。制造商为了大量生产 ROM 内存,需要先制作一颗有原始数据的 ROM 或 EPROM 作为样本,然后再大量复制,这一样本就是 MASK ROM,而烧录在 MASK ROM 中的资料永远无法做修改。它的成本比较低。
- PROM(Programmable ROM,可编程只读存储器)。这是一种可以用刻录机将资料写入的 ROM 内存,但只能写入一次,所以也被称为“一次可编程只读存储器”(One Time Programming ROM,OTP-ROM)。PROM 在出厂时,存储的内容全为 1,用户可以根据需要将其中的某些单元写入数据 0(部分的 PROM 在出厂时数据全为 0,则用户可以将其中的部分单元写入 1),以实现对其“编程”的目的。
- EPROM(Erasable Programmable,可擦可编程只读存储器)。这是一种具有可擦除功能,擦除后即可进行再编程的 ROM 内存,写入前必须先把里面的内容用紫外线照射它的 IC 卡上的透明视窗的方式来清除掉。这一类芯片比较容易识别,其封装中包含有“石英玻璃窗”,一个编程后的 EPROM 芯片的“石英玻璃窗”一般使用黑色不干胶纸盖住,以防止遭到阳光直射。
- EEPROM(Electrically Erasable Programmable,电可擦可编程只读存储器)。功能与使用方式与 EPROM 一样,不同之处是清除数据的方式,它是以约 20V 的电压来进行清除的。另外它还可以用电信号进行数据写入。这类 ROM 内存多应用于即插即用(PnP)接口中。
- Flash Memory(快闪存储器)。这是一种可以直接在主机板上修改内容而不需要将 IC 拔下的内存,当电源关掉后储存在里面的资料并不会流失掉,在写入资料时必须先将原本的资料清除掉,然后才能再写入新的资料,缺点为写入信息的速度太慢。
内(外)总线逻辑
总线是计算机各种功能部件之间传输信息的公共通信干线,它是由导电组成的传输线束,按照计算机所传输的信息种类,计算机总线应涵盖数据总线、地址总线和控制总线。数据总线用于在 CPU 与 RAM 之间来回传送需要处理或者需要存储的数据;地址总线用于指定在 RAM之中存储的数据的地址;控制总线将微处理器控制单元的信号传送到周边设备。而扩展总线和局部总线则是根据系统需要而添加的。
总线存在不同拓扑结构,主要包括星形、树状、环形、总线型和交叉开关型等五种。按连接部件分类,还可分片内总线、系统总线、局部总线和通信总线等四种。
- 片内总线:CPU 芯片内部总线,用于连接芯片内部各个元件(如 ALU、寄存器、指令部件)。
- 系统总线:计算机内部总线,它是连接计算机系统的主要组件。如用于连接 CPU、主存和 I/O 接口的总线,系统总线又称板级总线或内部总线。
- 局部总线:计算机内部总线,通常是指在少数组件之间交换数据的总线,如 CPU 到北桥、内存到北桥的总线。局部总线的协议一般由设备制造商定义。在体系结构较简单的计算机系统中,局部总线和系统总线为同一条总线。
- 通信总线:嵌入式系统主机外部总线,用于连接外部输入输出设备或者其他不同的计算机系统。通信总线又称外部总线或外设总线。
目前,社会上广泛使用的总线有:Interbus、Mbus、PCI、cPCI、PCMCIA、I2C、SCI、CAN、VXI、IEEE 1394、MIL - STD - 1553B 等。
嵌入式操作系统(Embedded Operating System,EOS)
嵌入式操作系统(Embedded Operating System,EOS)是指用于嵌入式系统的操作系统。嵌入式操作系统是一种用途广泛的系统软件,负责嵌入式系统的全部软、硬件资源分配、任务调度、控制、协调并行活动等工作。通常包括与硬件相关的底层驱动软件、系统内核、设备驱动程序、通信协议、图形界面、标准化浏览器等。
嵌入式操作系统与通用操作系统相比,具备以下主要特点:
1. 可剪裁性:支持开放性和可伸缩性的体系结构;
2. 可移植性:操作系统通常可运行在不同体系结构的处理器和开发板上;
3. 强实时性:嵌入式操作系统实时性通常较强,可用于各种设备的控制;
4. 强紧凑性:由于嵌入式系统的资源受限的特点,嵌入式操作系统代码需要紧凑、精炼,不应存在无用代码;
5. 高质量代码:嵌入式系统已被广泛用于安全关键系统,要求嵌入式操作系统代码质量要可靠,不存在由于代码的缺陷引发重大损失;
6. 强定制性:嵌入式操作系统可根据目标系统的不同需求,进行专业化定制;
7. 标准接口:嵌入式操作系统可提供设备统一的驱动接口;
8. 强稳定性、弱交互性:嵌入式系统一旦运行就不需要用户过多干预,这就要求负责管理的操作系统具有较强的稳定性。EOS 的用户接口一般不提供操作命令,它是通过系统的调用命令向用户程序提供服务的;
9. 强确定性:EOS 对任务调度和资源管理应能够确保其在规定的时间、规定的容量内不发生任务超时和资源枯竭;
10. 操作简洁、方便:EOS 提供友好的图形 GUI 和图形界面,追求易学易用;
11. 较强的硬件适应性:可适应多种类型的硬件资源。这里有两层意思:其一是代码支持的硬件要有较强的可移植性;其二是可最大限度地发挥硬件处理能力;
12. 可固化性:在嵌入式系统中,嵌入式操作系统和应用软件通常是被固化在计算机系统的 ROM 中,系统运行时调入内存运行。
由于嵌入式系统中大部分应用领域是实时系统,因此,嵌入式操作系统的任务实时调度问题是操作系统任务管理的核心技术。许多嵌入式操作系统都支持优先级抢占调度算法和时间片轮转调度算法。 在嵌入式强实时系统中,操作系统必须支持执行一组并发实时任务,使所有时间关键任务满足其指定的截止时限(Deadline)。每个任务需要计算、数据和其他资源(例如输入/输出设备)来执行。而调度问题涉及这些资源的分配以满足所有的时序要求,在实时系统的任务调度中,存在大量的实时调度方法,大致可以概述为主要三种划分,即离线(Off-Line)和在线(On-Line)调度、抢占(Preemptive)和非抢占(Non-Preemptive)调度、静态(Static)和动态(Dynamic)调度等。
(1)离线和在线调度。 根据获得调度信息的时机,调度算法可以分为离线调度和在线调度两类。对于离线调度算法,运行过程中使用的调度信息在系统运行之前就确定了,如时间驱动的调度。离线调度算法具有确定性,但缺乏灵活性,适用于特征能够预先确定,且不容易发生变化的应用。在线调度算法的调度信息则在系统运行过程中动态获得,如优先级驱动的调度(如 EDF、RMS 等)。在线调度算法在形成最佳调度决策上具有较大的灵活性。
(2)抢占和非抢占调度。 根据任务在运行过程中能否被打断的处理情况,调度算法分为抢占式调度和非抢占式调度两类。在抢占式调度方法中,正在运行的任务可能被其他任务打断。在非抢占式调度算法中,一旦任务开始运行,该任务只有在运行完成而主动放弃 CPU 资源,或是因为等待其他资源被阻塞的情况下才会停止运行。实时内核大都采用了抢占式调度算法,使关键任务能够打断非关键任务执行,确保关键任务的截止时间能够得到满足。相对来说,抢占式调度算法要更复杂些,非抢占式调度算法常用于那些任务需要按照预先确定的顺序执行,且只有当任务主动放弃 CPU 资源后,其他任务才能得到执行的情况,并可能在使用不当的情况下造成低优先级任务出现长时间得不到执行的情况。
(3)静态和动态调度。 根据任务优先级的确定时机,调度算法分为静态调度和动态调度两类。在静态调度算法中,所有任务的优先级在设计时已经确定下来,且在运行过程中不会发生变化(如 RMS)。在动态调度算法中,任务的优先级则在运行过程中确定,并可能不断发生变化(如 EDF)。静态调度算法适用于能够完全把握系统中所有任务及其时间约束(如截至时间、运行时间、优先顺序和运行过程中的到达时间)特性的情况。静态调度比较简单,但缺乏灵活性,不利于系统扩展;动态调度有足够的灵活性来处理变化的系统情况,但需要消耗更多的系统资源。
几种典型强实时调度算法:
- 最早截止实践优先(Earliest Deadline First,EDF)算法
- 最低松弛度优先(Least Laxity First,LLF)算法
- 单调速率调度算法(Rate Monotonic Scheduling,RMS)
通用中间件
从现代中间件观点看,通用中间件大致存在以下几类:
- 企业服务总线中间件(Enterprise Service Bus,ESB)。ESB 是一种开放的、基于标准的分布式同步/异步信息传递中间件。通过 XML、Web 服务接口以及标准化基于规则的路由选择文档支持,ESB 为企业应用程序提供安全互用性。
- 事务处理(Transaction Processing,TP)监控器:为发生在对象间的事务处理提供监控功能,以保证操作成功。
- 分布式计算环境(Distributed Computing Environment):指创建运行在不同平台上的分布式应用程序所需的一组技术服务。
- 远程过程调用(Remote Procedure Call):指客户机向服务器发送关于运行某程序的请求时所需的标准。
- 对象请求代理(Object Request Broker,ORB):为用户提供与其他分布式网络环境中对象通信的接口。
- 数据库访问中间件(Database Access Middleware):支持用户访问各种操作系统或应用程序中的数据库。
- 消息传递(Message passing):电子邮件系统是该类中间件的其中之一。
- 基于 XML 的中间件(XML-Based Middleware):XML 允许开发人员为实现 Internet 中交换结构化信息而创建文档。
在嵌入式系统领域,最普遍使用的嵌入式系统实时中间件包括通用对象请求代理体系结构(Common Object Request Broker Architecture,CORBA)和它的衍生结构:数据分发服务(Data Distribution Service,DDS)。这些中间件架构是基于对象管理组织(Object Management Group,OMG)公布的标准。在 CORBA 架构中,有很多专有的衍生标准可供选择,包括实时 CORBA、嵌入 CORBA 和最小化 CORBA。
中间件还可适合更大规模的、由多个软件组件和应用组成的,并可分布在多个处理器和网络上的嵌入式应用。当这些组件由不同的组织开发,系统将会被不同的组织扩展,或者当系统有很长的生存期时,使用标准中间件可以给开发者提供显而易见的好处。这些中间件架构是设计模式的完整集合,例如代理模式(Proxy)、数据总线模式(Data Bus)和中介模式(Broker Pattem)等。
从上述论述来看,嵌入式中间件没有固定技术界限,可根据系统面向的不同应用而被不断扩展,CORBA 和 DDS 是嵌入式系统最为常用的两种中间件。
嵌入式中间件的一般架构
嵌入式中间件的一般架构:消息中间件,分布式对象中间件。
消息中间件具有两个基本特点:
- 采用异步处理模式:消息发送者可以发送一个消息而无须等待响应。消息发送者将消息发送到一条虚拟的通道(主题或队列)上,消息接收者则订阅或是监听该通道。一条消息可能最终转发给一个或多个消息接收者,这些接收者都无须对消息发送者做出同步回应。整个过程是异步的。比如用户消息注册,注册完毕后过段时间发送邮件或者短信。
- 应用程序和应用程序调用关系为松耦合关系:发送者和接收者不必了解对方、只需要确认消息,发送者和接收者不必同时在线。比如在线交易系统为了保证数据的最终一致,在支付系统处理完成后会把支付结果放到消息中间件里通过订单系统修改订单支付状态。两个系统通过消息中间件解耦。
消息传递服务模型有点对点模型(PTP)和发布 - 订阅模型(Pub/Sub)之分。
点对点模型用于消息生产者和消息消费者之间点对点的通信。消息生产者将消息发送到由某个名字标识的特定消费者。这个名字实际上对应于消息服务中的一个队列(Queue),在消息传送给消费者之前它被存储在这个队列中。队列消息可以放在内存中,也可以是持久的,以保证在消息服务出现故障时仍然能够传递消息。
发布者/订阅者模型支持向一个特定的消息主题生产消息,或多个订阅者可能对接收各自特定消息主题的消息感兴趣。在这种模型下,发布者和订阅者彼此不知道对方。其模式好比是匿名公告板。
这种模式被概括为:多个消费者可以获得消息。在发布者和订阅者之间存在时间依赖性。发布者需要建立一个订阅(subscription),以便能够让消费者订阅。订阅者必须保持持续的活动状态以接收消息,除非订阅者建立了持久的订阅。在这种情况下,在订阅者未连接时发布的消息将在订阅者重新连接时重新发布。
分布式对象中间件是为了解决分布计算和软件复用过程中存在的异构问题而提出的。它的任务是处理分布式对象之间通信,是基于组件的思想,由一组对象来提供系统服务,对象之间能够跨平台通信。这里的基本组件就是对象,它们提供一组服务,对外给出服务接口,对象之间可以相互调用,服务对象之间不存在客户机和服务器的界限。分布式对象中间件使用了分布式技术,它将网络上的所有资源互相连接起来,对外表现为一个统一的整体,对客户是透明的,不必区分本地操作和远程操作;分布式对象中间件使用了面向对象技术,它通过封装、继承及多态提供了良好的代码重用功能。图 16 - 21 给出分布式对象中间件原理架构示意图。
其中,
1. 对象请求代理(ORB):规定了分布式对象的定义(接口)和语言映射,实现对象间的通信和互操作。是分布对象系统中的软总线。通过它各个对象可以透明地向本地或远程对象发出请求或接收响应,每一台运行着服务对象的计算机都有自己的对象请求代理。ORB 可以实现单进程中对象间的调用,也可以实现同台计算机中运行的多进程中对象之间的调用,还可以实现运行在网络中多个计算机上多进程中对象间的调用。
2. 公共服务:为创建对象、对象访问控制提供标准函数,如并发控制服务、名字服务、事务服务、安全服务、查询服务等。
3. 公共设施:向应用对象直接提供应用服务的框架的集合。
4. 应用对象:为用户提供一组完成特定任务的对象,所有应用对象都有用接口定义语言(IDL)定义的接口并且可以运行在对象请求代理之上,各个对象之间可以相互调用。
分布式对象中间件具有三个基本特点:
- 对象组件之间普遍采用软总线技术。
- 具有不依赖于编程语言、软硬件平台和网络协议等特点。
- 对象可以用任何一种软件开发商所支持的语言和平台来实现。
目前市场上比较著名的分布式对象中间件技术有:
- - OMG 的公共对象请求代理结构(CORBA)规定了分布式对象之间如何实现互操作。
- - Microsoft 公司的分布式组件对象模型(DCOM),主要为不同网络环境中的分布式对象提供交互标准。
- - Java 商业应用组件技术 EJB,采用一种面向服务器端分布式构件的技术。
典型嵌入式中间件系统
当前,嵌入式系统使用最为广泛的中间件有两个产品,分别是公共对象请求代理结构(CORBA)和数据分发服务(Data Distribution Service,DDS)。
CORBA 是 OMG 组织在 1991 年提出的公用对象请求代理程序结构的技术规范。CORBA 有很广泛的应用,它易于集成各厂商的不同计算机,从大型机一直到微型内嵌式系统的终端,是针对大中型企业应用的优秀的中间件,它使服务器真正能够实现高速度、高稳定性处理大量用户的访问。
CORBA 的技术特征:
①完整的作为事务代理的中间件;
②客户端与服务器的可完全分离;
③提供软件总线机制,支持多环境、多语种的分布式集成;
④完整的对象内部细节的封装;
⑤实时性强。
DDS 是对象管理组织(OMG)在 HLA 及 CORBA 等标准的基础上制定的新一代分布式实时通信中间件技术规范,DDS 采用发布/订阅体系架构,强调以数据为中心,提供丰富的 QoS 服务质量策略,能保障数据进行实时、高效、灵活地分发,可满足各种分布式实时通信应用需求。DDS 信息分发中间件是一种轻便的、能够提供实时信息传送的中间件技术。
DDS 的技术特征:
①灵活的发布/订阅模式;
②完整 DDS 规范 QoS 服务质量策略;
③已扩展的 QoS 服务质量策略;
④互操作;
⑤强实时;
⑥跨平台;
⑦支持多种底层物理通信协议;
⑧支持仿真、测试和安装的全生命周期服务。
PCI 是一种局部总线标准,它是在 CPU 和原来的系统总线之间插入的一级总线,具体由一个桥接电路实现对这一级的管理,并实现上下之间的接口以协调数据的传送。
JTAG 是一个调试接口,用来供开发人员调试 CPU 的工作状态。JTAG 软件通过该接口控制 CPU 来调试 CPU 以及读写 Flash。
看门狗技术是一种计算机程序监视技术,防止程序由于干扰等原因而进入死循环,一般用于计算机控制系统。其原理是不断监测程序循环运行的时间,一旦发现程序运行时间超过循环设定的时间,就认为系统已陷入死循环,从而产生看门狗中断,强迫系统重新启动或执行预定的错误处理程序。
混成系统在工业控制和国防等领域大量存在。同时,现代计算机技术的高速发展和普及应用,为系统的模型化、优化控制和决策问题提供了强有力的技术支持。混成系统一般由离散分离组件和连续组件并行或串行组成,组件之间的行为由计算模型进行控制。
基于网络的数据库(Netware Database,NDB)系统是基于手机 4G/5G 的移动通信基础之上的数据库系统,在逻辑上可以把嵌入式设备看作远程服务器的一个客户端。实际上,嵌入式网络数据库是把功能强大的远程数据库映射到本地数据库,使嵌入式设备访问远程数据库就像访问本地数据库一样方便。
AI 芯片的关键特点有:新型计算范式、训练和推断、大数据处理能力、数据精度、可重构能力、软件工具。
案例分析
1.嵌入式系统故障检测和诊断
2.ROS/嵌入式实时操作系统
3.嵌入式架构