基于FPGA的TDM/I2S模块设计

1.TDM模块功能分析

1.1 TDM原理简介

TDM就是时分复用模式(Time-Division Multiplexing,TDM)。时分复用是指一种通过不同信道或时隙中的交叉位脉冲,同时在同一个通信媒体上传输多个数字化数据、语音和视频信号等的技术。

TDM是一种多用在数字的的多路复用技术(模拟应用非常罕见)。使用这种技术,可以使两个以上的信号或数据流同时在一条通信线路上传输,其表现是在同一通信信道内的子信道。但在物理上来看,信号是轮流使用同一个物理通道的。时间域被分成周期循环的一些小段, 每段时间长度都是固定的,每个时段用来传输一个子信道。例如子信道1的采样,可能是字节或者数据块,使用时间段1,子信道2使用时间段2等等。

一个TDM的帧包含了一个子信道的一个时间段,当最后一个子信道传输完毕,这样的过程将会再重复来传输新的帧,也就是下个信号片段。时分复用是指一一种通过不同信道或时隙中的交叉位脉冲,同时在同一个通信媒体上传输多个数字化数据、语音和视频信号等的技术。

为了能在音频芯片的产品完成多个通道音频数据的传输,主要为了处理信号路由和输入/输出端口的问题。
目前行业内通过了一个时分多路复用(TDM)接口来实现但跟数据线传输多个通道的数据,节省多个信号传输对于端口数量的要求。TDM接口时最常用的在一个系统的多个设备间传输多个通道音频数据。

TDM可以有多种变种的TDM格式,并且由于支持TDM端口的DSP器件是可编程的,而且支持多种选择。

TDM接口的类似于一个2通道串行音频接口,不同的是,为了能够样一帧或采样周期内能够传送更多的信号通道,通常为2个,4个,6个或8个通道。与通道串行音频接口相同,TDM接口由两个控制时钟来控制,帧同步脉冲( FSYNC)和串行时钟( SCLK),还有一个串行音频数据传输线( SDATA)。

每个通道块包括由足够数量bit的0数据位组成直到长度达到完成Nbit的通道块。在图所示的例子中示出了长度为32bit, 有效数据为24bit的通道块音频数据。值得注意的是,音频字通常是首先发送的是MSB (Most Significant Bit,最高有效位)。行业标准的脉冲编码调制(PCM)音频数据是16至32位的字(16bit 和24bit是最常见的),以补码格式编码。
在这里插入图片描述
FSYNC脉冲的功能,是简单地识别一帧的开始。每次开始的时候总是由FSYNC的升沿来表示。TDM的实现大部分只使用在FSYNC上升沿信号,并忽略下降沿信号,但每两个FSYNC上升沿的宽度为每一帧数据的数据的长度。下图以8通道模式为例:
在这里插入图片描述

串行时钟的唯一目的是从串行音频端口转移入或运出的音频数据。所需的串行时钟的频率是系统音频采样率,与系统音频采样频率、信道的数目、每个通道块的位宽度成正比。

1.2 设计要求

类似于I2S接口(I2S接口为两通道情况下的TDM接口),电路所需的信号包括:

CLK 数据时钟信号
FSYNC 帧同步时钟信号
DATA_IN 接收数据信号
DATA_OUT 发送数据信号

FSYNC的频率等于音频的采样率(例如44.1 kHz,48 kHz等)。Frame每次传输包括所有声道的数据。PCM采样音频数据量化深度一般在16-32bit(最常见为16/24bit)。那么对于8声道,每个声道32bit音频数据,采样率48kHz的系统,TDM的BCLK时钟速率为:8 × 32 × 48kHz = 12.288 MHz。

TDM系统时钟速率就可以简单地用采样率乘以TDM帧长计算得出。相同的例子,8通道,32bit的TDM系统时钟速率:48kHz × 256 = 12.288 MHz。
在这里插入图片描述
通常在TDM传输的数据帧中也可能包括音频数据之外的信息,具体的需要查看器件的说明来确定。

2. FPGA设计验证

在这次项目的设计中,我主要进行了对16通道,32bit,48khz采样速率的TDM系统的验证。

2.1 时钟的产生

本次设计需要24.576Mhz的时钟信号,如果由FPGA自身的系统时钟通过倍频的方式得出会有很大的误差。因此采用了使用DSP板上提供的12.288Mhz时钟通过倍频的方式得出。
在这里插入图片描述
注意在选择时钟输入引脚时要注意具体引脚的功能,需要选择具有时钟输入功能的引脚:
在这里插入图片描述
此外在进行TDM接收部分的设计时,要选择远高于TDM sclk的时钟才能正确的采样到传输中的时钟信号从而对数据进行处理,在本次设计中使用了50Mhz时钟的5倍频作为采样时钟。

2.2 接收部分

在这里插入图片描述
设计完成后接收部分的原理图如上图所示。

根据TDM传输的规则,在时钟上升沿位置为每bit数据开始的位置。并且每32bit数据构成一个数据。每16个数据构成一次TDM传输,代表16个通道。通道开始的位置由帧时钟的上升沿来确定。

因此需要对于TDM 数据时钟和帧时钟的上升沿进行确认,通常确认的方式是采样时钟前一信号为低电平后一信号为高电平即可确认为上升沿。

2.3 发送部分

**具体流程找时间填补。**
设计后原理图如上图所示。

发送部分的设计相对简单,在帧时钟上升沿开始对TDM时钟的上升沿开始采样,并在上升沿依次发送数据。

最终完成设计的RTL框图如下
在这里插入图片描述
实现与DSP的联调检测
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/daijingxin/article/details/108290982