当前位置:网站首页>Easy to understand I2C protocol
Easy to understand I2C protocol
2022-07-06 05:05:00 【Embedded base】
I2C The bus is a simple 、 Two way two wire synchronous serial bus .
I2C The communication protocol has few pins , The hardware implementation is simple , High scalability , Unwanted USART、CAN And other communication protocols , It is widely used in multiple integrated circuits in the system (IC) Communication between .
I2C Information exchange is completed by two signal lines ,SCL It's a clock signal line ,SDA For data entry / Output line .
I2C Support multiple slaves (Slaver), It can also support multi host mode (Master). Most of the I2C Device support 100kHz and 400kHz Pattern , Some special applications can also be designed to support 3.4MHz.
I2C Its simple applications mainly include I2C Hardware connection and I2C Communication protocol Two aspects , This article gives a brief description of common communication methods .
I2C Hardware connection
As shown in the figure below , In a I2C In the communication bus , Can connect multiple I2C Communication equipment , Support multiple communication hosts and multiple communication slaves .
- SDA, SCL Pin and pull-up resistance
- The equipment SDA, SCL Pin use OD Gate output , Line and operate between different equipment , namely “ And logic ”.
- SDA and SCL It needs to be connected with pull resistance , According to I2C Number of equipment , Communication speed of the system , Design and choose different pull-up resistors .I2C The number of devices determines the bus capacitance on the bus , Bus capacitance and pull-up resistance limit the communication rate of the system .
- Usually ,3.3V Pull up the resistance of the system and take 3.3kΩ,5V Pull up the resistance of the system and take 4.7kΩ.
- When I2C When the device is idle , It will output a high resistance state , And when all the devices are idle , When both output high resistance states , Pull the bus to high level by pull-up resistor .
Multi master and multi slave applications
- Each slave device connected to the bus has an independent address , The host can use this address to access different devices .
- When multiple hosts use the bus at the same time , To prevent data conflicts , Arbitration can be used to decide which host device occupies the bus .
I2C Communication protocol
The following figure shows a host (Master) To the slave (Slaver) Write a byte of data as an example , explain I2C Basic protocol of communication .
- Start signal ( S ): When SCL It's high level ,SDA Switch from high level to low level .
- Stop signal ( P ): When SCL It's high level ,SDA Switch from low level to high level .
- Frame address : Unique to each slave 7 Bit or 10 Bit address , Used for address identification between master and slave devices .I2C The protocol states that the device address can be 7 Bit or 10 position , In the actual 7 Bit addresses are widely used .
- read / Write in : a , If the master sends data to the slave, it is low , The request data is high .
- ACK/NACK:I2C The data and address of the transmission are with response . Responses include “ The reply (ACK)” and “ Non response (NACK)” Two signals .ACK Low level ,NACK High level .
- The data is valid : When data is transmitted ,SCL For high voltage ,SDA The data is valid , That at this time SDA Show data for high level “1”, Show data for low level “0”; When SCL Low power level ,SDA Invalid data for , Usually at this time , Yes SDA Carry out level switching .
Focus on v-x- Male - many - Number :【 Embedded base 】
after - platform - return - complex :【 Electric competition 】 Information available
reply 【 Programming 】 Can get
It includes :C、C++、C#、JAVA、Python、JavaScript、PHP、 database 、 Wechat applet 、 Artificial intelligence 、 The embedded 、Linux、Unix、QT、 The Internet of things 、 Introduction to algorithms 、 Big data and other information
边栏推荐
- Postman断言
- Drive development - the first helloddk
- Upload nestjs configuration files, configure the use of middleware and pipelines
- Class inheritance in yyds dry inventory C
- IPv6 comprehensive experiment
- Oracle query table index, unique constraint, field
- TCP three handshakes you need to know
- [leetcode16] the sum of the nearest three numbers (double pointer)
- ORM aggregate query and native database operation
- Review of double pointer problems
猜你喜欢
Rce code and Command Execution Vulnerability
程序员在互联网行业的地位 | 每日趣闻
浅谈镜头滤镜的类型及作用
Postman manage test cases
Vite configures the development environment and production environment
Simple understanding of interpreters and compilers
Orm-f & Q object
Basic knowledge and examples of binary tree
Pagoda configuration mongodb
Programmers' position in the Internet industry | daily anecdotes
随机推荐
The IPO of mesk Electronics was terminated: Henan assets, which was once intended to raise 800 million yuan, was a shareholder
[buuctf.reverse] 159_[watevrCTF 2019]Watshell
趋势前沿 | 达摩院语音 AI 最新技术大全
Flody的应用
MySQL time processing
[NOIP2008 提高组] 笨小猴
Postman断言
驱动开发——HelloWDM驱动
ORM aggregate query and native database operation
Crazy God said redis notes
[leetcode16] the sum of the nearest three numbers (double pointer)
[noip2009 popularization group] score line delimitation
Redis 排查大 key 的4种方法,优化必备
Bill Gates posted his 18-year-old resume and expected an annual salary of $12000 48 years ago
Yyds dry inventory SSH Remote Connection introduction
[buuctf.reverse] 159_ [watevrCTF 2019]Watshell
The kernel determines whether peripherals are attached to the I2C address
Postman测试报告
The video in win10 computer system does not display thumbnails
Hyperledger Fabric2. Some basic concepts of X (1)