嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
嵌入式系统:嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。
术语嵌入式反映了这些系统通常是更大系统中的一个完整的部分,称为嵌入的系统。嵌入的系统中可以共存多个嵌入式系统。
EMPU基于通用计算机的CPU,将EMPU装配在专门设计的电路板上,在工作温度、抗电磁干扰、可靠性等方面做了各种增强。但由于必须保留ROM、RAM、总线接口、各种外设等器件,可靠性和技术保密性都有所降低。
MCU又称单片机,顾名思义,就是将整个计算机系统集成到一块芯片中
芯片内部集成 ROM/EPROM、RAM、总线、总线逻辑、定时/计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A、Flash RAM、EEPROM 等各种必要功能和外设。
和EMPU相比,MCU的最大特点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高。MCU微控制器是目前嵌入式系统工业的主流。微控制器的片上外设资源一般比较丰富,适合于控制,因此称微控制器。
MCU目前的品种和数量最多,比较有代表性的通用系列包括 8051、P51XA、MCS-251、MCS-96/196/296、C166/167、MC68HC05/11/12/16、68300、数目众多 ARM 芯片等。目前 MCU 占嵌入式系统约 70%的市场份额。
DSP 处理器对系统结构和指令进行了特殊设计,使其适合于执行 DSP 算法,编译效率较高,指令执行速度也较高。在数字滤波、FFT、谱分析等方面 DSP 算法正在大量进入嵌入式领域。
SOC有别于MCU是一个芯片级芯片,SOC是一个系统级芯片,是一个有专用目标的集成电路,其中包含完整系统并嵌入软件的全部内容。 SOC也是一种技术,用以实现从确定系统功能开始,到软\硬件的划分,并完成整个设计的过程。
什么是芯片级什么是系统级?
手机是系统级,主板是板级,主板上的某个芯片就是芯片级
根据存储器结构可以分为哈佛(Harvard)结构和普林斯顿(Princeton)(又称为冯诺依曼)结构。
哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。
冯诺依曼结构是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置。
根据指令结构可以分为CISC(Complex Instruction Set Computer)架构和RISC(Reduced Instruction Set Computer)架构;
CISC是一种为了便于编程和提高记忆体访问效率的晶片设计体系。早期的电脑使用组合语言编程,由于记忆体速度慢且价格昂贵,使得CISC体系得到了用武之地。在20世纪90年代中期之前,大多数的微处理器都采用CISC体系──包括Intel的80x86和Motorola的68K系列等。(直至现在笔记本和台式计算机中用的intel和AMD生产的cpu也都是x86以及x86-64架构的。)
使用微代码:指令集可以直接在微代码记忆体(比主记忆体的速度快很多)里执行,新设计的处理器,只需增加较少的电晶体就可以执行同样的指令集,也可以很快地编写新的指令集程式。
庞大的指令集:可以减少编程所需要的代码行数,减轻程式师的负担。
高阶语言对应的指令集:包括双运算元格式、寄存器到寄存器、寄存器到记忆体以及记忆体到寄存器的指令。
优点:能够有效缩短新指令的微代码设计时间,允许设计师实现CISC体系机器的向上相容。新的系统可以使用一个包含早期系统的指令超集合,也就可以使用较早电脑上使用的相同软体。另外微程式指令的格式与高阶语言相匹配,因而编译器并不一定要重新编写。
缺点:指令集以及晶片的设计比上一代产品更复杂,不同的指令,需要不同的时钟周期来完成,执行较慢的指令,将影响整台机器的执行效率。
RISC是为了提高处理器运行的速度而设计的晶片体系。它的关键技术在于流水线操作(Pipelining):在一个时钟周期里完成多条指令。而超流水线以及超标量技术已普遍在晶片设计中使用。RISC体系多用于非x86阵营高性能微处理器CPU,像HOLTEK MCU系列等。(现在手机平板等大多数嵌入式设备中用到的ARM—Advanced RISC Machine就是RISC架构的)
精简指令集: 包含了简单、基本的指令,透过这些简单、基本的指令,就可以组合成复杂指令。
同样长度的指令: 每条指令的长度都是相同的,可以在一个单独操作里完成。
单机器周期指令: 大多数的指令都可以在一个机器周期里完成,并且允许处理器在同一时间内执行一系列的指令。
优点:在使用相同的晶片技术和相同运行时钟下,RISC系统的运行速度将是CISC的2~4倍。由于RISC处理器的指令集是精简的,它的记忆体管理单元、浮点单元等都能设计在同一块晶片上。RISC处理器比相对应的CISC处理器设计更简单,所需要的时间将变得更短,并可以比CISC处理器应用更多先进的技术,开发更快的下一代处理器。
缺点:多指令的操作使得程式开发者必须小心地选用合适的编译器,而且编写的代码量会变得非常大。另外就是RISC体系的处理器需要更快记忆体,这通常都集成于处理器内部,就是L1 Cache(一级缓存)。
uClinux 是一个完全符合 GNU/GPL 公约的操作系统,完全开放代码,现在由 Lineo 公司支持维护。uClinux 的发音是“you-see-linux”,它的名字来自于希腊字母“mu”和英文大写字母“C”的结合。“mu”代表“微小”之意,字母“C”代表“控制器”,所以从字面上
就可以看出它的含义,即“微控制领域中的 Linux 系统”。
为了降低硬件成本及运行功耗,很多嵌入式 CPU 没有设计内存管理单元(Memory Management Unit,以下简称 MMU)功能模块。
uClinux 从 Linux 2.0/2.4 内核派生而来,沿袭了主流 Linux 的绝大部分特性。它是专门针对没有 MMU 的 CPU,并且为嵌入式系统做了许多小型化的工作。适用于没有虚拟内存或内存管理单元(MMU)的处理器。
Windows CE 是微软开发的一个开放的、可升级的 32 位嵌入式操作系统,是基于掌上型电脑类的电子设备操作。它是精简的 Windows 95。Windows CE 的图形用户界面相当出色。
VxWorks 操作系统是美国 WindRiver 公司于 1983 年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。(VX是硬实时的,Linux是软实时的,所以在航空等实时性要求很强的地方VX确实没法用Linux代替。以前很贵,但现在有很多其他的RTOS,已经降价了。)
在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。
在美国的 F-16、FA-18 战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至连 1997 年 4 月在火星表面登陆的火星探测器上也使用到了 VxWorks。
可靠性
操作系统的用户希望在一个工作稳定,可以信赖的环境中工作,所以操作系统的可靠性是用户首先要考虑的问题。而稳定、可靠一直是 VxWorks 的一个突出优点。自从对中国的销售解禁以来,VxWorks 以其良好的可靠性在中国赢得了越来越多的用户。
实时性
实时性是指能够在限定时间内执行完规定的功能并对外部的异步事件作出响应的能力。 实时性的强弱是以完成规定功能和作出响应时间的长短来衡量的。 VxWorks 的实时性做得非常好,其系统本身的开销很小,进程调度、进程间通信、中
断处理等系统公用程序精练而有效,它们造成的延迟很短。VxWorks 提供的多任务机制中 对任务的控制采用了优先级抢占(Preemptive Priority Scheduling)和轮转调度(Round-Robin Scheduling)机制,也充分保证了可靠的实时性,使同样的硬件配置能满足更强的实时性要 求,为应用的开发留下更大的余地。
可裁减性
用户在使用操作系统时,并不是操作系统中的每一个部件都要用到。例如图形显示、文件系统以及一些设备驱动在某些嵌入系统中往往并不使用。VxWorks 由一个体积很小的内核及一些可以根据需要进行定制的系统模块组成。 VxWorks 内核最小为 8kB,即便加上其它必要模块,所占用的空间也很小,且不失其实时、多任务的系统特征。由于它的高度灵活性,用户可以很容易地对这一操作系统进行定制或作适当开发,来满足自己的实际应用需要。
OSE 主要是由 ENEA Data AB 下属的 ENEA OSE Systems AB 负责开发和技术服务的,一直以来都充当着实时操作系统以及分布式和容错性应用的先锋。公司建立于 1968 年,由大约 600 名雇员专门从事实时应用的技术支持工作。ENEA OSE Systems AB 是现今市场上一个飞速发展的 RTOS 供应商,在过去三年中,该公司的税收以每年 70%的速度递增。
Nucleus PLUS 是为实时嵌入式应用而设计的一个抢先式多任务操作系统内核,其 95%的代码是用 ANSIC 写成的,因此非常便于移植并能够支持大多数类型的处理器。从实现角度来看,Nucleus PLUS 是一组 C 函数库,应用程序代码与核心函数库连接在一起,生成一个目标代码,下载到目标板的 RAM 中或直接烧录到目标板的 ROM 中执行。在典型的目标环境中,Nucleus PLUS 核心代码区一般不超过 20K 字节大小。(提供源代码)
eCos 是 RedHat 公司开发的源代码开放的嵌入式 RTOS 产品,是一个可配置、可移植的嵌入式实时操作系统,设计的运行环境为 RedHat 的 GNUPro 和 GNU 开发环境。eCOS 的所有部分都开放源代码,可以按照需要自由修改和添加。
一个源码公开、可移植、可固化、可裁剪、占先式的实时多任务操作系统。其绝大部分源码是用 ANSI C 写的,世界著名嵌入式专家 Jean J.Labrosse(μC/OS-II 的作者)出版了多本图书详细分析了该内核的几个版本。μC/OS-II 通过了联邦航空局(FAA)商用航行器认证,符合 RTCA(航空无线电技术委员会)DO-178B 标准,该标准是为航空电子设备所使用软件的性能要求而制定的。自 1992 年问世以来,μC/OS-II 已经被应用到数以百计的产品中。uC/OS-II 在高校教学使用是不需要申请许可证的,但将μC/OS-II 的目标代码嵌入到产品中去,应当购买目标代码销售许可证。
提供源代码:
购买《嵌入式实时操作系统μC/OS-II(第 2 版)》可以获得µC/OS-II V2.52版本的所有源代码,购买此书的其它版本可以获得相应版本的全部源代码。
可移植性(portable)
µC/OS-II 的源代码绝大部分是使用移植性很强的 ANSI C 编写,与微处理器硬件相关的部分是使用汇编语言编写。汇编语言写的部分已经压缩到最低的 限度,以使µC/OS-II 便于移植到其它微处理器上。目前,µC/OS-II 已经被移植到多种不同架构的微处理器上。
可固化(ROMmable)
只要具备合适的软硬件工具,就可以将µC/OS-II 嵌入到产品中成为产品的一部分。
可剪裁(scalable)
µC/OS-II 使用条件编译实现可剪裁,用户程序可以只编译自己需要的(µC/OS-II 的)功能,而不编译不要需要的功能,以减少µC/OS-II 对代码空间和数据空间的占用。
可剥夺(preemptive)
µC/OS-II 是完全可剥夺型的实时内核,µC/OS-II 总是运行就绪条件下优先级最高的任务。
多任务
µC/OS-II 可以管理 64 个任务,然而,µC/OS-II 的作者建议用户保留 8 个给 µC/OS-II。这样,留给用户的应用程序最多可有 56 个任务。
可确定性
绝大多数µC/OS-II 的函数调用和服务的执行时间具有确定性,也就是说,用 户总是能知道µC/OS-II 的函数调用与服务执行了多长时间。
任务栈
:µC/OS-II 的每个任务都有自己单独的栈,使用µC/OS-II 的占空间校验函数,可确定每个任务到底需要多少栈空间。
系统服务
:µC/OS-II 提供很多系统服务,例如信号量、互斥信号量、时间标志、消息邮箱、消息队列、块大小固定的内存的申请与释放及时间管理函数等。
中断管理
:中断可以使正在执行的任务暂时挂起,如果优先级更高的任务被中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达 255 层。
稳定性与可靠性
µC/OS-II 是基于µC/OS 的,µC/OS 自 1992 年以来已经有数百个商业应用。µC/OS-II 与µC/OS 的内核是一样的,只是提供了更多的功能。另外,2000 年 7月,µC/OS-II 在一个航空项目中得到了美国联邦航空管理局对商用飞机的、符合 RTCA DO – 178B 标准的认证。这一结论表明,该操作系统的质量得到了认证,可以在任何应用中使用。
ARM 是 Advanced RISC Machines 的缩写,是微处理器行业的一家知名企业,该企业设计了大量高性能、廉价、耗能低的 RISC 处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP 和移动式应用等。
ARM 将其技术授权给世界上许多著名的半导体、软件和 OEM 厂商,每个厂商得到的都是一套独一无二的 ARM 相关技术及服务。利用这种合伙关系,ARM 很快成为许多全球性 RISC 标准的缔造者。
目前,总共有 30 家半导体公司与 ARM 签订了硬件技术使用许可协议,其中包括 Intel、IBM、LG 半导体、NEC、SONY、菲利浦和国家半导体这样的大公司。至于软件系统的合伙人,则包括微软、升阳和 MRI 等一系列知名公司。
ARM 架构是面向低预算市场设计的第一款 RISC 微处理器。
ARM 的设计实现了非常小,但是高性能的结构。ARM 处理器结构的简单使 ARM 的内核非常小,这样使器件的功耗也非常低。
ARM 是精简指令集计算机(RISC),因为它集成了非常典型的 RISC 结构特性:
一个大的、统一的寄存器文件
装载/保存结构,数据处理的操作只针对寄存器的内容,而不直接存储器进行操作。
简单的寻址模式,所有装载/保存的地址都只由寄存器内容和指令域决定。
统一和固定长度的指令域,简化了指令的译码。
此外,ARM 体系结构还提供:
每一条数据处理指令都对算术逻辑单元(ALU)和移位器控制,以实现对 ALU 和 移位器的最大利用。
地址自动增加和自动减少的寻址模式实现了程序循环的优化。
多寄存器装载和存储指令实现最大数据吞吐量。
所有指令的条件执行实现最快速的代码执行。
这些在基本 RISC 结构上增强的特性使 ARM 处理器在高性能、低代码规模、低功耗和 小的硅片尺寸方面取得良好的平衡。
https://blog.csdn.net/hemoparrot/article/details/3786776
https://blog.csdn.net/wwt18811707971/article/details/80978819
《(周立功)ARM嵌入式系统基础教程》