i2c总线协议(中文版pdf)
IIC总线协议中文版(IEEE标准版)
![IIC总线协议中文版(IEEE标准版)](https://img.taocdn.com/s3/m/19302f000740be1e650e9a36.png)
I2C1I2C (3)2.1 (4)2.2 (5)3I2C (6)5 (7)6.1 (7)6.2 (8)7 (10)8.1 (10)8.2 (10)8.3 (11)97 (13)10.1 (13)10.1.1 (14)10.1.2 (15)10.1.3 CBUS (16)11 (17)13I/O (26)15.1 (26)15.2 Hs (28)16 (33)17.1 I2C (33)17.2 I2C (34)17.3 (34)17.4 I2C Rp R S (35)17.5 Hs I2C Rp R S (35)18Philips (37)204400kbit/s0~100kbit/s I 2C10241.22.0-1998I 2CHsI 2C2V0.6V 6mAHs13.222672LCDRAMDTMFICPhilips150CMOSI 2CICI 2CI 2CSCL8100kbit/s3.4Mbit/s1I 2CI 2CICICI 2CICIC1 I 2Ca bI 2CP C BI 2CIC SO I 2CICIC ROM3I/OIC4NMOS SDASCLLCD11 I2CI2CA BA BABAAI2C I2C1SCLS DAS C LMICRO -CONTROLLERASTATICRAM OREEPROMLCDDRIVERGATEARRAY ADCMICRO -CONTROLLERB2I2CI2C5I2C100kbit/s3.4Mbit/s13I2C156.1SDA4SCLKN1OUTSCLK INSCLKDATAN1OUT DATA IN DEVICE 1SDA (Serial Data Line)SCL (Serial Clock Line)SCLKN2OUT SCLK INSCLK DATAN2OUT DATA IN DEVICE 2V DDR pR ppull-up resistors3I 2Cdata line stable;data validchange of data allowedSDASCL4 I 2C6.2I 2C S P 5SDASCL15SrSSDA SCLPSTOP conditionSDASCLSSTART condition5公司机密7SCLCBUS10.1.3SDASDA76 I 2C机密7 I2C88C LK1CLK2SCLstart counting8SCL密1014Hs8139DATA1SDADATA 1DATA 2SDASCL9I2C8.3SCL97R/W1PSrA 13A123AAI2C57公司机密12131010.1.110.17LSB1R/W43I2C I2C82142R/W0000 000 00000 000 10000 001 X CBUS0000 010 X0000 011 X0000 1XX X Hs1111 1XX X1111 0XX X 1023I2CB1HSDA SCL0000010000000000117I2C1817S9821Sr7ACKdummy acknowledge (HIGH)start byte 00000001SDASCL18S00000001SDASDASrI 2C80000001XDLEN19CBUSCBUSS P STOP conditionCBUS load pulsen - data bitsCBUS addressSTART conditionR/WbitACK related clock pulseSDASCLDLEN19CBUS100kbit/s7400kbit/sHs10公司机密I 2C100kbit/sHs711210710I 2C710I 2CSDA SCLI 2C13SCL 0~100kbit/sI 2C400kbit/sSDASCLCBUSSDA SCLSDASCLI/OI 2CHsI 2CHsHs13.13.4Mbit/sHsSDAH SCLH1Hs1HsHs1:2Hs1HsF/SSDASCLHsSCLHSDAHHsSDAHSCLHSchmitt20Hs I2CHsI/O>100pFR p HsSCLHMCS(3)SCLH公司机密13.2 HsHsI 2CF/S200001XXXA F/SHs0000 1000AHsAHsSCLHSCLHSCLHSCLH7R/WAAASCLHF/SHs(8-bit DA A/A)= MCS current source pull-up= Rp resistor pull-up22Hs13.3F/S HsF/SI2CS 00001XXX AHsHs SDAH SCLHHsHs SDAH SCLHt H Hst H SCLH1212SDAH SDAHHst1Hs 公司机密13.4Hs23HsF/SF/SHsSDASCLSDA SCL(3)SCL2425HsVDD25VF/SVDD13VVDD1SDAHSDASCLTR1TR1TR2TR1TR2SDASCLVDD2HsSDAHSCLHSDASCLF/S8Hs3.4Mbit/s00001XXX400000XXXF/S公司机密VSSHs-modeSLAVESDAHSCLHVSSHs-modeMASTER/SLAVESDAH SCLHSDASCLRsRsHs-modeSLAVESDAH SCLHV SSR s R sF/S-modeMASTER/SLAVESDASDAHSCLHSDASCLSCLV SSV SSR s R sF/S-modeSLAVESDA SCLV SSR s R sR s R sR sR sV DDV SSHs-modeMASTER/SLAVEV DDV DD1R pR pV DD2R pR p SCLHSDAHMCSMCS(3)(3)(2)(2)(2)(2)(2)(2)(2)(2)(2)(2)(2)(4)(4)(4) (2)(1)(1)BRIDGETR1TR3TR2(1)(2)(4)24Hs F/S3Hs++Hs+Hs++Hs<->Hs 0~3.4Mbit/s 0~3.4Mbit/s 0~3.4Mbit/s -Hs<->0~100kbit/s 0~400kbit/s - -Hs<->0~100kbit/s - 0~100kbit/s - <->0~100kbit/s - - 0~100kbit/s<->0~100kbit/s 0~400kbit/s - 0~100kbit/s<->0~100kbit/s - 0~100kbit/s 0~100kbit/s13.5.1F/S24F/S I2C公司机密25Hs125TR1SDAHSDASCLHSCLTR2SrSCLHSrSCLAASCLHSCLHF/SSCL1祍FSP1SCLHSCLTR3tFSF/S公司机密SDASDAHSDA5t BUFtHSDAHSCLHSDASCL1010107101111XXX7710I2C1111XXX8411111XX I2CS Sr1001081107R/WA1XXXXXXXXA22R/WSr7R/WSr11110XXR/W R/W=111110XX公司机密R/W2930SSr30710114101010公司机密30714.310I2C10H10.1.11000000001H0171010.1.2I/O15.1F/S I2CI/O I2C31I2C100kbit/sI2C8SCLV DDV IL-0.5-0.51.50.3V DDn/a-0.5n/a0.3V DD(1)VV VDD>2VV DD<2VV hysn/an/an/an/a0.05V DD0.1V DD--VV 3mA0.1V DD ~0.9VDDmaxI i -10 10 -10(5)10(5)礎I/OC i-10-10pFI 2C23pF5SDASCLt ft ofR S365I/O SDA SCL5F/SI 2CSDASCL(1)SCL fSCL 0 100 0 400kHzCBUS(10.1.3)I2Ct HD;DAT5.00(2)-3.45(3)-0(2)-0.9(3)祍 祍t SU;DAT 250 - 100(4)-ns SDA SCL t r - 1000 20+0.1C b(5)300 ns SDASCLt f-300 20+0.1C b(5)300 nst SU;STO 4.0 - 0.6 - 祍t BUF 4.7 - 1.3 - 祍C b - 400 - 400 pF V nL 0.1V DD - 0.1V DD - V V nH0.2V DD-0.2V DD-V4SCLV IHmin3SCL4I 2CI 2C 250nsSCL SCLSDAtrmax +t SU;DAT =1000+250=1250nsCb =Hsn/a=31 I 2CF/S15.2 HsHsI 2CI/OHsF/SI 2CSHsR/WSCLHHs7SCLH200ns 100nsSCLH3.4Mbit/s100pF1.7Mbit/sSCLHSDA SCLH 3mA3mASDASDAHSCLSCLHRonH (2)50 - kSCLH(3)400pF SCLH t2C23HsVDDHs SDAH SCLHSCLHVnH0.2V DD- 0.2V DD- V6Cb100~400pF3SCLH1I2CI2C155V10%34510%35300RSSDASCLR p NMOSV DD1R p BiCMOSV DD2CMOSV DD3BIPOLARV DD4= 5 V 10 %DD2 - 4V are device dependent (e.g. 12 V)33I2CSDASCLR p R p CMOS CMOS CMOS CMOSV DD= e.g. 3 V34I2CSDASCLR p CMOSR p CMOS NMOSBIPOLAR5 V 10 %VDD1=V DD2VDD3V DD2,3are device dependent (e.g. 12 V) 35V DD I2CSDASCLR p R pDEVICEV DDI C2R s R sDEVICEV DDI C2R s R s3616.1I2C R p R SI2C33Rp370.1VDD RS RSmax RpRpRp40RpmaxRS040080016001081200642maximum value R()s15 V10 VR p(k )V = 2.5 VDD 5 V38 R S R p010*******20163001284bus capacitance (pF)maximum value R (k )p max. R @ VDD = 5 VSR = 0S39 R pI 2C200204812164080120160total high level input current(A)maximumvalue R p(k )5 V V = 15 V DD2.5 V10 V40R p17.1I 2CI 2C15Miller4tofC bR p5R 120kto input circuit5 pFC1I/ORpC bVDDVSSV pGND T1T2SDA or SCL bus line4217.2I 2CR p3mAV DD =5V10%R pmin =/0.003=1.7k Rp200pFt r300ns43/R p2t rI 2CR SR p2V DDV SSSDA _______________________ V DD _______________________ V SS _______________________ SCL _______________________公司机密VSSSDA _______________________V SS_______________________SCL_______________________SDASCL VDDSCL VSSVDD VSSSDASCL3840tr3944I2C Rp18I/OMOS-FET 1US 5,689,196公司机密I2CHsI2C3.3V5VSDATR1SCL TR2g sdMOS-FET1Rp 3.3VVGSR p5V3.3V 3.3VMOS-FET MOS-FET3.3V3MOS-FETVGS MOS-FET5V13.3V V DD15V V DD22V V DD110V V DD2V DD2VDD119LEDSRAMAD/DAOM4160/490CE201Microcore-411I 2COM1022PC I 2CIBMPCPF8681 I 2C12IC01: Semiconductors for Radio, Audio and CD/DVD Systems 9397 750 02453 IC02: Semiconductors for Television and Video Systems 9397 750 01989 IC03: Semiconductors for Wired Telecom Systems (parts a & b) 9397 750 00839, 9397 750 00811 IC12: I 2C Peripherals9397 750 01647 IC14: 8048-based 8-bit microcontrollers9398 652 40011 IC17: Semiconductors for wireless communications 9397 750 01002 IC18: Semiconductors for in-car electronics 9397 750 00418 IC19: ICs for data communications 9397 750 00138 IC20: 80C51-based 8-bit microcontrollers + Application notes and Development tools9397 750 00963IC22: Multimedia ICs9397 750 02183公司机密13///Can you make the distance... with I 2C-bus (information about the P82B715 I 2C-bus extender IC)9397 750 00008 I 2C-bus multi-master & single-master controller kits 9397 750 00953 Desktop video (CD-ROM)9397 750 00644 80C51 core instructions quick reference 9398 510 76011 80C51 microcontroller selection guide9397 750 01587 OM5027 I 2C-bus evaluation board for low-voltage, low-power ICs & software 9398 706 98011 P90CL301 I 2C driver routinesAN94078 User manual of Microsoft Pascal I 2C-bus driver (MICDRV4.OBJ) ETV/IR8833 C routines for the PCF8584 AN95068Using the PCF8584 with non-specified timings and other frequently asked questionsAN96040User's guide to I 2C-bus control programsETV8835 The I 2C-bus from theory to practice (book and disk)Author: D. Paret Publisher: Wiley ISBN:0-471-96268-6Bi-directional level shifter for I 2C-bus and other systemsAN97055OM5500 demo kit for the PCF2166 LCD driver and PCD3756A telecom microcontroller9397 750 00954 公司机密。
I2C总线24C08(PDF档)
![I2C总线24C08(PDF档)](https://img.taocdn.com/s3/m/1e359d95dd88d0d233d46ae5.png)
应答信号时序
写操作 • 写操作分为字节写和页面写两种操作,
•
在字节写模式下 主器件发送起始命令和从器件地址信息 R/W位置零 给从器件 在从器件产生 •应答信号后 主器件发送16的字节地址 主器件在收到从器件的另一个应答信号后 再发送数据到被寻址的存 储单元 再次应答 并在主器件产生停止信号后 •开始内部数据的擦写 在内部擦写过程中 从器件不再应答主器件的任何请求
I2C总线的传送格式
I2C总线的传送格式为主从式,对系统中的某一器件来说有 四种工作方式:主发送方式、从发送方式、主接收方式、从接 收方式。 只讲主发送从接收(单片机发送 24C08接收)
主器件产生开始信号以后,发送的第一个字节为控制字节。前 七位为从器件的地址片选信号。最低位为数据传送方向位(高 电平表示读从器件,低电平表示写从器件),然后发送一个选 择从器件片内地址的字节,来决定开始读写数据的起始地址。 接着再发送数据字节,可以是单字节数据,也可以是一组数据, 由主器件来决定。从器件每接收到一个字节以后,都要返回一 个应答信号(ASK=0)。主器件在应答时钟周期高电平期间释 放SDA线,转由从器件控制,从器件在这个时钟周期的高电平 期间必须拉低SDA线,并使之为稳定的低电平,作为有效的应 答信号。
I2C总线协议及其应用
![I2C总线协议及其应用](https://img.taocdn.com/s3/m/67d355b168dc5022aaea998fcc22bcd126ff427b.png)
I2C总线协议及其应用I2C协议及其应用一、I2C总线介绍:因为大规模技术的进展,在单个芯片集成CPU以及组成一个单独工作系统所必需的ROM、RAM、I/O端口、A/D、D/A等外围和已经实现,这就是常说的或微控制器。
目前,世界上许多公司生产单片机,品种无数:包括各种字长的CPU,各种容量和品种的ROM、RAM,以及功能各异的I/O等等。
但是,单片机品种规格有限,所以只能选用某种单片机再举行扩展。
扩展的办法有两种:一种是并行总线,另一种是串行总线。
因为串行总线连线少,结构容易,往往不用专用的母板和插座而挺直用导线衔接各个设备即可。
因此,采纳串行总线大大简化了系统硬件设计。
PHILIPS公司早在十几年就前推出了I2C串行总线,它是具备多主机系统所需的包括裁决和凹凸速设备同步等功能的高性能串行总线。
1. I2C总线硬件结构和术语I2C串行总线有两根信号线:一根双向的数据线SDA;另一根是时钟线SCL。
全部接到I2C总线上的设备的串行数据都接到总线的SDA线,各设备的时钟线SCL接到总线的SCL。
典型的I2C总线结构1。
图1:PC总线结构为了避开总线信号的混乱,要求各设备衔接到总线的输出端必需是开漏输出或集电极开路输出的结构。
设备与总线的接口电路2所示。
设备上的串行数据线SDA接口电路应当是双向的,输出电路用于向总线上发数据,输入电路用于接收总线上的数据。
串行时钟线也应是双向的,作为控制总线数据传送的主机要通过SCL输出电路发送时钟信号,同时要检测总线上SCL上的电平以打算什么时候发下一个时钟脉冲电平;作为接受主机指令的从机,要按总线上的SCL的信号发出或接收SDA上的信号,也可以向SCL线发出低电平信号以延伸总线时钟信号周期。
总线空闲时,因各设备都是开漏输出,上拉RP使ADA和SCL线第1页共4页。
TP I2C总线介绍
![TP I2C总线介绍](https://img.taocdn.com/s3/m/be7ae33c58eef8c75fbfc77da26925c52cc5916b.png)
I2C总线接口一、 I2C总线协议I2C总线是一种串行数据传输总线,连接master(主机)和slave(从机),在两者间进行数据传输。
I2C总线有两根传输线,一根是时钟线SCL,一根是数据线SDA。
其中时钟线由主机控制,数据线是双向工作总线,传输数据,数据传输格式为每传输一个字节后传输一位应答位(应答位低电平有效);两者均通过上拉电阻与电源连接,保持高电平。
+VccSCLSDAI2C总线连接I2C总线在主机和从机之间传输数据时可以分为主机向从机写入数据和从机由主机读取数据两种工作模式。
1、主机向从机写入数据在这种工作模式下主机作为发送器,发送数据;从机作为接收机,接收数据。
2、主机由从机读取数据在这种工作模式下从机作为发送器,发送数据;主机作为接收机,接收数据。
I2C 总线的工作原理:I2C 总线在传输数据时首先要判断其是否启动,启动后对从机进行寻址和读写判断,随后根据是否应答来传输数据,最后再判断总线是否停止。
I2C 总线启动判断:当SCL 处于高电平时,SDA 由高电平变为低电平,标志着总线启动。
I2C 总线停止判断:当SCL 处于高电平时,SDA 由低电平变为高电平,标志着总线停止。
当I2C 总线启动后且未停止时,SDA 在SCL 的低电平发生跳变,在SCL 高电平时保持稳定,保证数据能够被采集。
主机首先发送一个字节的数据对从机进行寻址和读写判断;其中数据的传输先发送最高位,第一个发送字节的高7位是从机地址,最低位是数据读写判断位。
当从机接收到地址后判断是否为其地址,然后对主机应答或非应答。
当主机接收到应答以后开始向从机写入数据或由从机读取数据。
主机向从机写入数据时,每完成一个字节,从机都向主机应答;主机由从机读取数据时,每完成一个字节,主机都对从机应答,当主机读完最后一个字节时主机对从机应答取反。
二、 模块数据流I2C总线接口模块设计图i2c_ctrl 模块:从机读写状态机模块i2c_shift模块:从机控制信号、应答等产生模块i2c_intf_ctrl模块:写串并转换、读数据存储模块主机向从机写入数据:主机首先向从机发送地址和写标志,当从机判断主机发送的地址为其地址时对主机应答,然后主机开始发送数据。
IIC总线协议中文版
![IIC总线协议中文版](https://img.taocdn.com/s3/m/ac892fa8b9f67c1cfad6195f312b3169a451eaf3.png)
IIC总线协议中文版IIC总线协议是一种常用的串行通信协议,也被称为I2C协议(Inter-Integrated Circuit)。
它在数字电子系统中广泛用于芯片之间的通信和数据传输。
本文将介绍IIC总线协议的基本原理、工作模式和通信规范。
在主从模式下,总线上有一个主设备和多个从设备。
主设备负责控制总线上的通信,发送开始信号、地址和数据,并接收从设备返回的数据。
从设备根据收到的地址来判断是否需要响应主设备的请求,并将数据发送给主设备。
在多主模式下,总线上可以有多个主设备。
这些主设备之间通过仲裁来确定哪个主设备有权控制总线,并进行通信。
每个主设备都有一个优先级,优先级高的主设备有权接管总线,而优先级低的主设备则需要等待。
起始信号由主设备发送,用于告诉从设备通信即将开始。
起始信号的生成方法是先拉低数据线(SDA),然后再拉低时钟线(SCL)。
地址帧由主设备发送,用于选择要通信的从设备。
地址帧由7位地址和1位读/写位组成,共计8位。
地址位指定了要通信的从设备,读/写位用于指示主设备是要读取还是写入数据。
数据帧由主设备或从设备发送,用于传输实际的数据。
数据帧的长度可以是1字节到32字节。
停止信号由主设备发送,用于告诉从设备通信结束。
停止信号的生成方法是先拉高时钟线(SCL),然后再拉高数据线(SDA)。
总线上的设备可以通过拉低数据线(SDA)来请求主设备延时或终止通信。
总结IIC总线协议是一种常用的串行通信协议,适用于芯片之间的通信和数据传输。
它基于两根线(数据线和时钟线),支持主从模式和多主模式两种工作模式。
通信包括起始信号、地址帧、数据帧和停止信号。
每个设备通过唯一的地址来进行通信,可以通过拉低数据线来请求主设备延时或终止通信。
i2c总线协议中文版
![i2c总线协议中文版](https://img.taocdn.com/s3/m/8a1468c96429647d27284b73f242336c1eb93032.png)
i2c总线协议中文版i2c总线协议(中文版)双方基本信息:甲方:________(本协议中简称“甲方”)乙方:________(本协议中简称“乙方”)甲乙双方在平等自愿、公平诚信的基础上,达成以下协议:第一条:各方身份及权利义务1. 甲方:具有独立法人资格的企业/机构/个人,有权利利用i2c总线协议的技术进行数据传输。
2. 乙方:具有独立法人资格的企业/机构/个人,需经甲方授权并遵守本协议规定,方可使用i2c总线协议进行数据传输。
3. 甲方的权利和义务:(1)甲方有权利根据自身业务需求授权乙方使用i2c总线协议。
(2)甲方有义务提供符合要求的i2c总线协议技术使用授权,并提供技术支持、服务维护等后续工作。
(3)甲方需遵守国家相关法律法规,确保i2c总线协议技术的合法性和安全性。
(4)甲方需确保i2c总线协议技术的稳定性,同时积极处理技术问题,保障乙方的正常使用。
4. 乙方的权利和义务:(1)乙方有权利使用甲方授权的i2c总线协议技术进行数据传输。
(2)乙方有义务确保使用i2c总线协议技术时严格遵守本协议及国家、地方的相关法律法规。
(3)乙方须按照甲方要求缴纳使用费用或提供合理的使用补偿。
(4)乙方有义务根据i2c总线协议技术规范进行合法使用、正确操作,同时承担因非法操作而造成的损失和所有法律责任。
第二条:履行方式及期限1. 甲乙双方应在协议签署后尽快履行自身的权利和义务,确保i2c总线协议技术的顺利实施。
2. 甲方应根据乙方需求及使用情况,提供技术支持和维护服务,保障i2c总线协议技术的功能和稳定性。
3. 乙方应在使用i2c总线协议技术前,审慎阅读本协议,了解相关规定和责任,并按照要求进行支付或补偿等合法操作。
第三条:违约责任1. 甲乙双方如有违反合同约定的行为,将承担相应的违约责任。
2. 若甲方未按照协议规定向乙方提供技术支持和维护服务,或因技术问题造成乙方无法正常使用,甲方应承担相应的赔偿责任。
CAN、I2S、I2C、SPI、SSP 总线协议
![CAN、I2S、I2C、SPI、SSP 总线协议](https://img.taocdn.com/s3/m/4eaf4f60ce84b9d528ea81c758f5f61fb73628b2.png)
标签:无标签一、 SPI 总线说明串行外围设备接口 SPI (serial peripheral interface)总线技术是Motorola 公司推出的一种同步串行接口, Motorola 公司生产的绝大多数 MCU(微控制器)都配有 SPI 硬件接口,如 68 系列 MCU。
SPI 用于 CPU 与各种外围器件进行全双工、同步串行通讯。
SPI 可以同时发出和接收串行数据。
它只需四条线就可以完成 MCU 与各种外围器件的通讯,这四条线是:串行时钟线(CSK)、主机输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)、低电平有效从机选择线 CS。
这些外围器件可以是简单的 TTL 移位寄存器,复杂的 LCD 显示驱动器, A/D、D/A 转换子系统或者其他的 MCU。
当 SPI 工作时,在移位寄存器中的数据逐位从输出引脚(MOSI)输出(高位在前),同时从输入引脚(MISO) 接收的数据逐位移到移位寄存器(高位在前)。
发送一个字节后,从另一个外围器件接收的字节数据进入移位寄存器中。
主 SPI 的时钟信号 (SCK) 使传输同步。
其典型系统框图如下图所示。
SPI 主要特点有: 可以同时发出和接收串行数据 ;可以当做主机或者从机工作 ;提供频率可编程时钟 ;发送结束中断标志 ;写冲突保护 ;总线竞争保护等。
图 2 示出 SPI 总线工作的四种方式,其中使用的最为广泛的是 SPI0 和 SPI3 方式(实线表示):SPI 模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。
如果 CPOL="0",串行同步时钟的空暇状态为低电平;如果 CPOL=1,串行同步时钟的空暇状态为高电平。
时钟相位 (CPHA) 能够配置用于选择两种不同的传输协议之一进行数据传输。
如果 CPHA=0,在串行同步时钟的第一个跳变沿(上升或者下降)数据被采样;如果 CPHA=1,在串行同步时钟的第二个跳变沿(上升或者下降) 数据被采样。
I2C总线协议及工作原理
![I2C总线协议及工作原理](https://img.taocdn.com/s3/m/f45588869fc3d5bbfd0a79563c1ec5da50e2d6c1.png)
I2C总线协议及工作原理I2C(Inter-Integrated Circuit)是一种串行通信总线协议,由Philips公司提出,适用于在电路板上连接各种集成电路的短距离通信。
I2C总线协议的工作原理是基于主从结构的,其中一个设备作为主设备,其他设备作为从设备。
主设备负责发起通信操作,而从设备则被动响应主设备的指令。
主设备在总线上发出启动信号,然后发送器件地址。
发起通信的主设备控制总线的速度和时序,并且主设备确定读写的类型。
从设备根据地址进行匹配,并根据主设备请求的读写进行响应。
通信完成后,主设备会发送停止信号释放总线。
在I2C总线上,每个设备都有一个唯一的7位或10位地址。
主设备在传输数据之前,会发送起始信号,这个信号告诉从设备通信即将开始。
随后主设备会发送一个地址字节,包含了要通信的从设备的地址和读写控制位。
如果从设备的地址和发送的地址匹配,从设备会发送一个应答(ACK)信号,表示准备好接收数据。
主设备然后才开始发送或接收数据。
数据在I2C总线上传输是以字节为单位的,并且每个字节之后都会有一个应答信号。
主设备负责设置时钟线的电平来控制数据的传输,而从设备负责读取或发送数据位。
在读取数据时,主设备会发送应答位,如果从设备准备好读取下一个字节,会发送应答信号;反之,如果从设备不准备好,会发送非应答信号。
在I2C总线上,主设备还可以使用多主模式,允许多个主设备操作相同的总线。
当多个主设备在通信总线上发起通信时,总线的冲突可能会发生。
为了解决这个问题,I2C总线使用了仲裁机制。
仲裁机制根据优先级决定那个设备能够继续发送数据,优先级高的设备可以中断优先级低的设备的传输,从而保证通信的顺利进行。
总结起来,I2C总线协议是一种简单、高效的串行通信协议。
它通过两根线实现设备之间的通信,并且支持多主模式。
它的工作原理是基于主从结构,主设备发起通信,从设备被动响应。
通过仲裁机制,解决了多主模式下的冲突问题。
I2C串行EEPROM系列中文资料
![I2C串行EEPROM系列中文资料](https://img.taocdn.com/s3/m/c5269e3aa32d7375a4178016.png)
2005 Microchip Technology Inc.
DS21930A_CN 第 3 页
24AAXX/24LCXX/24FCXX
2.0 电气特性
绝对最大额定值 (†)
VCC.............................................................................................................................................................................6.5V 相对于 Vss 的所有输入和输出 ............................................................................................................ -0.6V 到 VCC +1.0V 存储温度 ................................................................................................................................................. -65°C 到 +150°C 环境温度 (使用电源时)........................................................................................................................ -40°C 到 +125°C 所有引脚静电保护 ....................................................................................................................................................................≥ 4 kV
I2C总线协议中文版
![I2C总线协议中文版](https://img.taocdn.com/s3/m/b82f5c71b80d6c85ec3a87c24028915f804d842f.png)
I2C总线协议中文版I2C(Inter-Integrated Circuit)总线是一种串行通信协议,用于在不同的集成电路之间进行通信。
它是由飞利浦公司(现在的恩智浦半导体)开发并于1982年发布。
I2C总线协议主要应用于各种数字设备之间的通信,例如传感器、存储设备、显示器和其他外围设备。
I2C总线协议使用两个线路进行通信:时钟线(SCL)和数据线(SDA)。
SCL线由主设备控制,用于对通信进行时钟同步。
SDA线用于传输数据,可以由主设备或从设备进行控制。
每个设备在总线上都有一个唯一的地址,以便在通信时进行识别。
在I2C总线中,通信被称为传输。
每个传输由一个起始条件和一个停止条件组成。
起始条件表明一个传输的开始,而停止条件表示传输的结束。
传输还包括设备地址、数据和确认位。
I2C总线协议定义了两种设备角色:主设备和从设备。
主设备在总线上产生时钟信号,并控制数据传输的发起。
从设备被动响应主设备的请求,并提供所需的数据。
主设备有权选择从设备,并在传输开始时向其发送设备地址。
从设备通过识别其唯一的设备地址来判断传输是否与自己有关。
I2C总线协议支持两种传输模式:主设备模式和从设备模式。
主设备模式下,主设备发送起始条件,并在通信中负责产生时钟信号。
主设备可以向一个或多个从设备发送数据,并在传输结束时发送停止条件。
从设备模式下,从设备只提供响应并在所需时提供数据。
在每个传输中,主设备发送数据位,并等待从设备返回一个ACK(应答)位。
ACK位用于确认数据的接收。
如果从设备成功接收了数据,它会返回一个ACK位。
如果从设备无法接收或处理数据,它可以返回一个NACK(非应答)位,表示传输的结束。
I2C总线协议还支持数据的读取和写入。
在写入模式下,主设备将数据发送给从设备,并等待ACK位的返回。
在读取模式下,主设备提供一个设备地址,并请求从设备发送数据。
从设备接收到请求后,会将数据发送给主设备,并等待ACK位的返回。
I2C总线协议介绍(易懂)
![I2C总线协议介绍(易懂)](https://img.taocdn.com/s3/m/feb89dff4128915f804d2b160b4e767f5acf80ee.png)
I2C总线协议介绍(易懂)目录CONTENTS•I2C总线协议产生背景•I2C总线协议内容介绍•I2C总线协议总结一、I2C总线协议产生背景1电视机内IC 之间相互连接,IC 芯片体积增大功耗增大 成本增加 IC 芯片应用不便飞利浦公司为了硬件电路最简化,效益最大化,给芯片设计制造者和芯片应用者带来极大益处。
2 I2C 总线Logo3飞利浦公司将这种集成电路互连通信电路命名为Inter-Integrated Circuit,简称为Inter-IC,或I2C(数字“2”为上标)。
因为I2C中的两根导线(SDA和SCL)构成了两根Bus,实现了Bus的功能;由于I2C电路能实现Bus的功能,故把I2C 电路称为 I2C-Bus,中文叫I2C总线(I2C总线是一个两线总线)。
4在正式的书面场合,全称写作Inter-Integrated Circuit,简写Inter-IC(IIC)或者I2C(数字“2”书写为上标,,英文读作“I squared C”,中文读作“I平方C”)5I2C总线术语及定义,如表(1)所示:表(1) I2C总线术语及定义6最初,I2C总线的运行速度被限制在100 Kbit /s。
随着技术的发展,对该规范进行了多次补充与更新,现在有五种运行速度模式,如表(2)所示:表(2)I2C总线传输速度模式二、I2C总线协议内容1I2C Bus 只要求两条双向线路:串行数据线(serial data SDA)与串行时钟线SCL(serialclock SCL),两条线都是双向传输的。
每个连接到总线的器件都有唯一的地址,主控制器发出的控制信息分为地址码和控制量两部分,地址码用来选择需要控制的I2C设备,控制量包含类别(写与读)2I2C总线是一种多控制器总线,总线上可以连接多个控制器和多个从机,这些控制器都可以发起对总线的控制,通过仲裁机制,同一个时刻,只能有一个控制器获得控制权,其他控制器轮流获取总线的控制权。
I2C总线协议中文版
![I2C总线协议中文版](https://img.taocdn.com/s3/m/89afac9348649b6648d7c1c708a1284ac850053c.png)
I2C总线协议中文版一、概述:I2C总线协议(Inter-Integrated Circuit)是由飞利浦公司(现在的恩智浦)于1980年代开发的一种串行通信协议。
它是一种双线制协议,使用一根数据线(SDA,Serial Data Line)和一根时钟线(SCL,Serial Clock Line)进行数据传输。
二、工作原理:I2C总线协议采用主从架构。
每个设备都有一个唯一的7位地址,用于通信标识。
通信始于主设备(Master)向从设备(Slave)发送一个起始信号。
接下来,主设备向从设备发送地址和数据,从设备则负责接收和处理这些信息。
通信完成后,主设备发送停止信号。
三、起始信号:起始信号用于标识I2C总线上的数据传输开始。
它是一个由高电平转为低电平的信号,由主设备发出。
起始信号表示数据传输的开始,准备发送地址和数据。
四、停止信号:停止信号用于标识I2C总线上的数据传输结束。
它是一个由低电平转为高电平的信号,由主设备发出。
停止信号表示数据传输的结束,释放总线并准备下一次通信。
五、地址传输:地址传输用于将主设备的地址发送给从设备。
地址是一个7位的二进制数,表示设备的唯一标识。
地址传输始于起始信号。
主设备在发送地址时,位0到6表示从设备的地址,最高位表示读或写操作(0表示写,1表示读)。
六、数据传输:数据传输用于通过I2C总线在主设备和从设备之间传送数据。
数据传输必须在起始信号和停止信号之间进行。
主设备首先发送一个字节的数据,接着从设备对数据进行确认(ACK)操作。
如果从设备收到的数据正确,它会产生一个ACK信号,否则会产生一个NACK信号。
数据传输可以是字节模式(8位数据)或位模式(1位数据),由主设备发起。
七、时钟传输:时钟传输用于同步主设备和从设备之间的数据传输。
时钟信号由主设备产生,并控制整个通信过程。
主设备在时钟线上输出高或低电平,从设备在时钟线上读取该电平。
时钟信号的频率可以通过修改I2C总线速率来调整。
I2C协议
![I2C协议](https://img.taocdn.com/s3/m/ee2ad5116c175f0e7cd137a2.png)
SancyI2C 协议规范I2C 协议规范一. I2C 协议I2C协议是有PHILIPS公司在1992年最先提出,乃PHILIPS公司专利。
只 要购买Philips的I2C元件同时传递了一个在Philips的I2C 专利下, 在I2C 系统 使用元件使系统符合由Philips定义的I2C规范的许可证。
任何使用I2C的元件 都必须得到PHILIPS公司的授权。
二. I2C总线的特征1. 只要求两条总线线路一条串行数据线 (SDA) 一条串行时钟线 (SCL) 。
同时SDL和SCL都是双向线路,分别通过上拉电阻连接到正的电源电压。
2 .每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主 机/从机关系软件设定地址;主机可以作为主机发送器或主机接收器。
3.它是一个真正的多主机总线,如果两个或更多主机同时初始化数据传输 可以通过冲突检测和仲裁防止数据被破坏。
4. 串行的8 位双向数据传输位速率在标准模式下可达100kbit/s。
快速模 式下可达400kbit/s。
高速模式下可达3.4Mbit/s。
5.片上的滤波器可以滤去总线数据线上的毛刺波,保证数据完整。
6.连接到相同总线的IC 数量只受到总线的最大电容400pF 限制。
三. I2C总线的概念I2C两线――串行数据SDA 和串行时钟SCL 线在连接到总线的器件 间传递信息。
每个器件都有一个唯一的地址识别。
无论是微控制器,LCD 驱动器,存储器或键盘接口,都可以作为一个发送器或接收器,由器件的 功能决定。
很明显LCD驱动器只是一个接收器,而存储器则既可以接收又 可以发送数据。
除了发送器和接收器外,器件在执行数据传输时也可以被 看作是主机或从机。
主机是初始化总线的数据传输并产生允许传输的时钟 信号的器件。
此时任何被寻址的器件都被认为是从机。
在I2C总线上,无 论主机是接受方还是发送方,时钟信号永远是主机控制。
四. 总线数据有效性SDA 线上的数据必须在时钟的高电平周期保持稳定。
I2C总线协议中文版PDF
![I2C总线协议中文版PDF](https://img.taocdn.com/s3/m/f4dc28d049649b6648d7475c.png)
I2C总线规范目录1序言 (3)1.1 版本1.0-1992 (3)1.2 版本2.0-1998 (3)1.3 版本2.1-2000 (3)1.4 购买Philips的I2C总线元件 (3)2I2C总线使设计人员和厂商都得益 (3)2.1 设计人员的得益 (4)2.2 厂商的得益 (5)3介绍I2C总线规范 (6)4I2C总线的概念 (6)5总体特征 (7)6位传输 (7)6.1 数据的有效性 (7)6.2 起始和停止条件 (8)7传输数据 (9)7.1 字节格式 (9)7.2 响应 (9)8仲裁和时钟发生 (10)8.1 同步 (10)8.2 仲裁 (10)8.3 用时钟同步机制作为握手 (11)97位的地址格式 (12)107位寻址 (13)10.1 第一个字节的位定义 (13)10.1.1 广播呼叫地址 (14)10.1.2 起始字节 (15)10.1.3 CBUS的兼容性 (16)11标准模式I2C总线规范的扩展 (16)12快速模式 (17)13Hs模式 (17)13.1 高速传输 (17)13.2 Hs模式的串行数据传输格式 (19)13.3 从F/S模式切换到Hs模式以及返回 (20)13.4 低速模式中的快速模式器件 (21)13.5 串行总线系统的混合速度模式 (21)13.5.1 在混合速度总线系统中的F/S模式传输 (22)13.5.2 在混合速度总线系统中的Hs模式传输 (22)13.5.3 混合速度总线系统中电桥的时序要求 (24)1410位寻址 (24)14.1 头两个字节位的定义 (24)14.2 10位寻址的格式 (24)14.3 广播呼叫地址和10位寻址的起始字节 (26)15I/O级和总线线路的电气规范和时序 (26)15.1 标准和快速模式器件 (26)15.2 Hs模式器件 (28)16I2C总线器件到总线线路的电气连接 (30)16.1 标准模式I2C总线器件电阻R p和R S的最大和最小值 (31)17应用信息 (33)17.1 快速模式I2C总线器件的斜率控制输出级 (33)17.2 快速模式I2C总线器件的开关上拉电路 (34)17.3 总线线路的配线方式 (34)17.4 快速模式I2C总线器件电阻R p和R S的最大和最小值 (35)17.5 Hs模式I2C总线器件的电阻R p和R S的最大和最小值 (35)18F/S模式I2C总线系统的双向电平转换器 (35)18.1 连接逻辑电平不同的器件 (36)18.1.1 电平转换器的操作 (36)19Philips提供的开发工具 (37)20支持的文献 (37)1序言1.1 版本1.0-19921992 I2C总线规范的这个版本有以下的修正• 删除了用软件编程从机地址的内容因为实现这个功能相当复杂而且不被使用• 删除了低速模式实际上这个模式是整个I2C总线规范的子集不需要明确地详细说明• 增加了快速模式它将位速率增加4倍到达400kbit/s快速模式器件都向下兼容即它们可以在0~100kbit/s的I2C总线系统中使用• 增加了10位寻址允许1024个额外的从机地址• 快速模式器件的斜率控制和输入滤波改善了EMC性能注意100kbit/s的I2C总线系统或100kbit/s器件都没有改变1.2 版本2.0-1998I2C总线实际上已经成为一个国际标准在超过100种不同的IC上实现而且得到超过50家公司的许可但是现在的很多应用要求总线速度更高电源电压更低这个更新版的I2C总线规范满足这些要求而且有以下的修正• 增加了高速模式Hs模式它将位速率增加到3.4Mbit/s Hs模式的器件可以和I2C总线系统中快速和标准模式器件混合使用位速率从0~3.4Mbit/s• 电源电压是2V或更低的器件的低输出电平和滞后被调整到符合噪声容限的要求而且保持和电源电压更高的器件兼容• 快速模式输出级的0.6V 6mA要求被删除• 新器件的固定输入电平被总线电压相关的电平代替• 增加了双向电平转换器的应用信息1.3 版本2.1-2000I2C总线规范的V2.1版有以下微小的修改• 在Hs模式的重复起始条件后可以延长时钟信号SCLH见13.2节的图2225和32• Hs模式中的一些时序参数变得更随意见表6和表71.4 购买Philips的I2C总线元件购买Philips的I2C元件同时传递了一个在Philips的I2C专利下在I2C系统使用元件使系统符合由Philips定义的I2C规范的许可证2I2C总线使设计人员和厂商都得益在消费者电子电讯和工业电子中看上去不相关的设计里经常有很多相似的地方例如几乎每个系统都包括• 一些智能控制通常是一个单片的微控制器• 通用电路例如LCD驱动器远程I/O口RAM EEPROM或数据转换器• 面向应用的电路譬如收音机和视频系统的数字调谐和信号处理电路或者是音频拨号电话的DTMF发生器为了使这些相似之处对系统设计者和器件厂商都得益而且使硬件效益最大电路最简单Philips开发了一个简单的双向两线总线实现有效的IC之间控制这个总线就称为Inter IC或I2C总线现在Philips 包括超过150种CMOS和双极性兼容I2C总线的IC可以执行前面提到的三种类型的功能所有符合I2C 总线的器件组合了一个片上接口使器件之间直接通过I2C总线通讯这个设计概念解决了很多在设计数字控制电路时遇到的接口问题下面是I2C总线的一些特征• 只要求两条总线线路一条串行数据线SDA一条串行时钟线SCL• 每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机从机关系软件设定地址主机可以作为主机发送器或主机接收器• 它是一个真正的多主机总线如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁防止数据被破坏• 串行的8位双向数据传输位速率在标准模式下可达100kbit/s快速模式下可达400kbit/s高速模式下可达3.4Mbit/s• 片上的滤波器可以滤去总线数据线上的毛刺波保证数据完整• 连接到相同总线的IC数量只受到总线的最大电容400pF限制图1是两个I2C总线应用的例子2.1 设计人员的得益符合I2C总线的IC允许系统设计快速向前推进直接从功能结构图到原型此外由于它们直接剪贴到I2C总线没有任何额外的外部接口所以允许简单地通过从或者向总线剪贴或不剪贴IC 来修改或升级原型系统符合I2C总线的IC还有一些功能特别吸引设计人员• 结构图的功能模块与实际的IC对应设计快速从结构图向最后的原理图推进• 不需要设计总线接口因为I2C总线接口已经集成在片上• 集成的寻址和数据传输协议允许系统完全由软件定义• 相同类型的IC经常用于很多不同的应用• 由于设计人员快速熟悉了用兼容I2C总线的IC表示经常使用的功能模块使设计时间减少• 在系统中增加或删除IC不会影响总线的其他电路• 故障诊断和调试都很简单故障可被立即寻迹• 通过聚集一个可再使用的软件模块的库减少软件开发时间除了这些优点外符合I2C总线的CMOS IC还向设计者在特别吸引的可移植装置和电池供电系统方面提供了特殊的功能它们都有• 极低的电流消耗• 抗高噪声干扰• 电源电压范围宽• 工作的温度范围广图1 I 2C 应用的两个例子a 高性能的高度集成电视bDECT 无绳电话基站2.2 厂商的得益符合I 2C 总线的IC 不只帮助了设计者它们也使设备厂商得到很多益处因为• 简单的两线串行I 2C 总线将互联减到最小因此IC 的管脚更少而且PCB 的线路也减少结果使PCB 更小和更便宜• 完全完整的I 2C 总线协议不需要地址译码器和其他胶合逻辑• I 2C 总线的多主机功能允许通过外部连接到生产线快速测试和调整最终用户的设备•符合I 2C 总线的IC 提供SO 小型VSO 超小型以及DIL 封装甚至减少了IC 的空间要求这些只是一些益处另外兼容I 2C 总线的IC 通过允许简单地构造设备变量和保持设计是最新的简易升级功能增加了系统设计的灵活性这样整个装置系列可以围绕一个基本的模型开发新设备的升级或者功能增强的模型即扩展的存储器远程控制等等可以简单地通过剪贴相应的IC 到总线上产生如果需要更大的ROM 只需要从我们广泛的IC 中选择一个有更大ROM 的微控制器就可以了由于新的IC 要取代旧的增加新功能到装置或者提升它的性能只要简单地从总线上移去过时的IC然后换上它的后续IC 就可以了3介绍I2C总线规范对于面向8位的数字控制应用譬如那些要求用微控制器的要建立一些设计标准• 一个完整的系统通常由至少一个微控制器和其他外围器件例如存储器和I/O扩展器组成• 系统中不同器件的连接成本必须最小• 执行控制功能的系统不要求高速的数据传输• 总的效益由选择的器件和互连总线结构的种类决定产生一个满足这些标准的系统需要一个串行的总线结构尽管串行总线没有并行总线的数据吞吐能力但它们只要很少的配线和IC连接管脚然而总线不仅仅是互连的线还包含系统通讯的所有格式和过程串行总线的器件间通讯必须有某种形式的协议避免所有混乱数据丢失和妨碍信息的可能性快速器件必须可以和慢速器件通讯系统必须不能基于所连接的器件否则不可能进行修改或改进应当设计一个过程决定哪些器件何时可以控制总线而且如果有不同时钟速度的器件连接到总线必须定义总线的时钟源所有这些标准都在I2C总线的规范中4I2C总线的概念I2C总线支持任何IC生产过程NMOS CMOS双极性两线――串行数据SDA和串行时钟SCL线在连接到总线的器件间传递信息每个器件都有一个唯一的地址识别无论是微控制器LCD驱动器存储器或键盘接口而且都可以作为一个发送器或接收器由器件的功能决定很明显LCD驱动器只是一个接收器而存储器则既可以接收又可以发送数据除了发送器和接收器外器件在执行数据传输时也可以被看作是主机或从机见表1主机是初始化总线的数据传输并产生允许传输的时钟信号的器件此时任何被寻址的器件都被认为是从机表1 I2C总线术语的定义术语描述发送器发送数据到总线的器件接收器从总线接收数据的器件主机初始化发送产生时钟信号和终止发送的器件从机被主机寻址的器件多主机同时有多于一个主机尝试控制总线但不破坏报文仲裁是一个在有多个主机同时尝试控制总线但只允许其中一个控制总线并使报文不被破坏的过程同步两个或多个器件同步时钟信号的过程I2C总线是一个多主机的总线这就是说可以连接多于一个能控制总线的器件到总线由于主机通常是微控制器让我们考虑以下数据在两个连接到I2C总线的微控制器之间传输的情况见图2这突出了I2C总线的主机从机和接收器发送器的关系应当注意的是这些关系不是持久的只由当时数据传输的方向决定传输数据的过程如下1假设微控制器A要发送信息到微控制器B• 微控制器A主机寻址微控制器B从机• 微控制器A主机发送器发送数据到微控制器B从机接收器• 微控制器A终止传输2如果微控制器A想从微控制器B接收信息• 微控制器A主机寻址微控制器B从机• 微控制器A 主机接收器从微控制器B 从机发送器接收数据 •微控制器A 终止传输甚至在这种情况下主机微控制器A 也产生定时而且终止传输连接多于一个微控制器到I 2C 总线的可能性意味着超过一个主机可以同时尝试初始化传输数据为了避免由此产生混乱发展出一个仲裁过程它依靠线与连接所有I 2C 总线接口到I 2C 总线如果两个或多个主机尝试发送信息到总线在其他主机都产生的情况下首先产生一个1的主机将丢失仲裁仲裁时的时钟信号是用线与连接到SCL 线的主机产生的时钟的同步结合关于仲裁的更详细信息请参考第8章图2 使用两个微控制器的I 2C 总线配置举例在I 2C 总线上产生时钟信号通常是主机器件的责任当在总线上传输数据时每个主机产生自己的时钟信号主机发出的总线时钟信号只有在以下的情况才能被改变慢速的从机器件控制时钟线并延长时钟信号或者在发生仲裁时被另一个主机改变5总体特征SDA 和SCL 都是双向线路都通过一个电流源或上拉电阻连接到正的电源电压见图3当总线空闲时这两条线路都是高电平连接到总线的器件输出级必须是漏极开路或集电极开路才能执行线与的功能I 2C 总线上数据的传输速率在标准模式下可达100kbit/s 在快速模式下可达400kbit/s 在高速模式下可达3.4Mbit/s 连接到总线的接口数量只由总线电容是400pF 的限制决定关于高速模式主机器件的信息请参考第13章6位传输由于连接到I 2C 总线的器件有不同种类的工艺CMOS NMOS 双极性逻辑0低和1高的电平不是固定的它由V DD 的相关电平决定见第15章的电气规范每传输一个数据位就产生一个时钟脉冲6.1 数据的有效性SDA 线上的数据必须在时钟的高电平周期保持稳定数据线的高或低电平状态只有在SCL 线的时钟信号是低电平时才能改变见图4DEVICE 1DEVICE 2图3 标准模式器件和快速模式器件连接到I 2C 总线data line stable;data validchange of data allowedSDASCL图4 I 2C 总线的位传输6.2 起始和停止条件 在I 2C 总线中唯一出现的是被定义为起始S 和停止P 条件见图5的情况其中一种情况是在SCL 线是高电平时SDA 线从高电平向低电平切换这个情况表示起始条件当SCL 是高电平时SDA 线由低电平向高电平切换表示停止条件起始和停止条件一般由主机产生总线在起始条件后被认为处于忙的状态在停止条件的某段时间后总线被认为再次处于空闲状态总线的空闲状态将在第15章详细说明如果产生重复起始Sr条件而不产生停止条件总线会一直处于忙的状态此时的起始条件S和重复起始Sr条件在功能上是一样的见图10因此在本文档的剩余部分符号S 将作为一个通用的术语既表示起始条件又表示重复起始条件除非有特别声明的Sr如果连接到总线的器件合并了必要的接口硬件那么用它们检测起始和停止条件十分简便但是没有这种接口的微控制器在每个时钟周期至少要采样SDA 线两次来判别有没有发生电平切换SDASCLPSTOP conditionSDASCLSSTART condition图5 起始和停止条件7传输数据7.1 字节格式发送到SDA线上的每个字节必须为8位每次传输可以发送的字节数量不受限制每个字节后必须跟一个响应位首先传输的是数据的最高位MSB见图6如果从机要完成一些其他功能后例如一个内部中断服务程序才能接收或发送下一个完整的数据字节可以使时钟线SCL保持低电平迫使主机进入等待状态当从机准备好接收下一个数据字节并释放时钟线SCL后数据传输继续在一些情况下可以用与I2C总线格式不一样的格式例如兼容CBUS的器件甚至在传输一个字节时用这样的地址起始的报文可以通过产生停止条件来终止此时不会产生响应见10.1.3节7.2 响应数据传输必须带响应相关的响应时钟脉冲由主机产生在响应的时钟脉冲期间发送器释放SDA线高在响应的时钟脉冲期间接收器必须将SDA线拉低使它在这个时钟脉冲的高电平期间保持稳定的低电平见图7当然必须考虑建立和保持时间在第15章详细说明通常被寻址的接收器在接收到的每个字节后除了用CBUS地址开头的报文必须产生一个响应见10.1.3节当从机不能响应从机地址时例如它正在执行一些实时函数不能接收或发送从机必须使数据线保持高电平主机然后产生一个停止条件终止传输或者产生重复起始条件开始新的传输如果从机接收器响应了从机地址但是在传输了一段时间后不能接收更多数据字节主机必须再一次终止传输这个情况用从机在第一个字节后没有产生响应来表示从机使数据线保持高电平主机产生一个停止或重复起始条件如果传输中有主机接收器它必须通过在从机不产生时钟的最后一个字节不产生一个响应向从机发送器通知数据结束从机发送器必须释放数据线允许主机产生一个停止或重复起始条件图6 I2C总线的数据传输图7 I 2C 总线的响应8仲裁和时钟发生8.1 同步所有主机在SCL 线上产生它们自己的时钟来传输I 2C 总线上的报文数据只在时钟的高电平周期有效因此需要一个确定的时钟进行逐位仲裁时钟同步通过线与连接I 2C 接口到SCL 线来执行这就是说SCL 线的高到低切换会使器件开始数它们的低电平周期而且一旦器件的时钟变低电平它会使SCL 线保持这种状态直到到达时钟的高电平见图8但是如果另一个时钟仍处于低电平周期这个时钟的低到高切换不会改变SCL 线的状态因此SCL 线被有最长低电平周期的器件保持低电平此时低电平周期短的器件会进入高电平的等待状态C LK 1CLK 2SCLstart counting图8 仲裁过程中的时钟同步当所有有关的器件数完了它们的低电平周期后时钟线被释放并变成高电平之后器件时钟和SCL 线的状态没有差别而且所有器件会开始数它们的高电平周期首先完成高电平周期的器件会再次将SCL 线拉低这样产生的同步SCL 时钟的低电平周期由低电平时钟周期最长的器件决定而高电平周期由高电平时钟周期最短的器件决定8.2 仲裁主机只能在总线空闲的时侯启动传输两个或多个主机可能在起始条件的最小持续时间t HD;STA内产生一个起始条件结果在总线上产生一个规定的起始条件当SCL 线是高电平时仲裁在SDA 线发生这样在其他主机发送低电平时发送高电平的主机将断开它的数据输出级因为总线上的电平与它自己的电平不相同仲裁可以持续多位它的第一个阶段是比较地址位有关的寻址信息请参考第10章和第14章如果每个主机都尝试寻址相同的器件仲裁会继续比较数据位如果是主机发送器或者比较响应位如果是主机接收器因为I 2C 总线的地址和数据信息由赢得仲裁的主机决定在仲裁过程中不会丢失信息丢失仲裁的主机可以产生时钟脉冲直到丢失仲裁的该字节末尾由于Hs 模式的主机有一个唯一的8位主机码因此一般在第一个字节就可以结束仲裁见第13章 如果主机也结合了从机功能而且在寻址阶段丢失仲裁它很可能就是赢得仲裁的主机在寻址的器件因此丢失仲裁的主机必须立即切换到它的从机模式图9显示了两个主机的仲裁过程当然可能包含更多的内容由连接到总线的主机数量决定此时产生DATA1的主机的内部数据电平与SDA 线的实际电平有一些差别如果关断数据输出这就意味着总线连接了一个高输出电平这不会影响由赢得仲裁的主机初始化的数据传输DATA 1DATA 2SDASCL图9 两个主机的仲裁过程由于I 2C 总线的控制只由地址或主机码以及竞争主机发送的数据决定没有中央主机总线也没有任何定制的优先权必须特别注意的是在串行传输时当重复起始条件或停止条件发送到I 2C 总线的时侯仲裁过程仍在进行如果可能产生这样的情况有关的主机必须在帧格式相同位置发送这个重复起始条件或停止条件也就是说仲裁在不能下面情况之间进行• 重复起始条件和数据位 • 停止条件和数据位 • 重复起始条件和停止条件从机不被卷入仲裁过程8.3 用时钟同步机制作为握手 时钟同步机制除了在仲裁过程中使用外还可以用于使能接收器处理字节级或位级的快速数据传输在字节级的快速传输中器件可以快速接收数据字节但需要更多时间保存接收到的字节或准备另一个要发送的字节然后从机以一种握手过程见图6在接收和响应一个字节后使SCL 线保持低电平迫使主机进入等待状态直到从机准备好下一个要传输的字节在位级的快速传输中器件例如对I 2C 总线有或没有限制的微控制器可以通过延长每个时钟的低电平周期减慢总线时钟从而任何主机的速度都可以适配这个器件的内部操作速率在Hs 模式中握手的功能只能在字节级使用见第13章97位的地址格式数据的传输遵循图10所示的格式在起始条件S后发送了一个从机地址这个地址共有7位紧接着的第8位是数据方向位R/W0表示发送写1表示请求数据读数据传输一般由主机产生的停止位P终止但是如果主机仍希望在总线上通讯它可以产生重复起始条件Sr和寻址另一个从机而不是首先产生一个停止条件在这种传输中可能有不同的读写格式结合图10 完整的数据传输可能的数据传输格式有• 主机发送器发送到从机接收器传输的方向不会改变见图11• 在第一个字节后主机立即读从机见图12在第一次响应时主机发送器变成主机接收器从机接收器变成从机发送器第一次响应仍由从机产生之前发送了一个不响应信号A的主机产生停止条件• 复合格式见图13传输改变方向的时侯起始条件和从机地址都会被重复但R/W位取反如果主机接收器发送一个重复起始条件它之前应该发送了一个不响应信号A注意1复合格式可以用于例如控制一个串行存储器在第一个数据字节期间要写内部存储器的位置在重复起始条件和从机地址后数据可被传输2自动增加或减少之前访问的存储器位置等所有决定都由器件的设计者决定3每个字节都跟着一个响应位在序列中用A或A模块表示4兼容I2C总线的器件在接收到起始或重复起始条件时必须复位它们的总线逻辑甚至在这些起始条件没有根据正确的格式放置它们也都期望发送从机地址5起始条件后面立即跟着一个停止条件报文为空是一个不合法的格式图11 主机发送器用7位地址寻址从机接收器传输方向不变图12 在第一个字节后主机立即读从机图13 复合格式107位寻址I2C总线的寻址过程是通常在起始条件后的第一个字节决定了主机选择哪一个从机例外的情况是可以寻址所有器件的广播呼叫地址使用这个地址时理论上所有器件都会发出一个响应但是也可以使器件忽略这个地址广播呼叫地址的第二个字节定义了要采取的行动这个过程将在10.1.1节详细介绍有关10位寻址的信息请参考第14章10.1 第一个字节的位定义第一个字节的头7位组成了从机地址见图14最低位LSB是第8位它决定了报文的方向第一个字节的最低位是0表示主机会写信息到被选中的从机1表示主机会向从机读信息当发送了一个地址后系统中的每个器件都在起始条件后将头7位与它自己的地址比较如果一样器件会任务它被主机寻址至于是从机接收器还是从机发送器都由R/W位决定图14 起始条件后的第一个字节从机地址由一个固定和一个可编程的部分构成由于很可能在一个系统中有几个同样的器件从机地址的可编程部分使最大数量的这些器件可以连接到I2C总线上器件可编程地址位的数量由它可使用的管脚决定例如如果器件有4个固定的和3个可编程的地址位那么相同的总线上共可以连接8个相同的器件I2C总线委员会协调I2C地址的分配进一步的信息可以从最后列出的Philips代理商处获得保留的两组8位地址0000XXX和1111XXX的用途见表2从机地址的11110XX位组合保留给10位寻址见第14章。
第11章 I2C总线
![第11章 I2C总线](https://img.taocdn.com/s3/m/b9171e25d0d233d4b04e6934.png)
控制总线。当SCL为高电平时,SDA由高变到低为开始条件,当SCL为高电平时,SDA由低变到高 为结束条件。
01
2.器件寻址
I2C 总线上可以挂载多个器件,主器件通过
发送一个起始信号启动发送过程,数据发送时序
见图11-3所示。从器件启动后发送它所要寻址的
从器件的编号8位地址,从器件地址格式如下表。
CONTNTS
01
I2C总线(Inter IC Bus)由PHILIPS公司推出,是近年来微电子通信控制领域广泛采 用的一种新型总线标准,它是同步通信的一种特殊形式,具有接口线少、控制简单、器件 封装形式小、通信速率较高等优点。在主从通信中,可以有多个I2C总线器件同时接到I2C 总线上,所有与I2C兼容的器件都具有标准的接口,通过地址来识别通信对象,使它们可以 经由I2C总线互相直接通信。
4.传输应答 所有数据都是按字节发送的,每次发送的字节数不限,但每发完每一个字节要释放SDA线(呈高
电平),然后由接收器下拉SDA线(呈低电平)产生应答位,表示传输成功,此时主控器必须产生一个与 此位相应的额外时钟脉冲。I2C 总线数据传送时,每成功地传送一个字节数据后接收器都必须产生一 个应答信号,应答的器件在第9 个时钟周期时将SDA 线拉低,表示其已收到一个8 位数,24C04在接 收到起始信号和从器件地址之后响应一个应答信号,如果器件已选择了写操作,则在每接收一个8 位 字节之后响应一个应答信号。当24C04 工作于读模式时,在发送一个8 位数据后释放SDA 线,并监 视一个应答信号,一旦接收到应答信号24C04继续发送数据,如果单片机没有发送应答信号,器件停 止传送数据且等待一个停止信号。应答时序如图11-4所示。
I2C总线协议
![I2C总线协议](https://img.taocdn.com/s3/m/084051e3f61fb7360b4c6598.png)
I2C总线协议1.I2C协议2条双向串行线,一条数据线SDA,一条时钟线SCL。
SDA传输数据是大端传输,每次传输8bit,即一字节。
支持多主控(multimastering),任何时间点只能有一个主控。
总线上每个设备都有自己的一个addr,共7个bit,广播地址全0.系统中可能有多个同种芯片,为此addr分为固定部分和可编程部份,细节视芯片而定,看datasheet。
1.1 I2C位传输数据传输:SCL为高电平时,SDA线若保持稳定,那么SDA上是在传输数据bit;若SDA发生跳变,则用来表示一个会话的开始或结束(后面讲)数据改变:SCL为低电平时,SDA线才能改变传输的bit1.2 I2C开始和结束信号开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。
1.3 I2C应答信号Master每发送完8bit数据后等待Slave的ACK。
即在第9个clock,若从IC发ACK,SDA会被拉低。
若没有ACK,SDA会被置高,这会引起Master发生RESTART或STOP流程,如下所示:1.4 I2C写流程写寄存器的标准流程为:1. Master发起START2. Master发送I2C addr(7bit)和w操作0(1bit),等待ACK3. Slave发送ACK4. Master发送reg addr(8bit),等待ACK5. Slave发送ACK6. Master发送data(8bit),即要写入寄存器中的数据,等待ACK7. Slave发送ACK8. 第6步和第7步可以重复多次,即顺序写多个寄存器9. Master发起STOP写一个寄存器1.5 I2C读流程读寄存器的标准流程为:1. Master发送I2C addr(7bit)和w操作1(1bit),等待ACK2. Slave发送ACK3. Master发送reg addr(8bit),等待ACK4. Slave发送ACK5. Master发起START6. Master发送I2C addr(7bit)和r操作1(1bit),等待ACK7. Slave发送ACK8. Slave发送data(8bit),即寄存器里的值9. Master发送ACK10. 第8步和第9步可以重复多次,即顺序读多个寄存器2. PowerPC的I2C实现Mpc8560的CCSR中控制I2C的寄存器共有6个。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
I2C总线规范目录1序言 (3)1.1 版本1.0-1992 (3)1.2 版本2.0-1998 (3)1.3 版本2.1-2000 (3)1.4 购买Philips的I2C总线元件 (3)2I2C总线使设计人员和厂商都得益 (3)2.1 设计人员的得益 (4)2.2 厂商的得益 (5)3介绍I2C总线规范 (6)4I2C总线的概念 (6)5总体特征 (7)6位传输 (7)6.1 数据的有效性 (7)6.2 起始和停止条件 (8)7传输数据 (9)7.1 字节格式 (9)7.2 响应 (9)8仲裁和时钟发生 (10)8.1 同步 (10)8.2 仲裁 (10)8.3 用时钟同步机制作为握手 (11)97位的地址格式 (12)107位寻址 (13)10.1 第一个字节的位定义 (13)10.1.1 广播呼叫地址 (14)10.1.2 起始字节 (15)10.1.3 CBUS的兼容性 (16)11标准模式I2C总线规范的扩展 (16)12快速模式 (17)13Hs模式 (17)13.1 高速传输 (17)13.2 Hs模式的串行数据传输格式 (19)13.3 从F/S模式切换到Hs模式以及返回 (20)13.4 低速模式中的快速模式器件 (21)13.5 串行总线系统的混合速度模式 (21)13.5.1 在混合速度总线系统中的F/S模式传输 (22)13.5.2 在混合速度总线系统中的Hs模式传输 (22)13.5.3 混合速度总线系统中电桥的时序要求 (24)1410位寻址 (24)14.1 头两个字节位的定义 (24)14.2 10位寻址的格式 (24)14.3 广播呼叫地址和10位寻址的起始字节 (26)15I/O级和总线线路的电气规范和时序 (26)15.1 标准和快速模式器件 (26)15.2 Hs模式器件 (28)16I2C总线器件到总线线路的电气连接 (30)16.1 标准模式I2C总线器件电阻R p和R S的最大和最小值 (31)17应用信息 (33)17.1 快速模式I2C总线器件的斜率控制输出级 (33)17.2 快速模式I2C总线器件的开关上拉电路 (34)17.3 总线线路的配线方式 (34)17.4 快速模式I2C总线器件电阻R p和R S的最大和最小值 (35)17.5 Hs模式I2C总线器件的电阻R p和R S的最大和最小值 (35)18F/S模式I2C总线系统的双向电平转换器 (35)18.1 连接逻辑电平不同的器件 (36)18.1.1 电平转换器的操作 (36)19Philips提供的开发工具 (37)20支持的文献 (37)1序言1.1 版本1.0-19921992 I2C总线规范的这个版本有以下的修正• 删除了用软件编程从机地址的内容因为实现这个功能相当复杂而且不被使用• 删除了低速模式实际上这个模式是整个I2C总线规范的子集不需要明确地详细说明• 增加了快速模式它将位速率增加4倍到达400kbit/s快速模式器件都向下兼容即它们可以在0~100kbit/s的I2C总线系统中使用• 增加了10位寻址允许1024个额外的从机地址• 快速模式器件的斜率控制和输入滤波改善了EMC性能注意100kbit/s的I2C总线系统或100kbit/s器件都没有改变1.2 版本2.0-1998I2C总线实际上已经成为一个国际标准在超过100种不同的IC上实现而且得到超过50家公司的许可但是现在的很多应用要求总线速度更高电源电压更低这个更新版的I2C总线规范满足这些要求而且有以下的修正• 增加了高速模式Hs模式它将位速率增加到3.4Mbit/s Hs模式的器件可以和I2C总线系统中快速和标准模式器件混合使用位速率从0~3.4Mbit/s• 电源电压是2V或更低的器件的低输出电平和滞后被调整到符合噪声容限的要求而且保持和电源电压更高的器件兼容• 快速模式输出级的0.6V 6mA要求被删除• 新器件的固定输入电平被总线电压相关的电平代替• 增加了双向电平转换器的应用信息1.3 版本2.1-2000I2C总线规范的V2.1版有以下微小的修改• 在Hs模式的重复起始条件后可以延长时钟信号SCLH见13.2节的图2225和32• Hs模式中的一些时序参数变得更随意见表6和表71.4 购买Philips的I2C总线元件购买Philips的I2C元件同时传递了一个在Philips的I2C专利下在I2C系统使用元件使系统符合由Philips定义的I2C规范的许可证2I2C总线使设计人员和厂商都得益在消费者电子电讯和工业电子中看上去不相关的设计里经常有很多相似的地方例如几乎每个系统都包括• 一些智能控制通常是一个单片的微控制器• 通用电路例如LCD驱动器远程I/O口RAM EEPROM或数据转换器• 面向应用的电路譬如收音机和视频系统的数字调谐和信号处理电路或者是音频拨号电话的DTMF发生器为了使这些相似之处对系统设计者和器件厂商都得益而且使硬件效益最大电路最简单Philips开发了一个简单的双向两线总线实现有效的IC之间控制这个总线就称为Inter IC或I2C总线现在Philips 包括超过150种CMOS和双极性兼容I2C总线的IC可以执行前面提到的三种类型的功能所有符合I2C 总线的器件组合了一个片上接口使器件之间直接通过I2C总线通讯这个设计概念解决了很多在设计数字控制电路时遇到的接口问题下面是I2C总线的一些特征• 只要求两条总线线路一条串行数据线SDA一条串行时钟线SCL• 每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机从机关系软件设定地址主机可以作为主机发送器或主机接收器• 它是一个真正的多主机总线如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁防止数据被破坏• 串行的8位双向数据传输位速率在标准模式下可达100kbit/s快速模式下可达400kbit/s高速模式下可达3.4Mbit/s• 片上的滤波器可以滤去总线数据线上的毛刺波保证数据完整• 连接到相同总线的IC数量只受到总线的最大电容400pF限制图1是两个I2C总线应用的例子2.1 设计人员的得益符合I2C总线的IC允许系统设计快速向前推进直接从功能结构图到原型此外由于它们直接剪贴到I2C总线没有任何额外的外部接口所以允许简单地通过从或者向总线剪贴或不剪贴IC 来修改或升级原型系统符合I2C总线的IC还有一些功能特别吸引设计人员• 结构图的功能模块与实际的IC对应设计快速从结构图向最后的原理图推进• 不需要设计总线接口因为I2C总线接口已经集成在片上• 集成的寻址和数据传输协议允许系统完全由软件定义• 相同类型的IC经常用于很多不同的应用• 由于设计人员快速熟悉了用兼容I2C总线的IC表示经常使用的功能模块使设计时间减少• 在系统中增加或删除IC不会影响总线的其他电路• 故障诊断和调试都很简单故障可被立即寻迹• 通过聚集一个可再使用的软件模块的库减少软件开发时间除了这些优点外符合I2C总线的CMOS IC还向设计者在特别吸引的可移植装置和电池供电系统方面提供了特殊的功能它们都有• 极低的电流消耗• 抗高噪声干扰• 电源电压范围宽• 工作的温度范围广图1 I2C应用的两个例子a高性能的高度集成电视b DECT无绳电话基站2.2 厂商的得益符合I2C总线的IC不只帮助了设计者它们也使设备厂商得到很多益处因为• 简单的两线串行I2C总线将互联减到最小因此IC的管脚更少而且PCB的线路也减少结果使PCB更小和更便宜• 完全完整的I2C总线协议不需要地址译码器和其他胶合逻辑• I2C总线的多主机功能允许通过外部连接到生产线快速测试和调整最终用户的设备• 符合I2C总线的IC提供SO小型VSO超小型以及DIL封装甚至减少了IC的空间要求这些只是一些益处另外兼容I2C总线的IC通过允许简单地构造设备变量和保持设计是最新的简易升级功能增加了系统设计的灵活性这样整个装置系列可以围绕一个基本的模型开发新设备的升级或者功能增强的模型即扩展的存储器远程控制等等可以简单地通过剪贴相应的IC到总线上产生如果需要更大的ROM只需要从我们广泛的IC中选择一个有更大ROM的微控制器就可以了由于新的IC要取代旧的增加新功能到装置或者提升它的性能只要简单地从总线上移去过时的IC然后换上它的后续IC 就可以了3介绍I2C总线规范对于面向8位的数字控制应用譬如那些要求用微控制器的要建立一些设计标准• 一个完整的系统通常由至少一个微控制器和其他外围器件例如存储器和I/O扩展器组成• 系统中不同器件的连接成本必须最小• 执行控制功能的系统不要求高速的数据传输• 总的效益由选择的器件和互连总线结构的种类决定产生一个满足这些标准的系统需要一个串行的总线结构尽管串行总线没有并行总线的数据吞吐能力但它们只要很少的配线和IC连接管脚然而总线不仅仅是互连的线还包含系统通讯的所有格式和过程串行总线的器件间通讯必须有某种形式的协议避免所有混乱数据丢失和妨碍信息的可能性快速器件必须可以和慢速器件通讯系统必须不能基于所连接的器件否则不可能进行修改或改进应当设计一个过程决定哪些器件何时可以控制总线而且如果有不同时钟速度的器件连接到总线必须定义总线的时钟源所有这些标准都在I2C总线的规范中4I2C总线的概念I2C总线支持任何IC生产过程NMOS CMOS双极性两线――串行数据SDA和串行时钟SCL线在连接到总线的器件间传递信息每个器件都有一个唯一的地址识别无论是微控制器LCD驱动器存储器或键盘接口而且都可以作为一个发送器或接收器由器件的功能决定很明显LCD驱动器只是一个接收器而存储器则既可以接收又可以发送数据除了发送器和接收器外器件在执行数据传输时也可以被看作是主机或从机见表1主机是初始化总线的数据传输并产生允许传输的时钟信号的器件此时任何被寻址的器件都被认为是从机表1 I2C总线术语的定义术语描述发送器发送数据到总线的器件接收器从总线接收数据的器件主机初始化发送产生时钟信号和终止发送的器件从机被主机寻址的器件多主机同时有多于一个主机尝试控制总线但不破坏报文仲裁是一个在有多个主机同时尝试控制总线但只允许其中一个控制总线并使报文不被破坏的过程同步两个或多个器件同步时钟信号的过程I2C总线是一个多主机的总线这就是说可以连接多于一个能控制总线的器件到总线由于主机通常是微控制器让我们考虑以下数据在两个连接到I2C总线的微控制器之间传输的情况见图2这突出了I2C总线的主机从机和接收器发送器的关系应当注意的是这些关系不是持久的只由当时数据传输的方向决定传输数据的过程如下1假设微控制器A要发送信息到微控制器B• 微控制器A主机寻址微控制器B从机• 微控制器A主机发送器发送数据到微控制器B从机接收器• 微控制器A终止传输2如果微控制器A想从微控制器B接收信息• 微控制器A主机寻址微控制器B从机• 微控制器A 主机接收器从微控制器B 从机发送器接收数据 •微控制器A 终止传输甚至在这种情况下主机微控制器A也产生定时而且终止传输连接多于一个微控制器到I 2C 总线的可能性意味着超过一个主机可以同时尝试初始化传输数据为了避免由此产生混乱发展出一个仲裁过程它依靠线与连接所有I 2C 总线接口到I 2C总线如果两个或多个主机尝试发送信息到总线在其他主机都产生的情况下首先产生一个1的主机将丢失仲裁仲裁时的时钟信号是用线与连接到SCL 线的主机产生的时钟的同步结合关于仲裁的更详细信息请参考第8章图2 使用两个微控制器的I 2C 总线配置举例在I 2C 总线上产生时钟信号通常是主机器件的责任当在总线上传输数据时每个主机产生自己的时钟信号主机发出的总线时钟信号只有在以下的情况才能被改变慢速的从机器件控制时钟线并延长时钟信号或者在发生仲裁时被另一个主机改变5总体特征SDA 和SCL 都是双向线路都通过一个电流源或上拉电阻连接到正的电源电压见图3当总线空闲时这两条线路都是高电平连接到总线的器件输出级必须是漏极开路或集电极开路才能执行线与的功能I 2C 总线上数据的传输速率在标准模式下可达100kbit/s 在快速模式下可达400kbit/s 在高速模式下可达3.4Mbit/s 连接到总线的接口数量只由总线电容是400pF 的限制决定关于高速模式主机器件的信息请参考第13章6位传输由于连接到I 2C 总线的器件有不同种类的工艺CMOS NMOS 双极性逻辑0低和1高的电平不是固定的它由V DD 的相关电平决定见第15章的电气规范每传输一个数据位就产生一个时钟脉冲6.1 数据的有效性SDA 线上的数据必须在时钟的高电平周期保持稳定数据线的高或低电平状态只有在SCL 线的时钟信号是低电平时才能改变见图4DEVICE 1DEVICE 2图3 标准模式器件和快速模式器件连接到I 2C 总线data line stable;data validchange of data allowedSDASCL图4 I 2C 总线的位传输6.2 起始和停止条件 在I 2C 总线中唯一出现的是被定义为起始S 和停止P 条件见图5的情况其中一种情况是在SCL 线是高电平时SDA 线从高电平向低电平切换这个情况表示起始条件当SCL 是高电平时SDA 线由低电平向高电平切换表示停止条件起始和停止条件一般由主机产生总线在起始条件后被认为处于忙的状态在停止条件的某段时间后总线被认为再次处于空闲状态总线的空闲状态将在第15章详细说明如果产生重复起始Sr条件而不产生停止条件总线会一直处于忙的状态此时的起始条件S和重复起始Sr条件在功能上是一样的见图10因此在本文档的剩余部分符号S 将作为一个通用的术语既表示起始条件又表示重复起始条件除非有特别声明的Sr如果连接到总线的器件合并了必要的接口硬件那么用它们检测起始和停止条件十分简便但是没有这种接口的微控制器在每个时钟周期至少要采样SDA 线两次来判别有没有发生电平切换SDASCLPSTOP conditionSDASCLSSTART condition图5 起始和停止条件7传输数据7.1 字节格式发送到SDA线上的每个字节必须为8位每次传输可以发送的字节数量不受限制每个字节后必须跟一个响应位首先传输的是数据的最高位MSB见图6如果从机要完成一些其他功能后例如一个内部中断服务程序才能接收或发送下一个完整的数据字节可以使时钟线SCL保持低电平迫使主机进入等待状态当从机准备好接收下一个数据字节并释放时钟线SCL后数据传输继续在一些情况下可以用与I2C总线格式不一样的格式例如兼容CBUS的器件甚至在传输一个字节时用这样的地址起始的报文可以通过产生停止条件来终止此时不会产生响应见10.1.3节7.2 响应数据传输必须带响应相关的响应时钟脉冲由主机产生在响应的时钟脉冲期间发送器释放SDA线高在响应的时钟脉冲期间接收器必须将SDA线拉低使它在这个时钟脉冲的高电平期间保持稳定的低电平见图7当然必须考虑建立和保持时间在第15章详细说明通常被寻址的接收器在接收到的每个字节后除了用CBUS地址开头的报文必须产生一个响应见10.1.3节当从机不能响应从机地址时例如它正在执行一些实时函数不能接收或发送从机必须使数据线保持高电平主机然后产生一个停止条件终止传输或者产生重复起始条件开始新的传输如果从机接收器响应了从机地址但是在传输了一段时间后不能接收更多数据字节主机必须再一次终止传输这个情况用从机在第一个字节后没有产生响应来表示从机使数据线保持高电平主机产生一个停止或重复起始条件如果传输中有主机接收器它必须通过在从机不产生时钟的最后一个字节不产生一个响应向从机发送器通知数据结束从机发送器必须释放数据线允许主机产生一个停止或重复起始条件图6 I2C总线的数据传输图7 I 2C 总线的响应8仲裁和时钟发生8.1 同步所有主机在SCL 线上产生它们自己的时钟来传输I 2C 总线上的报文数据只在时钟的高电平周期有效因此需要一个确定的时钟进行逐位仲裁时钟同步通过线与连接I 2C 接口到SCL 线来执行这就是说SCL 线的高到低切换会使器件开始数它们的低电平周期而且一旦器件的时钟变低电平它会使SCL 线保持这种状态直到到达时钟的高电平见图8但是如果另一个时钟仍处于低电平周期这个时钟的低到高切换不会改变SCL 线的状态因此SCL 线被有最长低电平周期的器件保持低电平此时低电平周期短的器件会进入高电平的等待状态C LK 1CLK 2SCLstart counting图8 仲裁过程中的时钟同步当所有有关的器件数完了它们的低电平周期后时钟线被释放并变成高电平之后器件时钟和SCL 线的状态没有差别而且所有器件会开始数它们的高电平周期首先完成高电平周期的器件会再次将SCL 线拉低这样产生的同步SCL 时钟的低电平周期由低电平时钟周期最长的器件决定而高电平周期由高电平时钟周期最短的器件决定8.2 仲裁主机只能在总线空闲的时侯启动传输两个或多个主机可能在起始条件的最小持续时间t HD;STA内产生一个起始条件结果在总线上产生一个规定的起始条件当SCL 线是高电平时仲裁在SDA 线发生这样在其他主机发送低电平时发送高电平的主机将断开它的数据输出级因为总线上的电平与它自己的电平不相同仲裁可以持续多位它的第一个阶段是比较地址位有关的寻址信息请参考第10章和第14章如果每个主机都尝试寻址相同的器件仲裁会继续比较数据位如果是主机发送器或者比较响应位如果是主机接收器因为I 2C 总线的地址和数据信息由赢得仲裁的主机决定在仲裁过程中不会丢失信息丢失仲裁的主机可以产生时钟脉冲直到丢失仲裁的该字节末尾由于Hs 模式的主机有一个唯一的8位主机码因此一般在第一个字节就可以结束仲裁见第13章 如果主机也结合了从机功能而且在寻址阶段丢失仲裁它很可能就是赢得仲裁的主机在寻址的器件因此丢失仲裁的主机必须立即切换到它的从机模式图9显示了两个主机的仲裁过程当然可能包含更多的内容由连接到总线的主机数量决定此时产生DATA1的主机的内部数据电平与SDA 线的实际电平有一些差别如果关断数据输出这就意味着总线连接了一个高输出电平这不会影响由赢得仲裁的主机初始化的数据传输DATA 1DATA 2SDASCL图9 两个主机的仲裁过程由于I2C 总线的控制只由地址或主机码以及竞争主机发送的数据决定没有中央主机总线也没有任何定制的优先权必须特别注意的是在串行传输时当重复起始条件或停止条件发送到I 2C 总线的时侯仲裁过程仍在进行如果可能产生这样的情况有关的主机必须在帧格式相同位置发送这个重复起始条件或停止条件也就是说仲裁在不能下面情况之间进行• 重复起始条件和数据位 • 停止条件和数据位 • 重复起始条件和停止条件从机不被卷入仲裁过程8.3 用时钟同步机制作为握手 时钟同步机制除了在仲裁过程中使用外还可以用于使能接收器处理字节级或位级的快速数据传输在字节级的快速传输中器件可以快速接收数据字节但需要更多时间保存接收到的字节或准备另一个要发送的字节然后从机以一种握手过程见图6在接收和响应一个字节后使SCL 线保持低电平迫使主机进入等待状态直到从机准备好下一个要传输的字节在位级的快速传输中器件例如对I 2C 总线有或没有限制的微控制器可以通过延长每个时钟的低电平周期减慢总线时钟从而任何主机的速度都可以适配这个器件的内部操作速率在Hs 模式中握手的功能只能在字节级使用见第13章97位的地址格式数据的传输遵循图10所示的格式在起始条件S后发送了一个从机地址这个地址共有7位紧接着的第8位是数据方向位R/W0表示发送写1表示请求数据读数据传输一般由主机产生的停止位P终止但是如果主机仍希望在总线上通讯它可以产生重复起始条件Sr和寻址另一个从机而不是首先产生一个停止条件在这种传输中可能有不同的读写格式结合图10 完整的数据传输可能的数据传输格式有• 主机发送器发送到从机接收器传输的方向不会改变见图11• 在第一个字节后主机立即读从机见图12在第一次响应时主机发送器变成主机接收器从机接收器变成从机发送器第一次响应仍由从机产生之前发送了一个不响应信号A的主机产生停止条件• 复合格式见图13传输改变方向的时侯起始条件和从机地址都会被重复但R/W位取反如果主机接收器发送一个重复起始条件它之前应该发送了一个不响应信号A注意1复合格式可以用于例如控制一个串行存储器在第一个数据字节期间要写内部存储器的位置在重复起始条件和从机地址后数据可被传输2自动增加或减少之前访问的存储器位置等所有决定都由器件的设计者决定3每个字节都跟着一个响应位在序列中用A或A模块表示4兼容I2C总线的器件在接收到起始或重复起始条件时必须复位它们的总线逻辑甚至在这些起始条件没有根据正确的格式放置它们也都期望发送从机地址5起始条件后面立即跟着一个停止条件报文为空是一个不合法的格式图11 主机发送器用7位地址寻址从机接收器传输方向不变图12 在第一个字节后主机立即读从机图13 复合格式107位寻址I2C总线的寻址过程是通常在起始条件后的第一个字节决定了主机选择哪一个从机例外的情况是可以寻址所有器件的广播呼叫地址使用这个地址时理论上所有器件都会发出一个响应但是也可以使器件忽略这个地址广播呼叫地址的第二个字节定义了要采取的行动这个过程将在10.1.1节详细介绍有关10位寻址的信息请参考第14章10.1 第一个字节的位定义第一个字节的头7位组成了从机地址见图14最低位LSB是第8位它决定了报文的方向第一个字节的最低位是0表示主机会写信息到被选中的从机1表示主机会向从机读信息当发送了一个地址后系统中的每个器件都在起始条件后将头7位与它自己的地址比较如果一样器件会任务它被主机寻址至于是从机接收器还是从机发送器都由R/W位决定图14 起始条件后的第一个字节从机地址由一个固定和一个可编程的部分构成由于很可能在一个系统中有几个同样的器件从机地址的可编程部分使最大数量的这些器件可以连接到I2C总线上器件可编程地址位的数量由它可使用的管脚决定例如如果器件有4个固定的和3个可编程的地址位那么相同的总线上共可以连接8个相同的器件I2C总线委员会协调I2C地址的分配进一步的信息可以从最后列出的Philips代理商处获得保留的两组8位地址0000XXX和1111XXX的用途见表2从机地址的11110XX位组合保留给10位寻址见第14章。