基于FPGA和AD1836的I2S接口设计

发布者:shiwanyongbing最新更新时间:2010-03-03 来源: 周伟 王慧梅关键字:FPGA  AD1836  ADI  I2S  接口 手机看文章 扫描二维码
随时随地手机看文章

  引 言

  AD1836是ADI公司新推出的一款高性能的单片声码器,适用于数字音频系统。它采用5V供电,数字接口输入输出电平为LVTTL电平,可以直接和一般的FPGA连接。AD1836集成了3路立体的D/A和两路立体的A/D,参考电压为2.25V,为了降低信号的干扰,模拟信号的输入输出均采用差分的形式,输入输出模拟信号的最大峰峰值为5.6V。系统时钟为12.288MHz,数据采样率最高为96kHz,采样位数最高为24位,可以通过SPI口方便地对内部功能寄存器进行配置,从而选择相应的功能,例如:时钟、工作模式、采样率、采样位数、工作A/D和D/A的路数等选择。其中A/D和D/A的数字接口可以配置为I2S接口模式,本文主要以AD1836中的D/A为例介绍I2S接口的设计。

  I2S总线协议简介

  I2S(Inter IC Sound Bus)是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准,它既规定了硬件接口规范,也规定了数字音频数据的格式。I2S有三个主要的信号:

  (1)串行时钟BCLK,也叫位时钟,即对应于数字音频的每一位数据,BCLK都有一个脉冲。BCLK的频率=2×采样率×采样位数。

  (2)帧时钟LRCLK,用于切换左右声道的数据。LRCLK为“1”表示正在传输的是右声道的数据,为“0”则表示正在传输的是左声道的数据。LRCLK的频率等于采样频率。

  (3)串行数据SDATA,就是用二进制补码表示的音频数据。

  有时为了使系统能够更好的同步,还需要另外传输一个信号MCLK,称为主时钟,也叫系统时钟,是采样频率的256倍或384倍。典型的I2S接口时序如图1所示,对于系统而言,产生BCLK和LRCLK信号的信号端是主设备。I2S的数据线用于串行数据,当LRCLK变化(也就是左右通道的数据切换),在第二个BLCK处数据开始,按照高位在先低位在后的顺序进行传输。数据在BCLK的下降沿改变,在BCLK的上升沿进行数据的采样。因此,在BCLK的上升沿处数据必须是稳定的,接收端和发送端处理的有效数据的位数可以不同:如果接收端可处理的有效数据的位数多于发送端,将不足的数据位用0补足;反之,则将多余的数据位舍弃。

典型的I2S接口时序

  I2S接口硬件设计

  本设计采用Altera公司的Stratix系列的FPGA,EP1S10672I7来实现AD1836中D/A的I2S接口设计。该芯片内核电压为1.5V,I/O电压为3.3V,符合AD1836数字接口输入输出电平要求,其中D/A部分的I2S接口硬件设计原理图如图2所示。

D/A部分的I2S接口硬件设计原理图

  本设计中,将AD1836采样时钟设置为48kHz,采样位数为24位。从AD1836数据手册可知,其系统时钟(MCLK)为12.288MHz,左右通道数据切换时钟(LRCLK)等于采样时钟(48kHz),数据位时钟(DBCLK)为64×左右通道数据切换时钟(3.072MHz)。所以串行数据线上传输的是24位的有效数据,其余数据位时钟周期对应的数据线上的数据为0,串行数据线DSDATA1、DSDATA2、DSDATA3分别对应于三路的立体D/A,所有的时钟线和数据线均经过下拉电阻后与FPGA的I/O相连。

  基于FPGA的实现

  逻辑模块设计

  FPGA内部逻辑模块主要包括分频模块和D_A接口模块,如图3所示。其中分频模块将AD1836的系统时钟12.288MHz分频为3.072MHz(即位时钟BCLK);start信号为模块使能信号,为高时,D_A接口模块将从DATIN引脚输入的24位并行数据转换为串行数据,从Datout引脚输出;当左右通道时钟切换时,输入的24位并行数据也相应改变,同时从LRclk引脚输出48kHz的左右通道数据切换时钟,从Bclk引脚输出3.072MHz的位时钟信号。LRclk和Bclk都是在AD1836的系统时钟(MCLK)的基础上分频得到的,从而保证了整个系统的同步性。

FPGA内部逻辑模块主要包括分频模块和D[page] 

  软件设计

  所有软件的设计是在QuartusⅡ 6.0中采用Verilog HDL语言输入完成的,系统采用10MHz的有源晶振,通过FPGA内部的锁相环进行二级倍频从而得到12.288MHz的时钟信号,然后通过clkin_12_288M引脚送入分频模块。主要的程序如下:

  分频模块

  Module freq3_027M(clkin12_288M, clkout3_027M);

  input clkin12_288M; //时钟输入引脚

  output clkout3_027M; //时钟输出引脚

  reg clkout3_027M; //分频计数器

  integer cunt;

  always@( posedge clkin12_288M) begin

  cunt=cunt+1;

  if (cunt<=1)

  begin clkout3_027M=1\'b0;end

  else if((cunt<=3)&&(cunt>=2))

  begin clkout3_027M=1\'b1;end

  else

  begin cunt="0";clkout3_027M=1\'b0;end

  end

  endmodule

  D_A接口模块

  (1)左右通道切换时钟和数据位时钟

  assign LRCLKout = LR_f; //左右通道切换时钟

  assign BCLKout =(BCLK_f)?BCLKin:1\'b1; //数据位时钟

  (2)时钟输出和数据的并串转换

  always@( negedge BCLKin) begin

  if(start) begin //使能信号为高

  cunt=cunt+1;

  case (cunt)

  1: begin LR_f=~LR_f; //左右通道时钟

  BCLK_f=1\'b1;end //送出位数据时钟

  2: datout="DDSdatin"[23];//送出最高位

  3: datout="DDSdatin"[22]; //送出次高位

  4: datout="DDSdatin"[21];

  5: datout="DDSdatin"[20];

  6: datout="DDSdatin"[19];

  7: datout="DDSdatin"[18];

  8: datout="DDSdatin"[17];

  9: datout="DDSdatin"[16];

  10: datout="DDSdatin"[15];

  11: datout="DDSdatin"[14];

  12: datout="DDSdatin"[13];

  13: datout="DDSdatin"[12];

  14: datout="DDSdatin"[11];

  15: datout="DDSdatin"[10];

  16: datout="DDSdatin"[9];

  17: datout="DDSdatin"[8];

  18: datout="DDSdatin"[7];

  19: datout="DDSdatin"[6];

  20: datout="DDSdatin"[5];

  21: datout="DDSdatin"[4];

  22: datout="DDSdatin"[3];

  23: datout="DDSdatin"[2];

  24: datout="DDSdatin"[1];

  25: datout="DDSdatin"[0]; //数据已经发送完毕

  26: datout="0"; //剩余的数据送0

  27: datout="0";

  28: datout="0";

  29: datout="0";

  30: datout="0";

  31: datout="0";

  32: datout="0";

  default:datout=1\'bz;

  endcase

  end[page]

  软件仿真

  模块的仿真也是在软件QuartusⅡ6.0中实现的,仿真波形如图4所示。为了便于仿真,在24位的并行数据输入口输入十六进制的常数AB15F7H,此时送入左右通道的数据是相同的。从仿真波形中可以看出,当start信号高有效后,位数据时钟和左右通道数据切换时钟送出,将并行的24位数据AB15F7H从数据线上串行送出,在多余的位数据时钟处数据线上的数据为0,仿真结果与I2S接口时序图相符合。

仿真波形 

  结束语

  本文以FPGA为控制单元,完成了AD1836中D/A部分的I2S接口设计,它在数字音频系统的设计中有一定的参考和实用价值。该设计已经成功运用在某话路特性综合测试系统中,性能良好。

关键字:FPGA  AD1836  ADI  I2S  接口 引用地址:基于FPGA和AD1836的I2S接口设计

上一篇:基于PLD的视频接口的技术构成与应用设计
下一篇:用EEPROM对大容量FPGA芯片数据实现串行加载

推荐阅读最新更新时间:2024-05-02 21:00

脑机接口又有了新进展:Facebook与马斯克有何不同?
再过不久,我们仅靠意念就可以打字聊天、向计算机发出指令了。今天,Facebook 与加州大学旧金山分校(UCSF)发布了有关脑机接口研究的最新进展,其论文出现在了最新一期的自然杂志子刊《Nature Communications》上。 「今天我们分享的新工作有关构建非侵入式可穿戴设备,让人们只需通过想象要说的话即可完成『打字』动作,」Facebook 副总裁 Andrew Bosworth 表示。「这一进展显示了未来 AR 头戴设备输入和互动能力的新潜力。」 这项研究证明了人们在对话时大脑产生的活动可以实时解码为电脑屏幕上的文字——而在此之前,这样的工作都是离线完成的,实时「翻译」文字是脑机接口研究领域的第一次。研究人员表示,
[嵌入式]
脑机<font color='red'>接口</font>又有了新进展:Facebook与马斯克有何不同?
交换式路由器的千兆比以太网接口设计和实现
    摘要: 根据交换式路由器的设计要求、结构功能及千兆比以太网的具体特点,使用介质访问控制子层的控制芯片XMACII和大容量的FPGA,完成了千兆比以太网接口的设计与实现。     关键词: 千兆比以太网接口 XMACII FPGA 随着宽带网络的普及和网络应用的多业务需求,特别是基于视频多媒体等的大流量网络业务的增多,传统的路由器越来越成为高速网络的瓶颈。由于路由器各个端口之间是通过共享总线相连,路由器的端口速率比较低,因而限制了转发IP分组的能力。传统的路由器在运行路由协议、维护路由表等方面都难以满足现代IP通信网络的要求。 交换式路由器是采用新型交换结构来实现分组路由转发功能的下一代路由器。交换式
[网络通信]
欧盟正式统一充电器接口,USB-C® 将成为最大赢家
今年一月,欧洲议会以550对12的投票结果通过一项决议:建议在欧洲销售的所有手机和便携式电子设备统一采用同一种通用的充电器接口。议员们认为,统一的充电器接口标准不仅可以减少电子垃圾,也能够帮助消费者节省开支。此外,欧盟环保团体的“欧洲环境公民标准化组织”还建议,采用USB-C® 作为统一的充电器接口。 USB-C是有线连接领域的“王者”。它可以提供双向的数据传输和供电,线缆两端的接口不仅轻薄,且线缆左右两端可任意无差别使用。同时USB-C 能够承载的功率高达100W,因此 USB-C可以用作任何电子设备的充电器接口。 Global E-Waste Monitor的数据显示:每年,全球随消费类电子产品发出的充电器数量超过 1
[网络通信]
基于FPGA与DSP的雷达高速数据采集系统
随着雷达数据处理技术的快速发展,需要高速采集雷达回波信号。然而激光雷达的发射波及回波信号经光电器件转换后,形成的电信号脉宽窄,幅度低,而且背景噪声大,如采用低速的数据采集系统进行采集,存在数据精度不高等问题。同时,为避免数据传输不及时,发生数据丢失,影响系统的可靠性和实时性,需设计开发高速数据采集系统。 设计中针对前端输出约-25~25 mV,带宽为20 MHz的信号,采用高带宽,低噪声,高数据传输率,高分辨率数模转换芯片AD9235;利用XC2V250内部的大小为6 KB的异步FIFO实现AD9235转换器与TMS320C6201间的高速数据传输。采集系统的采样率为30 MHz,分辨率为12位,内部异步缓存FIFO为6
[嵌入式]
基于<font color='red'>FPGA</font>与DSP的雷达高速数据采集系统
技术文章—抢占IEEE 802.3bt PoE++先机
简介 IEEE的以太网供电(PoE)新标准(也称为PoE++)经过5年的开发,将于2018年末最终定稿。新标准的出台促使供电设备(PSE)和受电设备(PD)开发人员竞相研发新硬件,因为PoE++能够为PD提供高达71.3 W功率,几乎是之前标准25.5 W的3倍。PoE++允许通过千兆以太网在相同布线上传输52 V/1.7 A,从而为新一代的高耗电应用奠定基础,包括热门的户外云台变焦摄像机网络或用于蜂窝或Wi-Fi通信的远程基站和接入点。 图1显示基本的PoE框图,其中一台PD连接至PSE。现在802.3bt标准已最终定稿,PoE开发人员希望率先推出自己的PoE++设计。目前的挑战就是要找到正式发布并经过认证的10
[物联网]
技术文章—抢占IEEE 802.3bt PoE++先机
ADI公司和Keysight Technologies强强联手 共推相控阵技术加速部署
中国,北京–2022年10月17日–Analog Devices, Inc (Nasdaq: ADI)和Keysight Technologies, Inc. 宣布合作,共同加速相控阵技术的推广与部署。 相控阵技术能够简化与创建卫星通信、雷达和相控阵系统相关的开发工作,是实现无处不在的连接和泛在检测的关键。 ADI公司的相控阵平台系列提供了一套完整解决方案 ,可以利用Keysight的相控阵测试解决方案进行测试和校准,从而帮助客户加快波束成形解决方案的开发速度。此次合作整合了双方生态系统的整体实力,旨在打造集设计、测试和校准的全方位解决方案。其中的相控阵天线亦是推动实现新一代无线通信应用以及信号智能和地球观测应用的关
[模拟电子]
<font color='red'>ADI</font>公司和Keysight Technologies强强联手 共推相控阵技术加速部署
STM32F103C8T6+Keil5设计带 SPI接口显示屏的录音机
一、环境介绍 MCU: STM32F103C8T6 开发软件: Keil5 音频模块: VS1053B 录音文件存储设备: SD卡,采用SPI协议驱动 显示屏: SPI接口的0.96寸OLED 代码风格: 采用寄存器编程,代码简洁、执行效率高、注释到位、移植方便。 二、功能介绍 这是基于STM32F103C8T6设计的录音机功能,支持的功能如下: 1. 按下按键1启动自动录音,默认为5秒录音一次,录音完毕自动保存在SD指定目录下。文件名称采用当前时间命名;音频文件格式采用WAV格式存储。 2. 按下按键2启动手动录音,按键按下之后开始录音,再次按下结束录音,录音完毕之后,文件也是一样的保存在SD卡里。 3. SD卡文件系统采用
[单片机]
STM32F103C8T6+Keil5设计带 SPI<font color='red'>接口</font>显示屏的录音机
基于FPGA的车电总线接口技术研究
  1 概述   CAN总线是一种有效地支持分布式控制或者实时控制的串行通信网络,具有多主机、高性能以及高可靠性。然而随着汽车电子技术的发展,早期的CAN总线已经不能很好地解决众多电子设备之间的实时通信问题。由FlexRay联盟制定的FlexRay协议标准成为一种理想的解决方案。FlexRay通讯协议运用于可靠的车内网络中,是一种具备故障容错的高速汽车总线系统。作为一种灵活的车载网络系统,FlexRay具有高速、可靠及安全的特点,它不仅能简化车载通信系统的架构,而且有助于汽车电子单元获得更高的稳定性和可靠性。FlexRay在物理上通过2条分开的总线进行通信,每一条的数据速率是10 Mb/s。CAN网络最高性能极限为1Mb/s
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved