0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

解析IIC专题原理及应用篇(一)

FPGA之家 来源:CSDN技术社区 作者:Angelia_cfq 2021-06-01 11:43 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、操作

1.1、系统的概述

I2C系统使用串行数据线(SDA)和串行时钟线(SCL)进行数据传输。连接到这两个信号的所有设备必须具有漏极开路或集电极开路输出。这两条线上的逻辑“与”功能都通过外部上拉电阻器来实现。

数据在主机和从机之间以字节为单位同步传输到SDA线上。每个数据字节为8位长。每个数据位都有一个SCL时钟脉冲,并且首先发送MSB。每个传送的字节后都有一个应答位。在SCL的高电平期间对每个位进行采样;因此,只能在SCL的低电平期间更改SDA线路电平,并且必须在SCL的高电平期间保持稳定。若SCL为高电平时,SDA线上存在跳变则被解释为命令(请参见START和STOP信号)。

1.2、IIC协议

从宏观的角度讲,IIC协议可以包含以下四个部分:

1、开始信号的产生(START)

2、从机地址传输

3、数据传输

4、停止信号产生(STOP)

1.2.1 开始信号(START)

当总线空闲/就绪时,这意味着没有主机设备正在使用总线(SCL和SDA线均为高电平),主机可以通过发送START信号来启动传输。START信号(通常称为STA-bit)定义为:SCL为高电平时,SDA从高到低的跳变。START信号表示新数据传输的开始。Repeated START是一种启动信号,但没有先产生一个停止信号。主机使用这种方法在不释放总线的情况下,以不同的传输方式(例如,从写入设备到从设备读取)与另一个从机或同一从机通信

当命令寄存器中的STA-bit置1且RD或WR位置1时,内核产生一个START信号。根据SCL线的当前状态,将生成START或Repeated START。

1.2.2 地址线传输

在START信号之后,主机立即传送的数据的第一个字节是从机地址。这是一个7位的调用地址,后跟RW位(7address+1RW)。RW位向从机发送数据传输方向信号。一个系统中的两个从机不能具有相同的地址。只有地址与主机发送的地址匹配的从机会通过在第9个SCL时钟周期将SDA拉为低电平来返回一个应答位来做出响应。(从机拉低SDA作为ACK)

内核将从地址传输视为写操作。将从设备的地址存储在发送寄存器中,并将WR位置1。然后,内核将在总线上传输从机地址。

1.2.3 数据传输

一旦成功完成从机寻址,就可以按照主机发送的RW位指定的方向逐字节进行数据传输。在第9个SCL时钟周期中,每个传输的字节后都有一个应答位。如果从机发出“无应答”信号,则主机可以产生一个STOP信号来中止数据传输,或者产生一个Repeated START信号并开始一个新的传输周期。

如果作为接收设备的主机未应答从机,则从机释放SDA线供主机产生STOP或Repeated START信号。

要将数据写入从机,将要发送的数据存储在发送寄存器中,并将WR位置1。要从从机读取数据,请将RD位置1。在传输过程中,核心设置了TIP标志(Transfer in progress),指示正在进行传输。传输完成后,将重置TIP标志,设置IF标志(Interrupt Flag),并在使能时产生中断。设置IF标志后,接收寄存器包含有效数据。当TIP标志复位时,用户可以发出新的写或读命令。

1.2.4 停止信号

主机可以通过产生一个STOP信号来终止通信。STOP信号(通常称为P位)定义为SCL为逻辑1时SDA从低到高的跳变。

1.3、仲裁过程

1.3.1 时钟同步化

I2C总线是真正的多主机总线,可以在其上连接多个主机。如果两个或多个主机同时尝试控制总线,则时钟同步过程将确定总线时钟。由于I2C信号采用“线与”连接,从高到低的跳变会影响连接到总线的所有设备。因此,SCL线上从高电平到低电平的转换会导致所有相关设备都将其低电平周期计算在内。一旦设备时钟变低,它将使SCL线保持在该状态,直到达到时钟高状态为止。由于采用“线与”连接,因此SCL线将由具有最短低电平周期的设备保持低电平,并由具有最短高电平周期的设备保持高电平。

665fc762-c238-11eb-9e57-12bb97331649.png

1.3.2 时钟伸展

从设备可以使用时钟同步机制来降低传输比特率。主机将SCL拉低后,从机可以拉低SCL为所需的时间,然后释放它。如果从机的SCL低电平周期大于主机的SCL低电平周期,则将延长所得到的SCL总线信号低电平周期,从而插入等待状态。

编辑;jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IIC
    IIC
    +关注

    关注

    11

    文章

    308

    浏览量

    40376
  • SDA
    SDA
    +关注

    关注

    0

    文章

    125

    浏览量

    29396
  • SCL
    SCL
    +关注

    关注

    1

    文章

    244

    浏览量

    17934
  • MSB
    MSB
    +关注

    关注

    0

    文章

    13

    浏览量

    8500

原文标题:IIC专题原理及应用篇(一)

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Labview 解析dxf文件并显示<

    Labview软件开发过程中,大家会遇到导入dxf文件的需要,今天开个帖子,聊聊如何解析和显示dxf文件,同时用图表来显示。 首先来介绍下dxf, 简单来说他就是图形文件的种文本格式,具有固定
    发表于 11-14 22:45

    基于hbirdv2-sdk的iic 0.96寸lcd调试

    .前言 简介: 基于hbird-sdk的硬件IIC控制 0.96寸lcd. 二.工程结构 硬件: mcu200t fpga开发板 软件结构: 主要由Makefile main.c
    发表于 10-30 06:20

    惠山经开区举办“机器人未来技术展望”专题讲座 丁汉院士解析前沿趋势

    惠山经开区举办“机器人未来技术展望”专题讲座 丁汉院士解析前沿趋势 惠山经开区讲座现场 2025年10月10日,惠山经开区“机器人未来技术展望”专题院士讲座隆重举行。中国科学院院士、华中科技
    的头像 发表于 10-11 10:44 177次阅读
    惠山经开区举办“机器人未来技术展望”<b class='flag-5'>专题</b>讲座 丁汉院士<b class='flag-5'>解析</b>前沿趋势

    届OpenHarmony CTF专题赛圆满收官

    届OpenHarmony CTF专题赛决赛在香港科技大学深港协同创新研究院成功举办。经过激烈的线上初赛,从566支战队、1307名选手中选拔出的15支顶尖CTF战队、60位优秀选手会师于此,向冠军之位发起冲击。
    的头像 发表于 09-03 09:58 1134次阅读

    A21:分立元件知识与应用专题--电感知识及应用案例

    分立元件知识与应用专题--电感知识及应用案例
    的头像 发表于 07-15 19:24 294次阅读
    A21:分立元件知识与应用<b class='flag-5'>专题</b>--电感知识及应用案例

    A21:分立元件知识与应用专题--电容知识及应用案例

    分立元件知识与应用专题--电容知识及应用案例
    的头像 发表于 07-15 19:22 312次阅读
    A21:分立元件知识与应用<b class='flag-5'>专题</b>--电容知识及应用案例

    匠人手记:个单片机工作者的实践与思考

    本文是作者在从事单片机开发与应用的过程中,将实际经验教训和心得感悟加以总结,整理而成的工作手记。每篇手记论述专题独立成,同时又相互关联。全书内容包含入门基础、经验技巧、设计案例、网络杂文等四个部分。获取完整文档资料可下载附
    发表于 05-27 15:53

    零死角玩转STM32——中级

    本文共4册,由于资料内存过大,分开上传,有需要的朋友可以去主页搜索下载哦~ 《零死角玩转 STM32》系列教程由初级、中级、高级、系统、四个部分组成,更适合初学者,步步为营,
    发表于 05-21 13:56

    IIC接口的IIC_SCL和IIC_SDA引脚做普通GPIO,程序启动不起来怎么解决?

    想用IIC接口的IIC_SCL和IIC_SDA引脚做普通GPIO,两个引脚对应的是GPIO58和GPIO59,更改代码将设置为普通GPIO引脚模式后,程序启动不起来。问:这种情况如何解决,官方支持这种应用吗?
    发表于 05-06 08:59

    为什么IIC总线会难住这么多人?

    为什么 IIC 总线让很多人头疼?其实可以把它想象成场复杂的 "设备对话游戏",新手容易在这些地方栽跟头:
    的头像 发表于 03-12 10:14 810次阅读
    为什么<b class='flag-5'>IIC</b>总线会难住这么多人?

    研华与昆山数字化创新协会联合举办AI Agent专题论坛

    研华与昆山数字化创新协会联合举办AI Agent专题论坛,展示了与DeepSeek大模型结合的“零代码”AI Agent智能体平台,帮助企业轻松实现智能化转型。通过现场技术分享和案例解析,参与者深入了解了AI在供应链、生产管理、数据分析等领域的应用,探索了零代码开发在制造
    的头像 发表于 03-01 10:00 1421次阅读

    解析工业互联网

    电子发烧友网站提供《解析工业互联网.pptx》资料免费下载
    发表于 02-20 16:42 1次下载

    DLPC3479 IIC通讯异常的原因?

    电路是按照TI硬件方案自主设计的电路,但是没有使用Cypress,直接用了个FPGA通过IIC控制,上电后DLP3479的HOST_IRQ引脚正常拉低,但是遇到如下问题: 1. 按照说明发送
    发表于 02-18 07:04

    天合光能荣获光伏组件回收专题等奖

    近日,工业和信息化部第二届能源电子产业创新大赛太阳能光伏赛道决赛在山东临沂隆重举行。天合光能全回收再生光伏组件在众多参数作品中脱颖而出,荣获光伏组件回收专题等奖,也是该专题的最高奖项。
    的头像 发表于 01-06 11:07 830次阅读

    文搞懂软核的固化、启动和MultiBoot实现

    这也是《FPGA实现串口升级及MultiBoot》系列中的文章,作为专题单独出来说明。 本篇文章分为三个主题:固化、启动和MultiBoot实现。 固化分为SPI和BPI FL
    的头像 发表于 12-07 11:23 2910次阅读
    <b class='flag-5'>一</b>文搞懂软核的固化、启动和MultiBoot实现