基于SOPC在FPGA平台的时标嵌入式语音信号录取系统的设计

描述

语音通信电台是当今军事指挥、工业调度和日常生产活动中主要的沟通设备,其通信质量与抗干扰能力将对国防和经济建设产生直接影响。语音电台抗干扰客观评估系统(以下简称评估系统)通过数字信号处理算法比较在发送电台端录取的标准语音文件与在接收电台端录取的失真语音文件之间的信号特征,给出语音电台的抗干扰性能参数。由于语音信号是按照每 20 ms 一个语片进行处理,故对语音信号的对准提出了较高的要求,为了达到较高的评估精度,对准误差应小于 1 ms。


为了满足上述技术指标,本文采用当前刚刚兴起的 SOPC(System On a Programmable Chip)技术在 FPGA(Field Programmable Gate Arr ay)平台上设计了一种带有时标的嵌入式语音信号录取系统。本系统通过捕获 GPS(Global Positioning System)系统的授时信息和秒脉冲信号,触发 SOPC 系统中 NiosⅡ嵌入式软核处理器进入外部中断,调用中断处理函数启动音频 Codec 芯片 WM8731,对 Line-in 通道输入的模拟语音信号进行 48 KSPS 采样率、16 b 采样精度的录取,将触发录取的时间信号作为时标与录取得到的数据按照特定数据格式进行打包和封装,并利用 FAT 文件系统将封装好的数据存储到 SD 卡(Secure Digital Card)中。由于 GPS 秒脉冲前沿可以达到微秒级精度,加之 WM8731 控制接口采用 Verilog 语言编写,从而保证了绝对时间误差远远小于 1 ms 的技术要求。

1、 系统组成

SOPC 是基于可编程逻辑器件的可重构片上系统(SOC),它集成了硬核或软核 CPU、DSP、锁相环、存储器、I/O 接口及可编程逻辑,由于具有设计灵活、研制周期短、开发成本低等优点,已经逐步应用在通信、工控、信号处理等诸多领域。

为了给评估系统提供高精度、带有时标的语音数据源,本文采用 SOPC 技术在 FPGA 平台设计了一套带有时标的嵌入式语音信号录取系统(以下简称录取系统)。录取系统由片上系统和外围系统两部分组成。片上系统包括:NiosⅡ嵌入式软核处理器、GPS 控制器、SD 卡控制器、SDRAM 控制器、Audio 控制器、Ethernet 控制器、GPIO 控制器以及内部 Avalon 总线;外围系统包括:GPS 接收机 M12MT、SD 存储卡、SDRAM 存储芯片、Audio Codec 芯片 WM8731、Ethernet 物理层芯片 DM9000A 和传输变压器以及按键和 LED 等输入与显示器件等。

2、 硬件结构设计

在 FPGA 平台上设计 SOPC 系统为本文的核心工作。FPGA 芯片选择 Altera 公司 CycloneⅡ系列的 EP2C35F672C6N,其具有 33 216 个逻辑宏单元、105 个 M4K 存储单元、4 个锁相环以及 475 个通用 I/O 口。FPGA 开发环境采用 QuartusⅡ,嵌入式系统开发环境采用 SOPC Buildero 由于 Nios Ⅱ嵌人式软核 CPU、SDRAM 控制器、Ethernet 控制器和 GPIO 控制器都是 SOPC Builder 中集成的通用 IP 核,直接调用即可,故本文不做详细介绍,下面对 GPS 控制器、Audio 控制器和 SD 卡控制器进行详细介绍。

2.1 GPS 授时系统的设计

本设计中所使用 M12MT 是一款 5 V 供电、RS 232 电平 NAEA 0183 格式串行输出、TTL 电平秒脉冲(PPS)输出型 GPS 模块,由于 FPGA 芯片 I/O 口是 3.3 V 电平,故需要进行电平转换,串口电平转换采用美信(Maxim)公司生产的 MAX3232 芯片,秒脉冲信号由 TI 公司生产 SN74AHC1G04 单缓反向器芯片生成。

由于 SOPC Builder 中的 UART 核通信协议可以与 GPS 串口输出协议兼容,故本设计中经过电平转换的信号与片内 UART 核相连,其参数设为:波特率为 9 600b/s、1 个起始位,1 个停止位,无校验位。秒脉冲经电平转换后与 PIO 控制器相连,其参数设为输入模式、带有中断功能、边沿触发中断、下降沿触发中断。

2.2 音频采集系统的设计

为了达到较高的录音品质,本设计中选用 Wolfson 公司生产的音频 Codec 芯片 WM8731,其最高可支持 96 KSPS 采样率、24 b 采样精度的立体声输入/输出。考虑到语音电台抗干扰评估系统的特殊要求和存储空间、处理速度等条件的限制,本设计中通过软件设置,使 WM8731 工作在 48 KSPS 采样率、16 b 采样精度、单声道的工作模式下。

WM8731 的控制接口和音频数据接口分别采用 I2C 总线和 I2S 总线,由于控制总线数据量较少,加之 I2C 总线时序比较简单,故采用程序控制 PIO 模拟 I2C 总线的方式对其进行控制;由于数据总线数据量较大,并且必须保证数据的完整性,本设计采用 Verilog 硬件描述语言编写了一个 Audio 控制器,完成采样控制、数据缓存以及与 Avalon 总线接口等功能。

Audio 控制器由有限状态机(FSM)、数据缓存器(FIFO)和总线接口三部分组成。FSM 完成 WM8731 数据读写的控制、FIFO 读写与存储状态控制以及总线接口控制。FIFO 用来缓冲 WM8731 采集得到的数据,防止数据丢失,并使系统工作在异步模式,大大提高了 CPU 的工作效率。总线接口作为桥梁,用以连接 NiosⅡ和 FIFO。

2.3 数据存储系统的设计

为了实现大容量数据存储,本采集系统选用当下比较流行 SD 卡作为存储介质。由于 SD 卡采用的是串行读写方式,时序较为复杂,且其数据量较大,故采用 Verilog 编写了 SD 控制器。Avalon Interface FSM 与 Avalon 总线相连接,用来完成控制器与 NiosⅡ处理器通信;SD Card Interface 与 SD 卡相连,完成数据的串/并转换和时序控制。

3、 软件程序设计

本采集系统软件在 Nios EDS 环境下进行开发,由于程序中只有一个线程,结构比较简单,故并未采用操作系统。主程序在完成各个模块初始化后进入等待状态,GPS 的串口数据、PPS 触发信号和按键触发信号采用中断形式,利用中断服务子函数完成各项功能。

3.1 时间信息的解析

由于 GPS 接收机 M12MT 具有多种数据输出格式,其中时间格式默认为为格林威治标准时间,故为了保证数据解析的正确性,在系统启动后首先对 GPS 接收机进行初始化,使其时区设定为 GMT+8,每秒钟串口输出一组数据,格式采用@@Eq 形式。

由于 UART 控制器每收到 1 个字节即产生一个中断,故 NiosⅡ处理器首先需要对接收到的数据进行缓存,当收到 5 个字节后判断是否是报头,如果是报头就继续接收,否则计数器清零并重新进行缓冲。在报头解析正确后,处理器将所有报文依次接收并存储到缓冲区中,缓冲区中的前 18 位即是时间数据,其格式为 mm,dd,yy,hh,mm,ss。

需要特别说明的有两点:第一,由于每一秒的 PPS 信号早于串口数据的输出,故处理器需要对接收到的时间加 1 s,而后利用下一个 PPS 信号进行触发;第二,GPS 接收机在锁定 3 颗以上卫星时时间数据才具有可靠性,故需要判断报文中的 fix 标志位,如果 fix 位是 1,这表明卫星已锁定,时间信息可靠,PPS 信号可以作为触发信号。

3.2 采集数据的封装

Audio 控制器输出的数据是按照采样时刻先后顺序生成的一系列二进制数值点,为了加入起始时刻的时间标志,同时便于评估系统进行后续处理,本录取系统对采样起始时刻和采样数据进行封装。首先将采样数据封装成 WAV 文件格式,加入相应的格式标志、采样率、采样精度、声道数、数据长度等信息,然后再在 WAV 文件的前面加入二进制的时间信息形成 DAT 格式文件。评估系统通过 DAT 文件中的时间信息和 WAV 文件中的采样率等信息即可计算出每个采样点的绝对时间。

3.3 文件系统的引用

为了提高 SD 卡存储的兼容性,便于通用计算机对 SD 卡的写入和读取,本录取系统利用 FAT 文件系统对 SD 卡进行读写操作。由于处理器中没有使用操作系统,故需要自己移植文件系统和编写底层驱动函数。

本录取系统中的文件系统采用层次结构设计,共分为 3 层,即硬件描述层(HAL)、功能层和应用层。硬件描述层完成 SD 卡检测、控制命令的写入、数据的读写等功能;功能层完成块数据的读写、查找、替换等功能;应用层完成格式化、文件建立与删除、文件写入与读出等功能。主函数调用应用层的功能函数即可完成对 SD 卡的文件操作。

4 、结论

本文介绍了一种利用 SOPC 技术在 FPGA 平台上实现带有时标的嵌入式语言信号录取系统,不但论述了录取系统的结构组成与工作原理,而且对 GPS 控制器、Audio 控制器、SD 卡控制器等硬件设计和 GPS 时间解析、采集数据的封装、文件系统的引用等软件编写进行了详细的介绍。经实际使用验证,本录取系统能够在 GPS 时间触发下完成语音信号的录取,录取得到的数据带有时标信息,能够满足语音电台抗干扰客观评估系统的技术要求。

审核编辑 黄昊宇

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分