IIC通信原理

目录

前言        

1、IIC的通信硬件要求

2、IIC通信时序

3、通信协议


前言        

        IIC通信是一种半双工通信方式,通信的硬件线路由一条SCL(时钟线)和SDA(数据线)组成,此外相互通信的设备还需要共地,两条通讯线路需要上拉(外接上拉电阻)。其简图如下:

1、IIC的通信硬件要求

        在确保上拉电阻所接电源稳定情况下(防止来自电源的干扰),高速IIC线路最高传输速率可以达到400kb/s(有说过可以去到500kb/s)。如果需要调整传输速率,可以先调整上拉电阻阻值,常用4.7K,但也有使用2k和1k的。另外,在环境恶劣的地方(工控环境下,周围有大功率设备)使用此通信方式,或是通信线路比较长的情况下(当去到10M左右)传输速率明显减慢,这时候,应该使用抗干扰的屏蔽线。

2、IIC通信时序

        IIC的通信时序图如下:

1、线路空闲时,SCL和SDA均为高电平。

2、准备发送数据时SDA线先从高电平拉低大于4.7us后,SCL也随之从高电平拉低;当SCL也拉低时,表示数据开始传输,与此同时该发送端独占总线,其他设备无法访问。

3、在SCL为低电平时(大越可以有2us时间),SDA可以改变电平表示将要发送的一位数据(高电平为逻辑1,低电平为逻辑0)。然后SCL开始上升为高电平,保持一段时间(大约大于4us),然后从机开始读取SDA上的数据。等待发送端把SCL再次拉低时,SDA又可以改变下一个将要发送的数据对应逻辑电平。

4、当发送完8位数据以后,SDA将会产生一个ACK应答信号,具体将数据线拉低。等待SCL的第九个时钟周期拉高电平以后读取。若ACK为低电平,则从机接收成功并且返回了应答。若ACK为高电平,则从机不反应。

5、当读发送端完成第九个发送周期以后,再次拉低电平,然后(大越2us后)再次拉高,SCL拉高后4us,SDA也随之拉高,表示发送结束。若发送完8位数据还需要继续发送时,之直接从第4步跳回第3步。

上述具体通信的时间间隔是可以调整的。

3、通信协议

 通信的协议简图如下:

         由其实条件开始,主机先发送前面7位数据位从机地址,然后再发送一个读写指令。其中:0表示主机写数据,1表示主机读数据,然后再等待从机的应答。

        上图是主机写入从机数据,后面每次发送八位数据之后,都会有一个应答,直到数据发送完毕。每一位数据的发送,都是从高八位到低八位方向发送。

        如果是主机读取从机数据,则读写指令为1,然后主机改为接收模式,对应从机独占IIC总线并且发送对应数据,其原理与主机发送数据一致,应答信号改为主机发送。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值