学习笔记:软件IIC代码实现

最近完成了一个产品电流采集测试方案,有点心得,记录一下,分两篇,一篇IIC通讯,一篇INA219电流采集模块使用介绍。

一.通讯协议简介

芯片间总线(Inter Interface Circuit,IIC),是应用广泛的芯片间串行扩展总线。目前世界上采用的IIC总线一共有两个规范,分别由荷兰飞利浦公司和日本索尼公司提出的,现在基本采用荷兰飞利浦的IIC总线的技术规范。
IIC通讯主要通过SCL(时钟)和SDA(数据)达到通讯的功能,SCL为时钟线,保证通讯信 的时许,SDA为数据线,数据主要通过此线来读取;

二.通讯详解

IIC总线进行数据传送时,时钟信 为高电平期间,数据线上的数据必须保持稳定;只有在时钟线上的信 为低电平期间,数据线上的高电平或低电平状态才允许变化。,但开始信 和结束信 不在这个限制范围内;
开始信 :在SCL和SDA同时处于高电平的情况下,拉低SDA,即为开始信 ,可以开始数据传输;
结束信 :结束信 和开始信 相反,在SCL处于高电平,SDA处于低电平的情况下,拉高SDA,即为结束信 ,结束数据传输;
应答信 :IIC通讯中,在SCL处于高电平时,读取数据;在八个周期后,接受端需要给出应答,即在SCL第九个高电平前,拉低SDA,即给出应答;一般发送数据时,需要判断设备是否有应答,来确认数据传输正常;
非应答信 :即数据传输结束时,不应答,跟应答相反就行;

第二步其实就是第一步的重复:

第六步:

获取的数据为0x0700
获取的数据为0x0700

以上便是整个实现软件IIC的流程了,本来是合在一起的逻辑,被拆开用来讲解了,有不对或疑问的地方欢迎大家提出探讨。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年7月22日
下一篇 2022年7月22日

相关推荐