查看I2C 总线精要的源代码
←
I2C 总线精要
跳转到:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
== 概述 == 由 Philips (现 NXP) 于 80 年代开发,是一种很可靠的低速外设总线,广泛应用于 PC 和嵌入式系统:各种 I2C 接口的传感器、OLED 显示屏、SMBus (System Management Bus, )、PMBus (Power Management Bus)、IPMI (Intelligent Platform Management Interface)、DDC (Display Data Channel)、ATCA (Advanced Telecom Computing Architecture)...... 两根线: SDA, SCL,皆拉高 (pull-up),总线空闲时,两线皆为高电平 * SDA : Serial Data Line, holds Data or address signal * SCL : Serial Clock Line, holds Clock signal * IO must be open drain (or open collector in TTL) [[文件:I2C data transfer 640.png]] [[文件:I2c com.png]] * 7bit 地址,保留 16 个,可用 112;标准模式 (100 Kbit/s)、低速模式 (10 Kbit/s) * 10bit 地址;快速模式 (400 Kbit/s)、高速模式 (3.4 Mbit/s) '''数据传输:''' * 7bit mode: 发送 7bit 的address (MSB) 及一位的 W(0) / R(1) 后,该 address 的 slave 端会发送一个 Ack (acknowledge) 位,ACK = 0 表设定成功 (Slave 把 SDA 拉到 LOW),开始数据传送 * 每次传一个字节,每个字节都跟著一个 ACK bit,由 Slave 端发送(把 SDA 拉 LOW),否则 Master 认为字节写失败,发出 STOP 信号或是重新发送 START 信号 * 在每个 byte 之间 Slave 端可以把 SCL 拉低来强制传输暂停 * SDA 只能在 SCL 为 LOW 时改变 * 在 SCL 为 HIGH 时,SDA 必须是 stable 的,除非 Start/Stop condition '''10bit mode:''' 用两个 byte 来传送 address。第一个 byte 的前五位需为 “1111 0” 来表示要使用 10-bit addressing [[文件:I2c-10bit-addr.gif]] <br><br>
返回到
I2C 总线精要
。
个人工具
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
帮助
工具箱
链入页面
相关更改
特殊页面