news 2026/5/27 22:28:17

4-DE10-Nano的HDMI方块移动案例——I2C通信协议

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
4-DE10-Nano的HDMI方块移动案例——I2C通信协议

1 I2C简介


I2C(Inter-Integrated Circuit)是一种由飞利浦半导体(现为恩智浦半导体)在1980年代初开发的同步、串行、半双工的总线型通信协议。主要用于近距离(同一块印刷电路板(PCB)上的集成电路(IC)之间)、低速(注:标准模式100K,快速模式400K,高速模式3.4M)的芯片之间的通信。

I2C总线有两根信号线,一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步。I2C总线是一种多主机总线,连接在I2C总线上的器件分为主机和从机,主机有权发起和结束一次通信,而从机只能被主机呼叫。每个连接到I2C总线上的器件都有一个唯一的地址(7-bit)。主机通过I2C设备的地址来选择从机。


2 I2C的三态门电路


信息双向传输(方向为inout)的时候需要使用三态门电路。FPGA内部三态门结构:




当sda_out为1时,sda被设置为高阻态(1'bz),即此时sda由外部设备(或上拉电阻)控制。当sda_out为0时,sda被驱动为0。这种设计符合I2C协议的开漏输出特性:I2C设备只能将数据线拉低(输出0)或释放(输出高阻,由上拉电阻拉高)。因此,这个三态设置实现了I2C数据线的双向通信:既可以输出数据(拉低),也可以输入数据(释放总线并读取)。具体的Verilog实现如下:


所以FPGA和外设之间要有个上拉电阻,如下是DE10-Nano的相关电路图:


3 I2C协议的开始与结束信号


开始条件为当SCLK(时钟脚)保持在高电平时, SDIN(数据脚)从高到低,接着会开始进行地址与数据传输;停止的条件是被定义成在 SCLK 在高电平时, SDIN 有一个低到高转换:


4 I2C协议的字节传送与应答


I2C总线通信时每个字节为8位长度,数据传送时,先传送最高位,后传送低位,发送器发送完一个字节数据后,接收器必须发送1位应答位(应答:低电平"0";非应答:没接收到数据或者接收器不想应答,就保持高电平"1")来回应发送器,即一帧共有9位。



5 I2C协议的同步信号


I2C总线在进行数据传送时:
时钟线SCL为低电平时,发送器向数据线上发送1-bit数据,在此期间数据线上的信号允许变化;
时钟线SCL为高电平时,接收器从数据线上读取1-bit数据,在此期间数据线上的信号不允许发生变化,必须保持稳定。



6 I2C协议的写操作

主机先产生一个起始信号ST,再由主机发送出欲控制的器件地址Device Address[6:0],再加上 1 位的 W/R 读写位(设定为 0)。从机收到主机发送出8 位信号后,会回应一个 ACK 信号;接着送出寄存器地址Register Address[7:0](有的寄存器地址是16位,则可分两次发送),从机收到主机发送出8 位信号后,会回应一个 ACK 信号;接着送出 8 位数据 Data[7:0],从机收到主机发送出8 位信号后,会回应一个ACK 信号。传输完成后,会从主机送出停止信号SP。则完成了将数据 Data[7:0] 写入 Device Address[6:0] 设备中的 Register Address[7:0] 寄存器中:


7 I2C协议的读操作

主机先产生一个起始信号ST,再由主机发送出欲控制的器件地址Device Address[6:0],再加上 1 位的 W/R 读写位(设定为 0)。从机收到主机发送出8 位信号后,会回应一个 ACK 信号;接着送出寄存器地址Register Address[7:0],从机收到主机发送出8 位信号后,会回应一个 ACK 信号;接着主机重新送出开始信号SR(restart),再由主机发送出欲控制的器件地址DeviceAddress[6:0],再加上 1 位的 W/R 读写位(设定为 1)。从机收到主机发送出8 位信号后,会回应 一个 ACK 信号。接着读取 8 位数据 Data[7:0],主机收到8 位信号后发送一个NACK给从机,通知从机主机不再需要更多的数据,最后从主机送出停止信号SP:

往期阅读

1-DE10-Nano的HDMI方块移动案例——显示器时序(DMT)标准介绍

2-DE10-Nano的HDMI方块移动案例——HDMI接口介绍(含TMDS)

3-DE10-Nano的HDMI方块移动案例——ADV7513芯片解读

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/28 12:47:10

YashanDB数据库的容灾与备份策略详解

如何保障数据库系统在硬件故障、数据损坏或灾难性事件下的业务连续性与数据完整性,是企业信息系统设计中的关键问题。数据库的容灾能力和备份策略直接影响系统的恢复速度和数据的安全性。本文围绕YashanDB数据库,深入探讨其容灾架构及备份恢复机制&#…

作者头像 李华
网站建设 2026/5/28 7:30:58

YashanDB数据库的实用优化技巧与应用指南

当前数据库技术的应用领域不断扩展,面对海量数据和多样化的业务需求,数据库系统普遍面临性能瓶颈、数据一致性保障难题、以及扩展性不足等挑战。YashanDB作为一款支持单机、分布式及共享集群多种部署形态的现代数据库系统,为不同场景下的数据…

作者头像 李华
网站建设 2026/5/18 10:41:26

GAEA EMOFACE 模块解析:面向多模态情绪识别的人脸情感系统

一、EMOFACE 的定位:不仅是“表情识别” 传统的人脸情绪识别系统,通常基于以下逻辑: 检测人脸关键点 提取表情特征 分类到预定义情绪标签(如高兴、愤怒、悲伤等) EMOFACE 的设计思路与此有所不同。 它并不单纯追求…

作者头像 李华
网站建设 2026/5/2 19:58:08

AI评测入门:零经验搞定标签分类

怎么设计提示词 我最近用 AI 实现了一个功能:基于标准标签体系,对某垂类产品评价内容自动打标签。 这是我第一次接触 AI 评测、第一次做标签分类、甚至第一次系统分析用户评价。 但正因“零经验”,反而让我更聚焦于最本质的问题:如何让 AI 输出符合预期? 有趣的是,虽…

作者头像 李华
网站建设 2026/5/2 22:11:38

EmotiVoice实战案例:为有声读物注入情感灵魂

EmotiVoice实战案例:为有声读物注入情感灵魂 在有声内容消费持续升温的今天,用户早已不再满足于“能听”的机械朗读。一段真正打动人心的旁白、一句饱含情绪的角色台词,往往能让听众瞬间沉浸其中——而这正是传统文本转语音(TTS&a…

作者头像 李华
网站建设 2026/5/12 13:04:53

从零到一:TikTok直播间系统化获客引流全攻略

TTSOP跨境互联 一站式提供TikTok账号 静态住宅IP,专为带货直播打造爆量通道。在TikTok商业化的浪潮中,直播间已从单纯的娱乐场,演变为品牌与用户深度连接、实现即时转化的核心战场。然而,许多创作者和商家常常面临这样的困境&…

作者头像 李华