- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
I2C串行總線的原理 1、总线的概述 2、总线结构 3、总线传输协议 4、常见波形分析 I2C串行總線概述 I2C(Inter-Integrated Circuit)總線是由PHILIPS公司開發的兩線式串行總線,用于连接微控制器及其外圍設備。是微電子通信控制領域廣泛采用的一種總線標準。 I2C串行總線優點 它是同步通信的一種特殊形式,具有接口線少,控制方式簡單,器件封裝形式小,通訊效率高等有點。同時,系統的更改和擴充及其容易。 I2C总线特点 1.只要求两条总线线路 一条串行数据线SDA和一条串行时钟线SCL 2.每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机 /从机关系软件设定地址:主机可以作为主机发送器或主机接收器 3.它是一个真正的多主机总线 如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁防止数据被破坏 4.串行的 8 位双向数据传输位速率在标准模式下可达 100kbit/s 快速模式下可达 400kbit/s 高速模式下可达 3.4Mbit/s 5. 连接到相同总线的 IC 数量只受到总线的最大电容 400pF 限制 SCL&SDA结构 连接到总线的输出级是漏极开路或者集电极开路 I2C接口的输出端是漏极开路或集电极开路,所以必须在接口外接上拉电阻。 I2C上拉电阻的范围很宽,主要是根据功耗,上升时间等确定。I2C的上拉电阻可以是1.5K,2.2K,4.7K,电阻的大小对时序有一定的影响,对信号的上升时间和下降时间也有影响,一般接1.5K或2.2K。 总的来说:电源电压控制了上拉电阻的最小值;负载电容(总线电容)控制了上拉电阻的最大值。 I2C总线空闲的时候,两条信号线应该维持高电平。否则,上拉电阻上就会耗电。 连接两个电压不同部分的双向电平转换器电路 I2C总线协议 STOP & STAR SCL是高电平,SDA从高电平向低电平切换表示起始条件 SCL是高电平,SDA从低电平向高电平切换表示停止条件 起始和终止信号都是由主机发送的,在起始信号产生后总线就被处于占用的状态;在终止信号产生后总线就处于空闲的状态。 每个接到I2C总线上的器件(可以是微处理器——MCU,LED驱动器,存储器或键盘接口。)都是有唯一的地址,而且都可以作为一个发送器或接收器(由器件的功能决定)。主机与其它器件间的数据传输可以是由主机发送数据到其它器件,这时主机即为发送器,接受数据的器件则为接受器。 在多主机系统中,可能同时有几个主机企图启动总线传输数据。为了避免混乱,I2C总线要通过总线仲裁决定由哪一台主机控制总线——支持多主控模块,但同一时刻只允许有一个主控 启动信号START后紧接着发送一个地址字节,其中7位为被控器件的地址码,一位为读/写控制位R/W,R. /W位为0表示由主控向被控器件写数据,R/W为1表示由主控向被控器件读数据; 当被控器件检测到收到的地址与自己的地址相同时,在第9个时钟期间反馈应答信号; 每个数据字节在传送时都是高位(MSB)在前; 当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信号(ACK); 主控收到ACK后开始发送第一个数据字节; 被控器收到数据字节后发送一个ACK表示继续传送数据,发送NACK表示传送数据结束; 主控发送完全部数据后,发送一个停止位STOP,结束整个通讯并且释放总线; I2C数据传送 SCL线呈现高电平期间,SDA线上的电平必须保持稳定,低电平表示0(此时的线电压为地电压),高电平表示1(此时的电压由元器件的VDD决定)。只有在SCL线为低电平期间,SDA上的电平允许变化。 读通讯过程 1. 主控在检测到总线空闲的状况下,首先发送一个START信号掌管总线; 2. 发送一个地址字节(包括7位地址码和一位R/W 1); 3. 当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信号(ACK); 4. 主控收到ACK后释放数据总线,开始接收第一个数据字节; 5. 主控收到数据后发送ACK表示继续传送数据,发送NACK表示传送数据结束; 6. 主控发送完全部数据后,发送一个停止位STOP,结束整个通讯并且释放总线 I2C数据的中断 接收器收到一个完整的数据字节后,有可能需要完成一些其它工作,如处理内部中断服务等,可能无法接受下一个字节,这时候接收器可以将SCL线拉成低电平,从而使主机处于等待状态,直到接收器准备好接受下一个字节时,再释放SCL线使为高电平,使数据传输继续。 总线的仲裁 假设在某一瞬间两个主器件1和2同时发送启动信号线DATA1和DATA2,由于I2C总线的“线与”特性,使得SDA数据波形是DATA1和DATA2的结合。主机在发送数据的同事还要对自
文档评论(0)