系统的软件总体结构如图1所示。键盘监控的初始化、液晶显示的初始化、时间、采样频率、显示状态等各种信息。
图1 系统软件结构
监控模块随时判断各种中断是否到达,这其中包括摘机中断、挂机中断、振铃中断、键盘中断、液晶显示定时中断等。监控模块程序完成查询以上工作并调用各个相应的处理子程序。
系统的程序流程如图2所示。在整个程序中,挂机中断具有优先权,只要发生挂机中断,程序就返回到监控状态。尤其是在通话过程中,随时监测挂机中断和对方状态,一旦自身挂机或者对方挂机,将马上中止通信过程。
图2 程序流程
系统上电后,总是检测有无中断产生,中断包括摘机中断、振铃中断、键盘中断和显示定时中断。中断产生,系统将进入相应的中断处理程序。
DSP和客户端芯片S13016的通信是由DSP的缓冲串口2进行的。其中,DSP通过对S13016的寄存器的读写实现数据交换和控制。图3是DSP从S13016读取数据的时序,首先DSP向其缓冲串口2写数据001AAAAA xxxxxxxx,其中001为固定的数据位,表示读操作;5个A位表示读取的地址(Address),例如读取S13016的第13寄存器,则5个A位值为01101;8个x位,表示无关位。S13016收到DSP的以上信/崽,迅速将该寄存器的数据送到DSP的缓冲串口2的接收寄存器中,并发出接收中断到DSP。注意,513016几乎是一收到寄存器地址,就发出该地址的数据,延迟时间可认为是0,如图3所示。
图3 DSP读SI3016的时序
图4是DSP向S13016写寄存器的时序。和读513016寄存器的时序相同,将固定的高3位设置成000,表示写寄存器;接下来仍然是5个A位,表示写哪个寄存器;低8位就是写人的内容。和读一样,S13016一接收到地址信息,马上将8位信息写入该寄存器,延迟时间几乎为0。
图4 DSP写SI3016的时序
信号处理算法主要包括回音相消、自动增益控制、数字滤波等。
(1)回应相消。回音相消处理过程如图5所示。回音主要是通过对不同端的信号采集,得到远端回音信号,作为回音的参考信号。而带有回音的混合信号和参考信号进行自适应减法运算,从而将回音从混合信号中去除。图5中虚线框内为回音处理算法。
图5 回音相消处理过程
(2)自动增益控制。语音在采集和传输过程中,语音源的差异、信道的衰减以及噪声的干扰,使得信号的幅度相差较大,从而需要自动增益控制。模拟信号中一般很难实现自动增益,而数字电话通过对数字信号的幅度的估计,调整信号增益参数,从而保证在任何情况均可以输出幅度,达到的语音质量。
(3)数字滤波。输入和输出的模拟信号都经过一个具有线性相位的ΠR带通滤波器。根据语音信号的特点,滤波器的通带在3kHz~300kHz之间。其阻带衰减为一60dB,根据实际情况,滤波器的各种参数可以通过软件调整。信号中的直流分量也可以通过预估均值去除,从而进一步提高语音质量。
欢迎转载,信息来源维库电子市场网(www.dzsc.com)
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。