电视技术杂志文章格式
IPTV网络测试仪中以太网控制器的设计与实现
张 三,李 四,王五六
(重庆邮电大学 通信网与测试技术重点实验室,重庆 400065)
*1
摘 要:针对IPTV网络的监测与维护,结合目前网络的快速演进,在综合考虑业务发展和运营商实际需求的基础上,设计了IPTV网络测试仪中的以太网控制器,对仪表的系统架构、以太网控制器的算法与链路层提取指标等进行了阐述,并通过FPGA对其进行仿真及验证,结果证明,此方案设计具有高度的可靠性和稳定性,在IPTV网络测试仪中得到了良好的应用。 关键词:IPTV;以太网控制器;FPGA
【中图分类号】TN949.6 【文献标识码】B
Implementation and Design of Ethernet Controller on IPTV Network Tester
ZHANG San, LI Si, WANG Wu-liu
(Key Laboratory on Communication Networks and Testing Technology, Chongqing University of Posts and
Telecommunications, Chongqing 400065, China)
Abstract: In view of the monitoring and maintenance on IPTV network, together with the rapid evolution of the network, to cater to the requirement of the service evolution and the providers’ reality, the Ethernet controller of IPTV network tester is designed in this paper. And then, the architecture of the tester is described, the algorithm and indicators extraction of the Ethernet controller are analyzed. Meanwhile, the simulation and verification are also given based on FPGA. The simulating results prove that the design has reliability ,stability and good applications in the IPTV network tester. Key words: IPTV; Ethernet controller; FPGA
1 引言
目前,在世界经济发展相对减缓的情况下,交互式网络电视( IPTV)[1]作为三网合一的典型应用技术,其发展仍处于不断深入的趋势,其应用更是帮助通信产业在全球范围内逆流而上,不断发展。同时,IPTV作为一种利用宽带或有线电视网,集互联网、多媒体、通讯等多种技术于一体,向家庭用户提供包括数字电视在内的多种交互式服务的综合技术备受业界的广泛关注,对信息化和工业化的融合,对推动各国现代化的发展,特别是信息产业的发展起着至关重要的作用。
IPTV业务是利用IP网络,把来源于电视传媒、影视制片公司、新闻媒体机构、远程教育机构等各类内容提供商的内容,通过IPTV宽带业务应用平台(该平台往往不仅支持TV,也支持其他业务)整合,传送到用户个人电脑、机顶盒+电视机、多媒体手机(用于移动IPTV)等终端,使得用户享受IPTV所带来的丰富多彩的宽带多媒体业务内容。伴随着IPTV业务的不断深入开展,对于IPTV业务最后一公里维护与测试已成为亟待解决的问题,由此,IPTV网络测试仪应运而生。
2 总体架构
IPTV网络测试仪主要应用于IPTV业务最后一公里的线路开通和故障排查。目前,运营商集中发展的IPTV用户主要分两类:普通用户和大客户(如宾馆等)。对于普通用户,IPTV业务的接入主要以ADSL为主,有少量的FTTx方式;对于大客户,IPTV业务的接入主要以光纤接入到CPE,然后通过以太网交换机分发到各个楼层。因此,IPTV网络测试仪必须同时支持这两种IPTV业务的维护。当前的IPTV承载线路[2-4]主要分两大类:第一类是xDSL线路,包括ADSL,ADSL+,ADSL2和ADSL2+,用于传输速率相对较低的场合;第二类是以太网线路,其速率从10~1 000 Mbit/s,主要用于传输高速数据。IPTV网络测试仪主要针对xDSL线路和以太网线路(10/100/1 000 (Mbit/s))的维护与测试,可以对线路指标及其承载的信息如视频1
国家新一代宽带无线移动通信网重大专项(2009ZX03002-009);国家“863”重大专项(G2009-09)
质量等方面进行测试。
仪表主要由ADSL接入、以太网接入、FPGA处理、STB处理、VoIP处理、SD/SDHC卡、SDRAM、CPU控制、3.5 in触摸屏以及电源管理部分组成(见如图1)。在系统总体设计时,考虑到FPGA可以提供以硬件为中心的可编程特性,在深度分组处理、软件可升级性、硬件可升级性及复杂分类查表等方面具有实时、高效、灵活的特点,且开发周期短,能够形成具有自主知识产权的内核,还可以最终形成自己的ASIC(Application Specific Integrated Circuit),因此在设计中选择FPGA实现方案。如图1所示,FPGA处理部分包括:Utopia接口、ATM信元处理(ATM/IP协议转换)、MII接口、以太网MAC处理(MAC/IP协议转换)、IP处理及指标提取、CPU控制接口。
图1 IPTV网络测试仪系统架构图
本文的工作重心为IPTV网络测试仪中以太网控制器的设计与实现,具体包含:MII/GMII接口时序仿真;10/100/1 000(Mbit/s)以太网控制器算法设计与实现。
3 以太网控制器设计
3.1 算法设计
在设计IPTV网络测试仪的以太网控制器[5-6]时,提出了两个关键性的算法思想:半字节定位法与调度控制算法。1) 通过半字节定位法对10/100(Mbit/s)以太网数据帧接收进行准确定位,计算并提取相应的链路层指标,而且能对帧长度进行有效的判断,提交上层处理或显示,并高效实现以太网协议与IP协议的转换。2) 通过调度控制算法对ARP包、RARP包和IP包进行有效的调度和处理,并将主机分为只收、只发、收发和转发4种模式进行调度控制,识别不同模式,对其进行相应的处理和控制,实现IPTV网络测试仪在以太网接入时的灵活运用。 3.1.1 半字节定位法
10/100(Mbit/s)以太网设计中,首先定义32位计数器Counter_32(32 bit计数一次),半字节寄存器offset(4 bit计数一次),目的MAC地址、源MAC地址、类型、数据和IP长度分别用dest_mac,sour_mac,type,data和IP_Len表示。对于超长帧和超短帧用Counter_32指示与offset偏移共同进行定位和计算。
1) 定位/计算公式
设Kcnt为32位计数,Icnt为8位计数,Jcnt为4位计数,帧长为Frame_Len。则基本式定义为 Kcnt= Jcnt×8 (1) Icnt=Jcnt×2 (2) 通过偏移定位计算得出(用程序语言表述):
(1) dest_mac定位,即from Kcnt=0&&Jcnt=0 to Kcnt=1&&Jcnt=3; (2) sour_mac定位,即from Kcnt=1&&Jcnt=4 to Kcnt=2&&Jcnt=7;
(3) type定位,即from Kcnt=3&&Jcnt=0 to Kcnt=3&&Jcnt=3; (4) PPoe头定位,即from Kcnt=3&&Jcnt=4 to Kcnt=4&&Jcnt=7; (5) IP_Len定位,即from Kcnt=5&&Jcnt=4 to Kcnt=5&&Jcnt=7; (6) 超短帧范围(单位为byte),即01518或Icnt>1518; (8) 帧长计算(单位为byte),即Frame_Len=Kcnt*4+Jcnt/2;或Frame_Len =IP_Len+24。 2) 伪代码
当接收到0xAB时,进入数据接收状态,32位计数器counter32,4位计数器为offset,8位计数器counter8
3.1.2 调度控制算法
1)数据调度控制
当数据接收处于Receiving状态,根据半字节定位法得到的类型指示type,参照IEEE802.3标准进行分析,若type为0x0800,则此帧承载的净荷数据是IP数据包,调度至IP解析模块进行处理;若type为0x0806,则此帧承载的数据是ARP包,调度至ARP请求/应答模块进行处理;若type为0x8035,则此帧承载的数据是RARP包,调度至RARP请求/应答模块进行处理。通过此调度控制方式对ARP包、RARP包和IP包进行有效的调度和处理,以保证整个测试仪处于工作正常稳定的状态。 2)主机模式调度控制
在主机模式调度中,采用如图2所示的通信方式进行分类:①表示Recv_Only(只收模式);②表示Send_Only(只发模式);①和③表示Forward(转发模式);④表示Send_Recv(收发模式)。在设计以太网控制器时将这4种模式进行合理的调度控制,通信过程中,首先识别该主机属于哪种模式,然后按照相应的处理方式对其进行处理和控制,实现IPTV测试仪在以太网接入时的灵活运用。
在网络中,IPTV网络测试仪处于桥接状态时,可为Forward或Recv_Only模式;当仪表用作终端监控接收时(可替代机顶盒),须为Recv_Only模式;而当仪表处于自身或者链路测试状态时,如处于链路带宽、速率等测试过程中,主机则为Recv_Only或Send_Only模式。
图2 以太网中主机模式调度控制
3.2 设计方案
以太网MAC控制器是FPGA设计的一个重要部分,主要分为10/100/1 000(Mbit/s)这3种接入方式。考虑到仪表的实际工作需求,由于工作频率不同以及芯片匹配度的问题,将其分为两种模式:10/100 (Mbit/s)模式和1 000 Mbit/s模式。
在方案设计时,IPTV网络测试中以太网MAC控制器由以下7个模块组成(见图3):1) MII接口模块主要完成MII接口时序仿真,并完成帧数据串并(并串)转换,10/100 (Mbit/s)的数据是4位,1 000 Mbit/s的数据是8位,帧接收时,为了后续处理方便以及高效,需将其串并转换为32位的并行数据;帧发送时,则进行并串转换操作,实现32位/4位或32位/8位之间的转换。
2) 接收/发送时钟同步模块主要解决PHY芯片接入的数据时钟与FPGA系统时钟的同步问题,本设计中利用双时钟的FIFO实现接收和发送时钟同步。3) 数据接收/发送模块:数据接收模块实现MAC帧接收判断和数据处理,如:错误统计,错误类型指示,参数提取,IP包提取,CRC校验等。数据发送模块实现CRC生成以及MAC帧封装。4) 发送/接收接口模块负责与应用程序的交互,通过CPU进行交互。可以设置MAC的工作模式并读取MAC的状态信息。该接口还可用于上层协议与MAC之间的数据交换,如MAC地址,错误类型统计,错误计数等信息。本模块使用DPRAM进行数据交互。5) 接收/发送缓存模块负责将MAC帧信息中的IP数据进行缓存,以保证模块之间通信无阻。防止数据丢失。6) 调度控制模块负责对ARP/RARP的响应,设置调度控制模块是为了控制ARP和帧发送模块的优先级,若正在发送帧数据,就等待该帧发送完毕,立即发送ARP响应;若帧发送模块处于空闲状态,则直接发送ARP响应。7) ARP/RARP模块主要负责ARP/RARP包的处理,包括以太网地址调换,IP地址调换以及操作字符修改等操作。
图3 以太网控制器设计方案
本设计对数据接收和发送模块的功能实现都是采用状态机的方式。以数据接收模块为例,帧接收时,进入Idle_state状态(见图4),若信号RX_DV信号为1,则开始接收数据,转入SFD_state状态;若判
断SFD=0xAB,则转入Receiving状态,在此状态对MAC帧进行处理,CRC校验,错误判断,错误指示,错误统计。待RX_DV信号为0时,接收结束并校验结束,直接进入Drop_State状态,无论判断结果是正确帧还是错误帧,都自动转入Idle_state状态,等待下一帧的接收和处理。
图4 MAC接收状态转移图
3.3 链路层指标提取
IPTV网络测试仪中链路层的指标提取是以太网控制器设计必不可少的部分,用户可通过界面显示的MAC指标判断分析,并把握以太网接入的质量及情况。在本设计中,通过计算和分析后获取的指标为:MAC地址错误;类型错误;长度错误;CRC错误;帧接收错误;Ether Rate ;MAC地址;超长帧和超短帧;接收字节数;接收帧总数;接收帧丢弃数;发送帧总数;发送字节数等。
4 FPGA仿真实现及验证
本设计是基于Quartus II 7.2进行仿真验证的,采用的芯片是CycloneIII系列的EP3C120F484C7。为保证在设计的正确性和可靠性,由于工作频率不同,故对10M/100M和1000M模式分别进行了功能仿真和时序仿真,仿真结果如下: 4.1 10M/100M以太网控制器时序仿真
10M/100M以太网控制器的实现包含数据帧发送和数据帧接收,以及MII接口时序仿真,PHY芯片时钟为25 MHz,FPGA芯片时钟设为100 MHz。如图5所示为链路层收发环回(实现自发自收)时序仿真结果,发送的数据包中目的MAC地址是001C257065A9。图5中显示,收到的数据包中目的MAC地址与发送的一致,由此证明仿真结果正确。
[7]
图5 10/100 (Mbit/s)收发环回时序仿真图(电脑截屏)
4.2 1000 Mbit/s以太网时序仿真
1 000 Mbit/s以太网的实现也包含数据帧发送和数据帧接收,以及GMII接口时序仿真,芯片时钟为125 MHz,FPGA芯片时钟设为125 MHz。PHY如图6所示为链路层收发环回(实现自发自收)时序仿真结果。发送的数据包中净荷类型是0800(承载的IP包)。图6中显示,从收到的数据包提取出的净荷类型是IP包,与设计预期结果完全一致,证明设计思路是正确可行的。
图6 1 000 Mbit/s收发环回时序仿真
本设计已在IPTV测试仪硬件电路上进行了实际测试。通过示波器观察,输出结果与预期结果基本吻合,其可靠性和正确性得到验证。
5 小结
目前,该IPTV网络测试仪已应用于多省运营商,功能和性能指标得到广泛的认可。文中给出了IPTV网络测试仪中以太网控制器的算法思想及FPGA实现,该方案适用于10/100/1 000(Mbit/s)以太网接入模式,实现了以太网协议与IP协议之间的转换,设计中的MAC核属于独立设计,并实现了全双工和半双工通信方式的自动识别,充分体现了该以太网控制器的稳定性与可靠性。
参考文献:
[1] 严华. IPTV技术与发展探讨[J].计算机应用,2008(2):59-61. [2] IEEE802.3,Standard for Information technology. Part 3: (CSMA/CD) access method and physical layer specifications[S].1997.
[3] 陈明.网络协议教程[M].北京:清华大学出版社,2004.
[4] BOUDEC L J Y, MERZ R. DCC-MAC:a decentralized MAC protocol for 802.15.4a-like UWB mobile ad-hoc networks based on dynamic channel coding[C]//Proceedings of the First International Conference on Broadband Networks. [S.l]:IEEE Press,2004:396-405.
[5] 赵永忠,兰巨龙,刘勤让.10Gbps线路接口设计分析与实现[J].微电子学与计算机,2005,22(2):158-160.
[6] 许全泉,胡文江,苏里.基于FPGA的以太网控制器设计[J].新特器件应用,2007,9(6):21-25. [7] Altera Corporation.2005.Quartus II Version 5.1 Handbook[M].QII5V1-5.1.21—3O.2005.
作者简介:
张 三(1985-),女,硕士生,主研通信协议及软件;
李 四(1972-),博士生导师,主要研究方向为第三代移动通信测试技术、宽带信息网、NGN网络等; 王五六(1984-),女,硕士生,主研通信网测试技术。
另外,如果文章出现了表格,也应按顺序进行编号,同时,表号和表题应在表格前,且在表头中应标明必要的单位,如:
表2 H.264视频码流分析
同时,如果出现的是曲线图,应标明横纵坐标的含义和单位,如:
系统总的传输功率 dB
系统中的用户数
图2 3种算法的总传输功率随用户数变化曲线
如果文章中出现了多个公式,同样应统一顺序编号,编号写在式子尾部。式子中出现的所有变量都应在合适的位置进行解释。如:
“但实际上,各样本不一定完整地收看一个栏目,即在该时段内,样本可能还收看了别的栏目。所以, 更准确的收视率应为
P nm=[Tn/((tn+1-tn)×N )]×100% (2)
式中:(tn+1 - tn为)为EndTime和StartTime的时间差,Tn为样本收看该段节目的总时间。显然P ′nm ≥
P nm。“