智能仪器i2c总线.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《智能仪器i2c总线.ppt》由用户(罗嗣辉)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 仪器 i2c 总线
- 资源描述:
-
1、 I2C总线总线 i2C(InterIntegrated Circuit)总线: 它是PHILIPS公司开发的双向两线制串行总线,用于连接微控制器及其外围设备,属于器件总线。 i2C总线产生于80年代,最初为音频和视频设备开发,在彩色电视机中大规模应用,如今主要应用于电讯和影音产品,微控制器与各种功能模块的连接,器件之间的互连通信,在计算机服务器的管理中也大量应用。 应用实例图一单片机i2C总线应用实例图二 一。 i2C总线特点 简单性简单性( 2线,电路简单,编程方便) 有效性有效性 I2C功能器件包括:实时时钟、 LCD驱动、I/O扩展、AD转换器、LED调光、闪光器、LED调光、闪光器、
2、数字温度传感器、数字DIP开关; SDASCL单 片 机A单 片 机BSRAM或E2PROMA/D或D/A日 历时 钟其 他 I2C外 围 设 备SDASDASDASDASDASDASCLSCLSCLSCLSCLSCL i2C总线在总线在IC之间进行双向数据传送,之间进行双向数据传送,典型速度典型速度100Kbit/S,快速模式达,快速模式达400Kbit/S,后来增加了高速模式达,后来增加了高速模式达3.4Mbit/S。总线的长度可达总线的长度可达1000米。米。 i2C总线上的每个电路和模块都有唯总线上的每个电路和模块都有唯一的地址,像手机拨号一样。每一个一的地址,像手机拨号一样。每一个I
3、C都可以是主控器(或被控器),都可以都可以是主控器(或被控器),都可以是发送器(或接收器)。是发送器(或接收器)。 二。 I2C总线的工作原理: 数据传输的实质是: 通过实现数字逻辑的“与”逻辑 来传递二进制1和0的数据。 “1”高电平; “0”低电平。 端口 端口结果器件器件A的端口的端口器件器件B的端口的端口I2C总线接口的实现电路简图SDAIN=1时,时,T上拉通,上拉通,SDA=1;IN=0时,时,T下拉通,下拉通,SDA=0。多个并联,即实现了多个并联,即实现了“与与”逻辑。逻辑。0锁定总线,锁定总线,1释放总线。释放总线。SDASDAl 2.1 I2C总线的构成及信号类型: 一。构
4、成: 数据线数据线 SDA 时钟线时钟线 SCL二。数据传输的有效规则: 1. SCL高电平期间,高电平期间,SDA保持不变,数据有效。保持不变,数据有效。 2. SCL低电平期间,低电平期间,SDA改变,数据变化有效。改变,数据变化有效。 三。应用方式: 1. 标准硬件标准硬件 i2C 端口端口(硬核硬核)。 2. 软件模拟软件模拟 i2C 端口端口(可编程器件用软件实现可编程器件用软件实现)。 SDA SCL单片机EEPROM普通I/O口普通I/O口单片机EEPROMI2C总线的三种信号类型:的三种信号类型: 开始信号开始信号 SCL高电平时,高电平时,SDA产生高到低的产生高到低的下降沿
5、下降沿跳变跳变 结束信号结束信号 SCL高电平时,高电平时,SDA产生低到高的产生低到高的上升沿上升沿跳变跳变 应答信号应答信号 接收数据的器件在接收到接收数据的器件在接收到8bit数据后,向发送数据数据后,向发送数据的器件发出低电平信号,表示已收到数据的器件发出低电平信号,表示已收到数据(一帧共九位)。这个信一帧共九位)。这个信号由接收数据的器件发出。发送端收到应答信号后,作出分析判号由接收数据的器件发出。发送端收到应答信号后,作出分析判断。若未收到应答信号,则判断为受控单元出现故障。断。若未收到应答信号,则判断为受控单元出现故障。 I2C总线数据传送典型信号时序 4.0 s4.7 s4.0
6、 s4.7 s4.0 s4.0 sSCL/P1.0SDA/P1.1SCL/P1.0SDA/P1.1SDA/P1.1SCL/P1.0SCL/P1.0SDA/P1.1(a)启 动(b)终 止(c)发 送 0/发 送 应 答 位(d)发 送 1/发 送 非 应 答 位 串行总线上的数据传送时序图:串行总线上的数据传送时序图: 2.2 总线的工作原理时序图总线的工作原理时序图时钟线数据线下降沿开始位下降沿开始位上降沿结束位上降沿结束位数据位数据位应答位应答位时间轴总线数据传送的模拟 (1)总线数据传送的时序要求 为了保证数据传送的可靠性,标准的总线数据传送有着严格的时序要求,如总线上时钟信号的最小低电
7、平周期为4.7us,最小的高电平周期为4us等。 用单片机的普通I/O口模拟总线的数据传送时,单片机的时钟信号都能满足SDA、SCL上升沿、下降沿的时间要求,因此,在时序模拟时,最重要的是保证典型信号。(2) I2C总线的控制程序实现: /*I2C的启动程序*/ (时钟线高时,数据线上升沿) Void I2CStart (void) SDA = 1; /释放数据线SomeNOP(); /延时SCL = 1; /时钟线拉高SomeNOP(); /延时SDA = 0; /数据线拉低SomeNOP(); /延时SCL = 0; /时钟线拉低SomeNOP(); /延时 /*I2C的停止程序*/ (时
8、钟线高时,数据线上升沿) void I2CStop(void) SDA = 0;SomeNOP();SCL = 1;SomeNOP();SDA = 1;SomeNOP(); /*I2C的应答程序*/ void ACK(void) /Acknowledge信号SDA = 0; /发送0,应答SomeNOP(); SCL = 1;SomeNOP(); /产生时钟高电平SCL = 0;SomeNOP(); void NACK(void) /没有Acknowledge信号SDA = 1; /发送1,非应答SomeNOP();SCL = 1;SomeNOP(); /产生时钟高电平SCL = 0;Some
9、NOP();检测应答位 bit TestAck() bit ErrorBit;SDA=1;SCL=1;ErrorBit=SDA;SCL=0;return(ErrorBit); 写8位数据 bit Write8Bit(unsigned char input) unsigned char temp;for(temp=8;temp!=0;temp-) SDA=(bit)(input&0 x80);SCL=1;SCL=0;input=input1; 读8位数据 unsigned char Read8Bit() unsigned char temp,rbyte=0;for(temp=8;temp!=0;
10、temp-) SCL=1;rbyte=rbyte1;rbyte=rbyte|(unsigned char)(SDA);SCL=0;return(rbyte); l 控制字 ,起始信号后必须是发送控制字。控制字格式控制字格式,高高4位位为器件识别符(不同的芯片有不同的定义,EEPROM一般应为1010),接着3位为片选,也就是三个地址位,最后最后1位位为读写控制为读写控制位,当为位,当为1时为读操作,为时为读操作,为0时为写操作。时为写操作。顺序读的操作顺序读的操作:下图给出的是顺序读的时序图。应当注意的是:最后一个读图给出的是顺序读的时序图。应当注意的是:最后一个读操作的第操作的第9个时钟周期
11、不是个时钟周期不是“不关心不关心”。为了结束读操作,主。为了结束读操作,主机必须在第机必须在第9个周期间发出停止条件或者在第个周期间发出停止条件或者在第9个时钟周期内个时钟周期内保持保持SDA为高电平、然后发出停止条件。为高电平、然后发出停止条件。 顺序读的操作时序图:顺序读的操作时序图:读写控制位为1顺序写的操作顺序写的操作: 与上读操作类似,区别是控制字末位的读写控制位变成0。读写控制位为0I2C总线协议 写数据到从机主机发送器用10 位地址寻址从机接收器主机发送器用主机发送器用8位地址寻址从机接收器位地址寻址从机接收器1nd BYTE void Write24c02 (unsigned
12、char *Wdata,unsigned char RomAddress,unsigned char number) Start();Write8Bit(WriteDeviceAddress); TestAck();Write8Bit(RomAddress);TestAck();for(;number!=0;number-) Write8Bit(*Wdata);TestAck();Wdata+;Stop();DelayMs(10); I2C总线协议 写数据到从机主机发送器用8位地址寻址从机接收器I2C总线协议总线协议读从机数据读从机数据主机接收器用主机接收器用8位地址寻址从机发送器位地址寻址从
展开阅读全文