基于SOPC技术的以太网远程网桥的设计与实现
原创性声明
声明:本文的核心思想及方案设计实现均为本文作者原创,除了文中特别加以标注的地方外,论文中不包含其他人已经发表和撰写过的研究成果。
设计题目:基于SOPC技术的以太网远程网桥的设计与实现
作者签名: 吴昆
日期: 二OO六年六月二十日
Design and implementation of the E1-Ethernet adapter based on SOPC
摘要:本文主要介绍在以太网远程网桥中多路E1信号输入情况下的数据缓存、时钟恢复、信号编码转换以及NIOS处理器平台的设计,并用 Altera 的 Cyclone 器件实现的整个过程。包括简单介绍以太网网桥的原理,SOPC技术在系统中的作用和地位,并详细介绍了此系统用fpga 设计实现的过程。
Abstract:This paper introduce the design and implementation of the E1-Ethernet adapter based on SOPC platform, and it is implemented by Altera Cyclone series product. The introduction of this paper includes the function module such as E1 data buffer,E1 line clock recovery, frame synchronization,E1 frame organize, HDB3 code and decode, interface to NIOS processor in the whole system, and the details of the design and implementation by FPGA.
1. 概述
在传统的电信网中,采用SDH为主的网络架构,以TDM方式向用户提供语音和窄带数据业务。SDH网建设成本高、带宽利用率低,而且难以提供多种业务。随着数据业务的快速增长以及IP网络技术的进步,IP技术日益成为新一代传输网络的主导。与此同时,传统的话音业务和其它基于电路交换的业务如何被IP网络支持成为众多电信运营商所面临的一大难题,虽然目前已经出现了VoIP技术,但是其应用仅局限于话音业务,且通话质量不高,还需要扩展的PBX。为此,TDMoverIP技术应运而生,即在IP网上透明地传输TDM业务。我们在这里称之为以太网远程网桥,以基本原理是将以太网数据不做解释和处理,直接封装为以太网数据包,然后通过基于分组交换的以太网传送到目的端,目的端再将收到的数据包打开,并恢复出原始的TDM数据流。如图1所示。对用户而言,不需要考虑中间的传输媒介,相当于为用户提供一条透明的通道。
图1 TDMoverIP
2001年,城域以太网论坛(MEF)就开始了有关运营商级以太网架构的研究,并达成共识。随着以太网业务的不断发展,以太网正在向城域网甚至广域网迈进。另外,现在E1/T1以及SDH/SONET等专线业务很普遍,为了使以太网也能够提供这些基于电路交换的业务,以太网论坛于2002年开始定义了在城域以太网上提供电路仿真业务的需求。电路仿真即通过异步网络传送同步电路(如E1/T1),最初是用在ATM上仿真,现在可扩展到IP/以太网。这里,将以太网电路仿真技术统称为TDMoverIP。
TDMoverIP相对于VoIP,其优越性是十分明显的,它主要有以下特点:
1)对于协议和信令是透明的
2)实现比较简单且价格不贵
3)提供低延迟的高质量语音,通过可配置的包的大小将时延和开销降至最低
4)保留了现有PBX系统的特性和功能
5)以各种速率支持modem、传真和图像服务
6)保持了E1帧的完整性,支持各种协议,包括帧中继、ATM、ISDN等
本设计所采用的硬件平台,是基于Altera公司的大容量、高密度的FPGA器件。FPGA(Field Programmed Gray Array)是一种大规模的可编程逻辑器件(Programmed Logic Device)。在二十世纪九十年代末,FPGA器件的复杂度已经能够在芯片内实现整个系统,完整的片上系统(System On Chip)的概念是指在一个芯片中实现用户定义的系统。在一个SOC设计中,将涵盖到包括微处理器、DSP芯片、存储器件、I/O、控制逻辑、混合信号模块(Mixed-Signal Blocks )等在内的许多部分。
在系统设计复杂度不断的提高及新产品市场周期不断缩短的压力下,把FPGA及微处理器的核心内嵌在同一芯片上,构建成为一个可编程的SOC系统体系框架结构,即所谓的可编程芯片系统SOPC(System on a Programmable Chip),从而为系统设计者提供了又一灵活快捷的设计方法与途径。{{分页}}
2. 系统实现方案
2.1 硬件组成
本系统在功能实现上可以分为三个子模块,以下将分别介绍。
NIOS系统平台:这部分构成了系统的核心,它包括NIOS软核处理器、MAC控制器、SDRAM控制器、FLASH控制器以及系统调试所需的JTAG、URAT等外设接口。NIOS处理器与外设间,均通过其自定义的Avalon总线连接,达到数据快速交换的目的。
E1接口模块:这部分实现与交换机的底层接口功能,包含E1帧的产生,线路信号特定波形的产生与转换,2.048MHz线路时钟的恢复,E1物理线路的阻抗匹配和过流过压保护。为了减轻CPU的负担,系统的物理层和数据链路层的大部分工作由FPGA内部逻辑来完成。包括链路的同步建立与管理,数据的CRC校验,数据块的组织等。
以太网接口模块:这部分主要完成系统以太网侧的功能,包括IP数据包的封装与拆封,以及MAC层数据处理,由片上的MAC控制器通过MII接口与物理层控制器连接。
另外,外挂的FLASH用以装载ucLinux操作系统及应用程序,SDRAM用于程序运行中数据的缓存。电源和时钟模块为系统提供所需的各种电源与时钟。
本系统的硬件结构如图2所示。
图2 系统硬件结构图
2.2 软件架构
本文的以太网远程网桥采用了ucLinux作为嵌入式操作系统,ucLinux是一免费的且源代码公开的操作系统,它具备现代的UNIX系统所具有的大部分特征,其中包括真正的多任务、虚拟内存、共享库、需求装载、优秀的内存管理以及TCP/IP网络支持等。ucLinux是一种嵌入操作系统,它通过裁减标准的Linux,体积更小、功能更强、快速稳定,更具有针对性。再在裁减内核的基础上编写设备驱动程序,为用户程序中的系统调用提供接口。本设计为对等模式下的UDP通信,其模型如图3所示。
它的通信步骤如下:
1)建立一个数据报方式的套接字;
2)绑定地址,系统调用bind();
3)进行数据传输,使用系统调用sendto()和recevfrom()分别用于发送和接收数据报
系统所需的两个最基本进程分别用于从以太网上读取数据交给TDM帧处理模块以及接收TDM帧处理模块传来的数据按照一定的规则打包交给以太网发送。这两个进程在系统中处于相等的位置,并发运行。
图3 对等模式的UDP通信 {{分页}}
3. 课题涉及关键技术介绍
3.1 TDMoIP的关键问题
1)服务质量
TDMoverIP并未提供机制保证实时交互或提供其它服务质量保证,因此,它需要底层服务去实现;链路层通过采用VLAN优先权域赋予TDMoIP信息流优先权;网络层通过采用经过可控路由的第三层交换机和路由器进行设置,必须考虑这些优先权,这样给TDMoIP数据的传送提供了一个相对良好的网络环境。在这意味着网络具有优先权分级、有效带宽。有效带宽可由许可权控制和话务量工程保证低误码率、较低的包倒序率或低丢包率。
2)时钟恢复
当在以太网上实现TDM流传输时,必须实现时钟的同步传输,但是基于时间统计复用以太网,并不能传输时钟信息。广义上有两种方法可以克服这个困难,一是通过某种不依赖于以太网本身的手段提供时钟信息,二是在以太网上传输所需定时信息。最好的方法就是从TDMoIP数据流中提取恢复时钟,这种机制利用了源端产生数据流的速率恒定的特点,虽然这些数据流是通过时延随机变化的数据包传输到目的端的,但经过缓冲处理可以消除这种影响。为理解这种机制,首先假设目的端取出的时钟,频率低于源端的参考频率,缓冲区中数据写入的速率将高于读取的速率。这样,缓冲区填充级别会不断提高,目的端根据填充级别的提高趋势相应提高本地时钟频率,这样两端的频率最终将会一致。该方法只能用在被仿真数据流的速率是恒定的情况下,且系统时钟频率锁定的时间比较长。。通过使用更复杂的时钟恢复算法,可以更精确地跟踪系统时钟变化,同时获得最佳的反应时间。
3)抖动和丢包
以太网络中的数据包到达目的地时的延迟具有随机性,这种延迟的变化被称为抖动。为补偿在任一以太网络中都存在的包延迟,必须在复用器中采用抖动缓冲器。这个缓冲器的长度应该是可以设置和动态调整的,也就是说根据延迟变化的统计数据增大或减少缓冲器的长度。尽管有各种流量保证机制,数据包经常以错误的顺序到达,甚至根本不会到达。为了处理丢包和错序,应该采用包的顺序合成机制和丢包隐藏机制。这种机制应该能在抖动缓冲器中跟踪包的序列号,当检测到丢包时,应插入包以保持定时时序。当包的序列号或是其它可检测到的头部出错时,可将该包丢弃。当包的到达顺序不对时,应进行交换,可能情况下,插入的包应确保正确的同步比特发到TDM网络。对于TDMoIP,常在接收下一个信息包后被告知丢包。因此,在丢失的信息包前后的样本都是可用的,这时可以通过插补来估计丢失的样本值。对于语音业务,数据包的丢失会导致出现短暂的背景噪音,采用适当机制能有效降低数据包丢失的影响。
3.2 SOC系统平台的构建
3.2.1 NIOS软核处理器的实现
NIOS软核RISC处理器,是Altera Excalibur嵌入处理器计划中第一个产品,它成为业界第一款为可编程逻辑优化的可配置处理器,支持16位/32位精简指令集。
NIOS具有以下特点:
1) 较高的性能。全功能的Nios处理器性能超过200 DMIPS,而且轻易地实现任何数量的处理器或将不同的处理器核组合在一起。
2) 较低的系统成本。通过将处理器、外设、存储器和I/O接口集成到一个单一的FPGA中,从而降低了系统成本、复杂性和功耗。
3) 设计的灵活性更强。Nios基于可编程器件,易于修改与更新。从而使基于Nios II处理器的产品避免了处理器的更新换代而带来的损失, 延长了产品的生命周期。
在设计中,Altera把可编程逻辑的固有的优势集成到嵌入处理器的开发流程中,一旦定义了处理器之后,设计者就“具备”了体系结构,可以马上开始设计软件原型。CPU 周边的专用硬件逻辑可以慢慢地集成进去,在每个阶段软件都能够进行测试,解决遇到的问题。另外,软件组可以对结构方面提出一些建议,改善代码效率和处理器性能,这些软件/硬件权衡可以在硬件设计过程中间完成。
3.2.2 各种外设接口的实现
系统所需的多种外设,如以太网接口、FLASH、SDRAM、UART等接口,都可以方便地应用Altera及其合作伙伴提供的IPcore来实现。借助Altera提供的系统级设计工具SOPC Builder,大大减轻了设计的难度。它包括两方面的内容:第一,直观的图形用户接口(GUI),便于设计者准确地添加和配置系统所需的外设(包括存储器,定制外设和 IP 模块)。第二,它会自动完成系统集成工作,这样设计者不必拘泥于定义存储器映射,中断控制和总线控制这样的工作。
3.3.4 片内异步fifo的实现
当今集成电路设计的主导思想之一就是设计同步化,但在实际的应用系统中,实现完全同步化的设计非常困难,很多情况下不可避免地要完成数据在不同时钟域间的传递(如高速模块和低速模块之间的数据交换)。这时,如何保持系统的稳定,顺利完成数据的传输就成为一个重要的问题,这也是异步电路设计中最为棘手的问题。
通常的做法是采用对每位信号加同步器或增加握手信号来解决这一问题,但这样会增加系统的复杂度且影响传输速度。本文的做法是在两个时钟域的交界处设计一个异步FIFO,通过它来实现数据流的传输。由发送时钟域将数据写入,接收时钟域将数据取出,在数据传输的同时实现了数据的缓存,因此是一种较理想的方法。
不同时钟域间数据传递的最重要问题就是亚稳态问题。亚稳态是在两时钟敏感沿靠得很近、第二级时钟敏感沿到来时其输入数据不稳时发生,可将其视为仅仅是第二级触发器输入信号不稳定所导致的结果。只要使输入信号稳定,就能解决亚稳态问题。
针对如上所述亚稳态的特点,可设计一个同步器来保证数据的稳定传输以解决这个问题。其原理在于使信号在新的时钟域中先稳定下来再进入相关的逻辑,以保证信号与新的时钟同步。本设计在时钟域的接口处就采用此法。
在本系统中,采用了Cyclone系列FPGA内部的RAM块组成了双口RAM实现了异步fifo,实现了在不同时钟域中数据传递。
3.3 E1帧的产生和数字传输码
3.3.1 E1同步机制的处理
E1链路由成帧,成复帧,不成帧三种传输模式,在成帧和成复帧模式下0时隙都是用来传基本帧同步码,复帧模式下每一复帧的第一子复帧第16时隙的传复帧同步码。本设备能实现基本帧同步和复帧同步,支持成帧和成复帧的E1链路数据接口。
根据CCITT相关要求,E1接收帧同步机构应遵守下列规定:
1)同步捕获:在系统处于‘捕获’状态下,
把检测到的帧同步码型作为‘捕获’对象。若在隔一帧的同一位置检测到同步码,则立即进入‘同步’状态。
2)失步条件:在系统处于‘同步’的状态下,若
。在一个偶帧内的TS0的b0位置没检测到同步码;
。在第二偶帧内的同一位置也没检测到同步码;
。在第三偶帧内的同一位置还没检测到同步码
则立即进入失步状态,开始同步捕获。
3)在‘失步’捕捉状态下,它把检测到的第一个同步码作为捕获对象,若在同一位置没有检测到同步码,则立即‘重新捕获’,即把其后检测到的同步码作为捕获对象重新捕获操作,直到进入‘同步’状态为止。
参考以上规定的本设备采用基本帧同步状态转换图如下图4所示。
图4 E1 帧同步状态机原理图 {{分页}}
复帧失步采用以下规则判断:在8ms内(含四组复帧定位信号)三次或三次以上没有捕捉到正确的复帧定位信号。另外,当系统处于伪帧同步态时,将导致一秒内出现915个以上CRC块错误,也将引起复帧失步。LOS告警和AIS告警也会使系统处于帧失步状态。
复帧定位系统重新进入同步态的判断依据为:在8ms内至少收到两组复帧定位信号,且这两组定位信号的间隔为2ms(或2ms的整数倍)。
3.3.2 HDB3编解码的实现
在数字通信系统中,为了使信息适合于在信道上传输,由终端机发出的数字信息必须编成合适的传输码序列。在电缆中传输的应是双极性码,如AMI码、HDB3码等。AMI码曾被CCITT推荐为传输型之一,但由于这种编码方式有可能存在对定时提取有影响的长连零,而HDB3码很好地克服了这个缺点,所以现在E1线路中多采用HDB3码。
HDB3码是AMI(Alternate Mark Inversion)码的改进型。AMI码是用交替极性的脉冲表示码元“1”,用无脉冲表示码元“0”。为了防止电路长时间出现无脉冲状态,HDB3码的编码规则是:
1) 码流中连“0”码个数不超过3个时,其编码规则与AMI码相同:码元“0”用0电平表示;码元“1”交替用50%占空正或者负矩形脉冲表示。
2) 当出现四个连零用取代节取代。取代节有两种,分别是“BOOV”和“OOOV”。这里的B和V均为传号脉冲。
3) 当相邻破坏点V中间有奇数个原始传号(不包括B码)时,用“OOOV"取代。
4) 当相邻破坏点V中间有偶数个原始传号时,用“BOOV"取代。
5) 用“BOOV”取代时,B码和V码与它们前面一个原始传号极性相反。
6) 用“OOOV”取代时,V码与它们前面一个原始传号极性相同。
根据上述HDB3编码原则,可得到HDB3编码的原理框图,图5所示:
图5 HDB3编码原理框图
HDB3译码电路完成编码的逆过程。由于HDB3码中的V码破坏了极性交替原则,因此,在接收端很容易找到它。在译码时,将破坏点V检出,包括它前面的三位码还原为“0”码,就完成了HDB3的译码工作。关键之处是检出破坏点、取消“取代节”。HDB3解码原理框图如图6所示:
图6 HDB3解码原理框图
4. 总结
SOPC 是一种新的系统设计技术,也是一种新的软硬件综合设计技术。与传统的FPGA+CPU构架相比,它可以很快地将硬件系统(包括微处理器,存储器,外设以及用户逻辑电路等)和软件设计都放在单个可编程的芯片中,以达到系统级的设计。这种设计方式,具有开发周期短以及系统可修改等优点,CPU 本身是以软核的方式实现,其功能可根据需要进行定制。设计完成的 SOPC 可以通过 HARDCOPY转为 ASIC 芯片,从而可以实现快速量产。SOPC Builder 不但在硬件设计上提供了支持,在软件上也为设计者提供了较好的支持,方便驱动程序和上层应用软件的编写。本设计实现的以太网网桥,充分发挥了SOPC平台的优越性,具有功能可扩展、系统升级简便、低成本等一系列优点,也显示了SOPC技术在未来网络设备领域的巨大优势。
5. 参考文献
【1】 ATM Forum:atm-vtoa-0078.Circuit Emulation Service Interoperability Specification,
【2】 Stein Y(J),Shashoua,Insler ,et al, draft-anavi-tdmoip-06,IETF,April200
【3】 Stallings,W. Data and Computer Communications,5th Ed.Macmillan,1997
【4】 Altera Corporation :Nios Software Development Reference Manual
【5】 Altera Corporation : Nios II Processor Reference Handbook
【6】 Altera Corporation : cyclone_device_handbook
【7】 谢希仁. 计算机网络. 北京:电子工业出版社.2004
【8】 樊昌信,詹道庸,徐炳祥,吴成柯. 通信原理. 北京:国防工业出版社.2003
【9】 林建中,王缨,郭世满. 数字传输技术基础. 北京:北京邮电大学出版社.2003
【10】 杨世平,张引发,邓大鹏,何渊. SDH光同步数字传输设备与工程应用.北京:人民邮电出版社.2001
【11】 潘松,黄伟业,曾毓. SOPC技术实用教程. 北京:清华大学出版社. 2005
【12】 唐思章,黄勇.SoPC与嵌入式系统软硬件协同设计.单片机与嵌入式系统应用.2004
【13】 俞道法,李喜民,李世东,裴济杰. 在IP网上实现TDM业务的传输. 电信网技术. vol 8,2005.8
【14】 温兆泉, 郭树旭.IP网络传输话音和TDM业务的新技术—TDMoIP. 信息技术 VOL.28 NO.4 Apr.2004
作者简介
吴昆,男 ,华中科技大学在读硕士研究生,从事FPGA与嵌入式系统方面的研究与开发。
联系地址:湖北武汉华中科技大学主校区 西七舍140室 430074
E-mail: rickywu1024@126.com
电话:13971495114
评论