数字式语音无线通信系统
2016-11-19程锐张文轩钟诗航冯廷亮曾志强雷丁扬
程锐 张文轩 钟诗航 冯廷亮 曾志强 雷丁扬
(北方工业大学电子信息工程学院,北京 100144)
数字式语音无线通信系统
程锐 张文轩 钟诗航 冯廷亮 曾志强 雷丁扬
(北方工业大学电子信息工程学院,北京 100144)
本文使用nRF24L01无线收发模块,设计了一套基于STC12LE5A60S2单片机的数字式语音无线通信系统。该系统分为发射系统和接收系统。系统电路共包括4部分:麦克放大电路部分、音频放大电路部分、MCU控制部分和nRF24L01无线通信部分。本文介绍了基于STC12LE5A60S2的数字式语音无线通信系统的设计方案,详细介绍了方案中所涉及的模数转换方法和PWM数模转换方法。最终,该系统成功地实现了语音信号在数字通信系统中进行半双工通信。
无线通信 数字通信 半双工 语音信号
1 无线语音发射子系统
1.1 子系统方案设计
无线语音发射系统的原理图如图1所示。语音信号经拾音器采集经放大、滤波送入AD,AD采集信号使用STC12LE5A60S2内部集成AD模块,MCU对AD和无线发射模块进行配置,最后,无线发射模块将语音信号发射到无线信道。
1.2 硬件部分设计
拾音器使用压控麦克,信号经麦克采集后再经9014三极管放大电路放大。为了获得较为清晰的语音,保证高频谐波或者低频杂波能够被滤除掉。带通滤波器通频带设定为人类语音信号带宽300Hz—3.4kHz。带通信号经9014放大电路放大后传给单片机内部AD模块。
MIC放大电路见图2所示,MCU控制部分如图3所示,nRF24L01模块电路如图4所示。
1.3 软件部分设计
MCU对内部AD进行配置,并控制nRF24L01模块进行数据发送。
部分程序参看如下:
#include <stc12c5a60s2.h>
#include <intrins.h>
#include "ad.h"
#include "nrf24l01p.h"
#include "pwm.h"
main()
{
init_nrf24l01_io();//初始化nRF14L01
transmit_mode_init();//配置发送模式
Init_ADC();//初始化ADC
while(1)
{
if(send_flag==1)
{
send_data(txData);//发送ADC采集到的数据send_flag=0;//清除标志位
}
}
}
MCU首先对nRF24L01进行初始化设置,写发送端与接收端地址,设置通信通道,设置自动重发时间和次数,设置数据长度等,配置nRF24L01为发送模式;初始化MCU片内ADC,设置采样频率为8KHz。全部初始化完成之后,进入循环发送模式,等待ADC采集数据,采集完成之后将数据传给nRF24L01发送出去。
2 无线语音接收子系统
2.1 子系统设计方案
无线语音接收子系统框图如图5所示。无线接收模块接收到信号后,将信号送入单片机,单片机将数字语音信号输出PWM波,PWM波经过低通滤波器滤波后转换成模拟语音信号,模拟语音信号经过LM386音频放大模块放大后输入到扬声器,扬声器将电信号转换成声音信号。
②非线性层:我们在输入层与LSTM隐藏层中间加入了非线性激活层,目的是引入更多的非线性特征,从而更好的反映数据的变化规律。该层的输出可表示为:
2.2 硬件部分设计
单片机输出为PWM波,PWM波滤波输出实现D/A转换,音频放大器用LM386芯片,最后输出给扬声器,将电信号转换为声音信号。电路图如图6所示。
2.3 软件部分设计
MCU将数字信号以PWM波的形式发出给后续电路处理。部分程序参看如下:
#include <stc12c5a60s2.h>
#include <intrins.h>
#include "ad.h"
#include "nrf24l01p.h"
main()
{
init_nrf24l01_io();//初始化nRF14L01
receive_mode_init();//配置接收模式
PWM_Init();//初始化PWM波发生器
while(1)
{
if(recieve_flag==1)
{
recieve_data(rxData);//接收数据给PWM波发生器
recieve_flag=0;//清除标志位
}
}
}
//pwm.h中PWM_Init()部分
void PWM_Init(void)
{
P1M1 &=0xF7;
P1M0 |=0x08;
CMOD=0x02;
AUXR |=0x80;
TMOD &=0xF0;
TMOD |=0x02;
TL0=0xf5;
TH0=0xf5;
TR0=1;
CL=0x00;
CH=0x00;
PCA_PWM0=0x00;
PCA_PWM1=0x00;
CCAP0L=0xFE;
CCAP0H=0xFE;
CCAPM0=0x42;
CR=1;
}
程序首先对nRF24L01进行初始化,初始化的各项参数同发送部分,配置接收端的nRF24L01为接收模式,使两个nRF24L01可以配对使用。之后对MCU片内的PWM产生模块进行初始化,使其可以根据输入的数据输出频率和占空比可变的PWM波。最后进入循环等待接收模式,当检测到数据到来时,接收数据并将数据传送给PWM波产生模块,输出PWM波。
3 结语
本文使用nRF24L01无线收发模块完成了半双工模式的数字式语音无线通信系统,并成功实现了数字对讲功能,通话清晰,传达语音信息可成功辨别且低噪声,通信距离空旷条件下可达到100m。该设计最终可用外部电池供电方便携带,可手持通信。
[1]周 炯槃 ,庞沁华,续大我,吴伟陵,杨鸿文.通信原理[M].北京邮电大学出版社,2008,8.
[2]李亚彬.基于无线控制与无线传输的数据采集系统[D].南京∶南京理工大学,2007,6.
[3]童诗白,华成英.模拟电子技术基础[M].高等教育出版社,2009,7.
[4]阎石.数字电子技术基础[M].高等教育出版社,2009,12.
[5]徐岩.语音信号增强技术及其应用[M].科学出版社,2013,2.
[6]黄志伟.印制电路板(PCB)设计技术与实践[M].电子工业出版社,2012.1.
2016年北京市大学生科学研究与创业行动计划课题。
指导教师:王振红,北方工业大学,高级实验师,指导学生获北京市大学生电子设计竞赛奖50项,指导学生获全国大学生电子设计竞赛市级奖25项,指导学生获“蓝桥杯”电子设计竞赛奖80项,指导学生获“挑战杯”市级奖11项,指导学生获全国“挑战杯”奖2项,指导学生获全国“蓝桥杯”奖9项。荣获北京市大学生电子设计竞赛优秀辅导教师奖。获全国电子专业人才设计与技能大赛决赛电子设计与制作优秀指导教师奖。在实验教学改革中出版实践教材12部,其中北京市精品教材一部。