>
首页 » 业界动态 » 语音交互系统中基于Cyclone FPGA的交换机设计

语音交互系统中基于Cyclone FPGA的交换机设计

作者:赵丽莉,叶锡恩  时间:2006-09-30 07:33  来源:
摘要:以Cyclone FPGA 器件为核心,设计数据交换机。 描述了Cyclone 器件中LVDS 接口、锁相环PLL 、片内M4KRAM模块、芯片配置的应用方法和技巧,给出了软件设计思路,并研制了数据下载线。 经实际测试和运行,交换机的各项性能指标达到原设计要求,并具有高可靠性和高性价比。

关键词:交换机;Cyclone FPGA ;下载线

引言

数字语音交互系统是一套用于培养外语人才的数字化的语音教学系统。 由于数字技术的引入,除正常的外语教学功能外,还具有自主学习、自由点播语音节目、文本信息等特点,它取代了传统的模拟语音教学设备。 在这一领域,国内的研究早于并领先于国外。 先期,我们曾以以太网平台和TCP/IP 协议为主体,用嵌入式单片机结合以太网控制器构建终端,形成一个用于传输语音信号流的嵌入式网络平台。 但在多用户情况下,因为以太网技术是牺牲它的传输实时性来解决其多用户的有效通信问题,故出现语
音交互延时、断裂的致命现象。

为此我们改用类ATM通讯结构,自行设计专用集成电路(ASIC) ,并嵌入相应的通信协议,不仅从根本上消除了在多用户情况下的语音交互上的延迟、断裂现象,达到实时交互的要求;而且系统具有高可靠性和高性价比的特点。系统分为3 个部分:语音卡、交换机、终端。 本文将对其中的交换机的设计过程作出讨论,以展示其设计方法与技巧。

交换机的目标与任务

总体结构
如图1 ,交换机与语音卡的接口分下发和上传二个通道,每个通道二线,每线容纳8 个终端的数据流。 交换机接收上位PC 机语音卡的语音和文本数据,经重新组合后,下发到16 个终端;同时,交换机采集16 个终端的语音和请求指令,上传到PC 机语音卡。 根据上位语音卡的容限,整个语音系统具有实时处理128 个终端的能力;考虑到系统的模块化结构,一个交换机仅安排16 个终端;系统满负荷运行时,需要8 个交换机模块。

图1  交换机系统结构图

语音卡的数据格式
因交换机与PC 机的语音卡较近,所以每线的波特率设为5.644 8 Mbps ,采样率为22.05k/s ,则每帧(1/22.05k) 中可传256 位数据,要求每线容纳八个终端的语音数据和二个终端的文本数据,其中语音数据为16 位,文本数据为8 位。 考虑到文本的传输无须高速,故在一帧数据中仅安排二个终端的文本数据,并用其中的编码位来确定其所属的终端号,以减少硬件的开销。 采用异步通讯方式,数据格式如图2 ,每帧以一位低电平作为起始位,后续147 位是有效数据,其余为高电平。

至终端的数据格式
交换机的出口是用双绞线发送到终端,距离长达15 m ,故采用1.411 2 Mbps 波特率,同样以22.05k/s 的采样率,每帧数据为64 位。 交换机收到来自语音卡的每帧数据后,依次存入芯片内的FIFO ,而在发送端则顺序取出数据,并分离出对应于每个终端的语音和文本信息。 数据格式如图3 ,每帧以一位低电平作为起始位,16 位语音,8 位文本(无文本时为高电平) ,即16~24 位有效数据,同时下发到8 个终端。 由于交换机在单位时间内接收语音卡和下发至
终端的有效数据量是相同的,因此保证了数据不会在FIFO 中累积。


图2  来自语音卡的数据格式


图3  由交互机下发到终端的数据格式

上传通道的数据格式
保持与下发通道同样的采样率、波特率和数据格式。 交换机采集8 路终端上传的数据流,复合为一路,上传到语音卡。 其信息包括语音和请求指令,语音满足22.05k/s 的采样率,而请求指令无须实时,每隔四帧上传一次,其数据格式与下发格式相同,这里省略。

交换机的核心器件与接口标准

核心器件
为使交换机具有更高的灵活性,其核心器件选用ALTERA 公司新一代的FPGA 产品—Cyclone 系列中的EP1C3T144.FPGA 容量为2910 个逻辑单元(LEs) ,59904 位RAM 单元,支持低价串行配置器件;支持多种I/O 标准, 特别是低电压差分信号(LVDS) 兼容通道,每个通道可高达311 Mbps 的传输速率;内部锁相环提供了完整的片内和片外系统时钟网络的管理;具有接收被压缩的配置比特流的能力,减少了存储空间和配置时间。

接口标准
由于Cyclone 器件的I/O 端口具有多种可选择的接口标准,有很大的灵活性,这就为交换机与上位语音卡和下位语音终端的数据接口提供了多种选择。 综合考虑噪音的抑制能力,数据通信的可靠性,器件的已有资源,选用了LVDS(Low Voltage Differential Signaling) 的接口标准。 这是一种低压差分信号的数据传输标准, 在TIA/EIA - 644T 和IEEE Std.1596.3 的说明中定义了它的技术规范。

Cyclone 器件的LVDS 物理接口使用1.25 V 的偏置并提供350 mV 摆幅的信号,低摆幅驱动信号实现了低功耗和低电磁干扰( EMI) ,并具有高速传输的特征。 同时,由于LVDS 采用差分电路,因此可以抑制外部电源和媒体所产生的共模噪声。图4 给出了交换机的LVDS 接口。 上位语音卡采用的也是Cyclone 器件, 其接口同样被定义在LVDS 上,因此与交换机之间实现了全双工的无缝连接;而下位语音终端则为独立的LVDS 接收器MAX9111 和发送器MAX9110 ,与交换机作数据的双向传输。 接收器MAX9111 在内部提供了可靠性保证,使接收器在输入悬空、输入短路以及数据传输终止等情况下保持输出为高电平。 线路中的终端电阻是为了满足LVDS 的标准要求,一方面实现对差分传输线的最大匹配,防止信号在媒质终端发生反射,以减少电磁干扰;另一方面,系统也需要此终端电阻来产生正常工作的差分电压。

图4  交换机LVDS 接口

LVDS 驱动器和接收器主要完成TTL 信号和LVDS 信号之间的转换。 驱动器由一个驱动差分线对的电流源组成,其电流为3.5 mA ;LVDS 接收器具有很高的输入阻抗,因此驱动器输出的电流大部分都流过100Ω的终端电阻,并在接收器的输入端产生大约350 mV 的电压。 当驱动器翻转时,它改变流经电阻的电流方向,因此产生有效的逻辑“1”和逻辑“0”状态。 在本系统中,每路终端的数据传输仅为1.4112Mbps ,15m 的距离范围内,使用CAT5双绞线对,足以保证链路的数据传输的可靠性。

程序设计

设计思想

ALTERA 的QuartusⅡ4.0 软件为Cyclone 器件提供了编辑、编释、下载的平台。 软件设计的框架如图5 所示。 图中仅展示了数据下发的单向过程,数据上传与此类似, 不作介绍。 其中移位寄存器(LPMShiftReg)、锁存器(LPM-latch) 、先进先出(FIFO) 存储器、锁相环(ALTPLL) 是直接运用了Quartus Ⅱ软件中的宏功能块,而数据的输入( s-in) 、输出( s-out) 是自定义的宏模块。

图5  软件框图

数据以5.644 8 Mbps 的速率进入s-in模块, s-in模块以8 倍的采样率检测每帧数据的起始位,并对后续的147 位有效数据作计数。 在检测到起始位后,控制移位寄存器(LPM-ShiftReg) 作串- 并转换;同时每收到16 位数据就触发锁存器(LPM-latch) 锁存,并把锁存后的数据存放于FIFO 中。 当完成一帧数据的处理后,向s-out 模块发出准备好(Ready) 信号,s-out一旦检测到Ready 信号,立即依次从FIFO 中取出一帧数据,并根据其中的编码位组合成如图3 所示的数据格式,以1.4112 Mbps 的速率同时下发给8 个终端。

ALTPLL 宏功能块
ALTPLL 宏功能块是利用了Cyclone 器件中的锁相环PLL。 PLL 的特点是用外部时钟来同步内部的器件时钟,并且可以使内部时钟的运行速度高于外部时钟,从而减少时钟的延迟和偏移以及时钟输出和建立的时间;它具有倍频、分频、相移调整、可编程的占空系数等系统时钟的管理能力。外部输入的晶振频率(inclk) 为22.579 2 M, 经ALTPLL 倍频后在c0 端产生了s-in模块所需的采样时钟45.1584 M,同时在c1 端产生二分频11.289 6 M 信号频率,为s-out 模块提供了8 倍于数据下发速率1.4112 M的时钟信号。
在PLL 设计中应满足下面的关系式:

各参量必须符合下面Cyclone PLL 的技术规范。
这些规范在PLL 宏功能块设置时,尤其重要,各参量不能超出规定的范围。
表1  Cyclone PLL 的技术规范


M4K宏功能块
Cyclone 器件中,至少有13 块4608 bit 宽度可调的M4K存储块,可配置为单、双口RAM、ROM 和FI2FO。 这些RAM 在很大程度上可以替换外部的分立RAM,从而简化了PCB 版图设计, 同时由于内部RAM的运行速率很高,因而也增大了系统的带宽。在程序设计中应注意如用直接的编程方法,很难映射到M4K存储块,而是消耗内部的宏单元LE。我们在程序中调用了FIFO 宏功能块,作为接收数据的缓存,可以很方便地映射在M4K存储块上。 从编释后的结果中,可以清楚地显示出M4K RAM 的消耗情况。

状态机的编码方式分析
在数据的输入(s-in) 、输出( s-out) 的自定义宏模块中使用了状态机描述。 在状态机的编码中,一般有Binary、Grar 、One-hot 编码。Binary 编码,状态改变时,往往有多位状态位发生变化。 在高速运行下,可能会导致产生瞬时的非法过渡状态,若应用于异步电路,将引发严重问题。Grar 的特点是任意两个相邻状态的码之间只有一位不同,因此相邻状态的改变不会产生瞬时的过渡状态,因此具有很强的抗干扰能力,但存在状态改变需依次序才适用的缺点。One - hot 编码是用n 个触发器来实现具有n 个状态的状态机,任意时刻只有1 位有效(其值为1) ,因此任意状态之间的转换, 不会产生瞬时的过渡状态。 尽管用了较多的触发器,但其简单的编码简化了状态译码逻辑,提高了状态转换速度。 对于含有较多的时序逻辑资源、较少的组合逻辑资源的FPGA 器件是好的解决方案。 但它会出现大量的剩余状态(2n- n) ,因此要考虑容错技术的应用。 可以在程序中加入对状态编码中“1”的个数是否大于1 的判断逻辑,当出现多个“1”时,转入复位或状态调整处理。我们在状态机描述中原先采用Binary 编码,但出现仿真时序正确,而实际数据流失真的情况;后改用One-hot 编码,测试数据稳定,系统正常。

Cyclone 器件的配置

Cyclone 与其它FPGA 芯片相比,在加载模式、配置时序及下载线电路结构方面有较大的不同,下面分别进行讨论。

加载模式
由于Cyclone 器件内部数据存储器为SRAM 结构,所以配置数据必须存在非易失性的器件中,在每次上电时,将配置数据重新载入到Cyclone 的SRAM中。 其加载方式有3 种: (1)AS 主动串行模式。 (2) PS被动串行模式。 (3) JTAG 的直接加载模式。 考虑到AS 模式的非易失性器件( EPCS1、EPCS4) 价格低以及JTAG接口便于代码调试的特点,故选用图6 所示的AS 与JTAG相结合的下载电路。图6 中MSEL0、MSEL1 决定下载模式,J1 是AS模式接口,J2 是JTAG接口。 对J1 接口,在Quartus 软件支持下,用ALTERA 公司的下载线, 通过对Cyclone 芯片nCE 和nCONFIG信号的控制,使其处于复位状态与配置芯片相隔离,从而实现对配置芯片在线用户代码的固化。 而J2 接口,可以把用户代码直接下载到Cyclone 芯片的SRAM中,便于调试过程中程序的反复修改,但不能固化。

图6  AS 与JTAG相结合的下载电路

配置时序分析
如图7 ,先把信号nSTATUS 和CONF-DONE 变低,表示不能配置,100ms 以后,nSTATUS 为高,进入配置状态,同时所有I/O 为三态配置过程中,Cyclone-FPGA 使nCSO拉低,以使能配置芯片,同时由DCLK控制整个配置的时序,配置器件EPCS1在DCLK的上升沿锁存来自ASDO的控制信息,并在下降沿通过DATA输出配置位流;而Cyclone 以相反的时钟沿来发出信息和接收配置位流。当Cyclone 接收完所有的配置信息,先使CONFDONE变高,并由此对本芯片的初始化。 初始化的时钟可由Quartus 软件默认的10 M 或选择由CLKUSR引脚引入的用户时钟,该时钟将决定初始化的时间。此后,INIT-DONE 从低到高的跳变表示初始化过程的结束,进入用户模式。当Cyclone 处于用户模式下需做重新配置时,可通过J1 接口使nCONFIG 为低, 此时Cyclone 将使nSTATUS 和CONF-DONE 变低, I/O 为三态,就可作重新配置。


图7  配置时序

下载线电路设计
Cyclone 系列器件的AS 下载模式必须用ALTERA 公司ByteBlasterⅡ下载线来实现,价格昂贵,其电路结构也未曾公布。 通过对下载过程与及相关时序的分析,设计了下载线电路,见图8。 经实践论证,具有良好的电路特性和数据下载的可靠性。

图8  ByteBlaster Ⅱ下载线电路测试与结论

测试与结论

最后对交互机的性能、指标作测试。 在交换机的上位输入端,用Agilent 33250A 80M任意波形发生器调配出如图2 的输入波形,并使交换机与终端构成15m 的有效距离,在终端处设计了与PC 机串行口通信的电路,配合PC 机的数据分析软件,对上万帧数据进行跟踪分析,数据格式正确,无误码;用相同方法对上传通道也作了定量的测试,取得了同样好的结果。 交换机的各项指标达到原设计要求,现已投入实际应用,具有高可靠性和高性价比。

相关推荐

没有退路的FPGA与晶圆代工业者

FPGA  晶圆代工  2014-01-03

采用FPGA的可编程电阻的设计结构分析

FPGA  电阻  2013-09-24

从FPGA的制程竞赛看英特尔与Fabless的后续变化

FPGA  Fabless  2013-07-16

工业以太网市场需求上长 交换机产业机不可失

以太网  交换机  2013-07-16

物联网融合自动化推动高效生产模式变革

物联网  FPGA  SoC  2013-07-09

14纳米FPGA展现突破性优势

14纳米  FPGA  2013-06-20
在线研讨会
焦点