💘ARM Embedded System,欢迎关注我的Gitee
文章目录
💦概念
嵌入式系统是指以应用为中心,以计算机技术为基础,软件、硬件可剪裁,适应应用系统对功能、可靠性、成本、体积和功耗严格要求的专用计算机系统。
它包括硬件和软件两部分。硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。软件包括操作系统软件(OS)(要求实时和多任务操作)和应用程序编程。
有时设计人员把这两种软件组合在一起。应用程序控制着系统的运作和行为,而操作系统控制着应用程序编程与硬件的交互作用。
💦嵌入式计算机系统特点
嵌入式系统通常是面向特定应用的嵌入式CPU,与通用型的最大不同就是嵌入式CPU大多工作在为特定用户群设计的系统中,执行的是带有特定要求的预先定义的任务,如实时性、安全性、可用性等。它通常具有低功耗、体积小、集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化,移动能力大大增强,跟网络的耦合也越来越紧密
嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力。由于嵌入式系统通常需要进行大量生产,所以单个的成本节约,能够随着产量进行成百上千的放大。
嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。
为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储于磁盘等载体中。
嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。
💦嵌入式系统的特点
专用、软硬件可剪裁配置。从嵌入式系统定义可以看出,嵌入式系统是面向应用的,和通用系统最大的区别在于嵌入式系统功能专一。根据这个特性,嵌入式系统的软硬件可以根据需要进行精心设计、量体裁衣、去除冗余,以实现低成本、高性能。也正因如此,嵌入式系统采用的微处理器和外围设备种类繁多,系统不具通用。
低功耗、高可靠性、高稳定性。嵌入式系统大多用在特定场合,要么是环境条件恶劣,要么要求其长时间连续运转,因此,嵌入式系统应具有高可靠性、高稳定性、低功耗等性能。
软件代码短小精悍。由于成本和应用场合的特殊性,通常嵌入式系统的硬件资源(如内存等)都比较少,因此对嵌入式系统设计提出了较高的要求。嵌入式系统的软件设计尤其要求高质量,要在有限资源上实现高可靠性、高性能的系统。虽然随着硬件技术的发展和成本的降低,在高端嵌入式产品上也开始采用嵌入式操作系统,但其和PC资源比起来还是少得可怜,所以嵌入式系统的软件代码依然要在保证性能的情况下,占用尽量少的资源,保证产品的高性价比,使其具有更强的竞争力。
代码可固化。为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储于磁盘中。
实时性。很多采用嵌入式系统的应用具有实时性要求,所以大多嵌入式系统采用实时性系统。但需要注意的是嵌入式系统不等于实时系统。
弱交互性。嵌入式系统不仅功能强大,而且要求使用灵活方便,一般不需要类似的键盘、鼠标等,人机交互以简单方便为主。
💦组成结构
嵌入式系统的核心计算系统可以抽象出一个典型的组成模型:硬件层、中间层、软件层和功能层
💦嵌入式微处理器
嵌入式系统硬件层的核心是嵌入式微处理器,嵌入式微处理器与通用CPU最大的不同在于嵌入式微处理器大多工作在为特定用户群所专用设计的系统中,它将通用CPU许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。
嵌入式微处理器的体系结构可以采用冯·诺依曼体系或哈佛体系结构;指令系统可以选用精简指令系统(Reduced Instruction Set Computer,RISC)和复杂指令系统(Complex Instruction Set Computer,CISC)
嵌入式微处理器有各种不同的体系,即使在同一体系中也可能具有不同的时钟频率和数据总线宽度,或集成了不同的外设和接口。据不完全统计,目前全世界嵌入式微处理器已经超过1 000多种,体系结构有30多个系列,其中主流的体系有ARM、MIPS、PowerPC、X86、SH等。但与全球PC市场不同的是,没有一种嵌入式微处理器可以主导市场,仅以32位的产品而言,就有100种以上的嵌入式微处理器。嵌入式微处理器的选择是根据具体的应用而决定的
💦存储器
嵌入式系统需要存储器来存放和执行代码。嵌入式系统的存储器包含Cache、主存和辅助存储器
Cache是一种容量小、速度快的存储器阵列,它位于主存和嵌入式微处理器内核之间,存放的是最近一段时间微处理器使用最多的程序代码和数据。在需要进行数据读取操作时,微处理器尽可能的从Cache中读取数据,而不是从主存中读取,这样就大大改善了系统的性能,提高了微处理器和主存之间的数据传输速率
主存:主存是嵌入式微处理器能直接访问的寄存器,用来存放系统和用户的程序及数据。它可以位于微处理器的内部或外部,其容量为256KB~1GB,根据具体的应用而定,一般片内存储器容量小、速度快,片外存储器容量大
常用作主存的存储器有以下几种:
- ROM类NOR Flash、EPROM、PROM等;
- RAM类SRAM、DRAM、SDRAM等。
其中,NOR Flash 凭借其可擦写次数多、存储速度快、存储容量大、价格便宜等优点,在嵌入式领域内得到了广泛应用。
辅助存储器:辅助存储器用来存放大数据量的程序代码或信息,它的容量大,但读取速度与主存相比就慢很多,用来长期保存用户的信息。
嵌入式系统中常用的外存有硬盘、NAND Flash、CF卡、MMC、SD卡等
💦通用设备接口和I/O接口
嵌入式系统和外界交互需要一定形式的通用设备接口,如A/D、D/A、I/O等,外设通过和片外其他设备的或传感器的连接来实现微处理器的输入/输出功能。每个外设通常都只有单一的功能,它可以在芯片外也可以内置芯片中。外设的种类很多,可从一个简单的串行通信设备到非常复杂的802.11无线设备
💦中间层
硬件层与软件层之间为中间层,也称为硬件抽象层(Hardware Abstract Layer,HAL)或板级支持包(Board Support Package,BSP),它将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无须关心底层硬件的具体情况,根据BSP 层提供的接口即可进行开发。该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能
BSP具有以下两个特点
- 硬件相关性:因为嵌入式实时系统的硬件环境具有应用相关性,而作为上层软件与硬件平台之间的接口,BSP需要为操作系统提供操作和控制具体硬件的方法
- 操作系统相关性:不同的操作系统具有各自的软件层次结构,因此,不同的操作系统具有特定的硬件接口形式
💦软件层
软件层由实时多任务操作系统(Real-time Operation System,RTOS)、文件系统、图形用户接口(Graphic User Interface,GUI)、网络系统及通用组件模块组成。RTOS是嵌入式应用软件的基础和开发平台
嵌入式操作系统(Embedded Operation System,EOS)是一种用途广泛的系统软件,过去它主要应用与工业控制和国防系统领域。EOS负责嵌入系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。
嵌入式文件系统比较简单,主要提供文件存储、检索、更新等功能,一般不提供保护、加密等安全机制。它以系统调用和命令方式提供文件的各种操作,主要有设置、修改对文件和目录的存取权限。提供建立、修改、改变和删除目录等服务。提供创建、打开、读写、关闭和撤销文件等服务。
图形用户接口(GUI)的广泛应用是当今计算机发展的重大成就之一,它极大地方便了非专业用户的使用,人们从此不再需要死记硬背大量的命令,取而代之的是可用通过窗口、菜单、按键等方式来方便地进行操作。而嵌入式GUI具有下面几个方面的基本要求:轻型、占用资源少、高性能、高可靠性、便于移植、可配置等特点
💦功能层
功能层也称为应用软件层,应用软件是由基于实时系统开发的应用程序组成,运行在嵌入式操作系统之上,一般情况下与操作系统是分开的。应用软件用来实现对被控对象的控制功能。功能层是要面对被控对象和用户,为方便用户操作,往往需要提供一个友好的人机界面
💦嵌入式处理器
嵌入式处理器是嵌入式系统的核心,是控制、辅助系统运行的硬件单元。其产品范围极其广阔,从最初的4位处理器、目前仍在大规模应用的8位单片机,到最新的受到广泛青睐的32位、64位嵌入式CPU
目前,世界上具有嵌入式功能特点的处理器已经超过1000种,流行体系结构包括MCU、MPU等30多个系列。
💦嵌入式微处理器
嵌入式微处理器(Micro Processor Unit,MPU)是由通用计算机中的CPU演变而来的。它的特征是具有32位以上的处理器,具有较高的性能,其价格也相应较高。但与计算机处理器不同的是,在实际嵌入式应用中,只保留和嵌入式应用紧密相关的功能硬件,去除其他的冗余功能部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求。
嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。目前,主要的嵌入式处理器类型有Am186/88、386EX、SC-400、Power PC、68000、MIPS、ARM/StrongARM系列等
💦嵌入式微控制器
嵌入式微控制器(Microcontroller Unit,MCU)的典型代表是单片机,从20世纪70年代末单片机出现到今天,虽然已经经过了20多年的历史,但这种8位的电子器件目前在嵌入式设备中仍然有着极其广泛的应用。
单片机芯片内部集成ROM/EPROM、RAM、总线、总线逻辑、定时/计数器、看门狗、I/O、串行口、脉宽调制输出、A/D、D/A、Flash RAM、EEPROM等各种必要功能和外设,与嵌入式微处理器相比,微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高。微控制器是目前嵌入式系统工业的主流。
💦嵌入式DSP处理器
嵌入式DSP处理器(Embedded Digital Signal Processor,EDSP)是专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊设计,具有很高的编译效率和指令的执行速度。在数字滤波、FFT、谱分析等各种仪器上DSP获得了大规模的应用
目前,最为广泛应用的是TI的TMS320C2000/C5000系列,另外如Intel的MCS-296和Siemens的TriCore也有各自的应用范围
💦SOC(System on Chip)片上系统
SoC追求产品系统最大包容的集成器件,是目前嵌入式应用领域的热门话题之一。SoC最大的特点是成功实现了软硬件无缝结合,直接在处理器片内嵌入操作系统的代码模块。而且SoC具有极高的综合性,在一个硅片内部运用VHDL等硬件描述语言,实现一个复杂的系统
💦典型的嵌入式操作系统
嵌入式操作系统(Embedded Operating System,EOS)是一种用途广泛的系统软件,过去它主要应用于工业控制和国防系统领域。EOS负责嵌入系统的全部软、硬件资源的分配、调度工作,控制协调并发活动;它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能
EOS是相对于一般操作系统而言的,它除具备了一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件功能等外,还具有以下特点:
- 可装卸性、开放性、可伸缩性的体系结构
- 强实时性,可用于各种设备控制当中
- 统一的接口,提供各种设备驱动接入
- 操作方便、简单,提供友好的图形用户界面
- 提供强大的网络功能,支持TCP/IP及其他协议,提供TCP/UDP/IP/PPP支持及统一的MAC访问层接口,为各种移动计算设备预留接口
- 强稳定性,弱交互性。嵌入式系统一旦开始运行就不需要用户过多地干预,这就要负责系统管理的EOS具有较强的稳定性。嵌入式操作系统的用户接口一般不提供操作命令,它通过系统调用命令向用户程序提供服务
- 固化代码。在嵌入系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。辅助存储器在嵌入式系统中很少使用,因此,嵌入式操作系统的文件管理功能应该能够很容易地拆卸,而用各种内存文件系统
更好的硬件适应性,也就是良好的移植性
💦Linux
在所有的操作系统中,Linux是发展最快、应用最广泛的系统之一。Linux本身的种种特性使其成为嵌入式开发的首选。在进入市场的前两年中,嵌入式Linux的设计通过广泛应用而获得巨大的成功。
随着嵌入式Linux技术的成熟,以其按应用要求可定制系统、支持多数硬件平台等特性,已由早期的试用阶段迈进到逐渐成为嵌入式市场的主流。
根据IDC的报告,Linux已经成为全球第二大操作系统。Linux发展如此之快的另一个主要原因是产品的成本。在激烈的市场竞争中,只拥有先进的技术是远远不够的,如何减少产品的投入也是需要重点考虑的问题。免费的Linux为厂商节约了一大笔开支,特别是对于经济实力不强的公司来说。目前 Linux 内核的最新版本已经达到4.9.xx
💦μC/OS
μC/OS是一个典型的实时操作系统。该系统从1992年开始发展,目前流行的是第二个版本,即μC/OSⅡ。
其特点可以概括为以下几个方面:公开源代码,代码结构清晰、明了,注释详细,组织有条理,可移植性好,可裁剪,可固化,内核属于抢占式,最多可以管理64个任务。
该系统短小精悍,是研究和学习实时操作系统的首选
💦Windows CE
Windows CE是Microsft公司的产品,是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。
Windows CE采用模块化设计,并对于从掌上电脑到专用的工控电子设备进行定制。此操作系统的基本内核需要至少200KB ROM存储器。从游戏机到现在大部分的掌上电脑都采用了Windows CE作为操作系统,其缺点是系统软件价格过高,影响整个产品的成本控制
💦VxWorks
VxWorks是WindRiver(风河)公司专门为实时嵌入式系统设计开发的操作系统软件,为程序员开发提供了高效的实时任务调度、中断管理、实时的系统资源以及实时的任务间通信。应用程序员可以将尽可能多的精力放在应用程序本身,而不必再去关心系统资源的管理。
该系统主要应用在单板机、数据网络(以太网交换机、路由器)、通信等多方面。该公司据已为Intel所收购
💦QNK
QNX是一款实时操作系统,由加拿大 QNX 软件系统有限公司开发,广泛应用于自动化、控制、机器人科学、电信、数据通信、航空航天、计算机网络系统、医疗仪器设备、交通运输、安全防卫系统、POS机、零售机等任务关键型应用领域。20世纪90年代后期,QNX系统在高速增长的Internet终端设备、信息家电、掌上电脑等领域也得到了广泛应用
💦IOS
iOS是由苹果公司为iPhone开发的操作系统。它主要是给iPhone、iPod Touch以及iPad使用。就像其基于的Mac OS X操作系统一样,它也是以Darwin为基础的。原本这个系统名为iPhone OS,直到2010年6月7日WWDC大会上宣布改名为iOS
iOS的系统架构分为4个层次:核心操作系统层(the Core OS layer),核心服务层(the Core Services layer),媒体层(the Media layer)、可轻触层(the Cocoa Touch layer)。
💦Android
Android是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序—移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。
Google与开放手机联盟合作开发了Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达电和T-Mobile在内的30多家技术和无线应用的领军企业组成。
Google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统
💦应用
💦消费电子领域
💦通信网络领域
💦工业控制领域
基于嵌入式芯片的工业自动化设备将获得长足的发展,目前已经有大量的8位、16位、32位嵌入式微控制器在应用中,网络化是提高生产效率和产品质量、减少人力资源主要途径,如工业过程控制、数字机床、电力系统、电网安全、电网设备监测、石油化工系统。就传统的工业控制产品而言,低端型采用的往往是8位单片机。但是随着技术的发展,32位、64位的处理器逐渐成为工业控制设备的核心,在未来几年内必将获得长足的发展
💦机器人领域
💦交通管理与汽车电子领域
💦国防和航空航天领域
💦嵌入式系统的发展趋势
- 小型化、智能化、网络化、可视化
- 多核技术的应用
- 低功耗(节能)、绿色环保
- 云计算、可重构、虚拟化等技术被进一步应用到嵌入式系统中
- 嵌入式软件开发平台化、标准化、系统可升级,代码可复用将更受重视
- 嵌入式系统软件将逐渐PC化
- 融合趋势
- 安全性
💦开发流程
💦嵌入式系统设计的主要步骤
以自顶向下的角度来看,系统设计从系统需求分析开始;第二步是规格说明,在这一步我们对需设计的系统功能进行更细致地描述,这些描述并不涉及系统的组成;第三步是系统结构设计,在这一阶段以大的构件为单位设计系统内部详细构造,明确软、硬件功能的划分;第四步是构件设计,它包括系统程序模块设计、专用硬件芯片选择及硬件电路设计;第五步是系统集成,在完成了所有构件设计的基础上进行系统集成,构造出所需的完整系统。
💦开发考虑要素
在嵌入式系统设计开发时必须考虑以下因素:
- 功能可靠实用、便于升级
- 实时并发处理,及时响应
- 体积符合要求,结构紧凑
- 接口符合规范,易于操作
- 配置精简稳定,维护便利
- 功耗管理严格,成本低廉
💦扩展-Arduino
Arduino 是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的arduino板)和软件(arduino IDE)。它适用于艺术家、设计师、爱好者和对于“互动”有兴趣的朋友们。
Arduino,是一个基于开放原始码的软硬件平台,构建于开放原始码simple I/O介面版,并且具有使用类似Java,C语言的Processing/Wiring开发环境。