I2总线

I2C简介

飞利浦(PHILIPS)公司开发的两线式串行总线

每个器件都有一个唯一的地址识别

1、只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL

2、每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/



启动信号和停止信号
从机关系软件设定地址,主机可以作为主机发送器或主机接收器

SCL 线是高电平时,SDA 线从高电平向低电平切换,这个情况表示起始条件。

SCL 线是高电平时,SDA 线由低电平向高电平切换,这个情况表示停止条件。

在传输数据的时候,SDA线必须在时钟的高电平周期保持稳定,
SDA的高或低电平状态只有在SCL
线的时钟信号是低电平时才能改



发送数据

发送到SDA 线上的每个字节必须为8 位,
每次传输可以发送的字节数量不受限制。
每个字节后必须跟一个响应位。

1)开始信号:
2)结束信号
3)响应信号:接收器在接收到8位数据后,在第九个时钟周期拉低SDA电平。

启动一个传输时,主机先发出一个S信号,然后发出8位数据,前7位表示从机地址,第8位
表示传输的方向(0表示写,1表示读),被选中的从机发出响应信号。紧接着发送一系列字节
及其响应位。最后主机发送P信号结束本次传输。



应答信号 

ACK的要求是,接收器在第9个时钟脉冲之前的低电平期间将SDA线拉低,并且确保在该时钟的高电平期间为稳定的低电平。



插入等待时间 

  如果被控器需要延迟下一个数据字节开始传送的时间,则可以通过把时钟线SCL电平拉低并且保持,使主控器进入等待状态。一旦被控器释放时钟线,数据传输就得以继续下去,这样就使得被控器得到足够时间转移已经收到的数据字节,或者准备好即将发送的数据字节。带有CPU的被控器在对收到的地址字节做出应答之后,需要一定的时间去执行中断服务子程序,来分析或比较地址码,其间就把SCL线钳位在低电平上,直到处理妥当后才释放SCL线,进而使主控器继续后续数据字节的发送。



I2C总线的仲裁机制

在多主的通信系统中。总线上有多个节点,它们都有自己的寻址地址,可以作为从节点被别的节点访问,同时它们都可以作为主节点向其他的节点发送控制字节和传送数据。但是如果有两个或两个以上的节点都向总线上发送启动信号并开始传送数据,这样就形成了冲突。要解决这种冲突,就要进行仲裁的判决,这就是I 2C总线上的仲裁。

1  SCL线的同步(时钟同步)

SCL同步是由于总线具有线“与”的逻辑功能,即只要有一个节点发送低电平时,总线上就表现为低电平。当所有的节点都发送高电平时,总线才能表现为高电平。正是由于线“与”逻辑功能的原理,当多个节点同时发送时钟信号时,在总线上表现的是统一的时钟信号。这就是SCL的同步原理。

时钟低电平时间由时钟低电平期最长的器件确定,而时钟高电平时间由时钟高电平期最短的器件确定。

2 SDA仲裁

SDA线的仲裁也是建立在总线具有线“与”逻辑功能的原理上的。节点在发送1位数据后,比较总线上所呈现的数据与自己发送的是否一致。是,继续发送;否则,退出竞争。SDA线的仲裁可以保证I2C总线系统在多个主节点同时企图控制总线时通信正常进行并且数据不丢失。总线系统通过仲裁只允许一个主节点可以继续占据总线。



 

时间: 2024-07-31 10:16:23

I2总线的相关文章

SJXXX串口扩展芯片 4串口芯片 UART串口芯片

SJXX串口扩展芯片1 概述SJ000是一款具备I2C总线/SPI总线/UART接口的四通道异步收发器件,通过模式选择使得该器件工作于以上任何一种主接口模式下.器件的四个通道UART可提供高达2Mbps的数据率,低功耗模式和睡眠电流.每个通道含有一个接收器和一个发送器,并带有64字节发送/接收FIFO,通道波特率.字长.校验格式可独立设置,也可以独立设置IrDA红外通信.RS-485自动收发控制.9位网络地址自动识别.软件/硬件自动流量控制.广播接收等.器件还带有可编程中断功能,实现与主机的信息

给大家个科技能科技高科技深刻的公积金顾客的感觉

http://i2.feixin.10086.cn/pages/93349/1345356019 http://i2.feixin.10086.cn/pages/93349/1345356313 http://i2.feixin.10086.cn/pages/93349/1345356426 http://i2.feixin.10086.cn/pages/93349/1345356530 http://i2.feixin.10086.cn/pages/93349/1345356878 http:

事发后的时刻了房间里的价格科技的股份科技馆

http://i2.feixin.10086.cn/pages/93349/1348001890 http://i2.feixin.10086.cn/pages/93349/1348002101 http://i2.feixin.10086.cn/pages/93349/1348002913 http://i2.feixin.10086.cn/pages/93349/1348003061 http://i2.feixin.10086.cn/pages/93349/1348003135 http:

I2C总线

I2C总线的介绍(这个就是摘抄拉): I I2 2C C总线( 总线(Inter Integrated Circuit Bus Inter Integrated Circuit Bus):是 ):是Philips Philips公司 公司 推出的串行总线标准(为二线制).总线上扩展的外围器件及外设接 推出的串行总线标准(为二线制).总线上扩展的外围器件及外设接 口通过总线寻址,是具备总线仲裁和高低速设备同步等功能的高性能 口通过总线寻址,是具备总线仲裁和高低速设备同步等功能的高性能 多主机总线.

乾坤合一~Linux设备驱动之I2C核心、总线以及设备驱动

我思念的城市已是黄昏 为何我总对你一往情深 曾经给我快乐 也给我创伤 曾经给我希望 也给我绝望 我在遥远的城市 陌生的人群 感觉着你遥远的忧伤 我的幻想 你的忧伤,像我的的绝望,那样漫长,,,,,这是今天的旋律,直入心底~~~~~~~~~~~~~~~~ 在Linux 系统中,I2C 驱动由3 部分组成,即I2C 核心.I2C 总线驱动和I2C 设备驱动,I2C 总线仅仅使用SCL.SDA 这两根信号线就实现了设备之间的数据交互,极大地简化了对硬件资源和PCB 板布线空间的占用 1 Linux的I

I2C总线介绍及AT24C02驱动编写 笔记

中断处理程序 { 清除中断 硬件自动清除 软件清除 } CPU芯片手册相关章节 -------- I2C CPU外接设备的方式 1)GPIO简洁的方式(按键,LED) 通过设置GPIO管脚的状态来完成通信(控制) gpccon gpcpud gpcdat 2)类似于内存的接口 (DDRAM norflash nand dm9000) 从硬件上看CPU和芯片 数据线 地址先  BANK 3)协议类接口 uart I2C AT24C02    EEPROM 3,如何解决CPU和设备通信的问题 I2C

AMBA APB总线

前面分析了AHB总线协议.接下来分析APB总线协议. (一) APB总线接口: PCLK APB总线时钟. PRESETn APB总线复位.低有效. PADDR 地址总线. PSELx 从设备选择. PENABLE APB传输选通. PWRITE 高为写传输,低为读. PRDATA 读数据总线. PWDATA 写数据总线. 接口信号定义如下: 1 interface apb_slv_intf #( 2 parameter AW = 32, 3 DW = 32 4 ) ( 5 input logi

消息总线扩展之主动转发

问题简述 消息总线目前为Java编程语言提供了SDK,同时针对其他语言提供了一个称之为httpBridge的http代理.这基本可以满足大部分主流编程语言对消息总线的使用需求,但这也仅仅是对技术层面上的需求的满足.在业务层面上,尤其是面对老的业务系统的适配一直都是个难题,这篇文章谈谈面对一个在线上运行的业务系统,如何使得引入消息总线的总体成本尽可能得低. 就消息总线的两种使用方式而言,无论是SDK的方式还是httpBridge的方式,都需要往第三方系统引入对消息总线的依赖,这些依赖包括但不仅限于

事件总线框架---Otto

我们假设这样一种业务场景,现在在做一款及时聊天应用,我们在聊天页面进行收发信息,同时也要实时更新前一页面的聊天记录,这时我们该如何去实现?说说我以前的实现策略,我使用的是广播接收器BroadCastReceiver,在接收和发送消息的时候就不停去发送广播,然后在需要实时更新的地方进行接收更新.实现的思想比较简单,也不存在代码上的耦合问题,但是有个弊端.弊端就是需要去在很多地方实现BroadCastRecevier,代码虽不算冗余,但比较多,看起来很是不爽. 今天为大家介绍的Otto,就能彻底解决