书签 分享 收藏 举报 版权申诉 / 48
上传文档赚钱

类型智能仪器i2c总线.ppt

  • 上传人(卖家):罗嗣辉
  • 文档编号:2040775
  • 上传时间:2022-01-19
  • 格式:PPT
  • 页数:48
  • 大小:853KB
  • 【下载声明】
    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位地址寻址从机发送器位地址寻址从

    13、机发送器1nd BYTE先启动一个写命令,发送地址给从机。先启动一个写命令,发送地址给从机。 然后再次启动读命令,读数据。然后再次启动读命令,读数据。void Read24c02(unsigned char *RamAddress,unsigned char RomAddress,unsigned char bytes) Start();Write8Bit(WriteDeviceAddress);TestAck();Write8Bit(RomAddress);TestAck();Start(); /再次启动Write8Bit(ReadDviceAddress);TestAck();while(

    14、bytes!=1) *RamAddress=Read8Bit();Ack();RamAddress+;bytes-;*RamAddress=Read8Bit();NoAck();Stop();I2C总线协议 读从机数据主机发送器用8位地址寻址从机接收器在主程序中的调用读写子程序 void main(void) Byte buf1=3,4,5,6,7,8;Byte buf2;Write24c02(buf1,0,6);Read24c02(buf2,0,6);if(buf11=buf21)LED1=0;if(buf12=buf22)LED2=0;if(buf13=buf23)LED3=0;if(bu

    15、f14=buf24)LED4=0;while(1); I2C总线协议组合格式 : 主机用10 位地址寻址从机然后发送数据到这个从机并向这个从机读数据I2C新发展恩智浦(NXP)公司扩展的I2C控制网络: 结束语结束语 I2C总线的应用中的注意事项 : 1)严格按照时序图的要求进行操作。 2)总线必须上拉,即在没有控制时,总线为1。在与逻辑中理解为释放总线。 3)程序中为配合相应的传输速率,在对口线操作的指令后,用NOP指令做一定的延时。 (2) 总线典型信号的模拟子程序 启动信号子程序STA STA:SETBP1.0 ;总线启动子程序 SETB P1.1 NOP NOP CLRP1.1 NOP

    16、 NOP CLRP1.0 RET附汇编语言模拟程序终止信号子程序STOP STOP: NOP;停止子程序 CLRP1.1SETBP1.0 NOP NOP SETB P1.1 NOP NOP CLR P1.0 RET附汇编语言模拟程序发送应答位子程序MACK MACK:CLR P1.1;应答子程序 SETB P1.0;准备发送 NOP NOP CLR P1.0 SETB P1.1 RET附汇编语言模拟程序发送非应答位子程序MNACK MNACK: CLRP1.0 CLR P1.1 SETB P1.1 ;非应答子程序 SETB P1.0 NOP NOP CLRP1.0 CLRP1.1 RET附汇编

    17、语言模拟程序(3)总线模拟传送的通用子程序 总线数据模拟传送的通用软件包除了上述基本的启动、停止、发送应答位和发送非应 答 位 子 程 序 外 , 还 有 应 答 位 检 查( C A C K ) 、 发 送 一 个 字 节 数 据( W R B Y T ) 、 接 收 一 个 字 节 数 据( R D B Y T ) 、 发 送 n 个 字 节 数 据( W R N B Y T ) 、 接 收 n 个 字 节 数 据(RDNBYT)子程序。附汇编语言模拟程序 应答位检查子程序CACK 在应答位检查子程序(CACK)中,设置了标志位,CACK中用F0作标志位,当检查到正常应答位后,F0=0,否

    18、则F0=1。 CACK: SETBP1.1 ;设P1.1为输入 SETB P1.0 ;准备读 CLR F0 MOV A,P1;读P1.1 JNBACC.1,GEND ;判断有无应答 SETB F0;P1.1为“1”,无应答,F0=1 GEND: CLR P1.0 ;P1.1为“0”,有应答,F0=0 NOP RET 发送一个字节数据(WRBYT)子程序 占用资源:R0,C。 WRBYT:MOVR0,#08H CLRP1.0 CLRC WLP: RLCA JCWR1 AJMPWR2 WLP1: DJNZR0,WLP RET WR1:SETBP1.1 SETBP1.0 NOP NOP CLRP1.

    19、0 CLRP1.1 AJMPWLP1 WR2:CLRP1.1 SETBP1.0 NOP NOP CLRP1.0 AJMPWLP1 接收一个字节数据(RDBYT)子程序 RDBYT: MOV R0,#08H RLP:SETB P1.1 SETBP1.0 MOVA,P1 JNBACC.1,RD0 AJMPRD1 RLP1: DJNZR0,RLP RET RD0: CLRC MOVA,R2 RLCA MOVR2,A CLRP1.0 AJMPRLP1 RD1:SETB MOVA,R2 RLCA MOVR2,A CLRP1.0 AJMPRLP1 发送n个字节数据(WRNBYT)子程序 WRNBYT:PU

    20、SH PSW MOVPSW,#18H MOVR3,NUMBYT LCALLSTA MOVA,SLA LCALLWRBYT LCALLCACK JBF0,WRNBYT MOVR1,MTD WRDA:MOV A,R1 LCALLWRBYT LCALLCACK LCALLWRBYT LCALLCACK JBF0,WRNBYT INCR1 DJNZR3,WRDA LCALLSTOP POPPSW RET 读取n个字节数据(RDNBYT)子程序 RDNBYT:PUSH PSW MOVPSW,#18 MOVR3,NUMBYT LCALLSTA MOVA,SLA LCALLWRBYT JBF0,RDNBYT

    21、 RDN:MOVR1,#MRD RDN1:LCALLRDBY MOV R1,A DJNZR3,ACK LCALLMNACK LCALLSTOP POPPSW RET ACK: LCALLMACK INCR1 SJMPRDN1 第一篇 AD/DA-PCF8591 (1)AIN0AIN3:模拟输入端; (2)VSS:电源地线; (3)A0A2:地址输入端; (4)SDA:总线数据线; (5)SCL:总线的时钟输入端; (6)OSC:外部时钟输入端/内部时钟输出端; (7)EXT:时钟选择端。为1时,用外部时钟;为0时,用内部时钟; (8)AGND:模拟信号地; (9)VREF:基准电源输入端; (

    22、10)AOUT:D/A转换模拟 12345678910111213141516PCF8591VSSAIN1AIN2AIN3A0A1VCCVREFAGNDEXTOSCSCLSDAAIN0A2AOUT 1. PCF8591的主要特性与引脚功能 2PCF8591的结构与应用原理 控制寄存器其控制字格式如下: D1、D0=00时:模拟量输入通道选择0通道 D1、D0=01时:模拟量输入通道选择1通道 D1、D0=10时:模拟量输入通道选择2通道 D1、D0=11时:模拟量输入通道选择3通道D7D6D5D4D3D2D1D000 D2:自动增量选择位,此位有效,A/D转换通道自动循环递增,每次A/D转换结

    23、束都自动选择下一通道。 D3、D7:标志位,必须设置为“0”。 D5、D4:模拟量输入方式选择,分别为4路单端输入、3路差分输入、单端与差分混合、两路差分输入4种方式。 D5 D4 AIN0 AIN1 AIN2 AIN3 输入方式 0 0 (独立) (独立) (独立) (独立) 4路单端输入 0 1 (公共端) 3路差分输入 1 0 (独立) (独立) (AIN3) 单端与差分混合 1 1 (AIN1) (AIN3) 2路差分输入 D6:模拟量输出允许位,D6=1时激活模拟量输出3PCF8591的数据操作格式 (1)DAC数据操作格式 S:总线的启始信号(电平由高到低); SLAW:总线的8位

    24、寻址字节(写); A:应答信号(低电平); CONBYT:PCF8591的控制字,D/A转换时控制字D6位置1; DATA0DATAn:待转换的二进制数; P:总线的终止信号(电平由低到高)。SSLAWADATA0ADATA1ACONBYTADATAnAP(2)ADC数据操作格式 S:总线的启始信号; SLAW:总线的8位寻址字节(写); A:应答信号; CONBYT:PCF8591的控制字; SLAR:总线的8位寻址字节(读); DATA0DATAn:A/D转换的结果; :非应答信号(高电平); P:总线的终止信号。SSLAWACONBYTASSLARDATA0DATAnAPAA4PCF85

    25、91与8051的接口电路 P1.0P1.1+5V89C51LM385SCLSDAVREFEXTA0A1A2VSSAOUTAIN0AIN1AIN2AIN3PCF8591输入输出 5. 5. 程序程序 SLAW0EQU90H SLAR0EQU91H COMMAND0EQU40HORG0100H MAIN:MOV SP,#70H MOVSLA,#SLAR0MOV NUMBYT,#01HLCALLRDNBYTMOV 31H,MRDMOV MTD,#COMMAND0MOV SLA,#SLAW0MOV NUMBYT,#02HLCALLWRNBYTLJMP MAIN从通道0采集A/D信号,再通过D/A转换器将信号输出的程序如下:

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:智能仪器i2c总线.ppt
    链接地址:https://www.163wenku.com/p-2040775.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库