新闻中心

EEPW首页 > 消费电子 > 设计应用 > 基于NDK的数字电视传输流网络采集系统

基于NDK的数字电视传输流网络采集系统

——
作者:时间:2007-10-09来源:电子设计应用收藏

摘要:本文介绍了传输流的采集和利用TCP/ IP 协议实现在以太网中传输传输流的系统设计。给出了基于DSP/BIOS和NDK的嵌入式网络操作系统的硬件和软件设计方案,在的系统中实现了网络通信模型,并成功地实现了传输流的网络传输。

关键词:数字电视传输流;;DSP/BIOS;NDK

TCP/IP是因特网上传输数据所必需的协议, 这种网络通信模式在PC之间的实现已经完善, 但是体积、价格等因素限制了其应用的范围。因此, 基于TCP/IP 协议与以太网的嵌入式系统网络通信设计成为目前一个热门的话题。本系统实现了在以TI公司的为核心的嵌入式系统中,对数字电视传输流(TS)信号进行采集并在以太网中传输。利用本系统可轻松地实现在局域网中对数字电视传输流信号的传输、调度。数字电视传输流信号源是针对欧洲数字有线广播系统标准(DVB-C)的数字有线电视信号。网络接入硬件在以TMS320DM643为核心的嵌入式系统中实现,网络接入软件采用了TI公司针对C6000系列DSP推出的TCP/IP NDK(Network Developer’s Kit)网络开发包来实现。

系统电路设计

电路主要由5部分组成。数字电视传输流网络采集系统框图如图1所示。

图1 数字电视传输流网络采集系统框图

其主要功能是通过传输流接口模块采集数字电视信号进入PLD(Cyclone EP1C6Q240C8)芯片,进行必要的处理后,将信号发送到DSP(TMS320DM643)芯片存储起来,并进行算法处理。通过TMS320DM643对BCM5221进行必要的配置,将存储在TMS320DM643内的数据通过BCM5221传送到局域网中,并通过计算机接收数据。

传输流接口模块

传输流接口模块由CY7B933输入接口芯片及其电器接口电路组成。CY7B933输入接口电路是点对点的传输模块,可以通过光纤、同轴电缆和双绞线进行高速的串行数据传输。输入接口符合DVB-ASI的接口标准。输入接口接收到串行位流后,通过内部PLL时钟同步恢复数据的时钟信息,并对位流进行串并转换、解码和传输检错等操作。这种输入接口能灵活地把高速点对点串行数据转变成并行数据,而且应用领域广泛,包括各种服务器、存储器和视频传输的应用。

PLD控制模块

在项目中,此部分硬件选用的是Altera公司的EP1C6Q240C8芯片。

此模块的主要功能是实现与CY7B933接收芯片的接口,把数据从CY7B933接收进来,并缓存数据。这部分功能均由VHDL语言编写的功能模块实现。主要有两个功能模块:RECEIVE与FIFO。RECEIVE模块主要负责从CY7B933接收数据字段;FIFO模块主要负责缓存数据。

RECEIVE模块

RECEIVE模块的功能是实现与CY7B933接收芯片的接口,把数据从CY7B933接收进来。其工作方式是以一个传输流包为边界接收数据的。

首先,RECEIVE模块会检测传输流包的边界,通过查找包头字节(固定为0x47)间的字节数来确定。因为包中数据也可能含有0x47,所以要牺牲3个包的数据来检查3次。当发现0x47这个字节的时候,就会触发一个内部的计数器开始计数。当计数到188后,如果下一个字节又是0x47,说明传输流包属于188个字节的包,那么计数器被清零;如果下一个字节又是0x47,说明传输流包属于188个字节的包,那么计数器被清零,否则计数器清零并重新开始检测边界。

当检测到边界以后,RECEIVE模块开始接收数据包。计数器会从零开始计数,在接收数据的过程中使能wrreq输出有效信号,同时把数据输出到下一级。当计数到188时,表示一个数据包接收完成。当一个包的数据接收完之后,计数器清零,并置ts188,保持高电平一个时钟周期。下一个周期检测数据是否为0x47,如果是,说明是下一个数据包的边界;否则,说明出现了错误,并重新回到上一段所说的检测数据包边界的状态。

此外,PLD模块内会有一个专用计数器记录空包数,当接收到数据包后,会首先检测此数据包是否为空包,如果是空包,PLD模块会把这个空包删除,并在计数器中加1。如果接收的不是空包,就会把计数器的值加到这个数据包的私有字段中,并缓存到FIFO。然后计数器自动清零。这样处理数据包的目的是为了减少网络传输的数据流量,从而可以传输更多的传输流数据。把计数器的值加入私有字段是为了在计算机接收到数据后,可以把原来的空包恢复出来,从而保证原传输流数据的完整性。

FIFO模块

FIFO模块的功能是从RECEIVE模块接收数据,并缓存起来。当RECEIVE模块接收完一个完整的传输流数据包之后,会发送ts188或ts204的中断信号给DSP,DSP就会启动EDMA功能从FIFO模块接收数据。DSP与FIFO模块采用异步连接的方式,具体的接收操作在DSP部分说明中再加以描述。

DSP算法处理模块

此模块主要由以TMS320DM643为核心的嵌入式系统组成。主要实现从PLD模块接收传输流数据包,把数据包打包成TCP/IP格式,并实现对网络接口(BCM5221)控制模块的初始化,然后把数据包传送到网络模块。

为了实现上述功能,必须建立起一套以TMS320DM643为核心的基本系统。

系统的具体配置

时钟配置:EMIF内核时钟ECLKIN是133MHz。此外,系统的外设总线、EDMA传输和L2存储器的工作时钟为CPU内核时钟的1/2,即300MHz;片上定时器的工作时钟为CPU内核时钟的1/8,即75MHz。

中断配置:TMS320DM643除了RESET和NMI引脚提供外部不可屏蔽中断请求输入以外,还有两个外部中断引脚GP0[5]/EXT_INT5、GP0[7]/EXT_INT7,以提供可屏蔽的外部中断请求输入。系统中,EXT_INT5外部中断用作PLD模块的请求接收数据信号,每当PLD模块接收完一个传输流包,就会发送一个外部中断信号给DSP,通知DSP接收数据。此外,EDMA中断用于接收完一个包的数据后做后续处理。

系统对EMIF的使用情况:

系统在CE0空间扩展了4M



评论


相关推荐

技术专区

关闭