我是靠谱客的博主 悦耳苗条,最近开发中收集的这篇文章主要介绍IIC通信协 最通俗易懂的解释,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

校电子设计大赛做的低年级赛题是简易电压计的制作,里面的eeprom可擦可编程只读存储电路,AD转换电路以及ADS1115测量电压电路都用到了这一协议,故进行了学习。
IIC 通信协议(Inter-Integrated Circuit)是嵌入式系统中常用的一种总线协议;
其特点如下:
二线制
信号线包含SDA和SCL,且信号线是双向的,开路结构,需要通过上拉电阻到VCC,具体的电阻值影响的是信号反应速度和驱动能力。
通过10K电阻上拉到5V的VCC
通过4.7K的电阻上拉到3.3V的VCC
通过10K电阻上拉到5V的VCC
8位地址线
最多可以挂载的器件127个(8位地址位,去掉一位广播地址,然后去掉0x00)。
粗俗来说,使用到这一协议的器件都由SDL(串行数据线)、SCL(串行时钟)两条线与单片机IO口相连,通过寄存器地址识别数据传输。
在这里插入图片描述
传输特点
开始时:SDA、SCL都处于高电平

void Init()
{
    SCL = 1;
    delay();
    SDA = 1;
    delay();
}

IIC开始的条件:SCL保持高电平,SDA从高电平跳跃到低电平

void StartUp
{
    SCL = 1;
    SDA = 1;
    delay();
    SDA = 0;
    delay();
}

在这里插入图片描述
IIC传输时:要保持SCL为高电平不变,SDA保持稳定,此时数据锁定!要改变SDA数据就要在SCL低电平时
在这里插入图片描述

IIC停止通讯的条件:SCL保持高电平,SDA从低电平跳跃到高电平

void End()
{
    SCL = 1;
    SDA = 0;
    delay();
    SDA = 1;
    delay();
}

在这里插入图片描述
总结:作为数字通信协议中的小协议,IIC和SPI各有所长。
IIC的优点:
1.硬件资源耗费小:IIC 只需两根信号线,而标准SPI至少四根信号,如果有多个从设备,信号需要更多。虽然只有有限的7位地址空间,但新标准中已经使用使用10位地址。(我咋没见识过?)
2.优雅性(呸呸,文绉绉的)它可以用很轻盈的架构实现了多主设备仲裁和设备路由。
缺点:传输数据慢!!!!(如果应用中必须使用高速数据传输,那么SPI是必然的选择。因为SPI是全双工,IIC 的不是。SPI没有定义速度限制,一般的实现通常能达到甚至超过10 Mbps。IIC 最高的速度也就快速+模式(1 Mbps)和高速模式(3.4 Mbps),后面的模式还需要额外的I/O缓冲区,还并不是总是容易实现的。)没啥体验,可能做的项目太低级了┭┮﹏┭┮

最后

以上就是悦耳苗条为你收集整理的IIC通信协 最通俗易懂的解释的全部内容,希望文章能够帮你解决IIC通信协 最通俗易懂的解释所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(30)

评论列表共有 0 条评论

立即
投稿
返回
顶部