I2C总线协议V2.1 i2c210

合集下载

I2C协议概述

I2C协议概述

I2C协议概述概述:I2C(Inter-Integrated Circuit)是一种串行通信协议,用于在集成电路(IC)之间进行数据传输。

它由飞利浦半导体(现在的恩智浦半导体)在1982年开发,并于1992年公开发布。

I2C协议被广泛应用于各种电子设备中,如计算机、手机、数字摄像机等。

一、协议特点:1. 硬件要求简单:I2C协议只需要两根线(SDA和SCL)进行数据传输,相对于其他串行通信协议来说,硬件要求较低。

2. 双向通信:I2C协议支持双向通信,主设备(Master)可以发送和接收数据,从设备(Slave)只能接收数据。

3. 多主设备支持:I2C协议允许多个主设备连接到同一条总线上,通过地址选择来确定通信对象。

4. 传输速率可变:I2C协议支持多种传输速率,最高可达到400Kbps。

5. 时钟同步:I2C协议使用时钟同步机制,确保数据传输的准确性。

二、协议格式:I2C协议的数据传输分为两种模式:地址模式和数据模式。

1. 地址模式:在地址模式下,主设备发送一个包含从设备地址和读/写位的字节,以选择通信对象。

地址模式的格式如下:[起始位] + [从设备地址(7位)+ 读/写位(1位)] + [应答位]- 起始位:始终为低电平,表示传输开始。

- 从设备地址:指定从设备的地址,由7位二进制数表示。

- 读/写位:指定主设备是要读取从设备的数据还是写入数据。

读取数据时为高电平,写入数据时为低电平。

- 应答位:由从设备发送,用于确认地址是否被接收。

2. 数据模式:在数据模式下,主设备和从设备之间进行数据传输。

数据模式的格式如下:[数据字节] + [应答位]- 数据字节:主设备发送或接收的数据,由8位二进制数表示。

- 应答位:由接收方发送,用于确认数据是否被接收。

三、协议流程:I2C协议的通信过程包括起始条件、地址传输、数据传输和停止条件。

1. 起始条件:通信开始时,主设备发送一个低电平的起始位,表示传输开始。

i2c通讯协议

i2c通讯协议

i2c通讯协议1. 引言i2c通讯协议是一种用于连接集成电路的串行通信协议。

它被广泛应用于各种电子设备中,如传感器、存储器、数字转换器等。

i2c是一种简单、高效、可靠的通信协议,具有多主机、多从机的特性,适用于在复杂系统中实现设备之间的通信。

2. i2c通讯协议的基本特性i2c通讯协议具有以下几个基本特性:2.1. 串行通信i2c使用两根线进行通信,即SDA(串行数据线)和SCL(串行时钟线)。

通过在这两根线上传递高电平和低电平来实现数据传输。

2.2. 主从结构i2c通讯协议支持多主机、多从机的结构。

其中,主机是发起通信的设备,从机是被动响应的设备。

主机负责发送指令和接收数据,从机负责执行指令并返回数据。

2.3. 寻址机制i2c通讯协议使用7位或10位的地址来寻址从机。

每个从机都有一个唯一的地址,主机通过发送地址来选择与之通信的从机。

2.4. 时钟同步i2c通讯协议使用时钟来同步数据传输。

时钟由主机提供,从机根据时钟信号进行数据的读取和写入。

2.5. 数据传输方式i2c通讯协议支持两种数据传输方式:字节传输和块传输。

字节传输是指一次只传输一个字节的数据,块传输是指一次传输多个字节的数据。

2.6. 起始和停止条件i2c通讯协议使用起始和停止条件来标识一次通信的开始和结束。

起始条件是SDA从高电平切换到低电平,而SCL保持高电平。

停止条件是SDA从低电平切换到高电平,而SCL保持高电平。

3. i2c通讯协议的使用步骤使用i2c通讯协议进行设备间通信的步骤如下:3.1. 初始化在通信开始之前,需要对i2c总线进行初始化配置。

这包括设置主机的地址模式(7位或10位)、设置时钟频率等。

3.2. 起始条件主机发送起始条件,即SDA从高电平切换到低电平,而SCL保持高电平。

这表示通信的开始。

3.3. 选择从机主机发送从机的地址以选择与之通信的设备。

地址的发送方式与地址模式有关,可以是7位或10位。

3.4. 数据传输主机发送指令和数据给从机,从机执行指令并返回数据给主机。

i2c协议详解

i2c协议详解

i2c协议详解
I2C(Inter-Integrated Circuit)协议是一种双向串行总线,也称作IIC、TWI(Two-Wire Interface)或SMBus(System Management Bus),由Philips公司于1982年开发,用来连接多个微处理器和其它通信芯片。

I2C协议有两根线,分别是SCL(时钟线)和SDA(数据线),使用双线的好处就是只要两根线就可以完成数据传输,而不需要增加额外的线路,能够大大减少系统所需要的线路,减少系统的复杂度和成本。

I2C协议需要一个主控制器来控制整个系统,主控制器通过SCL线来发送时钟,并通过SDA线来发送和接收数据,从控制器则只负责接收数据。

I2C协议有7个基本信号,START、STOP、ACK、NACK、READ、WRITE和REPEAT START,START在传输数据前发出,STOP则在传输结束后发出,ACK和NACK则用来表示接收方是否正确接收到数据,READ和WRITE则用来指示当前传输的数据是读数据还是写数据,REPEAT START则用来重新开始新一轮的传输。

I2C协议的最大优点是简单、易用,而且可以支持多个从控制器,不过它的缺点也是显而易见的,它的传输速度相对较慢,而且它的传输距离也有限,约在50cm左右。

I2C总线协议规范 v2.1

I2C总线协议规范 v2.1

THE I2C-BUS SPECIFICATIONVERSION 2.1JANUARY 2000CONTENTS1PREFACE. . . . . . . . . . . . . . . . . . . . . . . . . . .3 1.1Version 1.0 - 1992. . . . . . . . . . . . . . . . . . . . 3 1.2Version 2.0 - 198. . . . . . . . . . . . . . . . . . . . . 3 1.3Version 2.1 - 1999. . . . . . . . . . . . . . . . . . . . 3 1.4Purchase of Philips I2C-bus components . . 3 2THE I2C-BUS BENEFITS DESIGNERSAND MANUFACTURERS. . . . . . . . . . . . . . .4 2.1Designer benefits . . . . . . . . . . . . . . . . . . . . 4 2.2Manufacturer benefits. . . . . . . . . . . . . . . . . 6 3INTRODUCTION TO THE I2C-BUSSPECIFICATION . . . . . . . . . . . . . . . . . . . . .6 4THE I2C-BUS CONCEPT . . . . . . . . . . . . . . .6 5GENERAL CHARACTERISTICS . . . . . . . . .8 6BIT TRANSFER . . . . . . . . . . . . . . . . . . . . . .8 6.1Data validity . . . . . . . . . . . . . . . . . . . . . . . . 8 6.2START and STOP conditions. . . . . . . . . . . 9 7TRANSFERRING DATA. . . . . . . . . . . . . . .10 7.1Byte format . . . . . . . . . . . . . . . . . . . . . . . . 10 7.2Acknowledge. . . . . . . . . . . . . . . . . . . . . . . 10 8ARBITRATION AND CLOCKGENERATION . . . . . . . . . . . . . . . . . . . . . .11 8.1Synchronization . . . . . . . . . . . . . . . . . . . . 11 8.2Arbitration . . . . . . . . . . . . . . . . . . . . . . . . . 12 8.3Use of the clock synchronizingmechanism as a handshake. . . . . . . . . . . 13 9FORMATS WITH 7-BIT ADDRESSES. . . .13 107-BIT ADDRESSING . . . . . . . . . . . . . . . . .15 10.1Definition of bits in the first byte . . . . . . . . 15 10.1.1General call address. . . . . . . . . . . . . . . . . 16 10.1.2START byte . . . . . . . . . . . . . . . . . . . . . . . 17 10.1.3CBUS compatibility. . . . . . . . . . . . . . . . . . 18 11EXTENSIONS TO THE STANDARD-MODE I2C-BUS SPECIFICATION . . . . . . .19 12FAST-MODE. . . . . . . . . . . . . . . . . . . . . . . .19 13Hs-MODE . . . . . . . . . . . . . . . . . . . . . . . . . .20 13.1High speed transfer. . . . . . . . . . . . . . . . . . 20 13.2Serial data transfer format in Hs-mode. . . 21 13.3Switching from F/S- to Hs-mode andback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313.4Hs-mode devices at lower speed modes. . 24 13.5Mixed speed modes on one serial bussystem. . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 13.5.1F/S-mode transfer in a mixed-speed bussystem. . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 13.5.2Hs-mode transfer in a mixed-speed bussystem. . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 13.5.3Timing requirements for the bridge in amixed-speed bus system. . . . . . . . . . . . . . 27 1410-BIT ADDRESSING. . . . . . . . . . . . . . . . 27 14.1Definition of bits in the first two bytes. . . . . 27 14.2Formats with 10-bit addresses. . . . . . . . . . 27 14.3General call address and start byte with10-bit addressing. . . . . . . . . . . . . . . . . . . . 30 15ELECTRICAL SPECIFICATIONSAND TIMING FOR I/O STAGESAND BUS LINES. . . . . . . . . . . . . . . . . . . . 30 15.1Standard- and Fast-mode devices. . . . . . . 30 15.2Hs-mode devices. . . . . . . . . . . . . . . . . . . . 34 16ELECTRICAL CONNECTIONS OFI2C-BUS DEVICES TO THE BUS LINES . 37 16.1Maximum and minimum values ofresistors R p and R s for Standard-modeI2C-bus devices . . . . . . . . . . . . . . . . . . . . . 39 17APPLICATION INFORMATION. . . . . . . . . 41 17.1Slope-controlled output stages ofFast-mode I2C-bus devices. . . . . . . . . . . . 41 17.2Switched pull-up circuit for Fast-modeI2C-bus devices . . . . . . . . . . . . . . . . . . . . . 41 17.3Wiring pattern of the bus lines. . . . . . . . . . 42 17.4Maximum and minimum values ofresistors R p and R s for Fast-modeI2C-bus devices . . . . . . . . . . . . . . . . . . . . . 42 17.5Maximum and minimum values ofresistors R p and R s for Hs-modeI2C-bus devices . . . . . . . . . . . . . . . . . . . . . 42 18BI-DIRECTIONAL LEVEL SHIFTERFOR F/S-MODE I2C-BUS SYSTEMS . . . . 42 18.1Connecting devices with differentlogic levels. . . . . . . . . . . . . . . . . . . . . . . . . 43 18.1.1Operation of the level shifter . . . . . . . . . . . 44 19DEVELOPMENT TOOLS AVAILABLEFROM PHILIPS. . . . . . . . . . . . . . . . . . . . . 45 20SUPPORT LITERATURE . . . . . . . . . . . . . 461PREFACE1.1Version 1.0 - 1992This version of the 1992 I2C-bus specification includes the following modifications:•Programming of a slave address by software has been omitted. The realization of this feature is rather complicated and has not been used.•The “low-speed mode” has been omitted. This mode is, in fact, a subset of the total I2C-bus specification and need not be specified explicitly.•The Fast-mode is added. This allows a fourfold increase of the bit rate up to 400kbit/s. Fast-mode devices are downwards compatible i.e. they can be used in a 0 to 100kbit/s I2C-bus system.•10-bit addressing is added. This allows 1024 additional slave addresses.•Slope control and input filtering for Fast-mode devices is specified to improve the EMC behaviour.NOTE: Neither the 100kbit/s I2C-bus system nor the 100kbit/s devices have been changed.1.2Version2.0 - 1998The I2C-bus has become a de facto world standard that is now implemented in over 1000 different ICs and licensed to more than 50 companies. Many of today’s applications, however, require higher bus speeds and lower supply voltages. This updated version of the I2C-bus specification meets those requirements and includes the following modifications:•The High-speed mode (Hs-mode) is added. This allows an increase in the bit rate up to 3.4Mbit/s. Hs-mode devices can be mixed with Fast- and Standard-mode devices on the one I2C-bus system with bit rates from 0 to 3.4Mbit/s.•The low output level and hysteresis of devices with a supply voltage of 2V and below has been adapted to meet the required noise margins and to remain compatible with higher supply voltage devices.•The 0.6V at 6mA requirement for the output stages of Fast-mode devices has been omitted.•The fixed input levels for new devices are replaced by bus voltage-related levels.•Application information for bi-directional level shifter is added.1.3Version2.1 - 2000Version 2.1 of the I2C-bus specification includes the following minor modifications:•After a repeated START condition in Hs-mode, it is possible to stretch the clock signal SCLH (see Section13.2 and Figs22, 25 and 32).•Some timing parameters in Hs-mode have been relaxed (see Tables6 and 7).1.4Purchase of Philips I2C-bus componentsPurchase of Philips I2C components conveys a license under the Philips’ I2C patent to use thecomponents in the I2C system provided the system conforms to the I2C specification defined byPhilips.2THE I2C-BUS BENEFITS DESIGNERS AND MANUFACTURERSIn consumer electronics, telecommunications and industrial electronics, there are often many similarities between seemingly unrelated designs. For example, nearly every system includes:•Some intelligent control, usually a single-chip microcontroller•General-purpose circuits like LCD drivers, remote I/O ports, RAM, EEPROM, or data converters•Application-oriented circuits such as digital tuning and signal processing circuits for radio and video systems, or DTMF generators for telephones with tone dialling.To exploit these similarities to the benefit of both systems designers and equipment manufacturers, as well as to maximize hardware efficiency and circuit simplicity, Philips developed a simple bi-directional 2-wire bus for efficient inter-IC control. This bus is called the Inter IC or I2C-bus. At present, Philips’ IC range includes more than 150 CMOS and bipolar I2C-bus compatible types for performing functions in all three of the previously mentioned categories. All I2C-bus compatible devices incorporate an on-chip interface which allows them to communicate directly with each other via the I2C-bus. This design concept solves the many interfacing problems encountered when designing digital control circuits.Here are some of the features of the I2C-bus:•Only two bus lines are required; a serial data line (SDA) and a serial clock line (SCL)•Each device connected to the bus is software addressable by a unique address and simplemaster/slave relationships exist at all times; masters can operate as master-transmitters or as master-receivers•It’s a true multi-master bus including collision detection and arbitration to prevent data corruption if two or more masters simultaneously initiate data transfer•Serial, 8-bit oriented, bi-directional data transfers can be made at up to 100kbit/s in the Standard-mode, up to 400kbit/s in the Fast-mode, or up to 3.4Mbit/s in the High-speed mode•On-chip filtering rejects spikes on the bus data line to preserve data integrity •The number of ICs that can be connected to the same bus is limited only by a maximum bus capacitance of 400pF.Figure1 shows two examples of I2C-bus applications. 2.1Designer benefitsI2C-bus compatible ICs allow a system design to rapidly progress directly from a functional block diagram to a prototype. Moreover, since they ‘clip’ directly onto theI2C-bus without any additional external interfacing, they allow a prototype system to be modified or upgraded simply by ‘clipping’ or ‘unclipping’ ICs to or from the bus. Here are some of the features of I2C-bus compatible ICs which are particularly attractive to designers:•Functional blocks on the block diagram correspond with the actual ICs; designs proceed rapidly from block diagram to final schematic.•No need to design bus interfaces because the I2C-bus interface is already integrated on-chip.•Integrated addressing and data-transfer protocol allow systems to be completely software-defined•The same IC types can often be used in many different applications•Design-time reduces as designers quickly become familiar with the frequently used functional blocks represented by I2C-bus compatible ICs•ICs can be added to or removed from a system without affecting any other circuits on the bus•Fault diagnosis and debugging are simple; malfunctions can be immediately traced•Software development time can be reduced by assembling a library of reusable software modules.In addition to these advantages, the CMOS ICs in theI2C-bus compatible range offer designers special features which are particularly attractive for portable equipment and battery-backed systems.They all have:•Extremely low current consumption•High noise immunity•Wide supply voltage range•Wide operating temperature range.Fig.1 Two examples of I 2C-bus applications: (a) a high performance highly-integrated TV set(b) DECT cordless phone base-station.handbook, full pagewidthSDA SCLMICRO-CONTROLLER PCB83C528PLLSYNTHESIZERTSA5512NON-VOLATILE MEMORY PCF8582ESTEREO / DUAL SOUND DECODER TDA9840HI-FI AUDIOPROCESSOR TDA9860SINGLE-CHIP TEXT SAA52XXM/S COLOUR DECODER TDA9160APICTURE SIGNALIMPROVEMENTTDA4670VIDEOPROCESSORTDA4685ON-SCREENDISPLAYPCA8510(a)MSB575SDASCLLINEINTERFACEPCA1070BURST MODE CONTROLLERPCD5042ADPCMPCD5032(b)DTMFGENERATOR PCD3311MICRO-CONTROLLER P80CLXXX2.2Manufacturer benefitsI2C-bus compatible ICs don’t only assist designers, they also give a wide range of benefits to equipment manufacturers because:•The simple 2-wire serial I2C-bus minimizes interconnections so ICs have fewer pins and there are not so many PCB tracks; result - smaller and less expensive PCBs•The completely integrated I2C-bus protocol eliminates the need for address decoders and other ‘glue logic’•The multi-master capability of the I2C-bus allows rapid testing and alignment of end-user equipment via external connections to an assembly-line•The availability of I2C-bus compatible ICs in SO (small outline), VSO (very small outline) as well as DIL packages reduces space requirements even more. These are just some of the benefits. In addition, I2C-bus compatible ICs increase system design flexibility by allowing simple construction of equipment variants and easy upgrading to keep designs up-to-date. In this way, an entire family of equipment can be developed around a basic model. Upgrades for new equipment, or enhanced-feature models (i.e. extended memory, remote control, etc.) can then be produced simply by clipping the appropriate ICs onto the bus. If a larger ROM is needed, it’s simply a matter of selecting a micro-controller with a larger ROM from our comprehensive range. As new ICs supersede older ones, it’s easy to add new features to equipment or to increase its performance by simply unclipping the outdated IC from the bus and clipping on its successor.3INTRODUCTION TO THE I2C-BUS SPECIFICATION For 8-bit oriented digital control applications, such as those requiring microcontrollers, certain design criteria can be established:•A complete system usually consists of at least one microcontroller and other peripheral devices such as memories and I/O expanders•The cost of connecting the various devices within the system must be minimized •A system that performs a control function doesn’t require high-speed data transfer•Overall efficiency depends on the devices chosen and the nature of the interconnecting bus structure.To produce a system to satisfy these criteria, a serial bus structure is needed. Although serial buses don’t have the throughput capability of parallel buses, they do require less wiring and fewer IC connecting pins. However, a bus is not merely an interconnecting wire, it embodies all the formats and procedures for communication within the system.Devices communicating with each other on a serial bus must have some form of protocol which avoids all possibilities of confusion, data loss and blockage of information. Fast devices must be able to communicate with slow devices. The system must not be dependent on the devices connected to it, otherwise modifications or improvements would be impossible. A procedure has also to be devised to decide which device will be in control of the bus and when. And, if different devices with different clock speeds are connected to the bus, the bus clock source must be defined. All these criteria are involved in the specification of the I2C-bus.4THE I2C-BUS CONCEPTThe I2C-bus supports any IC fabrication process (NMOS, CMOS, bipolar). Two wires, serial data (SDA) and serial clock (SCL), carry information between the devices connected to the bus. Each device is recognized by a unique address (whether it’s a microcontroller, LCD driver, memory or keyboard interface) and can operate as either a transmitter or receiver, depending on the function of the device. Obviously an LCD driver is only a receiver, whereas a memory can both receive and transmit data. In addition to transmitters and receivers, devices can also be considered as masters or slaves when performing data transfers (see Table 1). A master is the device which initiates a data transfer on the bus and generates the clock signals to permit that transfer. At that time, any device addressed is considered a slave.Table 1Definition of I 2C-bus terminologyThe I 2C-bus is a multi-master bus. This means that more than one device capable of controlling the bus can be connected to it. As masters are usually micro-controllers, let’s consider the case of a data transfer between two microcontrollers connected to the I 2C-bus (see Fig.2). This highlights the master-slave and receiver-transmitter relationships to be found on the I 2C-bus. It should be noted that these relationships are not permanent, but onlydepend on the direction of data transfer at that time. The transfer of data would proceed as follows:1) Suppose microcontroller A wants to send information to microcontroller B:•microcontroller A (master), addresses microcontroller B (slave)•microcontroller A (master-transmitter), sends data to microcontroller B (slave- receiver)•microcontroller A terminates the transfer2) If microcontroller A wants to receive information from microcontroller B:•microcontroller A (master) addresses microcontroller B (slave)•microcontroller A (master- receiver) receives data from microcontroller B (slave- transmitter)•microcontroller A terminates the transfer.Even in this case, the master (microcontroller A) generates the timing and terminates the transfer.The possibility of connecting more than onemicrocontroller to the I 2C-bus means that more than one master could try to initiate a data transfer at the same time. To avoid the chaos that might ensue from such an event - an arbitration procedure has been developed. Thisprocedure relies on the wired-AND connection of all I 2C interfaces to the I 2C-bus.If two or more masters try to put information onto the bus, the first to produce a ‘one’ when the other produces a ‘zero’ will lose the arbitration. The clock signals during arbitration are a synchronized combination of the clocks generated by the masters using the wired-AND connection to the SCL line (for more detailed information concerning arbitration see Section 8).TERM DESCRIPTIONT ransmitter The device which sends data to the busReceiver The device which receives data from the busMasterThe device which initiates a transfer, generates clock signals and terminates a transferSlave The device addressed by a master Multi-masterMore than one master can attempt to control the bus at the same time without corrupting the message ArbitrationProcedure to ensure that, if more than one master simultaneously tries to control the bus, only one is allowed to do so and the winning message is not corruptedSynchronizationProcedure to synchronize the clock signals of two or more devicesFig.2 Example of an I 2C-bus configuration using two microcontrollers.MBC645SDA SCLMICRO -CONTROLLER ASTATIC RAM OR EEPROMLCD DRIVERGATE ARRAYADCMICRO -CONTROLLER BGeneration of clock signals on the I 2C-bus is always the responsibility of master devices; each master generates its own clock signals when transferring data on the bus. Bus clock signals from a master can only be altered when they are stretched by a slow-slave device holding-down the clock line, or by another master when arbitration occurs.5GENERAL CHARACTERISTICSBoth SDA and SCL are bi-directional lines, connected to a positive supply voltage via a current-source or pull-up resistor (see Fig.3). When the bus is free, both lines are HIGH. The output stages of devices connected to the bus must have an open-drain or open-collector to perform the wired-AND function. Data on the I 2C-bus can be transferred at rates of up to 100kbit/s in theStandard-mode, up to 400kbit/s in the Fast-mode, or up to 3.4Mbit/s in the High-speed mode. The number ofinterfaces connected to the bus is solely dependent on the bus capacitance limit of 400pF. For information on High-speed mode master devices, see Section 13.6BIT TRANSFERDue to the variety of different technology devices (CMOS, NMOS, bipolar) which can be connected to the I 2C-bus, the levels of the logical ‘0’ (LOW) and ‘1’ (HIGH) are not fixed and depend on the associated level of V DD (see Section 15 for electrical specifications). One clock pulse is generated for each data bit transferred.6.1Data validityThe data on the SDA line must be stable during the HIGH period of the clock. The HIGH or LOW state of the data line can only change when the clock signal on the SCL line is LOW (see Fig.4).Fig.3 Connection of Standard- and Fast-mode devices to the I 2C-bus.MBC631SCLKN1OUT SCLK INSCLKDATAN1OUT DATA IN DEVICE 1SDA (Serial Data Line)SCL (Serial Clock Line)SCLKN2OUT SCLK INSCLK DATAN2OUT DATA IN DEVICE 2V DDR pR ppull-up resistorsFig.4 Bit transfer on the I 2C-bus.handbook, full pagewidthMBC621data line stable;data validchange of data allowedSDASCL6.2START and STOP conditionsWithin the procedure of the I 2C-bus, unique situations arise which are defined as START (S) and STOP (P) conditions (see Fig.5).A HIGH to LOW transition on the SDA line while SCL is HIGH is one such unique case. This situation indicates a START condition.A LOW to HIGH transition on the SDA line while SCL is HIGH defines a STOP condition.START and STOP conditions are always generated by the master. The bus is considered to be busy after the START condition. The bus is considered to be free again a certain time after the STOP condition. This bus free situation is specified in Section 15.The bus stays busy if a repeated START (Sr) is generated instead of a STOP condition. In this respect, the START (S) and repeated START (Sr) conditions are functionally identical (see Fig. 10). For the remainder of this document, therefore, the S symbol will be used as a generic term to represent both the START and repeated START conditions, unless Sr is particularly relevant.Detection of START and STOP conditions by devices connected to the bus is easy if they incorporate the necessary interfacing hardware. However,microcontrollers with no such interface have to sample the SDA line at least twice per clock period to sense the transition.Fig.5 START and STOP conditions.handbook, full pagewidthMBC622SDA SCLPSTOP conditionSDASCLSSTART condition7TRANSFERRING DATA 7.1Byte formatEvery byte put on the SDA line must be 8-bits long. The number of bytes that can be transmitted per transfer is unrestricted. Each byte has to be followed by an acknowledge bit. Data is transferred with the most significant bit (MSB) first (see Fig.6). If a slave can’t receive or transmit another complete byte of data until it has performed some other function, for example servicing an internal interrupt, it can hold the clock line SCL LOW to force the master into a wait state. Data transfer thencontinues when the slave is ready for another byte of data and releases clock line SCL.In some cases, it’s permitted to use a different format from the I 2C-bus format (for CBUS compatible devices for example). A message which starts with such an address can be terminated by generation of a STOP condition, even during the transmission of a byte. In this case, no acknowledge is generated (see Section 10.1.3).7.2AcknowledgeData transfer with acknowledge is obligatory. The acknowledge-related clock pulse is generated by the master. The transmitter releases the SDA line (HIGH) during the acknowledge clock pulse.The receiver must pull down the SDA line during the acknowledge clock pulse so that it remains stable LOWduring the HIGH period of this clock pulse (see Fig.7). Of course, set-up and hold times (specified in Section 15) must also be taken into account.Usually, a receiver which has been addressed is obliged to generate an acknowledge after each byte has been received, except when the message starts with a CBUS address (see Section 10.1.3).When a slave doesn’t acknowledge the slave address (for example, it’s unable to receive or transmit because it’s performing some real-time function), the data line must be left HIGH by the slave. The master can then generate either a STOP condition to abort the transfer, or a repeated START condition to start a new transfer.If a slave-receiver does acknowledge the slave address but, some time later in the transfer cannot receive any more data bytes, the master must again abort the transfer. This is indicated by the slave generating thenot-acknowledge on the first byte to follow. The slave leaves the data line HIGH and the master generates a STOP or a repeated START condition.If a master-receiver is involved in a transfer, it must signal the end of data to the slave- transmitter by not generating an acknowledge on the last byte that was clocked out of the slave. The slave-transmitter must release the data line to allow the master to generate a STOP or repeated START condition.Fig.6 Data transfer on the I 2C-bus.handbook, full pagewidthMSC608Sr or PSDASrPSCLSTOP or repeated STARTconditionS or SrSTART or repeated STARTcondition12 3 - 89ACK9ACK7812MSBacknowledgement signal from slavebyte complete,interrupt within slaveclock line held low while interrupts are servicedacknowledgement signal from receiverFig.7 Acknowledge on the I 2C-bus.handbook, full pagewidthMBC602S START condition9821clock pulse for acknowledgementnot acknowledgeacknowledgeDATA OUTPUT BY TRANSMITTERDATA OUTPUT BY RECEIVERSCL FROM MASTER8ARBITRATION AND CLOCK GENERATION 8.1SynchronizationAll masters generate their own clock on the SCL line to transfer messages on the I 2C-bus. Data is only valid during the HIGH period of the clock. A defined clock is therefore needed for the bit-by-bit arbitration procedure to take place.Clock synchronization is performed using the wired-AND connection of I 2C interfaces to the SCL line. This meansthat a HIGH to LOW transition on the SCL line will cause the devices concerned to start counting off their LOW period and, once a device clock has gone LOW, it will hold the SCL line in that state until the clock HIGH state is reached (see Fig.8). However, the LOW to HIGH transition of this clock may not change the state of the SCL line if another clock is still within its LOW period. The SCL line will therefore be held LOW by the device with the longest LOW period. Devices with shorter LOW periods enter a HIGH wait-state during this time.Fig.8 Clock synchronization during the arbitration procedure.CLK 1CLK 2SCLcounter resetwait statestart counting HIGH periodMBC632When all devices concerned have counted off their LOW period, the clock line will be released and go HIGH. There will then be no difference between the device clocks and the state of the SCL line, and all the devices will start counting their HIGH periods. The first device to complete its HIGH period will again pull the SCL line LOW.In this way, a synchronized SCL clock is generated with its LOW period determined by the device with the longest clock LOW period, and its HIGH period determined by the one with the shortest clock HIGH period.8.2ArbitrationA master may start a transfer only if the bus is free. Two or more masters may generate a START condition within the minimum hold time (t HD;STA ) of the START condition which results in a defined START condition to the bus.Arbitration takes place on the SDA line, while the SCL line is at the HIGH level, in such a way that the master which transmits a HIGH level, while another master istransmitting a LOW level will switch off its DATA output stage because the level on the bus doesn’t correspond to its own level.Arbitration can continue for many bits. Its first stage is comparison of the address bits (addressing information is given in Sections 10 and 14). If the masters are each tryingto address the same device, arbitration continues with comparison of the data-bits if they are master-transmitter, or acknowledge-bits if they are master-receiver. Because address and data information on the I 2C-bus is determined by the winning master, no information is lost during the arbitration process.A master that loses the arbitration can generate clock pulses until the end of the byte in which it loses the arbitration.As an Hs-mode master has a unique 8-bit master code, it will always finish the arbitration during the first byte (see Section 13).If a master also incorporates a slave function and it loses arbitration during the addressing stage, it’s possible that the winning master is trying to address it. The losingmaster must therefore switch over immediately to its slave mode.Figure 9 shows the arbitration procedure for two masters. Of course, more may be involved (depending on how many masters are connected to the bus). The moment there is a difference between the internal data level of the master generating DATA 1 and the actual level on the SDA line, its data output is switched off, which means that a HIGH output level is then connected to the bus. This will not affect the data transfer initiated by the winning master.Fig.9 Arbitration procedure of two masters.handbook, full pagewidthMSC609DATA 1DATA 2SDASCLSmaster 1 loses arbitrationDATA 1 SDA。

i2c通信协议

i2c通信协议

i2c通信协议I2C通信协议一、简介I2C (Inter-Integrated Circuit),即集成电路互连,是用于在集成电路之间进行通信的串行通信协议。

它是由Philips(飞利浦)公司于1982年提出,并在当今的电子设备中广泛应用。

I2C通信协议采用两根总线:串行数据线SDA(Serial Data Line)和串行时钟线SCL(Serial Clock Line)。

不同于其他协议,I2C通信协议具有简单、节约外设引脚的特点,被广泛应用于各种嵌入式系统中,如传感器、温度计、数字信号处理器等。

二、基本原理在I2C通信协议中,设备之间的通信通过主从关系进行。

主设备负责生成时钟信号和控制总线的传输,从设备则根据主设备的请求进行响应。

主设备和从设备之间的通信是基于传输一个字节数据的方式进行的。

传输的字节数据由一个起始位、八位数据位、一个奇偶校验位和一个停止位组成。

信息按照从高位到低位的顺序传输,同时由时钟信号进行同步。

三、通信过程I2C通信协议的通信过程主要包括起始信号、地址传输、数据传输和停止信号四个阶段。

1. 起始信号起始信号由主设备产生,用于标识接下来的通信过程开始。

起始信号的产生是通过将数据线(SDA)从高电平切换到低电平时完成的。

在通信开始之前,主设备需要发送起始信号来获取总线控制权。

2. 地址传输主设备在发送起始信号后,紧接着发送一个I2C从设备的地址。

地址由7位或10位组成,其中7位地址方式是I2C通信协议最常用的方式。

地址中的最高位表示对从设备进行读取(1)或写入(0)操作。

通过这个地址,主设备可以选择与特定从设备进行通信。

3. 数据传输地址传输完成后,主设备和从设备之间的数据传输开始。

数据的传输顺序是从高位到低位。

主设备向从设备传输数据时,从设备通过拉低SDA线来接收数据。

从设备向主设备传输数据时,主设备必须确认数据的接收情况,操作是保持SDA线为高电平。

4. 停止信号通信结束时,主设备发送停止信号,用于标示通信过程的结束。

i2c协议参数

i2c协议参数

i2c协议参数I2C协议参数I2C总线是一种串行通信协议,由飞利浦公司(现在的恩智浦半导体公司)开发。

它被广泛应用于各种电子设备中,例如传感器、存储器、数字转换器等。

本文将详细介绍I2C协议的各种参数。

一、物理层参数1. 电压:I2C总线标准电平为5V,但也有3.3V和1.8V版本。

不同版本的电压对应着不同的速率和距离限制。

2. 速率:I2C总线有多种速率可供选择,最高达到400kHz。

速率越高,数据传输越快,但同时也会增加误差和干扰。

3. 距离限制:I2C总线的距离限制取决于电压和速率。

在5V电平下,最大距离约为10米;在3.3V电平下,最大距离约为5米。

二、数据帧格式1. 起始位:一个高电平到低电平的转换表示开始一个传输周期。

2. 地址位:7位或10位地址码表示要访问的设备地址。

3. 读写位:一个读写位指示主机是要读取还是写入数据。

4. 应答位:设备在接收到地址位后需要发送一个应答位,表示它已经准备好接收数据。

5. 数据位:8位数据表示要传输的数据。

6. 停止位:一个低电平到高电平的转换表示传输周期结束。

三、时序参数1. SCL时钟频率:SCL时钟频率是I2C总线的主要参数之一,它决定了数据传输速率。

标准模式下,SCL频率为100kHz;快速模式下,SCL频率为400kHz;高速模式下,SCL频率可达到3.4MHz。

2. 数据保持时间(tHD;DAT):数据保持时间是指从SCL时钟的最后一个上升沿到SDA线上数据变化的最小时间间隔。

标准模式下,tHD;DAT为0.1μs;快速模式下,tHD;DAT为0.9μs;高速模式下,tHD;DAT为0.45μs。

3. 数据建立时间(tSU;DAT):数据建立时间是指从SCL时钟的第一个上升沿到SDA线上数据变化的最小时间间隔。

标准模式下,tSU;DAT为0.1μs;快速模式下,tSU;DAT为0.6μs;高速模式下,tSU;DAT为0.25μs。

4. 停止条件保持时间(tSP):停止条件保持时间是指从SCL时钟的最后一个下降沿到SDA线上数据变化的最小时间间隔。

i2c协议

i2c协议

i2c协议I2C(Inter-Integrated Circuit)是一种串行通信协议,广泛应用于各种电子设备中。

I2C通信协议由飞利浦公司(现在的恩智浦公司)开发,其最初是为了简化在一个PCB上连接各种集成电路之间的通信而设计的。

I2C协议是一个简单而高效的串行通信协议,具有以下几个特点。

首先,I2C协议只需要两根信号线即可进行通信,分别是时钟线(SCL)和数据线(SDA)。

其次,I2C协议使用主从机制来管理设备之间的通信,其中一个设备为主设备(Master),总控制总线上的通信;其他设备为从设备(Slave),只有在主设备的通信命令下才会传输数据。

此外,I2C协议还可以支持多主设备并存,通过特定的控制方法进行主设备的转换。

最后,I2C协议的数据传输速度较快,通信速率可以达到400Kbps,甚至可以扩展到1Mbps,使用廉价而少量的硬件成本即可实现。

I2C协议的数据传输原理也比较简单。

首先,主设备会向总线发送一个开始信号(Start Signal),通知其他设备是否要开始通信。

然后,主设备发送一个命令字(Address),以表示要与哪个从设备进行通信。

接着,主设备检查从设备是否存在,如果存在,则从设备会发送一个确认信号(Acknowledge Signal)给主设备。

一旦从设备确认接收到主设备的命令,主设备就可以向从设备发送数据。

最后,一旦通信完成,主设备会发送一个停止信号(Stop Signal),从而断开设备之间的总线连接。

总之,I2C协议是一种广泛应用于各种电子设备之间的串行通信协议,其简单而高效的数据传输原理和低成本的硬件要求使其成为了非常受欢迎的协议。

I2C总线协议及工作原理

I2C总线协议及工作原理

I2C总线协议及工作原理I2C(Inter-Integrated Circuit)是一种串行通信总线协议,由Philips公司提出,适用于在电路板上连接各种集成电路的短距离通信。

I2C总线协议的工作原理是基于主从结构的,其中一个设备作为主设备,其他设备作为从设备。

主设备负责发起通信操作,而从设备则被动响应主设备的指令。

主设备在总线上发出启动信号,然后发送器件地址。

发起通信的主设备控制总线的速度和时序,并且主设备确定读写的类型。

从设备根据地址进行匹配,并根据主设备请求的读写进行响应。

通信完成后,主设备会发送停止信号释放总线。

在I2C总线上,每个设备都有一个唯一的7位或10位地址。

主设备在传输数据之前,会发送起始信号,这个信号告诉从设备通信即将开始。

随后主设备会发送一个地址字节,包含了要通信的从设备的地址和读写控制位。

如果从设备的地址和发送的地址匹配,从设备会发送一个应答(ACK)信号,表示准备好接收数据。

主设备然后才开始发送或接收数据。

数据在I2C总线上传输是以字节为单位的,并且每个字节之后都会有一个应答信号。

主设备负责设置时钟线的电平来控制数据的传输,而从设备负责读取或发送数据位。

在读取数据时,主设备会发送应答位,如果从设备准备好读取下一个字节,会发送应答信号;反之,如果从设备不准备好,会发送非应答信号。

在I2C总线上,主设备还可以使用多主模式,允许多个主设备操作相同的总线。

当多个主设备在通信总线上发起通信时,总线的冲突可能会发生。

为了解决这个问题,I2C总线使用了仲裁机制。

仲裁机制根据优先级决定那个设备能够继续发送数据,优先级高的设备可以中断优先级低的设备的传输,从而保证通信的顺利进行。

总结起来,I2C总线协议是一种简单、高效的串行通信协议。

它通过两根线实现设备之间的通信,并且支持多主模式。

它的工作原理是基于主从结构,主设备发起通信,从设备被动响应。

通过仲裁机制,解决了多主模式下的冲突问题。

I2C协议概述

I2C协议概述

I2C协议概述协议名称:I2C协议1. 引言I2C(Inter-Integrated Circuit)是一种串行通信协议,用于连接集成电路(IC)之间的通信。

它由飞利浦半导体(现在的恩智浦半导体)在1982年开发,被广泛应用于各种电子设备和系统中。

本文将详细介绍I2C协议的概述、特点、工作原理以及应用场景。

2. 概述I2C协议是一种双线制串行通信协议,由两条线路组成:串行数据线(SDA)和串行时钟线(SCL)。

这两条线路连接了多个I2C设备,实现了在同一总线上进行通信的能力。

I2C协议支持多主设备和多从设备的连接,可以实现点对点或多对多的通信。

3. 特点3.1 简单:I2C协议使用双线制,只需要两条线路就可以实现通信,相比其他通信协议来说,I2C协议的硬件设计和实现更为简单。

3.2 高效:I2C协议使用了主从式通信模式,主设备控制通信的发起和结束,从设备负责响应和数据传输。

这种通信方式可以提高通信效率。

3.3 可靠:I2C协议通过校验和机制来确保数据的完整性和准确性。

主设备在发送数据时会生成校验和,并在接收数据时进行校验,以保证数据的可靠性。

4. 工作原理4.1 起始条件和停止条件:I2C通信的起始条件是SDA线从高电平跳变到低电平,而SCL线保持高电平。

停止条件是SDA线从低电平跳变到高电平,而SCL线保持高电平。

4.2 时钟信号:SCL线上的时钟信号用于同步数据传输。

数据的传输必须在时钟信号的边沿进行。

4.3 数据传输:数据传输分为地址传输和数据传输两个阶段。

在地址传输阶段,主设备发送目标设备的地址和读/写位。

在数据传输阶段,主设备和从设备之间交换数据。

4.4 硬件地址:每个I2C设备都有一个唯一的硬件地址,用于在总线上进行寻址和识别。

5. 应用场景5.1 存储器:I2C协议常用于连接存储器芯片,如EEPROM和SRAM。

存储器芯片可以通过I2C总线与其他设备进行数据交换。

5.2 传感器:I2C协议广泛应用于各种传感器,如温度传感器、湿度传感器和加速度传感器。

i2c通信协议

i2c通信协议

i2c通信协议I2C通信协议,全称Inter-Integrated Circuit,是一种串行通信协议,通常用于IC之间的通信。

I2C协议由飞利浦公司(现在是恩智浦半导体)于1982年开发,是一种低速、短距离的通信协议,典型传输速率为100 kbits/s。

I2C协议采用主从式结构,即一方为主机,另一方为从机。

I2C总线上可连接多个从机,而每个从机有唯一的地址。

主机可以向从机发送数据,也可以从从机接收数据。

I2C还支持多主操作,即多个主机可以共享一个I2C总线,实现互相协作。

I2C协议使用两根线进行通信:串行数据线(SDA)和串行时钟线(SCL)。

这两根线都必须由外部上拉电阻拉高。

数据传输分为两种模式:传输模式和地址模式。

在传输模式下,主机向从机发送数据;在地址模式下,主机发送一个地址字节,以获取从机的响应。

在传输模式下,I2C总线上的所有从机将监测SDA线上的数据。

主机首先发送一个起始信号,SDA线的电平会从高电平降到低电平,同时SCL线也会变成低电平,表示一个通信周期的开始。

接下来,主机发送从机地址字节,从机检测到地址匹配后,就会响应主机的请求。

主机通过发送数据字节给从机进行通信,所有的字节传输完毕后,主机会发送一个停止信号,SDA线的电平会从低电平升到高电平,同时SCL线也会变成高电平,表示通信周期的结束。

在地址模式下,主机向总线发送一个地址字节,以向特定从机发送命令或检索数据。

从机检测到地址字节匹配后,就会响应主机的请求。

在一些应用中,从机可以返回一个或多个字节的数据,以响应主机的请求。

总之,I2C协议是一种非常灵活和可靠的通信协议,广泛用于单片机、传感器、LCD显示器和其他许多集成电路中,可使用在许多不同的应用场合中,提供了一个在各种不同设备之间进行通信的标准。

I2C协议概述

I2C协议概述

I2C协议概述协议概述:I2C(Inter-Integrated Circuit)是一种串行通信协议,用于连接集成电路(IC)芯片之间的通信。

它是由飞利浦(Philips)公司在1982年首次提出的,旨在提高集成电路之间的通信效率和可靠性。

I2C协议是一种双线制通信协议,包括一个数据线(SDA)和一个时钟线(SCL),可以实现多个设备在同一总线上进行通信。

协议特点:1. 硬件连接:I2C协议使用开漏或双向缓冲器来实现多主机和多从机之间的连接。

每个设备都有一个唯一的7位地址,用于识别设备并进行通信。

此外,还有一个可选的10位地址模式,以支持更多的设备。

2. 传输速率:I2C协议的传输速率可以根据系统需求进行调整,通常有标准模式(100 kbps)和快速模式(400 kbps)两种速率。

一些高性能设备还支持更高的速率,如快速模式加速(1 Mbps)和高速模式(3.4 Mbps)。

3. 数据传输:I2C协议使用起始位(Start)和停止位(Stop)来标识传输的开始和结束。

数据传输是以字节为单位进行的,每个字节包括8位数据和1位应答位。

主机发送数据时,从机必须发送应答位来确认接收到数据。

4. 多主机支持:I2C协议支持多主机系统,允许多个主机设备在同一总线上进行通信。

主机之间通过仲裁机制来解决总线的争用问题,避免数据冲突。

5. 时钟同步:I2C协议使用时钟同步机制来确保数据的准确传输。

时钟由主机设备控制,从机设备根据时钟信号来接收和发送数据。

主机可以通过调整时钟频率来控制数据传输速率。

协议应用:I2C协议广泛应用于各种电子设备和系统中,特别是在需要连接多个设备的应用中。

以下是一些常见的应用领域:1. 传感器和测量设备:I2C协议可用于连接各种传感器,如温度传感器、湿度传感器、光传感器等。

通过使用I2C协议,这些传感器可以与主控制器进行通信,并传输测量数据。

2. 存储设备:I2C协议可用于连接存储设备,如EEPROM(电可擦除可编程只读存储器)和闪存。

I2C总线协议详解

I2C总线协议详解

I2C总线协议详解简介:I2C(Inter-Integrated Circuit)是一种由PHILIPS公司开发的两线式串行总线,用于衔接微控制器及其外围设备。

I2C总线产生于在80年月,最初为音频和视频设备开发,如今主要在服务器管理中用法,其中包括单个组件状态的通信可随时监控内存、硬盘、网络、系统温度等多个参数,增强了系统的平安性,便利了管理。

I2C总线特点I2C总线最主要的优点是其容易性和有效性。

因为接口挺直在组件之上,因此I2C总线占用的空间十分小,削减了板的空间和芯片管脚的数量,降低了互联成本。

总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。

I2C总线的另一个优点是,它支持多主控(multimastering),其中任何能够举行发送和接收的设备都可以成为主总线。

一个主控能够控制信号的传输和时钟频率。

固然,在任何时光点上只能有一个主控。

I2C总线工作原理总线的构成及信号类型I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。

在CPU与被控IC之间、IC与IC之间举行双向传送,最高传送速率100kbps。

各种被控制电路均并联在这条总线上,但就像电话机一样惟独拨通各自的号码才干工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。

CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量打算该调节的类别(如对照度、亮度等)及需要调节的量。

这样,各控制电路虽然挂在同一条总线上,却彼此自立,互不相关。

I2C总线在传送数据过程*有三种类型信号,它们分离是:开头信号、第1页共4页。

i2c协议

i2c协议

i2c协议I2C(Inter-Integrated Circuit)是一种串行通信协议,用于在电子设备之间进行数据传输。

它由Philips公司于1982年开发,后来成为通用的面向数据传输的协议。

I2C协议是一种主从式的协议,允许一个主设备与多个从设备进行通信。

I2C协议的设计目标是提供简单、高效、可靠的数据传输。

它使用两根线(SDA和SCL)进行双向传输。

SDA线用于数据传输,SCL线用于时钟同步。

在传输过程中,主设备负责控制时钟信号,从设备根据时钟信号进行数据的读取和写入。

I2C协议的操作流程如下:1. 主设备发送起始信号(Start):当主设备要与从设备通信时,它先发送一个低电平的起始信号。

这告诉所有从设备,通信即将开始。

2. 主设备发送设备地址+读/写位:主设备发送从设备地址,并确定通信是读操作还是写操作。

设备地址由7位组成,可以支持最多128个不同的从设备。

3. 从设备响应:当从设备检测到设备地址匹配时,它发送一个应答信号(ACK)。

如果没有从设备响应,则表示该设备不存在或无法访问。

4. 数据传输:主设备发送或接收数据。

如果是写操作,主设备发送数据到从设备;如果是读操作,主设备接收从设备发送的数据。

每发送或接收一个字节,需要等待从设备发送一个应答信号。

5. 主设备停止信号(Stop):当通信完成时,主设备发送一个高电平的停止信号。

这告诉所有从设备,通信已经结束。

I2C协议的特点之一是可以实现多主设备的通信。

多主设备通信时,需要主设备之间进行仲裁,以决定哪个主设备有权控制总线。

I2C使用仲裁位(Arbitration)来实现主设备之间的冲突检测和冲突解决。

在I2C协议中,从设备的寻址方式有两种:7位寻址和10位寻址。

7位寻址模式支持最多128个从设备,10位寻址模式支持最多1024个从设备。

另一个重要的概念是数据传输速率(Bit Rate)。

I2C支持多个数据传输速率,从几千位每秒到几百千位每秒不等。

I2C协议V2.1_中文版

I2C协议V2.1_中文版
14.1 头两个字节位的定义 ...................................................................................................... 24 14.2 10 位寻址的格式 ............................................................................................................ 24 14.3 广播呼叫地址和 10 位寻址的起始字节 ........................................................................... 26
11 标准模式 I2C 总线规范的扩展 ............................................................................. 16 12 快速模式 ............................................................................................................. 17 13 Hs 模式 ............................................................................................................... 17
8 仲裁和时钟发生 .................................................................................................... 10

I2C通信协议详细讲解

I2C通信协议详细讲解

I2C通信协议详细讲解I2C(Inter-Integrated Circuit)是一种串行通信协议,由Philips公司于1980年代初开发,旨在实现多个集成电路之间的简单、高效通信。

I2C协议适用于芯片之间的通信,如存储器、A/D转换器、传感器等。

它具有两根线,一根是时钟线(SCL),用于同步数据传输,另一根是数据线(SDA),用于传输数据。

以下是I2C协议的详细讲解。

1.总线拓扑I2C总线是基于主从架构,其中一个设备充当主设备(Master),其他设备作为从设备(Slave)。

总线上最多可以连接112个从设备,每个从设备通过唯一的地址进行识别。

2.通信格式I2C通信由一系列的起始位、地址位、数据位和停止位组成。

在通信开始之前,主设备负责发出起始位(Start Bit),表示通信开始。

接着主设备发送从设备的7位地址(最低位用于指示读写操作),从设备在总线上进行匹配。

如果从设备地址匹配成功,主设备发送数据或命令给从设备;若从设备地址匹配失败,主设备发送停止位(Stop Bit)结束通信。

3.传输速率I2C协议定义了几种标准的传输速率,如标准模式(Standard Mode)的速率为100 kHz,快速模式(Fast Mode)的速率为400 kHz,高速模式(High-Speed Mode)的速率为3.4 MHz。

除此之外,还有更高速的模式如超高速模式(Ultra Fast Mode)和超快速模式(Ultra Fast Mode),速率分别为5 MHz和25 MHz。

4.时钟同步5.主设备模式主设备可以发送起始位、地址位、数据位和停止位。

它与从设备之间可以进行单向或双向通信。

主设备可以向从设备发送读请求或写请求,并且可以按照需要在传输过程中发出重启位(Repeated Start Bit)来处理多个数据传输操作。

6.从设备模式从设备通过地址识别来接受或发送数据。

从设备可以处于可寻址模式(Addressable Mode)或普通模式(General Call Mode)。

I2C总线协议中文版

I2C总线协议中文版

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总线协议中文版PDF

I2C总线协议中文版PDF

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章。

I2C通讯协议说明

I2C通讯协议说明

第一章 I²C通讯协议基本内容1.1I2C通讯协议简介由PHILIPS开发的一个简单的双向两线总线,实现有效的IC控制,这个总线就称为Inter IC或I2C总线。

现在I2C总线实际上已经成为一个国际标准,I2C 总线规范的版本也从1992年的VERSION 1.0经过1998年的VERSION 2.0发展到2000年的VERSION 2.1。

在加强功能的同时也在满足现在对总线速度更高,电源电压更低的要求。

I2C总线具有以下特性:1)只要求两条总线线路:一条串行数据线(SDA );一条串行时钟线(SCL)。

2)每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机从机关系软件设定地址;主机可以作为主机发送器或主机接收器。

3)它是一个真正的多主机总线。

如果两个或更多主机同时初始化数据传输,可以通过冲突检测和仲裁防止数据被破坏。

4)串行的8 位双向数据传输位速率在标准模式下可达100kbit/s 。

快速模式下可达400kbit/s 高速模式下可达3.4Mbit/s。

I2C 总线支持任何IC 生产过程(NMOS CMOS 双极性),两线――串行数据(SDA)和串行时钟(SCL)线在连接到总线的器件间传递信息。

每个器件都有一个唯一的地址编码,而且都可以作为一个发送器或接收器(由器件的功能决定)。

很明显地,存储器则既可以作接收器又可以作发送器。

除了发送器和接收器外,器件在执行数据传输时也可以被看作是主机或从机(见表1-1)。

主机在发送数据前负责对总线的初始化并产生允许传输的时钟信号。

此时,任何被寻址的器件都被认为是从机表1-1这里我们举个例子说明I2C总线的主机从机和接收器发送器的关系,但是这种关系并不是持久的,只是由当时的数据的传输方向决定,如下所示:1 假设微控制器A 要发送信息到微控制器B. 微控制器A(主机)寻址微控制器B(从机). 微控制器A(主机-发送器)发送数据到微控制器B(从机-接收器). 微控制器A 终止传输2 如果微控制器A 想从微控制器B 接收信息. 微控制器A(主机)寻址微控制器B(从机). 微控制器A(主机-接收器)从微控制器B(从机-发送器)接收数据. 微控制器A 终止传输1.2I2C工作原理1.2.1 I2C的起始和停止条件在I2C 总线中唯一出现的是被定义为起始S 和停止P 条件见图1-1 的情况其中一种情况是在SCL 线是高电平时,SDA 线从高电平向低电平切换。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EXTENSIONS TO THE STANDARDMODE I2C-BUS SPECIFICATION . . . . . . .19
FAST-MODE . . . . . . . . . . . . . . . . . . . . . . . .19
Hs-MODE . . . . . . . . . . . . . . . . . . . . . . . . . .20
THE I2C-BUS SPECIFICATION VERSION 2.1
JANUARY 2000
Philips Semiconductors
The I2C-bus specification
CONTENTS
1 1.1 1.2 1.3 1.4 2
2.1 2.2 3
4 5 6 6.1 6.2 7 7.1 7.2 8
GENERAL CHARACTERISTICS . . . . . . . . .8
BIT TRANSFER . . . . . . . . . . . . . . . . . . . . . .8
Data validity . . . . . . . . . . . . . . . . . . . . . . . . 8 START and STOP conditions . . . . . . . . . . . 9
FORMATS WITH 7-BIT ADDRESSES . . . .13
7-BIT ADDRESSING . . . . . . . . . . . . . . . . .15
Definition of bits in the first byte . . . . . . . . 15 General call address . . . . . . . . . . . . . . . . . 16 START byte . . . . . . . . . . . . . . . . . . . . . . . 17 CBUS compatibility . . . . . . . . . . . . . . . . . . 18
• 10-bit addressing is added. This allows 1024 additional slave addresses.
APPLICATION INFORMATION . . . . . . . . . 41
Slope-controlled output stages of Fast-mode I2C-bus devices . . . . . . . . . . . . 41 Switched pull-up circuit for Fast-mode I2C-bus devices . . . . . . . . . . . . . . . . . . . . . 41 Wiring pattern of the bus lines . . . . . . . . . . 42 Maximum and minimum values of resistors Rp and Rs for Fast-mode I2C-bus devices . . . . . . . . . . . . . . . . . . . . . 42 Maximum and minimum values of resistors Rp and Rs for Hs-mode I2C-bus devices . . . . . . . . . . . . . . . . . . . . . 42
ELECTRICAL SPECIFICATIONS AND TIMING FOR I/O STAGES AND BUS LINES . . . . . . . . . . . . . . . . . . . . 30
Standard- and Fast-mode devices. . . . . . . 30 Hs-mode devices . . . . . . . . . . . . . . . . . . . . 34
TRANSFERRING DATA . . . . . . . . . . . . . . .10
Byte format . . . . . . . . . . . . . . . . . . . . . . . . 10 Acknowledge. . . . . . . . . . . . . . . . . . . . . . . 10
Designer benefits . . . . . . . . . . . . . . . . . . . . 4 Manufacturer benefits . . . . . . . . . . . . . . . . . 6 INTRODUCTION TO THE I2C-BUS SPECIFICATION . . . . . . . . . . . . . . . . . . . . .6 THE I2C-BUS CONCEPT . . . . . . . . . . . . . . .6
ELECTRICAL CONNECTIONS OF I2C-BUS DEVICES TO THE BUS LINES . 37
Maximum and minimum values of resistors Rp and Rs for Standard-mode I2C-bus devices . . . . . . . . . . . . . . . . . . . . . 39
• The “low-speed mode” has been omitted. This mode is, in fact, a subset of the total I2C-bus specification and need not be specified explicitly.
• The Fast-mode is added. This allows a fourfold increase of the bit rate up to 400 kbit/s. Fast-mode devices are downwards compatible i.e. they can be used in a 0 to 100 kbit/s I2C-bus system.
BI-DIRECTIONAL LEVEL SHIFTER FOR F/S-MODE I2C-BUS SYSTEMS . . . . 42
Connecting devices with different logic levels . . . . . . . . . . . . . . . . . . . . . . . . . 43 Operation of the level shifter . . . . . . . . . . . 44
The I2C-bus specification
1 PREFACE
1.1 Version 1.0 - 1992
This version of the 1992 I2C-bus specification includes the following modifications:
• Programming of a slave address by software has been omitted. The realization of this feature is rather complicated and has not been used.
8.1 8.2 8.3
9 10 10.1 10.1.1 10.1.2 10.1.3 11
12 13 13.1 13.2 13.3
PREFACE . . . . . . . . . . . . . . . . . . . . . . . . . . .3
Version 1.0 - 1992. . . . . . . . . . . . . . . . . . . . 3 Version 2.0 - 198. . . . . . . . . . . . . . . . . . . . . 3 Version 2.1 - 1999. . . . . . . . . . . . . . . . . . . . 3 Purchase of Philips I2C-bus components . . 3 THE I2C-BUS BENEFITS DESIGNERS AND MANUFACTURERS . . . . . . . . . . . . . . .4
13.4 13.5 13.5.1 13.5.2 13.5.3
14 14.1 14.2 14.3
15
15.1 15.2 16
16.1
17 17.1 17.2 17.3 17.4
17.5
18
18.1 18.1.1 19
20
Hs-mode devices at lower speed modes . . 24 Mixed speed modes on one serial bus system . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 F/S-mode transfer in a mixed-speed bus system . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Hs-mode transfer in a mixed-speed bus system . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Timing requirements for the bridge in a mixed-speed bus system . . . . . . . . . . . . . . 27
ARBITRATION AND CLOCK GENERATION . . . . . . . . . . . . . . . . . . . . . .11
相关文档
最新文档