一种基于FC的高效数据交换方法与流程

文档序号:14391888阅读:502来源:国知局
一种基于FC的高效数据交换方法与流程

本发明具体涉及一种基于fc的高效数据交换方法,属于电子工程和计算机科学领域。



背景技术:

随着信息技术的发展,大数据处理已经成为支撑上层决策的关键技术。特别是在智能制造领域,德国工业4.0、美国工业互联网以及我国的“中国制造2025”和“互联网+先进制造业”中所要实现的智能制造无不包含着大量的数据,包括车间级底层异构数据的采集、处理与传输,工厂级erp、mes间的数据传输以及工厂之间的数据传输等。如何实现大数据的高效处理来支撑上层决策是实现智能制造需要解决的关键问题之一。车间现场存在着大量的异构资源,包括不同厂家的生产线、不同型号的机床以及不同协议的传感执行设备,如何高效的实现这些异构资源间的数据交换又是实现大数据高效处理的关键技术之一。

随着信息技术的发展,出现了很多数据传输协议标准,包括常用的工业以太网、modbus以及zigbee等,但是在数据处理的效率方面,fc(fiberchannel,光纤通道)协议具备极大的优势。fc具有高带宽、低延迟、长距离传输、拓扑灵活、支持多种上层协议等优点,是一个为适应高性能数据传输要求而设计的通信协议。

fc目前应用在欧美等国的先进战斗机中,是新一代航空电子总线协议,能够提供航空电子系统下新一代的统一航空电子网络构建的支持。美国国家标准委员会还专门成立了研究光纤通道用于航空电子系统的分委员会(ansifc-ae),该分委员会与波音公司、洛克西德-马丁公司等合作制定了一组专门用于航空电子系统的fc协议子集,即光纤通道航空电子环境(fc-ae)。光纤通道替代当前的航空电子主网mil-std-1553,已成为航空电子系统发展的必然趋势,光纤通道也将成为构建新一代的统一航空电子网络的首选。fpga作为可编程的硬件逻辑器件,具备高度的并行处理和硬件加速特性,有利于fc协议的实现。

所以将先进高效的fc协议应用到民用领域,实现制造底层异构资源高效的数据交换,能够助力我国智能制造伟大战略的早日实现。



技术实现要素:

本发明要解决的技术问题为:提供一种基于fc的高效数据交换方法,包括:利用fpga设计fc协议中fc-0层的高速串行数据到低速并行数据的转换模块,该模块能够将高速串行数字信号转换成相对低速的并行数据,同时通过设计的状态机完成参考时钟的去抖、锁定和恢复;利用fpga设计fc协议中fc-1层的8b/10b编解码、传输字边界对齐以及传输字合法性检测、原语检测、接收器状态机、fc端口状态机和发送器状态机的控制,以保证fc端口状态的跳转;利用fpga设计fc协议中fc-2层的帧协议解析模块,该模块能够完成帧协议的解析、注册和注销、缓冲区到缓冲区的流量控制,以保证帧传输的合法性。

本发明解决其技术问题是采取以下技术方案实现的:一种基于fc的高效数据交换方法,包括如下步骤:

步骤一:设计fc协议中fc-0层的高速串行数据到低速并行数据的转换模块,该模块能够将高速串行数字信号转换成相对低速的并行数据,同时通过设计的状态机完成参考时钟的去抖、锁定和恢复。具体实现如下:

①设计模块工作在8.5gbps的速率下,选择qpll的锁相环,使fc-0串并转换模块各channel(通道)共用同一参考时钟;

②利用fpga设计参考时钟的去抖状态机,并将去抖后的时钟输出作为fc-0串并转换模块的参考时钟。去抖状态机通过iic协议对去抖芯片进行控制。根据①中设计的在8.5gbps工作速率,此处设计的去抖后的参考时钟为212.5mhz。同时设计k28.5作为控制字节,时钟校正序列为"10111100"。

步骤二:设计fc协议中fc-1层的8b/10b编解码、传输字边界对齐以及传输字合法性检测、原语检测、接收器状态机、fc端口状态机和发送器状态机的控制,以保证fc端口状态的跳转。具体实现如下:

①设置fc-1层的编解码为8b/10b的编解码方式、40bit的内部位宽(32bit的外部位宽)、212.5mhz的参考时钟、k28.5作为逗号,并在程序中检验逗号是否处于40bit的低8bit。

②利用vhdl语言设计多个同步并行的子程序模块完成传输字合法性检测、原语检测、接收器状态机、fc端口状态机和发送器状态机。状态机主要分为接收器状态机、发送器状态机、端口状态机。数据通过fc-0串并转换模块完成串并转换和编解码后以32bit(一个字)传送至接收器状态机,接收器工作时钟为212.5mhz。fc端口状态机完成链路的激活并通过一系列握手机制完成状态转换。当设备上电或进入复位状态后,fc端口会通过一系列握手机制由非初始化状态进入激活态,从而开始正常的数据通信。挡发送数据时,数据以32bit(一个字)传送至发送器状态机,发送器工作时钟为233.33mhz。

步骤三:设计fc协议中fc-2层的帧协议解析模块,该模块能够完成帧协议的解析、注册和注销、缓冲区到缓冲区的流量控制,以保证帧传输的合法性。具体实现如下:

①fc端口在fc-1层完成链路激活之后,数据上传至fc-2层。fc-2层首先对帧进行解析,帧包括sof定界符、帧头、净荷、循环冗余校验字段crc、eof定界符。进程注册(prli)状态机能够将通信双方的端口通过映射关联组成映射对;进程注销(prlo)状态机用来解除这种映射关系。本发明采用隐式注销,通过连续发送三个或以上nos或ols信号注销。

②fc通信端口双方事先商定一个信用值,用来对双方的通信进行同步。当发送方发送一帧数据后,计数值加1,收到对方的有效回复后计数值减1。当计数值等于信用值时,发送方暂停发送,然后发送状态机持续监测计数值,当其小于信用值时再次启动数据发送。

本发明设计的一种基于fc的高效数据交换方法适用于xilinx公司virtex-7fpga芯片,型号为xc7vx690t-2ffg1761c;时钟去抖芯片为silabs公司的si5324。

本发明与现有技术相比的优点在于:

(1)自行设计的fc-0串并转换模块能够代替目前此类方法设计中采用的吉比特传输ip核的方法,能够更加灵活、经济的设计高速串行数据到低速并行数据的转换。

(2)采用的时钟去抖方案能保证高速数据传输时的数据正确性,对于数据的发送和接收采用不同频率的参考时钟,并采用bram作为缓冲,能保证数据收发的稳定性。

(3)采用信用值和发送帧计数值来保证通信双方的速率匹配,此方法简单易行。

附图说明

图1为本发明的总体结构图;

图2为本发明fc-0层串并转换模块参考时钟连接图;

图3为本发明fc-1层状态机部分结构设计图;

图4为本发明fc-2层注册部分流程图;

图5为本发明fc-2层部分结构设计图。

具体实施方式

下面结合附图对本发明做进一步详细的描述。

本发明涉及一种基于fc的高效数据交换方法,采用的fpga芯片为xilinx公司的xc7vx690t-2ffg1761c,时钟去抖芯片为silabs公司的si5324。具体实施内容如下:

fc-0层:利用sfp模块完成光纤信号与电信号的转换。fc-0是fc的最底层,即物理链路层,包括传送介质、发射机、接收机和接口,一般支持以电缆或者光缆连接,规定的传送速率为1.0625gbps的倍数关系。基于fpga并采用vhdl语言设计fc-0串并转换状态机,以实现高速串行信号到低速并行数据的转换。

设计的fc-0串并转换模块的相关配置如下:8.5gbps的速率、与sfp相连的channel位于bank113。针对速率为8.5gbps,选择qpll的锁相环,使各channel用同一参考时钟。fc-0串并转换模块的设计采用了回环测试验证,包括近端pcs、近端pma、远端pcs、远端pma。选择refclk0为参考时钟,并通过si5324芯片对参考时钟去抖。其中fc-0串并转换模块的参考时钟接入方法如图2所示,fpga通过dcmip核将系统时钟分频并连接至去抖芯片si5324上,用iic协议配置si5324芯片完成去抖,再将时钟连接回fc-0串并转换模块处。iic总线包括sda、scl两条信号线,scl控制时钟,sda传送数据,所有数据以8bit字节传送。利用iic协议向指定寄存器写入时,先写待配置设备地址,再写要配置到寄存器相应位置的地址,再写数据。本发明的iic协议通过pca9548iic八选一总线转换芯片u52配置,pca9548芯片地址为”1110100”,包含8个iic通道,配置u52芯片则要使用ch7,首先对pca9548芯片和si5324芯片进行复位操作,两个芯片均是高电平是正常工作。之后通过iic协议格式将iic_sda/scl_main与si5324_sda/scl相连,slaveaddress即为”1110100”,controlregister为"10000000"表示选择ch7。最后iic通信标准协议向待配置的si5324芯片寄存器进行写入。此时的设备地址为”1101000”,即si5324芯片的地址。si5324的n1_hs为6,nc1_ls为6,n2_hs为9,n2_ls为316,n31为79。配置结束后即可检测到fc-0串并转换模块的参考时钟refclk0,为212.5mhz。此时近端回环可以实现。均衡模式选择lmp低功耗模式,以适用于线速率<11.2gb/s的短距离应用,信道差损<12db的情况。选择此模式后,近端回环可以在选择多个通道的情况下正常使用。中断电压选择float,此时cdr被锁定,远端回环可以实现。由于fc协议只是用k28.5作为控制字节,所以选择comma为k28.5,时钟校正序列为"10111100",此时传输字可以对齐边界。回环测试结束后可以将回环模式设定为正常模式。

fc_1层:根据fc协议对fc-0串并转换模块进行设置,使fc-0串并转换模块完成8b/10b编解码、传输字边界对齐。即设置为8b/10b的编解码方式、40bit的内部位宽(32bit的外部位宽)、212.5mhz的参考时钟、k28.5作为逗号,并在程序中检验逗号是否处于40bit的低8bit,以此完成编解码、字对齐。

利用vhdl语言设计多个同步并行的子程序模块完成传输字合法性检测、原语检测、接收器状态机、fc端口状态机和发送器状态机。如图3所示,状态机主要分为接收器状态机、发送器状态机、端口状态机。数据通过fc-0串并转换模块完成串并转换和编解码后以32bit的rxdata传送至接收器状态机,传送时钟clk2为212.5mhz。接收器状态机包含原语表,以检测数据是原语、普通数据或不合法数据。状态机包含3个状态:(1)同步丢失状态。(2)获取字同步状态。(3)复位状态。其中获取字同步状态又包含4个子状态,分别是:(1)没有非法传输字被检测到。(2)第1个非法传输字被检测到。(3)第2个非法传输字被检测到。(4)第3个非法传输字被检测到。只有当状态机处于同步状态时,才能把传送字、字时钟信号、有效性信息传到上层。数据在接收器状态机内进行合法性检测后以32bit(一个字)的rx_out上传至端口状态机rx_in。端口状态机完成链路的激活通过一系列握手机制完成状态转换。当设备上电或进入复位状态后,fc端口会通过一系列握手机制由非初始化状态进入激活态,从而开始正常的数据通信。当在正常的工作过程中,若发生了信号丢失,请求超时,链路故障或者失步等异常情况时,fc端口有相应机制来进行恢复链路,排查故障等操作。当端口状态机为激活态时,底层数据上传rx_out至上层协议,上层协议要发送的数据tx_in由发送器状态机发送。当端口状态机不在激活态时,则通过发送器状态机发送一系列原语协议。发送器状态机状态主要包括三个状态:无效态、工作态、故障态。当状态机处于工作态时尝试发送经过编码的位数据流至相应的fc链路上发送器状态机在工作态时,端口状态机发送的数据tx_out传送至txdata_in。数据经过发送器状态机以txdata_out传至fc-0层串并转换模块。系统时钟clk1为233.33mhz。

fc-2层:利用vhdl语言设计多个同步并行的子程序模块完成帧协议的解析和设计、注册和注销、缓冲区到缓冲区的流量控制。fc-2层主要规定了链路业务和信令协议两个方面的行为和参数。在链路业务中规定了结构注册、端口注册、进程注册等主要端口行为和参数意义,在信令协议中规定了帧的组成结构,帧头参数的定义,帧传输过程,n端口和f端口的行为,流量控制的方法等。fc-2的数据以帧为单位。本发明主要涉及设备数据帧和扩展链路数据帧。设备数据用来在端口间传送数据;扩展链路数据用来扩展链路服务命令,包括端口和交换结构注册和注销、中止交换、请求传送状态等。如图4和图5所示,端口在fc-1层完成链路激活之后,数据上传至fc-2层。fc-2首先对帧进行解析,帧包括sof定界符、帧头、净荷、循环冗余校验字段crc、eof定界符。扩展链路服务数据帧的帧头包含大量需要协商的端口信息,需要通讯网络分配端口地址,净荷由固定通信参数填充;数据帧的帧头使用固定参数,净荷由用户填充。对帧进行解析后完成注册交换结构注册,决定网络操作参数。以图4为例,端口发送一个结构注册扩展链接服务请求(flogi),当端口处在交换结构但对方端口不支持n端口分配时,对方会回复一个f_rjt的拒绝帧。端口收到f_rjt后会进行第二次架构直到对方回复acc。当端口处在交换结构且对方端口支持n端口分配,会回复一个acc确认帧,并分配id。当端口处在点到点结构,对方端口会回复一个acc确认帧并表明是一个n端口。端口完成交换注册后会和每个想与之通信的n端口注册,如果是n端口,两端口会比较端口名称,wwn大的一方将发起plogi帧,另一方等待并回复acc。如果对方是f端口,n端口通过结构注册知道其他那些n端口可用,对目的端口发送plogi,当收到acc后,端口注册结束。结构注册和端口注册完成后还可以进行进程注册,可以直接映射一个信息单元到n端口后的scsi目标。进程注册(prli)命令允许a端口后面的一个或多个映射与b端口对应的映射关联组成映射对;进程注销(prlo)命令用来解除这种操作关系。端口通信完成后需要通过注销解除拓扑关系。本发明采用隐式注销,通过连续发送三个或以上nos或ols信号注销。为保证端口不会接受超过其接受能力的信息,通信系统要采用流量控制。本发明采用缓冲区到缓冲区的流量控制。发送器中设计有帧发送计数器bb_credit_cnt。初始时其计数清零,当发送方发送一帧数据后,计数器会加1,收到对方的r_rdy后会减1。通信双方在注册时商量缓冲区可靠性bb_credit,当计数器达到bb_credit时停止发送。而对方只要有帧就先写入缓存,当读取一阵后发送r_rdy回复,可以接收下一帧。

综上所述,本发明设计的一种基于fc的高效数据交换方法,包括:利用fpga设计fc-0层的高速串行数据到低速并行数据的转换模块、设计fc-1层的编解码和端口状态机控制、设计fc-2层的帧协议解析模块以完成帧协议的解析、注册和注销、缓冲区到缓冲区的流量控制,以保证帧传输的合法性,能够更加灵活、经济的实现数据的高效交换。

本发明说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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