单片机之IIC通信协议「建议收藏」

单片机之IIC通信协议「建议收藏」概念I2C(IIC,Inter-IntegratedCircuit),两线式串行总线,由PHILIPS公司开发用于连接微控制器及其外围设备。它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps以上。硬件IIC:硬件IIC速度比模拟快,并且可以用DMA。硬件IIC会自动匹配与从机的通信时序,…

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

概念

I2C(IIC,Inter-Integrated Circuit),两线式串行总线,由PHILIPS公司开发用于连接微控制器及其外围设备。它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps以上。

硬件IIC:硬件IIC速度比模拟快,并且可以用DMA。硬件IIC会自动匹配与从机的通信时序,只需配置好硬件IIC的一些函数就可以了。
软件IIC:用软件模拟IIC的时序图,从而与从机实现通信

IIC传输特点

1.半双工:半双工通信允许信号在两个方向上传输,但某一时刻只允许信号在一个信道上单向传输,可切换方向的单工通信

2.串行同步通信:数据通过一根SDA线传输,SCL提供同步时钟。同步通信的最大特点就是通信双方的SCL时钟线连在一起。

3.主从式通信:每一个通信周期的发起和结束都是由主设备来做的,从设备只有被动的响应主设备,没法自己自发的去做任何事情。有主机从机之分,支持多个从机。

单片机之IIC通信协议「建议收藏」

4.传输顺序:高位在前,低位在后

5.只有SDA与SCL两根线,但是主机与从机之间还需要一根共地线,不然从机怎么知道主机发过来的电平时序是高还是低呢!

6.SDA与SCL总线一定要接上拉电阻。

7,传输速率:I2C协议v2.1规定了三种速率(bps)
                       -100K
                       -400K
                       -3.4M

通信速率是按照主机的SCL的速度来通信,SCL上的通信速度要同时小于主从规定的最大通信速度

一主多从的通信过程:主设备在每个通信周期会先发8位的从设备地址,其实8位中只有7位是从设备地址(datasheet有设备地址),还有1位表示主设备下面要写入还是读出(由从设备决定)到总线(主设备是以广播的形式发送的,只要是总线上的所有从设备其实都能收到这个信息)。然后总线上的每个从设备都能收到这个地址,并且收到地址后和自己的设备地址比较看是否相等。如果相等说明主设备本次通信就是给我说话,如果不想等说明这次通信与我无关,不用听了不管了。

 

IIC时序 

空闲状态:SDA与SCL总线都处于高电平状态

起始信号时序与结束信号时序

单片机之IIC通信协议「建议收藏」

应答信号时序

单片机之IIC通信协议「建议收藏」

发送器每发送一个字节,就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。 应答信号为低电平(0)时,规定为有效应答位(ACK简称应答位),表示接收器已经成功地接收了该字节;应答信号为高电平(1)时,规定为非应答位(NACK),一般表示接收器接收该字节没有成功。 

数据的有效性

单片机之IIC通信协议「建议收藏」

SCL处于高电平期间,SDA的数据不能发生变换;SCL处于低电平期间,SDA的数据才允许发生变换。

对从机的读字节与写字节时序需要按照从机的时序图来写

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

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

(0)
上一篇 2022年6月9日 下午9:16
下一篇 2022年6月9日 下午9:36


相关推荐

  • 2019最新版Eclipse下载与安装

    2019最新版Eclipse下载与安装首先:eclispe提供了两种下载方式。一种是下载安装程序,下载后直接运行安装程序,根据安装程序的提示选择安装选项并完成安装;一种是下载eclispe压缩包,下载后手动解压即可。下面分别介绍两种安装方式。一、首先进入Eclipse下载页面1.下载地址:https://www.eclipse.org/downloads/二、安装程序的方式如果是64位的Windows操作系统,可以直接单击图…

    2022年5月29日
    154
  • idea入门与实战(实战训练)

    工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下:假设小组中有两个人,组长小张,组员小袁场景一:小张创建项目并提交到远程Git仓库场景二:小袁从远程Git仓库上获取项目源码场景三:小袁修改了部分源码,提交到远程仓库场景四:小张从远程仓库获取小袁的提交场景五:小袁接受了一个新功能的任务,创建了一个分支并在分支上开发场景六:小袁把分支提交到远程Git仓库场景七…

    2022年4月11日
    51
  • java futuretask 用法_FutureTask使用

    java futuretask 用法_FutureTask使用直接上实例 packagegaobi test FutureTaskTe importjava util concurrent Callable importjava util concurrent ExecutorServ importjava util concurrent Executors importjava util concurrent FutureTas

    2026年3月18日
    2
  • idea2021.8永久激活码_在线激活

    (idea2021.8永久激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月22日
    55
  • ubuntu安装nginx1.8.0_装了centos还可以装ubuntu吗

    ubuntu安装nginx1.8.0_装了centos还可以装ubuntu吗下载nginx包安装由于上面已经安装了nginx,所以我们先卸载nginx。再重新上传nginx包,解压下载。有输入提示时,输入Y即可卸载apt-get安装的nginx#彻底卸载nginxapt-get–purgeautoremovenginx#查看nginx的版本号nginx-v安装依赖包apt-getinstallgccapt-getinstalllibpcre3libpcre3-devapt-getinstallzlib1gzlib1

    2026年1月23日
    7
  • webstorm激活码(注册激活)

    (webstorm激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月28日
    199

发表回复

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

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