尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

新一代可编程ProSLIC器件:从原理到量产调试全解析

新一代可编程ProSLIC器件:从原理到量产调试全解析 VoIP网关、模拟语音适配器ATA、IP-PBX接入网还有这两年大量出货的光猫语音口凡是需要把传统电话座机接到IP网上的设备硬件BOM里基本都有一颗SLIC。我做这类产品有些年头早年为了搞定一颗线路接口芯片没少翻数据手册最近半年把一颗新一代可编程ProSLIC器件从评估板一直做到量产从寄存器写入到摘挂机状态机调试折腾了将近三周。这篇就把这颗器件背后的原理、可编程的关键点、硬件设计时的取舍还有调试中踩过的坑一次性写清楚给正在做语音接入设备的同行一个参考。1. 项目概述ProSLIC在VoIP链路里到底扮演什么角色1.1 一次通话的数据流先看清楚SLIC在哪很多人一听“VoIP网关”就觉得核心在SIP协议栈和网络吞吐实际上模拟口的体验完全由最末端那颗SLIC决定。一次座机通话的流程是这样的话机摘机后SLIC检测到环路电流变化通过中断或寄存器状态告诉主控芯片主控这边收到摘机事件再由协议栈向SIP服务器发起呼叫通话过程中话音从话机的麦克风变成模拟电信号进入SLIC内部编解码器转成PCM数字流经过DSP做回声消除和噪声处理之后才送到主控语音DSP或网络侧。反过来对端来的PCM数据经过解码、滤波、放大后通过SLIC驱动话机听筒发声。这个链路里SLIC一端连接的是“有电压、有电流、有铃流、能识别摘挂机”的模拟用户线另一端连接的是“干净的数字PCM流”和“可配置的寄存器接口”。如果你把网络侧比作交通调度中心那么电话线侧就是一个需要处理各种路况的现场岗亭而ProSLIC就是那个岗亭里既能干接线活又能随时调整工作方式的智能终端。1.2 为什么SLIC必须是“可编程”的老式交换机里的用户电路板几乎全是分立元件电感、继电器、变压器、高压电容铺满半块板卡每个国家电话线参数不同就得改硬件。后来SLIC集成化但很多早期方案只是把模拟驱动和编解码做到一颗芯片里工作参数还是由外部电阻电容决定改一本振铃规格就要动BOM。ProSLIC这类器件的核心优势在于线路接口几乎所有的电气行为都可以通过寄存器配置完成馈电电压、环路电流限制、摘机检测阈值、振铃频率、振铃波形、挂机传输、极性反转、去抖动时间全部由寄存器控制。这样硬件平台可以统一软件上按销售区域加载不同配置同一个PCB既做内销机器又做出口机器省掉的转产和备货成本很可观。这也是“Programmable”在标题里被放在第二个核心位置的原因——它代表的不只是“能用软件调几个参数”而是整个线路行为数字化。1.3 什么样的产品或团队适合用这套方案如果你是做兼容多地区市场的VoIP网关、数模混合电话机、IP-PBX模拟分机板或者做运营商集采的光猫/家庭网关语音口ProSLIC类的可编程SLIC方案几乎是对的方向。运营商对语音指标有明确标准比如振铃电压范围、回波损耗、话音质量MOS值这些用可编程方案调试起来比固定硬件电路快很多。如果你的产品只做一个国家、量又特别大也许固定参数SLIC加简单外围更省成本但考虑到供应链灵活性和后续固件升级空间可编程ProSLIC仍是更稳妥的选择。2. 下一代ProSLIC技术拆解从BORSCHT到语音DSP2.1 一颗芯片里的完整用户线电路模拟电话线接口的经典功能缩写是BORSCHT分别代表Battery馈电、Overvoltage protection过压保护、Ringing振铃、Supervision监测、Codec编解码、Hybrid二四线转换和Test测试。一颗ProSLIC把这些全部收进芯片内部。BORSCHT最后一项Test容易被忽略实际上它很重要。产线调试时通过寄存器强制进入环回模式可以快速验证编解码通路和PCM接口是否正常不用额外接测试仪表。相比以前用继电器切换测试电路的方式ProSLIC内部的测试总线可以做到单板自检这对量产筛板特别有价值。新一代ProSLIC在BORSCHT基础上又加了两个关键能力一是宽频带音频通路支持16kHz采样不再局限于传统8kHz电话带宽二是内置语音DSP可以承担回声消除、噪声抑制、增益控制等任务让主控DSP的负荷降下来。2.2 可编程馈电和振铃比想象中复杂馈电就是给话机提供直流工作电源。传统电话线在挂机时大概48V摘机后电压被话机拉低环路里流过几十毫安电流。ProSLIC内部通过可编程的电池管理单元把外部输入的VBAT高压常见是-24V到-48V按寄存器设定输出到TIP/RING线上。摘挂机检测并不是简单比较电压高低而是检测环路电流是否存在。摘机时话机形成直流回路电流超过阈值SLIC内部比较器翻转经过去抖处理后上报。这个阈值、去抖时间、以及挂机时是否允许微弱电流通过用于来电显示都是寄存器可配的。振铃这块老设计经常要用高压振铃继电器或者外加铃流变压器ProSLIC通过内部升压和开关电路直接从VBAT生成正弦振铃省掉了笨重的铃流模块。这里有个参数要特别留意振铃电压不能只看有效值还要关注峰值和波形失真。很多地区标准要求振铃有效值在40V到80V之间中国大陆常用70V到75V有效值20到25Hz而且波形要尽量接近正弦。ProSLIC通过寄存器可以设置振铃频率、幅值、上升时间、过零相位调试时用示波器看TIP和RING之间波形目标是看不出明显削顶和不连续。2.3 语音DSP与回声消除逻辑语音通路是SLIC最敏感的部分。模拟信号进来先经过可编程增益放大器再进ADC转成PCM。ProSLIC的好用之处在于可以从寄存器读取实时信号电平快速定位增益配置是否合理。回声消除是VoIP语音网关最大的坑。回声来源有两种一是混合电路二四线转换时阻抗不匹配导致电学回声二是远端被叫侧声学耦合产生的回声。主控DSP一般都有回声消除算法但对模拟口来说最好在SLIC侧先把电学回声处理掉一半尤其当PCM走PSTN线路侧时网络侧设备看到的是完整的模拟口表现。我手上的这颗器件内置了自适应回声消除器收敛速度可以通过寄存器调整。实际测试发现把回声消除的tap长度打开到足够覆盖线路反射延迟同时把NLMS算法的步长因子设在合理区间效果非常明显。一个判断方法是用仪器发送1kHz/500Hz双音信号把对端PCM环回听回声消失的时间。2.4 串行控制接口与PCM总线设计控制接口方面ProSLIC一般提供SPI或I2C用来读写寄存器音频数据走PCM或I2S总线。如果你选的是带内置DSP的型号控制接口除了配置基础参数还能做音频流的插入和提取。这意味着主控芯片可以通过SDI/SDO在PCM通路上插入DTMF、忙音、回铃音不再需要用一颗单独的音频DSP去生成信号音。PCM总线的时钟和帧同步要特别仔细。8kHz帧同步对应256个位周期每帧可传输8位或16位数据。用I2S时左右声道时钟让两个通道天然分隔。调试时曾遇到一个问题PCM下行声音正常上行却是静音查了半天发现是发送侧主控没开三态门导致多个设备共用一个PCM总线时数据冲突。这种问题在寄存器层面看不出来必须用逻辑分析仪抓总线时序。3. 从选型到量产一次完整的ProSLIC落地记录3.1 选型思路单通道还是双通道宽窄带怎么选选型主要看产品的端口数、模拟口数量、支持的音频带宽和成本预算。单通道器件适合带一个FXS端口的光猫、单线家庭网关双通道器件适合小型IP-PBX或双口ATA。新一代ProSLIC在单颗芯片内已经把FXS的绝大多数功能做全所以端口扩展更依赖主控能接多少颗芯片而不是芯片本身复杂程度。音频带宽方面如果产品只做传统PSTN QoS保障8kHz的G.711通路就够如果做会议电话、IP话机或宽带语音一定要选支持16kHz采样的型号。16kHz带来的不仅是通话“更清晰”的观感它直接决定产品能否通过一些运营商的高清语音认证。3.2 硬件设计电源、隔离与外围电路硬件上最容易出问题的是电源。SLIC的VBAT需要负压供电这是老规矩但新器件对电压纹波更敏感。建议VBAT采用独立DC-DC或LDO供电输出电容要足我习惯在靠近VBAT引脚处放一个4.7uF陶瓷电容加一个10uF电解电容用来应付振铃开启时的大电流抽取。TIP和RING线上的共模电感是设计的讨论重点。有的参考设计加两颗共模电感抑制EMI有的不加。实际经验是如果产品要过EMC测试尽量预留共模电感位置但不一定焊。先用直通电阻测试看辐射超没超标再决定要不要填上电感这样最省事。过压保护不能全依赖SLIC内部。虽然ProSLIC自带二级保护但模拟口直接暴露在户外线缆上雷击和电力线搭接不是内部器件能完全抗住的。我一般会在TIP/RING线上加一颗气体放电管加PTC自恢复保险的组合放电管放在最前端PTC放在芯片和连接器之间这样既能泄放浪涌又不影响正常工作时的直流特性。3.3 固件初始化与状态机设计ProSLIC上电后第一步是读取器件ID并确认通信正常。接着配置VBAT电压档位。很多工程师漏了这一步直接用默认值结果馈电电压和设计预期差很远导致部分话机摘机不送话。寄存器配置的顺序要有讲究。我的做法是先配电源和基础时钟再配线路参数馈电、电流阈值、振铃再配音频通路增益、滤波器最后打开中断和监测功能。顺序反了容易出现“寄存器写成功了但功能不生效”的诡异问题原因可能出在某个模块处于未使能状态后面配置被丢弃。状态机设计这部分核心是摘机、挂机、振铃、来电显示这几个状态的切换。每个状态转换都要有事件触发。比如摘机后线路进入通话状态如果此时误触发振铃会产生严重的业务故障。建议在状态机入口处加一个软件锁存摘机后20ms内忽略所有振铃请求让环路电流稳定后再处理新事件。3.4 音频配置和现场测试指标音频通路调试从增益开始。模拟信号经过ADC后PCM输出电平要标准化到0dBm0对应的数字幅度。用参考设备发送1kHz正弦波幅度调到标准测试电平然后读PCM数据幅度通过寄存器微调增益直到偏差在0.2dB以内。回声消除的测试要分两步先测试四线端到四线端的电学回声再测完整通话链路的听感回响。测试仪器用模拟电话分析仪发送双音信号并测量回波损耗。如果回波损耗低于标准优先调整混合电路的阻抗匹配网络而不是盲目增大回声消除器的抑制深度因为回声消除器对非线性失真无效而混合电路阻抗失配会产生非线性成分。振铃测试要看波形峰值和过零切换点。用示波器抓TIP和RING之间的电压确认振铃启动和停止都在电压过零处避免开关瞬间产生咔哒声。4. 调试实录三周里遇到的那些典型问题4.1 摘机检测失灵为什么总是偶发第一次遇到的问题是挂机后偶尔误报摘机尤其是刚做完振铃之后。排查了很久发现是因为话机挂机后线路电容残留电荷还没放完SLIC内部比较器已经重新使能导致残留电压触发了假摘机。解决方法是把摘机检测的去抖时间从默认值提高同时启用内部放电回路。在振铃结束到重新使能监测之间加入一个固定延时让线路电压归零后再开始检测。这个延时通常10到30ms就够不会影响用户操作感。4.2 振铃不响或声音发闷另一个项目组遇到的振铃问题话机振铃声音非常小而且低沉。一查寄存器振铃有效值设置虽然正确但振铃频率被配置成了16Hz接近人耳不敏感区听起来自然发闷。把频率改到25Hz后立刻恢复正常。振铃不响的情况则多半是VBAT电压不足。SLIC内部振铃升压电路从VBAT取电如果VBAT本来就偏低振铃电压达不到话机振铃电路的工作阈值。有一个经验量VBAT不能只用万用表测空载电压要在振铃启动瞬间用示波器看跌落如果跌落超过2V说明电源带载能力不够。4.3 回声和噪声两个容易被忽略的细节回声问题在宽带模式下更明显。16kHz采样比8kHz包含更丰富的频谱回声路径也更难拟合。调试时发现宽带回声消除器收敛需要更长时间如果主控DSP在通话建立瞬间就启动AEC误差信号反而变大。建议在通话建立后延迟100ms再启动回声消除让SLIC内部的Echo Canceller先收敛。噪声方面最常见的是电源带来的开关噪声耦合到音频通路。如果示波器看到PCM输出有固定频率的毛刺排查顺序应该是先看VBAT纹波再看数字电源和模拟电源是否分开最后检查地平面的分割。PCB设计时模拟地和数字地不要直接大面积连接最好通过磁珠或0欧电阻单点连接。4.4 问题速查表这个表是从我实际调试经历中整理的供遇到类似问题的朋友快速定位现象优先排查项寄存器/硬件调整方向话机摘机无拨号音馈电电压、PCM通路配置确认VBAT档位检查编解码使能开关挂机后偶发假摘机振铃结束后线路残余电荷增大摘机去抖时间增加放电延时振铃不响VBAT带载能力、振铃频率检查电源跌落恢复默认铃声频率振铃声音发闷振铃频率配置偏低调整为20到25Hz标准段对端听到严重回声混合电路阻抗匹配、AEC收敛参数优化阻抗网络延迟启用回声消除PCM上行无声PCM总线三态竞争、时隙配置用逻辑分析仪抓总线检查发送侧三态门音频有周期性噪声电源纹波耦合、地平面不当优化VBAT滤波电容调整地平面分割DTMF识别不稳定前端增益过高、PCM电平超限读取PCM电平寄存器下调模拟增益5. 一点实在建议关于可编程设计和未来扩展如果只看标题“Next-Gen Programmable ProSLIC Devices”很多人会觉得这不过就是一颗寄存器多一点的SLIC。实际上可编程的想象空间不止于参数配置更是整个运营模式的变化。我见过有团队用同硬件平台做两种产品一种面向国内运营商走标准8kHz语音振铃用25Hz另一种面向北美市场用16kHz宽带通路振铃频率换成20Hz两套固件就搞定了不同市场的认证要求。我个人的建议是硬件设计时把SLIC的电源和外围电路做得稍微“富余”一点比如VBAT预留更高耐压TIP/RING预留滤波器位置PCM总线预留两路通道容量。这些不会增加太多成本但能让后面的固件更新和产品迭代少动板子。尤其是语音市场虽然趋于饱和可运营商时不时会提出新的测试指标到了认证阶段才发现板子需要加电阻、改电容那真是欲哭无泪。最后再分享一个小技巧调试阶段在SLIC的串行接口上保留一个测试点并且把寄存器dump功能做成一个内部指令。量产之后如果机器出现批量语音问题不需要拆壳接调试器直接通过远程命令把寄存器快照拉回来对比一下好板和坏板的差异定位速度快非常多。可编程器件的价值说到底就在于软件的灵活性能覆盖硬件的未知问题。
返回列表