收端执行相反的操作:解复用器从e3流提取4个e2数据流,然后从e2流提取16个e1流,最终将e1流发送到接收端的线路接口芯片。 图四 这些e1线路接口在发送和接收时都独立工作,因此2.048mhz的时钟速率可以有+/- 20ppm的偏差。同样,因为大多数系统同时发送和接收数据,分立的多路复用器和多路解复用器将提供2个独立的e3流(发送和接收)。因此,两个34.368mhz的时钟可以存在细微的差异。 由于e2流是在芯片上产生的,这些e2多路复用器可以共享同一个8.448mhz时钟。然而,由于接收的数据速率与我们所设计的板无关(且不能假定所有e2多路复用器使用相同时钟),所以e2解复用器时钟必须能工作在略为不同的速率下。 此外,假定设计中需要一个由工作频率为1mhz的处理器控制的独立spi(串行外围接口)总线接口,该接口用于状态和控制。这样一来,设计中总共用了32个2.048mhz时钟,5个8.448mhz时钟,2个34.368mhz时钟和一个1mhz时钟,总共多达40个时钟。 本设计中最快时钟是34.368mhz e3时钟。fpga的
因此adsp-2181还需从第一级fifo中读入相应数目字节的视频或音频数据。对于音频来说,不需插入pcr信息,只从音频fifo中读入184-4 个字节的数据。在向输出缓存器写入ts字头后,再将公共fifo中的数据送入输出缓存器。对视频来说,在不考虑pcr信息插入时其操作同音频一样。 由于两pcr之间的时间间隔在mpeg-2视频编码器传送流中要求为100 ms,因此,在dsp软件中设计了一个计数器,用于对所有已生成的ts包进行计数。由于adsp-2181串口的输出速率是恒定的(在此是靠外加8.448mhz串口时钟实现的),因而单位时间内的总的ts包的数目也是一定的。要使pcr之间的时间间隔保持恒定,只需将计数器的预置数目设定为"总的ts包数目/每秒÷25",复用器每生成一个ts包,计数器减1,当计数器计到零时将时间间隔标记置位。adsp-2181在每次轮询打包ts数据之前,先检测时间间隔标记是否置位,若未置位则按前述方法处理,若置位则在打包的下一个视频ts包中插入pcr时间标记,当然这里只是在ts包头中插入相应的可调字段,而没有插入真正的pcr时间标记,只是将6字节的pcr位置预留出来。因此,如
则判定系统进入失步态,并关闭分接时序信号发生器,也不再接收数据;一旦捕获到帧定位信号,便驱动分接时序信号发生器工作,并开始接收数据。这里要求模块在系统失步后能重新进入同步,如果传输中帧同步码组连续丢失了几帧,而系统又没有自恢复能力,那么整个系统将无法再正常工作。 (2)同步时钟提取模块 数据流的接收需要与之速率相同的时钟,这就需要对二次群码流进行位同步时钟提取,得到与之速率一致的均匀时钟给分路器。 (3)分路器模块 一旦捕获到帧定位信号,分接器便开始工作,把帧定位信号抛掉,其余在8.448mhz的位同步时钟下按位顺序循环进行同步分离,分别送入4个码速恢复单元。 (4)分接时序信号发生器模块 该模块设计思想基本同于复接时序信号发生器,其基准时钟由位同步时钟分频得到。帧定位捕获电路驱动它工作,产生帧定位时隙脉冲sf,插入标志时隙脉冲sz,调整插入时隙脉冲sv和2.112mhz的非均匀时钟f,送给插入码扣除控制电路。 (5)插入码扣除控制电路模块 该模块的功能是扣除复接时插入码流的码字,输出作为码速恢复电路的写入时钟clk_wr’,在接收端对收到的sz时隙的标志码进行择多判决