《嵌入式系统Chapter8IO管理new.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统Chapter8IO管理new.ppt(36页珍藏版)》请在三一办公上搜索。
1、嵌入式系统及应用,第八章 I/O管理,主要内容,I/O管理概述一种I/O系统实现方法体系结构实现考虑,在通用操作系统中,I/O管理采用层次结构的思想(如四个层次的结构:中断处理程序,设备驱动程序,与设备无关的操作系统软件,用户层软件):较低层的软件要使较高层的软件独立于硬件的特性,较高层软件则要向用户提供一个友好、清晰、规范的接口。在I/O管理的层次结构中,主要通过设备独立的I/O系统和设备驱动程序来共同完成I/O操作。设备驱动程序通过一组例程来提供比较低级的I/O功能,比如把字节序列输入或输出到面向字符的设备中。高级协议(如面向字符设备的通信协议)则由与设备无关的I/O系统来实现。,I/O管
2、理概述,在一些实时内核的I/O系统中,用户I/O请求在到达设备驱动程序之前,通常都只进行非常少量的处理。实时内核的I/O系统的作用就像一个转换表,把用户对I/O的请求转换到相应的驱动程序例程。驱动程序就能够获得最原始的用户I/O请求,并对设备进行操作。为满足标准设备处理的需要,I/O系统通常也提供一些高级的例程库,便于实现设备的标准通信协议。I/O系统既便于实现能够满足大多数设备要求的、标准的驱动程序;在需要时,方便地实现非标准的设备驱动程序,以满足实时性或是其他的特殊需要。,I/O管理概述,一种I/O系统实现方法,在不同CPU和I/O设备之间的可移植性就成为嵌入式操作系统设计时需要重点考虑的
3、内容可移植性有助于增强操作系统和应用的重用,以保护应用投资 如何有助于提高编写驱动程序的便利性,通常也是应用开发人员非常关注的特性降低驱动程序的开发难度,则能有效提高系统的开发效率,体系结构,为了有效组织和管理各种不同的设备,可以采用分层的思想,把I/O系统从上到下分为四层,分别为API、设备管理、驱动逻辑和硬件抽象。,体系结构,硬件抽象层是硬件功能模块的集合,是对硬设备功能的第一层抽象,实现基本的IO操作。所关心的是如何实现硬件功能的软件接口,而不是设备的管理逻辑。每个硬件可能有多个端口(设备),对应的硬件抽象层是对这些端口(设备)操作的基本抽象,为驱动程序管理这些设备提供接口。上层驱动程序
4、在不需要了解具体设备硬件信息的情况下,就可以操作这些设备。,体系结构,驱动逻辑层存放系统中的所有驱动程序 实现设备的管理逻辑 通过硬件抽象层来管理设备 每个驱动程序管理一类设备,例如所有串口都由串口驱动程序来管理,所有中断控制器都由中断控制器驱动程序管理。,体系结构,设备管理层管理系统中的设备,并向上提高统一的接口。设备管理层不直接操作设备,它只能通过驱动程序来间接操作设备。,API层用于对设备管理层提供的驱动结构进行进一步的包装,以方便应用程序使用。,体系结构,采用这种体系结构的好处:便于硬设备驱动的编写 便于移植 提供硬件的多种使用模式:应用程序(包括用户程序、操作系统及其组件等程序)可以
5、根据实际需要从驱动程序的不同层次直接调用,可以满足实时性或其它一些应用设计方面的具体考虑。,体系结构,提供硬件的多种使用模式,实现考虑,设备管理驱动逻辑硬件抽象工作过程,设备管理,为了实现设备管理,可以提供三张表:驱动程序地址表设备名表文件表,设备管理,驱动程序地址表:管理系统中的驱动程序,表项为各个驱动程序的功能函数,驱动程序地址表,设备管理,驱动程序地址表,驱动程地址表的数据结构,设备管理,设备名表:管理系统中所有设备,通过设备名来区分各设备 主设备号是驱动程序在驱动地址表中的位置,次设备号用来在驱动程序内部区分不同的设备,设备名表,设备管理,设备名表,设备名表的数据结构,设备管理,文件表
6、:用于记录当前打开的设备,文件表,设备管理,文件表,文件表的数据结构,驱动逻辑,驱动逻辑层实现系统中所有驱动程序。每个驱动程序管理一类设备,为了实现设备管理,在每个驱动程序中维护一张设备信息表。,设备信息表,驱动逻辑,次设备号,表示设备在其所属驱动中的编号,设备接口函数表,也即硬件功能抽象表,表中函数由设备对应的硬件抽象提供,驱动程序通过该表中的函数,实现对设备的访问,用于硬件抽象的设备数据表,保存硬件需要的信息,该表的内容由硬件抽象层负责解析,驱动程序不关心表的具体内容,驱动设备数据表,保存驱动程序所需的信息,由驱动程序负责维护,下一个设备项,驱动逻辑,基本串口驱动程序uart的设备信息表结
7、构,驱动逻辑,基本串口驱动程序的驱动设备数据表结构定义,驱动逻辑,基本串口驱动程序的驱动设备数据表结构定义(续),驱动逻辑,串口驱动程序定义的设备函数接口表,驱动逻辑,串口驱动程序定义的设备函数接口表,驱动逻辑,i8250的设备数据表结构,硬件抽象,每个设备的硬件抽象分两部分:硬件抽象部分,实现对硬件的抽象。该部分写好之后,不会随应用而改变;初始化部分,对设备进行初始化,实现设备注册。,工作过程,I/O系统的初始化,设备打开,设备关闭,设备读,设备写,设备控制,设备管理初始化,驱动逻辑初始化,硬件抽象初始化,完成设备管理相关信息的初始化,如创建驱动程序地址表、设备名表、文件记录表等,实现系统中各驱动程序的注册,即把系统中各驱动程序注册到设备管理中,主要完成设备注册,工作过程,驱动程序注册,工作过程,设备注册,工作过程,打开设备,工作过程,关闭设备 系统调用close()关闭一个不再使用的设备,关闭一个设备时,I/O系统的内部运作过程和写一个设备大致相同,不同的是I/O系统根据设备名表中的主设备号在驱动程序地址表中定位并调用驱动程序的xxx_close()函数,然后释放文件表中的记录,返回。在此之后对该文件描述符的任何引用都将返回错误。但是随后的open()系统调用将仍然返回该文件描述符。,工作过程,写设备读设备、控制设备操作与写设备操作流程类似,谢谢!,
链接地址:https://www.31ppt.com/p-6077132.html