一种基于串口服务器的数据传输方法及装置制造方法

文档序号:7823208阅读:282来源:国知局
一种基于串口服务器的数据传输方法及装置制造方法
【专利摘要】本发明提供一种基于串口服务器的数据传输方法及装置,该方法中当串口服务器接收到串口终端发送的数据包后,启动定时器,判断在该定时器的定时时长内,是否接收到该串口终端发送的其他数据包,当接收到其他数据包时,缓存该数据包并重启定时器,否则,将缓存的数据包发送给第一远端网络设备。由于在本发明实施例中串口服务器接收到串口终端的数据包后,启动定时器,当在定时器时长范围内再次收到数据包时,认为该数据包为该串口终端发送的,将该数据包缓存,否则认为该串口终端的数据发送过程结束,从而将缓存的数据包发送给远端网络设备,实现对缓存中数据包的重组,降低了对远端网络设备的配置要求及资源消耗,提高了远端网络设备的工作效率。
【专利说明】-种基于串口服务器的数据传输方法及装置

【技术领域】
[0001] 本发明设及网络通信【技术领域】,尤其设及一种基于串口服务器的数据传输方法及 装置。

【背景技术】
[000引串口服务器是位于W太网中的远端网络设备与串口终端之间的服务器,图1为串 口服务器、远端网络设备及串口终端之间的连接结构示意图。串口服务器通过串口1和串 口 2分别连接第一串口终端和第二串口终端,并采用TCP连接的方式连接远端网络设备,图 1中只示出了一个远端网络设备,串口服务器可W通过多条TCP连接,连接多个远端网络设 备。串口服务器通过软件的方式完成W太网数据与串口数据之间的协议转换,通过串口服 务器既扩展了设备的布局范围,又使串口数据的管理更加的灵活和方便。
[0003] 串口服务器可W实现串口与网络接口之间的转换,其能够实现RS-232、RS-485 W 及RS-422串口与TCP/IP网络接口的转换,从而实现RS-232、RS-485、RS-422串口数据与 TCP^P网络接口数据的双向透明传输。
[0004] 另外,串口服务器可W在TCP/UDP模式下工作,在该模式下,串口服务器作为 server端,远端网络设备作为client端,两者之间通过IP地址与端口号建立连接,从而实 现数据的双向透明传输。
[0005] 在基于串口服务器进行通信时,与串口服务器连接的远端网络设备是不确定的, 当串口终端为被动设备,并且串口设备发送的数据中不包含起始和终止标识,当远端网络 设备与串口终端进行通信时,串口服务器会把收到的多个连续的应答分为多个IP包发送 给远端网络设备,远端网络设备需要将多个IP包进行重组,当远端网络设备为低端网络设 备时,该低端网络设备可能无法重组该多个IP包,即使能够重组也将消耗远端网络设备的 大量资源,从而影响远端网络设备的工作效率。


【发明内容】

[0006] 鉴于上述问题,提出了本发明W便提供一种克服上述问题或者至少部分地解决上 述问题的一种基于串口服务器的数据传输方法及装置。
[0007] 本发明实施例提供了一种基于串口服务器的数据传输方法,该方法包括:
[000引串口服务器接收串口终端发送的数据包,缓存所述数据包并启动定时器;
[0009] 判断在定时器的定时时长内,是否接收到该串口终端发送的其他数据包;
[0010] 当接收到其他数据包时,缓存所述其他数据包并重新启动定时器,否则,将缓存的 每个数据包重组后发送给第一远端网络设备。
[0011] 为了有效的提高数据传输的精度,在本发明实施例中所述将缓存的每个数据包重 组后发送给第一远端网络设备包括:
[0012] 所述串口服务器确定在定时器的定时时长内未接收到其他数据包时,生成超时中 断;
[0013] 根据超时中断,将缓存的每个数据包重组后发送给第一远端网络设备。
[0014] 为了有效的提高数据传输的准确性,降低远端网络设备的配置要求,所述将缓存 的每个数据包重组后发送给第一远端网络设备后,所述方法还包括:
[0015] 串口服务器生成标识报文,标识缓存中的数据包是否进行了重组,并将标识报文 发送给第一远端网络设备。
[0016] 为了有效的保证数据传输的准确性,在本发明实施例中确定所述定时器的定时时 长包括:
[0017] 串口服务器根据接收到的所述串口终端发送的每个数据包,确定相邻的两个包间 隙时长;
[0018] 判断所述相邻的两个包间隙时长是否相等;
[0019] 当相邻的两个包间隙时长相等时,将所述定时器的定时时长确定为大于所述包间 隙时长;
[0020] 当两个包间隙时长不相等,且第一个包间隙时长大于第二个包间隙时长时,确定 所述定时器的定时时长大于第二个包间隙时长小于第一个包间隙时长;
[0021] 当两个包间隙时长不相等,且第一个包间隙时长小于第二个包间隙时长时,确定 所述定时器的定时时长大于第一个包间隙时长小于第二个包间隙时长。
[0022] 为了有效的保证数据传输的准确性,在本发明实施例中确定所述定时器的定时时 长包括:
[0023] 所述串口服务器接收第一远端网络设备返回的响应报文,当该响应报文标识重组 后的数据包中包含多余信息时,将定时器的定时时长调整为小于当前的定时时长,当该响 应报文标识重组后的数据包包含的信息不完整时,将定时器的定时时长调整为大于当前的 定时时长。
[0024] 为了有效的保证数据传输的准确性,所述方法还包括:
[0025] 所述串口服务器接收所述串口终端发送的数据包,判断当前所述定时器是否超 时;
[0026] 当当前所述定时器超时时,将所述数据包发送给与其TCP连接的每个远端网络设 备。
[0027] 为了有效的保证数据传输的准确性,所述方法还包括:
[002引所述串口服务器接收第二远端网络设备发送的请求,判断当前位于与所述第一远 端网络设备对应的定时器的定时时长内时,缓存所述请求。
[0029] 本发明实施例提供了一种基于串口服务器的数据传输装置,所述装置包括:
[0030] 接收缓存模块,用于接收串口终端发送的数据包,缓存所述数据包并启动定时 器;
[0031] 判断模块,用于判断在定时器的定时时长内,是否接收到该串口终端发送的其他 数据包;
[0032] 缓存发送模块,用于当判断模块判断接收到其他数据包时,缓存所述其他数据包 并重新启动定时器,否则,将缓存的每个数据包重组后发送给第一远端网络设备。
[0033] 为了有效的提高数据传输的精度,在本发明实施例中所述缓存发送模块,具体用 于确定在定时器的定时时长内未接收到其他数据包时,生成超时中断;根据超时中断,将缓 存中的每个数据包重组后发送给第一远端网络设备。
[0034] 为了有效的提高数据传输的准确性,降低远端网络设备的配置要求,所述缓存发 送模块,还用于生成标识报文,标识缓存中的数据包是否进行了重组,并将标识报文发送给 第一远端网络设备。
[0035] 为了有效的保证数据传输的准确性,在本发明实施例中所述装置还包括:
[0036] 确定模块,用于根据接收到的所述串口终端发送的每个数据包,确定相邻的两个 包间隙时长;判断所述相邻的两个包间隙时长是否相等;当相邻的两个包间隙时长相等 时,将所述定时器的定时时长确定为大于所述包间隙时长;当两个包间隙时长不相等,且 第一个包间隙时长大于第二个包间隙时长时,确定所述定时器的定时时长大于第二个包间 隙时长小于第一个包间隙时长;当两个包间隙时长不相等,且第一个包间隙时长小于第二 个包间隙时长时,确定所述定时器的定时时长大于第一个包间隙时长小于第二个包间隙时 长。
[0037] 为了有效的保证数据传输的准确性,在本发明实施例中所述装置还包括:
[003引所述串口服务器接收第一远端网络设备返回的响应报文,当该响应报文标识重组 后的数据包中包含多余信息时,将定时器的定时时长调整为小于当前的定时时长,当该响 应报文标识重组后的数据包包含的信息不完整时,将定时器的定时时长调整为大于当前的 定时时长。
[0039] 为了有效的保证数据传输的准确性,所述判断模块,还用于当接收到所述串口终 端发送的数据包,判断当前所述定时器是否超时;
[0040] 所述缓存发送模块,还用于当判断模块判断当前所述定时器超时时,将所述数据 包发送给与其TCP连接的每个远端网络设备。
[0041] 为了有效的保证数据传输的准确性,所述缓存接收模块,还用于接收第二远端网 络设备发送的请求;
[0042] 所述判断模块,还用于判断是否当前位于与所述第一远端网络设备对应的定时器 的定时时长内;
[0043] 所述缓存发送模块,还用于当所述判断模块判断当前位于与所述第一远端网络设 备对应的定时器的定时时长内时,缓存所述请求。
[0044] 本发明实施例提供了一种基于串口服务器的数据传输方法及装置,该方法中当串 口服务器接收到串口终端发送的数据包后,启动定时器,判断在该定时器的定时时长内,是 否接收到该串口终端发送的其他数据包,当接收到其他数据包时,缓存该数据包并重启定 时器,否则,将缓存的每个数据包重组后发送给第一远端网络设备。由于在本发明实施例中 串口服务器接收到串口终端的数据包后,启动定时器,当在定时器时长范围内再次收到数 据包时,认为该数据包为该串口终端发送的,将该数据包缓存,否则认为该串口终端的数据 发送过程结束,从而将缓存的数据包重组后发送给远端网络设备,实现对缓存中数据包的 重组,降低了对远端网络设备的配置要求及资源消耗,提高了远端网络设备的工作效率。
[0045] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段, 而可依照说明书的内容予W实施,并且为了让本发明的上述和其它目的、特征和优点能够 更明显易懂,W下特举本发明的【具体实施方式】。

【专利附图】

【附图说明】
[0046] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通 技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明 的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0047] 图1为现有技术提供的串口服务器、远端网络设备及串口终端之间的连接结构示 意图;
[0048] 图2为本发明实施例提供的一种基于串口服务器的数据传输过程;
[0049] 图3为本发明实施例提供的一种基于串口服务器的数据传输的具体过程:
[0化0] 图4为本发明实施例提供的一种基于串口服务器的数据传输装置结构示意图。

【具体实施方式】
[0051] 为了降低对远端网络设备的配置要求及资源消耗,提高远端网络设备的工作效 率,本发明实施例提供了一种基于串口服务器的数据传输方法及装置。
[0052] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开 的示例性实施例,然而应当理解,可各种形式实现本公开而不应被该里阐述的实施例 所限制。相反,提供该些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围 完整的传达给本领域的技术人员。
[0053] 下面结合说明附图,对本发明实施例进行说明。
[0054] 图2为本发明实施例提供的一种基于串口服务器的数据传输过程,该过程包括W 下步骤:
[0化5] S201 ;串口服务器接收串口终端发送的数据包,缓存所述数据包并启动定时器。
[0化6] 本发明实施例中串口终端为被动终端,远端网络设备通过串口服务器向串口终端 发送请求,串口终端接收到请求后,向远端网络设备返回数据包。针对该请求,串口终端可 W向远端网络设备返回一个数据包,也可W向远端网络设备返回几个数据包。
[0化7] 当串口服务器接收到串口终端发送的数据包时,为了保证将该串口终端发送的数 据包重组后发送给远端网络设备,串口服务器缓存该数据包并启动定时器。该定时器可W 是W软件方式实现的,也可W是W硬件方式实现的。
[0化引 S202 ;判断在定时器的定时时长内,是否接收到该串口终端发送的其他数据包,当 判断结果为是时,进行步骤S203,否则,进行步骤S204。
[0化9] 串口服务器每个串口连接对应的串口终端,因此串口服务器根据接收数据包的串 口的标识,即可确定是哪个串口终端发送的数据包。
[0060] S203 ;缓存所述其他数据包并重新启动定时器,之后进行步骤S202。
[0061] 串口服务器接收到该串口终端发送的其他数据包后,为了保证能够将第一远端网 络设备请求的每个数据包重组后返回,串口服务器接收到其他数据包后,重启定时器,判断 在该定时器的定时时长内是否还能接收到该串口终端发送的其他数据包。串口服务器为了 保证能够将串口终端此次回复的每个数据包重组,设置的定时器的定时时长应大于串口终 端发送数据包的包间隙长度。
[0062] S204 ;将缓存的每个数据包重组后发送给第一远端网络设备。
[0063] 在定时器的定时时长内未接收到该串口终端发送的数据包时,可W认为该串口终 端的回复过程结束,将缓存中的每个数据包重组后发送给第一远端网络设备。
[0064] 由于在本发明实施例中串口服务器接收到串口终端的数据包后,启动定时器,当 在定时器的定时时长范围内再次收到数据包时,认为该数据包为该串口终端发送的,将该 数据包缓存,否则认为该串口终端的数据发送过程结束,从而将缓存的数据包发送给远端 网络设备,实现对缓存中数据包的重组,降低了对远端网络设备的配置要求及资源消耗,提 高了远端网络设备的工作效率。
[00化]具体的,在本发明实施例中当串口服务器接收到某一串口终端发送的数据包后, 缓存该数据包并启动定时器,该定时器可W是T3定时器,T3定时器的定时时长可W根据需 要进行设置。串口服务器判断在该T3定时器的定时时长内是否接收到该串口终端发送的 其他数据包,当接收到该串口终端发送的其他数据包时,缓存该其他数据包并重启定时器, 并继续判断在该定时器的定时时长内是否接收到该串口终端发送的其他数据包;当在定时 器的定时时长内未接收到串口终端发送的其他数据包时,将缓存的每个数据包重组后发送 给第一远端网络设备。
[0066] 在本发明实施例中为了保证数据发送的完整性及准确性,所述串口服务器接收第 二远端网络设备发送的请求,判断当前位于与所述第一远端网络设备对应的定时器的定时 时长内时,缓存所述请求。或者,当该串口服务器接收到第一远端网络设备发送的其他请 求,判断当前位于与所述第一远端网络设备对应的定时器的定时时长内时,缓存该其他请 求。
[0067] 为了有效的提高数据传输的精度,在本发明实施例中可W基于串口服务器的CPU 巧片集成的串口控制器,生成超时中断,从而实现软件与硬件的结合,实现高精度数据收发 控制。所述将缓存的数据包发送给第一远端网络设备包括:
[0068] 所述串口服务器确定在定时器的定时时长内未接收到其他数据包时,生成超时中 断;
[0069] 根据超时中断,将缓存中的数据包发送给第一远端网络设备。
[0070] 串口服务器当检测到定时器的定时时长到来,但在该定时时长内未接收到该串口 终端发送的其他数据包时,串口服务器生成中断,W告知驱动器帖结束需进行数据包的重 组。具体的,在串口服务器的操作系统中,串口硬件化ardware)收到数据包后,将该数据包 缓存在硬件的缓存中,串口驱动(serial化iver)从硬件的缓存中读取该数据包,将该数据 包转存到内存中,当生成中断后,上层的应用程序(a卵lication)从内存中读取数据包并 重组,并通过网口将重组后的数据包发送出去。
[0071] 由于串口服务器提供一个超时中断机制,当产生超时中断时,串口驱动从串口硬 件buffer中读取数据包,并将该数据包打上标识字段,标识该数据包为待重组数据,并将 该数据包转存到内存,上层的应用程序在收到中断后,从内存中根据该标识字段读取该数 据包,并将该数据包重组后发送。
[0072] 具体的,串口驱动从硬件buffer中读取该数据包,并在该数据包的数据头部分添 加一个标识字段,之后将该数据包转存到内存中。添加标识字段后的该数据包的数据头包 括两部分,一部分为标识字段,该标识字段例如可W为一个字节,例如可W为"#",另一部分 为数据长度,该数据长度可W占用两个字节,W标识该数据包在数据头之后的数据的实际 长度。当应用程序从内存中读取该数据包时,首先读取数据头部分,根据数据头包含的信息 可w解析出后面数据的长度,从而可w获取相应的数据内容,从而实现数据的重组。
[0073] 串口服务器封装的数据包的格式可W如表1所示:
[0074]

【权利要求】
1. 一种基于串口服务器的数据传输方法,其特征在于,该方法包括: 串口服务器接收串口终端发送的数据包,缓存所述数据包并启动定时器; 判断在定时器的定时时长内,是否接收到该串口终端发送的其他数据包; 当接收到其他数据包时,缓存所述其他数据包并重新启动定时器,否则,将缓存的每个 数据包重组后发送给第一远端网络设备。
2. 如权利要求1所述的方法,其特征在于,所述将缓存的每个数据包重组后发送给第 一远端网络设备包括: 所述串口服务器确定在定时器的定时时长内未接收到其他数据包时,生成超时中断; 根据超时中断,将缓存的每个数据包重组后发送给第一远端网络设备。
3. 如权利要求1或2所述的方法,其特征在于,所述将缓存的每个数据包重组后发送给 第一远端网络设备后,所述方法还包括: 串口服务器生成标识报文,标识缓存中的数据包是否进行了重组,并将标识报文发送 给第一远端网络设备。
4. 如权利要求1所述的方法,其特征在于,确定所述定时器的定时时长包括: 串口服务器根据接收到的所述串口终端发送的每个数据包,确定相邻的两个包间隙时 长; 判断所述相邻的两个包间隙时长是否相等; 当相邻的两个包间隙时长相等时,将所述定时器的定时时长确定为大于所述包间隙时 长; 当两个包间隙时长不相等,且第一个包间隙时长大于第二个包间隙时长时,确定所述 定时器的定时时长大于第二个包间隙时长小于第一个包间隙时长; 当两个包间隙时长不相等,且第一个包间隙时长小于第二个包间隙时长时,确定所述 定时器的定时时长大于第一个包间隙时长小于第二个包间隙时长。
5. 如权利要求1所述的方法,其特征在于,确定所述定时器的定时时长包括: 所述串口服务器接收第一远端网络设备返回的响应报文,当该响应报文标识重组后的 数据包中包含多余信息时,将定时器的定时时长调整为小于当前的定时时长,当该响应报 文标识重组后的数据包包含的信息不完整时,将定时器的定时时长调整为大于当前的定时 时长。
6. 如权利要求1所述的方法,其特征在于,所述方法还包括: 所述串口服务器接收所述串口终端发送的数据包,判断当前定时器是否超时; 当当前所述定时器超时时,将所述数据包发送给与其TCP连接的每个远端网络设备。
7. 如权利要求1所述的方法,其特征在于,所述方法还包括: 所述串口服务器接收第二远端网络设备发送的请求,判断当前位于与所述第一远端网 络设备对应的定时器的定时时长内时,缓存所述请求。
8. -种基于串口服务器的数据传输装置,其特征在于,所述装置包括: 接收缓存模块,用于接收串口终端发送的数据包,缓存所述数据包并启动定时器; 判断模块,用于判断在定时器的定时时长内,是否接收到该串口终端发送的其他数据 包; 缓存发送模块,用于当判断模块判断接收到其他数据包时,缓存所述其他数据包并重 新启动定时器,否则,将缓存的每个数据包重组后发送给第一远端网络设备。
9. 如权利要求8所述的装置,其特征在于,所述缓存发送模块,具体用于确定在定时器 的定时时长内未接收到其他数据包时,生成超时中断;根据超时中断,将缓存的每个数据包 重组后发送给第一远端网络设备。
10. 如权利要求8或9所述的装置,其特征在于,所述缓存发送模块,还用于生成标识报 文,标识缓存中的数据包是否进行了重组,并将标识报文发送给第一远端网络设备。
11. 如权利要求8所述的装置,其特征在于,所述装置还包括: 确定模块,用于根据接收到的所述串口终端发送的每个数据包,确定相邻的两个包间 隙时长;判断所述相邻的两个包间隙时长是否相等;当相邻的两个包间隙时长相等时,将 所述定时器的定时时长确定为大于所述包间隙时长;当两个包间隙时长不相等,且第一个 包间隙时长大于第二个包间隙时长时,确定所述定时器的定时时长大于第二个包间隙时长 小于第一个包间隙时长;当两个包间隙时长不相等,且第一个包间隙时长小于第二个包间 隙时长时,确定所述定时器的定时时长大于第一个包间隙时长小于第二个包间隙时长。
12. 如权利要求8所述的装置,其特征在于,所述装置还包括: 确定模块,用于接收第一远端网络设备返回的响应报文,当该响应报文标识重组后的 数据包中包含多余信息时,将定时器的定时时长调整为小于当前的定时时长,当该响应报 文标识重组后的数据包包含的信息不完整时,将定时器的定时时长调整为大于当前的定时 时长。
13. 如权利要求8所述的装置,其特征在于,所述判断模块,还用于当接收到所述串口 终端发送的数据包,判断当前定时器是否超时; 所述缓存发送模块,还用于当判断模块判断当前所述定时器超时时,将所述数据包发 送给与其TCP连接的每个远端网络设备。
14. 如权利要求8所述的装置,其特征在于,所述缓存接收模块,还用于接收第二远端 网络设备发送的请求; 所述判断模块,还用于判断是否当前位于与所述第一远端网络设备对应的定时器的定 时时长内; 所述缓存发送模块,还用于当所述判断模块判断当前位于与所述第一远端网络设备对 应的定时器的定时时长内时,缓存所述请求。
【文档编号】H04L12/861GK104486247SQ201410784390
【公开日】2015年4月1日 申请日期:2014年12月16日 优先权日:2014年12月16日
【发明者】刘昺麟, 尹二飞 申请人:北京东土科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1