孟卫刚,冯庆
(西安飞行学院,西安 710306)
以CH563为核心的以太网语音通信终端设计
孟卫刚,冯庆
(西安飞行学院,西安 710306)
介绍了以嵌入式处理器CH563为核心,采用VS1053对语音信号进行压缩/解压缩处理,通过以太网进行数据交换的设计方案。在系统硬件设计方面,主要介绍了CH563与VS1053的性能参数及两者接口电路设计。在软件设计方面,主要介绍了以太网协议程序设计以及VS1053的操作方法,并给出具体的操作程序。最后介绍了该方案的优势,给出其在相关应用领域的研究方向。
CH563;VS1053;以太网;语音通信
传统的采用音频矩阵进行语音通信时,由于采用的是模拟信号,因此长距离传输易被干扰且衰减严重,话音品质变差。随着通信技术和网络的快速发展,越来越多的用户采用IP网络进行语音通信,由于采用交换机进行数据交换,因此可灵活扩展且话音品质好。
目前实现网络语音通话的方案主要有两种:
① 基于计算机软件编程实现,缺点是设备笨重、不便于移动、操作繁琐且成本高。
② 基于语音解压缩芯片+处理器+以太网芯片硬件编程实现,由于这种方案采用的处理器未集成以太网收发器(PHY),因此需要外置的以太网收发芯片,导致电路体积大、不利于小型化,且需要单独开发网络协议部分,因此成本高、实现难度较大。
基于CH563的以太网语音通信终端采用内置以太网收发器(PHY)的新型嵌入式处理器CH563,通过对音频解压缩芯片VS1053数据进行收发、处理,实现终端的语音通信功能。方案框图如图1所示。
图1 语音通信终端原理框图
1.1主芯片简介
CH563 是南京沁恒股份有限公司推出的一款ARM9内核的32位RISC精简指令集CPU,指令集兼容ARMv5TE,支持16位Thumb指令和增强DSP指令。默认系统主频为100 MHz,最高可达130 MHz。高度集成的外设以及高性能,使其可以广泛地应用于各种嵌入式应用。
CH563的外设组件包含480 KB的Flash闪存、128 KB可动态分配的SRAM、28 KB的EEPROM、百兆以太网、高速/全速USB主机/从机接口、2个SPI接口、2个UART接口、3通道10位ADC、4个通用定时器、8位被动并行接口、8/16/32位Intel时序的总线接口、在系统编程ISP接口和多达74个通用I/O引脚。
VS1053是荷兰VLSI公司出品的一款高性能解码芯片。该芯片可以实现MP3/OGG/WMA/FLAC/WAV/AAC/MIDI等音频格式的解码,同时还可以支持ADPCM/OGG等格式的编码。其内部主要由一个高性能的DSP处理器内核、16 KB的指令RAM、0.5 KB的数据RAM、8个可用的通用I/O口和一个串口组成。此外,芯片内部还带有一个可变采样率的立体声ADC(支持咪头、左右双声道)、一个高性能立体声DAC及音频耳机放大器。
本设计方案主要用到了CH563的以太网收发器(PHY)、1个SPI接口资源。
1.2CH563与VS1053接口设计
CH563与VS1053之间是通过SPI接口进行数据交互的,具体接口电路如图2所示。
图2 CH563与VS1053接口电路
其中VS_RST为VS1053复位端,低电平触发;VS_DREQ为状态输出,高电平触发,表示允许写入控制指令或音频数据;VS_XDCS为VS1053数据接口(SPI)开关,高电平关闭数据接口,低电平打开数据接口;VS_SCLK为SPI接口时钟;VS_MOSI为SPI接口数据输入;VS_MISO为SPI接口数据输出。
2.1以太网协议
以太网协议是在CH563官方提供的库“CH563NET.LIB”基础上进行二次开发的。该动态库提供了 TCP/IP 子程序库,集成了 TCP、UDP、ICMP、ARP、RARP、ICMP、IGMP 等以太网协议栈,其可以同时支持 TCP、UDP和IPRAW三种模式,最大支持31个Socket及时通信。本设计采用UDP模式,这里给出以太网初始化及UDP Socket的创建程序。
UINT8 MACAddr[6] ={0x07,0x06,0x05,0x04,0x03,0x03};/*CH563 MAC*/
UINT8 IPAddr[4]= {192,168,1,23};
/*CH563 IP地址*/
UINT8 GWIPAddr[4]= {192,168,1,1};
/*CH563 网关*/
UINT8 IPMask[4]= {255,255,255,0};
/*CH563 子网掩码*/
struct _CH563_CFG cfg;
/*cfg为内存分配实例*/
CH563NETConfig = LIB_CFG_VALUE;
/*将配置信息传递给库变量*/
cfg.RxBufSize = RX_BUF_SIZE;
/*MAC接收缓冲区大小*/
cfg.TCPMss = CH563NET_TCP_MSS;
/*TCP MSS大小*/
cfg.HeapSize = CH563_MEM_HEAP_SIZE;
/*堆分配内存大小 */
cfg.ARPTableNum = CH563NET_NUM_ARP_TABLE;
/*ARP列表个数*/
cfg.MiscConfig0 = CH563NET_MISC_CONFIG0;
/*其他杂项配置*/
CH563NET_ConfigLIB(&cfg);
/*配置库*/
CH563NET_Init(ip,gwip,mask,macaddr);
/*初始化网络参数*/
CH563NET_DHCPStart(CH563NET_DHCPCallBack);
/*启动DHCP*/
CH563NET_CreatUdpSocket();
/*创建UDP socket并启动 */
其中CH563NET_DHCPStart(CH563NET_DHCPCallBack)用于支持DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),不需要时,可直接屏蔽。
2.2解压缩芯片VS1053操作程序
在对VS1053操作前,首先通过VS_1053Init ()方法对其进行初始化,主要完成SPI接口控制字配置。由于VS1053压缩与解压缩不能同时进行,因此芯片工作分两种模式。
(1) 解压缩模式
该模式用于对从网络接收到的压缩音频数据流进行解压缩处理,经内部D/A转换、功率放大后,还原出声音。这里给出解压缩模式配置程序:
VS_WR_Cmd(SPI_AICTRL0,48000);
/*设置采样率,设置为48 kHz */
Delay_us( 3000);
VS_WR_Cmd(SPI_AICTRL1,1024);
/*设置增益, 1024相当于1倍*/
Delay_us( 3000 );
VS_WR_Cmd(SPI_AICTRL2,0);
/*设置增益最大值,0代表最大值*/
Delay_us( 3000 );
VS_WR_Cmd(SPI_AICTRL3,2);
/*声道设置,2表示双声道*/
Delay_us( 3000 );
VS_WR_Cmd(SPI_CLOCKF,0XF800);
/*设置VS1053 时钟*/
Delay_us( 3000 );
VS_WR_Cmd(SPI_MODE,0x1804);
/*MIC,录音激活*/
Config_1063_Duplex_Mode();/*配置解码数据头,只有与配置相同格式的压缩数据流才能正确解码*/
(2) 压缩模式
该模式对输入的Mic或音频模拟信号,经内部低噪声放大、A/D转换采集后,进行压缩处理,从而形成压缩过的音频数据流。这里给出压缩模式配置程序如下:
VS_WR_Cmd(SPI_CLOCKF, 0XF800);
/*设置VS1053时钟*/
Delay_us( 3000 );
VS_WR_Cmd(SPI_AUDATA, 48000);
/*解码率48 kbps*/
Delay_us( 3000 );
VS_WR_Cmd(SPI_VOL, 0);
/*VS1053音量设置,0表示最大*/
Delay_us( 3000 );
VS_WR_Cmd( SPI_MODE,0x080c);
/*进入VS1053的播放模式*/
Delay_us( 3000 );
Config_1063_Duplex_Mode();/*配置解码数据头,只有与配置相同格式的压缩数据流才能正确解码 */
while(DREQ == 0);/*等待DREQ为高,表示能够接受音乐数据输入*/
其中Config_1063_Duplex_Mode()方法用于配置数据流的文件头格式,包括数据流文件格式、长度、模式等信息,因此必须保持配置格式一致,双方才能正常进行语音通信。如果配置不一致,则解压缩会出错,从而导致噪音或者静音出现。
上述两种模式可通过收、发转换按键进行相互转换。
通过与模拟语音通信比较,本设计方案主要具有以下优势:
① 不易受干扰、衰减小、话音品质高。② 能在现有以太网基础上直接应用,减少了布线环节,节约成本,便于维护。③ 硬件采用CH563处理器,内部集成以太网收发器,降低了电路体积和复杂性,易于小型化。④ 软件上基于静态库开发,降低了开发难度,缩短开发周期,节约人力成本。
该设计方案已产品化,成功应用于楼宇语音通信系统,图3为该语音终端内部电路板。
图3 语音终端内部电路板
参考方案可对嵌入式Web、全双工语音通信及TCP协议方面的应用做进一步研究。
[1] 江苏沁恒股份有限公司.CH563中文手册V1.02[EB/0L].(2014-07)[2016-03].http://wch.cn.
[2] VLSI.VS1053b Datasheet Version 0.5[EB/OL].(2014-07)[2016-03].http://www.vlsi.fi.
[3] G.赫尔德.以太网 [M].3版.戴志涛,郑岩译.北京:人民邮电出版社,1999:275-314.
[4] ALIENTEK.ATK-VS1053 MP3模块用户手册V1.00[EB/OL]. (2014-07)[2016-03].http://wenku.baidu.com.
孟卫刚(助理工程师),主要从事模拟器硬件电路设计、通信设备研发工作。
Design of Voice Communication Terminal Based on CH563 Ethernet
Meng Weigang,Feng Qing
(Xi'an Flight Academy,Xi'an 710306,China)
In this paper,the design scheme of data exchange through the ethernet is introduced.The CH563 is used as the core of the embedded processor,the VS1053 is used to compress and extract the speechsignal.In the hardware design,the performance parameters of CH563 and VS1053 and the design of the interface circuits are introduced.the design of ethernet protocol and the operation method of VS1053 are introduced.Finally,the advantages of the proposed scheme are introduced,and the research direction of the proposed scheme is given.
CH563;VS1053;ethernet;voice communication
TN913.24
A
(责任编辑:杨迪娜2016-03-10)