4.5 内部集成电路(I2C)协议 芯片资料_第1页
4.5 内部集成电路(I2C)协议 芯片资料_第2页
4.5 内部集成电路(I2C)协议 芯片资料_第3页
4.5 内部集成电路(I2C)协议 芯片资料_第4页
4.5 内部集成电路(I2C)协议 芯片资料_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

4.10通用串行通信接口(USCI)I2C模式,主要内容,I2C总线协议I2C简介寻址模式总线时序MSP430I2C模块模块的特性各类描述符解析模块的中断源及相关的中断处理函数应用示例,I2CBUS接口,I2C简介及应用,I2CBUS(InterICBUS)是Philips推出的芯片间串行传输总线,它以2根连线实现了完善的全双工同步数据传送,可以极方便地构成多机系统和外围器件扩展系统。I2C总线采用了器件地址的硬件设置方法,通过软件寻址完全避免了器件的片选线寻址方法,从而使硬件系统具有最简单而灵活的扩展方法。I2C接口的标准传输速率为100Kbit/s,快速传输可达400Kbit/s,目前还增加了高速模式,最高传输速率可达3.4Mbit/s。I2C用于连接集成电路和功能模块,在它们之间交互数据或控制信息。很多设备如:键盘和LED控制器,以及存储设备EEPROM和FLASH都配备了I2C总线接口。,I2CBUS接口,特性,两条数据线,SDA(串行数据线)和SCL(串行时钟线);7位或10位设备寻址模式;每个连接到总线上的器件地址由芯片内部硬件电路和外部地址同时决定,避免了片选线的线连接方法,并建立简单的主从关系,主器件提供接收和发送所必须的时序;真正的多主总线,带有竞争监测和仲裁电路,多个主机任意发送而不破坏总线上的数据;同步时钟允许器件以不同的数据传输率进行通信;,I2CBUS接口,常用术语,发送器:本次传输中发送数据到总线的器件;接收器:本次传输中从总线接收数据的器件;主机:初始化发送、产生时钟信号和终止发送的器件,它可以是发送器或接收器。主机通常是微控制器;从机:被主机寻址的器件,可以是发送器或接收器。多主器件:多个主器件可以同时企图控制总线而不破坏总线信息。,I2CBUS接口,I2C总线是个多主机总线,所有主器件都可以发出同步时钟,但由于SCL接口的”线与”结构,一旦一个主器件时钟跳变为低电平,将使SCL线支持为低电平直至始终到达高电平,因此SCL线上时钟低电平时间由各器件中时钟最长的低电平时间决定,而时钟高电平时间则由高电平时间最短的器件决定。,总线速率越高,总线上拉电阻就越小,100Kbit/s总线速率,通常使用5.1K欧姆的上拉电阻,I2CBUS接口,数据形式,I2C因为有两种寻址模式,所以它具体的格式有两种,在下一节介绍,这里主要按分类部分来描述数据格式。总的数据传送为:主方每发送8个BIT,必须等待从方的一个反馈ACK。,停止信号作为一次传送的结束,在该信号之后,总线被认为再次处于空闲状态。,起始信号通常由主机发出,它作为一次传输的开始。在起始信号后总线被认为处于忙的状态,寻址模式,7位寻址模式最多可以寻址128个设备,10位寻址最多可以寻址1024个设备。第一个字节是由7位从地址和R/W(读写位)组成,不论总线传送地址信息还是数据信息,每个字节传送完毕接收设备都会发送一个反馈响应位(ACK)。后面都是数据信息,直到接收到停止信号。但目前几乎所有的I2C应用模块都采用这样的格式,即第二字节是给出从方的存放数据的地址(RAM或FLASH地址)。而后面才是真正的数据(数量不限),且只需要给出首存放地址,后面的数据会依次存放在首地址后。当然,如果第二字节作为地址不够,那么第三字节也可以作为地址部分。,7位寻址模式,7位寻址模式中,第一个字节是7位从地址和R/W读写控制位。每个字节后,接收机发送ACK位。,如果8位不够,可以继续往下顺延,不过每个字节后必须等待一个ACK.,10位寻址模式,10位寻址模式中,11110b加上10位从地址的高两位及R/W位组成第一个字节数据。每个字节结束后,接收器发送ACK位。下一个为10位从地址的剩余8位,其后是ACK位和8位数据。,不停止传输而改变传输的属性,主机可以在没有停止传输时,通过产生重复的START条件,改变SDA上数据流的方向,即读或写。这称为RESTART。START后,按照R/W确定的新数据方向再次发出从芯片的地址。,I2C总线时序,在数据传送过程中,必须确认数据传送的开始和结束,这通过起始和结束信号识别。起始位:SCL=1时,SDA上有下降沿停止位:SCL=1时,SDA上有上升沿所以只有当SCL为低时才允许SDA改变数据,不然会被误判为起始位或停止位而造成错误,如图:,I2C总线数据传送时,每传送一个字节数据后都必须有应答信号(A)。主控器接收数据时,如果要结束通信时,将在停止位之前发送非应答信号()。A=应答(SDA为低)=非应答(SDA为高),I2C总线时序,I2C总线时序,一般I2C具有4种操作模式:主发送模式、主接收模式、从发送模式和从接收模式。,I2C时钟同步,仲裁过程中,实际由于电气特性,已经对各个不同主设备的时钟进行同步处理,所以各个设备使用的时钟都是一样的、同步后的SCL。同步规则就是:SCL线上时钟低电平时间由各器件中时钟最长的低电平时间决定,而时钟高电平时间则由高电平时间最短的器件决定。总的原则是:低电平否决高电平。,设备1发出SCL:,设备2发出SCL:,总线SCL:,I2C总线仲裁,当两个设备同时发出起始位进行数据传输时,相互竞争的设备使它们的时钟保持同步。没有检测到冲突之前,每个设备都认为只有自己在使用总线。每个设备都有仲裁功能,它们都去检测SDA线,检测到自己发送的数据和总线上数据不匹配的设备就失去仲裁能力。如果两个或更多的设备发送的第一个字节的内容相同,那么仲裁就发生在随后传输中。失去仲裁的主设备转变成从接收模式。注意:数据冲突是因为逻辑低电平可以把逻辑高电平否决。在同一时刻如果两设备一个发高电平一个发低电平,那么总线上是低电平。,通用串行通信接口(USCI)模块,通用串行通信接口(USCI)模块支持多种串行通信模式。不同的USCI模块支持不同的模式USCI_Ax模块支持:UART模式IrDA通信的脉冲整形LIN通信的自动波特率检测SPI模式USCI_Bx模块支持:I2C模式SPI模式,I2C模块特点,MSP430的I2C模块有如下特点:与Philips半导体I2C规范v2.1兼容7位和10位芯片寻址方式全呼开始/重新开始/停止多主机发送/接收模式从接收/发送模式支持100kbps的标准模式和高达400kbps的快速模式主机模式下UCxCLK频率可编程为低功耗设计用于LPMx模式自动唤醒的从接收器开始检测LPM4模式下的从模式操作,初始化或重新配置USCI模块,推荐使用的USCI模块初始化或重新配置步骤:1、置位UCSWRST2、通过UCSWRST=1初始化所有USCI寄存器3、端口配置4、软件清除UCSWRST5、使能中断(可选),I2C模式下的USCI中断,USCI模块只有一个中断向量,该中断向量由发送、接收以及状态改变复用。USCI_Ax和USCI_Bx不使用同一个中断向量。每个中断标志都有自己的中断允许位。GIE位置位时,如果使能一个中断,将会产生中断请求。在集成有DMA控制器的芯片上,UCTXIFG和UCRXIFG标志将控制DMA传输。,I2C发送中断操作,为了表明UCBxTXBUF已准备好接收另一个字符,发送器将置位UCTXIFG。如果此时UCTXIE和GIE也已经置位,则会产生一个中断请求。当有字符写入UCBxTXBUF或接收到NACK信号时,UCTXIFG会自动复位。当选择I2C模式且UCSWRST=1时,UCTXIFG置位。PUC后或UCSWRST=1时,UCTXIE复位。,I2C接收中断操作,当接收到一个字节并将其装载到UCBxRXBUF时,UCRXIFG中断标志置位。如果此时UCRXIE和GIE都置位,将产生一个中断请求。PUC后或UCSWRST=1时,UCRXIFG和UCTXIE复位。对UCxRXBUF进行读操作之后,UCRXIFG会自动复位。,I2C模式下可用的USCI寄存器,USCI_Bx控制寄存器0(UCBxCTL0),UCA10Bit7本机地址模式选择07位本机地址模式10位本机地址模式UCSLA10Bit6从机地址模式选择7位从机地址模式10位从机地址模式UCMMBit5多主机环境的选择0单主机环境。该系统内没有别的主机。禁止地址比较单元。1多主机环境。UCMSTBit3主机模式选择。当主机在多主机环境下丢失仲裁时(UCMM=1),UCMST自动复位,模块作为从机操作。0从机模式1主机模式UCMODExBits2-1USCI模式。当UCSYNC=1时,UCMODEx位选择同步模式。003线SPI01四线SPI(如果UCxSTE=1,使能主/从机)10四线SPI(如果UCxSTE=0,使能主/从机)11I2C模式UCYNCBit0使能同步模式。0异步模式1同步模式,USCI_Bx控制寄存器1(UCBxCTL1),UCSSELxBits7-6USCI时钟源选择。这些位选择BRCLK时钟源。00UCLKI01ACLK10SMCLK11SMCLKUCTRBit4发送/接收。0接收1发送UCTXNACKBit3发送NACK。当NACK发送完毕后,UCTXNACK自动清零。0正常应答1产生NACK信号UCTXSTPBit2在主模式下发送STOP条件。在从模式下忽略该位。在主接收模式下,NACK信号在STOP条件前。在产生STOP条件后,UCTXSTP自动清零。0无STOP条件产生1产生STOP条件UCTXSTTBit1在主模式下发送START条件。在从模式下忽略该位。在主接收模式下,NACK信号在重复START条件之前。发送START条件和地址信息后,UCTXSTT自动清零。0不产生START条件1产生START条件UCSWRSTBit0使能软件复位。0禁止。USCI复位释放。1使能。USCI保持在复位状态。,程序流程图,TXISR,判断STOP条件是否发送,若否,则等待,N,Y,主从机接口电路图,主机模式配置I2C模块,voidmain(void)WDTCTL=WDTPW+WDTHOLD;P8SEL|=BIT5+BIT6;P8DIR|=BIT5+BIT6;UCB1CTL1|=UCSWRST;UCB1CTL0=UCMST+UCMODE_3+UCSYNC;UCB1CTL1=UCSSEL_2+UCSWRST;UCB1BR0=12;UCB1BR1=0;UCB1I2CSA=0 x48;UCB1CTL1,初始化代码,使用SMCLK,保持软件复位,设置从机地址,清除软件复位,恢复运行,使能发送中断,主机循环,while(1)/Delayrequiredbetweentransactionfor(i=0;ihereandread_no_operation();,从机中断,#pragmavector=USCI_B0_VECTOR_interruptvoidUSCI_B0_ISR(void)switch(_even_in_range(UCB0IV,12)case6:/Vector6:STTIFGUCB0IFG,主机模块配置库,/InitializeMasterI2C_masterInit(_MSP430_BASEADDRESS_USCI_B0_,I2C_CLOCKSOURCE_SMCLK,UCS_getSMCLK(_MSP430_BASEADDRESS_UCS_),I2C_SET_DATA_RATE_400KBPS);/SpecifyslaveaddressI2C_setSlaveAddress(_MSP430_BASEADDRESS_USCI_B0_,SLAVE_ADDRESS);/SetTransmitmodeI2C_setMode(_MSP430_BASEADDRESS_USCI_B0_,I2C_TRANSMIT_MODE);/EnableI2CModuletostartoperationsI2C_enable(_MSP430_BASEADDRESS_USCI_B0_);,主机主循环库,while(1)/EnabletransmitInterruptI2C_enableInterrupt(_MSP430_BASEADDRESS_USCI_B0_,I2C_TRANSMIT_INTERRUPT);/Delaybetweeneachtransaction_delay_cycles(50);/LoadTXbytecountertransmitCounter=1;/InitiatestartandsendfirstcharacterI2C_masterMultiByteSendStart(_MSP430_BASEADDRESS_USCI_B0_,transmitData0);/EnterLPM0withinterruptsenabled_bis_SR_register(LPM0_bits+GIE);_no_operation();/Delayuntiltransmissioncompleteswhile(I2C_isBusBusy(_MSP430_BASEADDRESS_USCI_B0_);,主机中断库,#pragmavector=USCI_B0_VECTOR_interruptvoidUSCI_B0_ISR(void)switch(_even_in_range(UCB0IV,12)caseUSCI_I2C_UCTXIFG:/CheckTXbytecounterif(transmitCounterTXLENGTH)/InitiatesendofcharacterfromMastertoSlaveI2C_masterMultiByteSendNext(_MSP430_BASEADDRESS_USCI_B0_,transmitDatatransmitCounter);/Incremen

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论