CN111930645B - 一种基于tcpip的通用usb设备网络透传系统及方法 - Google Patents

一种基于tcpip的通用usb设备网络透传系统及方法 Download PDF

Info

Publication number
CN111930645B
CN111930645B CN202010705594.1A CN202010705594A CN111930645B CN 111930645 B CN111930645 B CN 111930645B CN 202010705594 A CN202010705594 A CN 202010705594A CN 111930645 B CN111930645 B CN 111930645B
Authority
CN
China
Prior art keywords
packet
usb
network
drive
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010705594.1A
Other languages
English (en)
Other versions
CN111930645A (zh
Inventor
陈耀南
袁金正
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Flexem Technology Co ltd
Original Assignee
Shanghai Flexem Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Flexem Technology Co ltd filed Critical Shanghai Flexem Technology Co ltd
Priority to CN202010705594.1A priority Critical patent/CN111930645B/zh
Publication of CN111930645A publication Critical patent/CN111930645A/zh
Application granted granted Critical
Publication of CN111930645B publication Critical patent/CN111930645B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields

Abstract

本发明公开了一种基于TCPIP的通用USB设备网络透传系统及方法,包括:监测客户机USB接口的信息包,将信息包打包成为驱动包,将驱动包进一步打包为网络包,并将网络包通过网络发送至服务机;服务机接收客户机的网络包,将网络包解包为驱动包,将驱动包进一步解包为应用包;服务机根据人机交互的输入输出生成新的应用包,将应用包打包为驱动包,将驱动包进一步打包为网络包,并将网络包通过网络发送至客户机;客户机接收服务机的网络包,将网络包解包为驱动包,将驱动包进一步解包为信息包,并将信息包发送至内置的USB接口。本发明能够有效解决现有设备交互方式中的人力成本高、时间效率低、不能批量进行的问题,并且降低了客户中断生产造成的损失。

Description

一种基于TCPIP的通用USB设备网络透传系统及方法
技术领域
本发明涉及一种网络传输系统及方法,更具体地说,涉及一种基于TCPIP的通用USB设备网络透传系统及方法。
背景技术
随着网络、USB设备技术的深入发展,USB设备在远程网络连接中的数据交互变得越来越重要了。当今工业物联网领域,客户机往往距离研发地较远或者处于不能随意接触区域,而客户又希望技术人员通过服务机操作客户机的USB设备,实现远程操控和技术支持,尤其是在一些危险区域或者人员不能即时到达的紧急场景,因此,探讨远程操控USB设备并实现快速、经济、高效解决问题是很必要的。
当前在对客户机对应的USB设备维护和数据交互时,主要依靠技术人员现场操控完成。如图1所示,现有的设备交互流程中,首先研发技术人员到达客户机现场,然后通过近距离接线连接客户机,然后现场操作读写实现设备交互。在此设备交互过程中,技术人员需要到达指定的客户机现场,并且需要客户跟随甚至停止生产来配合设备交互和调试,或者说,此设备交互中,技术人员、客户机、客户机现场环境需要紧密配合。
可见,现有设备交互过程需要耗费更多的人力、更多的资源、更多的时间。在工业生产企业,尤其工业物联网应用广泛的企业,对人力、时间和资源利用率是要慎重规划和使用的。
下面是现有技术下设备交互过程中面临的问题:
第一,对紧急场景的设备交互,技术人员是不能够快速到达客户机现场的。
第二,对于处于危险场景或者处于不可随意接触区域的客户机,现场设备交互的条件是很难满足的。
第三,现场设备交互导致企业一定程度上中断生产,这对客户的损失是难以预测的。
第四,对大批量客户机需要现场设备交互操作,其人力成本是巨大的,效率也极其低下。
现有技术中,往往没有考虑距离、客户机放置场景、对客户造成的影响和大批量操作因素,所以在小批量,人力成本、时间效率允许的情况下是适用的。但是现有技术难以解决设备交互中对人力、时间和资源利用率低下的瓶颈问题。
发明内容
针对现有技术中存在的上述问题,本发明的目的是提供一种基于TCPIP的通用USB设备网络透传系统及方法。
为实现上述目的,本发明采用如下技术方案:
一种基于TCPIP的通用USB设备网络透传系统,包括服务机和客户机,其中客户机包括USB接口单元、USB数据收集单元和USB设备管理单元;服务机包括USB驱动模拟单元、USB管理单元和USB应用程序单元。USB数据收集单元实时检测USB接口单元的信息包,将信息包打包为驱动包,并且将驱动包上传至USB设备管理单元;USB数据收集单元还接收USB设备管理单元下发的驱动包,将驱动包解包为信息包,并将信息包发送至USB接口单元。USB设备管理单元将USB数据收集单元上传的驱动包打包为网络包,并将网络包通过网络发送至服务机;USB设备管理单元还通过网络接收服务机的网络包,将网络包解包为驱动包并下发至USB数据收集单元。服务机的USB管理单元接收网络包,将网络包解包为驱动包,并将驱动包下发至USB驱动模拟单元;USB管理单元还接收USB驱动模拟单元上传的驱动包,将驱动包打包成网络包,并将网络包发送至客户机的USB设备管理单元。USB驱动模拟单元将USB管理单元下发的驱动包解包为应用包,将应用包下发至USB应用程序单元;USB驱动模拟单元还接收USB应用程序单元上传的应用包,将应用包打包为驱动包,并将驱动包上传至USB管理单元。USB应用程序单元接收USB驱动模拟单元下发的应用包,根据人机交互的输入输出生成新的应用包,并将新的应用包上传至USB驱动模拟单元。
进一步地,USB设备管理单元通过监听网络端口循环接收网络包,若出现一帧写数据接收超时,则通过网络向服务机反馈相应错误,若无错误则将网络包解析为驱动包,排序并缓存进写缓存区。USB设备管理单元接着判断若一次写未接收完,则循环继续接收网络包,否则调用USB数据收集单元的写操作请求。
进一步地,USB数据收集单元将驱动包解析为信息包,若数据校验无误则发送信息包到USB接口单元,否则向USB设备管理单元反馈错误,USB设备管理单元通过网络向服务机反馈相应错误。USB数据收集单元通过检测USB接口单元的IO口获取到信息包,然后打包信息包为驱动包并反馈给USB设备管理单元。
进一步地,USB设备管理单元收到USB数据收集单元的驱动包后缓存数据,并检测是否需要分包发送,若需要则将驱动包拆分并分别打包为网络包,否则直接打包为网络包。网络包打包完成后,USB设备管理单元通过网络依次发送网络包。
进一步地,USB驱动模拟单元接收USB应用程序单元通过人机交互生成的应用包,并将应用包打包成驱动包,写入缓存区。
进一步地,USB管理单元循环调用USB驱动模拟单元的读接口,读取USB驱动模拟单元的数据,并在USB驱动模拟单元读接口中判断缓存是否有数据,有即读取并传送回USB管理单元,无则等待数据写入。USB管理单元在获取到USB驱动模拟单元读接口的反馈数据后,判断数据是否需要分包,若需要则分包然后打包成网络包,否则直接打包网络包。网络包打包完成后,USB管理单元通过网络依次发送网络包。
进一步地,USB管理单元循环监听客户机端口和获取网络包数据,判断接收网络包是否超时,超时则通过网络向客户机反馈错误,否则解包网络包为驱动包并缓存数据,若一帧接收完成则调用USB驱动模拟单元写接口,否则继续循环接收网络包。
进一步地,USB驱动模拟单元写接口判断驱动包校验无误,则解包缓存数据到缓冲区,否则反馈错误给USB管理单元,而USB管理单元发送错误给客户机。USB应用程序单元调用USB驱动模拟单元读接口,判断缓冲区是否有数据并循环读取数据到USB应用程序单元。
为实现上述目的,本发明还采用如下技术方案:
一种基于TCPIP的通用USB设备网络透传系统,包括服务机和客户机。客户机执行实时读写操作,其中:客户机的写操作包括监测内置USB接口的信息包,将信息包打包成为驱动包,将驱动包进一步打包为网络包,并将网络包通过网络发送至服务机。客户机的读操作包括接收服务机的网络包,将网络包解包为驱动包,将驱动包进一步解包为信息包,并将信息包发送至内置的USB接口。服务机执行实时读写操作,其中:服务机的读操作包括接收客户机的网络包,将网络包解包为驱动包,将驱动包进一步解包为应用包。服务机的写操作包括根据人机交互的输入输出生成新的应用包,将应用包打包为驱动包,将驱动包进一步打包为网络包,并将网络包通过网络发送至客户机。
为实现上述目的,本发明还采用如下技术方案:
一种基于TCPIP的通用USB设备网络透传方法,包括:监测客户机USB接口的信息包,将信息包打包成为驱动包,将驱动包进一步打包为网络包,并将网络包通过网络发送至服务机;服务机接收客户机的网络包,将网络包解包为驱动包,将驱动包进一步解包为应用包;服务机根据人机交互的输入输出生成新的应用包,将应用包打包为驱动包,将驱动包进一步打包为网络包,并将网络包通过网络发送至客户机;客户机接收服务机的网络包,将网络包解包为驱动包,将驱动包进一步解包为信息包,并将信息包发送至内置的USB接口。
进一步地,客户机通过监听网络端口循环接收网络包,若出现一帧写数据接收超时,则通过网络向服务机反馈相应错误,若无错误则将网络包解析为驱动包,排序并缓存进写缓存区,若一次写未接收完,则循环继续接收网络包。客户机进一步将驱动包解析为信息包,若数据校验无误则发送信息包到USB接口,否则反馈错误,并通过网络向服务机反馈相应错误。客户机通过检测述USB接口的IO口获取到信息包,打包信息包为驱动包并缓存数据,检测是否需要分包发送,若需要则将驱动包拆分并分别打包为网络包,否则直接打包为网络包。网络包打包完成后,客户机通过网络依次发送网络包。
进一步地,服务机循环监听客户机端口和获取网络包数据,判断接收网络包是否超时,超时则通过网络向客户机反馈错误,否则解包网络包为驱动包并缓存数据。若驱动包校验无误,则解包驱动包为应用包并缓存数据到缓冲区,否则反馈错误并发送错误给客户机。判断缓冲区是否有数据并循环读取数据。通过人机交互生成的应用包,并将应用包打包成驱动包,写入缓存区。判断缓存是否有驱动包数据,有即读取,无则等待数据写入。判断驱动包数据是否需要分包,若需要则分包然后打包成网络包,否则直接打包网络包。网络包打包完成后,通过网络依次发送网络包。
在上述技术方案中,本发明的系统和方法实现了服务机与客户机远程设备交互,降低客户生产中断,能够有效解决现有设备交互方式中的人力成本高、时间效率低、不能批量进行的问题,并且降低了客户中断生产造成的损失。
附图说明
图1是现有USB设备交互流程;
图2是本发明系统的整体结构示意图;
图3是图2中客户机的读写流程图;
图4是图2中服务机的读写流程图;
图5是管理单元通信流程示意图。
具体实施方式
下面结合附图和实施例进一步说明本发明的技术方案。
本发明从减少现场设备交互、避免中断客户生产的角度出发,旨在利用有限的人力、时间成本,尽可能多的实现设备交互并降低客户损失的目的,公开一种基于TCPIP的通用USB设备网络透传系统及对应的方法。
为了更好地说明本发明的系统和方法,本发明首先对特定的术语和概念进行定义:
客户机:具有常见USB接口、网络接口,能够主动识别USB的设备,能够通过网口主动向服务机上报USB设备,并且能够通过网口与服务机交互数据。
服务机:具有网络接口,能够通过网口与客户机通信。
USB设备:具有USB接口,插入客户机后能够被客户机识别并实现数据通信的设备和模块。
设备交互:包括通过客户机从USB设备读取数据或指令、通过客户机向USB设备写入数据或指令。
客户:使用客户机进行工业生产的企业。
客户机USB设备物理接口单元:又可以称之为USB接口单元,包括USB设备到处理器之间的USB接口、USB设备控制器、IO引脚,简称物理接口。物理接口是USB设备到客户机的物理连接部分。
客户机USB设备数据收集单元:又可以称之为USB数据收集单元,收集USB设备数据和向USB设备发送数据,简称收集单元。USB数据收集单元运行于操作系统内核中。
客户机USB设备管理单元:又可以称之为USB设备管理单元,从收集单元读取数据和向收集单元写入数据,简称管理单元C。管理单元C属于应用程序模块,通过TCPIP与管理单元S通信。
服务机USB设备驱动模拟单元:又可以称之为USB驱动模拟单元,用于模拟USB设备驱动程序,与管理单元S和应用单元进行读写通信,简称驱动单元。驱动单元运行于操作系统内核中。
服务机USB设备管理单元:又可以称之为USB管理单元,与驱动单元读写通信,通过TCPIP与管理单元C通信,简称管理单元S。管理单元S属于应用程序模块。
服务机USB设备应用程序单元:又可以称之为USB应用程序单元,与驱动单元读写交互数据,简称应用单元。应用单元属于应用程序模块。
USB信息包:包括发送或接收的USB插拔信息、设备指令信息、设备数据信息及其他IO控制信息,简称USB包或者信息包。
驱动信息包:增加了包头、设备信息、包尾、校验的USB包,简称驱动包。
网络信息包:增加了包头、序号、设备类型、设备ID、包尾、校验的驱动包,简称网络包。
应用信息包:包括应用程序向驱动单元写的原始数据、驱动单元对驱动包解析出的设备数据,简称应用包。
参照图2,本发明首先公开一种基于TCPIP的通用USB设备网络透传系统,以对USB设备读写为衔接点,结合TCPIP网络通信,主要实现了收集单元、管理单元C、管理单元S、驱动单元、应用单元等的设计。本发明的系统主要包括一个服务机和若干个客户机,其中服务机包括USB驱动模拟单元、USB管理单元和USB应用程序单元,而客户机包括USB接口单元、USB数据收集单元和USB设备管理单元。由图2可见,数据流向为:
USB设备物理接口单元-USB数据收集单元-USB设备管理单元-USB管理单元-USB驱动模拟单元-USB应用程序单元
本发明系统实施的整个过程都通过相应的数据包实施读写来实现,双向数据持续流动达到设备交互的目的。
如图2所示,首先,在客户机现场,USB设备通过物理接口将设备数据以电信号传导给客户机,并且接收USB收集包写设备的USB包,通过物理接口转变为电信号传导给USB设备。
第二,USB数据收集单元实现读写接口供应用程序调用,通过读写接口实现对USB设备的读取和写入。
作为本发明的一种具体实施方式,USB数据收集单元实时检测USB接口单元的信息包,即物理接口发送管脚相关的USB包。USB数据收集单元将信息包打包为驱动包,并且将驱动包发送到客户机上层管理单元C,即上传至USB设备管理单元。同时,USB数据收集单元还实时接收USB设备管理单元(管理单元C)下发的驱动包,将驱动包解包为信息包(USB包),并将信息包发送至相应的物理接口接收管脚,即USB接口单元。
第三,管理单元C不断调用驱动单元读操作获取驱动包数据,组织网络包并调用TCPIP send发送数据,并且接收网络包数据和调用驱动单元的写操作向设备写数据。
作为本发明的一种具体实施方式,USB设备管理单元(管理单元C)实时读取到收集单元发送的驱动包,将USB数据收集单元上传的驱动包打包为网络包,并将网络包通过网络发送至服务机。同时,USB设备管理单元(管理单元C)还通过网络接收服务机的USB管理单元(管理单元S)的网络包,将网络包解包为驱动包并下发至USB数据收集单元。
第四,管理单元S通过调用驱动单元的读写方法,实现对驱动单元的数据交互,并且通过TCPIP与管理模块C交互数据。
作为本发明的一种具体实施方式,继续参照图2,在服务机端,服务机的USB管理单元(管理单元S)接收USB设备管理单元(管理单元C)发送的网络包,将网络包解包为驱动包,并将驱动包下发至USB驱动模拟单元。同时,USB管理单元(管理单元S)还接收USB驱动模拟单元上传的驱动包,将驱动包打包成网络包,并将网络包发送至客户机的USB设备管理单元(管理单元C)。
第五,驱动单元实现读写接口供管理模块S调用,并且实现供应用单元调用的读写方法。
作为本发明的一种具体实施方式,USB驱动模拟单元将USB管理单元下发的驱动包解包为应用包,将应用包下发至USB应用程序单元。同时,USB驱动模拟单元还接收USB应用程序单元上传的应用包,将应用包打包为驱动包,并将驱动包上传至USB管理单元(管理单元S)。
最后,应用单元调用驱动单元的读写方法,实现服务机到USB设备的通信。
作为本发明的一种具体实施方式,USB应用程序单元接收USB驱动模拟单元下发的应用包,根据人机交互的输入输出生成新的应用包,并将新的应用包上传至USB驱动模拟单元。
由上述客户机、服务机中各个模块的数据处理流程来看,在整个设备交互过程中,数据流通经过了USB设备、内核模块、应用模块之间的有序流通。设备交互过程主要围绕USB数据收集单元、管理单元C、管理单元S、USB驱动模拟单元、USB应用程序单元完成,通过数据包管理完成USB设备到客户机再到服务机的有效透传。如此可以减少了客户机现场人员参与的时间,降低客户中断生产的频次,并且保证对批量客户机操控的能力,整体上实现了快速、经济、高效的设备交互。
参照图3,客户机现场主要包括:管理单元C、USB数据收集单元、物理接口、USB设备,这四个模块连接起来协调完成客户机现场工作。下面进一步说明客户机内部的数据读写流程。
如图3所示,左侧为客户机现场写USB设备流程。
第一,首先管理单元C通过监听网络端口循环接收网络包,若出现一帧写数据接收超时,则通过网络向服务机反馈相应错误,若无错误则将网络包解析为驱动包,排序并缓存进写缓存区。然后管理单元C解析此网络包数据为驱动包,排序并缓存进写缓冲区,接着判断若一次写未接收完,则循环继续接收网络包,否则调用USB数据收集单元的写操作请求将数据写入USB设备。
第二,USB数据收集单元写操作被调用后,首先会解析驱动包成为要写入USB设备的信息包,若数据校验无误则发送信息包到USB接口单元的USB设备接收引脚,否则向应用层管理单元C反馈错误,管理单元C进一步通过网络向服务机反馈相应错误。
最后,USB设备通过接收引脚获取到写数据。
继续参照图3,右侧为客户机现场读USB设备流程。
第一,USB设备会通过发送引脚主动的向客户机IO写数据,同时的管理单元C循环的通过调用USB数据收集单元的读接口,而USB数据收集单元读接口执行时,通过检测USB设备IO口获取到信息包,然后打包信息包为驱动包并反馈给管理单元C。
第二,当管理单元C收到USB数据收集单元的驱动包后缓存数据,并检测是否需要分包发送,若需要则将驱动包拆分并分别打包为网络包,否则直接打包为网络包。
最后,网络包打包完成后,USB设备管理单元通过网络依次发送网络包。
参照图4,服务机现场主要包括:管理单元S、USB驱动模拟单元、USB应用程序单元,这三个模块连接起来协调完成服务机现场工作。下面进一步说明服务机内部的数据读写流程。
如图4所示,左侧为服务机现场写USB设备流程。
首先,USB应用程序单元通过人机交互调用USB驱动模拟单元的写接口1,并传入应用包数据。
其次,USB驱动模拟单元的写接口1将应用包打包为驱动包,然后写入缓存区。
而同时,管理单元S会循环调用USB驱动模拟单元的读接口2,读取USB驱动模拟单元的数据,并在USB驱动模拟单元的读接口2中判断缓存是否有数据,有即读取并传送给管理单元S,无则等待数据写入。
然后,在管理单元S中,在获取到USB驱动模拟单元的读接口2反馈数据后,判断数据是否需要分包,若需要则分包然后打包成网络包,否则直接打包网络包。
最后,网络包打包完成后,管理单元S通过网络依次发送网络包。
继续参照如图4,右侧为服务机现场读USB设备流程。
首先,管理单元S循环监听客户机端口和获取网络包数据,然后执行写USB驱动模拟单元流程。
其次,管理单元S判断接收网络包是否超时,超时则通过网络向客户机反馈错误,否则网络包为驱动包并缓存数据,若一帧接收完成则调用USB驱动模拟单元的写接口2,否则继续循环接收网络包。
然后,USB驱动模拟单元的写接口2中判断驱动包校验无误,则解包缓存数据到缓冲区,否则反馈错误给管理单元S,而管理单元S进一步发送错误给客户机。
而同时,USB应用程序单元调用USB驱动模拟单元的读接口1,判断缓冲区是否有数据并循环读取数据到USB应用程序单元。
图5所示重点介绍了客户机的USB设备管理单元(管理单元C)和服务机的USB管理单元(管理单元S)的通信细节。
管理单元S通过TCPIP使用send方法向管理单元C发送网络包,而管理单元C使用recv接收网络包,结合前述流程即实现USB应用程序单元到USB驱动模拟单元到管理单元S到管理单元C到USB数据收集单元再到USB设备的写过程。
管理单元C通过TCPIP使用send方法向管理单元S发送网络包,而管理单元S使用recv接收网络包,结合前述流程即实现USB应用程序单元到USB驱动模拟单元到管理单元S到管理单元C到USB数据收集单元再到USB设备的读过程。
作为本发明的一种优选实施方式,按照上述各个系统模块所执行的流程和数据传输方式,如果将客户机和服务机看作一个整体,那么客户机和服务机分别执行了以下的操作流程:
客户机执行实时读写操作,其中:
客户机的写操作包括监测内置USB接口的信息包,将信息包打包成为驱动包,将驱动包进一步打包为网络包,并将网络包通过网络发送至服务机。
客户机的读操作包括接收服务机的网络包,将网络包解包为驱动包,将驱动包进一步解包为信息包,并将信息包发送至内置的USB接口;
服务机执行实时读写操作,其中:
服务机的读操作包括接收客户机的网络包,将网络包解包为驱动包,将驱动包进一步解包为应用包。
服务机的写操作包括根据人机交互的输入输出生成新的应用包,将应用包打包为驱动包,将驱动包进一步打包为网络包,并将网络包通过网络发送至客户机。
针对本发明的系统,本发明还另外公开一种基于TCPIP的通用USB设备网络透传方法,其应用于本发明的系统中并且包括以下步骤:
监测客户机USB接口的信息包,将信息包打包成为驱动包,将驱动包进一步打包为网络包,并将网络包通过网络发送至服务机;
服务机接收客户机的网络包,将网络包解包为驱动包,将驱动包进一步解包为应用包;
服务机根据人机交互的输入输出生成新的应用包,将应用包打包为驱动包,将驱动包进一步打包为网络包,并将网络包通过网络发送至客户机;
客户机接收服务机的网络包,将网络包解包为驱动包,将驱动包进一步解包为信息包,并将信息包发送至内置的USB接口。
综上所述,本发明主要解决了人力、USB设备操作难度、设备交互效率、避免财产损失的问题,主要包括:
1.本发明主要解决对客户机远程设备交互的问题,最终达到远程操控USB设备,并实现快速、经济、高效解决问题的目的;
2.解决对危险、不可随意接触区域的客户机实现设备交互的问题;
3.避免由于设备交互而中断客户生产进而造成的财产损失;
4.解决对大批量客户机进行数据操作效率低下的问题;
由此可见,本发明节约了USB设备交互流程时间。现有流程中技术人员到客户机现场、布置数据交互会占用较多的时间,而通过TCPIP网络方式实现设备交互,节省了技术人员路途时间和现场部署设备的时间,这样同时节约了人力的开支。
另外,本发明通过远程无接触方式进行设备交互。对处于危险区域或不可随意接触区域的客户机来说,既保证了人员安全,又保证了客户正常的生产,同时避免了客户中断生产所造成的经济损失。
再次,可以通过一台服务机对多个USB设备进行设备交互。一个服务机同时对不同地址的客户机操作,达到一对多的设备交互,对提高效率和节约成本也是一个巨大的进步。
总之,通过本发明实现利用有限的资源对尽可能多的客户机进行设备交互是有优势的。
本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本发明,而并非用作为对本发明的限定,只要在本发明的实质精神范围内,对以上所述实施例的变化、变型都将落在本发明的权利要求书范围内。

Claims (9)

1.一种基于TCPIP的通用USB设备网络透传系统,包括服务机和客户机,其特征在于:
所述客户机包括USB接口单元、USB数据收集单元和USB设备管理单元;
所述服务机包括USB驱动模拟单元、USB管理单元和USB应用程序单元;
所述USB数据收集单元实时检测所述USB接口单元的信息包,将信息包打包为驱动包,并且将驱动包上传至所述USB设备管理单元;所述USB数据收集单元还接收USB设备管理单元下发的驱动包,将驱动包解包为信息包,并将信息包发送至USB接口单元;
所述USB设备管理单元将USB数据收集单元上传的驱动包打包为网络包,并将网络包通过网络发送至服务机;USB设备管理单元还通过网络接收服务机的网络包,将网络包解包为驱动包并下发至USB数据收集单元;
所述服务机的USB管理单元接收所述网络包,将网络包解包为驱动包,并将驱动包下发至USB驱动模拟单元;USB管理单元还接收USB驱动模拟单元上传的驱动包,将驱动包打包成网络包,并将网络包发送至客户机的USB设备管理单元;
USB驱动模拟单元将USB管理单元下发的驱动包解包为应用包,将应用包下发至USB应用程序单元;USB驱动模拟单元还接收USB应用程序单元上传的应用包,将应用包打包为驱动包,并将驱动包上传至USB管理单元;
USB应用程序单元接收USB驱动模拟单元下发的应用包,根据人机交互的输入输出生成新的应用包,并将新的应用包上传至USB驱动模拟单元,
所述USB设备管理单元通过监听网络端口循环接收网络包,若出现一帧写数据接收超时,则通过网络向服务机反馈相应错误,若无错误则将所述网络包解析为驱动包,排序并缓存进写缓存区;
所述USB设备管理单元接着判断若一次写未接收完,则循环继续接收网络包,否则调用USB数据收集单元的写操作请求。
2.如权利要求1所述的基于TCPIP的通用USB设备网络透传系统,其特征在于:
所述USB数据收集单元将驱动包解析为信息包,若数据校验无误则发送信息包到USB接口单元,否则向USB设备管理单元反馈错误,USB设备管理单元通过网络向服务机反馈相应错误;
所述USB数据收集单元通过检测所述USB接口单元的IO口获取到信息包,然后打包信息包为驱动包并反馈给USB设备管理单元。
3.如权利要求2所述的基于TCPIP的通用USB设备网络透传系统,其特征在于:
USB设备管理单元收到USB数据收集单元的驱动包后缓存数据,并检测是否需要分包发送,若需要则将驱动包拆分并分别打包为网络包,否则直接打包为网络包;
网络包打包完成后,USB设备管理单元通过网络依次发送网络包。
4.如权利要求1所述的基于TCPIP的通用USB设备网络透传系统,其特征在于:
所述USB驱动模拟单元接收USB应用程序单元通过人机交互生成的应用包,并将应用包打包成驱动包,写入缓存区。
5.如权利要求4所述的基于TCPIP的通用USB设备网络透传系统,其特征在于:
所述USB管理单元循环调用USB驱动模拟单元的读接口,读取USB驱动模拟单元的数据,并在USB驱动模拟单元读接口中判断缓存是否有数据,有即读取并传送回USB管理单元,无则等待数据写入;
所述USB管理单元在获取到USB驱动模拟单元读接口的反馈数据后,判断数据是否需要分包,若需要则分包然后打包成网络包,否则直接打包网络包;
网络包打包完成后,USB管理单元通过网络依次发送网络包。
6.如权利要求5所述的基于TCPIP的通用USB设备网络透传系统,其特征在于:
所述USB管理单元循环监听客户机端口和获取网络包数据,判断接收网络包是否超时,超时则通过网络向客户机反馈错误,否则解包网络包为驱动包并缓存数据,若一帧接收完成则调用USB驱动模拟单元写接口,否则继续循环接收网络包。
7.如权利要求6所述的基于TCPIP的通用USB设备网络透传系统,其特征在于:
所述USB驱动模拟单元写接口判断驱动包校验无误,则解包缓存数据到缓冲区,否则反馈错误给USB管理单元,而USB管理单元发送错误给客户机;
所述USB应用程序单元调用USB驱动模拟单元读接口,判断缓冲区是否有数据并循环读取数据到USB应用程序单元。
8.一种基于TCPIP的通用USB设备网络透传方法,其特征在于,包括:
监测客户机USB接口的信息包,将信息包打包成为驱动包,将驱动包进一步打包为网络包,并将网络包通过网络发送至服务机;
服务机接收客户机的网络包,将网络包解包为驱动包,将驱动包进一步解包为应用包;
服务机根据人机交互的输入输出生成新的应用包,将应用包打包为驱动包,将驱动包进一步打包为网络包,并将网络包通过网络发送至客户机;
客户机接收服务机的网络包,将网络包解包为驱动包,将驱动包进一步解包为信息包,并将信息包发送至内置的USB接口,
客户机通过监听网络端口循环接收网络包,若出现一帧写数据接收超时,则通过网络向服务机反馈相应错误,若无错误则将所述网络包解析为驱动包,排序并缓存进写缓存区,若一次写未接收完,则循环继续接收网络包;
客户机进一步将驱动包解析为信息包,若数据校验无误则发送信息包到USB接口,否则反馈错误,并通过网络向服务机反馈相应错误;
客户机通过检测所 述USB接口的IO口获取到信息包,打包信息包为驱动包并缓存数据,检测是否需要分包发送,若需要则将驱动包拆分并分别打包为网络包,否则直接打包为网络包;
网络包打包完成后,客户机通过网络依次发送网络包。
9.如权利要求8所述的基于TCPIP的通用USB设备网络透传方法,其特征在于:
服务机循环监听客户机端口和获取网络包数据,判断接收网络包是否超时,超时则通过网络向客户机反馈错误,否则解包网络包为驱动包并缓存数据;
若驱动包校验无误,则解包驱动包为应用包并缓存数据到缓冲区,否则反馈错误并发送错误给客户机;
判断缓冲区是否有数据并循环读取数据;
通过人机交互生成的应用包,并将应用包打包成驱动包,写入缓存区;
判断缓存是否有驱动包数据,有即读取,无则等待数据写入;
判断驱动包数据是否需要分包,若需要则分包然后打包成网络包,否则直接打包网络包;
网络包打包完成后,通过网络依次发送网络包。
CN202010705594.1A 2020-07-21 2020-07-21 一种基于tcpip的通用usb设备网络透传系统及方法 Active CN111930645B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010705594.1A CN111930645B (zh) 2020-07-21 2020-07-21 一种基于tcpip的通用usb设备网络透传系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010705594.1A CN111930645B (zh) 2020-07-21 2020-07-21 一种基于tcpip的通用usb设备网络透传系统及方法

Publications (2)

Publication Number Publication Date
CN111930645A CN111930645A (zh) 2020-11-13
CN111930645B true CN111930645B (zh) 2022-04-08

Family

ID=73314140

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010705594.1A Active CN111930645B (zh) 2020-07-21 2020-07-21 一种基于tcpip的通用usb设备网络透传系统及方法

Country Status (1)

Country Link
CN (1) CN111930645B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113596101A (zh) * 2021-07-05 2021-11-02 锐捷网络(苏州)有限公司 跨平台数据透传方法、系统及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101035039A (zh) * 2007-04-20 2007-09-12 福建升腾资讯有限公司 Usb映射方法
CN101488941A (zh) * 2008-01-18 2009-07-22 中兴通讯股份有限公司 一种实现usb设备共享使用的方法及系统
CN103312781A (zh) * 2013-05-15 2013-09-18 山东超越数控电子有限公司 一种虚拟usb总线的实现方法
CN105100157A (zh) * 2014-05-15 2015-11-25 中兴通讯股份有限公司 一种usb 设备映射、交互方法、装置、云终端及云服务器
CN105183675A (zh) * 2015-09-30 2015-12-23 华为技术有限公司 对usb设备的访问方法、装置、终端、服务器及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000284791A (ja) * 1999-03-30 2000-10-13 Sony Corp 情報提供システム、クライアント、情報提供サーバ、情報提供方法及び記録媒体
US9858126B2 (en) * 2010-12-16 2018-01-02 Microsoft Technology Licensing, Llc Device redirection for remote systems
US8850090B2 (en) * 2011-11-23 2014-09-30 Red Hat, Inc. USB redirection for read transactions
CN103248679A (zh) * 2013-04-26 2013-08-14 山东超越数控电子有限公司 一种网络消息传递方法
DE102016125171A1 (de) * 2016-12-21 2018-06-21 Endress+Hauser Process Solutions Ag Überwachung der Datenübertragung in einem Client-Server-basierten Gerätezugriffssystem

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101035039A (zh) * 2007-04-20 2007-09-12 福建升腾资讯有限公司 Usb映射方法
CN101488941A (zh) * 2008-01-18 2009-07-22 中兴通讯股份有限公司 一种实现usb设备共享使用的方法及系统
CN103312781A (zh) * 2013-05-15 2013-09-18 山东超越数控电子有限公司 一种虚拟usb总线的实现方法
CN105100157A (zh) * 2014-05-15 2015-11-25 中兴通讯股份有限公司 一种usb 设备映射、交互方法、装置、云终端及云服务器
CN105183675A (zh) * 2015-09-30 2015-12-23 华为技术有限公司 对usb设备的访问方法、装置、终端、服务器及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Remote Device Support in Thin Client Network";Barun Kumar Parichha等;《ACM》;20100122;第1-4页 *
"SECURE NETWORK CARD";Michael Montgomery等;《Springer》;20041231;第193-208页 *

Also Published As

Publication number Publication date
CN111930645A (zh) 2020-11-13

Similar Documents

Publication Publication Date Title
EP3176980B1 (en) Unified server communication method, baseboard management controller and server
CN111656336B (zh) 一种pcie发送、接收方法及装置、设备和系统
WO2017020722A1 (zh) 基于虚拟机的数据传输方法、装置及系统
WO2023284699A1 (zh) 基于Linux系统的协议栈数据传输方法、计算机设备和存储介质
WO2016187813A1 (zh) 一种光电混合网络的数据传输方法及装置
CN102075389B (zh) 一种调试方法和设备
CN104246733A (zh) 用于通用串行总线设备的数据重定向
CN108228309B (zh) 基于虚拟机的数据包发送和接收方法及装置
CN111541606B (zh) 网关处理方法、网关设备和网关系统
CN101533375B (zh) 虚拟机系统中的usb设备访问方法、装置及控制系统
CN104780080A (zh) 深度报文检测方法及系统
CN111930645B (zh) 一种基于tcpip的通用usb设备网络透传系统及方法
CN102957568B (zh) 一种多节点服务器的监控管理方法
CN111769999B (zh) 一种usb设备软件的调试方法
CN108540516B (zh) 一种运行状态信息获取方法、控制终端、网络设备及系统
CN101567890A (zh) 元数据传输方法、客户端设备及服务器设备
CN103353750B (zh) 一种基于多总线的微波冶金控制方法
CN116150054B (zh) 一种基于pcie的中断信息处理方法
CN115022424B (zh) 水电lcu控制器网卡虚拟控制方法、系统、设备及其介质
CN102571412B (zh) 嵌入式分布式系统目标机服务器
CN114338270B (zh) 数据通信方法、装置、电子设备及存储介质
CN106708701B (zh) 一种基于arinc659总线的中央维护装置与方法
CN110445642B (zh) 一种跨总线维护飞参系统的通讯方法
CN104065543A (zh) 一种基于数据传输管理的网卡驱动设计方法
CN110557392B (zh) 一种基于底层服务层控制仪器的系统及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant