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

[附源码]支持30种烟雾检测,最强ADPD188BI烟雾检测器(I2C接口)

一、IIC篇

先记录I2C的基础知识和注意事项等。

1.I2C是一个半双工的串行通信协议,通讯依靠时钟线来同步数据的发送和接收,在SDA传输数据的过程中,都要有一个时钟信号配合,所以时序就非常重要。

时序包含起止信号跳变,数据有效性

以及在没发送一个字节数据后的应答信号有效性判断

一条完整的数据帧格式如下

I2C特点:

  1. 标准模式(Standard Mode):100 Kbps
  2. 快速模式(Fast Mode):400 Kbps
  3. 高速模式(High speed mode):3.4 Mbps
  4. 超快速模式(Ultra fast mode):5 Mbps
  5. 最大主设备数:无限制;
  6. 最大从机数:理论上,1008个从节点,寻址模式的最大节点数为2的7次方或2的10次方,但有16个地址保留用于特殊用途
  7. 一个 SCL 时钟脉冲传输一个数据位,传输一个字节带有一个应答位
  8. 从机设备具有唯一的寻址地址
  9. 总线进入空闲状态, SCL 和 SDA 都为高电平
  10. I2C通讯支持:7 位寻址和10 位寻址两种模式
  11. 如果总线上从机接收数据,在第 9 个时钟周期不响应主机,从机必须发送 NACK。如果总线上主机接收数据,第 9 个周期发送 NACK,从机接收到 NACK,从机停止发送数据
  • 发送停止条件释放总线 ;
  • 发送重新开始条件开始一个新的通信

12.每传输一个字节,后面跟随一个应答位。通过将 SDA 线拉低,来允许接收端回应发送端。ACK 为 一个低电平信号,当时钟信号为高时, SDA 保持低电平则表明接收端已成功接收到发送端的数据。当主机作为发送器件时,如果从机上产生无响应信号(NACK) ,主机可以产生停止信号来退出数据传输,或者产生重复起始信号开始新一轮的数据传输。当主机作为接收器件时,发生无响应信号(NACK) ,从机释放 SDA 线,使主机产生停止信号或重复起始信号

13、总线仲裁

硬件I2C和软件I2C的区别:

I2C软件示例:

1.基于裸机版的I2C

/*******************************

http://www.mrgr.cn/news/24972.html

相关文章:

  • Android 11 FileProvider的使用和限制
  • ssl证书如何安装到服务器
  • stm32单片机个人学习笔记1(简单介绍)
  • TESSY创建以及设计一个测试用例
  • 【3.6 神经网络中的输出层】
  • Keras中initializers模块常见模型初始化方法详解
  • wx小程序渗透思路
  • 深度学习算法研究与应用
  • [数据集][目标检测]烟叶病害检测数据集VOC+YOLO格式612张3类别
  • ElementUI 快速入门:使用 Vue 脚手架搭建项目
  • 问:Java反射的原理是什么?如何反射,有哪些场景?
  • 深入理解Java内存模型:对并发编程的影响
  • 1450. 在既定时间做作业的学生人数
  • 智慧物流系统小程序的设计
  • Kotlin中的冷流和热流以及如何让Flow停下来
  • 研发规范之六脉神剑
  • [晕事]今天做了件晕事44 wireshark 首选项IPv4:Reassemble Fragented IPv4 datagrams
  • ORB-SLAM2关键点总结
  • 【人脸检测】SCRFD:训练数据采样和计算分配策略结合的高效人脸检测方法
  • JAVA智能辅导因材施教家教系统小程序源码