Xilinx I2C协议重点知识介绍
一、协议重点
1、 数据在scl信号高电平时有效,也就是允许sda信号电平翻转的时刻只能是scl信号处于低电平时。
这条跟我们通常理解的数据通过时钟沿进行锁存的机制是不同的,需要注意。
数据的建立时间定义为SDA数据沿(从0到1)与SCL上升沿之间的时间差,保持时间定义为SDA失效沿(1到0)与SCL下降沿之间的时间差。另外,数据的开始和停止也有单独的建立保持时间要求。
Xilinx的IIC IP提供零保持时间,与我们对时序的通常理解不同(建立和保持时间都需要为正才能进行正确的数据采样),可能对于有的接收芯片来说,它采样数据不必等SCL下降沿之后,故保持时间有时可能不太重要。
涉及到协议的截图都来自《THE I2C-BUS SPECIFICATION》。

2、 start stop

3、I2C 传输数据格式
标准I2C帧结构包含8个数据bit加1个ack bit共9个bit,传输时从MSB开始。
Slave地址是7bit,传输时slaveaddr + R/W 标志位(读是1,写是0)


二、 XILINX IIC控制器 输出


Xilinx IIC IP接口提供如下一些接口,由于实际的SDA和SCL都是双向接口,输出时需要加上iobuf。iobuf是一个三态输出buffer和一个输入buffer组合而成的双向IO口,在T口为高电平时,它是一个输入buffer,即将IO口的电平状态传递到O口,再接到IP的scl_i接口上;当T口为低电平时,它是一个输出buffer,即将I口(来自scl_o)的电平传递到IO口上。


当FPGA做为master时,由FPGA发出时钟, Xilinx 的IIC IP核 通过控制scl_t来实现时钟的高低。当scl_t为高时,iobuffer是三态输入,scl(输出到FPGA引脚外)也为高(由FPGA外部的上拉电阻拉到电源),当scl_t为低时,iobuffer为三态输出,scl_0=>scl(scl_0始终为0电平)。当master需要控制sda信号线时,也是同样的操作。
这是实际抓取的iic ip的接口信号波形。在T触发时刻,已经完成了“start”操作,即sda信号线在scl为高时拉低。从下图标注的第1个scl_t高电平开始传输信号——7bit slaver地址+1bit R/W标志 。然后sda_t信号拉高,表示iobuffer 目前是个输入buffer,信号线电平由slave 控制。scl_t也拉高,scl_i是低电平,说明slave 已控制总线,当IP检测到sda信号被拉低后,发出第9个scl_t高电平,正式读取来自slave的低电平ack。至此,一次传输完成。

无论scl_t处于高电平还是低电平,scl_i信号线的状态都能反映此刻真实的scl信号线上的电平状态。所以,一次传输,scl信号线上共有9次高脉冲。scl_t 上有10次,第9次前面的那一次是将总线控制权交给slave。
- Xilinx I2C协议重点知识介绍
- I²C从设备掉电后,整条总线通信异常
- 永嘉微电VK16K33AQ 3.0‑5.5V宽压大电流LED驱动高亮数显驱动芯片
- 汽车 EPS 电动助力转向角度传感器选型:MT6701CT 深度剖析
- 沐曦股份GPU产品正式合入RLinf官方主线
- 光电检测的“眼睛”:一文拆解佰鸿 BPT-BP0934 红外光敏三极管
- 用超声波物理锁定鱼群,普联威给探鱼器装了一双“水下眼睛”
- Omdia:2026年第三季度全球智能手机市场下滑20%,内存危机重塑竞争格局
- 蓝牙模块选型指南:低功耗、双模、音频与车载方案对比
- PCB小批量打样怎么减少返工?Gerber、孔结构和阻抗资料交付清单
- 抒微Surertech受邀参展首届空天科技博览会(南通)
- 变焦视觉位移监测仪如何实现多断面位移监测?
- 常州工学院采购南京大展的DZDR-S导热系数测定仪
- CW32COM端口号可视化集线器——硬件详解
- 进口设备一上电就报警烧板?接入中国电网前,先走完"三步自查法"
- 机加工自动上下料机器人物联网解决方案