EDN China > 设计实例 > EDA工具与服务 > IP核 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

基于NIOSII IP核的video over ip设计

宋灿?? 2012年11月27日 ?? 收藏0
0 引言

本文介绍的设计方案基于Altera 公司的NiosII IP 核(知识产权功能模块), 实现了MPEG2-TS 格式数据和基于以太网的IP 网络的桥接。可以通过多个输入端口接收TS 格式的数据并打包进行以太网传输。使用的是工业标准的用户数据报协议(UDP)/IP 网络数据格式打包,并带有可选的实时传输协议(RTP)格式打包作为可选选项。所支持的网络设备硬件包括100Mbps(全双工)模式和1Gbps 以太网连接并且可以处理多达256 个独立的数据流。通过硬件打包的方式,可以实现千兆以太网性能的低延迟传输的线路速率。

1 相关网络协议及工作原理

按照连接方式, 网络协议可以分为面向连接和无面向连接两大类,分别以传输控制协议(TCP)和用户数据报协议(UDP) 为代表,而webserver 所使用的HTTP 协议就是以TCP 协议为基础的。TCP 通过三次握手建立连接之后才可以进行数据传递。整个过程是一个主从应答方式。如果超过一定时间一方无响应,那么这个连接就会失效,被服务器断开。这种协议有这可靠的连接验证机制,适合做客户机-服务器之间的对话操作,比如webserver,对网络延迟要求严格程度较高。相对应的UDP 协议常常是发送数据的一方对着某个目标地址无脑发数据,只要一开始寻找到目标网段中存在这个目标网络设备,那么数据发送就会开始。其间不会在意目标地址是否真正接收到了所发送出的数据。因此此类协议适合做实时的大码率的信号传送,对网络延迟延迟无要求,数据源和目的设备之间的通信随时可以断开,也可以随时恢复。

2 MPEG2-TS 数据在以太网中的传输

2.1 MPEG2-TS 结构介绍

基于NIOSII IP核的video over ip设计

MPEG2-TS,TS 即"Transport Stream"的缩写。它是分包发送的,每一个包长为188 字节。包的结构为,包头为4 个字节,负载为184 个字节。在TS 流里可以填入很多类型的数据,如视频、音频、自定义信息等。MPEG2-TS 主要应用于实时传送的节目,比如实时广播的电视节目。MPEG2-TS 格式的特点就是要求从视频流的任一片段开始都是可以独立解码的。简单地说, 将DVD 上的VOB 文件的前面一截cut 掉(或者是数据损坏数据)就会导致整个文件无法解码,而电视节目是任何时候打开电视机都能解码收看的。TS 是一个非常常见的实时数字信号传输方式。TS 流的数据格式如图1 所示。

2.2 以太网帧结构

以太网帧结构有好几种类型,比较典型的由以下各部分组成:前序字段、帧起始定界符字段、目的地址字段、源地址字段、类型字段、长度字段、数据字段、校验序列字段。其中有几个特性非常重要:

(1)类型字段规定了该网络帧所用到的网络协议,拥有固定的标志位可以作为特征对比的依据,也可以修改这个标志位,人为地重新指定所用的网络协议。(2)一个网络帧只使用一个网络协议。(3)TS 流数据也有着特有的标志位,可以用来数据识别。

2.3 通过Video over ip 模块的MPEG2-TS 流在以太网中的传输

任意的网络数据进入网口之后,FPGA 中的Video over ip 模块会按照MPEG2-TS 特征位以及整个帧的几个标志位加以比较, 然后作判断: 满足MPEG-TS 数据的帧且类型字段中协议标志位不为17(17表示UDP),模块会将这个标志位改为17,然后从专门的数据通道进行传输。其他数据允许直接通过NiosII 处理器。

3 实际设计介绍

3.1 硬件部分

本设计基于Altera Cyclone 系列的FPGA,而NiosII 处理器则是内嵌在FPGA 中的一个片上可编程处理器(SOPC)。我们通过Altera 提供的集成开发环境QuartusII 中所带的sopc_builder 从FPGA 中划取资源来构建硬件。整个SOPC 系统硬件部分与MCU 系统如单片机、Arm等非常类似, 是一个32 位的嵌入式CPU,有内部指令集。这一点与FPGA 芯片本身差别非常大。此外FPGA 通过一个DP83848 的PHY芯片与网口插座相连,这样网络设备的MAC 层做到FPGA 或SOPC中。NoisII 系统的硬件结构如图2 所示。

基于NIOSII IP核的video over ip设计

FPGA的程序可以通过Quartus 集成环境开发, 我们通过Verilog语言编写,然后直接通过Quartus 编译后即可下载运行。而NiosII 部分的软件则要使用Altera 提供的另一个集成环境NiosEDS,并编写嵌入式的C 语言来开发。之后再通过环境所带的编译器编译下载运行。而Video over ip 模块我们通过Verilog 语言编写,然后打包成IP 核可以被sopc_builder 加载调用。此外还需要通过NiosEDS 自带的niche_stack 网络协议栈搭建一个嵌入式webserver。

4 检测说明及小结

正如前文所说,webserver 基于HTTP 协议,该协议以TCP 协议为基础。测试时我们将一台电脑通过网线与实验板的网口相连,并通过VLC 播放器对FPGA 不间断播放MPEG2-TS 格式的视频流,同时将NiosII 上的werbserver 开启运行。如果没有Video over ip 模块,由于视频数据的码率较大,给webserver 造成极大的延迟,并很快崩溃。当我们开启Video over ip 模块之后,为保险起见,做了12 小时的连续不间断视频播放, 同时电脑通过不断刷新web 页面的方式不断访问

webserver,即以此方式检查PC 机与webserver 连接的通断。经测试,这12 小时间以及之后webserver 中的页面始终可以正常访问, 无异常情况。测试结果符合预期要求。测试过程如图3 所示。

点击查看: 基于Nios II的多媒体广告系统设计>>

点击查看: 基于Nios II的多生理参数处理系统的设计>>


?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

Video over ip? 网络协议? MPEG2-TS? NiosII?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈