I2C笔记
2016-04-21 01:16
316 查看
I2C接口原理图:
可以看到只有两条线被引出,
一条为SCL:时钟线
一条为SDA:数据线
I2C总线设备互联:
I2C总线的信号类型:
开始信号:
比如:2440让时钟线保持高电平,然后让数据线由高电平转换为低电平,这就表示一个开始信号。
停止信号:
比如:2440让时钟线保持高电平,然后让数据线由低电平转换为高电平,这就表示一个停止信号。
响应信号:
在I2C总线上面的设备接受到8位数据后,在第9个周期,拉低数据线
也就是释放数据线
应答信号:
也就是说连接在I2C总线上面的设备,只会在时钟线处于高电平的时候才会去接受数据,且每次只能接受一位的数据,并且需要保持平稳的数据,如果数据线要切换数据,必须在时钟线为低电平的时候
I2C总线的数据传输格式:
数据线每次传送必须为8个位,也就是一个字节,传输的总字节数是不限制的,但是没传送一个字节,需要发送一个响应位,且数据是从高字节开始传送的
在开启一个传输时,是如何在总线上找到对应的设备的呢?
首先,主机发送一个S信号,其中包括:
S:start开始信号
7位从机数据:可以最多表示2的7次方(128)个设备
R(1):指对方的数据,读取数据到目标
W(0):表示发送数据,写数据到目标
A:也就是当遇到对于的7位的从机设备,则发送一个ACK信号,在第9位将数据线拉低
上面的协议只是一个例子,具体协议,要根据对于的I2C文档查看协议
可以看到只有两条线被引出,
一条为SCL:时钟线
一条为SDA:数据线
I2C总线设备互联:
I2C总线的信号类型:
开始信号:
比如:2440让时钟线保持高电平,然后让数据线由高电平转换为低电平,这就表示一个开始信号。
停止信号:
比如:2440让时钟线保持高电平,然后让数据线由低电平转换为高电平,这就表示一个停止信号。
响应信号:
在I2C总线上面的设备接受到8位数据后,在第9个周期,拉低数据线
也就是释放数据线
应答信号:
也就是说连接在I2C总线上面的设备,只会在时钟线处于高电平的时候才会去接受数据,且每次只能接受一位的数据,并且需要保持平稳的数据,如果数据线要切换数据,必须在时钟线为低电平的时候
I2C总线的数据传输格式:
数据线每次传送必须为8个位,也就是一个字节,传输的总字节数是不限制的,但是没传送一个字节,需要发送一个响应位,且数据是从高字节开始传送的
在开启一个传输时,是如何在总线上找到对应的设备的呢?
首先,主机发送一个S信号,其中包括:
S:start开始信号
7位从机数据:可以最多表示2的7次方(128)个设备
R(1):指对方的数据,读取数据到目标
W(0):表示发送数据,写数据到目标
A:也就是当遇到对于的7位的从机设备,则发送一个ACK信号,在第9位将数据线拉低
上面的协议只是一个例子,具体协议,要根据对于的I2C文档查看协议
相关文章推荐
- 鼠标单击TabSequence=0的单元格时黑色选中色变为其他颜色
- 深入理解Java中的IO
- Hadoop环境搭建安装(一)
- Android——远程存储器存储:JDK方式和Volley框架的get和post
- ListView-BaseAdapter
- 数据库性能优化之SQL语句优化
- 使Datawindow每页打印固定行
- (八)STM32的CAN模块实验
- tungsten-replicator
- 四月排名赛
- 开源CMS系统Moodle对比中国本土化开源在线教育平台EduSoho
- 关于html5之canvas的那些事
- java编程中的性能提升问题
- MSDN 提供的有关 Windows Communication Foundation (WCF) 的各个方面的示例说明
- maven pom.xml详解
- Eclipse JEE中Server Options作用
- 使用AndroidEventBus
- robotframework笔记19
- 数据结构之算法特性及分类
- DevExpress GridControl 列中显示图片