新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于FPGA实现的PCI-I2S接口转换电路

基于FPGA实现的PCI-I2S接口转换电路

作者:时间:2016-09-12来源:网络收藏

摘要 提出了一种基于实现的PCI-系统方法。通过在中将PCI软核、FIFO以及设计的接口电路等相结合,在上实现了 PCI、I2C、等多种总线,并且结合解码器实现了不同采样频率语音数据的传输以及播放功能。系统充分利用FPGA的片上资源及其可编程特性,减少了硬件电路的复杂度。

本文引用地址:http://www.eepw.com.cn/article/201609/303568.htm

关键词 ;FPGA;;

I2S总线是一种用于音频设备间传输数据的串行总线标准,该总线采用独立的时钟线与数据线,避免了时差诱发的失真。随着多媒体的广泛应用,该总线已被应用于越来越多的数字系统中。

是一种高性能的32/64位局部总线,理论最大传输速率可达132 Mbit·s-1,可支持多组外设,已经被各类主流处理器做为总线标注,是目前应用最广泛的外围总线。如今大部分处理器并没有集成I2S接口,但在嵌入式系统中CPU经常使用与外围设备进行交互,故需设计一种PCI—I2S接口转换电路,从而实现CPU与外围音频设备进行通信。目前实现此种接口转换电路主要通过PCI接口芯片与音频接口芯片等专用集成电路芯片在板级电路进行组合从而实现基于PCI的音频播放设备。此种电路虽然成熟可靠,但电路设计复杂、灵活性小而且需要占用大量的电路板空间。

随着数字通信技术的发展,由于FPGA的灵活性与其较短的开发周期,在接口电路设计中的应用已经越来越广泛。本文提出一种使用FPGA实现PIC—I2S 的接口转换电路,不仅可以避免使用协议转换芯片,节省电路板上的空间,而且还大幅加强了系统的灵活性,方便维护升级。

1 系统的硬件设计

音频播放系统主要由立体声音频编解码器TLN320AIC23B,FPGA器件XC6SLX75以及处理器PowerPC8270组成。系统框图如图1所示,CPU将原始音频数据通过PCI总线传至FPGA后以每组数据16 bit的格式串行传输至音频芯片TLV320AIC23B,并由音频芯片将数字量转换为模拟音频信号输出。FPGA实现PCI接口功能和对音频编解码芯片的配置与数据传输功能,其内部主要由PCI协议接口,I2S协议接口,I2S配置寄存器,I2C协议接口以及FIFO存储器等组成。

a.jpg

TLV320AIC23B在系统中实现数字音频信息到音频模拟量的转换,在系统上电工作时,首先需要通过I2C接口配置它的多个控制寄存器,此后芯片将根据位传输时钟(Bclk)与左右声道控制时钟(LRCIN),按控制寄存器中配置的方式采集由FPGA发送来的音频数据。接收到的数据将传至芯片内部进行数模转换、滤波等处理。

FPGA根据I2S协议规范与芯片要求,由主时钟(MCLK)分频产生位传输时钟(Bclk)与左右声道控制时钟(LRCIN),与音频数据同步发送至 TLV320AIC23B。其中左右声道控制时钟(LRCIN)应与音频数据的原始采样级别频率相同,根据I。S的协议规范及芯片资料,其位传输时钟 (Bclk)与芯片的主时钟(MCLK)如下

BCLK=Sampling Size×Sampling Rate (1)

MCLK=Sampling Size×Sampling Rate×384 (2)

式中,Sampling Rate为原始采样级别频率;SamplingSize为采样大小。

系统中,TLV320AIC23B芯片采用左对齐的接口模式,其时序如图2所示,其中LRCIN为高电平时音频的左声道选通,为低时音频的右声道选通。在 LRCIN的一个周期内,左右声道上传输同一组数据。由于PCI总线的传输速度远高于I2S总线的传输速度,为不使CPU过高频率的响应中断,所以在 FPGA中生成一个FIFO,可使得PCI总线可以连续传入大量数据。此外,由于不同的音频文件有着不同的采样级别频率,而通常音频文件的采样频率为16 kHz或32 kHz,故在FPGA中生成I2S_config寄存器,可以通过PCI总线设置此寄存器以调用FPGA中不同的数字时钟管理(DCM),从而为 TLV320AIC23B芯片提供不同的时钟。

b.jpg

2 PCI接口设计

PCI协议比较复杂,它不仅有严格的同步时序要求,而且需要许多的配置寄存器,因此实现电路也比较复杂。通常情况下,在FPGA中实现PCI接口通常有3 种方式:(1)用FPGA自行设计PCI接口,该方法可根据需要有选择地实现PCI接口功能,更贴近系统需要,而且可以降低系统成本,但需要开发者对 PCI协议有着深刻的了解,且在外部环境恶劣时,不容易满足系统的稳定性要求,开发难度较大。(2)利用PCI硬核来对系统进行开发,PCI硬核即是嵌入在FPCA内部的固化电路,类似于专用的PCI接口芯片,设计者只需完成信号链接与验证即可,但此方法中,PCI硬核已经固化在FPGA中,影响了系统的灵活性。(3)利用PCI软核进行开发,PCI软核可以根据用户自身的需要进行配置,更为灵活,贴近用户系统,且其已经过设计厂商的验证,可靠性高。本文采用Mentor公司提供的开源软核MPCI32用于FPGA上PCI接口的开发。

Mentor公司的PCI核完全符合PCI2.2的标准,支持33/66 MHz、32位数据的传输,PCI核的结构如图3所示,该PCI核的功能是将入口测复杂的PCI接口信号转为出口侧较为操作的用户信号。PCI核内用户侧设置有主控制接口和从控制接口以及配置寄存器等模块,其中从控制接口分为寄存器接口与FIFO接口。因为本文中仅使用了从控制接口,所以图中仅对从控制接口的信号展示。可以看出,IP核左侧的信号为PCI的标准信号,在使用时与前端PCI总线连接,右侧信号为本地数据信号,可以看出IP核将PCI上原本复用的地址线与数据线处理后分别接出为32位的地址线与32位数据线,并且原本总线上双向的数据线被区分为单向读信号线与写信号线。此外还有后端逻辑对寄存器的读写地址信号线与PCI访问逻辑的读写地址信号线,后端对寄存器使用时的请求信号线,寄存器被占用的标志信号线等。配置寄存器包含所有PCI配置空间的信息,其中包括表明设备信息的Device ID与Ven dor ID寄存器,以及命令寄存器,Base Address Register等主设备初始化时需要访问的信息,这些信息在PCI核生成时已经被设定,无需改动。

c.jpg
上一页 1 2 下一页

关键词: PCI总线 FPGA I2S 音频

评论


相关推荐

技术专区

关闭