程銳 張文軒 鐘詩航 馮廷亮 曾志強 雷丁揚
(北方工業大學電子信息工程學院,北京 100144)
數字式語音無線通信系統
程銳 張文軒 鐘詩航 馮廷亮 曾志強 雷丁揚
(北方工業大學電子信息工程學院,北京 100144)
本文使用nRF24L01無線收發模塊,設計了一套基于STC12LE5A60S2單片機的數字式語音無線通信系統。該系統分為發射系統和接收系統。系統電路共包括4部分:麥克放大電路部分、音頻放大電路部分、MCU控制部分和nRF24L01無線通信部分。本文介紹了基于STC12LE5A60S2的數字式語音無線通信系統的設計方案,詳細介紹了方案中所涉及的模數轉換方法和PWM數模轉換方法。最終,該系統成功地實現了語音信號在數字通信系統中進行半雙工通信。
無線通信 數字通信 半雙工 語音信號
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.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波。
本文使用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部,其中北京市精品教材一部。