DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 124|回复: 0
打印 上一主题 下一主题

DSP软件设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 14:05:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

                      系统的软件总体结构如图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)
            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-9-28 00:19 , 耗时 0.103607 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表