IIS接口的FPGA实现

发布者:天涯拾遗最新更新时间:2011-07-07 关键字:FPGA  IIS接口 手机看文章 扫描二维码
随时随地手机看文章
   

在嵌入式系统中经常采用IIS(Inter-IC Sound)总线连接专用音频器件以实现音频输入输出。不少嵌入式处理器带有专用的IIS总线,通过操作特殊功能寄存器实现对外接音频器件的操作,但也有一些嵌入式处理器没有扩展IIS总线,如ARM7芯片S3C4510B。近年来,FPGA技术发展迅速,现已成为可编程片上系统(SoPC)的硬件载体。采用FPGA实现IIS总线及与总线相关的接口控制,一方面可以用硬件的方法实现IIS总线操作,使嵌入式系统很容易扩展音频功能;另一方面由于FPGA可以实现大量的组合逻辑和时序逻辑,还可以用来实现DSP算法,增加了系统的灵活性。

  1 基本原理

  1.1 系统方案

  嵌入式处理器采用Samsung公司的ARM7芯片S3C4510B;音频芯片使用Philips 公司开发的UDA1341TS,这是一款适用于MiniDisc(MD)、PDA等便携式设备的高性能低功耗的经济型音频编码解码器;FPGA芯片则使用 Xilinx公司的Spartan-II 系列芯片XC2S100。系统示意图如图1。

  

 

  图1中FPGA负责连接S3C4510B和UDA1341TS,为此需要按照访问UDA1341TS的时序要求实现IIS总线和L3接口,同时要按照S3C4510B总线时序要求,实现按存储器方式操作的特殊功能寄存器,并将对UDA1341TS的操作转换成对特殊功能寄存器的操作。这样S3C4510B便可以直接访问FPGA实现的特殊功能寄存器,从而实现对UDA1341TS的控制。

  1.2 IIS和UDA1341TS简介

  IIS又称I2S, 是Philips公司提出的串行数字音频总线协议,专用于芯片间进行高速高效的音频数据传输。IIS总线只处理声音数据,其他信号必须单独传输,如控制信号。IIS总线包括3 个信号线,即1个双向数据传输线SD(Serial Data)、一个声道选择线WS(Word Select)和1个时钟线SCK(Serial Clock)。在数据传输过程中,发送端和接收端具有相同的时钟信号,发送端作为主装置(Master)时,产生位时钟信号和声道选择信号,接收端被动响应。为了实现全双工传输模式,一些IIS实现时使用了Dout和Din两个数据线。

  UDA1341TS片内集成了立体声ADC、DAC以及模拟输入通道,其中模拟输入通道包括可编程增益放大器(PGA)、数字自动增益控制(AGC)、 数字声音处理(DSP)等。UDA1341TS的重放过程也具有可编程的DSP功能,如去加重、音量控制、低音增强、高音增强以及软件配置静音等。

  根据串行音频数据输入输出格式和每声道字长的不同,UDA1341TS支持4种操作模式,分别是:(1)字长不超过20位的IIS总线模式;(2)字长不超过20位的最高位对齐(MSB-justified)模式;(3)字长为16、18或20位的最低位对齐(LSB-justified)模式;(4)输出采用最高位对齐,输入采用字长为16、18或20位的最低位对齐模式。其中IIS总线模式和最高位对齐模式操作时序如图2所示。二者具有相同的信号线,但左右声道控制电平和位延迟不同,对于IIS总线,声道控制电平改变后,最高位推迟一个时钟周期才发送。

  

 

  对UDA1341TS的所有功能控制和状态获取均通过3线串行接口L3实现。该接口包含3个信号线,分别是串行数据线L3DATA、接口模式选择线L3MODE和串行时钟线L3CLOCK。L3接口操作有两种模式,即地址模式和数据传输模式。地址模式用于选中后续操作所要访问的芯片及其内部寄存器,被地址模式选中的芯片和寄存器一直保持有效,直到UDA1341TS收到一个新的地址模式命令字节。数据传输模式用于将音频处理和系统控制参数写入UDA1341TS并可以读取回放的音频数据的峰值电平。L3MODE为低电平时操作为地址模式,高电平时操作为数据传输模式。

  地址模式下由主器件按标准时序送出8位地址,其中高6位表示UDA1341TS芯片地址000101,最低2位选择要访问的该芯片内部寄存器,分别是DATA0、DATA1和STATUS,由此产生下面的3种寄存器操作模式。

  (1)STATUS操作模式可以控制芯片复位、系统时钟频率、数据输入格式、DC滤波器、输入增益、输出增益、ADC和DAC极性控制、倍速播放和功率控制等。

  (2)DATA0操作模式又分为两种:直接地址模式和扩展地址模式。数据最高2位非‘11’时为直接地址模式,在这种模式下,可以直接控制音量、低音增强、高音增强、峰值检测位置、去加重、静音等功能;数据最高2位为‘11’时为扩展地址模式,可以通过3位选择6个5位的扩展寄存器,分别控制通道混合增益、MIC灵敏度、自动增益控制、输入放大器增益器等。

  (3)DATA1操作模式用于读取音频数据重放时的峰值电平。[page]

 

    2 FPGA设计及功能仿真

  如图1所示,FPGA负责连接S3C4510B和UDA1341TS,需要实现S3C4510B总线接口、IIS总线和L3接口等。采用模块化设计思想,划分几个功能相对独立的模块,并将各个功能模块封装成元件(Component),分别设计、仿真、测试、验证各元件,最后在顶层调用各元件,并将元件信号与实际输入输出信号关联,实现整体功能。实际实现了4个元件,如图2所示。

  图2中,元件ARM_Interface负责实现与S3C4510B接口,主要是实现几个可以映射成存储器的地址单元,并提供这些单元与其他元件的接口。其中左右声道单元为16位,在内部分别与2个FIFO相连接,以便音频数据以选定的速率回放;IIS_out元件负责产生IIS总线或MSB对齐模式时序;L3_3B_Mod元件实现UDA1341TS数据传输模式中的DATA0扩展地址模式,共需传输3个字节;L3_2B_Mod元件则负责UDA1341TS其余的操作模式,只需传输2字节,即1字节地址和1字节数据。采用这种元件模块设计的方法主要考虑到FPGA容易实现并行操作,但对复杂条件操作和逻辑判断则不如处理器编程实现方便。因此并行实现多个元件,再由简单逻辑和条件及输入参数控制选定的元件工作,以实现需要的功能,这是FPGA设计的主要思想。

  2.1 嵌入式处理器接口实现

  此模块主要负责处理与嵌入式系统的数据传输接口。主要输入信号包括全局时钟GCLK、片选信号nCS、写信号nWBE0、读信号nOE以及地址信号ADDR[4..0],其中地址信号确定相对于片选地址的偏移地址,5位地址信号最多可寻址32个16位地址单元。所有总线数据操作与全局时钟同步。根据需要,实际设计实现了7个寄存器,分别是DATA0直接地址寄存器、DATA0扩展地址寄存器、DATA1寄存器、STATUS寄存器、左声道音频数据缓存器、右声道音频数据缓存器、FPGA控制寄存器,它们的偏移地址分别是0x00100、0x00110、0x01000、0x10100、0x00000、0x00010、0x01100。上述寄存器中,只有左右声道音频数据缓存器为16位,其余均为8位,因此只能实现不超过16位的IIS总线和MSB对齐模式。

  测试本元件时,首先应测试单元的读写特性,通过ARM仿真器直接对编程单元进行读写即可验证扩展的正确性。对于内建16x8的FIFO的左右声道数据缓存器,可以通过读写多次测试其满空状态,并通过1个接在FPGA的I/O口线上的LED直接观察。测试无误后,该元件便可使用。

  2.2 IIS总线实现

  IIS总线通过IIS_out元件来实现,其接口信号如图3所示。输入信号是ARM_Interface提供的左右声道音频数据,输出信号是IIS总线要求的3个串行信号,即bclk、sync和dout,分别与SCK、WS和SD对应,这3个信号通过FPGA的I/O口线与UDA1341的BCK、WS以及DATAI与DATAO信号线相连。IIS 格式的信号无论有多少位有效数据,数据的最高位(MSB)总是被最先传输,在WS 变化后的第2 个SCK脉冲处,因此最高位拥有固定的位置,而最低位的位置则依赖于数据的有效位数。实际设计的数据有效位是16位,低于16位数据时高位填充‘0’,处理器将数据以16位方式写入左右声道音频数据缓存器时,自动进行高位填充。

  

 

  实现IIS总线时序时,关键是要正确处理各种时钟信号之间以及生成的IIS总线3个信号之间的时序关系。要依据音频信号的采样速率选择FPGA系统时钟和UDA1341时钟选项,同时要合理使用计数器并正确读取左右声道音频数据缓存器,最终实现音频数据通过IIS总线的正确传输。

  设计实现的IIS时序仿真图如图4所示。

  

 

  图4显示的是IIS_out元件将左右声道音频数据缓存器内2个16位数据由IIS总线输出的时序仿真结果。bclk信号的上升沿数据dout稳定有效,在bclk为低电平时dout才变化。当左右声道控制信号sync为低电平时,传输左声道数据‘0111011101110111’;当sync为高电平时,传输右声道数据‘1010101010101010’。从仿真波形可知,每声道数据反映在dout波形上是从sync电平变化后的第2个bclk周期开始的。

  图2所示的最高位对齐模式与IIS使用相同的信号,很容易在IIS总线的基础上修改实现。实际实现的最高位对齐模式仿真时序正确,在此不再详述。

  [page]

 

    2.3 L3接口实现

  由于IIS总线只处理声音数据,其他信号必须单独传输,所以为了控制UDA1341TS而设计了L3接口。在FPGA实现L3接口时,根据UDA1341TS操作模式的不同,设计了两个元件。图3中元件L3_2B_Mod用于只需传输1字节地址和1字节数据的情况,而L3_3B_Mod则用来传输1字节地址和两字节数据。

  为了便于控制,在元件ARM_Interface中专门设置了一个控制寄存器来控制L3接口的工作模式,该寄存器偏移地址为0x01100,其高4位有定义。最高位为接口允许位TRANS_EN,为‘1’时L3接口启动工作,为‘0’时停止;次高位为L3接口工作模式选择位TRANSMODE,为‘0’时选择L3_2B_Mod,为‘1’时选择L3_3B_Mod;接下来的二位用于选择寄存器。

  实际设计实现的元件L3_3B_Mod时序仿真图见图5。

  图5显示的是L3接口DATA0扩展地址模式时序图,共传输了3字节数据,即1个地址字节、2个数据字节。地址字节的高6位为UDA1341TS地址,低2位选择DATA0操作模式,紧接着的数据字节最高两位为‘11’选择扩展地址模式,这意味着该字节后面还要传输1字节数据。图5中的3字节分别为0x14、0xC4和0xF0,该命令将打开输入通道的自动增益控制。L3接口要求串行数据的低位在前传输,这一点与IIS有所不同。

  实现L3_3B_Mod元件时引入了一个参考时钟REF_CLK,由一个5位计数器对该时钟信号计数,根据L3接口在3字节操作时的时钟信号图案,控制由REF_CLK生成L3CLOCK,得到L3CLOCK之后,L3接口的操作均以此时钟信号来同步。

  元件L3_2B_Mod设计及仿真结果与L3_2B_Mod类似。

  3 测试方法及结果

  在以S3C4510B为核心的嵌入式系统中,根据存储器配置情况,选择一段未用的存储空间,将FPGA实现的寄存器映射成S3C4510B在该段存储空间中的存储单元,这样就可以用C语言编程来访问这些存储单元,从而实现对UDA1341TS的控制。实际选择了S3C4510B的可重定位片选信号nRCS1作为FPGA实现的寄存器基地址选择信号,并将该片选地址定位为0x12000000,这样各寄存器的实际地址如表1。

  

 

  根据UDA1341TS命令列表,在Hitool For ARM support μClinux软件开发环境下,编写C语言程序,测试STATUS操作和DATA0操作功能及结果。程序运行之前需要用JTAG下载电缆将ISE开发环境下生成的bit文件下载 到FPGA芯片中,以实现要求的功能。

  经实际测试,通过FPGA实现的IIS总线和L3接口,S3C4510B可以控制UDA1341TS芯片完成各种操作,实现STATUS操作模式和DATA0模式的各种控制功能,并可用DATA1操作模式获取音频数据重放时的峰值电平。

  编写测试程序,输出1kHz正弦信号,并控制声道、音量、静音等变化,示波器观察和耳机听到的结果正确。

  编写测试程序,读入麦克风音频信号,分时由左右声道输出,测试结果正确。

  本设计采用音频接口专用芯片UDA1341TS,并通过FPGA实现了IIS总线和L3接口,使得基于S3C4510B的嵌入式系统可以方便地扩展音频功能,实验结果正确。

  在本文工作的基础上,可以进一步发挥FPGA的灵活性。如可以利用FPGA实现DSP功能,从而提供音频DSP处理或编码解码;也可以与SoPC相结合,作为音频接口模块,为片上系统提供音频接口。

关键字:FPGA  IIS接口 引用地址:IIS接口的FPGA实现

上一篇:汽车信息娱乐应用中PLD管理图像数据
下一篇:基于FPGA IP核的线性调频信号脉冲压缩

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

技术文章—2D NoC可实现FPGA内部超高带宽逻辑互连
Achronix 最新基于台积电(TSMC)的7nm FinFET工艺的Speedster7t FPGA器件包含了革命性的新型二维片上网络(2D NoC)。2D NoC如同在FPGA可编程逻辑结构上运行的高速公路网络一样,为FPGA外部高速接口和内部可编程逻辑的数据传输提供了超高带宽(~27Tbps)。 图1 Speedster 7t FPGA结构图 NoC使用一系列高速的行和列网络通路在整个FPGA内部分发数据,从而在整个FPGA结构中以水平和垂直方式分发数据流量。NoC中的每一行或每一列都有两个256位的、单向的、行业标准的AXI通道,可以在每个方向上以512Gbps(256bit x 2GHz)的传输速率运行。
[嵌入式]
技术文章—2D NoC可实现<font color='red'>FPGA</font>内部超高带宽逻辑互连
Altera发售业界唯一的20 nm SoC FPGA
Altera第二代Arria 10 SoC是业界唯一的20 nm SoC FPGA 2015年2月25号,北京 Altera公司(Nasdaq: ALTR)今天开始发售其第二代SoC系列,进一步巩固了在SoC FPGA产品上的领先地位。Arria 10 SoC是业界唯一在20 nm FPGA架构上结合了ARM 处理器的可编程器件。与前一代SoC FPGA相比,Arria 10 SoC进行了全面的改进,支持实现性能更好、功耗更低、功能更丰富的嵌入式系统。Altera将在德国纽伦堡举行的嵌入式世界2015大会上展示其基于SoC的解决方案,包括业界唯一的20 nm SoC FPGA。 Altera的SoC产品市场资深总监C
[嵌入式]
设计灵活、高性能的嵌入式系统——软处理和IP定制同时确保灵活性和性能
您的下一个嵌入式系统设计项目需要的是什么:是可以让您轻松地定制设计的灵活的系统元件,还是额外的性能空间,以便您在设计周期中加入更多的功能?为什么要让自己承受过度的开发压力,并且只能舍此取彼呢?软处理和IP定制能够为同时确保灵活性和高性能提供了最佳的解决方案,将定制设计的概念和协处理带来的性能加速结合起来。 分立处理器只能提供固定的外设选择,并且一些性能受到时钟频率的限制。在嵌入式FPGA所提供的平台上,您可以创建一个具有大量定制处理器核、灵活的外设、甚至协处理减负引擎的系统。现在,您能设计出一个不折不扣的定制处理系统——不仅满足最具挑战性的项目要求,而且能够冲破性能极限,与此同时,通过使用FPGA硬件实现加速的软件指令最大限度地
[嵌入式]
基于FPGA的虚拟DPO设计方案
项目概述 1.1项目背景 示波器(Oscilloscope)是一种能够显示电压信号动态波形的电子测量仪器。它能够将时变的电压信号转换为时域上的曲线,原来不可见的电气信号,转换为在二维平面上直观可见光信号,由此能够分析电气信号的时域性质。 目前,全球主要的示波器生产厂商都集中在美国,而高端示波器更是被美国Tektronix公司、Agilent公司和LeCory公司所垄断。如Agilent公司的高性能90000系列Infiniium示波器在4个通道上均达到40-GSPS采样率,并同时提供超低噪声的13 GHz全实时示波器带宽,存储深度也达到了1Gpts。 而国内方面,由于在高速模数转换器和专用集成电路方面与发达国家的差距,市场
[测试测量]
基于<font color='red'>FPGA</font>的虚拟DPO设计方案
HDLC控制协议的FPGA设计与实现
摘要:设计了一种基于FPGA的HDLC协议控制系统该系统可有效利用FPGA片内硬件资源,无需外围电路,高度集成且操作简单。重点对协议的CRC校验及“0”比特插入模块进行了介绍,给出了相应的VHDL代码及功能仿真波形图。 关键词:高级数据链路控制; 现场可编程门阵列; 循环冗余码校验 1 引言 HDLC(High Level Data Link Control)协议是通信领域中应用最广泛的协议之一,它是面向比特的高级数据链路控制规程,具有差错检测功能强大、高效和同步传输的特点。目前市场上有很多专用的HDLC芯片,但这些芯片大多因追求功能的完备,而使芯片的控制变得复杂。实际上,对于某些特殊场合的特殊用途(如手持式设备),我们
[半导体设计/制造]
利用Maxim外设模块加速FPGA原型设计、显著降低成本
中国,北京,2012年7月3日。Maxim Integrated Products (NASDAQ: MXIM)推出能够直接插入符合Digilent® Pmod™标准的任意FPGA/CPU扩展端口的15个外设模块套装。简单的连接操作和便利的软件集成可加速原型开发进度,实现从概念至设计方案的快速移植。这套模块的价格极具竞争力,即使在预算最紧张的情况下,也可以采用先进的高性能IC进行方案测试。 Maxim认识到外设模块在电路原型设计中越来越受青睐。该套装支持多种常用的模拟和混合信号功能,模块均配备软件示例以及支持三个流行FPGA平台的FPGA配置文件。简单明了的例程用于每个模块的演示,将用户的原型开发时间由原来的小时级缩短至分钟级。
[嵌入式]
利用Maxim外设模块加速<font color='red'>FPGA</font>原型设计、显著降低成本
Mentor Graphics宣布推出新的用于PCIe 4.0的验证IP
俄勒冈州威尔逊维尔,2014 年 12 月 8 日---Mentor Graphics公司(纳斯达克代码:MENT)今天宣布其新的Mentor®EZ-VIP PCI Express验证IP的即时可用性。这一新的验证IP (VIP)可将ASIC(应用程序特定集成电路)和FPGA(现场可编程门阵列)设计验证的测试平台构建时间减少多达10倍。 验证IP旨在通过为常见协议和架构提供可复用构建模块来帮助工程师减少构建测试平台所花费的时间。然而,即使是标准协议和常见架构,其配置和实施也可能会因设计而异。因此,传统的VIP元件可能需要数天甚至数周来准备模拟或仿真测试平台。 “在移动、网络及服务器SoC中使用ARMv8-A架构和A
[嵌入式]
一种基于FPGA技术的虚拟逻辑分析仪的研究与实现
     摘 要: 逻辑分析仪的现状、发展趋势及研制虚拟逻辑分析仪的必要性,论述了基于FPGA技术的虚拟逻辑分析仪的设计方案及具体实现方法,介绍了其中控制器的设计原理。将先进的FPGA技术引入硬制版的设计中,为研制PC虚拟仪器提出了一种新思路;充分利用硬件软化的思想,将仪器的诸多功能集成在软件中实现,利用面向对象、窗口等技术,实现了灵活、通用的虚拟仪器面板功能。     关键词: 虚拟仪器 虚拟逻辑分析仪(FVLA)现场可编程门阵列(FPGA)面向对象技术 控制器     电子技术的迅速发展从客观上要求测试仪器向自动化及柔性化方向发展,基于微计算机的虚拟测试仪器的出现和广泛使用,将对测试仪器产生极为
[测试测量]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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