一种以太网数据和e1数据的转换与级联的fpga实现方法

文档序号:7798803阅读:238来源:国知局
一种以太网数据和e1数据的转换与级联的fpga实现方法
【专利摘要】本发明提供一种以太网数据和E1数据转换和级联的FPGA实现方法,具体是一种以太网和E1的数据转化以及利用E1时隙来进行级联的FPGA实现方法。将FPGA内部分为4个模块,分别为以太网接收、E1发送、E1接收、以太网发送4个模块,并利用HDLC协议将以太网数据和E1数据进行相互转化,并利用E1的不同时隙来完成级联功能。本发明实现了采用一台主机远程操控多台设备的功能,一台主机最多可操作31台设备。
【专利说明】—种以太网数据和E1数据的转换与级联的FPGA实现方法
【技术领域】
[0001]本发明涉及一种以太网数据和El数据的转换与级联的FPGA实现方法,
具体是用HDLC协议进行以太网数据和El数据之间的转换,并且利用El的不同时隙完成多台设备的级联功能。
[0002]【背景技术】
以太网是目前应用最广泛的局域网络传输方式,它采用基带传输,通过双绞线和传输设备,实现10M/100M的网络传输,技术相当成熟。以太网以其成本低、网管简单、易于升级等优点作为宽带介入设备的首选方案,但是它具有传输距离有限的缺点。
[0003]当前社会上SDH环以及由SDH、PDH提供的大量El电路星罗棋布。对此,比较现实的方案就是利用这些已有的资源来传输以太网数据。目前应用比较广泛的是以太网桥方案,即通过El线路点对点透明传输以太网数据。但是点对点的透传具有很大的局限性,一台主机只能远程操控一台设备。

【发明内容】

[0004]针对【背景技术】存在的问题,本发明提供一种利用HDLC协议彼此转换以太网和El数据的FPGA的实现方法,其在FPGA上用HDLC协议进行以太网数据和El数据的转换外,还利用El帧格式中的32个时隙,通过El的可变时隙达到多台设备的级联功能;本发明通过El的级联,可以达到用一台主机来远距离控制多台设备的目的。
[0005]为解决上述技术问题,本发明采用如下技术方案:
一种以太网数据和El数据的转换与级联的FPGA实现方法,在FPGA内分为4个模块:包括以太网接收模块、El发送模块、El接收模块和以太网发送模块;E1芯片包括两个端口,分别为上行端口、下行端口 ;连接在一起的以太网接收模块和El发送模块为上行链路,连接在一起的El接收模块和以太网发送模块为下行链路,以太网接收模块、以太网发送模块均与以太网芯片连接,El发送模块、El接收模块均与El芯片中的上行端口、下行端口连接;步骤1、以太网接收模块将以太网数据进行HDLC协议的转换:
处理以太网芯片发送出来的4位数据,去掉以太网数据的8字节帧头和4字节FCS校验位,对其余的4位数据进行并串转换;
步骤2、El发送模块将经过HDLC协议转换过的帧进行El的组帧,然后输出给El芯片中的上行端口和下行端口,El芯片接收到上行端口和下行端口发送的数据后,将两路El帧结构的数据进行El成帧处理,再分别从两路El端口输出;
步骤3、E1接收模块对El芯片发送过来的两路数据后进行El帧头的帧同步检测,去掉El帧头,得到两路HDLC帧,两路HDLC帧合路后发送给以太网发送模块;
步骤4、以太网发送模块将HDLC帧解帧,然后重新组成以太网帧,发送给以太网芯片。
[0006]所述步骤I实现过程如下,
用CRC16的协议计算出2个字节的校验位添加在每帧数据的最后,然后对得到的比特流数据进行发现连续的5个bitl在后面添加一个bitO操作,最后在帧头和帧尾都添加上01111110的字节,将有效数据和帧头区分开。
[0007]所述步骤4实现过程如下,
首先通过检测01111110帧头找到HDLC帧的帧头和帧尾,去掉01111110,然后进行5个连续bitl去掉后面的bitO操作,然后进行CRC16的校验,校验通过后去掉16个CRC校验bit,然后对所得的数据进行CRC32的计算得到32bit的FCS校验位,之后进行串并转换,并添加8个字节的以太网帧头。
[0008]所述步骤2中组帧的实现过程为:
将已转换为HDLC帧的数据写入FIFO,从FIFO读出数据的同时进行计数,每计数到248时,在此248bit的数据前加上8bit的El帧头,同时对数据进行CRC4的计算;最初子复帧的帧头中存放CRC4的地方数据为O ;然后每从FIFO读出一整个子复帧时,将得到的4bit的CRC校验码保留,存放在下一个子复帧帧头CRC4的存放处。
[0009]所述步骤3中去掉El帧头的实现过程为:
对数据进行移位判定,当发现第一个疑似El帧头数据时,此时对数据进行计数,计数256次之后,如果不是El帧头,就重新进行帧头判定;如果还是El帧头,连续3次计数256次后,发现都是El帧头,那么就认为此时帧同步,再将剩余的248bit的有效数据提取出。
[0010]下面对各个模块分别说明:
(I)以太网接收模块:处理以太网芯片发送出来的4位数据,去掉以太网数据的8字节帧头和4字节FCS校验位,然后对剩下的4位数据进行并串转换,用CRC16的协议计算出2个字节的校验位添加在每帧数据的最后,然后对得到的比特流数据进行发现连续的5个bitl在后面添加一个bit0操作,最后在帧头和帧尾都添加上01111110的字节,由于有效数据中经过5个I添O后,不可能出现01111110的帧头,这样就可以将有效数据和帧头区分开来。以上的步骤即是将以太网数据进行HDLC协议的转换过程。
[0011](2) El发送模块:将经过HDLC协议转换过的帧进行El的组巾贞,然后输出给El芯片。此时要完成El的级联功能,所以FPGA会连接El芯片的2个端口,一个做为上行,一个做为下行。下行El端口会做为级联另一台设备的端口。所以此时El组帧后FPGA将数据同时送给两个El端口。
[0012](3) El接收模块:此模块是El发送模块的逆过程。对El芯片发送过来的数据进行El帧头的帧同步检测,去掉El帧头。得到HDLC帧。如果使用El的级联功能,此时得到的两路El数据,经过上述相同的步骤后在此模块将两路信号合路,级联的设备不会占用相同的El时隙,所以不会出现有效数据重叠的现象。
[0013](4)以太网发送模块:以太网接收模块的逆过程,即将HDLC帧解帧,然后重新组成以太网帧。首先通过检测01111110帧头找到HDLC帧的帧头和帧尾,去掉01111110,然后进行5个连续bitl去掉后面的bitO操作,然后进行CRC16的校验,校验通过后去掉16个CRC校验bit。然后对所得的数据进行CRC32的计算得到32bit的FCS校验位。之后进行串并转换,并添加8个字节的以太网帧头。发送给以太网芯片。
【专利附图】

【附图说明】
[0014]图1为本发明中以太网帧结构示意图。
[0015]图2为HDLC协议转换后的HDLC帧结构。[0016]图3为本发明中PCM31的El帧结构。
[0017]图4为本发明中以太网和El转换实现框图。
[0018]图5为本发明中以太网和El转换后El的级联实现框图。
[0019]图6为本发明中以太网接收模块流程图。
[0020]图7为本发明中El发送模块流程图。
[0021]图8为本发明中El接收模块流程图。
[0022]图9为本发明中以太网发送模块流程图。
[0023]图3中,X表示存放CRC4的校验码'Y表示存放复帧定位信号MFAS ;A表示帧失步指示;HTF7表示第一子复帧;F8>15表示第二子复帧;TS0表示帧头;TSf TS31表示有效数据。
【具体实施方式】
[0024]下面结合附图对本发明作进一步说明。
[0025]图1和图2说明了以太网帧结构和HDLC帧结构,以太网帧结构实际上有很多种类型,但是在此只用到了帧头和FCS,所以虽然帧类型很多,但不会对本设计造成影响。从图1两组帧结构对比可以清楚 的知道两者间的转换关系。
[0026]图3是El的帧结构,El帧结构分有PCM30、PCM31。本发明只涉及到PCM31的El帧结构。符合G.704标准的El帧结构如下所示,每基本帧由32个路时隙(ts(Tts31)组成。每个路时隙由8bit码组成,基本帧帧频为8K,而每16基本帧(F(TF15)构成一个复帧,故每个复帧共由4096比特组成。在一个基本帧结构中共有32个时隙,用TSi (i=0,1,2,…,31)表示。而基本帧帧频为8K,因此一个El基本帧组成了一个速率为2.048Mbps的数据比特流。其中每个基本帧的tsfts31分别用来传31个64kbit/s数字信息的数据时隙,而tsO用来传各种辅助信号,具体如下。
[0027]在一个复帧中,基本帧可以分为两类:奇帧和偶帧。奇帧和偶帧的区分是通过tsO的第2bit来区分的,奇帧的bit2为‘I,。偶帧tsO时隙的bit2~bit8是用来传基本帧对准信号FAS的。G.704协议规定帧对准信号FAS为“0011011”。每个复帧又划分为两个子复帧,分别为H) >7 (记为第I子复帧)和F8 >15 (记为第2子复帧)。因此,整个复帧又可以看成由两个CRC-4子复帧校验快构成,前8个基本帧(第I子复帧)为第一校验块,根据协议要求的方式对其进行CRC-4校验,校验结果共4bit放在偶帧(F0,F2,F4,F6) tsO的bitl,同理对后一校验块(第2子复帧)校验的结果放在偶帧(F8,F10, F12,F14) tsO的bitl。同时奇帧的第3bitA为对告bit,A为‘I’时表示有告警,当收到1f或者1s时,则将A置为‘I’,不用时置O。奇帧tsO的第Ibit传复帧定位信号MFAS,协议规定MFAS为“001011”。可以看到复帧定位信号为6bit,而一个CRC复帧中有8个奇帧,所以协议规定奇帧(Fl,F3,F5,F7,F9,Fll) tsO的第Ibit用来传上述的复帧定位信号“001011”,而奇帧(F13,F15)tsO的第Ibit用来传误块指示比特EO和E1,当其为‘0’时表示有误块。还有奇帧的第4至第8bit为备用bit,不用时应置为‘I’。
[0028]图4表示了本发明的实现框图,本发明是在FPGA上实现以太网和El的转换。FPGA内4个模块分别代表了 FPGA和以太网芯片的收发接口以及El芯片的收发接口。其中El的接口要用到两个是为了完成El的级联功能。[0029]El的级联功能如图5,主机通过主控设备将以太网信号转换成El信号发送到设备I的上行端口,此时设备I从上行El 口收到El信号后将此数据同时通过下行El端口传到设备2,以此类推,相当于主控设备的数据同时传到了设备1、2、3。此时设备1、2、3会设置分别使用不同的El时隙,并且3台设备使用的时隙不能重叠。这样3台设备会从传过来的El数据中相对应的时隙提取有效数据。反过来的方向,此时视设备3为最末端,设备3的数据通过上行El 口发送到设备2,设备2会将设备3传过来的数据和自己的数据通过选择的El时隙进行合路,通过上行El 口传到设备1,设备I将设备2传过来的数据和自己的数据进行合路传输给主控设备。此时主控设备只要将El时隙设置为与其中任以设备相同,就可以提取到相对应设备的数据。即主机同一时间可以联通其中一台设备,只要更改主控设备的El时隙,就可以连接想要连接的设备。同理,此发明主控设备最多可连接31台设备(每台设备占用一个El时隙)。
[0030]下面详细描述FPGA内部功能实现的流程。
[0031]图6为以太网接收模块的流程,将输入的以太网数据去掉8字节的帧头和4字节的FCS校验位,然后进行并串转换。此时以太网输入数据的随路时钟以MII接口为例是25M,数据为4位。转换为串行如果数率不变应该用100M的时钟,本设计考虑到实际运用可兼容100M以下任意时钟,因为数据最后转换为El只有2.048M,所以时钟速率总是要下降的。所以此时这里用FIFO来做时钟域的转换,并且这个FIFO是一个快写慢读的FIFO,所以这里对FIFO的写会有控制,每写完一帧以太网数据,会判断FIFO剩余的容量是否能完全存入下一帧(按以太网最大帧1518字节算),如果不能下一帧将会丢掉,不写入FIFO。之后对得到的bit流数据做CRC16的计算,得到16bit校验位添加到帧末尾,再对其进行每出现连续5个bitl之后添加bitO的操作,此时我们同样要将数据传入FIFO,因为5个I添O的操作实际上会造成帧长度的增加,所以此FIFO仍旧是一个快写慢读的FIF0,用来整合数据的时钟域。最后添加01111110的帧头和帧尾。
[0032]图7为El发送模块的流程,将得到HDLC帧通过FIFO将数据达到2.048M的El时钟上,此FIFO同样是快写慢读。然后对数据进行El成帧。即每248个bit之前添加Sbit的帧头,帧头按上述El帧格式要求定义。然后将数据发送给El芯片。
[0033]图8为El接收模块的流程,El接收模块会接收到两路El数据,上行端口接收到的数据后,同时将数据传到El下行端口输出,给到下一级设备,保证级联功能完成。同时将此数据和下行端口接收到的El数据通过El时隙合路,对合路后的数据进行El帧头同步检测,最初检测到El帧头后,256bit后应该还是El帧头,所以连续3次检测到帧头后,就视为同步了。将El帧头去掉,数据进入FIF0,将数据打到工作时钟CLK上,此FIFO是一个慢写快读的FIF0,所以对FIFO的读操作要做控制,避免FIFO读空出现。
[0034]图9为以太网发送模块的流程,对El接收模块输出的数据进行01111110的帧头帧尾检测,找到HDLC帧的帧头帧尾。去掉01111110的帧头帧尾后,检测出现5个连续bitl就去掉后面的bitO,然后对这每帧数据做CRC16的检测,检测无误表示传输过来的数据没有误码,去掉16bit的校验位,再对其做CRC32的校验,添加到帧尾作为FCS。然后做串并转换,并将数据打到25M的以太网工作时钟上,此时时钟域的转换也要用到慢写快读的FIFO。最后添加8字节的以太网帧头输出到以太网芯片即可。
【权利要求】
1.一种以太网数据和El数据的转换与级联的FPGA实现方法,其特征在于:在FPGA内部分为4个模块,包括以太网接收模块、El发送模块、El接收模块和以太网发送模块;E1芯片包括两个端口,分别为上行端口、下行端口 ;连接在一起的以太网接收模块和El发送模块为上行链路,连接在一起的El接收模块和以太网发送模块为下行链路,以太网接收模块、以太网发送模块均与以太网芯片连接,El发送模块、El接收模块均与El芯片中的上行端口、下行端口连接; 步骤1、以太网接收模块将以太网数据进行HDLC协议的转换; 处理以太网芯片发送出来的4位数据,去掉以太网数据的8字节帧头和4字节FCS校验位,对其余的4位数据进行并串转换; 步骤2、El发送模块将经过HDLC协议转换过的帧进行El的组帧,然后输出给El芯片中的上行端口和下行端口,El芯片接收到上行端口和下行端口发送的数据后,将两路El帧结构的数据进行El成帧处理,再分别从两路El端口输出; 步骤3、E1接收模块对El芯片发送过来的两路数据后进行El帧头的帧同步检测,去掉El帧头,得到两路HDLC帧,两路HDLC帧合路后发送给以太网发送模块; 步骤4、以太网发送模块将HDLC帧解帧,然后重新组成以太网帧,发送给以太网芯片。
2.根据权利要求1所述的一种以太网数据和El数据的转换与级联的FPGA实现方法,其特征在于:所述步骤I实现过程如下, 用CRC16的协议计算出2个字节的校验位添加在每帧数据的最后,然后对得到的比特流数据进行发现连续的5个bitl在后面添加一个bitO操作,最后在帧头和帧尾都添加上01111110的字节,将有效数据和帧头区分开。
3.根据权利要求1或2所述的一种以太网数据和El数据的转换与级联的FPGA实现方法,其特征在于:所述步骤4实现过程如下, 首先通过检测01111110帧头找到HDLC帧的帧头和帧尾,去掉01111110,然后进行5个连续bitl去掉后面的bitO操作,然后进行CRC16的校验,校验通过后去掉16个CRC校验bit,然后对所得的数据进行CRC32的计算得到32bit的FCS校验位,之后进行串并转换,并添加8个字节的以太网帧头。
4.根据权利要求1或2所述的一种以太网数据和El数据的转换与级联的FPGA实现方法,其特征在于:所述步骤2中组帧的实现过程为: 将已转换为HDLC帧的数据写入FIFO,从FIFO读出数据的同时进行计数,每计数到248时,在此248bit的数据前加上8bit的El帧头,同时对数据进行CRC4的计算;最初子复帧的帧头中存放CRC4的地方数据为O ;然后每从FIFO读出一整个子复帧时,将得到的4bit的CRC校验码保留,存放在下一个子复帧帧头CRC4的存放处。
5.根据权利要求1或2所述的一种以太网数据和El数据的转换和级联的FPGA实现方法,其特征在于:所述步骤3中去掉El帧头的实现过程为: 对数据进行移位判定,当发现第一个疑似El帧头数据时,此时对数据进行计数,计数256次之后,如果不是El帧头,就重新进行帧头判定;如果还是El帧头,连续3次计数256次后,还是El帧头,此时帧同步,再将剩余的248bit的有效数据提取出。
【文档编号】H04L12/64GK103841009SQ201410092138
【公开日】2014年6月4日 申请日期:2014年3月13日 优先权日:2014年3月13日
【发明者】明轩 申请人:武汉虹信通信技术有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1