USB接口单片机的VoIP终端设计
2014-09-06杨进
杨 进
(1.南京铁道职业技术学院 通号学院,南京210035;2.江苏省轨道交通控制工程中心)
USB接口单片机的VoIP终端设计
杨 进1,2
(1.南京铁道职业技术学院 通号学院,南京210035;2.江苏省轨道交通控制工程中心)
介绍了一种以单片机SONIX2202、D类功放AX2012和语音芯片NY3P010AS8为核心设计的网络电话机,该装置通过USB接口连接到计算机上,可拨打国际国内长途电话及手机,系统还带有语音拨号等功能。本文对该装置的工作原理、硬件配置、软件设计及功能进行了详细论述,经样机实验证明,其各项功能均可很好地实现。
SONIX2202;AX2012;网络电话
引 言
自1999年网络电话试验网开通以来,随着软交换技术的发展,网络电话的通话质量有了明显改善[1]。由于网络电话采用数据压缩与分组交换方式传递语音信息,占用带宽仅有传统电话的1/5,因此有非常明显的价格优势,越来越多的用户在使用IP电话[2-4]。参考文献3对Voce Over Internen Protocol 电话终端进行了研究与探讨,参考文献[4]~[7]对SIP协议的VoIP系统进行详细论述。但普遍存在的问题是这些系统硬件设计都比较复杂。本文所设计的VoIP终端电路结构简单、价格低廉、性能稳定可靠。下面主要从硬件和软件方面阐述该终端的设计及实现过程。
1 硬件设计
1.1 硬件系统总体结构
本系统由USB矩阵键盘、单片机、语音电路、D类功放音频接口电路4个部分组成。单片机完成矩阵键盘按键识别,并负责通过单片机自带的USB接口发送数字代码给PC机上的USB主机;语音电路完成按键语音播报功能;音频接口电路主要是用D类功放电路对音频线语音信号进行放大,完成挂机时语音外放功能,并对摘机和挂机两种状态的语音进行分流。系统框图如图1所示。
图1 无线通信单元系统框图
整个系统由USB接口提供5 V电源。
1.2 USB矩阵键盘电路设计
矩阵键盘采用非编码式行列键盘,电路原理图如图2所示。电路结构简单,在按键去抖动方面,未采用专用键盘芯片或门电路作硬件处理,也没有采用延时查询方式去抖动,而是采用实时操作系统的任务调度设计方法,用定时扫描和计数去抖的键盘处理方法。按键有数字0~9、回车键、开始拨号键、删除键。
经过软件处理好的按键代码通过USB接口发送给计算机USB主机。SONIX2202是一款带USB1.1内核的高性能廉价、低功耗单片机。USB高速方式的传输速率为12 Mbps,低速方式的传输速率为1.5 Mbps,完全可以满足发送键盘码的要求。
图2 矩阵键盘电路原理图
图4 D类功放音频接口电路原理图
1.3 语音电路设计
系统核心芯片选用台湾Nyquest公司单晶片CMOS语音合成芯片NY3P010AS8,可通过专用工具将数字0~9、回车键、开始拨号键、删除键以及其他需要录制的中文语音依次烧写到该OPT芯片中,然后通过单片机编程,读取各个地址的声音文件。外围电路仅需一个电容和一个喇叭即可工作。电路原理图如图3所示。
图3 语音单元电路原理图
BUSY引脚在芯片工作时(播放声音),输出低电平,停止工作或者待机时保持高电平;DATA引脚是接收控制脉冲的脚位,收到几个脉冲,就播第几个地址的语音内容;RESET引脚在任何时候,只要收到一个脉冲,就可以使芯片的播放指针归零,同时停止芯片工作,进入待机状态。
1.4 D类功放音频接口电路设计
为了实现挂机时语音的外放功能,本设计采用D类功放芯片AX2012作为音频的放大芯片,并用一个叉簧开关转换摘机和各个挂机的语音分流。电路原理图如图4所示。AX2012是一款国产低功耗立体声无滤波器类D类音频放大器,有QFN20和SOP16两种封装形式。该芯片的工作仅需很少的外部元件,可以选择的增益为6、12、18、24dB,可利用G0和G1进行增益选择,同时该芯片具有较高的抑制噪声的性能。
2 软件设计
2.1 新型非编码式矩阵键盘软件设计
传统的非编码式键盘软件系统设计中,由于软件延迟去抖法存在两大缺点:程序浪费大量时间而不能执行其他任务,系统的实时性不好;在噪声影响下,很可能刚好两次检测都为抖动信号,造成键码误判。因此本设计采用新的算法[8],整个软件系统主要分为按键扫描子程序、去抖动子程序和计算键码值三个部分。
按键扫描子程序负责将外部按键信息读入到内部缓冲器中。下面以0~9数字键为例,在RAM中创建一个按键信息缓冲区,将每个键的状态读入缓冲器中,如表1所列。
表1 键码缓冲区
去抖动子程序设计为逐行扫描,且每调用一次子程序只扫描一行,其流程图如图5所示。
图5 按键扫描子程序流程图
新的消抖程序设计思想是:当第一次检测到有按键按下时,程序首先设有键按下的标志位,并打开计时器开始计时,然后转去执行其他任务。之后,每运行到键盘操作,程序都会检测对应键的状态,当计时时间到时,键盘消抖处理程序已经执行了n次,进行了n次按键状态的检测。只有当n次检测键的状态都没有发生变化时,消抖处理结束,确认本次是一次有效的按键,只要有一次检测到对应的键的状态发生变化,就认为此键操作无效。
计算键码值程序部分是将键盘上对应位置按键代码转换为人为定义的数据或者符号。
2.2 语音软件设计
语音程序部分是通过语音的方式播报出所按下的按键数字或者符号。
该语音芯片的控制方式是采用模拟串行控制方式,如需要播放第几个地址的内容就发送几个脉冲。脉冲时间大于0.2 ms即可,一般可采用1 ms左右。部分源代码如下:
Void yuyin(x){
//播放地址x段的语音
RST=1; //发送给RST一个2 ms脉冲
Delay_ms(2);
RST=0;
Delay_ms(2);
While(x>0){
DATA=1; //发送一个1ms选择脉冲
Delay_ms(1);
DATA=0;
Delay_ms(1);
x--; //没有发送完,则继续发脉冲
}
}
结 语
[1] 王刚.基于中国互联网的P2P-VoIP系统网络域若干关键技术研究[D].北京邮电大学,2012:3-10.
[2] 魏德哲,李清宝等.基于VoIP处理器与USB接口的IP电话设计[J].微计算机信息,2005,21(9):83-84.
[3] 李迎新,林浒等. USB VoIP终端的设计与实现[J]. 小型微型计算机系统,2006,27(3):542-546.
[4] 张振华.基于SIP协议的VoIP网络电话终端的研究与实现,北京交通大学,2009,6:1-8.
[5] 胡亨卓.基于SIP的IP电话系统的设计与实现[D].华中科技大学.2009.11:30-45.
[6] 徐韬.基于Android终端的小型VoIP系统设计与实现[D]. 单片机与嵌入式系统应用,2011.12:54-55.
[7] 徐志洋.基于SIP协议的嵌入式VoIP系统的设计与实现[D].合肥工业大学,2012,20:14-22.
[8] 徐彩霞.新型非编码式键盘扫描方法研究[J].苏州:苏州市职业大学学报,2010.21(1):26-28.
杨进(硕士),从事铁道信号、远程信息控制方向的教学与研究工作。
(责任编辑:杨迪娜 收修改稿日期:2013-07-25)
参考文献
[1] 张起贵,张胜,张刚,等.最新DSP技术——“达芬奇”系统、框架和组件[M].北京:国防工业出版社,2009.
[2] Texas Instruments Incorporated.TMS320DM6446 Digital Media System-on-Chip, SPRS283E,2007.
[3] 郑灵翔.嵌入式系统设计与应用开发[M].北京:北京航空航天大学出版社,2006.
[4] 潘巨龙,黄宁.ARM9嵌入式Linux系统构建与应用[M].北京:北京航空航天大学出版社,2006.
[5] 吴才章.基于ARM的图像采集与显示系统设计[J].自动化技术与应用,2010,29(3):118-122.
[6] 郭剑,赵建.嵌入式Linux的图像采集与显示[J].现代电子技术,2006(7):129-131.
[7] 赵勇,袁誉乐,丁锐.DAVINCI技术原理与应用指南[M].南京:东南大学出版社,2008.
祝夏雨(硕士研究生),主要研究方向为嵌入式系统开发、摄像机标定。
(责任编辑:高珍 收修改稿日期:2013-08-12)
VoIP Terminal Based on USB Interface Microcontroller
Yang Jin1,2
(1.Department of Signal & Communication, Nanjing Institute of Railway Technology, Nanjing 210035, China; 2. Railway Control Engineering Center of Jiangsu Province)
The VoIP phone based on microcontroller SONIX2202, class-D audio power amplifier AX2012 and voice chip NY3P065 is introduced. The VoIP phone can be connected with computer by USB connector,it can used to call overseas, interstate and mobile,and it also has the function of voice dialing. The working principle, hardware configuration, software design and functions are introduced in details. The circuit of this system works successfully through the test.
SONIX2202; AX2012; VoIP
TP368.1
A