ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:553.24KB ,
资源ID:6166716      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6166716.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(IIC总线协议.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

IIC总线协议.docx

1、IIC总线协议iic总线协议I2C协议是单片机与其它芯片常用的通讯协议,由于只需要两根线,所以很好使用。1. I2C总线的特点(1)只要求两条总线线路 一条串行数据线 SDA 一条串行时钟线 SCL (2)每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址;主机可以作为主发送器或主机接收器 (3)它是一个真正的多主机总线,如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁防止数据被破坏 (4)串行的 8 位双向数据传输位速率在标准模式下可达 100kbit/s 快速模式下可达 400kbit/s 高速模式下可达.4Mbit/s (5)片上的滤波器可以滤

2、去总线数据线上的毛刺波保证数据完整(6)连接到相同总线的IC数量只受到总线的最大电容400pF 限制I2C协议总线信号时序分析1 .数据的有效性:SDA 线上的数据必须在时钟的高电平周期保持稳定数据线的高或低电平状态只有在 SCL线的时钟信号是低电平时才能改变。如图3.1 I2C总线的位传输所示。图1. I2C总线的位传输2 .起始和停止条件当SCL线是高电平时,SDA线从高电平向低电平切换,这个情况表示起始条件。当SCL线是高电平时,SDA线由低电平向高电平切换表示停止条件。如图3.2 I2C起始和停止条件所示。图3.2 起始和停止条件3.总线空闲状态SDA和SCL两条信号线都处于高电平,即

3、总线上所有的器件都释放总线,两条信号线各自的上拉电阻把电平拉高;4 .数据传输与应答信号ACK发送到SDA线上的数据必须是8位的。每次传输可以发送的数据不受限制。每个字节后必须在时钟的第9个脉冲期间释放数据总线(SDA为高),由接收器发送一个ACK(把数据总线的电平拉低)来表示数据成功接收。如图3.3 I2C总线响应。图3.3 I2C总线响应首先传输的是数据的最高位(MSB)。如果从机要完成一些其他功能后(例如一个内部中断服务程序)才能接收或发送下一个完整的数据字节,可以使时钟SCL保持低电平迫使主机进入等待状态。当从机准备好接收下一个数据字节并释放时钟线SCL后,数据传输继续。如图3.4 I

4、2C总线数据传输所示。图3.4 I2C总线数据传输4. 地址格式数据的传输遵循如图4.1 完整的数据传送所示,在起始条件之后,发送一个7位的从机地址,紧接着第8位是数据方向(R/ W),0-表示发送数据(写),1-表示接收数据(读)。数据传输一般由主机产生的停止位(P)终止。但是如果主机仍希望在总线上通讯,它可以产生重复起始条件(Sr),和寻址另一个从机,而不是首先产生一个停止条件。在这种传输中,可能有不同的读/写格式结合。如图3.5 I2C总线完整的数据传输。图3.5 I2C总线完整的数据传输C程序#include #define uint unsigned int #define ucha

5、r unsigned char sbit SDA = P24; sbit SCL = P25; uchar NackFlag; /*void delay() /延时_nop_();_nop_();_nop_();_nop_();_nop_();/*void startIIC() /启动IIC总线SDA = 1;SCL = 1;delay();SDA = 0;delay();SCL = 0;/*void stopIIC() /停止IIC总线SDA = 0;SCL = 1;delay();SDA = 1;delay();SCL = 0;/*void Ack_IIC() /主器件为发送方,主控器发送

6、完数据后,主控器件等待从器件的应答uchar errtime = 200;SDA = 1;SCL = 1;NackFlag=0;while(SDA) errtime-; if(errtime=0) stopIIC(); NackFlag=1; return; SCL = 0;/*void sendIIC(uchar num) /主控器件发送数据到IIC总线uchar i;for(i=0;i8;i+) SCL = 0; delay(); SDA = num&0x80; SCL = 1; delay(); num=1; delay(); SCL = 0;/*uchar receiveIIC(voi

7、d) /主控器件接收IIC总线传来的数据uchar i,datax = 0;SDA = 1;for(i=0;i8;i+) datax IIC总线协议,AT24C08储存器IIC总线(Inter Integrated Circuit Bus):是Philips公司推出的串行总线标准(为二线制)。总线上扩展的外围器件及外设接口通过总线寻址,是具备总线仲裁和高低速设备同步等功能的高性能多主机总线。I2C总线工作原理串行数据线SDA和串行时钟线SCL构成的,可发送和接收数据。所有挂接在I2C总线上的器件和接口电路都应具有I2C总线接口,且所有的SDA/SCL同名端相连。总线上所有器件要依靠SDA发送的

8、地址信号寻址,不需要片选线。特点:组成系统结构简单,占用空间小,芯片管脚的数量少,无需片选信号,价格低。允许若干兼容器件共享总线,应用比较广泛。总线的长度可达7.6m,传送速度可达400kbps,标准速率为100kbps。支持多个组件。支持多主控器件(某时刻只能有一个主控器件)。I2C总线上所有设备的SDA, SCL引脚必须外接上拉电阻。典型的I2C总线系统结构,如图所示I2C总线器件的寻址方式 由于所有器件都通过SCL和SDA连接在I2C总线上,因此,主器件在进行数据传输前需要通过寻址,选择需要通信的从器件。I2C总线上所有外围器件都需要有唯一的7位地址,由器件地址和引脚地址两部分组成。器件

9、地址是I2C器件固有的地址编码,器件出厂时就已经给定,不可更改。引脚地址是由I2C总线外围器件的地址引脚(A2,A1,A0)决定,根据其在电路中接电源正极、接地或悬空的不同,形成不同的地址代码。 I2C总线概述 I2C总线采用两线制,由数据线SDA和时钟线SCL构成。I2C总线对数据通信时序进行了严格的定义。 I2C总线数据操作在I2C总线上,数据是伴随着时钟脉冲,一位一位地传送的,数据位由高到低传送,每位数据占一个时钟脉冲。I2C总线上的在时钟线SCL高电平期间,数据线SDA的状态就表示要传送的数据,高电平为数据1,低电平为数据0。在数据传送时,SDA上数据的改变在时钟线为低电平时完成,而S

10、CL为高电平时,SDA必须保持稳定,否则SDA上的变化会被当作起始或终止信号而致使数据传输停止。I2C总线在传送数据过程中共有三种类型信号:开始信号、停止信号和应答信号。开始信号:SCL保持高电平的状态下,SDA出现下降沿。出现开始信号以后,总线被认为“忙”。停止信号:SCL保持高电平的状态下,SDA出现上升沿。停止信号过后,总线被认为“空闲”。应答信号:接收数据的器件在接收到8位数据后,向发送数据的器件发出特定的低电平脉冲,表示已收到数据。总线空闲:SCL和SDA都保持高电平。总线忙:在数据传送开始以后,SCL为高电平的时候,SDA的数据必须保持稳定,只有当SCL为低电平的时候才允许SDA上

11、的数据改变。I2C协议起始信号时序起始信号用于开始I2C总线通信。其中,起始信号是在时钟线SCL为高电平期间,数据SDA上高电平向低电平变化的下降沿信号。起始信号出现以后,才可以进行后续的I2C总线寻址或数据传输等I2C协议终止信号时序 终止信号用于终止I2C总线通信。其中,终止信号是在时钟线SCL为高电平期间,数据线SDA上低电平到高电平变化的上升沿信号。终止信号一出现,所有I2C总线操作都结束,并释放总线控制权。终止信号的时序如下:I2C协议应答信号时序应答信号用于表明I2C总线数据传输的结束。 I2C总线数据传送时,一个字节数据传送完毕后都必须由主器件产生应答信号。主器件在第9个时钟位上

12、释放数据总线SDA,使其处于高电平状态,此时从器件输出低电平拉低数据总线SDA为应答信号。应答信号的时序,如图所示。 I2C总线的传送格式I2C总线的传送格式为主从式,对系统中的某一器件来说有四种工作方式:主发送方式、从发送方式、主接收方式、从接收方式。只讲主发送从接收(单片机发送 24C08接收)主器件产生开始信号以后,发送的第一个字节为控制字节。前七位为从器件的地址片选信号。最低位为数据传送方向位(高电平表示读从器件,低电平表示写从器件),然后发送一个选择从器件片内地址的字节,来决定开始读写数据的起始地址。接着再发送数据字节,可以是单字节数据,也可以是一组数据,由主器件来决定。从器件每接收

13、到一个字节以后,都要返回一个应答信号(ASK=0)。主器件在应答时钟周期高电平期间释放SDA线,转由从器件控制,从器件在这个时钟周期的高电平期间必须拉低SDA线,并使之为稳定的低电平,作为有效的应答信号。控制字节 在起始条件之后,必须是器件的控制字节,其中,高四位为器件类型识别符(不同的芯片类型有不同的定义,E2PROM为1010),接着三位为片选,最低位为读写控制位,为“1”时为读操作,为“0”时为写操作。如下图所示。写操作写操作分为字节写和页面写两种操作,对于页面写,根据芯片的一次装载的字节不同有所不同。页面写的地址、应答和数据传送的时序如下图所示。读操作读操作有三种基本操作:当前地址读、随机读和顺序读。下图给出的是顺序读的时序图。应当注意的是,为了结束读操作,主机必须在第9个周期间发出停止条件或者在第9个时钟周期内保持SDA为高电平,然后发出停止条件。 C语言的相关程序为了您的安全,请只打开来源可靠的网址 打开网站取消窗体底端

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1