PCM串行数据流同步时钟提取设计
摘要:为了产生语音调度系统中数据接收端异步接收PCM30/32路一次群串行数提流所需同步时钟的目的,采用以分频计数器为基础模块,辅以相位校正和误校正处理模块从已知速率PCM数据流中提取同步时钟信号的方法,利用可编程逻辑器件和Verilog HDL硬件描述语言对该方法进行实现和仿真验证。结果表明该方法能够有效地利用已有串行数据流产生具备合适相位的同步采样时钟信号。
关键词:同步时钟;PCM;CPLD;Verilog HDL
O 引言
在各种基于PCM30/32路一次群系统、能够接入公共电话通信网的专用汇接调度设备中,目前广泛采用的设计方式为利用MCU控制多种专用集成电路(ASIC)协同工作,完成对语音调度数据的接收、叠加、分组交换等操作,此类设备在可实现功能和用户规模等方面都受到所采用ASIC本身功能特性的限制,因此,虽然针对某一特定应用的汇接机、调度机品种很多,但仍很难满足所有的应用需求,对于一些特殊功能需求往往要进行单独设计,在很大程度上增加了用户的使用维护成本。
近年来随着通讯技术和集成电路技术的发展,可编程逻辑器件及SoC设计在各种应用设计中大量被应用,在通信系统中,可编程逻辑器件的应用范围同样越来越广。利用可编程逻辑器件相对于使用独立器件进行语音调度数据编解码、交换叠加等处理操作,在提高系统性能与集成度以及降低成本方面均有极大优势。同时,利用可编程逻辑器件能够针对应用需求进行系统设计,突破传统设计方式受器件限制较大的弊端。
对实现语音调度功能的可编程逻辑芯片来说,时钟信号的同步可以有两种模式:主模式和从模式。如果是在已有的交换平台或通讯系统上增加设计其他语音调度功能,则已有外部时钟系统难以被改变也不宜改变,这时语音调度电路应采用从模式来同步。而对于全新设计的语音调度设备来说,就可以采用主模式的时钟同步模式,由可编程器件产生时钟及同步信号供芯片本身和外围电路器件使用,使得外围电路设计更为简洁。
在时钟同步采用从模式设计方式时,芯片需要从接收到的串行数据流中提取时钟信号以便正确可靠地进行串行数据流接收,这是汇接调度设备接入已有通信网络进行语音调度数据处理的首要条件。
针对这个问题,文中介绍了一种从串行PCM数据流中提取同步时钟的方法。
1 PCM一次群数据流同步时钟提取方法
1.1 同步时钟提取基本设计
我国和欧洲在电话语音通信使用PCM30/32路一次群传输系统中,通常串行数据速率为8 000帧×32时隙×8 =2.048 Mb/s,实际应用的各类语音调度系统中数据传输大都以该速率进行。在PCM串行数据流中,各码元之间的相对位置是固定不变的,为了在数据流中区分出一个个的数据码元,接收端必须具备对应数据流的同步时钟信号,从而进一步正确接收PCM串行数据。
接收端数据流同步时钟信号提取功能模块基本工作原理是以一个3位计数器count1对16.384 MHz(PCM串行数据流速率8倍)全局时钟信号进行8分频,计数器最高位作为同步采样时钟信号输出,由全局时钟上升沿驱动。在计数值跳变至0和4时,分别输出同步时钟的下降沿和上升沿。
作为常用时钟源的石英晶体振荡器具有比较好的长期频率稳定性,但作为全局时钟输入在产生同步时钟过程中,由于晶振实际频率与标称频率相对偏差所产生的误差随时间推移而累积,造成本地同步时钟相位漂移(相对于串行数据流中包含的时钟信息),所以需要不断调整输出同步时钟相位才能够保证接收过程不出现失步,这一点通过在分频计数过程中调整计数器count1的计数值来实现。
进行相位调整时,在全局时钟驱动下检测到一个PCM信号上升沿到来后,即在一个码元的开始时刻,改变分频计数器count1中计数值为0,继续计数到4时同步时钟上升沿出现,其位置在PCM数据流一个码元范围的正中间,从而保证时钟信号相对于输入数据流具有合适的建立时间和保持时间。
实测某型16.384 MHz晶振偏差约每周期4 ns,为保证采样时的信号具有较好的建立时间与保持时间,确定每20~30个周期做一次输出同步时钟相位调整。设计中使用5位计数器count2定时,该计数器计数值超过20进行相位调整。
1.2 时钟信号提取过程异常情况解决
上述从已知数据速率的PCM数据流中提取采样时钟并进行相位校正的基本方法在使用中存在以下两个问题:
(1)计时计数器值超过20后,系统在全局时钟驱动下进行PCM信号上升沿检测过程中,计时计数器count2依然工作,当该5位计数器值达到31而依然没有检测到PCM信号上升沿到来时,下一个时钟到来时计数器值将复位为0导致错过本次校正。
![](http://m.amcfsurvey.com/webstorage/images/2014/m/wx.png)
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码