用FPGA实现灵活的信号音播放系统
2018-02-25李建南
李建南
摘要 介绍一种数字程控交换机语音播放系统的实现方案。该方案利用FPGA实现一种灵活的语音播放电路,可适应可变长度、可变时隙的语音播放要求。
[关键词]数字程控交换机 时隙 FLASH FPGA
1 引言
信号音产生电路是数字程控交换机不可缺少的部件,在电话接续过程中起重要的作用。
信号音包括拨号音、忙音、回铃音、空号音和各种提示语音等。拨号音、忙音、回铃音、空号音的频率为450Hz,音调符合电信标准规定的要求。但是,提示语音的内容和时长并无规定要求,不同的应用场合有不同的要求,故需要设计一款灵活的信号音产生器,满足各种语音提示音要求。
2 信号音产生原理
信号音发生电路原理框图如图1。
存储器中存储32段PCM编码的数字信号音,每段数字音存储长度相等,分别存放接续信号音、提示音等,依次对应为O~31时隙信号音。
时隙计数器对位时钟( 2MHz)进行计数,产生时隙地址,作为存储器的段地址(高5位);帧计数器对帧同步信号(8KHz)进行计数,产生每段数字音的字节地址(低位地址)。
当时隙计数器计数到时隙n时,输出地址n,作为存储器的段地址,选中第n段数字音;帧计数器计数至k帧.输出地址k,作为存储器的数字音的字节地址。此时,存储器输出n时隙k字节的并行数据,送至并串转换电路,转换为串行PCM码流,经D/A解码器,将数字音转换为模拟信号音。
当帧计数器溢出时,即每段数字音播放完毕,数字音将重新开始播放,如此不斷循环。
3 改进的信号音播放系统
上面描述的信号音产生电路存在信号音时隙和长度不可改变的缺陷,应用范围受到限制,对于系统要求多种语音提示音且不等长的情况就无能为力了。
为适应信号音可变长度、可变时隙的应用情况,对播放系统进行改进。改进的信号音产生原理框图如图2所示。
存储器中存储若干段PCM编码的数字信号音,每段数字音存储长度可以不相等,分别存放接续信号音、语音提示音等。
增加2组双口RAM,一组为信号音地址,一组为信号音长度。每个时隙配置一个帧计数器,适应不同信号音不同长度的要求。
系统需要播放信号音时,CPU将需播放的信号音的起始地址和长度分别写入对应时隙的信号音地址寄存器和长度寄存器。
当时隙计数器计数到时隙n时,输出时隙n,作为地址存储器和长度存储器的地址,获取n时隙数字音的起始地址和长度。地址寄存器输出的值m作为信号音存储器的高位地址,指向第m块数字音的起始地址。n时隙时,第n个帧计数器输出帧计数值k,作为数字音存储器的字节地址(低位地址)。此时,数字音存储器输出第m段数字音的第k个字节。
当k值大于对应的长度值时,帧计数器n清零(其它时隙的帧计数器继续计数),数字音开始重复播放。
图3中FPGA采用XC6SLX9,共有9125个Logic Cell, 576Kb Block RAM Blocks, 200User I/O。
CPU接口、数字音产生器、时隙插入器时钟发生器由FPGA实现。FLASH存储器中烧录了若干段信号音、语音提示音,片选、地址信号由FPGA控制,数据输入至FPGA,转换为PCM串行数据。
来自交换网的话音信号输入FPGA,通过软件控制话音、信号音选择器输出信号音,实现插入提示音的功能。当然,也可以将信号音送至交换网,通过交换网实现播放信号音。
4 结语
基于FPGA的信号音播放系统,可以在不改变硬件电路的情况下,实现不限长度、不限数量的数字音播放,具有灵活应用能力。同时,信号音的时隙可通过软件设定,可方便插入指定时隙,能有效减少交换网的规模,降低硬件成本。
参考文献
[1]叶敏编著.程控数字交换与交换网(第二版)[M].北京邮电大学出版社,2003.
[2]侯伯亨,顾新编著.VHDL硬件描述语言与数字逻辑电路设计[M].西安电子科技大学出版社,1999.