电子工程之嵌入式系统
文 | 传感器技术(WW_CGQJS)
随着我国传统产业结构升级的加速,人们对设备越来越高的应用需求已无法满足当前和未来高性能的应用与发展需求。同时,激烈的市场竞争和技术竞争,要求产品的开发周期越来越短,显然,嵌入式系统的软、硬件技术和开发手段,正日益受到重视,成为各领域技术创新的重要基础。
嵌入式系统
根据IEEE(国际电气和电子工程师协会)的定义,嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的装置”。
目前国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
与通用计算机系统的不同:嵌入式系统是不同于常见计算机系统的一种计算机系统,它不以独立设备的物理形态出现,嵌入式系统的部件根据主体设备及其应用的需要,嵌入在主体设备内部,发挥着运算、处理、存储及控制的作用,是“用于控制、监视或者辅助操作机器和设备的装置”。
可以这样认为,嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用程序4个部分组成。“嵌入性”、“专用性”与“计算机系统”是嵌入式系统的三个基本要素,对象系统则是指嵌入式系统所嵌入的宿主系统。
嵌入式系统的组成
嵌入式系统通常由包含有嵌入式处理器、嵌入式操作系统、应用软件和外围设备接口的嵌入式计算机系统和执行装置(被控对象)组成。嵌入式计算机系统是整个嵌入式系统的核心,可以分为硬件层、中间层、系统软件层和应用软件层。执行装置接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。
1.嵌入式计算机系统的硬件层
硬件层中包含嵌入式微处理器、存储器(SDRAM、ROM、Flash等)、通用设备接口和I/O接口(A/D、D/A、I/O等)。硬件层通常是一个以嵌入式处理器为中心的,包含有电源电路、时钟电路和存储器电路的电路模块,其中操作系统和应用程序都固化在模块的ROM中。
1.1 嵌入式微处理器
嵌入式微处理器是嵌入式系统硬件层的核心,嵌入式微处理器将通用CPU中许多由板卡完成的任务集成到芯片内部,从而有利于系统设计趋于小型化、高效率和高可靠性。嵌入式微处理器大多工作在为特定用户群所专门设计的系统中。n嵌入式微处理器的体系结构可以采用冯·诺依曼体系结构或哈佛体系结构,指令系统可以选用精简指令系统(Reduced Instruction SetComputer,RISC)和复杂指令集系统CISC(Complex Instruction SetComputer, CISC)。
嵌入式微处理器有各种不同的体系,目前全世界嵌入式微处理器已经超过1000多种,体系结构有30多个系列,其中主流的体系有ARM、MIPS、PowerPC、X86等。即使在同一体系中,也可以具有不同的时钟频率、数据总线宽度、接口和外设。目前没有一种嵌入式微处理器可以主导市场,嵌入式微处理器的选择是根据具体的应用而决定的。
1.2 存储器
嵌入式系统的存储器包含Cache、主存储器和辅助存储器,用来存放和执行代码。
① Cache是一种位于主存储器和嵌入式微处理器内核之间的快速存储器阵列,存放的是最近一段时间微处理器使用最多的程序代码和数据。
Cache一般集成在嵌入式微处理器内,可分为数据Cache、指令Cache或混合Cache,Cache的存储容量大小依不同处理器而定。
② 主存储器用来存放系统和用户的程序及数据,是嵌入式微处理器能直接访问的存储器。主存储器包含有ROM和RAM,可以位于微处理器的内部或外部。常用的ROM类存储器有NOR Flash、EPROM和PROM等,RAM类存储器有SRAM、DRAM和SDRAM等,容量为256KB~1GB。
③ 辅助存储器通常指硬盘、NAND Flash、CF卡、MMC和SD卡等,用来存放大数据量的程序代码或信息,一般容量较大,但读取速度与主存相比要慢一些。
1.3 通用设备接口和I/O接口
嵌入式系统通常具有与外界交互所需要的通用设备接口,如GPIO、 A/D(模/数转换接口)、D/A(数/模转换接口)、RS-232接口(串行通信接口)、Ethernet(以太网接口)、USB(通用串行总线接口)、音频接口、VGA视频输出接口、I2C(现场总线)、SPI(串行外围设备接口)和IrDA(红外线接口)等。
2.中间层
中间层也称为硬件抽象层(Hardware Abstract Layer,HAL)或板级支持包(Board Support Package,BSP),位于硬件层和软件层之间,将系统上层软件与底层硬件分离开来。
BSP作为上层软件与硬件平台之间的接口,需要为操作系统提供操作和控制具体硬件的方法。不同的操作系统具有各自的软件层次结构,BSP需要为不同的操作系统提供特定的硬件接口形式。BSP使上层软件开发人员无需关心底层硬件的具体情况,根据BSP层提供的接口即可进行开发。
BSP是一个介于操作系统和底层硬件之间的软件层次,包括了系统中大部分与硬件联系紧密的软件模块。BSP一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置等功能。
2.1 嵌入式系统硬件初始化
系统初始化过程按照自底向上、从硬件到软件的次序依次可以分为片级初始化、板级初始化和系统级初始化3个主要环节。
① 片级初始化是一个纯硬件的初始化过程,包括设置嵌入式微处理器的核心寄存器和控制寄存器、嵌入式微处理器核心工作模式和嵌入式微处理器的局部总线模式等。
② 板级初始化是一个同时包含软硬件两部分在内的初始化过程,完成嵌入式微处理器以外的其他硬件设备的初始化,设置某些软件的数据结构和参数,为随后的系统级初始化和应用程序的运行建立硬件和软件环境。
③ 系统级初始化主要进行操作系统的初始化。BSP将对嵌入式微处理器的控制权转交给嵌入式操作系统,由操作系统完成余下的初始化操作。最后,操作系统创建应用程序环境,并将控制权交给应用程序的入口。
2.2 硬件相关的设备驱动程序
nnBSP中包含硬件相关的设备驱动程序,但是这些设备驱动程序通常不直接由BSP使用,而是在系统初始化过程中由BSP将他们与操作系统中通用的设备驱动程序关联起来,并在随后的应用中由通用的设备驱动程序调用,实现对硬件设备的操作。
3.系统软件层
系统软件层通常包含有嵌入式操作系统(Embedded Operating System,EOS) 、文件系统、网络系统及通用组件模块组成。
3.1 嵌入式操作系统
EOS除具备了一般操作系统最基本的任务调度、同步机制、中断处理、文件处理等功能外,还具有如下特点:
强实时性;
支持开放性和可伸缩性的体系结构,具有可裁减性;
提供统一的设备驱动接口;
支持TCP/IP协议及其他协议,提供TCP/UDP/IP/PPP协议支持及统一的MAC访问层接口,提供强大的网络功能;
嵌入式操作系统的用户接口通过系统的调用命令向用户程序提供服务;
嵌入式系统一旦开始运行就不需要用户过多的干预;
嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中;
具有良好的硬件适应性(可移植性)。
3.2 文件系统
嵌入式文件系统主要提供文件存储、检索和更新等功能。嵌入式文件系统通常支持FAT32、JFFS2、YAFFS等几种标准的文件系统,一些嵌入式文件系统还支持自定义的实时文件系统。
嵌入式文件系统以系统调用和命令方式提供文件的各种操作,如设置、修改对文件和目录的存取权限,提供建立、修改、改变和删除目录等服务,提供创建、打开、读写、关闭和撤销文件等服务。
4.应用软件层
应用软件层用来实现对被控对象的控制功能,由所开发的应用程序组成,面向被控对象和用户。
嵌入式实时操作系统
RTOS与通用计算机系统不同,要求系统中的任务不但执行结果要正确,而且必须在一定的时间约束(Deadline)内完成。在RTOS中,一个逻辑上正确的计算结果,若其产生的时间晚于某个规定的时间,那么也认为系统的行为是不正确的。
1.实时系统RTOS的定义
RTOS是指能够在指定或者确定的时间内完成系统功能和对外部或内部、同步或异步时间做出响应的系统,系统能够处理和存储控制系统所需要的大量数据。RTOS的正确性不仅依赖于系统计算的逻辑结果,还依赖于产生这个结果的时间。
2.RTOS的特点
2.1 约束性
RTOS任务的约束包括时间约束、资源约束、执行顺序约束和性能约束。
RTOS的任务具有时间约束性。时间约束性可分为“硬实时”和“软实时”。
资源约束是指多个实时任务共享有限的资源时,必须按照一定的资源访问控制协议进行同步,以避免死锁和高优先级任务被低优先级任务堵塞的时间(即优先级倒置时间)不可预测。
性能约束是指必须满足如可靠性、可用性、可预测性、服务质量(Quality of Service,QoS)等性能指标。
2.2 可预测性
可预测性是指RTOS完成实时任务所需要的执行时间应是可知的。
2.3 可靠性
大多数RTOS要求有较高的可靠性,要求系统在最坏情况下都能正常工作或避免损失。可靠性是RTOS的重要性能指标。
n(4)交互性n外部环境是RTOS不可缺少的一个组成部分,外部环境往往是被控子系统,两者相互作用构成完整的实时系统。
3.RTOS调度
给定一组实时任务和系统资源,确定每个任务何时何地执行的整个过程就是调度。而RTOS中调度的目的则是要尽可能地保证每个任务满足它们的时间约束,及时对外部请求做出响应。
4.RTOS分类
RTOS主要分为强实时(Hard Real-Time)系统和弱实时(Soft Real-Time)系统两类。强实时系统应用在航空航天、军事、核工业等领域中,弱实时系统如视频点播系统、信息采集与检索系统等。
嵌入式微处理器体系结构
1.冯·诺依曼体系结构与哈佛结构
1.1 冯·诺依曼(Von Neumann)结构
冯·诺依曼结构的计算机由CPU和存储器构成,其程序和数据共用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置;采用单一的地址及数据总线,程序指令和数据的宽度相同。程序计数器(PC)是CPU内部指示指令和数据的存储位置的寄存器。
CPU通过程序计数器提供的地址信息,对存储器进行寻址,找到所需要的指令或数据,然后对指令进行译码,最后执行指令规定的操作。处理器执行指令时,先从储存器中取出指令解码,再取操作数执行运算,即使单条指令也要耗费几个甚至几十个周期,在高速运算时,在传输通道上会出现瓶颈效应。
使用冯.诺依曼结构的CPU和微控制器有Intel公司的8086系列及其他CPU,ARM公司的ARM7、MIPS公司的MIPS处理器等。
1.2 哈佛(Harvard)结构
哈佛结构的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址、独立访问。系统中具有程序的数据总线与地址总线,数据的数据总线与地址总线。
这种分离的程序总线和数据总线可允许在一个机器周期内同时获取指令字(来自程序存储器)和操作数(来自数据存储器),从而提高执行速度,提高数据的吞吐率。又由于程序和数据存储器在两个分开的物理空间中,因此取指和执行能完全重叠,具有较高的执行效率。
目前使用哈佛结构的CPU和微控制器品种有很多,有摩托罗拉公司的MC68系列、Zilog公司的Z8系列、ATMEL公司的AVR系列和ARM公司的ARM9、ARM10和ARM11等。
2 . 精简指令集计算机
早期的计算机采用复杂指令集计算机(Complex Instruction Set Computer,CISC)体系。在CISC中,为了支持目标程序的优化,支持高级语言和编译程序,增加了许多复杂的指令,控制逻辑极不规整,给VLSI工艺造成很大困难。
精简指令集计算机(Reduced Instruction Set Computer,RISC)体系结构是在CISC的基础上产生并发展起来的,RISC的着眼点不是简单地放在简化指令系统上,而是通过简化指令系统使计算机的结构更加简单合理,从而提高运算效率。
采用Load/Store指令访问存储器,其余指令的操作都在寄存器之间进行;增加CPU中通用寄存器数量,算术逻辑运算指令的操作数都在通用寄存器中存取;大部分指令控制在一个或小于一个机器周期内完成;以硬布线控制逻辑为主,不用或少用微码控制;采用高级语言编程,重视编译优化工作,以减少程序执行时间。
3 . 流水线技术
流水线技术应用于计算机系统结构的各个方面, 是将一个重复的时序分解成若干个子过程,而每一个子过程都可有效地在其专用功能段上与其他子过程同时执行。实现子过程的功能所需时间尽可能相等。形成流水处理,需要一段准备时间。指令流发生不能顺序执行时,会使流水线过程中断,再形成流水线过程则需要时间。
4 . 信息存储的字节顺序
4.1 大端和小端存储法
对于一个多字节类型的数据,在存储器中有两种存放方法。n低字节数据存放在内存低地址处,高字节数据存放在内存高地址处,称为小端字节顺序存储法;
高字节数据存放在内存低地址处,低字节数据存放在内存高地址处,称为大端字节顺序存储法。
4.2 可移植性问题
当在不同存储顺序的微处理器间进行程序移植时,要特别注意存储模式的影响。把从软件得到的二进制数据写成一般的数据格式往往会涉及到存储顺序的问题。
4.3 通信中的存储顺序问题
在网络通信中,Internet协议(即IP协议)定义了标准的网络字节顺序。该字节顺序被用于所有设计使用在IP协议上的数据包、高级协议和文件格式上。n很多网络设备也存在存储顺序问题:即字节中的位采用大端法(最重要的位优先)或小端法(最不重要的位优先)发送。这取决于OSI模型最底层的数据链路层。
4.4 数据格式的存储顺序
嵌入式处理器的类型
1 . 嵌入式微控制器(MCU)
又称为单片机,芯片内部集成ROM、EPROM、RAM、总线、总线逻辑、定时/计数器、看门狗、I/O、串行口、脉宽调制输出(PWM)、A/D、D/A、Flash、EEPROM等各种必要功能和外设。
嵌入式微控制器具有单片化、体积小、功耗和成本低,可靠性高等特点,约占嵌入式系统市场份额的70%。
2 . 嵌入式微处理器(MPU)
由通用计算机中的CPU发展而来,嵌入式微处理器只保留和嵌入式应用紧密相关的功能硬件,去除其他的冗余功能部分,以最低的功耗和资源实现嵌入式应用的特殊要求。
3 . 嵌入式DSP
嵌入式DSP是专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊设计,具有很高的编译效率和指令执行速度。
4 . 嵌入式片上系统SoC
SoC,System onchip,或者 System on a chip。基本定义是:以知识产权核为设计基础,在单个芯片上集成处理器、存储器、各种接口等部件,组成一个部分完整的计算机系统,可以完成特定的应用功能。
目前,大多数32位的嵌入式处理器芯片都是SoC。嵌入式SoC是追求产品系统最大包容的集成器件。绝大多数系统构件都在一个系统芯片内部。
5 . 多核处理器
将两个或多个CPU核封装在一个芯片内部,可节省大量的晶体管和封装成本,同时还能显著提高处理器的性能。实现两个或多个内核协调工作.
嵌入式系统的发展史
1 . 以单芯片为核心的可编程控制器形式的系统。一般没有操作系统的支持,通过汇编语言直接控制。
二十世纪七十年代1971年11月,世界上第一片微处理器Intel4004,嵌入式应用发展最重要的里程碑。
2 . 以嵌入式CPU为基础,以简单操作系统为核心的嵌入式系统。
有简单操作系统的支持,但通用性较弱。
二十世纪八十年代,出现了单片机–Intel进一步完善了8048,在它的基础上研制成功了8051单片机–其后发展的DSP 产品更快地提升了嵌入式系统的技术水平。
1981年,第1个商业嵌入式实时内核(VTRX32),随后,出现了一些嵌入式操作系统。
3 . 以嵌入式操作系统为标志的嵌入式系统。
兼容性佳。
二十世纪九十年代至今。硬件方面,尤其是芯片方面的发展表现出三个特点:
软件方面, 嵌入式操作系统出现了进一步的分化,诞生了一些嵌入式操作系统家族。
跨平台的软件开发技术从通用计算机上延展到嵌入式设备上
4 . 以Internet为标志的嵌入式系统。
与Internet相结合。
嵌入式控制器的应用几乎无处不在:移动电话、家用电器、汽车……无不有它的踪影。嵌入控制器因其体积小、可靠性高、功能强、灵活方便等许多优点,其应用已深入到工业、农业、教育、国防、科研以及日常生活等各个领域,对各行各业的技术改造、产品更新换代、加速自动化化进程、提高生产率等方面起到了极其重要的推动作用。从上世纪90年代开始,嵌入式技术已全面展开,成为通信产品和消费类产品的共同发展方向,在通信领域、广播电视领等得到广泛应用。个人领域嵌入式产品主要是个人商用,作为个人移动的数据处理和通讯软件得到普及。嵌入式系统技术发展的空间是无比广。
延伸阅读:
点击上方蓝色文字链接阅读文章。