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缓冲区,还并不是总是容易实现的。)没啥体验,可能做的项目太低级了┭┮﹏┭┮

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值