1、1嵌入式系统原理及应用嵌入式系统原理及应用第二讲第二讲 嵌入式系统的基础知识嵌入式系统的基础知识2本章提要本章提要嵌入式系统总体结构嵌入式系统总体结构嵌入式系统硬件基础嵌入式系统硬件基础嵌入式系统中断管理与系统启动嵌入式系统中断管理与系统启动嵌入式系统软件基础嵌入式系统软件基础3嵌入式系统组成嵌入式系统组成机械装置机械装置嵌入式嵌入式微处理微处理器器SDRAMROMI/OA/DD/A人机交互接口人机交互接口通用接口通用接口实时操作系统实时操作系统( ( RTOSRTOS ) )图形用户图形用户接口接口BSPBSP / / HAL HAL (板极支持包板极支持包/ /硬件抽象层硬件抽象层)任务管
2、理任务管理文件系统文件系统应用程序应用程序嵌入式计算机系统嵌入式计算机系统传感器传感器 1传感器传感器 2传感器传感器 N.驱动器驱动器 1驱动器驱动器 2驱动器驱动器 N.硬件层硬件层软件层软件层中间层中间层功能层功能层被控对象被控对象42.1 嵌入式系统的总体结构嵌入式系统的总体结构l目前所提及的嵌入式系统一般指嵌入式计算机系统,目前所提及的嵌入式系统一般指嵌入式计算机系统,主要包括:硬件层、中间层、系统软件层和应用层主要包括:硬件层、中间层、系统软件层和应用层4个部分。个部分。l嵌入式硬件主要包括提供嵌入式计算机正常运行的最嵌入式硬件主要包括提供嵌入式计算机正常运行的最小系统(如电源、系
3、统时钟、复位电路、存储器等)小系统(如电源、系统时钟、复位电路、存储器等)、通用、通用I/O口和一些外设及其它设备。嵌入式系统中口和一些外设及其它设备。嵌入式系统中间层又称嵌入式硬件抽象层,如硬件驱动程序、系统间层又称嵌入式硬件抽象层,如硬件驱动程序、系统启动软件等;嵌入式系统软件层为应用层提供系统服启动软件等;嵌入式系统软件层为应用层提供系统服务,如操作系统、文件系统、图形用户接口等;而应务,如操作系统、文件系统、图形用户接口等;而应用层主要是用户应用程序。用层主要是用户应用程序。 52.1.1 硬件层硬件层 嵌入式系统硬件通常指除被控对象之外的嵌入式嵌入式系统硬件通常指除被控对象之外的嵌入
4、式系统要完成其功能所具备的各种设备,由嵌入式处理系统要完成其功能所具备的各种设备,由嵌入式处理器、存储器系统、通用设备接口(器、存储器系统、通用设备接口(A/D、D/A、I/O等等)和一些扩展外设组成。)和一些扩展外设组成。l 嵌入式系统的硬件层是以嵌入式处理器为核心的嵌入式系统的硬件层是以嵌入式处理器为核心的l嵌入式系统外设是指为了实现系统功能而设计或提供的嵌入式系统外设是指为了实现系统功能而设计或提供的接口或设备接口或设备 62.1 嵌入式系统的总体结构嵌入式系统的总体结构2.1.2 中间层中间层 介于硬件层与系统软件层之间,将硬件的细节进行屏蔽,介于硬件层与系统软件层之间,将硬件的细节进
5、行屏蔽,便于操作系统调用,因此称为为中间层,也称硬件抽象层(便于操作系统调用,因此称为为中间层,也称硬件抽象层(Hardware Abstract Layer,HAL)或板级支持包()或板级支持包(Board Support Package)。具有硬件相关性和操作系统相关性特)。具有硬件相关性和操作系统相关性特点。点。7主要包括系统初始化和设备驱动程序主要包括系统初始化和设备驱动程序l系统初始化系统初始化(1)片级初始化:主要完成)片级初始化:主要完成CPU的初始化,包括设置的初始化,包括设置CPU的核的核心寄存器和控制寄存器,心寄存器和控制寄存器,CPU核心工作模式以及核心工作模式以及CPU
6、的局部总的局部总线模式等。线模式等。(2)板级初始化:完成)板级初始化:完成CPU以外的其它硬件设备的初始化。除以外的其它硬件设备的初始化。除此之外,还要设置某些软件的数据结构和参数,为随后的系统此之外,还要设置某些软件的数据结构和参数,为随后的系统级初始化和应用程序的运行建立硬件和软件环境。级初始化和应用程序的运行建立硬件和软件环境。(3)系统级初始化:这是一个以软件初始化为主的过程,主要)系统级初始化:这是一个以软件初始化为主的过程,主要是进行操作系统初始化。是进行操作系统初始化。8l硬件相关的设备驱动程序硬件相关的设备驱动程序 与初始化过程相反,硬件相关的设备驱动程序的初始与初始化过程相
7、反,硬件相关的设备驱动程序的初始化和使用通常是一个从高层到底层的过程。化和使用通常是一个从高层到底层的过程。 BSP不直接使用设备驱动程序通常不直接使用设备驱动程序通常 与操作系统中通用的设备驱动程序关联起来,在应用与操作系统中通用的设备驱动程序关联起来,在应用中由通用的设备驱动程序调用,实现对硬件设备的操作中由通用的设备驱动程序调用,实现对硬件设备的操作92.1.3 系统软件层系统软件层 系统软件由操作系统(系统软件由操作系统(OS)、文件系统()、文件系统(FS)、图)、图形用户接口(形用户接口(GUI)、网络系统()、网络系统(NM)及通用组件)及通用组件模块(如模块(如TCP/IP协议
8、包)等组成。协议包)等组成。1RTOS是嵌入式应用软件的基础和开发平台是嵌入式应用软件的基础和开发平台2FS是操作系统用于明确磁盘或分区上的文件的方法是操作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件的方法。和数据结构;即在磁盘上组织文件的方法。3GUI 是是 Graphical User Interface 的简称,即图形的简称,即图形用户接口,准确来说用户接口,准确来说 GUI 就是屏幕产品的视觉体验和就是屏幕产品的视觉体验和互动操作部分。互动操作部分。4TCP/IP协议包简称协议包简称Ip Pack,IP Pack是是TCP/IP网络网络协议软件,通常作为操作系统的
9、一个重要组成部分。协议软件,通常作为操作系统的一个重要组成部分。102.1.4 功能层功能层 功能层又基于系统软件开发的应用软件程序组成,功能层又基于系统软件开发的应用软件程序组成,用来完成对被控对象的控制功能。直接与最终用户交用来完成对被控对象的控制功能。直接与最终用户交互,决定整个产品的成败,是嵌入式软件的核心部分互,决定整个产品的成败,是嵌入式软件的核心部分,根据用户需求定做的。,根据用户需求定做的。11本章提要本章提要嵌入式系统总体结构嵌入式系统总体结构嵌入式系统硬件基础嵌入式系统硬件基础嵌入式系统软件基础嵌入式系统软件基础嵌入式系统中断管理与系统启动嵌入式系统中断管理与系统启动12主
10、要从处理器和存储器进行介绍主要从处理器和存储器进行介绍l冯冯诺依曼体系结构和哈佛体系结构诺依曼体系结构和哈佛体系结构lCISCCISC与与RISCRISCl影响影响CPUCPU性能的因素性能的因素l存储器系统存储器系统2.2 嵌入式系统硬件基础嵌入式系统硬件基础13典型嵌入式系统基本组成硬件典型嵌入式系统基本组成硬件MPUMPU微处理器微处理器电源电源模块模块时钟时钟复位复位FlashFlashRAMRAMROMROMUSBUSBLCDLCDKeyboardKeyboard外围电路外围电路OtherOther外设外设141. 微处理器结构微处理器结构 处理器处理器控制单元控制单元指令寄存器指令
11、寄存器IR程序计数器程序计数器PC控制器控制器 存储器存储器I/O控制控制/状态状态程序存储器程序存储器数据存储器数据存储器数据通道数据通道数字逻辑单元数字逻辑单元寄存器寄存器R0R1数据通道数据通道数字逻辑单元数字逻辑单元寄存器寄存器R0Rn。典型的微处理器由控制单元、程序计数器(典型的微处理器由控制单元、程序计数器(PC)、)、指令寄存器(指令寄存器(IR)、数据通道、存储器等组成)、数据通道、存储器等组成 15指令执行过程一般分为:指令执行过程一般分为:l取指取指从存储器中获得下一条执行的指令读入指令寄存器从存储器中获得下一条执行的指令读入指令寄存器PC: 程序计数器程序计数器, 总是指
12、向下一条将要执行的指令总是指向下一条将要执行的指令IR: 指令寄存器,用于保持已取得指令指令寄存器,用于保持已取得指令l译码译码 解释指令,决定指令的执行意义解释指令,决定指令的执行意义l执行执行从存储器向数据通道寄存器移动数据从存储器向数据通道寄存器移动数据通过算术逻辑单元通过算术逻辑单元ALU进行数据操作进行数据操作l存储存储 从寄存器向存储器写数据从寄存器向存储器写数据2. 处理器指令执行过程处理器指令执行过程16(1)取指)取指l处理器从程序存储器中取出指令处理器从程序存储器中取出指令 处理器处理器控制单元控制单元IRload R0, M500 PC100控制器控制器 存储器存储器I/
13、O控制控制/状态状态load R0, M500100inc R1, R0101store M501, R110210.500501数据通道数据通道数字逻辑单元数字逻辑单元寄存器寄存器R0R117(2)译码)译码l解释指令,决定指令的执行意义解释指令,决定指令的执行意义 存储器存储器 处理器处理器控制单元控制单元IRload R0, M500 PC100控制器控制器I/O控制控制/状态状态load R0, M500100inc R1, R0101store M501, R110210.500501数据通道数据通道数字逻辑单元数字逻辑单元寄存器寄存器R0R118执行执行l从存储器向数据通道寄存器移
14、动数据从存储器向数据通道寄存器移动数据 处理器处理器控制单元控制单元IRload R0, M500 PC100控制器控制器 存储器存储器I/O控制控制/状态状态load R0, M500100inc R1, R0101store M501, R110210.500501数据通道数据通道数字逻辑单元数字逻辑单元寄存器寄存器R0R119存储存储l将指令执行结构保存到存储器中将指令执行结构保存到存储器中 处理器处理器控制单元控制单元IRload R0, M500 PC100控制器控制器 存储器存储器I/O控制控制/状态状态load R0, M500100inc R1, R0101store M501
15、, R110210.500501数据通道数据通道数字逻辑单元数字逻辑单元寄存器寄存器R0R120l在一些微处理器上,如在一些微处理器上,如ARM系列处理器、系列处理器、DSP等,等,指令实现流水线作业,指令过程按流水线的数目来指令实现流水线作业,指令过程按流水线的数目来进行划分。如进行划分。如5级流水线的处理器将指令分级流水线的处理器将指令分5个阶段个阶段执行。执行。 213.3.微处理器的结构体系微处理器的结构体系 指令寄存器指令寄存器控制器控制器数据通道数据通道输输入入输输出出中央处理器中央处理器存储器存储器程序程序指令指令0 0指令指令1 1指令指令2 2指令指令3 3指令指令4 4数据
16、数据数据数据0 0数据数据1 1数据数据2 2地址地址/数据数据冯冯诺依曼体系结构模型诺依曼体系结构模型(1)按存储结构分:冯)按存储结构分:冯诺依曼体系结构和哈佛体系结构诺依曼体系结构和哈佛体系结构 冯冯诺伊曼结构也称普诺伊曼结构也称普林斯顿结构,是一种将程林斯顿结构,是一种将程序指令存储器和数据存储序指令存储器和数据存储器合并在一起的存储器结器合并在一起的存储器结构。处理器,经由同一个构。处理器,经由同一个总线传输来访问程序和数总线传输来访问程序和数据存储器,程序指令和数据存储器,程序指令和数据的宽度相同。据的宽度相同。 如如X86X86系列、系列、ARM7ARM7等等 223.3.微处理
17、器的结构体系微处理器的结构体系指令寄存指令寄存器器控制器控制器数据数据通道通道输输入入输输出出中央处中央处理器理器程序存程序存储器储器指令指令0指令指令1指令指令2数据存储数据存储器器数据数据0数据数据1数据数据2地地址址指指令令地地址址数数据据哈佛体系结构哈佛体系结构 哈佛结构是一种将程哈佛结构是一种将程序指令存储和数据存储分序指令存储和数据存储分开的存储器结构,目的是开的存储器结构,目的是为了减轻程序运行时的访为了减轻程序运行时的访存瓶颈。哈佛结构的微处存瓶颈。哈佛结构的微处理器通常具有较高的执行理器通常具有较高的执行效率。效率。 如如ARM9ARM9、TITI的的DSPDSP等等 233
18、.3.微处理器的结构体系微处理器的结构体系按指令类型可分为:复杂指令集(按指令类型可分为:复杂指令集(CISC)处理器和精简)处理器和精简指令集(指令集(RISC)处理器)处理器 CISCCISC:复杂指令集(:复杂指令集(Complex Instruction Set ComputerComplex Instruction Set Computer)l具有大量的指令和寻址方式,那么就需要更多的解释器。具有大量的指令和寻址方式,那么就需要更多的解释器。l8/28/2原则:原则:80%80%的程序只使用的程序只使用20%20%的指令的指令l大多数程序只使用少量的指令就能够运行。大多数程序只使用少
19、量的指令就能够运行。CISCCISC具有如下显著特点:具有如下显著特点:(1)(1) 指令格式不固定,指令长度不一致,操作数可多可少;指令格式不固定,指令长度不一致,操作数可多可少;(2)(2) 寻址方式复杂多样,以利于程序的编写;寻址方式复杂多样,以利于程序的编写;(3)(3) 采用微程序结构,执行每条指令均需完成一个微指令序列;采用微程序结构,执行每条指令均需完成一个微指令序列;(4)(4) 每条指令需要若干个机器周期才能完成,指令越复杂,花费每条指令需要若干个机器周期才能完成,指令越复杂,花费的机器周期越多的机器周期越多。24lRISC:精简指令集(:精简指令集(Reduced Inst
20、ruction Set Computer)l指令数目少,在通道中只包含最有用的指令指令数目少,在通道中只包含最有用的指令l执行时间短,确保数据通道快速执行每一条指令执行时间短,确保数据通道快速执行每一条指令l使使CPU硬件结构设计变得更为简单硬件结构设计变得更为简单l每条指令都采用标准字长每条指令都采用标准字长25CISC与与RISC的区别的区别 l从硬件角度来看从硬件角度来看CISC处理的是不等长指令集,它必处理的是不等长指令集,它必须对不等长指令进行分割,因此在执行单一指令的时须对不等长指令进行分割,因此在执行单一指令的时候需要进行较多的处理工作。而候需要进行较多的处理工作。而RISC执行
21、的是等长执行的是等长精简指令集,精简指令集,CPU在执行指令的时候速度较快且性能在执行指令的时候速度较快且性能稳定。稳定。 l从软件角度来看,大型操作系统较适合运行在支持从软件角度来看,大型操作系统较适合运行在支持CISC的处理器上。是我们所熟识的的处理器上。是我们所熟识的DOS、Windows操作系统。而实时操作系统大多运行在支持操作系统。而实时操作系统大多运行在支持RISC的的处理器上。处理器上。 264 提高提高CPU性能的方法性能的方法 影响影响CPU性能的因素:流水线、超标量、缓存和总性能的因素:流水线、超标量、缓存和总线。对于任何处理器来说,要提高其效率,在设计上线。对于任何处理器
22、来说,要提高其效率,在设计上都是要减少数据的等待时间,并且努力减少处理单元都是要减少数据的等待时间,并且努力减少处理单元的空闲时间。的空闲时间。27(1 1)流水线技术)流水线技术流水线技术:也就是将一个任务分解成为多个连续的流水线技术:也就是将一个任务分解成为多个连续的子任务,在处理前一个子任务的同时就开始准备下一子任务,在处理前一个子任务的同时就开始准备下一个子任务的数据并进行子处理器单元的初始化。个子任务的数据并进行子处理器单元的初始化。译码译码取指取指执行执行addadd译码译码取指取指执行执行subsub译码译码取指取指执行执行cmpcmp时间时间AddAddSubSubCmpCmp
23、28(2) 超标量执行超标量执行超标量执行:超标量执行:就是在处理器内部设置多个平行的处理就是在处理器内部设置多个平行的处理单元,将多个相互无关的任务在这些处理部件中分别单元,将多个相互无关的任务在这些处理部件中分别进行独立处理。进行独立处理。执行执行1预取预取指令指令CACHE译码译码2译码译码1执行执行2执行执行1预取预取译码译码2译码译码1执行执行2流水流水线线1流水流水线线2数据数据29(3) 高速缓存(高速缓存(CACHE)1 1、为什么采用高速缓存、为什么采用高速缓存 微处理器的时钟频率比内存速度提高快得多,高微处理器的时钟频率比内存速度提高快得多,高速缓存可以提高内存的平均性能。
24、速缓存可以提高内存的平均性能。2 2、高速缓存的工作原理、高速缓存的工作原理 高速缓存是一种小型、快速的存储器,它保存部高速缓存是一种小型、快速的存储器,它保存部分主存内容的拷贝。分主存内容的拷贝。 CPU高高速速缓缓存存控控制制器器CACHE主存主存数据数据数据数据地址地址30l通常用静态通常用静态RAMRAM来设计来设计l因此,速度快但比较贵因此,速度快但比较贵l通常和处理器同在一个芯片上通常和处理器同在一个芯片上l高速缓存的操作方式高速缓存的操作方式: :l要求对主存储器进行访问要求对主存储器进行访问 ( (读或写读或写) )l首先,检查高速缓存是否有相应的拷贝首先,检查高速缓存是否有相
25、应的拷贝l如果有,称为高速缓存命中如果有,称为高速缓存命中拷贝在缓存中,可拷贝在缓存中,可以快速访问以快速访问l如果没有,称为高速缓存失误如果没有,称为高速缓存失误拷贝没在缓存中拷贝没在缓存中,需要将该地址及其相邻的多个地址的数据读入高,需要将该地址及其相邻的多个地址的数据读入高速缓存速缓存31(4) 高速总线和总线桥高速总线和总线桥CPU低速设备低速设备桥桥数据数据高速总线高速总线存储器存储器高速设备高速设备低速设备低速设备低速总线低速总线325. 处理器信息存储的字节顺序处理器信息存储的字节顺序处理器信息存储的字节顺序主要分为大端存储法和处理器信息存储的字节顺序主要分为大端存储法和小端存储
26、法小端存储法 l大端模式大端模式u字数据的高位字节存储在低地址中字数据的高位字节存储在低地址中u字数据的低字节则存放在高地址中字数据的低字节则存放在高地址中u举例:举例:双字节数双字节数0 x1234以以big-endian的方式存在起始地址的方式存在起始地址0 x00002000中:中: | data |- address | 0 x12 |- 0 x00002000 | 0 x34 |- 0 x000020013124 2316 158 70 字地址字地址89101184567401230 低地址低地址 高地址高地址33l小端模式小端模式u低地址中存放字数据的低字节低地址中存放字数据的低字
27、节u高地址中存放字数据的高字节高地址中存放字数据的高字节l举例,双字节数举例,双字节数0 x12340 x1234以以little-endianlittle-endian的方式存在起始地的方式存在起始地址址0 x000020000 x00002000中:中:| data |- address| data |- address| 0 x34 |- 0 x00002000| 0 x34 |- 0 x00002000| 0 x12 |- 0 x00002001| 0 x12 |- 0 x000020013124 2316 158 70字地址字地址11109887654432100 低地址低地址 高地
28、址高地址342.2.2 存储器系统存储器系统1存储器的分类存储器的分类l按存储介质分类按存储介质分类半导体存储器、磁表面存储器、光表面存储器半导体存储器、磁表面存储器、光表面存储器l按存储器的读写功能分类按存储器的读写功能分类只读存储器(只读存储器(ROM)、随机存储器)、随机存储器(RAM)l按在微机系统中的作用分类按在微机系统中的作用分类主存储器、辅助存储器、高速缓冲存储器主存储器、辅助存储器、高速缓冲存储器35CPU内部寄存器内部寄存器高速缓存高速缓存片外高速存储器片外高速存储器(SRAM、SDRAM、DRAM)主存储器主存储器(FLASH、EEPROM、硬磁盘)、硬磁盘)外部存储器外部
29、存储器(磁盘、光盘、磁盘、光盘、CF卡、卡、SD卡卡)远程二级存储器远程二级存储器(分布式文件系统、分布式文件系统、WEB服务器服务器)2. 存储器系统的层次结构存储器系统的层次结构36为了解决为了解决CPU与主存储器速度差所采取的措施有:与主存储器速度差所采取的措施有:(1)CPU内部设置多个通用寄存器内部设置多个通用寄存器(2)采用多存储模块交叉存取)采用多存储模块交叉存取(3)采用高速缓冲存储器()采用高速缓冲存储器(Cache)37半导体存储器半导体存储器 半导体存储器主要包括随机存储器半导体存储器主要包括随机存储器RAM和只读存和只读存储器两类储器两类ROM38RAMRAM:随机存取
30、存储器,:随机存取存储器, SRAMSRAM:静态随机存储器,:静态随机存储器, DRAMDRAM:动态随机存储器:动态随机存储器 1 1)SRAMSRAM比比DRAMDRAM快快 2 2)SRAMSRAM比比DRAMDRAM耗电多耗电多 3 3)DRAMDRAM存储密度比存储密度比SRAMSRAM高得多高得多 4 4)DRAMDRAM需要周期性刷新需要周期性刷新ROMROM:只读存储器:只读存储器FLASHFLASH:闪存:闪存39(1 1)随机存储器)随机存储器RAMRAMl静态静态RAMRAMSRAM: Static RAMSRAM: Static RAMl存储单元用触发器来存储数据位存
31、储单元用触发器来存储数据位l要求要求6 6个晶体管个晶体管l需要电源保持数据需要电源保持数据l动态动态RAMRAMDRAM: Dynamic RAMDRAM: Dynamic RAMl存储单元用存储单元用MOSMOS晶体管来存储数据晶体管来存储数据位比位比SRAMSRAM更紧凑更紧凑l由于电容的泄漏,需要更新来保由于电容的泄漏,需要更新来保持数据持数据l典型的刷新频率是典型的刷新频率是15.625 us.15.625 us.l比比SRAMSRAM访问更慢访问更慢存储器内部结构存储器内部结构DataWDataSRAM刷刷 新新放放 大大 器器数数 据据 输输 入入 /输输 入入 线线C行行 选选
32、 择择 信信 号号列列 选选 择择 信信 号号T 40(2 2)只读存储器)只读存储器ROMROMEPROM: EPROM: 可擦除的可编程可擦除的可编程ROMROM 可编程部分是一个可编程部分是一个MOSMOS晶体管晶体管l晶体管有一个绝缘体包围的晶体管有一个绝缘体包围的“浮栅浮栅”l(a)(a)负电荷在源极和漏极之间负电荷在源极和漏极之间形成一个隧道形成一个隧道l(b) (b) 较大的正电压在栅极使负较大的正电压在栅极使负电荷移出隧道进入栅极形成逻电荷移出隧道进入栅极形成逻辑辑0 0l(c) (c) 擦除擦除紫外线在栅极表紫外线在栅极表面的照射使负电荷从栅极回到面的照射使负电荷从栅极回到隧
33、道保持逻辑隧道保持逻辑1 1l(d) EPROM(d) EPROM有一个有一个紫外线紫外线可以可以通过的石英窗通过的石英窗(d)(a)(b)源极源极漏极漏极+15V 源极源极 漏极漏极0V(c)源极源极漏极漏极浮栅浮栅5-30 min41EEPROM:EEPROM:电擦除的可编程电擦除的可编程ROMROMl电可编程和擦除电可编程和擦除(Programmed and erased (Programmed and erased electronically)electronically)l使用电压比正常的高使用电压比正常的高l能单个字进行擦除和编程能单个字进行擦除和编程l较好的写入能力较好的写入能
34、力(Better write ability)(Better write ability)l通过内部电路提供较高电压能在系统内编程通过内部电路提供较高电压能在系统内编程l由于写入需经过擦除和编程两个步骤,因此写入较慢由于写入需经过擦除和编程两个步骤,因此写入较慢l可重复擦除和编程数万次可重复擦除和编程数万次l存储永久性和存储永久性和EPROMEPROM相近相近( (大约大约1010年年) )l比比EPROMEPROM方便得多,但更贵方便得多,但更贵42快闪存储器快闪存储器(Flash Memory)(Flash Memory)lEEPROM的扩展的扩展l同样利用浮栅原理同样利用浮栅原理l具有和
35、具有和EEPROM的写入能力和保存永久性的写入能力和保存永久性l擦除更快擦除更快l每次可以擦除存储器一块区域,但每次可以擦除存储器一块区域,但EEPROM每次只能擦除每次只能擦除一个字一个字l每个块通常几千个字节每个块通常几千个字节l进行单字写入时可能更慢进行单字写入时可能更慢l必须先进行整块读取后,对需修改的字修改更新后再整块必须先进行整块读取后,对需修改的字修改更新后再整块写入写入l用在需要大量存储数据在非易失性存储器的嵌入式系用在需要大量存储数据在非易失性存储器的嵌入式系统统l如数码相机,机顶盒,移动电话等如数码相机,机顶盒,移动电话等l两种主要的两种主要的Flash Memory技术是
36、技术是NOR和和NAND结构结构43THANK YOUSUCCESS2022-5-1243可编辑442.2.3 处理器输入输出接口处理器输入输出接口 输入输出接口又称输入输出接口又称I/O接口,它是主机与外围设接口,它是主机与外围设备之间交互信息的连接口,它在主机和外围设备备之间交互信息的连接口,它在主机和外围设备之间的信息交换中起着桥梁和纽带作用。之间的信息交换中起着桥梁和纽带作用。1I/O接口与接口与CPU交换的信息类型交换的信息类型 输入输出通道与输入输出通道与CPU交换的信息类型有三种:交换的信息类型有三种:(1)数据信息:反映生产现场的参数及状态的信息,)数据信息:反映生产现场的参数
37、及状态的信息,它包括数字量、开关量和模拟量。它包括数字量、开关量和模拟量。(2)状态信息:又叫做应答信息、握手信息,它反)状态信息:又叫做应答信息、握手信息,它反映过程通道的状态,如准备就绪信号等。映过程通道的状态,如准备就绪信号等。(3)控制信息:用来控制过程通道的启动和停止等)控制信息:用来控制过程通道的启动和停止等信息,如三态门的打开和关闭、触发器的启动信息,如三态门的打开和关闭、触发器的启动等。等。452I/O的编址方式的编址方式 由于计算机系统一般都有多个过程输入输出通道,因此需由于计算机系统一般都有多个过程输入输出通道,因此需对每一个输入输出通道安排地址。对每一个输入输出通道安排地
38、址。I/O口编址方式有两种:口编址方式有两种:(1)I/O与存储器统一编址方式与存储器统一编址方式 这种编址方式又称存储器映像方式,它从存贮器空间划出这种编址方式又称存储器映像方式,它从存贮器空间划出一部分地址空间给过程通道,把过程通道的端口当作存贮单元一部分地址空间给过程通道,把过程通道的端口当作存贮单元一样进行访问,对一样进行访问,对I/O端口进行输入输出操作跟对存储单元进端口进行输入输出操作跟对存储单元进行读写操作方式相同,只是地址不同。行读写操作方式相同,只是地址不同。(2)I/O与存储器独立编址方式与存储器独立编址方式 这种编址方式将过程通道的端口地址单独编址,有自己独这种编址方式将
39、过程通道的端口地址单独编址,有自己独立的过程通道地址空间,而不占用存储器地址空间。立的过程通道地址空间,而不占用存储器地址空间。46本章提要本章提要嵌入式系统总体结构嵌入式系统总体结构嵌入式系统硬件基础嵌入式系统硬件基础嵌入式系统设计方法嵌入式系统设计方法嵌入式系统软件基础嵌入式系统软件基础472.3 嵌入式软件基础嵌入式软件基础 嵌入式系统软件根据嵌入式开发的模式分为:底层软件、操嵌入式系统软件根据嵌入式开发的模式分为:底层软件、操作系统和应用软件。作系统和应用软件。1. 底层软件底层软件l底层软件是指直接和硬件打交道的程序,具体地讲是对处理器的共有寄底层软件是指直接和硬件打交道的程序,具体
40、地讲是对处理器的共有寄存器和外设寄存器进行操作的程序,如系统启动代码,硬件初始化代码存器和外设寄存器进行操作的程序,如系统启动代码,硬件初始化代码,设备驱动程序等。,设备驱动程序等。2. 嵌入式操作系统嵌入式操作系统l嵌入式操作系统嵌入式操作系统EOS(Embedded Operating System)是一种用途广)是一种用途广泛的系统软件,过去它主要应用于工业控制和国防系统领域。泛的系统软件,过去它主要应用于工业控制和国防系统领域。EOS负责负责嵌入系统的全部软、硬件资源的分配、调度工作,控制、协调并发活动嵌入系统的全部软、硬件资源的分配、调度工作,控制、协调并发活动3. 嵌入式应用软件嵌
41、入式应用软件l嵌入式应用软件是针对特定应用领域,基于某一固定的硬件平台,用来嵌入式应用软件是针对特定应用领域,基于某一固定的硬件平台,用来达到用户预期目标的计算机软件。由于用户任务可能有时间和精度上的达到用户预期目标的计算机软件。由于用户任务可能有时间和精度上的要求,因此有些嵌入式应用软件需要特定嵌入式操作系统的支持。要求,因此有些嵌入式应用软件需要特定嵌入式操作系统的支持。48嵌入式软件的特点嵌入式软件的特点1. 嵌入式软件具有独特的实用性嵌入式软件具有独特的实用性 嵌入式软件是为嵌入式系统服务的,这就要求它与外部硬嵌入式软件是为嵌入式系统服务的,这就要求它与外部硬件和设备联系紧密。件和设备
42、联系紧密。 2. 嵌入式软件应有灵活的适用性嵌入式软件应有灵活的适用性 嵌入式软件通常可以认为是一种模块化软件,它应该能非常嵌入式软件通常可以认为是一种模块化软件,它应该能非常方便灵活的运用到各种嵌入式系统中,而不能破坏或更改原有的方便灵活的运用到各种嵌入式系统中,而不能破坏或更改原有的系统特性和功能。系统特性和功能。3. 程序代码精简程序代码精简 由于嵌入式系统本身的应用特点,具有小体积、存储空间较由于嵌入式系统本身的应用特点,具有小体积、存储空间较小、成本、功耗等要求限制,嵌入式软件和大型机上的软件相比小、成本、功耗等要求限制,嵌入式软件和大型机上的软件相比,具有代码精简、代码量少、执行效
43、率高等特点。,具有代码精简、代码量少、执行效率高等特点。492.3.2嵌入式软件体系结构嵌入式软件体系结构 本节将讨论四种软件结构:轮转结构(本节将讨论四种软件结构:轮转结构(round-robin)、带中断的轮转结构、函数队列调度(、带中断的轮转结构、函数队列调度(function-queue scheduling)结构和实时操作系统()结构和实时操作系统(real-time operating system)结构。)结构。 501. 轮询结构轮询结构l轮询结构是能想象得到的、最简单的一种结构。该结构中不存轮询结构是能想象得到的、最简单的一种结构。该结构中不存在中断,主循环只是简单地依次执行
44、函数调用。在中断,主循环只是简单地依次执行函数调用。void main() while(1) function1(); function2(); 优点:简单,它没有中断,没有共享数据,无须考虑延迟时间优点:简单,它没有中断,没有共享数据,无须考虑延迟时间 51缺点:缺点:l如果一个设备需要比微处理器在最坏情况下完成一个循如果一个设备需要比微处理器在最坏情况下完成一个循环的时间更短的响应时间,那么这个系统将无法工作。环的时间更短的响应时间,那么这个系统将无法工作。l即使所要求的响应时间不是绝对的截止时间,当有冗长即使所要求的响应时间不是绝对的截止时间,当有冗长的处理时系统也会工作得不好。的处理时
45、系统也会工作得不好。l这种结构很脆弱。即使能够设法提高系统的性能,从而这种结构很脆弱。即使能够设法提高系统的性能,从而因为处理循环的速度足够快而是微处理器满足了所有的因为处理循环的速度足够快而是微处理器满足了所有的需要,但是一旦增加一个额外的设备或者提出一个新的需要,但是一旦增加一个额外的设备或者提出一个新的中断请求,就可能让一切都崩溃。中断请求,就可能让一切都崩溃。主要应用场合:主要应用场合:l基于上述缺点,轮转结构可能仅仅适用于非常简单的装基于上述缺点,轮转结构可能仅仅适用于非常简单的装置,如数字手表和微波炉等。置,如数字手表和微波炉等。 522带中断的轮转结构带中断的轮转结构 l在这种结
46、构中,中断程序处理硬件特别紧急的需求,然后设置在这种结构中,中断程序处理硬件特别紧急的需求,然后设置标志,主循环轮询这些标志,然后根据这些需求进行后续的处标志,主循环轮询这些标志,然后根据这些需求进行后续的处理。理。 BOOL fDeviceA=FALSE;BOOL fDeviceB=FALSE;BOOL fDeviceZ=FALSE;void interrupt vHandleDeviceA(void) fDeviceA=TRUE;void interrupt vHandleDeviceB(void) fDeviceB=TRUE;void interrupt vHandleDeviceB(v
47、oid) fDeviceZ=TRUE;void main() while (TRUE)if (fDeviceA) fDeviceA=FALSE;if (fDeviceB) fDeviceB=FALSE;if (fDeviceZ) fDeviceZ=FALSE; 53l与轮询结构相比这种结构可对优先级进行更多的控制与轮询结构相比这种结构可对优先级进行更多的控制。中断程序可以获得很快的响应,因为硬件的中断信。中断程序可以获得很快的响应,因为硬件的中断信号会使微处理器停止正在号会使微处理器停止正在main函数中执行的任何操函数中执行的任何操作,而转去执行中断程序。作,而转去执行中断程序。 轮询结构中
48、的中断优先级别轮询结构中的中断优先级别 54l缺点:缺点: 中断程序与主程序中的数据共享问题,当正在执行中断程序与主程序中的数据共享问题,当正在执行的主程序正在处理共享数据时,被中断程序中断,进而的主程序正在处理共享数据时,被中断程序中断,进而处理中断程序,在中断程序中有可能又对共享数据进行处理中断程序,在中断程序中有可能又对共享数据进行了相应的操作,从而导致回到主程序时,共享数据的值了相应的操作,从而导致回到主程序时,共享数据的值已经发生了改变,导致意想不到的结果。已经发生了改变,导致意想不到的结果。 553函数队列调度函数队列调度 l在这种结构中,中断程序在一个函数指针中添加一个函数指针在
49、这种结构中,中断程序在一个函数指针中添加一个函数指针,以供,以供main函数调用。主程序仅需要从该队列中读取相应的函数调用。主程序仅需要从该队列中读取相应的指针并且调用相关的函数。指针并且调用相关的函数。void interrupt vHandleDeviceA(void)/将functionA放入函数指针队列中;void interrupt vHandleDeviceB(void)/将functionB放入函数指针队列中;void functionA()void functionB()void main() while (TRUE) while(/函数指针队列为空) /调用队列中另一个函数
50、56l优点优点:main可以根据任何可以达到目标的优先级方案来调用函数可以根据任何可以达到目标的优先级方案来调用函数,这样任何需要更快响应的任务代码都可以被更早执行。,这样任何需要更快响应的任务代码都可以被更早执行。为了做到这一点,只需要在对函数指针进行排队的程序中为了做到这一点,只需要在对函数指针进行排队的程序中对代码进行一点技巧性设计。对代码进行一点技巧性设计。l缺点:缺点:具有较低优先级任务代码的函数可能会有更差的响应。具有较低优先级任务代码的函数可能会有更差的响应。如果某个较低优先级任务的代码函数过长,就有可能影响如果某个较低优先级任务的代码函数过长,就有可能影响较高优先级函数的响应时