1-DE10-Nano的HDMI音频传输案例——I2S通信协议

I2S(Inter---IC Sound)总线, 又称集成电路内置音频总线,是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准。ADV7513可以支持2~8个I2S音频通道,采样率最高可达192KHz。

1 声音数字化

在自然界中,声音是连续的模拟信号,为了方便传输和储存,将声音转化为数字信号,在需要还原声音的地方再把数字量转成模拟量输出:

模拟量转成数字量一般可以分为三个过程,分别为采样、量化、编码,如下图所示。

用一个比源声音频率高的采样信号去量化源声音,记录每个采样点的值,最后如果把所有采样点数值连接起来与源声音曲线是互相吻合的,只是它不是连续的。在上图中,两条绿色虚线距离就是采样信号的周期,即对应采样频率(FS,每秒钟抽取声波幅度样本的次数),可以想象得到采样频率越高最后得到的结果就与源声音越吻合,但此时采样数据量越大,常用的采样频率有11.025KHz,22.05KHz,44.1KHz,48KHz,96KHz等。一般使用 44.1KHz 采样频率即可得到高保真的声音。

每条绿色虚线长度决定着该时刻源声音的量化值,每个采样点用多少二进制位表示数据范围,就是量化位数,常用有16bit、 24bit 或 32bit,位数越高最后还原得到的音质越好,数据量也会越大。

为模拟人耳接收声音的空间特性,音频系统中设置了左声道(Left Channel)与右声道(Right Channel),声音传输的时候可以是单声道,也可以是立体声(包括左声道和右声道),它比单声道的表现力丰富,但是数据量翻倍。

2 I2S信号线定义

I2S总线使用3线串行总线,它包括一条用于切换左右声道的数据线WS,一条音频传输数据线SD和一条时钟线SCK。对于系统而言,能够产生SCK和WS的信号端就是主设备,用MASTER表示,简单系统示意图如下:

3 I2S数据传输格式

I2S数据传输时序如下,如果I2S数据在时钟上升沿变化,建议在下降沿将其锁存到ADV7513中。如果I2S数据在时钟下降沿变化,建议在上升沿将其锁存到ADV7513中。这可以通过设置寄存器R0x0B6来指定:0表示在时钟上升沿锁存;1表示在时钟下降沿锁存(详情见本文寄存器设置章节)。

ADV7513的音频数据传输支持标准的I2S、左对齐串行音频、右对齐串行音频等格式。右对齐和左对齐格式并非源自Philips 原始的 I2S 标准。它们属于 I2S 协议的变种,由其他芯片厂商扩展而来。

I2S Philips 标准时序图如下所示,声音数据LRCLK 翻转后空1 个 SCLK 才开始(延迟设计避免干扰)。LRCLK为0时,传输的是左声道数据;LRCLK为1时,传输的是右声道数据。

右对齐(Right-Justified)时序如下,声音数据在LRCLK翻转前LSB传输完成(刚好是LSB和LRCLK是右对齐的,所以称为右对齐标准)。注意此时LRCLK为1时,传输的是左声道数据,这刚好与I2S Philips标准相反。

右对齐的传输格式为接收端预留更长的数据稳定时间,适合长距离传输。

左对齐(Left-Justified)时序图如下,声音数据在LRCLK翻转的同时开始MSB传输(刚好是MSB和LRCLK是左对齐的,所以称为左对齐标准)。注意此时LRCLK为1时,传输的是左声道数据,这刚好与I2S Philips标准相反。

左对齐的传输格式为减少处理延迟,适合实时音频处理。

往期阅读

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

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

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

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

5-DE10-Nano的HDMI方块移动案例------基于FPGA的I2C控制模块设计

6-DE10-Nano的HDMI方块移动案例------使用Modelsim仿真I2C控制器

7-DE10-Nano的HDMI方块移动案例的整体实现(含Quartus完整工程免费下载)

1- DE10-Nano的HDMI彩条显示案例(分辨率可切换)(含Quartus完整工程免费下载)

2-DE10-Nano的HDMI彩条显示案例(分辨率可切换)------ VGA显示控制器模块设计

3-DE10-Nano的HDMI彩条显示案例(分辨率可切换)------学会用Signal Tap逻辑分析仪查看信号波形

4-DE10-Nano的HDMI彩条显示案例(分辨率可切换)------ ALTPLL IP与ALTPLL RECONFIG IP介绍

5-DE10-Nano的HDMI彩条显示案例(分辨率可切换)------ PLL控制器和分辨率模式切换

相关推荐
linux_cfan8 小时前
videojs v10 源代码系列解读:14 · 谓词守卫:在运行时安全地调用能力
前端·javascript·音视频
赛博仓鼠9 小时前
秋叶ComfyUI 3.2整合包实测:Python 3.13+Torch 2.13全栈升级,一键跑通MiniMax H3(附完整部署)
ai·ai作画·aigc·音视频
乐橙开放平台12 小时前
从「多套客户端」到一套开放能力:乐橙视频监控能力复盘
笔记·物联网·自动化·音视频·智能家居
linux_cfan17 小时前
videojs v10 源代码系列解读:13 · 能力型媒体契约:`Media` 的组合接口
前端·javascript·音视频
勤劳X码农18 小时前
2026年TTS工具技术测评:7款方案实测,从免费额度到API集成全解析
人工智能·音视频·实时音视频
m0_6145235518 小时前
Log视频导入发灰,先查颜色链
音视频·视频编辑
linux_cfan1 天前
17 · 引擎适配器全景:HLS/DASH/Vimeo/Mux/Cast
前端·javascript·音视频
音视频牛哥1 天前
视频编码的终局不是“更省码率”:从 H.266、AV2 到 AI 编解码的下一场竞争
音视频·h.266·rtsp h.266·h.266编解码·rtp h.266·rtp vvc·ai编解码
程序员老陆2 天前
WHIP 与 WHEP:WebRTC 直播的标准化入口与出口
ffmpeg·音视频·webrtc·whip·whep
linux_cfan2 天前
16 · `custom-media-element`:属性拦截与转发
前端·javascript·音视频