第11课字符设备驱动内容摘要:

脉冲下,数据按位传输,并且高位在前、低位在后,是一种全双工通信。 数据传输速度总体上来说比 I2C总线要快,速度可以达到几 Mbit/s。 • SPI 的工作模式有两种:主模式和从模式, 无论 哪种 模式 ,都支持 3Mbit/s的速率,并且还具有传输完成标志和写冲突保护标志。 • 接口一般使用四条线:串行时钟线 SCK、主器件输入 /从器件输出数据线 MISO、主器件输出 /从器件输入数据线MOSI和从器件选择线 SS。 I2C总线 • Philips公司开发的二线式串行总线 标准 , 内部集成电路( Internal Integrated Circuit) , 主要用于连接微控制器和 外围设备。 • I2C总线是由串行数据信号线 SDA和串行时钟信号线SCL构成的串行总线,可发送和接收数据。 • 采用该总线连接的设备工作在主 /从模式下,主器件既可以作为发送器,也可以作为接收器,能够发送和接收数据。 • I2C总线最主要的特点是它的简单性和高效性。 • 在标准模式下,位速率可以达到 100Kbit/s,在快速模式下则是 400Kbit/s,在高速模式下可以达到。 SMBus总线 • 系统管理总线( System Management Bus, SMBus)最初由 Intel提出,应用于移动 PC和桌面 PC系统中的低速通讯。 • SMBus总线同 I2C总线一样也是一种二线式串行总线,它使用一条数据线( SMBDATA)和一条时钟线( SMBCLK)进行通信。 • SMBus的目标是通过一条廉价但功能强大的总线,来控制主板上的设备和收集设备的信息。 • 虽然 SMBus的数据传输率较慢,只有大约 100kbit/s,却以其结构简单、造价低的特点,受到业界的普遍欢迎。 • SMBus总线大部分基于 I2C总线规范,许多 I2C设备也能够在 SMBus上正常工作。 SMBus与 I2C总线之间在时序特性上存在一些差别。 I2C总线驱动开发 • I2C驱动程序概况 • 关键数据结构 • I2C核心 • I2C总线驱动 • I2C设备驱动 I2C总线 驱动 概况 • Linux下的 I2C驱动架构有相当的复杂度,主要由 I2C核心、 I2C总线驱动以及 I2C设备驱动三个部分组成。 – algos:包含了一些 I2C总线适配器的 algorithm实现。 – busses:包含了一些 I2C总线的驱动,例如 AT91的 i2c。 – chips:包含了一些 I2C设备的驱动,例如 Dallas公司的DS1682实时钟芯片。 – :包含了一些板级信息。 – :实现了 I2C核心的功能以及/proc/bus/i2c*接口。 – :这是一个通用的驱动,基本上大多数 I2C驱动都可以通过调用它操作。 关键数据结构 • i2c_adapter • i2c_algorithm • i2c_driver • i2c_cflient i2c_adapter • struct i2c_adapter { • struct module *owner。 /*所属模块 */ • unsigned int id。 • unsigned int class。 /*用来允许探测的类 */ • const struct i2c_algorithm *algo。 /*I2C algorithm结构体指针 */ • void *algo_data。 /*algorithm所需数据 */ • /*client注册和注销时调用 */ • int (*client_register)(struct i2c_client *) __deprecated。 • int (*client_unregister)(struct i2c_client *) __deprecated。 • int timeout。 /*超时限制 */ • int retries。 /*重试次数 */ • struct device dev。 /*适配器设备 */ • int nr。 • struct list_head clients。 /* client链表头 */ • char name[48]。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。