一种以太网芯片断网重连的方法、装置及设备与流程

文档序号:29075835发布日期:2022-03-01 22:43阅读:359来源:国知局
一种以太网芯片断网重连的方法、装置及设备与流程

1.本发明涉及通信及计算机技术领域,尤其是指一种以太网芯片断网重连的方法、装置、设备及计算机可读存储介质。


背景技术:

2.随着科学技术与航空航天技术的快速发展,多网络、多系统间相互协作,必然离不开数据交互,数据通信在电子技术领域越来越重要;同时为应对复杂环境和不同的设备需求,以太网以其优异的稳定性和实时性成为数据通信领域很好的选择。但由于电磁干扰和某些不确定因素会导致端口断开连接,对于实时性和数据完整性要求较高的设备,毫秒级的断开都可能导致本次试验或者此次系统流程的失败。小型通信设备常采用w5x00系列芯片进行以太网通信;通信过程中如果网络意外断开,会造成数据丢失、严重甚至导致系统失效和瘫痪。
3.现阶段工程师一般采用两种方式判断数据是否连接:一是通过客户端或者服务器发送的数据或指令,这种方法的缺点是在没有数据或指令传输间隙时需要被检测端主动发送非有用数据包,检测端需要判断是否为有用数据,这种方法增加了出错几率。二是设定心跳检测,这种方法的缺点是心跳包一般设定在秒级别,不利于数据的实时性。上述的两种方法在确保数据实时性、传输速度、完整性情况下具有一定制约。因此,需要设计一种以太网芯片断网重连的方法。


技术实现要素:

4.为此,本发明所要解决的技术问题在于克服现有技术中由于电磁干扰和某些不确定因素而导致网络端口断开连接,造成数据丢失,且判断网络端口是否断开的方法不具备实时性的缺陷。
5.为解决上述技术问题,本发明提供了一种以太网芯片断网重连的方法,包括:
6.s11:利用fpga对以太网芯片进行初始化配置;
7.s12:读取所述以太网芯片中状态寄存器的当前状态值,根据所述以太网芯片中状态寄存器的当前状态值判断以太网端口是否断开;
8.s13:若所述以太网端口断开,则将所述以太网端口连接并判断所述以太网芯片是否接收到外部数据;
9.s14:若所述以太网芯片接收到所述外部数据,则通过所述fpga读取所述外部数据;
10.s15:判断所述fpga是否有目标数据需要传输,若所述fpga有所述目标数据需要传输,则控制所述以太网芯片发送所述目标数据并返回到步骤s12。
11.在本发明的一个实施例中,所述读取以太网芯片中状态寄存器的当前状态值,根据所述以太网芯片中状态寄存器的当前状态值判断以太网端口是否断开后还包括:
12.若所述以太网端口未断开,则判断所述以太网芯片是否接收到所述外部数据;
13.若所述以太网芯片未接收到所述外部数据,则不读取所述外部数据;
14.判断所述fpga是否有所述目标数据需要传输,若所述fpga无所述目标数据需要传输,则返回到步骤s12。
15.在本发明的一个实施例中,所述若所述以太网端口断开,则将所述以太网端口连接并判断所述以太网芯片是否接收到外部数据包括:
16.若所述以太网端口断开,则控制所述以太网芯片中的端口命令寄存器关闭所述以太网端口,配置所述以太网端口模式和客户端口口号,控制所述端口命令寄存器打开所述以太网端口,直至所述以太网端口连接,判断所述以太网芯片是否接收到所述外部数据。
17.在本发明的一个实施例中,所述若所述以太网芯片接收到所述外部数据,则通过所述fpga读取所述外部数据前包括:若所述以太网端口在所述以太网芯片接收所述外部数据时断开,则通过所述fpga在所述以太网端口断开时缓存已接收到的外部数据,成功连接所述以太网端口后再进行所述外部数据的接收。
18.在本发明的一个实施例中,所述读取以太网芯片中状态寄存器的当前状态值,根据所述以太网芯片中状态寄存器的当前状态值判断以太网端口是否断开包括:读取所述以太网芯片中状态寄存器的当前状态值,若所述以太网芯片中状态寄存器的当前状态值为0x00,则判定所述以太网端口的状态为断开。
19.在本发明的一个实施例中,所述以太网芯片为w5300。
20.本发明提供了一种以太网芯片断网重连的装置,其特征在于,包括:
21.配置模块,用于利用fpga对以太网芯片进行初始化配置;
22.读取模块,用于读取所述以太网芯片中状态寄存器的当前状态值,根据所述以太网芯片中状态寄存器的当前状态值判断以太网端口是否断开;
23.连接模块,用于若所述以太网端口断开,则将所述以太网端口连接并判断所述以太网芯片是否接收到外部数据;
24.接收模块,用于若所述以太网芯片接收到所述外部数据,则通过所述fpga读取所述外部数据;
25.判断模块,用于判断所述fpga是否有目标数据需要传输,若所述fpga有所述目标数据需要传输,则控制所述以太网芯片发送所述目标数据并返回到步骤s12。
26.在本发明的一个实施例中,所述连接模块还包括:
27.控制单元,用于若所述以太网端口断开,则控制所述以太网芯片中的端口命令寄存器关闭所述以太网端口,配置所述以太网端口模式和客户端口口号,控制所述端口命令寄存器打开所述以太网端口,直至所述以太网端口连接,判断所述以太网芯片是否接收到所述外部数据。
28.本发明提供了一种以太网芯片断网重连的的设备,其特征在于,包括:
29.存储器,用于存储计算机程序;
30.处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述一种以太网芯片断网重连的方法的步骤。
31.本发明提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述一种以太网芯片断网重连的方法的步骤。
32.本发明的上述技术方案相比现有技术具有以下优点:
33.本发明所述的以太网芯片断网重连的方法,首先利用fpga对以太网芯片进行初始化配置,然后读取以太网芯片中状态寄存器的当前状态值,根据以太网芯片中状态寄存器的当前状态值判断以太网端口是否断开,若以太网端口断开,则将以太网端口连接并判断以太网芯片是否接收到外部数据,若以太网芯片接收到外部数据,则通过fpga读取外部数据,判断fpga是否有目标数据需要传输,若fpga有目标数据需要传输,则控制以太网芯片发送目标数据并返回读取以太网芯片中状态寄存器的当前状态值,判断以太网端口是否断开。本发明通过直接读取以太网芯片中状态寄存器的当前状态值来判断以太网端口是否断开,极大简化了以往的判断方式,同时每读写循环一次就判断一次以太网端口的状态值,保证了以太网端口状态的实时性,且以太网芯片的快速自动判断连接,杜绝了因以太网端口断开时间过长而造成的断流现象,保证了数据的连续传输。
附图说明
34.为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明,其中:
35.图1为本发明所提供的以太网芯片断网重连的方法的第一种具体实施例的流程图;
36.图2为本发明所提供的以太网芯片断网重连的方法的第二种具体实施例的流程图;
37.图3为以太网端口的操作流程图;
38.图4为以太网芯片断网重连的流程图;
39.图5为以太网芯片接收数据的流程图;
40.图6为以太网芯片发送数据的流程图;
41.图7为本发明所提供的以太网芯片断网重连的方法的硬件电路图;
42.图8为本发明实施例提供的一种以太网芯片断网重连的方法的结构框图。
具体实施方式
43.下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
44.参照图1所示,图1为本发明所提供的以太网芯片断网重连的方法的第一种具体实施例的流程图;具体操作步骤如下:
45.步骤s11:利用fpga对以太网芯片进行初始化配置;
46.步骤s12:读取所述以太网芯片中状态寄存器的当前状态值,根据所述以太网芯片中状态寄存器的当前状态值判断以太网端口是否断开;
47.步骤s13:若所述以太网端口断开,则将所述以太网端口连接并判断所述以太网芯片是否接收到外部数据;
48.步骤s14:若所述以太网芯片接收到所述外部数据,则通过所述fpga读取所述外部数据;
49.步骤s15:判断所述fpga是否有目标数据需要传输,若所述fpga有所述目标数据需
要传输,则控制所述以太网芯片发送所述目标数据并返回到步骤s12。
50.本实施例所提供的方法,通过直接读取以太网芯片中状态寄存器的当前状态值来判断以太网端口是否断开,极大简化了以往的判断方式,适用于对数据实时性、完整性要求较高的设备和环境。同时每读写循环一次就判断一次以太网端口的状态值,保证了以太网端口状态的实时性,通过以太网芯片快速的自动判断连接,杜绝了因以太网端口断开时间过长而造成的断流现象,保证了数据的连续传输。
51.基于上述实施例,本实施例是空闲时刻不断重复判断以太网芯片的当前状态值和读写循环一次就判断一次以太网芯片的当前状态值,请参考图2和图3所示;具体操作步骤如下:
52.步骤s21:利用fpga对以太网芯片进行初始化配置;
53.步骤s22:读取所述以太网芯片中状态寄存器的当前状态值,根据所述以太网芯片中状态寄存器的当前状态值判断以太网端口是否断开;
54.步骤s23:若所述以太网端口断开,则将所述以太网端口连接并判断所述以太网芯片是否接收到外部数据;
55.本发明以客户端为例,所述以太网芯片w5300是客户端,利用所述fpga对所述以太网芯片w5300进行寄存器配置和存储器操作,初始化配置完成后,读取所述以太网芯片中状态寄存器sn_ssr的当前状态值,当所述以太网芯片中状态寄存器sn_ssr的当前状态值为0x00时,则判定所述以太网端口的状态为断开。所述以太网端口断开后,往所述以太网芯片中的端口命令寄存器sn_cr写入0x10关闭所述以太网端口,重新设置端口模式和需要连接的端口号等信息,信息设置完成后打开所述以太网端口执行连接命令,如图4所示。
56.步骤s24:若所述以太网端口未断开,则判断所述以太网芯片是否接收到所述外部数据;
57.步骤s25:若所述以太网芯片接收到所述外部数据,则通过所述fpga读取所述外部数据;
58.当所述以太网芯片接收所述外部数据时,如图5所示,使用brdy0监视有效端口是否接收到所述外部数据,若接收到所述外部数据则读取端口模式寄存器sn_rx_mr的值,判断所述外部数据队列mr_align的奇偶性,选择sn_rx_fifor或sn_rx_rsr读取所述外部数据的长度pack_temp,并根据所述pack_temp决定读取所述外部数据的大小,再从sn_rx_fifor读取所述外部数据,读取完成后向端口命令寄存器sn_cr写入所述外部数据读取完成的指令,直至完成。若所述以太网端口在所述以太网芯片接收所述外部数据时断开,则通过所述fpga在所述以太网端口断开时缓存已接收到的外部数据,成功连接所述以太网端口后再进行所述外部数据的接收。
59.步骤s26:若所述以太网芯片未接收到所述外部数据,则不读取所述外部数据;
60.步骤s27:判断所述fpga是否有所述目标数据需要传输,若所述fpga有所述目标数据需要传输,则控制所述以太网芯片发送所述目标数据并返回到步骤s22;
61.当所述以太网芯片发送所述目标数据时,如图6所示,使用brdy1监控发送所述目标数据缓存区,当有所述目标数据需要发送时,判断所述brdy1是否有效,即当前缓存是否可以写入所述目标数据,若所述brdy1有效,则向端口发送所述目标数据缓存存储器sn_tx_fifor写入所述目标数据,写入完成后执行发送所述目标数据指令,并判断相应端口发送完
成中断sn_ir_sendok是否产生中断,随后清除中断,完成所述目标数据发送。
62.步骤s28:若所述fpga无所述目标数据需要传输,则返回到步骤s22。
63.本发明中的采集模块用于将物理信号转化为电压信号,再将电压信号通过a/d转化成数字信号;所述fpga用于控制接收所述外部数据和发送所述目标数据,通过brdy0和brdy1监控收发端口缓存,减少对寄存器的读写,加快读写速率,flash用于保存所述外部数据和所述目标数据,可在通信出现误差后读取完整的所述外部数据和所述目标数据;所述以太网芯片用于进行tcp/ip协议通信,进行接收所述外部数据和发送所述目标数据;网络变压器和网口用于与外界进行物理连接,如图7所示,在本发明的实施例中,所述网络变压器为h1102nl,所述网口为rj45,所述以太网芯片可以为w5300或w5500等,在本发明的实施例中不作限定。
64.本实施例所提供的方法,通过空闲时刻不断重复判断和读写循环一次就判断一次的判断方式保证了以太网端口状态的实时性;通过直接读取以太网芯片中状态寄存器的当前状态值来判断以太网端口是否断开,极大简化了以往的判断方式,适用于对数据实时性、完整性要求较高的设备和环境。通过fpga在以太网端口断开时先缓存数据,连接成功后再进行传输,保障了数据的连续性,同时以太网芯片自动判断连接状态,自动连接,连接时间短,杜绝了由于断开时间过长造成的断流现象,保证了数据连续传输。
65.请参考图8,图8为本发明实施例提供的一种以太网芯片断网重连的方法的结构框图;具体装置可以包括:
66.配置模块10,用于利用fpga对以太网芯片进行初始化配置;
67.读取模块20,用于读取所述以太网芯片中状态寄存器的当前状态值,根据所述以太网芯片中状态寄存器的当前状态值判断以太网端口是否断开;
68.连接模块30,用于若所述以太网端口断开,则将所述以太网端口连接并判断所述以太网芯片是否接收到外部数据;
69.接收模块40,用于若所述以太网芯片接收到所述外部数据,则通过所述fpga读取所述外部数据;
70.判断模块50,用于判断所述fpga是否有目标数据需要传输,若所述fpga有所述目标数据需要传输,则控制所述以太网芯片发送所述目标数据并返回到步骤s12。
71.本实施例的以太网芯片断网重连的装置用于实现前述的以太网芯片断网重连的方法,因此以太网芯片断网重连的装置中的具体实施方式可见前文中的以太网芯片断网重连的方法的实施例部分,例如,配置模块10,读取模块20,连接模块30,接收模块40和判断模块50分别用于实现上述以太网芯片断网重连的方法中步骤s11,s12,s13、s14和s15所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。
72.本发明具体实施例还提供了一种以太网芯片断网重连的设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述一种以太网芯片断网重连的方法的步骤。
73.本发明具体实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种以太网芯片断网重连的方法的步骤。
74.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序
产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
75.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
76.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
77.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
78.显然,上述实施例仅仅是为清楚地说明所作的举例,并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1