|
?IIC是串行总线,只用到两个线,应用非常广泛,本文介绍IIC的软件协议及硬件相关知识。
?一、IIC概述
1. IIC定义IIC总线是由Philips公司开发的一种简单、双向二线制同步串行总线,IIC只需要两根线进行通信,SDA和SCL,SDA叫串行数据线,SCL为串行时钟线。
2. IIC基本知识点?SDA传输高位先传(MSB),每次传输8bit(1个字节),每个字节后面接1位ACK/NACK位,不管是传输地址还是数据;支持多主控(同一时间点只有一个主控);连接到总线的从设备都有一个独立的ADDRESS(7bit),用来主机识别从机设备;总线空闲需要上拉至高电平,硬件I2C时,需要外接上拉电阻,模拟I2C时,单片机的IO口需要默认输入或(高阻),或者是输出高电平;SDA和SCL总线是“线与”关系,任意器件输出低电平,总线都会变为低电平。多个主机同时使用总线时,需要用“仲裁”方式决定哪个设备占用总线,不然数据冲突;[/ol]?
3. IIC速率IIC有三种速率模式,标准、快速以及高速模式,对应速率如下所示:
?标准模式:100Kbit/s快速模式:400Kbit/s高速模式:3.4Mbit/s?二、IIC软件时序
1. 起始和结束信号起始和结束信号都是由主机产生,对起始和结束有如下的定义:
起始信号:SCL为高时,SDA由1变为0结束信号:SCL为高时,SDA由0变为1 |
|