- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
因特网视频的解决方案
前言
VoIP为用户提供了一个平台,使用局域网IP协议在源和目的地之间传送MPEG-2数据流,本设计使用UDP协议,这是一种无连接的协议,其优点是它传送的数据包与所使用的网络技术无关。VoIP的用户可以是学校、广播站、网络运行商、或网络设备制造商。
VoIP数据流由188字节或204字节数据包组成。数据的传送是连续的,无方向性的,无需反馈或控制的反向通道。当数据流在物理链路时使用异步串行接口(ASI)方式。ASI数据流有不同的数据速率,但传送的速率是恒定的,为270Mbps。它首先将同步的MPEG2传送包的8位码字转换为10位数字,接着进行并—串转换。当要求输入一个数字而数据源还没有准备时,应插入一个K28.5同步字,以达到ASI固定270Mbps速率的要求。所形成的串行比特流通过缓冲/驱动电路和耦合网络,送到同轴电缆连接器上。比特流通过同轴电缆到达接收端口时,首先要经过连接器和耦合网络,送到时钟和数据恢复电路,再到串—并转换电路。为了恢复字节同步,ASI解码器必须先搜寻到K28.5同步字,确定接收数据边界,从而建立解码器输出字节的正确排序,最后进行10b/8b转换,恢复出包同步的MPEG2码流数据。但K28.5同步字不是有效数据,解码时必须删除。当传送进入IP时,数据包转换成用户数据包(UDP)格式,即将同步的188字节或204字节数据放置在有效负荷中,数据包的数据在188字节包场合为7个;而在204字节包场合为6个。数据负荷分别为1316字节或1224字节。
Xilinx解决方案
Xilinx VoIP解决方案是采用现成的高性能Xilinx硬件IP构建的,包括PPC405处理器、支持TCP的硬件局域网MAC(含Treck公司高性能IP栈)、可选择I/O的ASI I/O、以及集成在多端口存储器控制器中的多数据流I/O管理器。其基本性能为:
支持多个ASI输入与输出;
支持多个VoIP I/O数据流;
支持ASI与IP之间的桥接与过滤;
支持符合Pro MPEG COP4(第2阶段)数据流的FEC。
该设计可分为三个部分:ASI接收器接口、ASI发送器接口、和千兆位系统参考设计。
ASI接收器接口
该单元主要完成多流数据的恢复、捕获和存储(图1)
多流数据恢复:ASI接收单元最多能接收8路传送流。ASI串行数据流首先进入数据恢复模块,被恢复的数据字则在串—并转换中转中转换为10位并行字。它会根据来自数据恢复模块的跳转指令会来调整位的个数,若未检测到跳转指令则每个时钟读取1位;若检测到左跳条件不读取;检测到右跳条件则读取2位。当10位并行字准备就绪时,它产生一个时钟启用信号供下流处理使用。
并行成帧器接收10位未成帧数据字,输出10位成帧数据。按照ASI规范,成帧器在5字节窗口中寻找2个逗号特征字符,若能检测到第2个逗号特征字符,数据成帧并设定已成帧标志。成帧数据送入10b/8b译码器。10b/8b码是直流平衡的,有较好的电缆均衡性,并提供0或1的最短运行长度。译码器具有8路10位编码输入通道,因而最多可恢复8个ASI数据流。
多流数据存储/捕获:译码器输出送入stream-in(1:8)模块。较低级stream-in模块从单一数据流串行地接纳4个顺序的有效8位并行数据,并将它转换为32位并行输出数据,只有有效的(非零)字节加以存储。每个输入数据是以27MHz(37ns)装载的,因而每个stream-in模块输出32位字的准备就绪时间为148ns。输出的读出速率为100MHz,stream-in模块总共有8块,分别从模块1扫描至模块8,这样8个数据流可在80ns内处理完毕,小于上述的148ns。当扫描器发现32位字已可使用,就将它送入512×32位块RAM。倘若模块输出未有32位准备就绪,则扫描下一个模块,如此往复循环。控制逻辑为每个数据流生成读指针和写指针。当每个stream-in模块在输出寄存器准备好32位字,写指针就加1。某个数据流读指针是否加1则取决于512×32位块RAM的后端要读取该数据,事实上,每个数据流的读指针是较大地址的一个子集,也就是指示较大DDR存储器的当前数据流,下一个单元将会用到这个地址。
多流数据装入DDR存储器:块RAM分成8节,每节256个字节。每节保留来自上面每个模块的数据。控制逻辑扫描块RAM,看8节存储器中任何一个是否是半满的,换句话说,至少有128字节。如果是半满的,表示数据已准备就绪可以从该节读出,并写入DDR存储器。在此之前,32位数据是以管线字和非管线字读出的,共同组成64位字。64位字先写入CORE Generator FIFO。控制逻辑相应地监视所有8节块RAM以及送入FIFO的输出数据。当FIFO含有128字节数据,就向仲裁器发送一个请求,要求输入数据流进入DDR内存。一旦从DDR多端口内存控制器接收到确认信号,FIFO以16个连续周期成组地输出64位数据,进入多端口存储器控制器,最后移入较大的DDR存储器。写入地址就是上节已描述的扩展指针所指示的地址。
ASI发送器接口
发送器实现视频的回放,图2简要地列出了从存储器回放ASI流所需的物理层方框,包括回放速率控制、回放地址生成器、以及多数据流并—串化。
回放速率控制:存储在DDR存储器中的数据是通过多端口存储器控制器(MPMC2)的读接口读出的。速度控制逻辑扫描8个数据流,以确定哪个输出已准备就绪来送出数据,回放速率控制内置8个48位累加器(更精细的速率控制),速率是从处理器程序装载的。每个累加器的溢出速率是由累加的值确定的。当数据流溢出时,溢出标志记录在一个寄存器中。扫描器监视8个寄存器的输出,以确定计数器是否已达到最大计数值。一旦发现某个数据流已变成"1",就激活输出流数据请求。
回放地址生成器和回放缓冲器:请求寄存器的非零值将流地址与存储器请求控制块中的回放流地址指针加1。该地址和读请求一起送到DDR存储器。仲裁器最终确定是否从DDR存储器读取数据。经仲裁器允许后,一个读请求标志发送至MPMC2。当接收到来自MPMC2的确认信号后,则从DDR存储器的地址处取出数据,送至输出FIFO,数据是以连续的16个64位字发送的。当流地址与存储器请求控制块接收到DDR存储器的确认信号,该数据流的请求计数器减1。然后,请求扫描器继续扫描下一个数据流,如此往复循环。每个输出流具有一个单独的16×16 FIFO,当数据流请求时,由DDR存储器填充。
仲裁逻辑
仲裁逻辑是一个独立的、少位数逻辑单元。它跟踪stream-ill逻辑与DDR存储器之间的数据以及DDR存储器与stream-out逻辑之间的数据。该控制块接收来自strean-in的写请求、写数据和写地址;也接收stream-out送来的读请求、读数据和读地址。在未发现读或写请求时,仲裁逻辑通知MPMC2中的DDR存储器,从存储器读出数据或将数据写入存储器。写和读请求同时发生时,写请求有更的优先权。由于MPMC2是每个端口单地址结构,该控制逻辑还起到DDR存储器地址的多路开关作用,共享读出与写入。
千兆位系统参改设计(GSRD)
GSRD是实现IP基传输协议(如ICP或UDP)的一个高性能设计。它的内部设置了高性能的嵌入式三态以太网MAC和嵌入式处理器。该设计充分利用MPMCP功能,在PPC 405处理器指令和PLB数据接口与两个端口之间分配存储器带宽。每个端口都内置了双通道动态存储器存取(DMA)引擎来重新调整数据,GSRD的一个端口连接千兆位MAC或三态以太网MAC外设,以太网外设和DMA引擎两者都是由PPC 405处理器的设备控制寄存器(DCR)控制的。其余的DMA端口供参改系统的附加外设使用。
事实表明,GSRD可进行高性能的UDP处理。设计特性让处理器仅执行协议和控制功能,但不参与有效负载数据路径,而让DMA引擎完成数据传送。数据调整和校验及有效负载为软件实现零拷贝功能提供了必要的支持,让设计实现在IP基协议与用户数据接口之间的高性能桥接。
MPMC2
MPMC2内核是GSRD的一个重要部件(图3)。MPMC2通过实现跨端口并行处理,减少了总线仲裁,提高了系统级业务流量。此外,与之紧密相关的DMA引擎实现了对存储器高带宽访问,并降低了资源利用率。
本设计中,MPMC2允许32位DDR存储器资源共亨5个以上的独立接口(最多可达8个)。3个MPMC2端口通过PLB至MPMC2接口模块连接至PP405处理器的PLB口,完成MPMC2与高速缓存之间的数据交易,MMC处理两者之间的交换信号和时钟同步;一个端口连接出端口接口模块(PIM),实现进/出视频流之间的数据传送;另一个接口连接至通信直接存储器访问控制器(CDMAC),访问以太网MAC和本地数据。这样,通过访问同一个共享的存储器资源来实现:
来源:电子产品世界
上一篇:呼叫中心的技术发展史
下一篇:浅谈视频会议在人力资源工作中的应用