0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于BC320处理器和Verilog语言实现TDM控制模块的设计

电子设计 来源:电子工程网 作者:电子工程网 2021-05-22 11:44 次阅读

TDM控制模块是VoIP网关系统设计中的重要部分,是连接来自PSTNPublic Switched TelephoneNetwork)串行的TDM数据格式和并行的Wishbone数据格式的桥梁,实现两边数据跨时钟域无丢失的转换。为满足高速数据转换的要求,采用了Wishbone总线,将多个IP核集成为VoIP网关系统。

Wishbone最先是由Silicore公司提出,现在已被移交给OpenCores组织维护。Wishbone总线规范是一种片上系统IP核互连体系结构,定义了一种IP核之间共公的逻辑接口,可用于软核、固核和硬核,对开发工具和目标硬件没有特殊要求,并且几乎兼容已有所有的综合工具,可以用多种硬件描述语言来实现。

TDM控制模块的设计

● TDM在VoIP语音网关系统中的作用

TDM控制模块同时接收来自ISDN(综合业务数字网)、E1专线或者语音编码器等不同信源的串行语音数据。如图1,VoIP语音网关的基本功能是完成以太网数据与外部语音设备数据的转换,TDM接口与以太网接口分别为外部语音设备的数据、以太网上数据与网关系统的通信桥梁。该网关SoC系统的处理器采用的是同济大学微电子中心自主沿发的高性能低功耗的32位嵌入式CPU BC320。

图1 TDM控制模块的作用

● 时分复用原理与TDM数据频率

时分复用是把对信道的使用时间划分为多个时间帧,进一步把时间帧划分为n个时间隙(时间间隔)。每一个时间隙分配给一个子信道,从而实现在一个信道上同时传输多路信号。时分复用循环使用时间帧,各路信号循环顺序插入时间帧中的时间隙传输。TDM控制模块的主要作用就是复用多路信号与解复用混合有多路信号的 TDM数据,如图2所示。

图2 时分复用的时隙

本设计的串行语音数据针对E1专线标准,E1主要应用于欧洲,中国也采用该标准。E1标准的数据率为2.048Mb/s,每一个时间帧包括30个B子信道,一个D子信道和一个同步子信道,共32个子信道。以语音interwetten与威廉的赔率体系 信道为例,信道带宽限制为3.4kHz,根据奈圭斯特定律,子信道采样速率至少是信号最高频率的两倍,通常选择采样速率为8kHz。因此,整个TDM信道的比特速率可以达到:

8kb/s×8×32=2048kb/s=2.048 Mb/s,即E1标准规定的TDM数据率。

● 模块设计

模块的主要功能是完成多路数据的复用和复用数据的分解,其关键部分就是复用和分解。本设计采用缓存器辅助完成复用和分解,实现两种协议数据跨时钟域的转换。本设计模块主要分三部分,见图3。

图3 TDM接口控制模块的基本结构

串行数据接口主要负责串行数据与8位宽并行数据的转换,因为存放数据的FIFO是以8bit为一地址空间的。转换由设计的状态机来控制:接收 (receive)操作、发送(transmit)操作和等待,接收就是将串行数据转换成8bit位宽数据的过程,发送与之相反。由于语音数据要求双工机制,由时钟高低电平来作为发送和接收状态的切换信号,即当时钟为低时由发送状态转为接收状态,当时钟为高时,由接收状态切换为发送状态,这样可以看作接收与发送是同时进行的。

发送、接收缓存器不仅包括用于暂时存储数据的FIFO,而且还设计有状态机来控制接收、发送数据流。由于跨时钟域,由双口RAM组成的FIFO可能会带来地址比较冲突的问题,本设计采用乒乓机制来完成FIFO,当一个缓存器进行读操作时,另一个缓存器则进行写操作,两者的切换由硬件来完成。以下以接收缓存器为例(数据方向从TDM串行数据到Wishbone总线并行数据)来描述本设计。缓存器的大小设计为包含四帧TDM数据,因此每个FIFO的大小为 8bit×32×4=1024bit,如图4。选用乒乓FIFO以及FIFO大小设计的原因如下。

图4 乒乓FIFO

串行数据的时钟相对于Wishbone总线的时钟要慢,当两时钟域上的数据相互转换时,Wishbone总线可以在很短时间内读写FIFO,而串行总线需要相对较长的时间读写相同数据量。尽管如此,在Wishbone总线时钟频率相对较慢时,Wishbone总线很可能在下一批串行数据写进FIFO前不能完全读空FIFO。以接收缓存器为例,如果不考虑处理器(BC320)中断响应时间和从RAM读数据的时间(待处理的数据都要先暂存在Wishbone 总线上挂的RAM中),从Wishbone总线读空一个FIFO中的四帧数据需要时间为:

1/25M x 32 x 4 = 5.12 x 10-6 s= 5.12us

25M是本设计在FPGA开发板进行测试时所采用的时钟频率,即测试系统时Wishbone总线上的时钟频率。 而在另一边串行数据,当四帧写满FIFO后,第五帧的第一个字节数据开始写入FIFO的准备时间为:

1/24M x 8 = 4 x 10-6?s = 4us

FIFO中的四帧数据被读空时间大于第五帧的第一个字节写入FIFO的准备时间,FIFO的写满与读空都是有硬件产生信号标识,此时FIFO读空信号标识未产生,不能对同一FIFO进行写操作,导致待写数据丢失。因此选用两个FIFO采用乒乓机制来切换读写操作,如图4所示。

在解复用时,数据的地址恢复很重要,一个TDM数据帧含有32个时隙,每一时隙中的数据均来自不同的信道源,本模块要将复用在一路的TDM数据恢复出32 路。TDM数据的每个时隙含8个bit,而Wishbone总线的数据位宽是32位,因此需要四帧的TDM数据才能拼接成一路完整32位宽数据。相邻时隙数据由于来自不同信道源,暂存在FIFO中的地址不能相邻,前一时隙中数据和后一时隙中数据在地址空间上相差4(如图4),这样从初始地址开始,每相邻四个地址对应的数据拼接成一路完整的信号,在Wish

bone总线读取FIFO中数据时的地址是按顺序的。

本文着重讨论了接收缓存器的设计,发送缓存器与之类似,这里就不再赘述。

Wishbone接口连接TDM控制模块与Wishbone总线,它的主要功能是设计正确的状态机产生有效控制信号来同步数据交换。

验证与结论

Verilog语言描述完成TDM控制模块的设计,并以VoIP语音网关系统为验证平台,利用Candence公司的NC-verilog仿真器进行代码仿真。仿真波形表明,处理器(BC320)对FIFO写满产生信号标识的反应时间大约为60个Wishbone总线时钟周期,这一时间加上 Wishbone总线读空第一个FIFO所用时间后,串行语音数据仍在写进另一个FIFO,Wishbone总线有足够的空闲等待这个FIFO写满标示信号的产生,不会有任何数据丢失。

VoIP语音网关系统在型号为Virtex-II Pro FF1152的FPGA开发板上进行了硬件验证,TDM控制模块外接型号为Le88221的SLIC(用户线接口电路)芯片作为语音信源,利用 Chipscope在线扫描TDM控制模块内部、Wishbone总线和处理器(BC320)寄存器的信号变化,并用示波器对SLIC芯片信号进行捕捉。从观察的信号来看,所设计的TDM控制模块能够与系统的其他IP模块,尤其是处理器(BC320)和以太网模块正确有效地协同工作,模块的功能达到设计要求。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19265

    浏览量

    229671
  • FPGA
    +关注

    关注

    1629

    文章

    21729

    浏览量

    603041
  • 开发板
    +关注

    关注

    25

    文章

    5035

    浏览量

    97384
收藏 人收藏

    评论

    相关推荐

    一个简单的8位处理器完整设计过程及verilog代码

    一个简单的8位处理器完整设计过程及verilog代码,适合入门学习参考,并含有作者个人写的指令执行过程。
    的头像 发表于 04-10 11:43 3527次阅读

    TMS320C6678处理器的VLFFT该怎么演示?

    本白皮书探讨了TMS320C6678处理器的VLFFT演示。通过内置8个固定和浮点DSP内核的TMS320C6678处理器来执行16K-1024K的一维单精度浮点FFT算法样本,检测其
    发表于 09-29 10:05

    TMS320C6678处理器的性能怎么样?

    TMS320C6678处理器的性能怎么样?怎么探讨TMS320C6678处理器的VLFFT演示?
    发表于 04-19 10:53

    Cortex-M3处理器是什么

    STM32单片机STM32的核心Cortex-M3处理器是一个标准化的微控制器结构,希望思考一下,何为标准化?简言之,Cortex-M3处理器拥有32位CPU,并行总线结构,嵌套中断向量控制
    发表于 07-16 06:33

    RK3399处理器与AR9201处理器有哪些不同之处呢

    RK3399处理器与AR9201处理器有哪些不同之处呢?hi3559A处理器与RV1126处理器有哪些不同之处呢?
    发表于 02-21 07:29

    ARM Cortex-M4处理器的参数传递机制是怎样的

    ARM Cortex-M4处理器在C源文件里面调用汇编函数,参数传递机制是怎样的?比如C源文件里面调用汇编语言实现的函数uint8_t Code(uint8_t a,uint32_t b
    发表于 08-22 15:23

    Sitara AM62处理器的资料分享

    和预测性维护),有助于赋予HMI全新的意义,而不是仅限于实现人机交互的界面。AM62处理器能够以低功耗实现边缘器件的分析功能(挂起状态功耗低至7mW且无需特殊考虑散热设计),支持工程师灵活地在尺寸受限
    发表于 11-03 06:11

    基于ARM的PC/104处理器模块设计

    提出了一种低成本的PC/104处理器模块的设计。该模块硬件上以ARM处理器为核心实现了PC/104处理
    发表于 08-25 10:36 20次下载

    Verilog HDL语言实现时序逻辑电路

    Verilog HDL语言实现时序逻辑电路 在Verilog HDL语言中,时序逻辑电路使用always语句块来实现。例如,
    发表于 02-08 11:46 4710次阅读

    苹果a6处理器怎么样_a6处理器参数

    苹果正式发布iphone5,iphone5采用A6处理器,那么A6处理器怎么样?a6处理器参数是什么呢?a6处理器四核的吗?带着这些疑问,我们来一起了解下A6
    发表于 09-13 14:29 2.6w次阅读

    采用数字录音模块和STM32处理器实现一键录音加密录音笔设计

    系统硬件电路主要分为数字录音模块和STM32处理器模块两部分,如图1所示。数字录音模块负责模拟音频信号捕获和信号采样、量化以及编码处理
    的头像 发表于 01-11 08:24 3267次阅读
    采用数字录音<b class='flag-5'>模块</b>和STM32<b class='flag-5'>处理器</b><b class='flag-5'>实现</b>一键录音加密录音笔设计

    麒麟9000处理器和高通骁龙875处理器相比如何?

    随着华为mate10系列的发布,华为最后一代旗舰处理器,麒麟9000也就此亮相,大家对于麒麟9000处理器十分的看好。因为麒麟9000处理器在安兔兔的跑分竟然高达72万分,较上一代麒麟990
    的头像 发表于 11-03 11:31 5906次阅读

    ADuCM320:精密模拟微控制器,14位模拟I/O, 带MDIO接口、ARM Cortex-M3处理器

    ADuCM320:精密模拟微控制器,14位模拟I/O, 带MDIO接口、ARM Cortex-M3处理器
    发表于 03-21 06:11 3次下载
    ADuCM<b class='flag-5'>320</b>:精密模拟微<b class='flag-5'>控制器</b>,14位模拟I/O, 带MDIO接口、ARM Cortex-M3<b class='flag-5'>处理器</b>

    基于TMS320F28335处理器的开关电源模块并联供电系统设计

    基于TMS320F28335处理器的开关电源模块并联供电系统设计
    发表于 10-25 16:54 11次下载

    基于TMS320F2812处理器数字控制的三相逆变电源设计

    基于TMS320F2812处理器数字控制的三相逆变电源设计
    发表于 10-26 14:25 13次下载