常用通信接口、协议:IIC | 您所在的位置:网站首页 › 树莓派0w › 常用通信接口、协议:IIC |
IIC 接口是2线制半双工主从通信接口,通信速率能够从几百kbps~几Mbps。包含 时钟线SCK、数据线SDA。两根线均需要上拉电阻(大小由通信速率和容性负载决定,通常在3.3k~10k之间),所以低电平时通信中的显性电平。其数据bit通常是以MSB(高比特位在前)的方式进行的。 IIC中的从机器件是有地址的,有的器件的地址是固定的(如OV7670,固定地址0x42),有的器件的地址是部分确定部分由硬件连接决定的(如一些EEPROM) IIC中的每一个数据帧有9个bit,8bit DATA 1bit ACK/NACK 其通信过程的时序列由以下基本单元组成: - 空闲状态,SDA和SCK均为高电平; - 起始信号,SCK高电平期间SDA拉低; - 结束信号,SCK高电平期间SDA拉高; - 应答信号,SCK高电平SDA低电平;非应答信号,SCK高电平SDA高电平。应答/非应答 信号应在8比特数据传输后出现。 - SDA变换在SCK低电平期间,SDA采样在SCK高电平期间 具体来说其常见的通信过程序列是由上述的基本单元构成: - 主机对从机单字节读取: 空闲状态-》起始信号-》7位从机地址-》1位W(0W,1R)-》1位从机低电平ACK-》8位目标寄存地址-》1位从机低电平ACK-》起始信号-》7位从机地址-》1位R(读取)-》1位从机低电平ACK-》1字节从机数据-》1位主机高电平NACK-》停止信号 - 主机对从机多字节读取: 多字节读取时序,在 1字节从机数据前 的时序和按字节读取相同,在发送停止信号前,1字节从机数据-》1位主机高电平NACK 该时序过程不断重复 空闲状态-》起始信号-》7位从机地址-》1位W(0W,1R)-》1位从机低电平ACK-》8位目标寄存地址-》1位从机低电平ACK-》起始信号-》7位从机地址-》1位R(读取)-》1位从机低电平ACK-》1字节从机数据-》1位主机高电平NACK-》1字节从机数据-》1位主机高电平NACK-》停止信号 - 主机对从机单字节写入: 空闲状态-》起始信号-》7位从机地址-》1位W(0W,1R)-》1位从机低电平ACK-》8位目标寄存地址-》1位从机低电平ACK-》8位写入数据-》1位从机低电平ACK-》停止信号 - 主机对从机多字节写入: 多字节写入时序,在写入 8位数据前 的时序和按字节写入相同,在发送停止信号前,8位写入数据-》1位从机低电平ACK 该时序过程不断重复 空闲状态-》起始信号-》7位从机地址-》1位W(0W,1R)-》1位从机低电平ACK-》8位目标寄存地址-》1位从机低电平ACK-》8位写入数据-》1位从机低电平ACK-》8位写入数据-》1位从机低电平ACK-》8位写入数据-》1位从机低电平ACK-》停止信号 IIC 接口在日常使用中,有时还会见到类IIC通信时序的扩展实现,如扩展数据帧的长度由 9bit 扩展到17bit的数据帧的情况,主要还是具体情况,具体使用。 |
CopyRight 2018-2019 实验室设备网 版权所有 |