新闻  |   论坛  |   博客  |   在线研讨会
自动语音记录系统(AVRS)的SOPC设计与实现
yanqin | 2009-06-24 18:27:09    阅读:962   发布文章

 

摘  要:本文基于Altera公司的高性能Stratix器件,利用SOPC Builder、DSP Builder、Matlab和Simulink等软件设计实现了一种新型的自动语音记录系统(AVRS),实现了对多路电话的通话进行同期监控录音,可广泛应用于需要经常性语音记录的部门。
关键词:自动语音记录系统;SOPC;Nios;Stratix

1  引言
    目前各行业对电话进行通话录音变得越来越普遍,如政府机构出于国家安全的原因需要在线录音监控;安全部门对一些重点监控对象的往来通信需要录音和实时监听;责任重大的政府部门及重要生产部门对有些重要指令需录音;金融银行或证券机构及与大宗金钱有关的交易需要录音;而一些商务、服务领域则把录音资料作为语音记录和提高服务质量的一种手段。目前,各行业使用的电话语音记录设备主要包括磁带式电话语音记录设备、基于PC机的电话语音记录设备和基于FLASH芯片的电话语音记录设备。这些电话语音记录设备由于体积过大或记录时间较短等缺点在实际应用时满足不了某些用户的特殊需求,因此亟需一种超大存储容量、性能可靠和体积小巧的语音记录设备。

    针对这种现状,我们研制了一种新型的自动语音记录系统(AVRS),它可对多路电话的通话进行同期监控录音,将通话内容转换为数字信息,以语音文件形式存储于硬盘上,并可通过电话检索方式进行查询,查询到的语音文件可通过电话直接播出。本系统采用FPGA及大容量的笔记本硬盘,集成度高、存储信息大,信息可长期保存于硬盘中,文档管理方便、保密性强。

2  系统结构和功能

    自动语音记录系统(AVRS)的应用结构图如图1所示,它通常由PSTN、交换机、自动语音记录系统、计算机和电话机构成。本文所设计的自动语音记录系统(AVRS)具有如下功能:
    (1)提供了高密度的解决方案,以分机并线方式可进行多达4路到64路的通话录音,支持ADPCM、G.711、G.729压缩格式,可兼容世界主流交换机。
    (2)可以提供多通道通话全程实时录音;提供多种录音启动方式,如摘机控制、连接通话控制或声音控制等;操作人员可在任何时间启动监听功能;实时监听对通话双方及通话质量没有任何影响。
    (3)对于呼叫信息的记录可以实现在录制通话语音文件的同时同步记录呼叫信息,提供完整的呼叫信息记录,包括主叫号码、被叫号码、呼叫方向、通话时间和通话时长等。
    (4)可以实现远程监控管理的功能,通过预留的电话远程拨入,在语音引导下可实时监视所有通道的运行状态;可以按多种查询条件(按通道、日期时间、主叫号码、被叫号码等)查询或删除录音记录;可以实现80,000多个通道小时的在线存储量,录音记录除可存储在自动语音记录系统(AVRS)中的硬盘上,还可通过设备上的USB口传输到计算机中。

3  硬件设计
    自动语音记录系统由Stratix EP1S125、Nios软核处理器、SDRAM、IDE接口笔记本硬盘、PCM编解码电路、配置器件MAX7128S、LCD显示模块、键盘、时钟电路、USB接口电路、电话线接口电路和电源等组成,电路原理框图如图2所示。

3.1  Stratix FPGA
    现代大容量、高速度的FPGA一般都内嵌有可配置的高速RAM、PLL、LVDS以及硬件乘法累加器等DSP模块,用FPGA来实现数字信号处理可以很好地解决并行性和速度问题,而且其灵活的可配置特性,使得FPGA构成的DSP系统非常易于修改、易于测试及硬件升级。

    Altera公司于2002年推出了新一代Stratix FPGA,它采用0.13微米和铜工艺制造,1.5V核心电压,Stratix器件的DSP模块提供了高于DSP处理器的数据处理能力,并且更为灵活和经济。每一Stratix DSP模块可提供多达8个运行在250MHz的并行乘法器,数据吞吐能力高达2GMACS。最大的Stratix器件EP1S125包括28个DSP模块,可完成高达224个并行乘法操作,并提供56GMACS的总线数据吞吐能力,而传统的DSP处理器最多仅可同时进行8个并行乘法操作,数据吞吐量也只有8.8GMACS。除了DSP模块中的专用乘法器以外,还可利用逻辑单元(LE)实现乘法器和DSP功能。例如,可在Stratix器件中利用大约9600个逻辑单元实现一个256阶FIR滤波器。Stratix系列的EP1S120包括大约114,140个逻辑单元,可以容纳11个这样的滤波器。每一滤波器可运行在200MHz,这意味着通过利用LE可提供563GMACS的器件总吞吐能力。结合DSP模块提供的56GMACS数据吞吐能力,Stratix器件可提供高达620GMACS的数据总吞吐能力,因此Stratix器件适用于大数据量数字信号处理[1]。

    本系统的设计中采用了Stratix EP1S125,利用它可完成对多通道通话全程实时监测、录音和存储等功能。

3.2  Nios软核处理器
    Nios软核处理器是一种流水线技术、单指令流的32位RISC内嵌处理器,其性能超过200 DMIPS。它针对Altera的可编程逻辑器件和片上可编程系统的设计思想做了相应优化。作为一种可配置的通用RISC处理器,它可以与用户自定义逻辑结合构成SOC系统,并下载到Altera的可编程器件中去。32位Nios软核处理器结合外部闪存以及大容量存储器,可构成一个功能强大的32位嵌入式处理器系统,其大部分指令可以在一个时钟周期内完成。Nios软核处理器家族包括32位和16位两种版本的体系结构。

3.3  PCM编解码电路
    本系统设计中的PCM编解码电路采用了IDT821064编解码芯片,它提供了4个独立模拟音频通道,适合用于企业和运营商级的网络、无线网络、接入网络市场中的通信设备,具备完善的可编程性而无需外部组件,设计中根据所需要录音的通道数可以通过增加相应的IDT821064即可满足要求。IDT821064可进行阻抗匹配、音调生成、混合线圈平衡响应修正和增益设定,可依据系统结构选择适当的微处理器接口(MPI)或通用通信接口(GCI),它采用64脚的PQFP封装[2]。

    设计中Nios软核需要针对每个IDT821064提供GCI接口控制信号,考虑到控制指令一般只发送一两次,没有必要占用过多的资源,并且为了方便调试,选用了可以独立操作的PIO,通过软件对它们置位和复位来发送控制命令。

    图3是GCI接口时序图,DCL是数据时钟信号,FSC是帧同步信号,DD/DU是数据输出/输入信号。根据此时序图,我们可以编写相关HDL代码实现PCM串行数据的接收和发送。

3.4  IDE硬盘的控制
    IDE接口的硬盘驱动器提供了两种数据传输模式:PIO模式和DMA模式。由于PIO模式控制相对容易,提供了一种编程控制输入输出的快速传输方法。该模式采用了高速的数据块I/O,以扇区为单位,用中断请求方式与CPU进行批量数据交换。在扇区读写操作时,一次按16位长度通过内部的高速PIO数据寄存器实现传输。通常情况下,数据传输以扇区为单位,每传输一扇区数据产生一个中断。

    如果CPU要对硬盘进行写数据操作,首先CPU把必要的参数写入对应的地址寄存器,等待DRDY有效,然后将操作码写入命令寄存器,同时驱动器设置状态寄存器的DRQ位,表示准备好接收数据,CPU通过数据寄存器将数据写入扇区缓冲区,当扇区缓冲区填满后,驱动器清除DRQ位,并置位BSY。驱动器将扇区缓冲区中的数据写入磁盘,当写盘结束,清除BSY位,发中断请求信号INTRQ,CPU接收到中断信号后,读驱动器状态寄存器,同时将中断信号INTRQ清除。

    如果CPU要对硬盘进行读数据操作,首先将参数写入地址寄存器和特性寄存器(如果需要),然后把命令码写入命令寄存器,命令开始执行。这时驱动器置状态寄存器中的BSY=1,同时将硬盘上指定扇区内的数据送入扇区缓冲区。当扇区缓冲区准备好数据后,置位DRQ,清BSY,发中断请求信号INTRQ。CPU检测到中断后,读取状态寄存器,测试ERR位,若等于1则转入出错处理,否则若DRQ位为1,CPU从扇区缓冲区中读取数据,数据读完后,驱动器复位DRQ位,然后驱动器重新设置BSY位[3]。

4  软件设计
    软件设计包括配置生成SOPC系统、嵌入式操作系统的移植、语音压缩算法的设计、应用级代码编写及调试等部分。下面对其作简单介绍。

4.1  配置生成SOPC系统
    SOPC是SoC技术和可编程逻辑技术结合的产物,是一种特殊的嵌入式系统。首先它是SoC,即可以由单个芯片完成整个系统的主要逻辑功能;其次,它还是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备一定的系统可编程功能。SOPC 设计技术涵盖了嵌入式系统设计技术的全部内容,包括:以处理器和实时多任务操作系统(RTOS)为中心的软件设计技术、以PCB和信号分析为基础的高速电路设计技术、软硬件协同设计技术。

    本文所设计的自动语音记录系统(AVRS)是建立在以Stratix器件EP1S125基础上的SOPC,在QuartusII中我们利用SOPC Builder工具来配置生成片上系统。SOPC Builder是一个功能强大的基于图形界面的片上系统的定义和定制工具,可以在短时间内完成用户定制的SOPC设计。根据应用的需要,从SOPC Builder库中选择IP模块、存储器、外围接口和处理器,并且配置生成一个高集成度的嵌入式系统。

    在配置生成片上系统时,SOPC Builder会自动产生一些必需的仲裁逻辑来协调系统中各个部件的工作。我们首先将系统的工作频率设为50MHz,根据系统的硬件要求可以得到如图4所示的系统配置图,利用SOPC Builder编译生成包括C/C++语言头文件、外围接口驱动的诸多文件,极大地方便了后续应用软件的开发。

4.2  μC/OS-II操作系统移植
    μC/OS-II是一种源代码公开、结构小巧、具有可剥夺实时内核的实时操作系统。其内核提供任务调度与管理、时间管理、任务间同步与通信、内存管理和中断服务等功能。μC/OS-II适合于小型控制系统,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,加之它稳定、可靠,现已被广泛应用在航空、医疗器械、工业控制等领域[4]。

     μC/OS-II设计时就充分考虑到在不同平台上移值的需求,将同平台相关的部分局限在一个很小范围内,对于不同的平台只需对下面一些函数和宏进行重写。

    OS_ENTER_CRITICAL和OS_ENTER_CRITICAL:这是两个宏,用来进行临界段保护。在本设计中使用汇编代码关中断来实现。

OS_TASK_SW:这是一个用于进行任务切换的宏。本设计中利用CPU的软件中断方式
实现,也就是说调用此宏产生软件中断,然后由相应的中断处理程序来具体实现任务上下文保护和任务切换。
OSIntCtxSw:实现中断级任务切换,用纯汇编实现。
OSCtxSw:实现用户级上下文切换,用纯汇编实现。
OSTickISR:为系统定时器中断的处理函数,用纯汇编实现。
OSTaskStkInit:用来创建任务时,对任务堆栈进行初始化。

4.3  语音压缩算法的设计
    语音压缩算法的设计实现基于DSP Builder、Matlab和Simulink等工具。DSP Builder是Altera公司推出的一个面向DSP开发的系统级工具。它是作为Matlab的一个Simulink工具箱出现的。Matlab是功能强大的数学分析工具,广泛用于科学计算和工程计算,可以进行复杂的数字信号处理系统的建模、参数估计、性能分析。Simulink是Matlab的一个组成部分,用于图形化建模仿真。

    我们在设计中首先利用Matlab强大的系统设计、分析能力和DSP Builder提供的模块(或IP核)完成顶层系统设计及系统仿真测试,实现了ADPCM、G.729压缩算法,并验证了语音压缩算法的正确性,然后通过DSP Builder中的Signal Compiler将Simulink模型文件自动转换成VHDL的RTL表述和工具命令语言(TCL)脚本,再进行RTL级的功能仿真,并配合QuartusⅡ软件进行综合、适配与时序仿真。

4.4  应用级代码编写及调试
    在QuartusⅡ中进行VHDL代码的编写以实现对系统各部分的控制,最后进行RTL级的功能仿真,并进行综合、适配与时序仿真。在形成对指定FPGA进行编程配置的SOF文件之前可以将设定好的嵌入式逻辑分析仪Signal TapⅡ一同适配并下载到FPGA芯片中去,然后通过Matlab的Simulink窗口可观测到通过JTAG口来自于Signal TapⅡ测得的芯片中DSP硬件模块的实时工作波形,从而实现硬件仿真和调试。

5  结束语
    本文所设计的自动语音记录系统(AVRS)最突出的特点是采用FPGA和SOPC技术进行的设计相当快速。由于SOPC开发环境的完备功能,可以把注意力集中在系统整体构架和功能上来,而无需过多的考虑细节性的电路设计,同时还可以得到比较好的系统稳定性和可靠性。

    自动语音记录系统(AVRS)已经进行了初步的仿真试验,能够达到非常好的实用效果,可满足金融、保险、电力、

  


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客