推广网站建设,网站开发文件综述,wordpress火车头数据库模块,国外二维码在线查询文章目录协议简单介绍五种速度模式master/slave和transmitter/receiver关系第一种情况#xff1a;master作为transmitter#xff0c;slave作为receiver第二种情况#xff1a;当master作为receiver#xff0c;slave作为transmitteri2c基本信号start产生stop信号数据传输有效…
文章目录协议简单介绍五种速度模式master/slave和transmitter/receiver关系第一种情况master作为transmitterslave作为receiver第二种情况当master作为receiverslave作为transmitteri2c基本信号start产生stop信号数据传输有效性ACK信号与NACK信号协议简单介绍
I2C(InterIntegrated Circuit)是一种通用的总线协议。它是由Philips(飞利浦)公司现NXP半导体开发的一种简单的双线制总线协议标准。i2c总线由SDA和SCL两条线组成SDA数据传输线路而SCL为时钟传输线两根线路均需加上拉电阻控制SDA和SCL的拉高和拉低。I2C总线的应用较广可以应用于LCD、LED驱动RAMEEPROMA/D ,D/A转换温度传感控制等通过i2c即可实现设备间通信。I2c支持多master可以通过软件配置为单slave或者单master模式。
五种速度模式
标准standard模式0~100 kb/s快速fast模式 400 kb/s超快ultra-fast模式 1000 kb/s高速high-speed模式 3.4Mb/s超高速ultra-fast speed模式5 Mb/s 需要注意的是高速模式和快速模式可以向下兼容即这两者均可以与标准模式总线混合通信如fast模式和标准模式混用fast模式速度可以调至0~100 kb/s 与标准模式保持一致。不过超高速模式不能向下兼容在此模式下总线只有写传输无从机的确认无需要反馈信号比如应用在LED控制器时需要大量数据且无需反馈。 master/slave和transmitter/receiver关系 主机master负责时钟并控制数据传输 从机slave负责向主机发生或接受数据
第一种情况master作为transmitterslave作为receiver
主机发送数据结束以后使用stop作为停止条件
第二种情况当master作为receiverslave作为transmitter
主机每接受一字节数据主机就会发出ACK脉冲确认数据收到直到接受到最后一字节数据后产生NACK于是主机发出STOP信号。 ACK信号均为正在接受数据的设备发送 i2c基本信号
start产生
在空闲idle状态下SDA和SCL均拉高通过上拉电阻在SCL保持为高的情况下SDA由高切换为低则产生start信号。
stop信号
在SCL为高时SDA由高切换为低表示stop信号产生。 如果连接到总线的设备包含必要的接口硬件则很容易通过这些设备检测START和STOP条件。然而没有这种接口的微控制器必须在每个时钟周期对SDA线进行至少两次采样以感知电平转换 数据传输有效性
I2C协议对数据的采样发生在SCL高电平期间除了起始和停止信号在数据传输期间SCL为高电平时SDA必须保持稳定不允许改变在SCL低电平时才可以进行变化每传输一个数据位就产生一个时钟脉冲。
ACK信号与NACK信号
ACK信号一般为正在接受数据的设备发出表示成功接受到一字节数据在ACK拉高时若SDA没有拉低则表示产生NACK信号此时Transmitter产生resatrt或者STOP信号。 产生NACK信号的条件 Receiver忙无法接受或者发送数据bus上无地址数据或者无设备响应从机无法理解命令从机不再接受数据主机接受情况下必须发出STOP信号时
后续会继续对i2c的读写时序数据格式等时序进行介绍