I2C协议简介

主从芯片如何传输数据

AT24C02是一个存储芯片,需要把数据从ARM板发给AT24C02,也需要从AT24C02读取数据。

I2C是一个主从结构,Master发起传输,slave接收或回应

一主多从:如何选在哪个从芯片呢?每个从芯片都有设备地址,设备地址各不相同,这些地址都是在芯片里写死的。

设备地址是7位,先传输地址的最高位MSB。

SCL为低电平时,SDA可变化

SCL为高电平时,SDA不可变。

问:如何在SDA上实现双向传输?

主从设备里面必然有两个引脚,发送引脚和接收引脚。

1)主设备发送时,从设备不应该发送。

可以通过SCL区分控制。

2)主设备发送时,从设备的发送引脚不影响SDA上传输的数据。同样从设备发送时,主设备的发送引脚不要影响SDA上传输的数据。怎样做到呢?

如上图所示,使用开极电路。

使用一真值表来表示A、B以及SDA引脚电平状态。

1)当A为低电平时,主设备里的三极管不导通。B为低电平时,从设备里的三极管也是不导通的。那么此时SDA引脚的电平状态是什么?

如果没有接那个上拉电阻,那么SDA引脚是出于悬空状态的,悬空引脚的电平状态是无法确定的,这也是为什么加上上拉电阻的原因。加上上拉电阻后,此时SDA引脚电平的状态是由上拉电阻决定的,为1。

2)当A为低电平时,主设备三极管不导通。B为高电平时,从设备的三极管导通,因此SDA引脚的电平为低电平。

后面两种情况的分析,和上面两种情况的原理是一样的,在此不再赘述。

从上面分析可以看出,

1)芯片不影响数据线上即SDA上的数据,只要使这个芯片不驱动三极管即可。

2)要使SDA引脚上电平为高电平,不要驱动主从设备任意的三极管

3)要使SDA引脚上电平为低电平,驱动主从设备上的任意一个三极管即可。

举个例子:

主设备发送8bit数据给从设备

问题:SCL是不是一直由主控芯片来决定?

答案:不是的。第9个时钟以后,如果某一方(比如说,我现在还忙不过来,再等一会儿),它可以一直把SCL拉低。当SCL为低电平时,主从芯片都不应该使用I2C总线。

SCL为低电平时,表示大家都在忙,当变为高电平时,再来操作。

注意:对于I2C协议,它只能规定如何传输数据,这个数据是什么含义,它完全不能控制。数据的含义由设备决定。

原文地址:https://www.cnblogs.com/-glb/p/11483711.html

时间: 2024-10-12 00:28:27

I2C协议简介的相关文章

(1)I2c的简介和特性

I2C我是想全面深入的从嵌入式软件工程师的角度做个理解,刚刚还申请了一个专栏,这个好好写.         学习技术从外文文档看起-- 要全面了解I2C,可以从<I2C-bus specification and user manual>看起.I2C最初是由Philips提出的,那么这文档就是由NXP维护的.         I2C总线被全球超过50个公司的1000+个ICs所使用,已然是一个世界标准.另外,I2C总线与多种不同的控制总线是兼容的,比如SMBus(系统管理总线),PMBus(电

Http协议简介

Http协议简介 HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则.HTTP目前协议的版本是1.1.HTTP是一种无状态的协议. 无状态是指Web浏览器和Web服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后Web服务器返回响应(response),连接就被关闭了,在服务器端不保留连接的有关信息. 1. Http协议通信过程 HTTP遵循请求(Request)/应答(Response)模型.Web浏览器向Web服务器

JavaWeb:01——Web与HTTP协议简介

JavaWeb:01--Web与HTTP协议简介 Web的概念 什么是Web: Web是网络上使用最广泛的分布式应用架构. 旨在共享分布在网络上的各个Web服务器中的所有互相连接的信息. 三个特征: 用HTML来表达信息,以及建立信息与信息之间的链接. 用统一资源定位技术URL来实现网络上信息的准确定位. 用网络应用层协议HTTP来规范浏览器与Web服务器之间的通信过程. WEB的发展历程:略. HTTP协议简介 什么是HTTP协议: HTTP(Hypertext Transfer Protoc

模拟I2C协议学习点滴之原理框架

I2C是一种串行总线协议. 目前几种常用的串行总线有UART.SPI和I2C协议.UART协议的总线只有两条,发送(Transmit:TX)和接收(Receive:RX),没有时钟信号,这就要求两位数据的间隔要相同,它传送数据有严格的规定,每个数据以相同的位串形式传送,每个位串由起始位.数据位.奇偶位校验和停止位组成.SPI有三线和四线模式,四条总线分别为SCLK(时钟).MISO(主器件数据输入,从器件数据输出).MOSI(主器件数据输出,从器件数据输入).SS(从器件使能信号),SPI总线由

HTTP 协议简介

HTTP 协议简介 博客分类: acl开发--HTTP协议篇 网络协议http协议 一.TCP/IP 协议介绍 在介绍 HTTP 协议之前,先简单说一下TCP/IP协议的相关内容.TCP/IP协议是分层的,从底层至应用层分别为:物理层.链路层.网络层.传输层和应用层,如下图所示: 从应用层至物理层,数据是一层层封装,封装的方式一般都是在原有数据的前面加一个数据控制头,数据封装格式如下: 其中,对于TCP传输协议,客户端在于服务器建立连接前需要经过TCP三层握手,过程如下: 二.HTTP协议 2.

(原创) 巩固理解I2C协议(MCU,经验)

    题外话:这几天天气突然转冷了.今天已是11月23日了,查查黄历,昨天(11月22日)刚好是小雪,一夜温度骤降,果然老祖先的经验有灵验!冬天来了,还是多加加衣服,注意保暖! 1.Abstract     前些天借用他人的一块MCS-51开发板来做实验,不想这块板子与我刚开始接触MCS-51的板子一样,实在是太亲切了!现在回过来看这块板子,功能算不上是太强大,麻雀虽小五脏俱全,该有的功能都有.于是又忍不住捣腾这块板子,倒不是写小程序一块,看着电路图,到处连线测试一下功能,从中体会下最初的学习

I2C协议-&gt;裸机程序-&gt;adapter驱动程序分析

开发板:mini2440 内核  :linux2.6.32.2 参考  :韦东山毕业班I2C视频教程 1.i2c协议简要分析 i2c中线是一种由 PHILIPS 公司开发的串行总线,用于连接微控制器及其外围设备,它具有以下特点. 1.只有两条总线线路:一条串行数据线SDA,一条串行时钟线SCL. 2.每个连接到总线的器件都可以使用软件根据它的唯一的地址来确定. 3.传输数据的设备之间是简单的主从关系. 4.主机可以用作主机发送器或者主机接收器. 5.它是一个真正的多主机总线,两个或多个主机同时发

TCP/IP篇--各协议简介

--百家菜 在学习网络方面的知识过程中,不可避免地要接触到各种协议,对于一开始接触协议的我们来说对于协议实在没有太多的概念和接触,如果你也是这样,那么博主的这一篇博文可能给你一些关于协议的概念.其中的部分介绍为博主自己总结而出,如有欠缺不当的地方,欢迎通过发表评论或线下交流的方式斧正. 关于协议数据的具体格式和数字表示可上网(百度等网站)或者抓包(抓包方式详细见博主的相关博文-<抓包篇--wireshark使用!>,链接http://powersource.blog.51cto.com/113

dhcp协议简介

协议分析 - DHCP协议解码详解 DHCP协议简介 DHCP,全称是 Dynamic Host Configuration Protocol﹐中文名为动态主机配置协议,它的前身是 BOOTP,它工作在OSI的应用层,是一种帮助计算机从指定的DHCP服务器获取它们的配置信息的自举协议. DHCP使用客户端/服务器模式,请求配置信息的计算机叫做DHCP客户端,而提供信息的叫做DHCP的服务器.DHCP为客户端分配地址的方法有三种:手工配置.自动配置.动态配置. DHCP最重要的功能就是动态分配.除