IIC 通信协议

IIC 通信协议IIC通信协议I2C(IIC,Inter-IntegratedCircuit),数据线SDA(data)和时钟SCL(clock)构成的串行总线,双向传送。高速IIC总线一般可达400kbps以上。IIC是半双工通信方式。时序图主机:起始信号—–>第一位——>第二位———>……..——–>第八位———>等待应答信号——->停止信号大致的一个数据传输流程是:主机向SDA线上发送一个起始信号,表示有信号进行传输,此时所有连接到IIC总线

大家好,又见面了,我是你们的朋友全栈君。

IIC 通信协议

I2C(IIC,Inter-Integrated Circuit),数据线SDA(data)和时钟SCL(clock)构成的串行总线,双向传送。

高速IIC总线一般可达400kbps以上。

IIC是半双工通信方式。

时序图

这里写图片描述

主机:起始信号—–>第一位——>第二位———> …….. ——–>第八位———> 等待应答信号——->停止信号

大致的一个数据传输流程是:主机向SDA线上发送一个起始信号,表示有信号进行传输,此时所有连接到IIC总线上的芯片都处于接收状态,接下来,主机发送想要与其进行数据传输的从机地址信号,所有的从机都会接收到该地址信号并和自己固有的地址信号进行匹配,当配对成功时,接下来就在时钟信号的带动下进行数据传输,数据的传输是按照每8位一个单元进行数据的传输。每一位的传输过程中,在SCL高电平期间,一定要保证SDA数值的稳定,否则会出现出错的情况,SDA数值的改变发生在SCL的低电平期间。最终8位全部传输完毕,从机产生一个应答信号给主机,主机在接收到该应答信号后决定接下来是发送一组新的数据还是终止发送。

时序分析

空闲状态

SDA和SCL同时为高电平时,总线处于空闲状态

起始信号与停止信号

起始信号:SCL为高电平时,SDA电平发生高到低的跳变
停止信号:SCL为高电平时,SDA电平发生低到高的跳变

这里写图片描述

应答信号

发送器每发送完一个字节(8个脉冲),在第9个脉冲间释放总线,接收器返回一个ACK信号,协议规定,低电平为有效应答,高电平为无效应答。

这里写图片描述

数据有效性

时钟信号为高电平期间,数据必须保持稳定,时钟信号低电平期间,数据线上的电平才允许变化。

也就是说,数据在时钟信号到来前必须准备好,并保持到时钟信号的下降沿之后。

这里写图片描述

数据传输

I2C为同步传输,时钟控制数据位的传输,边沿触发。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131293.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • X86 Debuggers And Tools-x86_en-us 下载及使用

    X86 Debuggers And Tools-x86_en-us 下载及使用下载地址:http://pan.baidu.com/s/1hrioJU8使用:第一步安装:双击X86DebuggersAndTools-x86_en-us.msi第二步打开cmd,进入目录:C:\ProgramFiles(x86)\WindowsKits\8.1\Debuggers\x86>第三步输入命令:adplus-crash-p8436-FullonFirst

    2022年5月4日
    113
  • 转:CCriticalSection「建议收藏」

    转:CCriticalSection「建议收藏」类CCriticalSection的对象表示一个“临界区”,它是一个用于同步的对象,同一时刻只允许一个线程存取资源或代码区。临界区在控制一次只能有一个线程修改数据或其它的控制资源时非常有用。例如在链表中增加一个节点就中允许一次一个线程进行。通过使用CCriticalSection对象来控制链表,就可以达到这个目的。在运行性能比较重要而且资源不会跨进程使用时,建议采用临界区代替信号灯。有关在MF…

    2022年7月20日
    13
  • 简述Activity生命周期「建议收藏」

    简述Activity生命周期「建议收藏」Activity显示方式Android是使用任务(Task)管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也 被称为返回栈。新活动启动进入栈,处于栈顶,当Back或finish()销毁一个活动时,栈顶的活动会出栈,前一个入栈的活动重新处于栈顶位置,显示给用户。活动状态运行状态:处于栈顶。暂停状态:不再处于栈顶但仍可见。(内存极低时系统会考虑回收这种活动)停止状态:不再处于栈顶,并且完全不可见。(系统会保存相应的状态和成员变量,但是这并不是完全可靠的,当其他地方需要内存时,处于停止状态

    2022年8月16日
    3
  • fulltext mysql_mysql – FULLTEXT和FULLTEXT KEY / INDEX有什么区别?

    fulltext mysql_mysql – FULLTEXT和FULLTEXT KEY / INDEX有什么区别?MySQL文档提供了这种格式来创建FULLTEXT索引:|{FULLTEXT|SPATIAL}[INDEX|KEY][index_name](index_col_name,…)[index_option]要使用MySQL实现全文搜索,您可以通过编写来创建索引:CREATETABLEposts(idint(4)NOTNULLAUTO_INCREMENT,titlevarcha…

    2022年10月29日
    0
  • Win10安装wget_linux wget安装

    Win10安装wget_linux wget安装安装下载点击下载依次如下:1.2、将下载好的wget.exe放到C:/windows/system32文件夹下3.3、在cmd中输入wget–version如下则成功:测试下载图片wgethttp://q1.xiongmaoya.com/2021/08/09/26045/1.jpg

    2022年10月17日
    0
  • excel 日期格式 mysql_EXCEL与MySQL日期格式转换[通俗易懂]

    excel 日期格式 mysql_EXCEL与MySQL日期格式转换[通俗易懂]在MySqL数据库中,日期字段的存储类型为整型字段,存储的是1900年1月1日至当前的秒数。如果你在EXCEL中使用从MYSQL中导出的数据,或者使用ODBC直接访问MySQL数据库,就需要使用下面的转换公式。””在MySqL数据库中,日期字段的存储类型为整型字段,存储的是1900年1月1日至当前的秒数。如果你在EXCEL中使用从MYSQL中导出的数据,或者使用ODBC直接访问MySQL数据库,…

    2022年6月22日
    106

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号