CN114201419A - 控制设备、控制设备的数据透传方法及数据透传系统 - Google Patents

控制设备、控制设备的数据透传方法及数据透传系统 Download PDF

Info

Publication number
CN114201419A
CN114201419A CN202111538859.4A CN202111538859A CN114201419A CN 114201419 A CN114201419 A CN 114201419A CN 202111538859 A CN202111538859 A CN 202111538859A CN 114201419 A CN114201419 A CN 114201419A
Authority
CN
China
Prior art keywords
host
usb
read
target type
local
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.)
Pending
Application number
CN202111538859.4A
Other languages
English (en)
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.)
Xian Novastar Electronic Technology Co Ltd
Original Assignee
Xian Novastar Electronic 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 Xian Novastar Electronic Technology Co Ltd filed Critical Xian Novastar Electronic Technology Co Ltd
Priority to CN202111538859.4A priority Critical patent/CN114201419A/zh
Publication of CN114201419A publication Critical patent/CN114201419A/zh
Pending legal-status Critical Current

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
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

本申请公开了一种控制设备、控制设备的数据透传方法及数据透传系统。其中,该控制设备包括:处理器,用于获取外部设备的目标类型,并将处理器枚举为目标类型对应的虚拟设备,其中,外部设备均采用第一USB线与解码设备本地设备连接;控制器,用于接收来自本地设备的目标类型,并将目标类型转发至处理器。本申请解决了由于相关技术中在控制设备在不支持OTG技术造成的无法实现控制设备与本地设备之间进行数据透传的的技术问题。

Description

控制设备、控制设备的数据透传方法及数据透传系统
技术领域
本申请涉及数据处理领域,具体而言,涉及一种控制设备、控制设备的数据透传方法及数据透传系统。
背景技术
相关技术中,在控制设备中的CPU不支持OTG技术的情况下,则无法实现USB数据透传,即,控制设备无法接收来自本地设备的操作事件,并对与本地设备连接的USB存储盘进行读写,同时,本地设备也无法接收来自控制设备的视频数据,并对该视频数据进行读取显示。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种控制设备、控制设备的数据透传方法及数据透传系统,以至少解决由于相关技术中在控制设备在不支持OTG技术造成的无法实现控制设备与本地设备之间进行数据透传的的技术问题。
根据本申请实施例的一个方面,提供了一种控制设备,包括:处理器,用于获取外部设备的目标类型,并将处理器枚举为目标类型对应的虚拟设备,其中,外部设备均采用第一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接口一样的操作体验。
可选地,控制器还用于接收操作结果,并将操作结果转发至处理器,处理器通过第二预设端口将操作结果发送至主机。通过处理器上设置不同的端口实现与主机之间的数据收发,可以提升处理器与主机之间的数据交互效率,节省主机与处理器之间的响应时间。
可选地,编码设备还设置有第一HDMI接口,第一HDMI接口用于采集主机的第二HDMI接口下发的视频数据;第一控制器还用于对视频数据进行编码,并通过第二控制器将编码后的视频数据发送至解码设备。
根据本申请实施例的一个方面,还提供了一种控制设备的数据透传方法,包括:接收本地设备连接的外部设备的目标类型,外部设备通过USB线与本地设备连接,其中,目标类型对应的外部设备包括:物理输入设备与物理USB存储设备;启动USB固件将控制设备枚举为目标类型对应的虚拟目标类型设备,其中,控制设备与主机通过第二USB线连接;接收来自与本地设备连接的物理USB存储设备的操作事件,并将操作事件发送至主机;将操作事件转发至主机,接收主机返回的查询指令和/或读写指令,并将接收到的查询指令和/或读写指令转发至本地设备,其中,主机用于根据操作事件生成对的查询指令和/或读写指令。达到了通过将将处理器枚举为与本地设备连接的外部设备对应的虚拟设备的目的,从而实现了将处理器伪装为外部设备,进而使得主机可以识别外部设备,并对外部设备的操作事件进行处理或者数据进行读写的技术效果。
可选地,将接收查询指令和/或读写指令转发至本地设备,包括:通过虚拟USB存储设备在第一预设端口接收来自主机的查询指令和/或读写指令,并将查询指令/读写指令转发至本地设备。
可选地,在将接收查询指令和/或读写指令转发至本地设备之后,方法还包括:接收操作结果,并通过第二预设端口将操作结果发送至主机,其中,操作结果是本地设备根据查询指令和/或读写指令对USB存储设备进行操作生成的。通过处理器上设置不同的端口实现与主机之间的数据收发,可以提升处理器与主机之间的数据交互效率,节省主机与处理器之间的响应时间。
可选地,方法还包括:采集主机下发的视频数据;对视频数据进行编码,并将编码后的视频数据发送至本地设备进行显示。
根据本申请实施例的一个方面,还提供了一种数据透传系统,包括:本地设备,用于将外部设备的目标类型发送至控制设备,并检测外部设备的操作事件,将操作事件发送至控制设备,其中,操作事件至少用于对与本地设备连接的物理USB存储设备进行读写,本地设备通过第一USB数据线与外部设备连接;控制设备,用于根据本地设备连接的外部设备的目标类型,将自身枚举为目标类型对应的虚拟设备,接收操作事件,并将操作事件转发至主机,然后接收来自主机的查询指令和/或读写指令,并将接收到的查询指令和/或读写指令转发至本地设备,其中,主机用于根据操作事件生成对外部设备的查询指令和/或读写指令,控制设备通过第二USB数据线与主机连接,达到了通过将处理器枚举为与本地设备连接的外部设备对应的虚拟设备的目的,从而实现了将处理器伪装为外部设备,进而使得主机可以识别外部设备,并对外部设备的操作事件进行处理或者数据进行读写的技术效果
可选地,控制设备,还用于接收来自本地设备的操作结果,其中,操作结果是本地设备根据查询指令和/或读写指令对USB存储设备进行操作生成的。
根据本申请实施例的一个方面,还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,在程序运行时控制非易失性存储介质所在设备执行任意一种数据透传方法。
根据本申请实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行任意一种数据透传方法。
在本申请实施例中,采用枚举本地设备连接的外部设备的方式,通过处理器,获取外部设备的目标类型,并将处理器枚举为目标类型对应的虚拟设备,其中,外部设备均采用第一USB线与本地设备连接;第一控制器,至少用于接收第二控制器转发的目标类型,并将目标类型发送至处理器;第二控制器,至少用于从本地设备端接收目标类型,并将目标类型发送至第一控制器,达到了将处理器枚举为与本地设备连接的外部设备对应的虚拟设备的目的,从而实现了将处理器伪装为外部设备,进而使得主机可以识别外部设备,并对外部设备的操作事件进行处理或者数据进行读写的技术效果,进而解决了由于相关技术中在控制设备在不支持OTG技术造成的无法实现控制设备与本地设备之间进行数据透传的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种可选的控制设备的结构示意图;
图2是本申请实施例中一种可选的USB数据透传的业务流程框架图;
图3是本申请实施例中一种可选的编码节点内部通讯逻辑图;
图4是根据本申请实施例的一种可选的控制设备的数据透传方法的流程示意图;
图5是根据本申请实施例的一种可选的数据透传系统的结构示意图;
图6是本申请实施例的一种可选的数据透传系统的硬件结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于本领域技术人员更好的理解本申请相关实施例,现将本申请相关实施例可能涉及的技术术语或者部分名词解释如下:
1.FIFO:First Input First Output的缩写,先入先出队列,这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令。
2.BOT:(Bulk Only Transport)传输协议是Host和Device之间数据通讯的协议。
3.SIE(Serial Interface Engine)是USB外设最重要的硬件组成部分之一,它主要由四部分组成:1)硬件上用来完成NRZI编/译码和加/去填充位操作的,NRZI/BitBuffing和NRZO/Bit Unstuffing的部分。2)硬件上产生资料的CRC校验码并对资料包进行CRC校验的CRC check&Generator部分。3)用来将并行资料转化成USB串行资料的并/串转换部分(Packet Encode),将主机发送的USB资料包转化成可以识别的并行资料的串/并转换部分(Packet Decode)。4)检测和产生SOP(即每个资料包的同步字段)和EOP信号的部分。
4.OTG是On-The-Go的缩写,是近年发展起来的技术,2001年12月18日由USBImplementers Forum公布,主要应用于各种不同的设备或移动设备间的联接,进行数据交换。特别是PDA、移动电话、消费类设备。改变如数码照相机、摄像机、打印机等设备间多种不同制式连接器,多达7种制式的存储卡间数据交换的不便。简单的说,一个OGT口可以做主设备HOST、从设备device。On The Go,这是在USB2.0引入的一种mode,提出了一个新的概念叫主机协商协议(Host Negotiation Protocol),允许两个设备间商量谁去当Host。
5.用户数据报协议(英语:User Datagram Protocol,缩写:UDP;又称用户数据包协议)是一个简单的面向数据报的通信协议,位于OSI模型的传输层。该协议由DavidP.Reed在1980年设计且在RFC 768中被规范。典型网络上的众多使用UDP协议的关键应用在一定程度上是相似的。在TCP/IP模型中,UDP为网络层以上和应用层以下提供了一个简单的接口。UDP只提供数据的不可靠传递,它一旦把应用程序发给网络层的数据发送出去,就不保留数据备份(所以UDP有时候也被认为是不可靠的数据报协议)。UDP在IP数据报的头部仅仅加入了复用和数据校验字段。UDP适用于不需要或在程序中执行错误检查和纠正的应用,它避免了协议栈中此类处理的开销。对时间有较高要求的应用程序通常使用UDP,因为丢弃数据包比等待或重传导致延迟更可取。
6.数据透传就是透明传送,是指在数据的传输过程中,通过无线的方式这组数据不发生任何形式的改变,仿佛传输过程是透明的一样,同时保证传输的质量,原封不动地到了最终接收者手里。
7.USB大容量存储设备(英语:USB mass storage device class,也称为USB MSC或UMS)是一个协议,允许一个USB接口的设备与主计算设备相连接,以便在两者之间传输文件。对于主计算设备来说,USB设备看起来就像一个移动硬盘,允许拖放型文件传送。它实际上是由USB开发者论坛所通过许多通讯协议的汇总,这一标准提供了许多设备的界面。包括移动硬盘、闪存盘、移动光学驱动器、读卡器、数字相机、数码音乐播放器、PDA以及手机等等。
USB数据透传是将解码节点USB接口插入的USB设备直接传递给远端编码节点连接的目标服务器操作系统。用户通过远端目标服务器操作系统对所述USB设备进行读写操作,获取如同USB设备直接接在远端服务器USB接口一样的操作体验。该功能是一种存储设备远程映射技术,它可以将解码端接入的存储设备映射到远程PC,并呈现为一个块设备(磁盘)。从普通用户的角度来看,映射过来的磁盘与在远程PC上直接接入的磁盘毫无差异。
根据本申请实施例,提供了一种控制设备的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本申请实施例的一种控制设备,如图1所示,该控制设备1包括:
处理器10,用于获取外部设备20的目标类型,并将处理器10枚举为目标类型对应的虚拟设备,其中,外部设备20均采用第一USB线与本地设备2连接;
控制器12,用于接收来自本地设备的目标类型,并将目标类型转发至处理器。
该控制设备中,处理器10,用于获取外部设备20的目标类型,并将处理器10枚举为目标类型对应的虚拟设备,其中,外部设备20均采用第一USB线与本地设备2连接;控制器12用于接收来自本地设备2的目标类型,并将目标类型转发至处理器10,达到了将处理器枚举为与本地设备连接的外部设备对应的虚拟设备的目的,从而实现了将处理器伪装为外部设备,进而使得主机可以识别外部设备,并对外部设备的操作事件进行处理或者数据进行读写的技术效果,进而解决了由于相关技术中在控制设备在不支持OTG技术造成的无法实现控制设备与本地设备之间进行数据透传的技术问题。
可选的,上述控制器12包括:第一控制器120与第二控制器122,第一控制器120至少用于接收第二控制器122转发的目标类型,并将目标类型发送至处理器10;第二控制器122,至少用于从本地设备2端接收目标类型,并将目标类型发送至第一控制器120。
需要说明的是,上述第一控制器120与第二控制器122可以为集成在芯片中的虚拟模块,例如当第一控制器120与第二控制器122可以分别为芯片内的虚拟处理模块与芯片内的虚拟控制模块,可以理解的,上述第一控制器120与第二控制器122也可以为分别为硬件器件类型的FPGA控制器与ARM控制器。
需要说明的是,目标类型对应的外部设备包括但不限于:物理输入设备与物理USB存储设备,虚拟设备包括但不限于:虚拟输入设备与虚拟USB存储设备;上述控制设备包括但不限于:编码设备、视频拼接器以及其他具有上述数据透传处理功能的设备,上述本地设备包括但不限于:解码设备以及其他可以连接外部设备的计算机、终端等。
本申请一些实施例中,控制设备设置有第一USB端口,第一USB端口通过第二USB线与主机的第二USB端口连接,处理器,用于在确定第一USB端口与第二USB端口连接后,启动触发指令,其中,触发指令用于执行USB固件,并将处理器枚举为物理输入设备对应的虚拟输入设备以及物理USB存储设备对应的虚拟USB存储设备。通过设置第一USB端口,与主机通过第二USB数据线进行连接,在连接后,即可启动触发指令,自动执行USB交互固件,将物理输入设备自动枚举为虚拟的输入设备,并将物理存储设备自动枚举为虚拟的USB存储设备。需要说明的是,上述第一USB端口包括但不限于:OTG端口。
本申请一些实施例中,处理器还用于接收本地设备检测到的物理输入设备的操作事件,并通过虚拟输入设备将操作事件发送至主机。通过伪装后的处理器,以虚拟输入设备的形式接收操作事件,达到了被主机识别的目的。
本申请一些实施例中,主机用于根据操作事件至少生成对USB存储设备的查询指令和/或读写指令,需要说明的是,上述操作事件也可为其他类型的操作事件时,例如,为展示类型的操作事件,则可以根据展示类型的操作事件生成展示指令,通过该展示指令可对本地设备待展示的内容进行展示。
可选的,处理器还用于通过虚拟USB存储设备在第一预设端口接收来自主机的查询指令和/或读写指令,并将查询指令/读写指令转发至本地设备;其中,本地设备用于根据查询指令和/或读写指令对USB存储设备进行操作,生成操作结果;据本地设备检测到的操作事件,生成查询和/或读写指令,达到了可基于位于远端主机所配置的服务器操作系统,对本地设备连接的USB存储设备实现操作控制的目的,使得用户可通过远端服务器操作系统对USB存储设备设备进行读写操作,获取如同USB设备直接接在远端服务器USB接口一样的操作体验。
本申请一些可选的实施例中,控制器还用于接收操作结果,并将操作结果转发至处理器,具体地,可通过第二控制器接收操作结果,并将操作结果通过第一控制器转发至处理器,处理器通过第二预设端口将操作结果发送至主机。可以理解的,通过处理器上设置不同的端口实现与主机之间的数据收发,可以提升处理器与主机之间的数据交互效率,节省主机与处理器之间的响应时间。
本申请另一些可选的实施例中,控制设备还设置有第一HDMI接口,第一HDMI接口用于采集主机的第二HDMI接口下发的视频数据;第一控制器还用于对视频数据进行编码,并通过第二控制器将编码后的视频数据发送至本地设备。
需要说明的是,上述处理器可以为集成有USB2.0的微处理器,上述第一控制器可以为FPGA控制器,上述第二控制器可以为ARM控制器。
容易注意到的是,控制设备(例如,编码节点),可以包括:上述微处理器,该微处理器可通过OTG口与服务器主机操作系统进行USB数据双向交互,枚举出鼠标、键盘、大容量存储设备;控制设备还包括ARM(第二控制器)+FPGA(第一控制器):与本地设备(例如,解码节点)进行网络通信,从解码节点接收鼠标、键盘数据,通过微处理器上报到主机操作系统;当用户操作Mass Storages设备时,从微处理器的EP2端点接收主机BOT(Bulk OnlyTransport)协议请求数据,通过网络转发到解码节点;将解码节点反馈的BOT协议响应数据通过微处理器的EP6端点透传到主机操作系统。对于视频数据的透传,可从HDMI接口采集主机视频画面,编码后发送到解码节点。
可选的,本地设备包括:ARM+FPGA:用于采集用户鼠标键盘操作事件,将操作事件通过网络发送到编码节点;并接收编码节点转发过来的BOT(Bulk Only Transport)协议请求数据,解析其中的SCSI协议,对连接的大容量存储设备进行操作,生成BOT协议响应数据,将响应数据通过网络发送到编码节点。也可从编码节点接收编码后的视频数据,解码后显示在显示器上,实现主机操作系统画面实时显示。
图2是本申请实施例中一种可选的USB数据透传的业务流程框架图,该框架基于微处理器实现数据的透传,其中,编码节点(控制设备)端包括:微处理器,以及ARM+FPGA控制器,该编码节点通过数据线(即第二USB线)与PC主机连接,解码节点(本地设备)端设置有ARM+FPGA控制器,且与鼠标键盘设备(物理输入设备)连接,该流程包括:
1)设备枚举过程
当编码节点(VM-USB)OTG口连接到主机服务器时,USB Firmware(USB固件)会把微处理器枚举成一个复合设备,这个复合设备包括KEY(键盘)、MOUSE(鼠标)、MASS STORAGE(大容量存储)等类型。微处理器有可以重枚举的特性,连接计算机时,可以只把微处理器枚举为一个包括KEY和MOUSE的复合设备。当8051收到枚举MASS STORAGE命令时,会使微处理器与服务器的连接断开,然后再次连接,此次将微处理器枚举为一个包括KEY、MOUSE和MASSSTORAGE类型的复合设备,这个过程就是USB Firmware软件实现的。
2)KEY/MOUSE及控制命令通讯
在KEY/MOUSE以及控制命令通讯时,当解码节点需要发送KEY或MOUSE事件数据时,数据经过FPGA解析,通过自定义的通讯接口发送给8051,8051解析指令后,如果是KEY数据,就按照HID协议发送到EP0端点;如果是MOUSE数据,就按照HID协议发送到EP1端点;如果是多媒体设备命令,则执行多媒体设备命令。
3)大容量存储媒体通讯
在大容量存储媒体访问服务器时,主要使用EP2和EP6作为通讯端点,FPGA只作为一个透传的功能,假设服务器要发出一包数据,经EP2(即第一预设端口)FIFO,在SlaveFIFO模式下透过FD总线把数据发送到FPGA,经ARM从编码节点发送出去。相反,假如服务器需要接收一帧数据,那么解码节点会向编码节点发送一帧数据,ARM接收到后传送到FPGA,然后通过EP6(即第二预设端口)分发到多媒体设备。这样数据形成一个双向通讯,实现了透传的功能。
需要说明的是,大容量存储媒体(USB Mass Storage)是指USB大容量存储设备,一般指通过USB接口接到电脑的U盘,移动硬盘,SD卡这类设备。
图3是本申请实施例中一种可选的编码节点内部通讯逻辑图,如图3所示,左侧为微处理器内部结构,右侧为FPGA+ARM。
图4是根据本申请实施例的一种控制设备的数据透传方法,如图4所示,该方法包括如下步骤:
S402,接收本地设备连接的外部设备的目标类型,外部设备通过USB线与本地设备连接,其中,目标类型对应的外部设备包括:物理输入设备与物理USB存储设备;
S404,启动USB固件将控制设备枚举为目标类型对应的虚拟目标类型设备,其中,控制设备与主机通过第二USB线连接;
S406,接收来自与本地设备连接的物理USB存储设备的操作事件,并将操作事件发送至主机;
S408,将操作事件转发至主机,接收主机返回的查询指令和/或读写指令,并将接收到的查询指令和/或读写指令转发至本地设备,其中,主机用于根据操作事件生成对的查询指令和/或读写指令。
该控制设备的数据透传方法中,控制设备接收本地设备连接的外部设备的目标类型,外部设备通过USB线与本地设备连接,其中,目标类型对应的外部设备包括:物理输入设备与物理USB存储设备;再启动USB固件将控制设备枚举为目标类型对应的虚拟目标类型设备,其中,控制设备与主机通过第二USB线连接;然后,接收来自与本地设备连接的物理USB存储设备的操作事件,并将操作事件发送至主机;最后,将操作事件转发至主机,接收主机返回的查询指令和/或读写指令,并将接收到的查询指令和/或读写指令转发至本地设备,其中,主机用于根据操作事件生成对的查询指令和/或读写指令,达到了将处理器枚举为与本地设备连接的外部设备对应的虚拟设备的目的,从而实现了将处理器伪装为外部设备,进而使得主机可以识别外部设备,并对外部设备的操作事件进行处理或者数据进行读写的技术效果,进而解决了由于相关技术中在控制设备在不支持OTG技术造成的无法实现控制设备与本地设备之间进行数据透传的技术问题。
需要说明的是,上述处理器可以为集成有USB2.0的微处理器,上述第一控制器可以为FPGA控制器,上述第二控制器可以为ARM控制器。
本申请一些实施例中,可通过如下方式将接收到的查询指令和/或读写指令转发至本地设备,具体地,通过虚拟USB存储设备在第一预设端口接收来自主机的查询指令和/或读写指令,并将查询指令/读写指令转发至本地设备。
本申请一些可选的实施例中,在将接收到的查询指令和/或读写指令转发至本地设备之后,可接收来自本地设备的操作结果,并通过第二预设端口将操作结果发送至主机,需要说明的是,操作结果是本地设备根据查询指令和/或读写指令对USB存储设备进行操作生成的。通过处理器上设置不同的端口实现与主机之间的数据收发,可以提升处理器与主机之间的数据交互效率,节省主机与处理器之间的响应时间。
本申请一些实施例中,还可采集主机下发的视频数据;对视频数据进行编码,并将编码后的视频数据发送至本地设备进行显示,以实现将主机的视频数据透传至本地设备。
可以理解的,通过本申请实施例所公开的一种USB数据透传方法,通过微处理器芯片枚举USB复合设备(鼠标、键盘、大容量存储设备)与主机高速通讯,通过FPGA进行数据透传、转发,实现将解码节点接入的USB设备远程接入到编码节点对应的目标服务器(主机)。
容易注意到的是,控制设备(又称编码节点),可以包括:微处理器,该微处理器可通过OTG口与服务器主机操作系统进行USB数据双向交互,枚举出鼠标、键盘、大容量存储设备;控制设备还包括ARM(第二控制器)+FPGA(第一控制器):与本地设备(又称解码节点)进行网络通信,从解码节点接收鼠标、键盘数据,通过微处理器上报到主机操作系统;当用户操作Mass Storages设备时,从微处理器的EP2端点接收主机BOT(Bulk Only Transport)协议请求数据,通过网络转发到解码节点;将解码节点反馈的BOT协议响应数据通过微处理器的EP6端点透传到主机操作系统。对于视频数据的透传,可从HDMI接口采集主机视频画面,编码后发送到解码节点。
可选的,本地设备,包括:ARM+FPGA:用于采集用户鼠标键盘操作事件,将操作事件通过网络发送到编码节点;并接收编码节点转发过来的BOT(Bulk Only Transport)协议请求数据,解析其中的SCSI协议,对连接的大容量存储设备进行操作,生成BOT协议响应数据,将响应数据通过网络发送到编码节点。也可从编码节点接收编码后的视频数据,解码后显示在显示器上,实现主机操作系统画面实时显示。
图5是根据本申请实施例的一种数据透传系统,如图5所示,该数据透传系统包括:
本地设备,用于将外部设备的目标类型发送至控制设备,并检测外部设备的操作事件,将操作事件发送至控制设备,其中,操作事件至少用于对与本地设备连接的物理USB存储设备进行读写,本地设备通过第一USB数据线与外部设备连接;
控制设备,用于根据本地设备连接的外部设备的目标类型,将自身枚举为目标类型对应的虚拟设备,接收操作事件,并将操作事件转发至主机,然后接收来自主机的查询指令和/或读写指令,并将接收到的查询指令和/或读写指令转发至本地设备,其中,主机用于根据操作事件生成对外部设备的查询指令和/或读写指令,控制设备通过第二USB数据线与主机连接。
该数据透传系统中,本地设备,用于将外部设备20的目标类型发送至控制设备,并检测外部设备的操作事件,将操作事件发送至控制设备,其中,操作事件至少用于对与本地设备连接的物理USB存储设备进行读写,本地设备通过第一USB数据线与外部设备连接;控制设备,用于根据本地设备连接的外部设备的目标类型,将自身枚举为目标类型对应的虚拟设备,接收操作事件,并将操作事件转发至主机,然后接收来自主机的查询指令和/或读写指令,并将接收到的查询指令和/或读写指令转发至本地设备,其中,主机用于根据操作事件生成对外部设备的查询指令和/或读写指令,控制设备通过第二USB数据线与主机连接,达到了将处理器枚举为与本地设备连接的外部设备对应的虚拟设备的目的,从而实现了将处理器伪装为外部设备,进而使得主机可以识别外部设备,并对外部设备的操作事件进行处理或者数据进行读写的技术效果,进而解决了由于相关技术中在控制设备在不支持OTG技术造成的无法实现控制设备与本地设备之间进行数据透传的技术问题。
可选地,控制设备,还用于接收来自本地设备的操作结果,其中,操作结果是本地设备根据查询指令和/或读写指令对USB存储设备进行操作生成的。
图6是本申请一种可选的数据透传系统的硬件结构示意图,如图6所示,解码节点分别通过三个USB接口与键盘、鼠标以及U盘连接,解码节点通过HDMI接口与显示器连接,编码节点则设置有第一USB端口,该第一USB端口通过USB线与服务器主机的第二USB端口连接,该编码节点还设置有HDMI接口(第一HDMI接口),该HDMI端口可用于采集服务器主机的HDMI接口(第二HDMI接口)下发的视频数据。
该数据传输系统实现数据透传的流程如下:
1)编码节点通过HDMI接口采集所连接服务器主机的视频信号,将视频信号编码为流媒体数据,通过网络发送到解码节点。
2)解码节点接收到流媒体数据后,进行视频解码,将解码后的视频画面实时显示在解码节点所连接的显示器上。
3)解码节点通过USB接口接入鼠标、键盘、大容量存储设备(U盘、移动硬盘),解码节点实时采集用户鼠标与键盘操作,将用户鼠标键盘操作事件通过网络发送到编码节点。
4)编码节点通过OTG接口连接服务器主机的USB口,通过微处理器将自己枚举为鼠标和键盘设备,将从解码节点接收到的鼠标键盘操作事件通过枚举出的鼠标键盘设备上报到服务器主机操作系统,实现对服务器主机的鼠标键盘控制。
5)编码节点通过微处理器同时将自己枚举为大容量存储设备(U盘、移动硬盘),用户通过鼠标键盘操作大容量存储设备时,服务器主机操作系统会主动发送对大容量存储设备的查询与读写指令(BOT协议),编码节点通过微处理器的EP2端点接收服务器主机的查询与读写指令,通过ARM+FPGA将指令通过网络转发到解码节点。
6)解码节点收到指令后,对本节点所接入的大容量存储设备进行查询与读写操作,将操作结果通过网络发回编码节点。
7)编码节点收到操作结果后,将操作结果通过ARM+FPGA传输到微处理器的EP6端点,透传到所连接的服务器主机操作系统,从而完成大容量存储设备的工作流程。
容易注意到的是,编码节点,包括:
(1)微处理器:通过OTG口与服务器主机操作系统进行USB数据双向交互,枚举出鼠标、键盘、大容量存储设备;
(2)ARM+FPGA:与解码节点进行网络通信,从解码节点接收鼠标、键盘数据,通过微处理器上报到主机操作系统;当用户操作Mass Storages设备时,从微处理器的EP2端点接收主机BOT(Bulk Only Transport)协议请求数据,通过网络转发到解码节点;将解码节点反馈的BOT协议响应数据通过微处理器的EP6端点透传到主机操作系统。对于视频数据的透传,可从HDMI接口采集主机视频画面,编码后发送到解码节点。
解码节点,包括:
(1)ARM+FPGA:用于采集用户鼠标键盘操作事件,将操作事件通过网络发送到编码节点;并接收编码节点转发过来的BOT(Bulk Only Transport)协议请求数据,解析其中的SCSI协议,对连接的大容量存储设备进行操作,生成BOT协议响应数据,将响应数据通过网络发送到编码节点。也可从编码节点接收编码后的视频数据,解码后显示在显示器上,实现主机操作系统画面实时显示。
根据本申请实施例的一个方面,还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,在程序运行时控制非易失性存储介质所在设备执行任意一种数据透传方法。
具体地,上述存储介质用于存储执行以下功能的程序指令,实现以下功能:
接收本地设备连接的外部设备的目标类型,外部设备通过USB线与本地设备连接,其中,目标类型对应的外部设备包括:物理输入设备与物理USB存储设备;启动USB固件将控制设备枚举为目标类型对应的虚拟目标类型设备,其中,控制设备与主机通过第二USB线连接;接收来自与本地设备连接的物理USB存储设备的操作事件,并将操作事件发送至主机;将操作事件转发至主机,接收主机返回的查询指令和/或读写指令,并将接收查询指令和/或读写指令转发至本地设备,其中,主机用于根据操作事件生成对的查询指令和/或读写指令。
根据本申请实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行任意一种数据透传方法。
具体地,上述处理器用于调用存储器中的程序指令,实现以下功能:
接收本地设备连接的外部设备的目标类型,外部设备通过USB线与本地设备连接,其中,目标类型对应的外部设备包括:物理输入设备与物理USB存储设备;启动USB固件将控制设备枚举为目标类型对应的虚拟目标类型设备,其中,控制设备与主机通过第二USB线连接;接收来自与本地设备连接的物理USB存储设备的操作事件,并将操作事件发送至主机;将操作事件转发至主机,接收主机返回的查询指令和/或读写指令,并将接收查询指令和/或读写指令转发至本地设备,其中,主机用于根据操作事件生成对的查询指令和/或读写指令。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (12)

1.一种控制设备,其特征在于,包括:
处理器,用于获取外部设备的目标类型,并将所述处理器枚举为所述目标类型对应的虚拟设备,其中,所述外部设备均采用第一USB线与本地设备连接;
控制器,用于接收来自所述本地设备的目标类型,并将所述目标类型转发至所述处理器。
2.根据权利要求1所述的控制设备,其特征在于,所述控制器包括第一控制器与第二控制器,其中,所述第一控制器,至少用于接收第二控制器转发的所述目标类型,并将所述目标类型发送至所述处理器;所述第二控制器,至少用于从本地设备端接收所述目标类型,并将所述目标类型发送至所述第一控制器。
3.根据权利要求1所述的控制设备,其特征在于,所述目标类型对应的所述外部设备包括:物理输入设备与物理USB存储设备,所述虚拟设备包括:虚拟输入设备与虚拟USB存储设备。
4.根据权利要求3所述的控制设备,其特征在于,所述控制设备设置有第一USB端口,所述第一USB端口通过第二USB线与主机的第二USB端口连接,所述处理器,用于在确定所述第一USB端口与所述第二USB端口连接后,启动触发指令,其中,所述触发指令用于执行USB交互固件,并将所述处理器枚举为所述物理输入设备对应的所述虚拟输入设备以及所述物理USB存储设备对应的所述虚拟USB存储设备。
5.根据权利要求4所述的控制设备,其特征在于,所述处理器还用于接收所述本地设备检测到的所述物理输入设备的操作事件,并通过所述虚拟输入设备将所述操作事件发送至主机。
6.根据权利要求5所述的控制设备,其特征在于,所述主机用于根据所述操作事件至少生成对所述USB存储设备的查询指令和/或读写指令,所述处理器还用于通过所述虚拟USB存储设备在第一预设端口接收来自所述主机的查询指令和/或读写指令,并将所述查询指令/读写指令转发至所述本地设备;其中,所述本地设备用于根据所述查询指令和/或读写指令对所述USB存储设备进行操作,生成操作结果。
7.根据权利要求6所述的控制设备,其特征在于,所述控制器还用于接收所述操作结果,并将所述操作结果转发至所述处理器,所述处理器通过第二预设端口将所述操作结果发送至所述主机。
8.一种控制设备的数据透传方法,其特征在于,包括:
接收本地设备连接的外部设备的目标类型,所述外部设备通过USB线与所述本地设备连接,其中,所述目标类型对应的外部设备包括:物理输入设备与物理USB存储设备;
启动USB固件将控制设备枚举为所述目标类型对应的虚拟目标类型设备,其中,所述控制设备与主机通过第二USB线连接;
接收来自与所述本地设备连接的所述物理USB存储设备的操作事件,并将所述操作事件发送至所述主机;
将所述操作事件转发至所述主机,接收所述主机返回的查询指令和/或读写指令,并将所述接收到的查询指令和/或读写指令转发至本地设备,其中,所述主机用于根据所述操作事件生成对所述的查询指令和/或读写指令。
9.根据权利要求8所述的方法,其特征在于,将所述接收到的查询指令和/或读写指令转发至本地设备,包括:
通过所述虚拟USB存储设备在第一预设端口接收来自所述主机的查询指令和/或读写指令,并将所述查询指令/读写指令转发至所述本地设备。
10.根据权利要求9所述的方法,其特征在于,在将所述接收到的查询指令和/或读写指令转发至本地设备之后,所述方法还包括:
接收操作结果,并通过第二预设端口将所述操作结果发送至所述主机,其中,所述操作结果是所述本地设备根据所述查询指令和/或读写指令对所述USB存储设备进行操作生成的。
11.一种数据透传系统,其特征在于,包括:
本地设备,用于将外部设备的目标类型发送至控制设备,并检测所述外部设备的操作事件,将所述操作事件发送至所述控制设备,其中,所述操作事件至少用于对与所述本地设备连接的物理USB存储设备进行读写,所述本地设备通过第一USB数据线与所述外部设备连接;
所述控制设备,用于根据所述本地设备连接的所述外部设备的目标类型,将自身枚举为目标类型对应的虚拟设备,接收所述操作事件,并将所述操作事件转发至主机,然后接收来自所述主机的查询指令和/或读写指令,并将所述接收查询指令和/或读写指令转发至本地设备,其中,所述主机用于根据所述操作事件生成对所述外部设备的查询指令和/或读写指令,所述控制设备通过第二USB数据线与主机连接。
12.根据权利要求11所述的系统,其特征在于,所述控制设备,还用于接收来自所述本地设备的操作结果,其中,所述操作结果是所述本地设备根据所述查询指令和/或读写指令对所述USB存储设备进行操作生成的。
CN202111538859.4A 2021-12-15 2021-12-15 控制设备、控制设备的数据透传方法及数据透传系统 Pending CN114201419A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111538859.4A CN114201419A (zh) 2021-12-15 2021-12-15 控制设备、控制设备的数据透传方法及数据透传系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111538859.4A CN114201419A (zh) 2021-12-15 2021-12-15 控制设备、控制设备的数据透传方法及数据透传系统

Publications (1)

Publication Number Publication Date
CN114201419A true CN114201419A (zh) 2022-03-18

Family

ID=80654285

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111538859.4A Pending CN114201419A (zh) 2021-12-15 2021-12-15 控制设备、控制设备的数据透传方法及数据透传系统

Country Status (1)

Country Link
CN (1) CN114201419A (zh)

Similar Documents

Publication Publication Date Title
KR102173089B1 (ko) 인터페이스 회로 및 그것의 패킷 전송 방법
US20130159595A1 (en) Serial Interface for FPGA Prototyping
EP2568665A1 (en) Method, device, and system for transmitting packet on pcie bus
CN112836453B (zh) Sas控制器帧缓冲区结构设计方法
CN107347062A (zh) 一种日志数据处理的方法、电子设备和可读存储介质
CN111475445A (zh) Usb或uart数据与以太网数据的转换方法及系统
EP1730931B1 (en) Data encoding and decoding in a data storage system
US7549088B2 (en) Communication apparatus and program provided with failure determining method and function
US20110208923A1 (en) Storage method and system, terminal service board, control board and storage channel board
US9052841B2 (en) Electronic device and data transfer method
CN112346665A (zh) 一种固态硬盘的通信方法、装置、设备、系统及存储介质
CN109800202B (zh) 一种基于pcie的数据传输系统、方法及装置
CN114201419A (zh) 控制设备、控制设备的数据透传方法及数据透传系统
CN103973534A (zh) 一种模拟u盘共享方法以及设备
CN114338270B (zh) 数据通信方法、装置、电子设备及存储介质
US6693905B1 (en) Data exchange unit
US20100082819A1 (en) Network bridging apparatus for storage device and data stream transmitting method thereof
CN115550606A (zh) 一种基于网络协议的图像采集系统及方法
CN113259395B (zh) 一种嵌入式环境下数据通讯装置及方法
US20150180777A1 (en) Data processing apparatus and method
US10019405B2 (en) Apparatus and method for transmitting serial ATA information
CN114172897B (zh) 一种PC端和Android端文件传输方法及系统
KR101502147B1 (ko) 네트워크 상에서 usb 호스트와 usb 디바이스 간의 통신 방법, 장치 및 기록매체
TWI345711B (zh)
CN118250280A (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