网站模版调用标签教程,网站开发优势,普洱做网站的报价,pc 手机网站源码嵌入式技术 第二版新增内容 嵌入式系统#xff1a;以应用为中心、以计算机技术为基础#xff0c;并将可配置与可裁减的软、硬件、集成于一体的专用计算机系统#xff0c;需要满足应用对功能、可靠性、成本、体积和功耗等方面的严格要求。一般嵌入式系统由嵌入式处理器、相关… 嵌入式技术 第二版新增内容 嵌入式系统以应用为中心、以计算机技术为基础并将可配置与可裁减的软、硬件、集成于一体的专用计算机系统需要满足应用对功能、可靠性、成本、体积和功耗等方面的严格要求。一般嵌入式系统由嵌入式处理器、相关支撑硬件、嵌入式操作系统、支撑软件以及应用软件组成。嵌入式处理器由于嵌入式系统一般是在恶劣的环境条件下工作与一般处理器相比嵌入式处理器应可抵抗恶劣环境的影响比如高温、寒冷、电磁、加速度等环境因素。为适应恶劣环境嵌入式处理器芯片除满足低功耗、体积小等需求外根据不同环境需求其工艺可分为民用、工业和军用等三个档次。相关支撑硬件是指除嵌入式处理器以外的构成系统的其他硬件包括存储器、定时器、总线、IO接口以及相关专用硬件。嵌入式操作系统是指运行在嵌入式系统中的基础软件主要用于管理计算机资源和应用软件。与通用操作系统不同嵌入式操作系统应具备实时性、可剪裁性和安全性等特征。支撑软件是指为应用软件开发与运行提供公共服务、软件开发、调试能力的软件支撑软件的公共服务通常运行在操作系统之上以库的方式被应用软件所引用。应用软件应用软件是指为完成嵌入式系统的某一特定目标所开发的软件。嵌入式系统应具备以下特性 专用性强。嵌入式系统面向特定应用需求能够把通用CPU中许多由板卡完成的任务集成在芯片内部从而有利于嵌入式系统的小型化。技术融合。嵌入式系统将先进的计算机技术、通信技术、半导体技术和电子技术与各个行业的具体应用相结合是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。软硬一体软件为主。软件是嵌入式系统的主体有IP核。嵌入式系统的硬件和软件都可以高效地设计量体裁衣去除冗余可以在同样的硅片面积上实现更高的性能。比通用计算机资源少。由于嵌入式系统通常只完成少数几个任务。设计时考虑到其经济性不能使用通用CPU这就意味着管理的资源少成本低结构更简单。程序代码固化在非易失存储器中。为了提高执行速度和系统可靠性嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中而不是存在磁盘中。需专门开发工具和环境。嵌入式系统本身不具备开发能力即使设计完成以后用户通常也不能对其中的程序功能进行修改必须有一套开发工具和环境才能进行开发。体积小、价格低、工艺先进、性能价格比高、系统配置要求低、实时性强。对安全性和可靠性的要求高。 嵌入式系统分类 根据不同用途可将嵌入式系统划分为嵌入式实时系统和嵌入式非实时系统两种而实时系统又可分为强实时系统和弱实时系统。如果从安全性要求看嵌入式系统还可分为安全攸关系统和非安全攸关系统。嵌入式系统分为:硬件层、抽象层、操作系统层、中间件层和应用层等5层。 硬件层。硬件层主要是为嵌入式系统提供运行支撑的硬件环境其核心是微处理器、存储器(ROM、SDRAM、Flash等)、I/O接口(A/D、D/A、I/O等)和通用设备以及总线、电源、时钟等。抽象层。在硬件层和软件层之间为抽象层主要实现对硬件层的硬件进行抽象为上层应用(操作系统〉提供虚拟的硬件资源板级支持包(BSP)是一种硬件驱动软件它是面向硬件层的硬件芯片或电路进行驱动为上层操作系统提供对硬件进行管理的支持。操作系统层。操作系统层主要由嵌入式操作系统、文件系统、图形用户接口、网络系统和通用组件等可配置模块组成。中间件层。中间件层一般位于操作系统之上管理计算机资源和网络通信中间件层是连接两个独立应用的桥梁。应用层。应用层是指嵌入式系统的具体应用主要包括不同的应用软件。 嵌入式软件的主要特点: 可剪裁性。嵌入式软件能够根据系统功能需求通过工具进行适应性功能的加或减删除掉系统不需要的软件模块使得系统更加紧凑。可配置性。嵌入式软件需要具备根据系统运行功能或性能需要而被配置的能力使得嵌入式软件能够根据系统的不同状态、不同容量和不同流程对软件工作状况进行能力的扩展、变更和增量服务。强实时性。嵌入式系统中的大多数都属于强实时性系统要求任务必须在规定的时限内处理完成因此嵌入式软件采用的算法优劣是影响实时性的主要原因。安全性。安全性是指系统在规定的条件下和规定的时间内不发生事故的能力。可靠性。可靠性是指系统在规定的条件下和规定的时间周期内程序执行所要求的功能的能力。高确定性。嵌入式系统运行的时间、状态和行为是预先设计规划好的其行为不能随时间、状态的变迁而变化。 M2M全称MachinetoMachine是指数据从一台终端传送到另一台终端也就是机器与机器的对话。M2M应用系统构成有智能化机器、M2M硬件、通信网络、中间件。 智能化机器 “智能化”所谓使机器“开口说话”让机器具有信息感知、信息加工及无线加工的能力M2M硬件 使机器可具备联网能力和远程通信的部件进行信息提取从不同设备内汲取需要的信息传输到分析部分。通信网络 包括广域网(无线移动通讯网络、卫星通讯网络、互联网和公众电话网)局域网(以太网、无线局域网、wifi)个域网(Zigbee、传感器网络、蓝牙)通过上述网络将M2M硬件传输的信息送达指定位置是出于M2M技术框架的核心的地位。中间件 M2M网关完成在不同协议之间的转换在通信网络和IT系统之间建立桥梁。 DO-178B的目的在于为制造机载系统和设备的机载软件提供指导使其能够提供在满足符合适航要求的安全性水平下完成预期的功能的信心。为了满足该目标DO-178B给予了以下三方面的指导 软件生命周期过程的目标为满足上述目标要进行的活动证明上述目标已经达到的证据也即软件生命周期数据。 在DO-178B中目标、过程、数据是软件适航的基本要求。 NPU国产嵌入式神经网络处理器是一种专门应用于网络应用数据包的处理器采用“数据驱动并行计算”的架构特别擅长处理视频、图像类的海量多媒体数据。NPU也是集成电路的一种但区别于特殊用途集成电路(ASIC)的单一功能网络处理更加复杂、更加灵活一般可以利用软件或硬件依照网络运算的特性特别编程从而实现网络的特殊用途在一块芯片上实现许多不同功能以应用于多种不同的网络设备及产品。NPU的亮点能够运行多个并行线程——NPU通过一些特殊的硬件级优化比如为一些真正不同的处理核提供一些容易访问的缓存系统将其提升到另一个层次。这些高容量内核比通常的“常规”处理器更简单因为它们不需要执行多种类型的任务。这一整套的“优化”使得NPU更加高效这就是为什么这么多的研发会投入到ASIC中的原因。NPU的优势大部分时间集中在低精度的算法新的数据流架构或内存计算能力。与GPU不同它们更关注吞吐量而不是延迟。 嵌入式微处理器 冯诺依曼结构传统计算机采用冯·诺依曼(VonNeumann)结构也称普林斯顿结构是一种将程序指令存储器和数据存储器合并在一起的存储器结构。冯·诺依曼结构的计算机程序和数据共用一个存储空间程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置。冯·诺依曼结构采用单一的地址及数据总线程序指令和数据的宽度相同。处理器执行指令时先从储存器中取出指令解码再取操作数执行运算即使单条指令也要耗费儿个甚至几十个周期在高速运算时在传输通道上会出现瓶颈效应。哈佛结构是一种并行体系结构它的主要特点是将程序和数据存储在不同的存储空间中即程序存储器和数据存储器是两个相互独立的存储器每个存储器独立编址、独立访问。哈佛结构中与两个存储器相对应的是系统中的两套独立的地址总线和数据总线。哈佛结构中这种分离的程序总线和数据总线可允许在一个机器周期内同时获取指令字(来自程序存储器)和操作数(来自数据存储器)从而提高了执行速度使数据的吞吐率提高了1倍。但这不意味着可以在一个机器周期内多次访问存储器。嵌入式硬件系统基本结构一般由嵌入式微处理器、存储器、输入/输出部分组成其中嵌入式微处理器是嵌入式硬件系统的核心通常由3大部分组成控制单元(控制器)、算数逻辑单元(运算器)、寄存器。嵌入式微处理器的分类根据嵌入式微处理器的字长宽度可分为4位、8位、16位、32位和64位。一般把16位及以下的称为嵌入式微控制器(EmbeddedMicroController)32位及以上的称为嵌入式微处理器。按系统集成度划分可分为两类 一种是微处理器内部仅包含单纯的中央处理器单元称为一般用途型微处理器 另一种则是将CPU、ROM、RAM及I/O等部件集成到同一个芯片上称为单芯片微控制器(SingleChipMicrocontroller)。根据用途分类一般分为嵌入式微控制器MCU、嵌入式微处理器MPU、嵌入式数字信号处理器DSP、嵌入式片上系统SOC等。嵌入式微控制器MCU的典型代表是单片机其片上外设资源比较丰富适合于控制。MCU芯片内部集成ROM/EPROM、RAM、总线、总线逻辑、定时/计数器、看门狗、I/O、串行口、脉宽调制输出、A/D、D/A 、FlashRAM、EEPROM等各种必要功能和外设。和嵌入式微处理器相比微控制器的最大特点是单片化体积大大减小从而使功耗和成本下降、可靠性提高其片上外设资源一般较丰富适合于控制是嵌入式系统工业的主流。嵌入式微处理器MPU由通用计算机中的CPU演变而来。它的特征是具有32位以上的处理器具有较高的性能当然其价格也相应较高。但与计算机处理器不同的是在实际嵌入式应用中只保留和嵌入式应用紧密相关的功能硬件去除其他的冗余功能部分这样就以最低的功耗和资源实现嵌入式应用的特殊要求。与工业控制计算机相比嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。目前常见的有ARM、MIPS、POWERPC等。嵌入式数字信号处理器DSP是专门用于信号处理方面的处理器其在系统结构和指令算法方面进行了特殊设计具有很高的编译效率和指令的执行速度。采用哈佛结构流水线处理其处理速度比最快的CPU还快10-50倍。在数字滤波、FFT、谱分析等各种仪器上DSP获得了大规模的应用。DSP特点 多总线结构允许CPU同时进行指令和数据的访问因而可以实现流水线操作。 哈佛体系结构程序和数据空间分开可以同时访问指令和数据。 数字信号处理的运算特点乘/加及反复相乘求和(乘积累加)。 DSP设置了硬件乘法/累加器能在单个指令周期内完成乘法/加法运算。 DSP主要应用信号处理、图像处理仪器、语言处理、控制、军事、通讯、医疗、家用电器等领域。嵌入式片上系统SOC是追求产品系统最大包容的集成器件。SoC最大的特点是成功实现了软硬件无缝结合直接在处理器片内嵌入操作系统的代码模块。是一个有专用目标的集成电路其中包含完整系统并有嵌入软件的全部内容。多核指多个微处理器内核是将两个或更多的微处理器封装在一起集成在一个电路中。多核处理器是单枚芯片能够直接插入单一的处理器插槽中。多核与多CPU相比很好的降低了计算机系统的功耗和体积。在多核技术中由操作系统软件进行调度多进程多线程并发都可以。双核处理器基于单个半导体的一个处理器上拥有2个处理器核心。由于将2个或多个运算核封装在一个芯片上节省大量晶体管、封装成本显著提高处理器性能兼容性好系统升级方便。2个或多个内核工作协调实现方式 对称多处理技术将2颗完全一样的处理器封装在一个芯片内达到双倍或接近双倍的处理性能节省运算资源。非对称处理技术2个处理内核彼此不同各自处理和执行特定的功能在软件的协调下分担不同的计算任务。从目前已经发布或透露的多核处理器原型来看对称式的处理方式将成为未来多核处理器的主要体系体系结构同时多核间将共享大容量的缓存作为处理器之间及处理器与系统内存之间交换数据的“桥梁”。为了提高交换速度这些缓存往往集成在片内其数据传输速度是惊人的。 多核CPU的调度多核CPU环境下进程的调度算法一般有全局队列调度和局部队列调度两种。全局队列调度是指操作系统维护一个全局的任务等待队列当系统中有一个CPU空闲时操作系统就从全局任务等待队列中选取就绪任务开始执行CPU核心利用率高。局部队列调度是操作系统为每个CPU内核维护一个局部的任务等待队列当系统中有一个CPU内核空闲时就从该核心的任务等待队列中选取适当的任务执行优点是无需在多个CPU之间切换。 嵌入式软件与操作系统 嵌入式软件是指应用在嵌入式计算机系统当中的各种软件除了具有通用软件的一般特性还具有一些与嵌入式系统相关的特点包括规模较小、开发难度大、实时性和可靠性要求高、要求固化存储。嵌入式软件分类 系统软件控制和管理嵌入式系统资源为嵌入式应用提供支持的各种软件如设备驱动程序、嵌入式操作系统、嵌入式中间件等。应用软件嵌入式系统中的上层软件定义了嵌入式设备的主要功能和用途并负责与用户交互一般面向特定的应用领域如飞行控制软件、手机软件、地图等。支撑软件辅助软件开发的工具软件如系统分析设计工具、在线仿真工具、交叉编译器等。 设备驱动层又称为板级支持包BSP包含了嵌入式系统中所有与硬件相关的代码直接与硬件打交道对硬件进行管理和控制并为上层软件提供所需的驱动支持。板级支持包(BSP):是介于主板硬件和操作系统中驱动层程序之间的一层一般认为它属于操作系统一部分主要是实现对操作系统的支持为上层的驱动程序提供访问硬件设备寄存器的函数包使之能够更好的运行于硬件主板。在嵌入式系统软件的组成中就有BSP。BSP是相对于操作系统而言的不同的操作系统对应于不同定义形式的BSP例如VxWorks的BSP和Linux的BSP相对于某一CPU来说尽管实现的功能一样可是写法和接口定义是完全不同的所以写BSP一定要按照该系统BSP的定义形式来写(BSP的编程过程大多数是在某一个成型的BSP模板上进行修改)。这样才能与上层OS保持正确的接口良好的支持上层OS。BSP主要功能为屏蔽硬件提供操作系统及硬件驱动具体功能包括 单板硬件初始化主要是CPU的初始化为整个软件系统提供底层硬件支持为操作系统提供设备驱动程序和系统中断服务程序定制操作系统的功能为软件系统提供一个实时多任务的运行环境初始化操作系统为操作系统的正常运行做好准备。 板级支持包:(BSP也称为硬件抽象层HAL)一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置等功能。板级支持包主要具有以下两个特点 硬件相关性因为嵌入式实时系统的硬件环境具有应用相关性而作为上层软件与硬件平台之间的接口BSP需为操作系统提供操作和控制具体硬件的方法。操作系统相关性不同的操作系统具有各自的软件层次结构因此不同操作系统具有特定的硬件接口形式。 BSP主要包括两个方面的内容引导加载程序BootLoader和设备驱动程序。BSP引导加载程序BootLoader是嵌入式系统加电后运行的第一段软件代码是在操作系统内核运行之前运行的一小段程序通过这段程序可以初始化硬件设备、建立内存空间的映射图从而将系统的软硬件环境设置到一个合适的状态以便为最终调用操作系统内核做好准备。BSP引导加载程序一般包括以下功能 片级初始化主要完成微处理器的初始化包括设置微处理器的核心寄存器和控制寄存器、微处理器的核心工作模式及其局部总线模式等。片级初始化把微处理器从上电时的默认状态逐步设置成系统所要求的工作状态。这是一个纯硬件的初始化过程。板级初始化通过正确地设置各种寄存器的内容来完成微处理器以外的其他硬件设备的初始化。例如初始化LED显示设备、初始化定时器、设置中断控制寄存器、初始化串口通信、初始化内存控制器、建立内存空间的地址映射等。在此过程中除了要设置各种硬件寄存器以外还要设置某些软件的数据结构和参数。因此这是一个同时包含有软件和硬件在内的初始化过程。加载内核(系统级初始化)将操作系统和应用程序的映像从Flash存储器复制到系统的内存当中然后跳转到系统内核的第一条指令处继续执行。 BSP设备驱动程序在一个嵌入式系统当中操作系统是可能有也可能无的。但无论如何设备驱动程序是必不可少的。所谓的设备驱动程序就是一组库函数用来对硬件进行初始化和管理并向上层软件提供良好的访问接口。对于不同的硬件设备来说它们的功能是不一样的所以它们的设备驱动程序也是不一样的。但是一般来说大多数的设备驱动程序都会具备以下的一些基本功能。 硬件启动在开机上电或系统重启的时候对硬件进行初始化。硬件关闭将硬件设置为关机状态。硬件停用暂停使用这个硬件。硬件启用重新启用这个硬件。读操作从硬件中读取数据。写操作往硬件中写入数据。 嵌入式操作系统(EOSEmbeddedOperatingSystem)是指用于嵌入式系统的操作系统。嵌入式操作系统是一种用途广泛的系统软件通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。嵌入式操作系统负责嵌入式系统的全部软、硬件资源的分配、任务调度控制、协调并发活动。它必须体现其所在系统的特征能够通过装卸某些模块来达到系统所要求的功能。目前在嵌入式领域广泛使用的操作系统有嵌入式实时操作系统μC/OS-Ⅱ、嵌入式Linux、WindowsEmbedded、VxWorks等以及应用在智能手机和平板电脑的Android、iOS等。嵌入式操作系统的特点 系统内核小。由于嵌入式系统一般是应用于小型电子装置系统资源相对有限所以内核较之传统的操作系统要小得多。专用性强。嵌入式系统的个性化很强其中的软件系统和硬件的结合非常紧密一般要针对硬件进行系统的移植即使在同一品牌、同一系列的产品中也需要根据系统硬件的变化和增减不断进行修改。同时针对不同的任务往往需要对系统进行较大更改程序的编译下载要和系统相结合这种修改和通用软件的“升级”是完全两个概念。系统精简。嵌入式系统一般没有系统软件和应用软件的明显区分不要求其功能设计及实现上过于复杂这样一方面利于控制系统成本同时也利于实现系统安全。高实时性。高实时性的系统软件是嵌入式软件的基本要求而且软件要求固态存储以提高速度软件代码要求高质量和高可靠性。多任务的操作系统。嵌入式软件开发需要使用多任务的操作系统。嵌入式系统的应用程序可以没有操作系统直接在芯片上运行。但是为了合理地调度多任务、利用系统资源、系统函数以及和专用库函数接口用户必须自行选配操作系统开发平台这样才能保证程序执行的实时性、可靠性并减少开发时间保障软件质量。 嵌入式实时系统是一种完全嵌入受控器件内部为特定应用而设计的专用计算机系统。在嵌入式实时系统中要求系统在投入运行前即具有确定性和可预测性。 可预测性指系统在运行之前其功能、响应特性和执行结果是可预测的确定性指系统在给定的初始状态和输入条件下在确定的时间内给出确定的结果。 对嵌入式实时系统失效的判断不仅依赖其运行结果的数值是否正确也依赖提供结果是否及时。实时操作系统(RTOS)的特点当外界事件或数据产生时能够接受并以足够快的速度予以处理其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应并控制所有实时任务协调一致运行。及时响应和高可靠性是其主要特点实时操作系统有硬实时和软实时之分。 硬实时要求在规定的时间内必须完成操作这是在操作系统设计时保证的软实时则只要按照任务的优先级尽可能快地完成操作即可。 实时操作系统的特征 高精度计时系统计时精度是影响实时性的一个重要因素。在实时应用系统中经常需要精确确定实时地操作某个设备或执行某个任务或精确的计算一个时间函数。这些不仅依赖于一些硬件提供的时钟精度也依赖于实时操作系统实现的高精度计时功能。多级中断机制一个实时应用系统通常需要处理多种外部信息或事件但处理的紧迫程度有轻重缓急之分。有的必须立即作出反应有的则可以延后处理。因此需要建立多级中断嵌套处理机制以确保对紧迫程度较高的实时事件进行及时响应和处理。实时调度机制实时操作系统不仅要及时响应实时事件中断同时也要及时调度运行实时任务。但是处理机调度并不能随心所欲的进行因为涉及到两个进程之间的切换只能在确保“安全切换”的时间点上进行实时调度机制包括两个方面一是在调度策略和算法上保证优先调度实时任务二是建立更多“安全切换”时间点保证及时调度实时任务。因此实际上来看实时操作系统如同操作系统一样就是一个后台的支撑程序可以按照实时性的要求进行配置、裁剪等。其关注的重点在于任务完成的时间是否能够满足要求。 宿主机和目标机嵌入式软件开发不同于传统软件开发其所使用的开发环境、工具都有特殊性在嵌入式软件开发中一般使用宿主机和目标机的模式进行系统开发并且借助于开发工具进行目标开发。 宿主机指普通PC机中构建的开发环境一般需要配置交叉编译器借助于宿主机的环境使用交叉编译器进行目标编译代码生成同时借助仿真器或者是网络进行目标机的程序调式。目标机可以是嵌入式系统的实际运行环境也可以是能够替代实际运行环境的仿真系统。 嵌入式软件开发方式一般是在宿主机上建立开发环境完成编码和交叉编译工作然后在宿主机和目标机之间建立连接将目标程序下载到目标机中进行交叉调试和运行。交叉编译嵌入式软件开发所采用的编译为交叉编译。所谓交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。编译的最主要的工作就在将程序转化成运行该程序的CPU所能识别的机器代码由于不同的体系结构有不同的指令系统。因此不同的CPU需要有相应的编译器而交叉编译就如同翻译一样把相同的程序代码翻译成不同CPU的对应可执行二进制文件。由于一般通用计算机拥有非常丰富的系统资源、使用方便的集成开发环境和调试工具等而嵌入式系统的系统资源非常紧缺无法在其上运行相关的编译工具因此嵌入式系统的开发需要借助宿主机(通用计算机)来编译出目标机的可执行代码。交叉调试嵌入式软件经过编译和链接后即进入调试阶段调试是软件开发过程中必不可少的一个环节嵌入式软件开发过程中的交叉调试与通用软件开发过程中的调试方式有很大的差别。在常见软件开发中调试器与被调试的程序往往运行在同一台计算机上调试器是一个单独运行着的进程它通过操作系统提供的调试接口来控制被调试的进程。而在嵌入式软件开发中调试时采用的是在宿主机和目标机之间进行的交叉调试调试器仍然运行在宿主机的通用操作系统之上但被调试的进程却是运行在基于特定硬件平台的嵌入式操作系统中调试器和被调试进程通过串口或者网络进行通信调试器可以控制、访问被调试进程读取被调试进程的当前状态并能够改变被调试进程的运行状态。嵌入式软件的开发可以分为几个阶段编码、交叉编译、交叉调试。编辑器用于编写嵌入式源代码程序从理论上来说任何一个文本编辑器都可以用来编写源代码。各种集成开发环境会提供功能强大的编辑器如VS系列、eclipse、keil、CSS等。常见的独立编辑器UE、SourceInsight、vim等。编译器gcc编译阶段的工作是用交叉编译工具处理源代码生成可执行的目标文件在嵌入式系统中由于宿主机和目标机系统不一样需要使用交叉编译GNUC/C(gcc)是目前常用的一种交叉编译器支持非常多的宿主机/目标机组合。gcc是一个功能强大的工具集合包含了预处理器、编译器、汇编器、连接器等组件会在需要时去调用这些组件来完成编译任务。调试器gdb:在开发嵌入式软件时交叉调试是必不可少的一步。嵌入式软件调试特点 调试器运行在宿主机上被调试程序运行在目标机上。调试器通过某种通信方式与目标机建立联系如串口、并口、网络、JTAG等。在目标机上一般有调试器的某种代理能配合调试器一起完成对目标机上运行程序的调试可以是软件或支持调试的硬件。gdb是GNU开源组织发布的一个强大的程序调试工具。