Chinaunix首页 | 论坛 | 博客
  • 博客访问: 781723
  • 博文数量: 83
  • 博客积分: 7030
  • 博客等级: 少将
  • 技术积分: 1097
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-06 15:50
文章分类

全部博文(83)

文章存档

2011年(2)

2010年(9)

2009年(56)

2008年(16)

我的朋友

分类:

2009-03-21 13:42:43

Si3210Silab的一款Slic芯片(用户线路接口),主要用于voippbxIP pbx等设备。说白了,它可以让你的这些数字产品挂接模拟电话。它集成DCDC转换,Audio Codec。支持DTMF(双音多频)、FSK来电显示等功能。是一个功能比较完整的slic芯片。

         基于Slic的基本驱动程序是很简单的。因为在网上就能找到silab提供的参考代码。只需要移植spi部分接口就可以做一个很简单的demo。本文重点记录经验性的东西。

1、 si3210DC-DC转化部分电路可以采用两种方案,一种是结合Si3201芯片,这没什么可说的。少了很多外部元件,做起来比较方便,就是稍微贵一点点。另一种是采用分立元件。在这里感觉在各种元件的选择上最好全部按照参考设计来选择,并且一定要使用最新的参考设计。记得网上给的老参考设计好象有一些问题,会影响通话质量。

2、 在初始化si3210之前一定要做reset并延续至少25ms。否则间接寄存器没法访问。

3、 DTMF的检测,在通话的过程中有时会检测到按键信号,后来发现如果对着话筒放音乐的话这个现象更加明显。应该是因为有时环境噪声与DTMF信号频率一致被SLIC检测到所致。如果在你的产品中偶而出现这样的现象,不用大惊小怪,不过如果太频繁就要找问题了,可能是DTMF两次检测之间的时间间隔设得有问题。

4、 DTMF2833RFC2833是用于通话过程中加载DTMF信号的标准,用于通话过程中的二次拔号。这里存在一个问题,本来在二次拔号时是不送话音的。但是si3210不能检测到按键松开时的信号,没法确定停发audio data的时间,这就会产生一种错误,话机本身发出的DTMF2833所发出sip dtmf event重叠。造成一次按键对方收到两个。到现在我也只能通过1S停发来解决这个问题,但是如果有人按键延续时间超过1S也会出问题,那位仁兄有更好的解决方案,不妨告之一声。

5、 FSK来电显示,FSK来电显示一定要发检验码。否则就等着在电话上收“——E——”吧。

6、 增加供电电流有时可以降低噪声。

7、 增加馈电电流有时可以降低噪声。

8、 如果设置两路slic要注意隔离,否则发热量会比较大,并有哭声干扰。

9、 如果发热量过高要检查DC-DC转化的PWM占空比设置以及PWM频率。另外检查馈电电流是否过高,并降低vov电压。

10、              摘挂机容错,有时候会检测到假的摘挂机信号,这对一个成熟的产品来说是不可原谅的错误。所以在处理摘挂机信号时一定要做容错处理。最常用的方法是检测到一个摘挂机信号时,等一会再检查一次,或者从侧面去读取一些有电压或电流检测。

11、              处理来电显示时需要较长的时间,如果在处理来电显示时摘机会听到刺耳的声音,所以处理来电显示的过程中比较耗时的部分应该加入摘机检测。

不记得还有什么了,以后想起来再补充。

补充下:Si3210在纯Ipphone里面没有用,一般是用在Gateway或pbx后面接普通PSTN电话。
阅读(1928) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-02-23 14:13:41

Si3210现在还有人用这个方案吗?