《电子技术应用》
您所在的位置:首页 > 通信与网络 > 业界动态 > DVB-C视频传输接口ASI的实现

DVB-C视频传输接口ASI的实现

2008-10-10
作者:易 峰 何剑辉 全子一

    摘  要: 一种基于同轴电缆的ASI传输接口" title="传输接口">传输接口方案采用CYPRESS公司芯片实现ASI的发送和接收,并用逻辑编程器" title="编程器">编程器CPLD完成SPI与ASI互相转换所需的逻辑控制" title="逻辑控制">逻辑控制。CPLD软件设计灵活,为软件的升级和功能扩展提供了方便,并在实际应用中取得了良好的效果。

    关键词: ASI  SPI  MPEG-2  TS包

 

    在目前的DVB-C广播电视系统的传输接口中,有两种MPEG-2视频传输接口标准:异步串行接口标准 ASI[1]和同步并行接口SPI[1]。SPI一共有11位有用信号,每位信号差分成两个信号用来提高传输抗干扰性,在物理链接上用DB25传输,因此连线多且复杂,传输距离短,容易出现故障。但SPI是并行11位信号,处理简单且扩展性强,因此目前一般的MPEG-2视频编码器的输出和视频解码器的输入都是标准的并行11位信号。ASI用串行传输,只需一根同轴电缆线传输,连线简单,传输距离长。根据SPI和ASI的优缺点,需要传输信号的SPI和ASI的互相转换。 

1 SPI信号结构 

    并行传输系统SPI包括一位时钟信号、8位数据信号、一位帧同步" title="帧同步">帧同步信号PSYNC和一位数据有效信号DVALID。帧同步信号对应TS包的同步字节047H,DVALID信号用来区分TS包的长度为188个字节或204个字节。当TS包长为188字节时,DVALID信号一直为高,同时所有信号都与时钟信号保持同步。SPI数据格式如图1所示。 

 

 

2 ASI接口 

    ASI传输流可以有不同数据速率,但传输速率" title="传输速率">传输速率恒定,为270Mbps,因此ASI可以发送和接收不同速率的MPEG-2数据。ASI传输系统为分层结构。最高层、第2层使用MPEG-2标准ISO/IEC 13818-1(Systems),第0层和第1层是基于ISO/IEO CD 14165-1的FC纤维信道。FC支持多种物理传输媒介,本方案选用同轴电缆传输,图2是基于同轴电缆的ASI传输系统框图。 

 

 

    首先将包同步的MPEG-2传送包的8-bit码字转换成10-bit码字;接着在并/串转换时,当要求输入一个新字、而数据源还没有准备好时,应插入一个K28.5的同步字,以达到ASI的固定270Mbps传输速率。所形成的串行比特流将通过缓冲/驱动电路和耦合网络,送到同轴电缆连接器上。插入同步码字可以有三种方法:传输码流的单个字节前后不能都是同步字;传输码流的单个字节前后必须都是同步字;或者是两者的组合。 

    到达同轴电缆的接收数据,首先要经过连接器和耦合网络耦合到恢复时钟和数据的电路上,然后进行串/并变换;为了恢复字节同步,ASI解码器必须先搜寻到K28.5同步字,一旦搜索到该同步字,即为随后接收的数据标定了边界,从而建立了解码器输出字节的正确字节排列;最后进行10/8-bit变换,恢复出包同步的MPEG-2 TS码流数据。但是K28.5同步字不是有效数据,因此解码时必须删除。 

3 ASI接口实现方案 

    在本方案中,MPEG-2 TS码流由单片MPEG-2编码器MB86390提供,它输出符合SPI标准的并行11位信号,TS包长度为188个字节。在SPI/ASI转换方案中,主要选用CYPRESS公司cyb923/cyb933[2]芯片、异步FIFO[3]和逻辑编程器CPLD[4]实现。 

    cyb923主要实现码字的8/10bit转换、插入同步字K28.5和并/串变换。ASI的传输速率恒定为270MHz,而输入MPEG-2 TS码率是不同的,所以要用FIFO实现速率匹配,需要对输入的SPI数据、FIFO和cyb923之间的通信进行逻辑控制。综合性能、价格和程序复杂度的考虑,本方案采用xilinx公司的CPLD逻辑编程器XC95108,用VHDL编程实现对它们的逻辑控制。ASI的解码也是相似的过程,cyb933主要实现10/8bit转换、去除同步字K28.5和串并变换。系统的整体构架如图3所示。 

 

 

3.1 ASI编码 

    在ASI的编码过程中,只需将MPEG-2 TS的八位数据和一位TS码率传输时钟输入到CPLD。因为在本方案中,TS格式为188个字节,因此数据有效信号DVALID一直为高,CPLD忽略这个信号,只管接收TS码流数据,而不用关心TS码流的同步头。PSYNC帧同步信号也一样忽略。CPLD将接收到的数据以TS码率时钟写入FIFO。当FIFO半满时,CPLD接收到FIFO的半满信号,然后CPLD给cyb923发FIFO可读信号,cyb923以27Mbps读取FIFO中的数据;当CPLD计数到cyb923读取了一定数量的FIFO数据,CPLD则向cyb923发送FIFO不可读信号,防止FIFO读空。MPEG-2传输码率的并行最大速度为27/8=3.375Mbps,而读FIFO速率为27Mbps,因此FIFO不会有溢出。考虑到延时,本方案选用较小容量的FIFO7202。Cyb923在FIFO不可读时,向ASI码流中填充K28.5以维持270Mbps的固定传输速率。最后串行数据经过驱动就可用同轴电缆传送出去。本方案中,同步字K28.5的插入采用传输码流的单个字节前后不能都是K28.5同步字的方式。这种方案相对其它两种方案来说,判断和处理都相对简单。 

3.2 ASI解码 

    在ASI的接收端,输入的ASI码流经过均衡后,输入到cyb933芯片。它由内部的时钟锁相环首先锁定ASI码流时钟,检测同步字K28.5;找到后即确定了ASI比特流顺序,然后进行串/并转换。 

    由此可知,检测到K28.5,即字节对齐是ASI解码的重要前提,由此cyb933定义了一套检测字节同步的方法。考虑到传输误码等原因可能造成假K28.5,因此cyb933采用双字节确认方法。即连续两个字节都是K28.5,才确认字节同步了,接着进入正常的单字节解码状态。在解码状态,如果在64个解码字节中,CPLD计数到有16个字节是错误的,则CPLD必须向cyb933发送信息,要求cyb933重新进行字节同步。 

    字节同步后,因为K28.5是cyb923插入的同步字节,不能作为有效数据输出,cyb933自动略除这些同步字节。当cyb933检测到有效数据时,cyb933将输出一位当前数据有效的指示,如果把这个信号当作FIFO的写有效,则FIFO中的数据一定都是有效数据了。当FIFO半满时,CPLD接收FIFO的半满信号后,CPLD读取FIFO中的数据,并根据读出的字节是否是047H来确定TS包的同步字节;如果找到TS包同步字,将恢复对应的帧同步信号,此时CPLD计数188恢复出完整的TS包,接下来的字节如果不是047H,说明输入数据有误,CPLD将丢弃这些数据直到找到047H同步字,在此期间CPLD输出TS空包。重新包同步后,CPLD才又开始计数输出正确的188字节的MPEG-2 TS包,从而恢复出SPI正确的11位信号。同样,当FIFO数据不可读时,CPLD也输出TS空包,以维持输出的MPEG-2码率恒定。 

    在SPI转ASI的设计中,直接对SPI数据进行ASI编码,而不考虑误码问题。主要考虑SPI数据直接从MB390输出,没有经过远距离传输,因而降低了ASI编码逻辑控制的复杂度。在ASI解码过程中,ASI数据经过远距离传输,要考虑误码的因素,所以增加了字节和包的重同步设计,以增加抗干扰能力。本方案在实际应用中很好地实现了SPI/ASI的相互转换。 

参考文献 

1 Interfaces for CATV/SMATV Headends and Similar Professional Equipment. DVB Document AO10 rev.1,1997:25~39 

2 SYPRESS.HOTLink Transmitter/Receiver CY7B923/CY7B933 DataSheet. 1999 

3 IDT.IDT720X: CMOS Asynchronous FIFO DataSheet. 2001 

4 XILINX.XC95108 In-System Programmable CPLD DataSheet.2001

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。