Linux内核ic驱动架构.ppt
文本预览下载声明
Linux2.6内核i2c驱动架构 目 录 i2c简介 驱动相关知识介绍 i2c驱动架构分析 一. i2c简介 I2C 协议 I2C协议是有PHILIPS公司在1992年最先提出,乃PHILIPS公司专利。只要购买Philips的I2C元件同时传递了一个在Philips的I2C 专利下,在I2C 系统使用元件使系统符合由Philips定义的I2C规范的许可证。任何使用I2C的元件都必须得到PHILIPS公司的授权。 I2C总线的特征 1.只要求两条总线线路一条串行数据线(SDA)一条串行时钟线(SCL)。同时SDL和SCL都是双向线路,分别通过上拉电阻连接到正的电源电压。 2 .每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主 机/从机关系软件设定地址;主机可以作为主机发送器或主机接收器。 3.它是一个真正的多主机总线,如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁防止数据被破坏。 4. 串行的8 位双向数据传输位速率在标准模式下可达100kbit/s。快速模式下可达400kbit/s。高速模式下可达3.4Mbit/s。 5.片上的滤波器可以滤去总线数据线上的毛刺波,保证数据完整 i2c设备连接图 一. i2c简介 SDA I2c适配器 AT24C8 other device SCL 设备模型: 在以前的内核中没有独立的数据结构用来让内核获得系统整体配合的信息。尽管缺乏这些信息,在许多时候还是能工作正常。然而,随着linux支持的设备越来越多,拓扑结构越来越复杂, linux 2.6内核引入了设备模型,目的是为了能够对设备进行有效管理。其实,建立设备模型的初衷很直白——为了省电。即是为了实现一些动态管理电源的功能。 二. 驱动相关知识介绍 二. 驱动相关知识介绍 设备模型具有以下的功能: (1)电源管理和系统关机。 想在内核中实现智能的电源管理,就需要建立表示系统中设备的拓扑关系的树结构。比如一个USB宿主适配器,在处理完所有与其连接的设备前是不能被关闭的。设备模型使得操作系统能够以正确的顺序遍历系统硬件。 二. 驱动相关知识介绍 (2)与用户空间通信 这些通信的操作都是通过sysfs文件系统这个中介来完成的。 sysfs文件系统紧密团结在设备模型周围,把控制设备的接口(比如设备休眠、唤醒)通过文件的形式暴露给用户,一边用户可以通过读写sysfs中文件的方式,读取或改变设备的配置。 二. 驱动相关知识介绍 二. 驱动相关知识介绍 (3)支持热插拔 越来越多的计算机设备可被动态的热插拔了,也就是说,外围设备可根据用户的需要安装与卸载。内核中的热插拔机制可以处理热插拔设备,特别是能够与用户空间进行关于插拔设备的通信,而这种机制也是通过设备模型管理的。 二. 驱动相关知识介绍 (4)管理对象生命周期 前面描述的功能,包括支持热插拔和sysfs,使用这个模型相当的复杂。得有一个好的机制来实现设备生命周期。比如说,把USB鼠标拔了之后,全局设备树和sysfs里面的相应文件必须去掉。 总线、设备和驱动程序 总线是处理器与一个或者多个设备之间的通道。在设备模型中,所有的设备通过总线相连。甚至是那些内部的虚拟“平台”总线。总线可以相互插入,比如一个USB控制器通常是一个PCI设备。设备模型展示了总线和它们所控制的设备之间的实际连接。 of_platform总线(平台总线)是2.6 kernel中引入的正对Linux PowerPC的一种虚拟总线,主要用来管理CPU的片上资源,例如串口、SPI、I2C、网卡。 设备连接某条物理或者虚拟总线上的对象。可能是真正物理对象,也可能是虚拟对象。例如U盘就是一个物理对象,pty设备就是一个虚拟的对象。 驱动是用来和设备通信的软件程序。驱动可以从设备中获取数据,也可以把相应数据发给设备进行处理。驱动一般都是和具体操作系统以及具体硬件相关的。 二. 驱动相关知识介绍 二. 驱动相关知识介绍 设备树 设备树是一种描述硬件配置的树形数据结构,有且仅有一个根它包含了有关CPU、物理内存、总线、串口、PHY 以及其他外围设备信息等。该树继承了OpenFirmware IEEE 1275 设备树的定义。操作系统能够在启动时对此结构进行语法分析,以此配置内核,加载相应的驱动。
显示全部