当前位置: 首页 > article >正文

嵌入式常见协议---IIC协议

1.IIC(I²C)协议是什么?

全称 Inter-Integrated Circuit ,字面意思是集成电路之间,是I²C BUS简称,中文应该叫集成电路总线,是一种串行通信总线(同步串行半双工),使用多主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备而发展。

2.IIC(I²C)是用来干什么的?

为了让主板或者嵌入式能与其他外设之间通信而开发的通信协议。比如STM32想要使用其他外设进行通信就需要接线-写代码-烧录运行  即STM32与外设通信过程;

3.IIC(I²C)通信过程

接线:搭建通信线路;写代码:指定通信传输协议;烧录运行:正式通信;;

通信可以比喻为两个人说话 :能不能听懂--双方之间约定的信号协议  ;;速度是否适合:双方满足时序要求。即两线——串行数据(SDA)串行时钟(SCL) 线在连接到总线的器件间传递信息。SDA:数据信号线,用于传输数据 SCLK:时钟信号线用于产生时钟频率,控制时序,实现协议过程;   一个IIC总线上,可以挂载多个外接设备。由于是单总线进行数据传输,所以IIC协议是半双工的。

3.1空闲状态

SDA与SCL同是出于高电平。由上拉电阻拉高

3.2起始信号与停止信号

开始信号:当SCLK时钟信号一直处于高电平状态时,SDA线由高电平跳变到低电平这个动作,表示起始信号

结束信号:当SCLK时钟信号一直处于高电平状态时,SDA线由低电平跳变到高电平这个动作,表示结束信号

3.3应答信号ACK

发送器每发送一个字节,就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。应答信号为低电平则为有效应答位(ACK简称应答位),表示成功接收该字节;若为高电平则为非应答位(NACK)表示未接收成功; 低有高无

在SCL高电平期间 SDL必须稳定;

等待数据线是高 return1; 是低 return 0;

SCL为1时观察SDA是否为0  确定是否产生应答

3.4数据有效性

在SCL电平上升沿到来之前和之后数据必须稳定 如下图所示

3.4.1发送数据

3.4.2读取数据

3.5数据的传送

每一位数据都有一个时钟脉冲相对应,即在SCL时钟的配合下,在SDA上逐位串行传输每一位数据

4.实际中如何完成通信? 

总结:在 I2C 通信中,主设备主动控制通信的开始和结束,以及数据的读取和写入。从设备则在被选择后响应主设备的请求,但不会主动发起通信。信号的发出是由主设备根据通信协议和操作需要决定的。

IIC总线可挂很多设备 多个主设备 多个从设备

IIC协议超详细解释(适合小白入门)_板栗阿叔的博客-CSDN博客

第52讲 I2C通信实验-M3_哔哩哔哩_bilibili


http://www.kler.cn/news/147879.html

相关文章:

  • 《使用Python将Excel数据批量写入MongoDB数据库》
  • C++(20):通过remove_cvref_t退化类型
  • 自动化部署 扩容openGauss —— Ansible for openGauss
  • 文件上传绕过
  • 设计模式篇---外观模式
  • 搜索的剪枝
  • 论文阅读:“Appearance Capture and Modeling of Human Teeth”
  • 【复杂网络建模】——ER网络度分布、无标度网络度分布
  • centos 7.7 安装Python-3.7.4
  • 华为云编译构建CodeArts Build常见问答汇总
  • VMware系列:此平台不支持虚拟化 Intel-VT-x/EPT 或 AMD-V/RVI
  • 编译器设计02-前端概述
  • .c怎么转.exe?10000字长文带你深剖编译过程!
  • Vatee万腾科技新高峰:Vatee前瞻性创新的数字化之力
  • 西南科技大学电路分析基础实验A1(元件伏安特性测试 )
  • 播放器开发(三):FFmpeg与SDL环境配置
  • 村村通工程(Prim算法)/最小生成树Prim算法【数据结构】
  • Android : SQLite 增删改查—简单应用
  • F5社区学习心得分享:如何克服云迁移挑战?
  • C#文件流FileStream类
  • GEE教程——提取NASA NEX-GDDP 数据中的指定时间范围内的pr数据(含超限提示)
  • 聊聊VMware vSphere
  • C++不同平台下的RTTI实现
  • 云服务器:未来的计算力量
  • 如何解决中小制造业企业信息化难题?
  • Visual Studio(VS) C++程序LNK2005错误,提示“error LNK2005: _XXX已经在xxx.obj中定义”解决方案
  • Pangolin报错
  • 详解HTTP协议(介绍--版本--工作过程--Fiddler 抓包显示--请求响应讲解)
  • windows安装 evo
  • hadoop集群环境搭建和常用命令