《嵌入式系统概述(3)课件》由会员分享,可在线阅读,更多相关《嵌入式系统概述(3)课件(57页珍藏版)》请在金锄头文库上搜索。
1、嵌入式基础及接口技术嵌入式基础及接口技术祝裕璞系统结构教研室前言(1)课程设置的课程设置的必要性必要性应用需求日趋复杂应用需求日趋复杂微处理器技术长足发展微处理器技术长足发展嵌入式软件技术成为核心嵌入式软件技术成为核心课程涉及的课程涉及的主要内容主要内容阐述嵌入式系统的要素阐述嵌入式系统的要素介绍嵌入式系统软硬件设计基础介绍嵌入式系统软硬件设计基础介绍嵌入式系统最新设计理念介绍嵌入式系统最新设计理念项目开发流程与自由实验项目开发流程与自由实验前言(2)课程设置的课程设置的预期目标预期目标使学生对嵌入式系统设计技术有比较全面的使学生对嵌入式系统设计技术有比较全面的了解,并具备一定的设计实践能力,
2、为深入了解,并具备一定的设计实践能力,为深入开展相关研究奠定良好的基础。开展相关研究奠定良好的基础。理解并掌握实时操作系统和实时软件开发技理解并掌握实时操作系统和实时软件开发技术术课程大纲嵌入式系统概述嵌入式系统概述嵌入式系统应用介绍嵌入式系统应用介绍嵌入式系统硬件系统概述嵌入式系统硬件系统概述嵌入式开发环境和开发工具嵌入式开发环境和开发工具嵌入式处理器结构与实现技术嵌入式处理器结构与实现技术嵌入式操作系统概述嵌入式操作系统概述嵌入式项目开发过程嵌入式项目开发过程基于基于Intel Xscal和和Motorola开发板的实验开发板的实验实验平台计算机系统的三大领域服务器服务器利润最大的市场利润
3、最大的市场可用性可用性可扩展性可扩展性有效带宽有效带宽桌面桌面最广阔的市场最广阔的市场嵌入式嵌入式潜力最大的市场潜力最大的市场1. 嵌入式系统介绍计算机系统计算机系统PCLaptopMainframeServer移动电脑移动电脑 (PDA)手机手机其它,其它,MP3 播放机,数码相机等。播放机,数码相机等。嵌入在电子设备内部的计算系统嵌入在电子设备内部的计算系统任何包含一个或多个专用的计算机、微处理器或微任何包含一个或多个专用的计算机、微处理器或微控制器的电子设备控制器的电子设备能执行特定功能的计算机硬件和软件的结合体能执行特定功能的计算机硬件和软件的结合体广义定义广义定义:任何一个非计算机的
4、计算系统任何一个非计算机的计算系统嵌入式系统的核心嵌入式系统的核心-嵌入式微处理器嵌入式微处理器实时多任务实时多任务存储区保护存储区保护可扩展的处理器结构可扩展的处理器结构功耗低功耗低1.1 计算机工业的分类以往计算机分类:以往计算机分类:大型计算机、中型机、小型机和微计算机大型计算机、中型机、小型机和微计算机目前计算机分类:目前计算机分类:超级计算机,大型计算机、工作站、微计算机、超级计算机,大型计算机、工作站、微计算机、亚微计算机亚微计算机亚微计算机亚微计算机(嵌入式计算机嵌入式计算机) 是以嵌入式系统的形式是以嵌入式系统的形式隐藏在各种装置、产品和系统中隐藏在各种装置、产品和系统中1.2
5、 嵌入式系统的定义英国电机工程师学会的定义英国电机工程师学会的定义: “嵌入式系统为控制、监视或辅助设备、机器或嵌入式系统为控制、监视或辅助设备、机器或甚至工厂操作的装置甚至工厂操作的装置”通常执行特定功能通常执行特定功能以微电脑和外围构成核心以微电脑和外围构成核心严格的时序和稳定性要求严格的时序和稳定性要求全自动操作循环全自动操作循环精确定义: 以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统 嵌入式系统是将先进的计算机技术、半导体技术和电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密
6、集、高度分散、不断创新的知识集成系统。 嵌入式系统的基本组成 嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成,它是集软硬件于一体的可独立工作的“器件”嵌入式系统的组成要素(4个)嵌入式处理器及其硬件平台嵌入式软件系统嵌入式操作系统(可选)-实时操作系统RTOSI/O接口系统以嵌入式处理器为核心的硬件平台嵌入式操作系统嵌入式应用软件系统应用系统的I/O接口典型嵌入式系统基本组成硬件典型嵌入式系统基本组成硬件典型嵌入式系统基本组成软件典型嵌入式系统基本组成软件5151单片机的初始化代码与单片机的初始化代码与PCPC机的机的BIOSBIOS(一)(一)各种各种处理器在
7、上电或复位处理器在上电或复位后都要从各自的后都要从各自的ROMROM中读取中读取一段代码一段代码来进行来进行系统自身的初始化系统自身的初始化,在嵌入式系统开发过程中,这,在嵌入式系统开发过程中,这段代码被称为段代码被称为Boot LoaderBoot Loader在在5151类单片机中这种代码相对简单。类单片机中这种代码相对简单。下面就是下面就是5151单片机的初始化代码。单片机的初始化代码。ORGORG 0000H 0000HLJMPLJMPMAINMAINORG 0023HORG 0023HLJMP SETINTLJMP SETINTMAIN: CLRMAIN: CLREAEA-SETIN
8、T:SETINT:- 5151单片机的初始化代码与单片机的初始化代码与PCPC机的机的BIOSBIOS(二)(二) 在我们所熟知的在我们所熟知的X86X86的的PCPC体系结构中,体系结构中,PC PC 机的引机的引导加载程序由导加载程序由 BIOS BIOS来完成的,所说的来完成的,所说的BIOSBIOS就是一种存就是一种存贮在一片贮在一片EEPROMEEPROM中的一段中的一段配置代码程序配置代码程序,主要完成,主要完成PCPC机外设的硬件检测和系统资源的分配机外设的硬件检测和系统资源的分配,然后将,然后将硬盘中硬盘中MBRMBR主分区中操作系统启动程序读取到主分区中操作系统启动程序读取到
9、RAMRAM中中,并将控,并将控制权交给操作系统的启动程序,从而启动操作系统。制权交给操作系统的启动程序,从而启动操作系统。 由此可见由此可见5151单片机系统的初始化是靠数行单片机系统的初始化是靠数行汇编语汇编语句句来完成,而来完成,而PCPC机的初始化机的初始化是靠存贮在固定芯片中的是靠存贮在固定芯片中的BIOSBIOS程序代码程序代码来实现来实现。5151单片机的初始化代码与单片机的初始化代码与PCPC机的机的BIOSBIOS(三)(三)接下我们研究一下接下我们研究一下PCPC的启动,的启动,PCPC的启动流程如下图示的启动流程如下图示 5151单片机的初始化代码与单片机的初始化代码与P
10、CPC机的机的BIOSBIOS(四)(四)从现象来看,从现象来看,PCPC的的BIOSBIOS更象是一种更象是一种BootBoot程序,当程序,当BootBoot将控制权将控制权交给操作系统启动程序后,我们在交给操作系统启动程序后,我们在PCPC的键盘按下的键盘按下F5F5或或F8F8后,后,会看到系统提示我们是否正常启动还是进行到安全模式,如会看到系统提示我们是否正常启动还是进行到安全模式,如果我们安装有双操作系统,比如果我们安装有双操作系统,比如XPXP和和LinuxLinux共同安装在同一台共同安装在同一台PCPC上,那可能就会提示,进入到那个操作系统,这种带有交上,那可能就会提示,进入
11、到那个操作系统,这种带有交互功能的互功能的BootBoot启动程序就可以定义为成是启动程序就可以定义为成是Boot LoaderBoot Loader了,这了,这个个Boot LoaderBoot Loader就存于主引导分区中,只是就存于主引导分区中,只是Boot LoaderBoot Loader体现体现的相对较弱。的相对较弱。因此在因此在PCPC系统中系统中BootBoot和和Boot LoaderBoot Loader共存于同一系统中,只是分共存于同一系统中,只是分属和位置不同而已。属和位置不同而已。PCPC的的Boot LoaderBoot Loader与操作系统密切相关与操作系统密
12、切相关,并侧重于与系统的并侧重于与系统的交互装载引导交互装载引导功能功能,而,而BootBoot更侧重于引导更侧重于引导功能功能,在非,在非PCPC架构下的应用系统中,当架构下的应用系统中,当BootBoot将控制权交给操将控制权交给操作系统后,就无法再干预操作系统启动了,这也就是作系统后,就无法再干预操作系统启动了,这也就是BootBoot与与Boot LoaderBoot Loader的主要区别。的主要区别。嵌入式系统嵌入式系统Boot Loader Boot Loader 的概念的概念 简单地说,简单地说,Boot Loader Boot Loader 就是在嵌入式操作系统就是在嵌入式操
13、作系统内核运行之前运行的一段小程序。通过这段小程序,内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化我们可以初始化硬件设备、建立内存空间的映射图,硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态从而将系统的软硬件环境带到一个合适的状态,以便,以便为最终调用操作系统内核准备好正确的环境。为最终调用操作系统内核准备好正确的环境。通常,通常,Boot Loader Boot Loader 是是严重地依赖于硬件严重地依赖于硬件而实现而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的立一个通用的 Boot L
14、oader Boot Loader 几乎是不可能的。尽管如几乎是不可能的。尽管如此,我们仍然可以对此,我们仍然可以对 Boot Loader Boot Loader 归纳出一些通用处归纳出一些通用处理方法,以指导特定的理方法,以指导特定的 Boot Loader Boot Loader 设计与实现。设计与实现。BootBoot与与Boot Loader Boot Loader 区别区别BootBoot是与是与CPUCPU最小核心系统最小核心系统(SDRAMSDRAM和和FLASHFLASH)密切相关密切相关的,的,其功能上应该分为两种,一种是其功能上应该分为两种,一种是主要负责最小核心系统的配
15、置主要负责最小核心系统的配置,并把并把Boot LoaderBoot Loader或操作系统从固态存储器复制到内存中,并将或操作系统从固态存储器复制到内存中,并将控制权交给控制权交给Boot LoaderBoot Loader。而另一种就是较为复杂的。而另一种就是较为复杂的BootBoot,要,要全全面配置适应操作系统的环境面配置适应操作系统的环境,然后把控制权直接交给操作系统,然后把控制权直接交给操作系统,相当于相当于Boot LoaderBoot Loader功能的载减。功能的载减。Boot LoaderBoot Loader可以说是首先可以说是首先含有含有BootBoot功能,但属于功能
16、,但属于功能简单功能简单型型,同时增加的交互功能和为适应操作系统启动的进一步配置功,同时增加的交互功能和为适应操作系统启动的进一步配置功能,其与嵌入式操作系统有直接的关系,一些网络设备的启动都能,其与嵌入式操作系统有直接的关系,一些网络设备的启动都要在要在Boot LoaderBoot Loader下才能完成。下才能完成。BootBoot侧重于引导,侧重于引导,Boot LoaderBoot Loader侧重于引导和交互侧重于引导和交互,很多情,很多情况下况下Boot LoaderBoot Loader就完全完全当做就完全完全当做BootBoot使用,但使用,但BootBoot一定不具有一定不
17、具有Boot LoaderBoot Loader的功能的功能Boot Loader Boot Loader 几个关键点几个关键点( (一一) ) 1. Boot Loader 1. Boot Loader 与与最小核心系统硬件平台最小核心系统硬件平台的关系的关系 每种不同的每种不同的 CPU CPU 体系结构都有不同的体系结构都有不同的 Boot Loader Boot Loader。有。有些些 Boot Loader Boot Loader 也支持多种体系结构的也支持多种体系结构的 CPU CPU,比如,比如 U-Boot U-Boot 就同时支持就同时支持 ARM ARM 体系结构和体系结
18、构和MIPS MIPS 体系结构。除了依赖于体系结构。除了依赖于 CPU CPU 的体系结构外,的体系结构外,Boot Loader Boot Loader 实际上也依赖于具体的嵌入式板实际上也依赖于具体的嵌入式板级设备的配置。这也就是说,对于两块不同的嵌入式板而言,级设备的配置。这也就是说,对于两块不同的嵌入式板而言,即使它们是基于同一种即使它们是基于同一种 CPU CPU 而构建的,要想让运行在一块板而构建的,要想让运行在一块板子上的子上的 Boot Loader Boot Loader 程序也能运行在另一块板子上,通常也程序也能运行在另一块板子上,通常也都需要修改都需要修改 Boot L
19、oader Boot Loader 的源程序。的源程序。 例如:我们把核心系统板上的内存加大一倍,那相应的例如:我们把核心系统板上的内存加大一倍,那相应的Boot Boot LoaderLoader就要重新改动。就要重新改动。Boot Loader Boot Loader 几个关键点几个关键点( (二二) )2. Boot Loader 2. Boot Loader 在核心系统内存中的位置在核心系统内存中的位置系统加电或复位后系统加电或复位后,所有的,所有的 CPU CPU 通常都从某个由通常都从某个由 CPU CPU 制造商制造商预先安排的地预先安排的地址上取指令址上取指令。比如,基于。比如
20、,基于 ARM7TDMI ARM7TDMI的的 S3C44B0 S3C44B0在复位完成后,片选在复位完成后,片选CS0CS0有效,开始从地址有效,开始从地址 0x00000000 0x00000000 所连接的存储器中取它的第一条指令。所连接的存储器中取它的第一条指令。这样这样CPU CPU 就开始执行就开始执行 Boot Loader Boot Loader 程序。程序。 下图是一个同时装有下图是一个同时装有 Boot Loader Boot Loader、内核的启动参数、内核映像和根文件系、内核的启动参数、内核映像和根文件系统映像的固态存储设备的典型空间分配结构图。统映像的固态存储设备的
21、典型空间分配结构图。Boot Loader Boot Loader 几个关键点几个关键点( (三三) )3. Boot Loader 3. Boot Loader 大多通过串口与主机交互信息大多通过串口与主机交互信息主机和目标机之间一般通过串口建立连接,主机和目标机之间一般通过串口建立连接,Boot Boot Loader Loader 软件在执行时通过串口输出打印信息给串口监控软件在执行时通过串口输出打印信息给串口监控设备,用户也可以通过串口发送设备,用户也可以通过串口发送BootLoaderBootLoader能接受的控制能接受的控制字符,从而实现信息交互。字符,从而实现信息交互。 重点介
22、绍:重点介绍:嵌入式微处理器嵌入式微处理器基本知识嵌入式微处理器的特点、分类嵌入式微处理器的特点、分类嵌入式系统软件嵌入式系统软件基本知识嵌入式操作系统嵌嵌 入入 式式 微微 处处 理理 器器 嵌入式系统的嵌入式系统的核心核心是是嵌入式微处理器嵌入式微处理器。嵌入式。嵌入式微处理器一般就具备以下微处理器一般就具备以下4个特点个特点: 对实时多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时内核的执行时间减少到最低限度。具有功能很强的存储区保护功能。这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同
23、时也有利于软件诊断。可扩展的处理器结构,以能最迅速地开展出满足应用的最高性能的嵌入式微处理器。嵌入式微处理器必须功耗很低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式系统更是如此,如需要功耗只有mW甚至W级。嵌入式微处理器的特点嵌入式微处理器的特点嵌入式微处理器的分类又称单片机 以某一种微处理器内核为核心,芯片内部集成ROM/EPROM、RAM、总线、总线逻辑、定时/计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A、Flash RAM、EEPROM等各种必要功能和外设微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高。微控制器的
24、片上外设资源一般比较丰富,适合于控制,因此称为微控制器。微控制器是目前嵌入式系统工业的主流。嵌入式微控制器(嵌入式微控制器(MCU)代表性的通用系列包括8051、P51XA、MCS-251、MCS-96/196/296、C166/167、MC68HC05/11/12/16、68300等。另外还有许多半通用系列如:支持USB接口的MCU 8XC930/931、C540、C541;支持I2C、CAN-Bus、LCD及众多专用MCU和兼容系列。DSP处理器是专门用于信号处理方面的处理器,处理器是专门用于信号处理方面的处理器,它在系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指
25、令执行速度也较高。在数字滤波、FFT、谱线分析等方面DSP算法正在大量进入嵌入式领域,DSP应用正从在通用单片机中以普通指令实现DSP功能,过渡到采用嵌入式DSP处理器上。现在的DSP的运算速度进一步提高,应用领域也从上述范围扩大到了通信和计算机方面。目前最为广泛应用的嵌入式DSP处理器是TI的TMS320C2000/C5000系列,另外如Intel的MCS-296和Siemens的TriCore也有各自的应用范围。嵌入式嵌入式DSP处理器处理器 嵌入式微处理器( MPU ),典型代表就是ARM处理器,它是由通用计算机中的CPU演变而来的,与计算机处理器不同的是,在实际嵌入式应用中,只保留和嵌
26、入式应用紧密相关的功能硬件,去除其他的冗余功能部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求。 嵌入式微处理器(嵌入式微处理器( MPU ) 和工业控制计算机相比,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。目前主要的嵌入式处理器类型有Am186/88、386EX、SC-400、Power PC、68000、MIPS、ARM/StrongARM系列等。其中基于ARM技术的32位微处理器,市场的占有率目前已达到80%。在所有ARM处理器系列中,ARM7处理器系列应用最广,采用ARM7处理器作为内核生产芯片的公司最多。SoC,就是System on Chip在一个硅片上实现一
27、个复杂的系统 整个嵌入式系统大部分均可集成到一块或几块芯片中去应用系统电路板将变得很简洁 嵌入式片上系统嵌入式片上系统(SOC)SOC可以分为通用和专用两类:通用系列包括Infineon(Siemens)的TriCore,Motorola的M-Core,某些ARM系列器件,Echelon和Motorola联合研制的Neuron芯片等。专用SOC一般专用于某个或某类系统中。有代表性的产品是Philips的Smart XA重点介绍:重点介绍:嵌入式微处理器嵌入式微处理器基本知识微处理器的特点、分类微处理器的特点、分类嵌入式系统软件嵌入式系统软件操作系统的基本概念以及分类嵌入式实时操作系统操作系统的
28、基本概念OS是一段嵌入在目标代码中的软件,用户的其它应用程序都建立在OS之上。OS将CPU时间、中断、I/O、定时器等资源都包装起来,留给用户一个标准的API,并根据各个任务的优先级,合理地在不同任务之间分配CPU时间。操作系统的分类(1)顺序执行系统:系统内只含有一个程序,独占CPU的运行时间,按语句顺序执行该程序,直至执行完毕,另一程序才能启动运行。如DOS操作系统。(2)分时操作系统:系统内同时可以有多个程序运行,把CPU的时间分按顺序分成若干片,每个时间片内执行不同的程序。如UNIX(3)实时操作系统:系统内有多个程序运行,每个程序有不同的优先级,只有最高优先级的任务才能占有CPU的控
29、制权。按实时性分类:具有强实时特点的嵌入式操作系统具有弱实特点的嵌入式操作系统没有实时特点的嵌入式操作系统1.强实时系统,其系统响应时间在毫秒或微秒级(数控机床);2.一般实时系统,其系统响应时间在毫秒几秒的数量级上,其实时性的要求比强实时系统要差一些(电子菜谱的查询);3.弱实时系统,其系统响应时间约为数十秒或更长(工程机械控制器)。嵌入式操作系统由于通常具有实时性的要求,又称为实时操作系统RTOS(Real-Time Operating System)为什么使用RTOS?支持多任务简化应用软件的开发难度实时操作系统(RTOS)RTOS的基本特征:高效的任务管理快速灵活的任务间通信高度的可剪
30、裁性动态链接与部件增量加载快速有效的中断和异常事件处理优化的浮点支持动态内存管理系统时钟和定时器几种最常见的RTOS软实时RTOS 嵌入式Linux Win CE硬实时RTOS VxWorks OSE Nuclear著名的open RTOS uC/OS-II RTEMS自主知识产权的RTOS HOPEN Delta OS关于嵌入式操作系统的进一步的学习包括理论的学习以及嵌入式操作系统的移植都将在后面的课程中给予详细的讲解。3 嵌入式系统的发展趋势高集成度微处理器微控制器系统芯片 (SOC)软硬件协同设计成熟的设计流程4 嵌入式软件技术发展现状与趋势 4.1近十年来,嵌入式操作系统发展飞速, 支
31、持处理器不断丰富,功能不断增强。嵌入式操作系统支持微处理器:芯片从8位到16位、32位甚至64位。从支持单一品种的CPU芯片到支持多品种的。支持强大的核外功能,如文件系统,TCP/IP网络系统,窗口图形系统等。未来五年,嵌入式操作系统内核向微型化、高可靠可信、强实时、构件组件化发展;支撑开发环境向集成化、可调试化、支持模型驱动设计发展;支持无线通信和能源管理功能将日益重要4.2 行业性开放系统日趋流行;面向领域特制的嵌入式操作系统走向开放、标准规范化、平台化 行业嵌入式软件形成了不同行业的标准,例如中国手机软件联盟制定了手机API标准。统一的行业标准具有开放、设计技术共享、软硬件重用、构件兼容
32、、维护方便和合作生产的特点,是增强行业性产品竞争能力的有效手段,例如,欧共体汽车产业联盟规定以OSEK标准。 4.3自由开源的软件技术在嵌入式应用上尤其备受青睐,Linux渐成主流之一;以J2ME/JINI为代表的嵌入式技术将对嵌入式软件的发展产生深远影响。 4.4嵌入式软件的技术领域不断扩大并逐成体系相关技术包括,实时系统,仿真工具,编译技术等,形成包括嵌入式操作系统、数据库、中间平台软件在内的嵌入式软件体系。 4.5嵌入式软件与互联网、普适计算、SOC的结合趋势加剧,迅猛发展的SOC再次推进了嵌入式软件与硬件系统进一步融合嵌入,嵌入式软件是其的灵魂与核心。嵌入式IP构件库技术,正在造就一个
33、新兴的软件行业。互联网的“深度”联网,“动态自组”的传感器网络,推动嵌入式技术与互联网技术的“深层次”结合。对具有无所不在、自适应、游牧的、永恒的普适计算的嵌入式软件研究,将成为极为重要领域 目前的中国嵌入式软件竞争格局尚不稳定,产业链亟待完善,主要表现为产品市场化低、分工体系不尽明确、产业链较为松散、以及产业分布的失衡 1.嵌入式操作系统 SOC将成趋势 组件化和可配置程度进一步提高 无线应用将得到更充分的支持 嵌入式产品将与互联网应用相互促进,快速发展 开发可信实时的系统内核 Linux将成为开发嵌入式操作系统的重要支撑 面向应用、专用特制 2 嵌入式开发环境 开发工具的高度集成,功能完备,丰富的工具包和构件库。 可视化的界面友好的IDE环境 针对特定硬件、特定应用的优化方法 针对系统正确性、实时性和可靠性的评估和测定方法 提供面向行业应用的完整解决方案 3 嵌入式基础软件平台 嵌入式数据管理系统中间件技术