当前位置:首页>滚动 > >正文

I2C总线协议的工作流程_世界滚动

  • 2023-06-02 13:53:32来源:硬件系统架构师

I2C-1-----I2C协议和工作流程


【资料图】

1.I2C的线控和收发步骤

I2C 总线是一个标准的双向接口,使用一个称为主器件的控制器与从器件进行通信。物理I2C接口由串行时钟线SCL和串行数据线SDA组成。SDA和SCL线都必须通过上拉电阻器连接到VCC。上拉电阻器的大小由I2C线路上的电容量决定(有关I2C的Cbus计算后面会专门讲到)。数据传输只能在总线空闲时启动。如果在STOP条件后SDA和SCL线均为高电平,则总线被视为空闲。

除非被主器件成功寻址,否则从器件无法传输数据。I2C总线上的每个器件都有一个特定的器件地址,用于区分同一个I2C总线上的其他器件。许多从属设备在启动时需要配置以设置设备的行为。这通常在主机访问具有唯一寄存器地址的从机内部寄存器映射时完成。一个设备可以有一个或多个寄存器,用于存储、写入或读取数据。I2C与器件之间的通信由主器件发送一个 启动条件而开始, 并由主器件发送一个停止条件而终止。在SCL为高电平时在SDA线上进行的从高到低转换定义了启动条件。当主器件通过产生一个启动条件控制了总线时,除非停止条件释放总线,否则所有其他主器件都无法控制总线。在SCL为高电平时在SDA线上进行的 从低到高转换定义了停止条件。在启动条件与停止条件之间,必须执行数据通信。

主设备访问从属设备的一般程序如下:

下面是主器件要向从器件发送或写入数据时的步骤:

步骤一,主发送器发送一个启动条件并寻找从接收器的地址。

步骤二,主发送器向从接收器发送数据。

步骤三,主发送器利用一个停止条件终止传输。

下面是主器件要从从器件接收或读取数据时的步骤:

步骤一,主接收器发送一个启动条件并寻找从发送器的地址。

步骤二,主接收机将请求的寄存器发送到从发射机进行读取

步骤三,主接收器从从发送器接收数据。

步骤四,主接收器利用一个停止条件终止传输。

2.启动和停止条件

与该设备的I2C通信由主机发送START条件启动,并由主机发送STOP条件终止。当SCL为高时,SDA线上的高到低转换定义了START条件。当SCL为高时,SDA线上的低到高转换定义STOP条件。图2-1演示了Start和Stop的波形:

图2-1:启动和停止条件示例

3.重复启动条件

重复启动条件类似于启动条件,用于替代背靠背的先停止后启动条件。它看起来与START条件相同,但与START条件不同,因为它发生在STOP条件之前(当总线不空闲时)。当主设备希望启动新的通信,但不希望在STOP条件下让总线空闲时,这非常有用,这有可能导致主设备失去对另一主设备的总线控制(在多主设备环境中)。

4. 数据有效性和字节格式

在SCL的每个时钟脉冲期间传送一个数据位。SDA线上的一个字节由八位组成。字节可以是设备地址、寄存器地址,也可以是从设备写入或读取的数据。数据首先传输最高有效位(MSB),最高有效位MSB位于数据帧的开头, 最低有效位LSB位于数据帧的末尾, 后面跟随确认ACK或未确认NACK。任何数量的数据字节都可以在START和STOP条件之间从主设备传输到从设备。SDA线上的数据必须在时钟周期的高相位期间保持稳定,因为SCL为高时数据线中的变化被解释为控制命令(START或STOP)。

图2-2:单字节数据传输示例,此时SDA线稳定,SCL线高

图2-2展示了一个发送1、0、1、0、1、0、1、0的示例,以十六进制表示为AA,包含一个ACK。当SCL为高电平时,会将数据线中的变化视为控制指令,例如启动和停止。数据的每个字节,包括地址字节,后面都跟随一个来自接收器的ACK位。ACK位允许接收器向发送器告知它已成功收到字节,可以发送另一个字节了。在接收器可以发送ACK之前,发送器必须释放 SDA 线。要发送ACK位,接收器必须在ACK/NACK相关时钟周期,即周期9的低相位期间拉低 SDA 线。当SDA线在ACK/NACK相关时钟周期期间保持高电平时,将被视为NACK。必须考虑设置时间和保持时间。

5.确认(ACK)和不确认(NACK)

有几个条件会导致生成NACK。

条件一,接收器正在执行某个实时功能,且未准备好开始与主器件进行通信,因此无法接收或发送数据。

条件二,在传输期间,接收器收到了它无法理解的数据或指令。

条件三,在传输期间,接收器无法再接收更多的数据字节。

条件四,主接收器已读取数据,并通过NACK向从器件表明了这种情况。

图2-3:NACK示例,SDA线在ACK/NACK相关时钟周期期间保持高电平时,视为NACK

6.数据传输

数据必须发送到从设备或从从设备接收数据,但实现这一点的方式是读取或写入从设备中的寄存器。寄存器是从存储器中包含信息的位置,无论是配置信息还是要发送回主存储器的一些采样数据。主设备必须将信息写入这些寄存器,以便指示从设备执行任务。虽然I2C从设备中有寄存器是常见的,但请注意,并非所有从设备都有寄存器。有些设备很简单,只包含一个寄存器,可以通过在从地址之后立即发送寄存器数据而不是寻址寄存器来直接写入。单个寄存器设备的一个例子是8位I2C开关,它通过I2C命令控制。由于它有1位来启用或禁用信道,所以只需要1个寄存器,而主机只在从地址之后写入寄存器数据,跳过寄存器号。

1.在I2C总线上写入从设备:

图2-4显示了一个向从器件写入两个字节时的位和条件模式。主器件在总线上生成一个启动条件。主器件生成一个7位的从器件地址以及最后一个位,即读取/写入位。在本例中,此位是一个写入位,被设置为0,表示为负W。假设总线上存在一个具有此地址的从器件,则此从器件 会生成ACK。随后,主器件会发送8个连续寄存器位或曰字节,从器件随后会生成一个ACK以 确认收到这些位。接下来,主器件会发送第二组连续位,也就是第二个字节,从器件会随即再次确认,以告知主器件它已收到此字节。然后,主器件会生成停止条件以终止此事务。

要在I2C总线上写入,主设备将在总线上发送一个启动条件,其中从设备的地址以及设置为0的最后一位(R/W位)表示写入。在从设备发送确认位后,主设备将发送它希望写入的寄存器的寄存器地址。从设备将再次确认,让主设备知道它已经准备好了。此后,主设备将开始向从设备发送寄存器数据,直到主设备发送了所需的所有数据(有时仅为一个字节),并且主设备将在STOP条件下终止传输。灰色显示主机控制SDA线,白色显示从机控制SDA线。

图2-4:显示了将单个字节写入从寄存器的示例

2.从I2C总线上的从设备读取:

从从设备上读取与写入非常相似,但需要额外的步骤。为了从从设备读取数据,主设备必须首先指示从设备要读取的寄存器。这是通过主机以与写入类似的方式开始传输,发送R/W位等于0(表示写入)的地址,然后是它希望从中读取的寄存器地址来完成的。一旦从设备确认该寄存器地址,主设备将再次发送START条件,随后是R/W位设置为1的从设备地址(表示读取)。这一次,从设备将确认读取请求,主设备释放SDA总线,但将继续向从设备提供时钟。在数据的这一部分,主设备将成为主接收机,从设备将成为从发射机。

主设备将继续发送时钟脉冲,但将释放SDA线路,以便从设备可以传输数据。在数据的每个字节结束时,主机将向从机发送ACK,让从机知道它已经准备好接收更多数据。一旦主设备接收到预期的字节数,它将发送NACK,向从设备发出信号以停止通信并释放总线。主机将使用STOP(停止)条件进行跟踪。

图2-5:显示了从从寄存器读取单个字节的示例

图2-5是一个从从器件读取两个字节的位和条件模式。主器件在总线上生成一个启动条件。主器件生成7位的从器件地址以及最后一个位, 即读取/写入位。在本例中,此位是一个读取位,被设置为 1,表示为字母R。假设总线上存在一个 具有此地址的从器件,则此从器件 会生成一个ACK。随后,从器件会发送8个连续寄存器位或一个字节,主器件随后会生成一个ACK以确认收到这些位。接下来,从器件会发送第二组连续位,也就是第二个字节,但主器件将不确认,即NACK,告知从器件它已接收完这些数据。然后,主器件会生成停止条件以终止此进程。这两种模式代表主器件与从器件之间进行的最基本读取和写入操作。

标签:

延伸阅读

推荐阅读

I2C总线协议的工作流程_世界滚动

I2C总线协议的工作流程-  I2C总线是一个标准的双向接口,使用一个称为主器件的控制器与从器件进行通信。

专访达利欧:全球债务危机有可能发生 可预见2024年及以后将迎大萧条|头条

本期策划为《经济大家说》第026期本期嘉宾|瑞·达利欧,桥水基金创始人文|腾讯财经祝玉婷 郝博阳“有五种

近视:防胜于控控重于治

对于近视问题,青少年及家长、学校、社会各方面都非常关注。近视该如何预防?一旦近视如何控制和治疗?还可

好声音丁丁闺蜜_丁丁闺蜜|当前观点

1、《丁丁》译音版:2、那系丁丁来丁丢喝酒喔爱帮,3、闺蜜丢困紧旁,4、书郎头未当,心未环,5、嘿久尴尬舞

2023年云南养老金调整最新消息 2022~2023云南养老金上调方案细则参考

根据人社部最新消息:全国调整比例按照2022年退休人员月人均基本养老金的3 8%确定。基本养老金是指在劳动者

15岁女孩订婚被知情人报警阻止

6月1日,水口镇派出所一工作人员称,女孩订婚得到了家长同意,已满15周岁,已将情况告知其家长,并将女孩带

节约用水手抄报内容30字(有关节约用水手抄报内容)

1、节约用水手抄报内容:①如果没有了水,我们人类就可能渴死;如果世界没有了水,地球就会干裂;如果没有了

首套房利率调整“管热也管冷”

进入6月份,“首套住房贷款利率政策动态调整机制”将迎来新一期评估。当前,市场上不乏一些争论之声——

环球微动态丨西红柿炒蛋可以放黄花吗?

西红柿炒蛋不可以放黄花。我个人觉得不好吃,西红柿炒鸡蛋还可以,但和黄花菜炒,黄花菜会变酸。黄花菜是我

2023级新秀观察(49):NCAA新科MOP选秀行情不佳,勇士倒是可以考虑一下他? 观天下

换句话说,萨诺戈这一套打法,在NCAA赛场确实是行得通,甚至可以说是很有效,但是毕竟NBA是一个比拼天赋和

全球快资讯:划转是什么意思

1、《北京市基本养老保险规定》北京市人民政府令第183号,单位缴纳的养老保险全部划转至统筹基金,个人账户

天天快看点丨今天是“六一”,北京为小朋友送礼物,看看都有哪些

北京日报客户端|记者曹政6月1日,北京为小朋友“送”上儿童节“礼物”。“北京将站在儿童视角,以‘1米的高

35岁厂里还要吗(35岁还能在厂里上班吗)_每日看点

想必现在有很多小伙伴对于35岁还能在厂里上班吗方面的知识都比较想要了解,那么今天小好小编就为大家收集了

动态:探访戴森全球总部,我们发现了它创造力 MAX 的秘密

经过苍苍莽莽的雨树,经过干净如洗的街道,经过远处马六甲海峡吹来的咸风——当我们坐的大巴车停在一座古老

天天速读:猪肉炖白菜图片_猪肉炖白菜

你们好,最近小信发现有诸多的小伙伴们对于猪肉炖白菜图片,猪肉炖白菜这个问题都颇为感兴趣的,今天小活为

世界球精选!印度航空部长JyotiradityaScindia表示,在捷行航空倒闭导致票价飙升后,印度政府正在与航空公司合作控制票价。Scindia说

印度航空部长JyotiradityaScindia表示,在捷行航空倒闭导致票价飙升后,印度政府正在与航空公司合作控制票

弃矛从政什么意思_弃矛从政是什么意思

弃矛从政什么意思,弃矛从政是什么意思很多人还不知道,现在让我们一起来看看吧!1、矛为兵器,意为武功;

大宗交易:中国能建成交97.2万元,折价10.00%(06-01)-全球时快讯

2023年6月1日,中国能建发生1笔大宗交易,总成交45万股,成交金额97 2万元,成交价2 16元,折价10 00%。

尤夫股份:拟1.52亿元投建新项目 扩大工业丝差异化产品规模

【尤夫股份:拟1 52亿元投建新项目扩大工业丝差异化产品规模】尤夫股份(002427)5月29日晚间公告,公司拟建

砰砰博士的斩杀谜题攻略_砰砰博士的斩杀谜题

1、依次出牌:火红战斧超级战士防暴战士恐怖海盗恐怖海盗。继续打你手里的牌:恐怖海盗,恐怖海盗,恐怖奴

全球观察:调查 | “上交神器”专骗老师家长!这类网店谁来管

北京日报客户端|记者莫凡外观和真手机几乎一样,按一下甚至屏幕还能亮……一种价格低廉的仿真模型手机,正

瞄准无人驾驶飞行出租车 波音全资收购飞行汽车开发商Wisk|环球要闻

瞄准无人驾驶飞行出租车波音全资收购飞行汽车开发商Wisk,波音公司全资收购eVTOL(电动垂直起降飞行器)开发

布丁怎么做简单又好吃_怎么做布丁最简单_世界快资讯

1、首先冲调奶粉,加入少许白糖(根据你喜欢的甜度)控制量,搅拌白糖至融化。如果用冷牛奶,可以把牛奶倒入

外交部发言人:欢迎更多志同道合的伙伴早日加入金砖“大家庭”

针对有报道称委内瑞拉总统马杜罗表示希望加入金砖国家,外交部发言人毛宁31日在例行记者会上答问时表示,中

焦点热议:ChatGPT高三考试仅物理得零分 网友:原来AI也会偏科

ChatGPT自发布以来就风靡全球,有着广阔的前景和良好的发展前景。在搜狐的创作者大会上,与会者讨论了ChatG

每日热文:新农合生孩子报销比例2023年是多少?生孩子新农合能报销多少钱?

农村合作医疗生孩子能报销的金额这样计算!1、剖腹产:医疗费用在两千元到七千元以内的费用,可以获得45%的

【世界报资讯】还是看主线人工智能

咱们只跟随市场热点,做市场强势股,欢迎大家关注跟随市场主线主线,有资金关注,有赚钱效应的方向才更容易

神舟有新知丨增强现实技术+陆空多机位 神十六发射精彩画面是这样拍摄出来的|全球速读

神舟十六号载人飞船发射取得圆满成功景海鹏、朱杨柱、桂海潮三名航天员顺利进驻中国空间站空间站应用与发展

C罗赛季总结!进球数滑坡,争议采访被曼联抛弃,沙特0冠收尾 今日热门

随着沙特联赛第30轮利雅得胜利3-0完胜哈萨征服,本赛季C罗的征途结束,很遗憾他所在的利雅得胜利本赛季没有

当前通讯!泽璟制药接待国海证券等多家机构调研

泽璟制药接待国海证券等多家机构调研

猜您喜欢

Copyright ©  2015-2023 今日服装网版权所有  备案号:沪ICP备2023005074号-40   联系邮箱:5 85 59 73 @qq.com