
Chapter12 嵌入式系统驱动软件开发.ppt
126页电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心嵌入式微处理器系统及应用嵌入式微处理器系统及应用第十二章第十二章 嵌入式系统驱动软件开嵌入式系统驱动软件开发发电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心主要内容主要内容1 1 嵌入式系统驱动软件概述嵌入式系统驱动软件概述2 2 嵌入式系统设备的特性及操作界面嵌入式系统设备的特性及操作界面 3 3 设备操作的基本原理设备操作的基本原理4 W90P7104 W90P710串口驱动开发实例串口驱动开发实例5 MPC5554 SCI5 MPC5554 SCI驱动开发实例驱动开发实例6 6 设备驱动开发需注意的问题设备驱动开发需注意的问题7 7 驱动软件与操作系统的关系驱动软件与操作系统的关系电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心嵌入式系统驱动软件概述嵌入式系统驱动软件概述驱动软件是直接与硬件打交道的一层,它对操作驱动软件是直接与硬件打交道的一层,它对操作系统和应用提供所需的驱动的支持该层主要包系统和应用提供所需的驱动的支持该层主要包括三种类型的程序,即板级初始化程序、与系统括三种类型的程序,即板级初始化程序、与系统软件相关的驱动和与应用软件相关的驱动。
软件相关的驱动和与应用软件相关的驱动板级初始化程序:这些程序在嵌入式系统上电后初始化系统的硬件环境,包括嵌入式微处理器、存储器、中断控制器、DMA、定时器等的初始化电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心嵌入式系统驱动软件概述嵌入式系统驱动软件概述与系统软件相关的驱动:这类驱动是操作系统和中间件(包括各种通信协议)等系统软件所需的驱动程序,它们的开发要按照系统软件的要求进行目前操作系统内核所需的硬件支持一般都已集成在嵌入式微处理器中了,因此操作系统厂商提供的内核驱动一般不用修改,开发人员主要需要编写的相关驱动如网络、键盘、显示、外存等的驱动程序与应用软件相关的驱动:与应用软件相关的驱动不一定是需要与操作系统连接的,这些驱动的设计和开发由应用决定电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心主要内容主要内容1 1 嵌入式系统驱动软件概述嵌入式系统驱动软件概述2 2 嵌入式系统设备的特性及操作界面嵌入式系统设备的特性及操作界面 3 3 设备操作的基本原理设备操作的基本原理4 W90P7104 W90P710串口驱动开发实例串口驱动开发实例5 MPC5554 SCI5 MPC5554 SCI驱动开发实例驱动开发实例6 6 设备驱动开发需注意的问题设备驱动开发需注意的问题7 7 驱动软件与操作系统的关系驱动软件与操作系统的关系电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心12.2.1嵌入式系统设备特性嵌入式系统设备特性片内设备和板级设备片内设备和板级设备串行设备和并行设备串行设备和并行设备内存映射设备和内存映射设备和I/OI/O映射设备、特殊指令访问设备映射设备、特殊指令访问设备设备设备 / / 接口缓冲接口缓冲电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心片内设备和板级设备片内设备和板级设备按照设备控制器所处的位置,可分为芯片内的设备和按照设备控制器所处的位置,可分为芯片内的设备和板级设备。
板级设备芯片内设备,就是指集成在嵌入式微处理器或微控制芯片内设备,就是指集成在嵌入式微处理器或微控制器内部的设备,通常被称为器内部的设备,通常被称为“片内外设片内外设”,这是因为,这是因为随着硬件技术和应用需求的发展,嵌入式微处理器或随着硬件技术和应用需求的发展,嵌入式微处理器或微控制器是集成度很高的片上系统(微控制器是集成度很高的片上系统(SOCSOC)板级设备就是在处理器芯片外部的,通过处理器提供板级设备就是在处理器芯片外部的,通过处理器提供的片外总线与处理器进行连接和通信的一些设备,它的片外总线与处理器进行连接和通信的一些设备,它们位于嵌入式硬件板上典型的板级设备包括扩展的们位于嵌入式硬件板上典型的板级设备包括扩展的存储器、通过处理器存储器、通过处理器GPIOGPIO或串行总线扩展的其他一些或串行总线扩展的其他一些设备等电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心片内设备和板级设备片内设备和板级设备在芯片内集成的设备与芯片的应用领域、目标应在芯片内集成的设备与芯片的应用领域、目标应用系统的档次等有关,通常包括:用系统的档次等有关,通常包括:片内存储器:部分嵌入式微处理器外部存储器的控制器,外设接口(串口,并口)LCD控制器:面向终端类应用的嵌入式微处理器中断控制器,DMA控制器,协处理器定时器,A/D、D/A转换器多媒体加速器:当高级图形功能需要时总线(包括各种串行总线如UART,SPI,IIS,工业控制领域所用的I2C,汽车电子领域的CAN,LIN等)其他标准接口或外设电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心串行设备和并行设备串行设备和并行设备按照与外界其他设备之间通信时数据传输的宽度,按照与外界其他设备之间通信时数据传输的宽度,可分为串行设备、并行设备。
设备与设备之间进可分为串行设备、并行设备设备与设备之间进行数据传输时通过串行或并行总线进行数据的按行数据传输时通过串行或并行总线进行数据的按位串行传输或多数据位的并行传输位串行传输或多数据位的并行传输电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心内存映射设备和内存映射设备和I/O映射设备、特殊指令映射设备、特殊指令访问设备访问设备根据处理器核操作设备的方式,可分为内存映射设备、根据处理器核操作设备的方式,可分为内存映射设备、I/OI/O映射映射设备及特殊指令访问设备设备及特殊指令访问设备内存映射设备内存映射设备指与内存统一编址的设备,对于它们的访问方式指与内存统一编址的设备,对于它们的访问方式与访问内存一样,从操作指令上不能区分是访问设备还是内存,与访问内存一样,从操作指令上不能区分是访问设备还是内存,需要从具体访问的地址来判断这种方式的好处是:需要从具体访问的地址来判断这种方式的好处是:可采用丰富的内存操作指令访问I/O单元无需单独的I/O地址译码电路无需专用的I/O指令坏处是:坏处是:外设占用内存空间I/O程序不易读很多很多RISCRISC架构的嵌入式微处理器比如架构的嵌入式微处理器比如ARM, PPCARM, PPC等都采用这种设备编址等都采用这种设备编址方式。
方式电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心内存映射设备和内存映射设备和I/O映射设备、特殊指令映射设备、特殊指令访问设备访问设备I/OI/O映射设备映射设备就是指系统中就是指系统中I/OI/O设备与内存地址是分开设备与内存地址是分开的,的,I/OI/O设备端口具有独立的地址空间对于这样的设备端口具有独立的地址空间对于这样的设备,从处理器的操作指令上能区分与内存访问的区设备,从处理器的操作指令上能区分与内存访问的区别这种方式的优势和劣势刚好与内存映射设备相反这种方式的优势和劣势刚好与内存映射设备相反其好处是:其好处是:I/O单元不占用内存空间I/O程序易读缺点就是:缺点就是:I/OI/O操作指令仅有单一的传送指令操作指令仅有单一的传送指令,I/O,I/O接接口需有地址译码电路口需有地址译码电路典型的典型的I/OI/O映射设备就是映射设备就是Intel80X86Intel80X86系列的处理器系列的处理器电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心内存映射设备和内存映射设备和I/O映射设备、特殊指令映射设备、特殊指令访问设备访问设备特殊指令访问设备特殊指令访问设备就是指必须通过特殊的处理器就是指必须通过特殊的处理器指令才能访问的设备,比如指令才能访问的设备,比如PowerPCPowerPC处理器内部的处理器内部的DEC, TBDEC, TB等,对它们的相关控制虽然也是通过相关等,对它们的相关控制虽然也是通过相关寄存器来完成的,但是这些寄存器不像通常的设寄存器来完成的,但是这些寄存器不像通常的设备控制寄存器那样具有访问地址,而是需要通过备控制寄存器那样具有访问地址,而是需要通过特殊的指令进行操作。
特殊的指令进行操作电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心设备设备/接口缓冲接口缓冲在数据处理和传输过程中,处理器、总线以及各在数据处理和传输过程中,处理器、总线以及各种设备和接口具有较大的性能差异,因此有些设种设备和接口具有较大的性能差异,因此有些设备或接口提供了一定的数据缓冲存储的能力,在备或接口提供了一定的数据缓冲存储的能力,在驱动软件开发时要注意对缓冲的正确处理(或提驱动软件开发时要注意对缓冲的正确处理(或提供专门的缓冲管理机制),以满足正确的数据传供专门的缓冲管理机制),以满足正确的数据传输及性能方面的要求输及性能方面的要求电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心12.2.2设备接口寄存器概述设备接口寄存器概述在与处理器核连接时,基本都提供了三类可以被在与处理器核连接时,基本都提供了三类可以被处理器操作的寄存器:处理器操作的寄存器:控制寄存器控制寄存器:对设备的工作模式、工作时钟频率或数据传输速率、数据格式、中断使能或禁止等进行控制设置的寄存器控制寄存器一般在设备初始化的时候被进行相应设置,之后在设备工作过程中还可以修改其中的内容,以达到对设备灵活控制的目的。
状态寄存器状态寄存器:状态寄存器中包括了设备在工作过程中的一些状态信息,这些信息可以被驱动软件使用,以在合适的时机根据设备的状态采取相应的操作,完成数据的正常传输、错误处理等工作如果设备工作在中断方式下,状态寄存器中的某些标识与特定的中断相关联,也可以被中断处理程序加以利用电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心12.2.2设备接口寄存器概述设备接口寄存器概述数据寄存器数据寄存器:数据寄存器中保存了需要通过设备向嵌入式系统外部发送的数据信息,或者从外部接收到的数据信息某些设备的发送数据寄存器和接收数据寄存器是分离的,即CPU需要访问不同的数据寄存器来发送和接收数据;而有些设备的发送和接收数据寄存器是同一个,即CPU访问同一个数据寄存器来发送或接收数据(根据对数据寄存器的读写方向的不同来决定是数据发送还是接收)在后一种情况下,实际上在设备内部还是有2个不同的分别用来处理发送和接收的数据寄存器(如下图所示,MPC5554的串行通信接口SCI单元分别有2个移位寄存器来实现数据的串行发送接收)电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心12.2.3设备接口寄存器实例:设备接口寄存器实例:W90P710的的UART接口寄存器接口寄存器在在W90P710W90P710内部,集成了内部,集成了4 4个个UARTUART端口,每个端口的一端口,每个端口的一组寄存器是连续编址的,需要先知道它们的基地址是组寄存器是连续编址的,需要先知道它们的基地址是多少。
多少每个每个UARTUART端口特有的寄存器有:端口特有的寄存器有:UART_LCR(线控制寄存器)UART_RBR/UART_THR(接收缓存/发送保持寄存器)UART_IER(中断使能寄存器)UART_DLM和UART_DLL(波特率除数寄存器)UART_LSR(线形状态寄存器)UART_FCR(FIFO控制寄存器)UART_IIR(中断标识寄存器)与与UARTUART有关的有关的GPIOGPIO功能配置的寄存器:功能配置的寄存器:GPIO_CFG5GPIO_CFG5电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心GPIO_CFG5寄存器(寄存器(GPIO端口端口5配置寄存器)配置寄存器)该寄存器的该寄存器的PORT_0PORT_0PORT_3PORT_3可分别可分别用于将用于将GPIO5GPIO5GPIO8GPIO8配置成配置成UART0UART0和和UAR。












