一种用于通信设备间传输介质盲插拔的方法与流程

文档序号:17756455发布日期:2019-05-24 21:20阅读:455来源:国知局
一种用于通信设备间传输介质盲插拔的方法与流程

本发明属于数字电路数据通信领域,涉及到数据通信介质端口自适应防反插实现的方法,具体涉及一种用于通信设备间传输介质盲插拔的方法。



背景技术:

在板间通信中,往往采取光纤等介质作为数据传输通道,为了带宽的要求,传输介质多为两根以上,且发送方将数据进行分割后传输至接收方,接收方再将数据进行拼接。因为操作人员在安装时往往不易辨认各个板卡间端口的对应关系,就需要事先做上标记来确认端口的对应位置,这样一来,不但存在效率低下问题,还可能由于标识不当、操作失误等原因而导致端口插接错位,从而造成设备工作异常,返工,甚至由于多次错误插拔纠正的反复操作,大大减少设备的使用寿命。



技术实现要素:

为解决现有技术存在的问题,本发明通过使用内部标识的方式,使得双方设备间的端口可以相互握手,自动识别,操作时可以将设备间的端口随意匹配,避免了因操作失误等造成的端口匹配错误,与传统方式相比大大减少了操作人员的失误率,降低了设备工作异常风险,减少可插拔次数,提高了设备的使用寿命。

通常来讲,用于数据传输的协议包括但不限于以下几类中的一种或多种标识:识别号(id),地址(addr),端口(port)等,这些内容根据不同的传输方式又会有不同程度的使用,例如,addr在流传输过程中往往不需要,取而代之的仅仅需要通过其他方式将基地址及长度告知对方即可省去地址而传输数据。又如在某些点对点的数据传输过程中,或者某些特定命令中id也是可以省略的,此时这些存在而未被使用的特征我们可以称之为冗余特征。通过对冗余特征赋予新的功能和意义,并在通信中遵从即可实现将冗余特征发挥出新的用途。本发明专利即利用了冗余特征作为通道识别,从而实现可插拔介质的盲插操作。

传统方式中,很多情况下设备通过多通道传输数据时通道与通道都是人为事先商议好位置,并严格按照协定实施的。数据拆分传输后再拼接成原数据。如图1所示,左侧装置作为数据的发起者,右侧设备作为数据的使用者,数据从发起者的数据源产生,受限于主频,为了达到较高带宽只能采取将数据拆分为多通道进行传输,图1中拆分为若干个数据片段后分发给tfifo0,tfifo1,tfifo2乃至tfifon,然后各个fifo有发送给发射装置t0,t1...tn,发射数据通过外界的连接介质连接到右侧的接收装置,接收装置将数据传送给接收fifo后拼接成同一数据后交给处理单元,处理单元处理的数据经过拆分-传输-拼接后得到了与数据源产生的数据。在此过程,一旦介质之间位置插错,如图2所示,拼接后的数据顺序与源本的数据顺序发生错乱,数据使用设备的处理单元将接收到错位的数据,产生错误操作。

本发明中,数据发起设备在发送前对冗余项加以利用,给不同通道的数据定义其相应的位置标识,数据使用设备接收后先对该标识进行识别,通过重排序模块做一个顺序处理,然后转发给对应的接收fifo,这样一来则不必要求介质的插接顺序。如图3所示,发送前将冗余项内定义l0,l1,l2。。。l3信息分别代表位置0,位置1,位置2的数据,在数据使用设备中接收装置解析出不同位置的数据,并将对应位置信息和数据一同传给重排序模块,重排序模块根据不同的位置信息,将数据写到与之对应的存储器(优选为fifo)中去,拼接后又恢复数据源发送时的正确顺序,处理单元接收数据无误。

参阅图4,本发明的具体步骤如下:

1)选择通信协议中的冗余信息。

2)冗余信息进行重新定义,用以标识数据为拆分前所处的位置。

3)接收方接收解码,获取接收后的冗余信息并根据重新定义的规则确认该数据发送前位置。

4)根据接收方解码出来的位置信息对该数据进行重排序。

5)根据重排序的位置进行拼接,恢复出发送前的数据。

通常做法在数据通过介质传输时需要设备组装人员认清对应的接口,而本发明通过协商定义通信协议的未使用的冗余信息,增加数据通道位置的标识信息,可以任意端口互联,无需端口一一对应,实现传输介质盲插拔。在多设备外接多个介质传输数据中,将介质错位导致的风险降低为0,极大的提高设备组装效率,大大的降低错误的产生,提高了设备总体的使用寿命。有益效果:

1.可实先通信设备间可插拔通信介质的盲插减少操作人员操作难度,提高工作效率。

2.减少重插次数,减少设备磨损,提升设备的使用寿命。

3.防止误插造成的数据传输错误,避免设备工作不正常。

附图说明

图1为传统设备实现插拔方式的正确介质连接顺序示意图;

图2为传统设备实现插拔方式的错误介质连接顺序而导致错误数据的示意图;

图3为使用本发明方法实现插拔的重排序机制纠正介质错位示意图;

图4为本发明方法步骤流程图;

图5为光纤正插情况下数据传输方式示意图;

图6为光纤反插情况下数据传输方式示意图;

图7为发送引擎工作流程图。

具体实施方式

为了更加清楚明白理解本发明的目的、技术方案和优点,下面结合附图和本发明的优选实施例,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。

请参阅图5、图6,本实施例中有存储板和转储板两个设备,存储板作为数据源,转储板作为数据接收设备,两者通过光纤进行连接,通过两路4xrapidio协议进行数据传输。转储的带宽要求3gb/s以上,而单路4xrapidio最大带宽也达不到2gb/s,因此采取两路4xrapidio进行传输,原始数据为128bit位宽,需要拆分为两路64bit位宽数据,分别经过两根光纤0和光纤1进行传输。在此过程中为防止两根光纤插拔过程中位置可随意对应,采取了本发明专利中的方式进行设计。

本设计中使用了nwrite的请求类型进行数据传送,且使用的时fixed的地址方式即传送过程中不需要地址字段,该地址字段在本项目中成为了冗余特征,地址位总共有34位,本设计使用第[7]位作为标识位。存储板发送数据前,在组包时将0路的rapidio包头中地址addr[33:0]装填数据34’h000000000。1路的rapidio中地址addr[33:0]赋值为34’h00000080。数据发送后,转储板解包时根据addr[7]位给出标识,后面的mux根据该标识将数据选通并写入对应的fifo中。以上即盲插的硬件实现原理。

正插发送流程:

图5为光纤正插时候的工作示意图,存储模块产生128位数据,通过拆分模块拆分为64位数据0和64位的数据1,数据0以黄色通路表示其传播路径,数据1以绿色通路表示其传输路径,并对应的分发给fifo0和fifo1。发送引擎收到数据后进行组包,发送引擎0与发送引擎1组包方式相同,但会在地址信息中的第[7]位做出区分,引擎0给该位赋值0,引擎1给该位赋值1,最后通过rapidio的核心发送出去。转储卡收到该数据后分别将数据0发送给接收引擎0,数据1发送给接收引擎1,接收引擎0通过解析包发现该包addr[7]为0,将sel信号置0,mux0将数据0接收并向后传播。接收引擎1通过解析包发现该包[7]为1,于是将sel信号置1,mux1将数据1接收兵向后传播。拼接模块拼接后恢复出128位的数据传送给后面部分做其他处理。

反插发送流程:

图6给出了光纤反插时候的工作示意,存储模块产生128位数据,通过拆分模块拆分为64位数据0和64位的数据1,数据0以黄色通路表示其传播路径,数据1以绿色通路表示其传输路径。并对应的分发给fifo0和fifo1。发送引擎收到数据后进行组包,发送引擎0与发送引擎1组包方式相同,但会在地址信息中的第[7]位做出区分,引擎0给该位赋值0,引擎1给该位赋值1,最后通过rapidio的核心发送出去。转储卡收到该数据后分别将数据0发送给接收引擎1,数据1发送给接收引擎0,接收引擎0通过解析包发现该包addr[7]为0,将sel信号置0,mux0将数据0接收并向后传播。接收引擎1通过解析包发现该包[7]为1,于是将sel信号置1,mux1将数据1接收兵向后传播。拼接模块拼接后恢复出128位的数据传送给后面部分做其他处理。

发送引擎组包流程:

请参阅图7:

1)初始化模块,当srio正常工作时进入等待状态,判断是否有数据发送;

2)有数据需要发送,进入发送状态;

3)组装包头信息,装填发送类型为nwrite,装填发送长度信息为256bytes,根据当前发送通道号确认装填地址值,如果是0通道装填34’h000000000;如果当前是1通道装填地址信息为34’h00000080;

4)发送数据,等待数据发送256bytes后跳出,重新判断是否有数据发送。

接收引擎解包流程:

1)初始化模块,当srio正常工作时进入等待状态,判断是否有数据接收;

2)接收数据有效,进入解包状态;

3)解析包头信息,如果是addr信息为34’h000000000,将sel标志位设为0;如果当前是地址信息为34’h00000080,则将sel标志位设为1;

4)接收数据,将接收到的数据与选通信号sel发送给外面的mux,实现重排序功能;

5)数据接收完成后回到等待状态等待新的数据。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1