CN115499505B - Usb网卡和通信方法 - Google Patents
Usb网卡和通信方法 Download PDFInfo
- Publication number
- CN115499505B CN115499505B CN202211442353.8A CN202211442353A CN115499505B CN 115499505 B CN115499505 B CN 115499505B CN 202211442353 A CN202211442353 A CN 202211442353A CN 115499505 B CN115499505 B CN 115499505B
- Authority
- CN
- China
- Prior art keywords
- data
- usb
- ethernet
- circuit
- network card
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
- G06F9/4413—Plug-and-play [PnP]
- G06F9/4415—Self describing peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0042—Universal serial bus [USB]
Abstract
本发明提供了一种USB网卡和通信方法,涉及网络通信技术领域。USB网卡包括:数据处理电路,用于接收第一以太网数据,并对第一以太网数据进行校验和卸载,得到第二以太网数据;缓存器,用于缓存第二以太网数据;数据读取电路,用于从缓存器中读取第二以太网数据;以及数据转换电路,用于接收数据读取电路读取的第二以太网数据,并将第二以太网数据转换为第一USB数据,其中第一USB数据用于写入外部设备。由硬件电路执行数据传输过程,通过数据读取电路对数据进行搬运,通过数据转换电路对数据的格式进行处理,极大地缓解数据传输过程中USB网卡运行内部应用程序而造成的处理器CPU占用率过大的现象,解决了数据传输效率低下的问题。
Description
技术领域
本发明涉及网络通信技术领域,具体涉及一种USB网卡和通信方法。
背景技术
目前,常见的有线和无线USB网卡与主机设备建立物理连接后,需要在主机设备上安装对应的驱动,使USB网卡与主机设备建立通信连接,而不同操作系统所需安装的驱动也不同,安装过程比较繁琐。
在成功建立通信连接后,USB网卡与主机设备进行数据传输的数据上/下行传输过程,也需要通过USB网卡内部的软件参与,软件参与数据搬运的过程时,需要频繁访问处理器CPU,使得处理器CPU的占用率增加,从而影响数据传输速率。
发明内容
鉴于上述问题,本发明提供了一种USB网卡和通信方法。
根据本发明的第一个方面,提供了一种USB网卡,包括:数据处理电路,用于接收第一以太网数据,并对第一以太网数据进行校验和卸载,得到第二以太网数据;缓存器,用于缓存第二以太网数据;数据读取电路,用于从缓存器中读取第二以太网数据;以及数据转换电路,用于接收数据读取电路读取的第二以太网数据,并将第二以太网数据转换为第一USB数据,其中第一USB数据用于写入外部设备。
根据本发明的实施例,USB网卡还包括:以太网电路,用于接收来自外部网络的第一串行模拟信号,并将第一串行模拟信号转换成第一并行数字信号;以太网IP核,用于将第一并行数字信号转换成第一以太网数据,并将第一以太网数据发送至数据处理电路;USBIP核,用于接收第一USB数据,并将第一USB数据转换成第二并行数字信号;以及USB电路,用于接收第二并行数字信号,将第二并行数字信号转换成第二串行模拟信号,并将第二串行模拟信号写入外部设备。
根据本发明的实施例,数据转换电路包括:第一数据缓存器,用于缓存数据读取电路发送的第二以太网数据;以及至少一个协议控制子电路,至少一个协议控制子电路分别基于一种数据传输协议进行数据处理,协议控制子电路用于从第一数据缓存器中读取第二以太网数据,根据数据传输协议将第二以太网数据转换为第一USB数据,并将第一USB数据发送至USB IP核。
根据本发明的实施例,USB网卡还包括处理器,用于:在检测到外部设备发起的接入请求时,通过运行本地应用程序与外部设备建立通信;在通过本地应用程序与外部设备建立通信时,获取外部设备的设备信息;以及通过控制本地应用程序将设备信息发送至数据转换电路;其中,数据转换电路在接收处理器发送的设备信息后,根据设备信息确定数据传输协议,以基于数据传输协议向外部设备传输数据。
根据本发明的实施例,至少一个协议控制子电路包括:ECM协议控制子电路,用于在确定接收到的设备信息为第一类设备信息的情况下,在有限状态机的控制下从第一数据缓存器中读取第二以太网数据,并基于ECM协议将第二以太网数据转换为第一USB数据,并将第一USB数据发送给USB IP核;以及RNDIS协议控制子电路,用于在确定接收到的设备信息为第二类设备信息的情况下,在有限状态机的控制下从第一数据缓存器中读取第二以太网数据,并基于RNDIS协议将第二以太网数据转换为第一USB数据,并将第一USB数据发送给USB IP核。
根据本发明的实施例,第二以太网数据包括N帧数据包,RNDIS协议控制子电路还用于在确定接收到的N帧数据包的前n帧数据包的长度大于预设值的情况下,将前n帧数据包转换为第一USB数据,并对第一USB数据进行封装,并将封装后数据发送给USB IP核,n=1,2,…,N,N为正整数。
根据本发明的实施例,数据转换电路包括M个协议控制子电路,M为大于1的正整数;处理器还用于:通过控制本地应用程序,将M个协议控制子电路中的第m个协议控制子电路的配置文件与设备信息进行匹配,m=1,2,…,M;在确定第m个协议控制子电路的配置文件与设备信息匹配成功的情况下,通过控制本地应用程序将设备信息发送至第m个协议控制子电路;在确定第m个协议控制子电路的配置文件与设备信息未匹配成功的情况下,通过控制本地应用程序,将第m+1个协议控制子电路的配置文件与设备信息进行匹配;以及在确定第m+1个协议控制子电路的配置文件与设备信息匹配成功的情况下,通过控制本地应用程序将设备信息发送至第m+1个协议控制子电路。
根据本发明的实施例,数据转换电路包括:ECM协议控制子电路;处理器还用于在确定设备信息为Linux系统信息的情况下,通过控制本地应用程序将Linux系统信息发送至ECM协议控制子电路;以及ECM协议控制子电路还用于在接收处理器发送的Linux系统信息,并根据Linux系统信息确定数据传输协议,以基于数据传输协议向外部设备传输数据。
根据本发明的实施例,数据转换电路包括:RNDIS协议控制子电路;处理器还用于在确定设备信息为Windows系统信息的情况下,通过控制本地应用程序将Windows系统信息发送至RNDIS协议控制子电路;以及RNDIS协议控制子电路还用于在接收处理器发送的Windows系统信息,并根据Windows系统信息确定数据传输协议,以基于数据传输协议向外部设备传输数据。
根据本发明的第二个方面,本发明提供了一种USB网卡,包括:数据转换电路,用于接收第二USB数据,并将第二USB数据转换成第三以太网数据;缓存器,用于缓存第三以太网数据;数据读取电路,用于从缓存器中读取第三以太网数据;以及数据处理电路,用于从接收数据读取电路读取的第三以太网数据,并对第三以太网数据进行封装,得到第四以太网数据,其中第四以太网数据用于发送至外部网络。
根据本发明的实施例,USB网卡还包括:USB电路,用于接收来着外部设备的第三串行模拟信号,并将第三串行模拟信号转换成第三并行数字信号;USB IP核,用于将第三并行数字信号转换成第二USB数据,并将第二USB数据发送至数据转换电路;以太网IP核,用于接收第四以太网数据,并将第四以太网数据转换成第四并行数字信号;以及以太网电路,用于接收第四并行数字信号,将第四并行数字信号转换成第四串行模拟信号,并将第四串行模拟信号发送至外部网络。
根据本发明的实施例,数据转换电路包括:至少一个协议控制子电路,至少一个协议控制子电路分别基于一种数据传输协议进行数据处理,协议控制子电路用于从USB IP核中读取第二USB数据,根据数据传输协议将第二USB数据转换为第三以太网数据;以及第二数据缓存器,用于缓存第三以太网数据。
根据本发明的实施例,USB网卡还包括处理器,用于:在检测到外部设备发起的接入请求时,通过运行本地应用程序与外部设备建立通信;在通过本地应用程序与外部设备建立通信时,获取外部设备的设备信息;以及通过控制本地应用程序将设备信息发送至数据转换电路;其中,数据转换电路在接收处理器发送的设备信息后,根据设备信息确定数据传输协议,以基于数据传输协议向外部网络传输数据。
根据本发明的实施例,至少一个协议控制子电路包括:ECM协议控制子电路,用于在确定接收到的设备信息为第一类设备信息的情况下,在有限状态机的控制下从USB IP核中读取第二USB数据,并基于ECM协议将第二USB数据转换为第三以太网数据,并将第三以太网数据发送给数据处理电路;以及RNDIS协议控制子电路,用于在确定接收到的设备信息为第二类设备信息的情况下,在有限状态机的控制下从USB IP核中读取第二USB数据,并基于RNDIS协议将第二USB数据转换为第三以太网数据,并将第三以太网数据发送给数据处理电路。
根据本发明的实施例,第二USB数据包括N帧数据包,RNDIS协议控制子电路还用于解析第二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网卡运行内部应用程序而造成的处理器CPU占用率过大的现象,解决了数据传输效率低下的问题。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本发明实施例的USB网卡的结构示意图。
图2示意性示出了根据本发明另一实施例的USB网卡的结构示意图。
图3示意性示出了根据本发明另一实施例的USB网卡的结构示意图。
图4示意性示出了根据本发明另一实施例的USB网卡的结构示意图。
图5示意性示出了根据本发明实施例的通信方法的流程图。
图6示意性示出了根据本发明另一实施例的通信方法的流程图。
图7示意性示出了根据本发明实施例的有限状态机的状态示意图。
具体实施方式
以下,将参照附图来描述本发明的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本发明的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本发明实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本发明。在此使用的术语“包括”、“包含”等表明了特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
网卡是一种被设计用来允许计算机在计算机网络上进行通讯的计算机硬件。由于网卡拥有MAC地址,使得用户可以通过电缆或无线相互连接。网卡和局域网之间的通信可以通过电缆或双绞线以串行传输方式进行的。而网卡和计算机之间的通信则是通过计算机主板上的I/O总线以并行传输方式进行。
由于网络上的数据率和计算机总线上的数据率并不相同,因此在网卡中装有用于缓存数据的存储器。在计算机上接入网卡时,需要将管理网卡的设备驱动程序安装在计算机的操作系统中。这个驱动程序可以控制网卡将局域网传送过来的数据块存储在存储器的特定存储位置上。
USB网卡是一种接口为USB的网卡。USB网卡是工作在数据链路层的网络组件,是局域网中连接计算机和传输介质的接口,不仅能实现与局域网传输介质之间的物理连接和电信号匹配,还涉及数据帧的发送与接收、数据帧的封装与拆封、介质访问控制、数据的编码与解码以及数据缓存的功能等。在笔记本或一体机网卡损坏而无法安装PCI网卡的情况下,可以通过USB网卡提供网络服务。
设备驱动程序是一种可以使计算机中央处理器CPU控制和使用设备的特殊程序,可以相当于硬件的接口。计算机的操作系统通过这个接口,可以控制硬件设备的工作。所有的硬件都要通过驱动程序运行。网卡驱动程序就是CPU控制和使用网卡的应用程序。
图1示意性示出了根据本发明实施例的USB网卡的结构示意图。
如图1所示,USB网卡100包括数据处理电路101、缓存器102、数据读取电路103和数据转换电路104。
USB网卡100的工作阶段包括数据上行阶段和数据下行阶段。在数据上行阶段,USB网卡100接收来自外部网络的数据,并将接收到数据写入外部设备中。在数据下行阶段,USB网卡100读取外部设备中的数据,并将读取到的数据发送至外部网络。
例如,USB网卡100可以遵循USB 3.0技术规范或USB 2.0技术规范。
本发明提供一种USB网卡数据上行阶段的实施例。
数据处理电路101接收第一以太网数据,并对第一以太网数据进行校验和卸载,得到第二以太网数据。第一以太网数据为来自外部网络的数据,例如USB网卡100从以太网中接收到的数据。
数据处理电路101对第一以太网数据进行校验后,可以筛除第一以太网数据中的错误数据。数据处理电路101对第一以太网数据进行卸载,可以去除第一以太网数据中的非有效负载数据,以减少后续数据上行阶段的数据传输量。
缓存器102包括数据上行FIFO缓存器。数据上行FIFO缓存器被配置于缓存由数据处理电路102处理后得到的第二以太网数据。缓存器102可以存储数据处理电路101和数据转换电路104产生的数据,也可以存储数据处理电路101和数据转换电路104之间交互而产生的数据。
数据读取电路103用于搬运数据。例如数据读取电路103可以从缓存器102中读取第二以太网数据,并将读取到的第二以太网数据搬运到数据转换电路104中。数据读取电路103可以为直接存储器访问(Direct Memory Access,DMA)电路,可以完成缓存器102和数据转换电路104之间的数据搬运,提升数据传输效率。
数据转换电路104在接收数据读取电路103发送的第二以太网数据后,将第二以太网数据转换为第一USB数据。第一USB数据为需要写入外部设备的数据。
数据转换电路104可以控制第一以太网数据的数据流,对第一以太网数据的传输进行记录。数据转换电路104可以完成不同数据传输协议下USB数据包与ETH数据包之间的格式转换。数据转换电路104是兼容多种外部设备操作系统的核心电路。
本发明提供一种USB网卡数据下行阶段的实施例。
数据转换电路104接收第二USB数据,并将第二USB数据转换成第三以太网数据。第二USB数据为来自外部设备的数据,外部设备可以与USB网卡100建立通信的设备。例如,外部设备可以是笔记本电脑、一体机和台式电脑等。数据转换电路104可以控制第三以太网数据的数据流,对第三以太网数据的传输进行记录。
缓存器102包括数据下行FIFO缓存器。数据下行FIFO缓存器被配置为缓存数据转换电路104发送的第三以太网数据。
数据读取电路103用于将第三以太网数据从缓存器102搬运到数据处理电路101中。数据处理电路101接收数据读取电路103读取的第三以太网数据,并对第三以太网数据进行封装,得到第四以太网数据。第四以太网数据为需要发送至外部网络的数据。
数据处理电路101对第三以太网数据进行封装,以将接收到的第三以太网数据一起打包发送至外部网络。
根据本发明实施例,数据处理电路101、缓存器102、数据读取电路103和数据转换电路104可以均为硬件类电路。通过数据处理电路101、缓存器102、数据读取电路103和数据转换电路104,可以执行对数据的批量传输。通过数据读取电路对数据上/下行阶段产生的大量网络数据进行搬运,通过数据转换电路对数据上/下行阶段的数据格式进行处理。通过硬件类电路执行数据传输过程,可以提升数据传输的速率。此外,由硬件类电路执行数据传输,无需处理器CPU参与数据传输过程,从而可以减少在数据传输过程处理器CPU的占用率,减少对CPU的使用。减轻工作量的CPU可以更快的执行其他数据处理工作,提升USB网卡的工作效率。
图2示意性示出了根据本发明另一实施例的USB网卡的结构示意图。
如图2所示,USB网卡200包括数据处理电路201、缓存器202、数据读取电路203、数据转换电路204、以太网电路205、以太网知识产权核(Ethernet Intellectual Propertycore,ETH IP core)206、USB IP核207、USB电路208、存储器209、处理器210和总线211。
本发明实施例中,数据处理电路201、缓存器202、数据读取电路203和数据转换电路204分别与上一实施例中数据处理电路101、缓存器102、数据读取电路103和数据转换电路104执行的操作类似,为简明此处不再赘述。
在本发明实施例中,存储器209可以包括随机存取存贮器(Random AccessMemory,RAM)。存储器209用于在数据传输过程中,对传输数据进行缓存。ETH IP 核206和USB IP核207可以从存储器209中读取数据,也可以将数据写入存储器209中。
总线211用于传输信号和数据。数据处理电路201、缓存器202、数据读取电路203、数据转换电路204、以太网电路205、ETH IP核206、USB IP核207、USB电路208、存储器209和处理器210之间的数据传输和信号传输均可以由总线211执行。
本发明提供一种USB网卡数据上行阶段的实施例。
在数据上行阶段,以太网电路205接收来自外部网络的第一串行模拟信号,并将第一串行模拟信号转换成第一并行数字信号。例如,以太网电路205可以为以太网PHY,通过以太网PHY接收来自外部网络的串行模拟信号。
以太网IP核206将以太网电路205发送的第一并行数字信号转换成第一以太网数据,并将第一以太网数据发送至数据处理电路201。
第一以太网数据也为数字信号。以太网电路205发送的第一并行数字信号不是标准以太网格式的数字信号,以太网IP核206将第一并行数字信号转换成标准以太网格式的数字信号,得到第一以太网数据。数据处理电路201、缓存器202、数据读取电路203和数据转换电路204处理的数据均为数字信号形式。
USB IP核207接收数据转换电路204输出的第一USB数据,并将第一USB数据转换成第二并行数字信号。USB电路208接收第二并行数字信号,将第二并行数字信号转换成第二串行模拟信号,并将第二串行模拟信号写入外部设备。USB电路208可以为USB PHY,通过USBPHY将并行数字信号转换成串行模拟信号后,将串行模拟信号写入外部设备,由此完成USB网卡200的数据传输中的数据上行过程。
本发明提供一种USB网卡数据下行阶段的实施例。
在数据下行阶段,USB电路208接收来着外部设备的第三串行模拟信号,并将第三串行模拟信号转换成第三并行数字信号。USB IP核207将第三并行数字信号转换成第二USB数据,并将第二USB数据发送至数据转换电路204。
以太网IP核206接收数据处理电路201发送的第四以太网数据,并将第四以太网数据转换成第四并行数字信号。以太网电路205接收以太网IP核206发送的第四并行数字信号,将第四并行数字信号转换成第四串行模拟信号,并将第四串行模拟信号发送至外部网络,由此完成USB网卡200的数据传输中的数据下行过程。
在本发明实施例中,在USB网卡200进行数据传输之前,需要将USB网卡200与外部设备进行连接。
在USB网卡200接入外部设备时,可以认为外部设备向USB网卡200发起接入请求。处理器210通过运行本地应用程序可以执行驱动枚举、将网络链接状态上报给外部设备、处理USB网卡数据传输中断和处理数据异常等操作。
处理器210在检测到外部设备发起的接入请求时,运行本地应用程序,以通过本地应用程序与外部设备建立通信。处理器210可以是中央处理器CPU。
例如,驱动枚举过程可以包括:USB网卡200接入外部设备,在确认USB网卡200与外部设备在物理层面连接成功后,处理器210开始运行本地应用程序;通过本地应用程序向外部设备提供配置文件,以与外部设备进行枚举过程;在确定该配置文件枚举成功的情况下,USB网卡200与外部设备成功建立通信。
在枚举过程中配置文件可以包括多个配置文件,处理器210通过运行本地应用程序向外部设备依次提供多个配置文件,使多个配置文件依次参与枚举过程。在某一配置文件枚举成功后,停止向外部设备提供配置文件。
多个配置文件可以分别与多个操作系统适配。例如,多个配置文件可以包括以太网控制模型(Ethernet Networking Control Model,ECM)配置文件和远程网络驱动接口规范(Remote Network Driver Interface Specification,RNDIS)配置文件。ECM配置文件与Linux和MAC操作系统适配,RNDIS配置文件与Windows操作系统适配。
例如,在外部设备的操作系统为Windows操作系统的情况下,在枚举过程中,USB网卡200通过处理器210运行本地应用程序向外部设备提供RNDIS配置文件,以向外部设备发送设备描述符,将USB网卡200上报为一个RNDIS设备。外部设备读取USB网卡200提供的设备信息,确认与本机适配后,加载与RNDIS设备对应的驱动。USB网卡200也获取操作系统的相关信息,从而USB网卡200和外部设备的操作系统可以进行正常数据通信。
通过USB网卡200的多个配置文件与外部设备进行匹配,在匹配成功后即可实现USB网卡200与外部设备的成功连接,而无需在外部设备的内部安装额外的连接驱动,从而实现了USB网卡200与外部设备的免驱连接方式。
在USB网卡200与外部设备建立通信后,以太网电路205可以接收来自外部网络的第一以太网数据,并将接收到的第一以太网数据写入数据转换电路204。第一以太网数据可以是USB网卡200从局域网中接收到的网络数据包,第一以太网数据可以以以太网数据帧的形式被接收。
在本发明实施例中,处理器210在通过本地应用程序与外部设备建立通信时,还需要获取外部设备的设备信息,例如操作系统信息,并通过控制本地应用程序将设备信息发送至数据转换电路204。数据转换电路204在接收处理器210发送的设备信息后,根据设备信息确定数据传输协议,以基于数据传输协议向外部设备传输来自外部网络的第一以太网数据或来自外部设备的第二USB数据。
例如,数据传输协议可以包括ECM协议、RNDIS协议、网络控制模型(NetworkControl Model,NCM)数据协议和网络驱动程序接口规范(Network Driver InterfaceSpecification,NDIS)数据协议。
针对不同操作系统数据传输协议,结合USB的CDC协议,可以对数据进行协议处理、加速、DMA搬运。在实现免驱通信的同时,提高数据传输速率。
需要说明的是,处理器210通过运行本地应用程序将设备信息发送至数据转换电路204的操作只需要在USB网卡200与外部设备成功建立通信后执行一次即可。例如,在USB网卡200与外部设备成功建立通信之后,USB网卡200进行数据上行之前,处理器210通过运行本地应用程序将设备信息发送至数据转换电路204。或者在USB网卡200与外部设备成功建立通信之后,USB网卡200进行数据下行之前,处理器210通过运行本地应用程序将设备信息发送至数据转换电路204。在USB网卡200与外部设备成功建立通信以及处理器210通过运行本地应用程序将设备信息发送至数据转换电路204之后,在USB网卡200与外部设备的物理层面连接断开之前,无需处理器210通过运行本地应用程序将设备信息发送至数据转换电路204的操作。
在本发明实施例中,由于数据上行和下行几乎是同时进行,USB网卡200需要在有限状态机的控制下,同步执行数据上行阶段和数据下行阶段的操作。
通过本发明实施例,通过在USB网卡中内置数据处理电路201、缓存器202、数据读取电路203、数据转换电路204,并由数据处理电路201、缓存器202、数据读取电路203、数据转换电路204替代了本地应用程序执行数据上/下行阶段的数据传输操作,避免在数据上/下行阶段本地应用程序频繁访问CPU,从而减少由于其他工作占用CPU而导致数据传输效率低的问题,可以显著提升网络带宽。此外,利用ECM配置文件和RNDIS配置文件及外部设备内置的驱动程序,实现快速枚举和免装驱动。
图3示意性示出了根据本发明另一实施例的USB网卡的结构示意图。
如图3所示,USB网卡300包括数据处理电路301、数据转换电路304、USB IP核307和处理器310。
本发明实施例中,数据处理电路301、数据转换电路304、USB IP核307和处理器310分别与上一实施例中数据处理电路201、数据转换电路204、USB IP核207和处理器210执行的操作类似,为简明相同的部分此处不再赘述。
本发明实施例中,数据转换电路304包括第一数据缓存器3041、第二数据缓存器3042和至少一个协议控制子电路3043。
第一数据缓存器3041可以是数据上行FIFO缓存器,第二数据缓存器3042可以是数据下行FIFO缓存器。第一数据缓存器3041可以用于在数据上行阶段缓存数据读取电路发送的第二以太网数据。第二数据缓存器3042可以用于在数据下行阶段缓存第三以太网数据。
至少一个协议控制子电路3043分别基于一种数据传输协议进行数据处理。
在数据上行阶段,数据处理电路301对第一以太网数据进行校验和卸载得到第二以太网数据,将第二以太网数据写入第一数据缓存器3041。协议控制子电路3043从第一数据缓存器3041中读取第二以太网数据后,根据数据传输协议将第二以太网数据转换为第一USB数据,并将第一USB数据发送至USB IP核307。USB IP核307读取第一USB数据后,还将第一USB数据转换成并行数字信号。并行数字信号在被转换成串行模拟信号后被发送给外部设备。
在数据下行阶段,USB IP核307将第二USB数据搬运到协议控制子电路3043中,协议控制子电路3043根据数据传输协议将第二USB数据转换为第三以太网数据,并将第三以太网数据发送给第二数据缓存器3042。数据处理电路301对第三以太网数据进行封装,得到第四以太网数据,并将第四以太网数据以串行模拟信号的形式发送到外部网络中。
在本发明实施例中,数据转换电路304可以包括至少一个协议控制子电路3043。每个协议控制子电路可以分别基于一种数据传输协议进行数据传输。在数据转换电路304包括多个协议控制子电路的情况下,可以在枚举成功后,基于外部设备的操作系统信息从多个协议控制子电路中确定参与数据传输操作的协议控制子电路。
例如,数据转换电路304包括M个协议控制子电路3043,M为大于1的正整数。在枚举过程中,处理器310在通过本地应用程序与外部设备建立通信时,获取外部设备的设备信息;通过控制本地应用程序,将M个协议控制子电路中的第m个协议控制子电路的配置文件与设备信息进行匹配,m=1,2,…,M。
在确定第m个协议控制子电路的配置文件与设备信息匹配成功的情况下,数据转换电路304通过控制本地应用程序将设备信息发送至第m个协议控制子电路。第m个协议控制子电路在接收处理器发送的设备信息,并根据设备信息确定数据传输协议,以基于数据传输协议向外部设备传输数据。
在确定第m个协议控制子电路的配置文件与设备信息未匹配成功的情况下,数据转换电路304通过控制本地应用程序,将第m+1个协议控制子电路的配置文件与设备信息进行匹配;以及在确定第m+1个协议控制子电路的配置文件与设备信息匹配成功的情况下,通过控制本地应用程序将设备信息发送至第m+1个协议控制子电路。第m+1个协议控制子电路在接收处理器发送的设备信息,并根据设备信息确定数据传输协议,以基于数据传输协议向外部设备传输数据。
例如,数据转换电路304可以包括ECM协议控制子电路和RNDIS协议控制子电路。在外部设备的操作系统为Windows操作系统的情况下,在枚举成功后,USB网卡获取外部设备的操作系统为Windows操作系统的信息,并数数据转换电路304中的RNDIS协议控制子电路参与数据传输操作。
例如,处理器310在通过本地应用程序与外部设备建立通信时,获取外部设备的设备信息,并在确定设备信息为Linux系统信息的情况下,通过控制本地应用程序将Linux系统信息发送至ECM协议控制子电路。ECM协议控制子电路还用于在接收处理器发送的设备信息,并根据Linux系统信息确定数据传输协议,以基于数据传输协议向外部设备传输数据。
例如,处理器310还用于在通过本地应用程序与外部设备建立通信时,获取外部设备的设备信息,并在确定设备信息为Windows系统信息的情况下,通过控制本地应用程序将Windows系统信息发送至RNDIS协议控制子电路。RNDIS协议控制子电路还用于在接收处理器发送的设备信息,并根据Windows系统信息确定数据传输协议,以基于数据传输协议向外部设备传输数据。
图4示意性示出了根据本发明另一实施例的USB网卡的结构示意图。
如图4所示,USB网卡400包括数据处理电路401、数据转换电路404、USB IP核407和处理器410。数据转换电路404包括第一数据缓存器4041、第二数据缓存器4042、第一信息缓存器4043、第二信息缓存器4044、ECM协议控制子电路4045和RNDIS协议控制子电路3046。
本发明实施例中,数据处理电路401、数据转换电路404、USB IP核407和处理器410分别与上一实施例中数据处理电路201、数据转换电路204、USB IP核207和处理器210执行的操作类似,第一数据缓存器4041和第二数据缓存器4042与第一数据缓存器3041和第二数据缓存器3042具有类似的功能,为简明相同的部分此处不再赘述。
在本发明实施例中,第一信息缓存器4043可以为数据上行FIFO缓存器,第二信息缓存器4044可以为数据下行FIFO缓存器。第一信息缓存器4043和第二信息缓存器4044用于存储以太网信息。例如,以太网信息可以包括硬件电路传输的一帧以太网数据的长度、对以太网数据的校验信息和以太网数据中的错误帧信息。
在数据上行阶段,在确定接收到的设备信息为第一类设备信息的情况下,ECM协议控制子电路4045可以在有限状态机的控制下从第一数据缓存器4041中读取第二以太网数据,并基于ECM协议将第二以太网数据转换为第一USB数据,并将第一USB数据发送给USB IP核407。例如第一类设备信息包括Linux操作系统和MAC操作系统信息。在确定接收到的设备信息为第二类设备信息的情况下,RNDIS协议控制子电路4046可以在有限状态机的控制下从第一数据缓存器4041中读取第二以太网数据,并基于RNDIS协议将第二以太网数据转换为第一USB数据,并将第一USB数据发送给USB IP核407。例如第二类设备信息包括Windows操作系统信息。
在本发明实施例中,在数据下行阶段,在确定接收到的设备信息为Linux操作系统或MAC操作系统的情况下,ECM协议控制子电路4045在有限状态机的控制下从USB IP核407中读取第二USB数据,并基于ECM协议将第二USB数据转换为第三以太网数据,并将第三以太网数据发送给数据处理电路401。在确定接收到的设备信息为Windows操作系统的情况下,RNDIS协议控制子电路4046可以在有限状态机的控制下从USB IP核407中读取第二USB数据,并基于RNDIS协议将第二USB数据转换为第三以太网数据,并将第三以太网数据发送给数据处理电路401。
在本发明实施例中,第二以太网数据可以包括N帧以太网数据包。RNDIS协议控制子电路4046可以在确定接收到的N帧以太网数据包的前n帧以太网数据包的长度大于预设值的情况下,将前n帧以太网数据包转换为第一USB数据,并对第一USB数据进行封装,并将封装后的前n帧以太网数据包发送给USB IP核407,n=1,2,…,N,N为正整数。
例如,当某一帧以太网数据包长度小于100个字节时,RNDIS协议控制子电路4046可以先等待接收下一帧以太网数据包,并暂不处理将已经接收到的数据帧,继续读下一帧以太网数据包,直到当前帧长度和已经接收到前几帧长度之和大于等于1024个字节时,对已经接收到的全部以太网数据帧一起进行处理,并将处理后的数据一起打包发送给外部设备。由此可以实现短包加速,提升数据传输效率。
在本发明实施例中,第二USB数据可以包括N帧USB数据包,RNDIS协议控制子电路4046可以解析第二USB数据得到多帧USB数据包,并从USB数据包中筛选得到有效的USB数据包,并将有效的USB数据包转换为以太网数据包后发送给数据处理电路401。
例如,RNDIS协议控制子电路4046对USB数据包进行处理,在数据下行时,RNDIS协议控制子电路4046可以解析经过外部设备封装后的数据包,筛选出有效的USB数据包。在数据上行时,RNDIS协议控制子电路4046可以对由USB数据包转换得到的以太网数据包进行封装后再发送给外部设备。
通过本发明实施例,通过有限状态机对协议控制子电路的实现进行控制,保证对数据上/下行、数据协议处理、FIFO读写、数据加速等操作进行合理分配,并使得这些操作可以穿插进行,保证正确传输每一帧数据。
ECM协议控制子电路4045基于USB CDC协议下的ECM子协议进行数据传输。基于ECM协议的数据传输过程简单,不需要对以太网数据格式进行处理。在确保每帧数据能够正确写入(读出)FIFO缓存器的情况下,就可以保证数据传输过程的正常进行。ECM协议可以支持所有版本linux(mac OS)系统。
RNDIS协议控制子电路4046基于windows操作系统进行数据传输。RNDIS协议是微软特有的远程网络驱动接口规范,在该规范下USB设备会被识别成一张网卡,而RNDIS协议控制子电路4046可以对以太网数据和RNDIS规范下的数据进行格式转换,使USB数据能正常收发。RNDIS协议支持windows系统,例如win7以上版本。RNDIS协议控制子电路4046具有较高的适用性。
数据转换电路404还可以包括NCM协议控制子电路,NCM协议控制子电路基于USBCDC协议下的NCM子协议进行数据传输。在NCM子协议下,单次传输的数据更多,传输效率更高。NCM协议和ECM协议都可以提升数据传输的速度。NCM协议可以支持部分linux(mac OS)系统。
通过本发明实施例,通过设计数据处理电路中的转换子电路,实现USB数据包向ETH数据包格式的转换,兼容不同的操作系统(例如包括windows、mac-os、linux和android)下的数据收发过程,从而满足不同操作系统下对应的数据传输协议,以实现真正的免驱功能。
图5示意性示出了根据本发明实施例的通信方法的流程图。
如图5所示,该实施例通信方法可以应用于本发明实施例提供的USB网卡,通信方法包括操作S510~操作S540。
在操作S510,利用数据处理电路接收第一以太网数据,并对第一以太网数据进行校验和卸载,得到第二以太网数据。
在操作S520,利用缓存器缓存第二以太网数据。
在操作S530,利用数据读取电路从缓存器中读取第二以太网数据。
在操作S540,利用数据转换电路接收数据读取电路读取的第二以太网数据,并将第二以太网数据转换为第一USB数据,其中第一USB数据用于写入外部设备。
在本发明实施例中,操作S510与数据处理电路101在数据上行阶段执行的操作相似,不再赘述。操作S520与缓存器102在数据上行阶段的功能相似,不再赘述。在操作S530与数据读取电路103在数据上行阶段执行的操作相似,不再赘述。在操作S540与数据转换电路104在数据上行阶段执行的操作相似,不再赘述。
图6示意性示出了根据本发明另一实施例的通信方法的流程图。
如图6所示,该实施例通信方法可以应用于本发明实施例提供的USB网卡,通信方法包括操作S610~操作S640。
在操作S610,利用数据转换电路接收第二USB数据,并将第二USB数据转换成第三以太网数据。
在操作S620,利用缓存器缓存第三以太网数据。
在操作S630,利用数据读取电路从缓存器中读取第三以太网数据。
在操作S640,利用数据处理电路接收数据读取电路读取的第三以太网数据,并对第三以太网数据进行封装,得到第四以太网数据,其中第四以太网数据用于发送至外部网络。
在本发明实施例中,在本发明实施例中,操作S610与数据转换电路104在数据下行阶段执行的操作相似,不再赘述。操作S620与缓存器102在数据下行阶段的功能相似,不再赘述。在操作S630与数据读取电路103在数据下行阶段执行的操作相似,不再赘述。在操作S640与数据处理电路101在数据下行阶段执行的操作相似,不再赘述。
本发明还提供了另一实施例的通信方法,可以应用于本发明实施例提供的USB网卡。USB网卡在有限状态机控制数据下,同步执行数据上行阶段的S510~操作S540和数据下行阶段的操作S610~操作S640。
图7示意性示出了根据本发明实施例的有限状态机的状态示意图。
如图7所示,有限状态机的状态可以包括初始状态idle、上行传输状态tx和下行传输状态rx。
在本发明实施例中,利用有限状态机控制USB网卡同步执行数据上行阶段和数据下行阶段的操作可以包括:在USB网卡上电后,有限状态机处于初始状态,响应于USB网卡接收第一传输信号,有限状态机处于初始状态由初始状态切换成上行传输状态,以控制USB网卡进行数据上行阶段的操作;以及响应于USB网卡接收第二传输信号,有限状态机处由上行传输状态切换成下行传输状态,以控制USB网卡进行数据下行阶段的操作。
在本发明实施例中,利用有限状态机控制USB网卡同步执行数据上行阶段和数据下行阶段的操作还可以包括:在USB网卡上电后,有限状态机处于初始状态,响应于USB网卡接收第三传输信号,有限状态机处于初始状态由初始状态切换成下行传输状态,以控制USB网卡进行数据上行阶段的操作;以及响应于USB网卡接收第四传输信号,有限状态机处由下行传输状态切换成上行传输状态,以控制USB网卡进行数据上行阶段的操作。
在本发明实施例中,第一传输信号和第三传输信号可以为数据读取信号。第二传输信号和第四传输信号可以为数据写入信号。
例如,初始状态idle表示USB网卡上电复位后的最开始状态。下行传输状态rx可以包括下行接收数据状态rx_usb_pack、下行等待传输状态rx_usb_standby和下行传输完毕状态rx_eth_done等。上行传输状态tx可以包括上行传输错误状态pre_tx_error、上行传输正确状态pre_tx_correct、上行发送数据状态tx_usb_pack、上行等待传输状态tx_usb_standby和上行传输完毕状态tx_eth_done等。
例如,下行等待传输状态rx_usb_standby表示外部设备可能会停止发送当前帧数据,USB网卡处于接收等待状态。上行传输错误状态pre_tx_error表示当前一帧以太网包数据出错。上行传输正确状态pre_tx_correct表示当前一帧以太网包数据正确,准备发送数据。上行等待传输状态tx_usb_standby表示外部设备可能会停止接收,USB网卡处于发送等待状态。上行传输完毕状态tx_eth_done表示当前一帧以太网数据包发送完毕。
例如,有限状态机处由上行传输状态切换成下行传输状态,以通过有限状态机控制USB网卡由数据上行阶段切换成数据下行传阶段的操作可包括:在USB网卡接收数据读取中断信号!ahb_rd时,状态机可以由上行发送数据状态tx_usb_pack切换至上行传输等待状态tx_usb_standby;在USB网卡接收数据写入信号!ahb_wr时,状态机可以由上行传输等待状态tx_usb_standby切换至下行接收数据状态rx_usb_pack,以控制USB网卡进行数据下行阶段的操作。
例如,有限状态机处由下行传输状态切换成上行传输状态,以通过有限状态机控制USB网卡由数据下行阶段切换成数据上行传阶段的操作可以包括:在USB网卡接收数据写入中断信号!ahb_wr时,状态机可以由下行接收数据状态rx_usb_pack切换至下行传输等待状态rx_usb_standby;在USB网卡接收数据读取信号ahb_rd时,状态机可以由下行传输等待状态rx_usb_standby切换至上行发送数据状态tx_usb_pack,以控制USB网卡进行数据上行阶段的操作。
根据本发明的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本发明的各个实施例中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本发明中。特别地,在不脱离本发明精神和教导的情况下,本发明的各个实施例中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本发明的范围。
以上对本发明的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本发明的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。不脱离本发明的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本发明的范围之内。
Claims (23)
1.一种USB网卡,包括:
数据处理电路,用于接收第一以太网数据,并对所述第一以太网数据进行校验和卸载,得到第二以太网数据;
缓存器,用于缓存所述第二以太网数据;
数据读取电路,用于从所述缓存器中读取所述第二以太网数据;以及
数据转换电路,用于接收所述数据读取电路读取的所述第二以太网数据,并将所述第二以太网数据转换为第一USB数据,其中所述第一USB数据用于写入外部设备;
其中,所述数据转换电路在接收处理器发送的所述外部设备的设备信息后,根据所述设备信息确定数据传输协议,以基于所述数据传输协议向所述外部设备传输数据;
所述数据转换电路包括:
第一数据缓存器,用于缓存所述数据读取电路发送的所述第二以太网数据;以及
至少一个协议控制子电路,所述至少一个协议控制子电路包括:
ECM协议控制子电路,用于在确定接收到的设备信息为第一类设备信息的情况下,在有限状态机的控制下从所述第一数据缓存器中读取所述第二以太网数据,并基于ECM协议将所述第二以太网数据转换为第一USB数据;以及
RNDIS协议控制子电路,用于在确定接收到的设备信息为第二类设备信息的情况下,在有限状态机的控制下从所述第一数据缓存器中读取所述第二以太网数据,并基于RNDIS协议将所述第二以太网数据转换为第一USB数据。
2.根据权利要求1所述的USB网卡,还包括:
以太网电路,用于接收来自外部网络的第一串行模拟信号,并将所述第一串行模拟信号转换成第一并行数字信号;
以太网IP核,用于将所述第一并行数字信号转换成第一以太网数据,并将所述第一以太网数据发送至所述数据处理电路;
USB IP核,用于接收所述第一USB数据,并将所述第一USB数据转换成第二并行数字信号;以及
USB电路,用于接收所述第二并行数字信号,将所述第二并行数字信号转换成第二串行模拟信号,并将所述第二串行模拟信号写入所述外部设备。
3. 根据权利要求2所述的USB网卡,其中,所述协议控制子电路用于将所述第一USB数据发送至所述USB IP核。
4.根据权利要求3所述的USB网卡,还包括:
处理器,用于:
在检测到所述外部设备发起的接入请求时,通过运行本地应用程序与所述外部设备建立通信;
在通过所述本地应用程序与所述外部设备建立通信时,获取所述外部设备的设备信息;以及
通过控制所述本地应用程序将所述设备信息发送至所述数据转换电路。
5. 根据权利要求4所述的USB网卡,其中,
所述ECM协议控制子电路还用于将所述第一USB数据发送给所述USB IP核;以及
所述RNDIS协议控制子电路还用于将所述第一USB数据发送给所述USB IP核。
6. 根据权利要求5所述的USB网卡,其中,所述第二以太网数据包括N帧数据包,所述RNDIS协议控制子电路还用于在确定接收到的所述N帧数据包的前n帧数据包的长度大于预设值的情况下,将所述前n帧数据包转换为第一USB数据,并对所述第一USB数据进行封装,并将封装后数据发送给所述USB IP核,n=1,2,…,N,N为正整数。
7.根据权利要求4所述的USB网卡,其中,所述数据转换电路包括M个协议控制子电路,M为大于1的正整数;
所述处理器还用于:
通过控制所述本地应用程序,将所述M个协议控制子电路中的第m个协议控制子电路的配置文件与所述设备信息进行匹配,m=1,2,…,M;
在确定所述第m个协议控制子电路的配置文件与所述设备信息匹配成功的情况下,通过控制所述本地应用程序将所述设备信息发送至所述第m个协议控制子电路;
在确定所述第m个协议控制子电路的配置文件与所述设备信息未匹配成功的情况下,通过控制所述本地应用程序,将第m+1个协议控制子电路的配置文件与所述设备信息进行匹配;以及
在确定所述第m+1个协议控制子电路的配置文件与所述设备信息匹配成功的情况下,通过控制所述本地应用程序将所述设备信息发送至所述第m+1个协议控制子电路。
8. 根据权利要求7所述的USB网卡,其中,所述数据转换电路包括ECM协议控制子电路;
所述处理器还用于在确定所述设备信息为Linux系统信息的情况下,通过控制所述本地应用程序将Linux系统信息发送至所述ECM协议控制子电路;以及
所述ECM协议控制子电路还用于在接收所述处理器发送的所述Linux系统信息,并根据所述Linux系统信息确定数据传输协议,以基于所述数据传输协议向所述外部设备传输数据。
9. 根据权利要求7所述的USB网卡,其中,所述数据转换电路包括RNDIS协议控制子电路;
所述处理器还用于在确定所述设备信息为Windows系统信息的情况下,通过控制所述本地应用程序将Windows系统信息发送至所述RNDIS协议控制子电路;以及
所述RNDIS协议控制子电路还用于在接收所述处理器发送的所述Windows系统信息,并根据所述Windows系统信息确定数据传输协议,以基于所述数据传输协议向所述外部设备传输数据。
10.一种USB网卡,包括:
数据转换电路,用于接收第二USB数据,并将所述第二USB数据转换成第三以太网数据;
缓存器,用于缓存所述第三以太网数据;
数据读取电路,用于从所述缓存器中读取所述第三以太网数据;以及
数据处理电路,用于接收所述数据读取电路读取的所述第三以太网数据,并对所述第三以太网数据进行封装,得到第四以太网数据,其中所述第四以太网数据用于发送至外部网络;
其中,所述数据转换电路在接收处理器发送的所述外部设备的设备信息后,根据所述设备信息确定数据传输协议,以基于所述数据传输协议向所述外部网络传输数据;
所述数据转换电路包括:
至少一个协议控制子电路,所述至少一个协议控制子电路包括:
ECM协议控制子电路,用于在确定接收到的设备信息为第一类设备信息的情况下,在有限状态机的控制下读取所述第二USB数据,并基于ECM协议将所述第二USB数据转换为第三以太网数据,并将所述第三以太网数据发送给所述数据处理电路;以及
RNDIS协议控制子电路,用于在确定接收到的设备信息为第二类设备信息的情况下,在有限状态机的控制下读取所述第二USB数据,并基于RNDIS协议将所述第二USB数据转换为第三以太网数据,并将所述第三以太网数据发送给所述数据处理电路;以及
第二数据缓存器,用于缓存所述第三以太网数据。
11.根据权利要求10所述的USB网卡,还包括:
USB电路,用于接收来着外部设备的第三串行模拟信号,并将所述第三串行模拟信号转换成第三并行数字信号;
USB IP核,用于将第三并行数字信号转换成第二USB数据,并将所述第二USB数据发送至所述数据转换电路;
以太网IP核,用于接收所述第四以太网数据,并将所述第四以太网数据转换成第四并行数字信号;以及
以太网电路,用于接收第四并行数字信号,将所述第四并行数字信号转换成第四串行模拟信号,并将所述第四串行模拟信号发送至外部网络。
12. 根据权利要求11所述的USB网卡,其中,所述协议控制子电路用于从所述USB IP核中读取所述第二USB数据。
13.根据权利要求12所述的USB网卡,还包括:
处理器,用于:
在检测到所述外部设备发起的接入请求时,通过运行本地应用程序与所述外部设备建立通信;
在通过所述本地应用程序与所述外部设备建立通信时,获取所述外部设备的设备信息;以及
通过控制所述本地应用程序将所述设备信息发送至所述数据转换电路。
14. 根据权利要求13所述的USB网卡,其中,
所述ECM协议控制子电路还用于在确定接收到的设备信息为第一类设备信息的情况下,在有限状态机的控制下从所述USB IP核中读取所述第二USB数据;以及
所述RNDIS协议控制子电路还用于在确定接收到的设备信息为第二类设备信息的情况下,在有限状态机的控制下从所述USB IP核中读取所述第二USB数据。
15.根据权利要求14所述的USB网卡,其中,所述第二USB数据包括N帧数据包,所述RNDIS协议控制子电路还用于解析所述第二USB数据得到多帧数据包,并从所述多帧数据包中筛选得到有效数据包,将所述有效数据包发送给所述数据处理电路。
16. 一种USB网卡,包括:
根据权利要求1~9任意一项所述的USB网卡,用于执行数据上行阶段的操作;以及
根据权利要求10~15任意一项所述的USB网卡,用于执行数据下行阶段的操作;
其中,在有限状态机的控制下,数据上行阶段的操作和数据下行阶段的操作被同步执行。
17.一种通信方法,应用于USB网卡,包括:
利用数据处理电路接收第一以太网数据,并对所述第一以太网数据进行校验和卸载,得到第二以太网数据;
利用缓存器缓存所述第二以太网数据;
利用数据读取电路从所述缓存器中读取所述第二以太网数据;以及
利用数据转换电路接收所述数据读取电路读取的所述第二以太网数据,并将所述第二以太网数据转换为第一USB数据,其中所述第一USB数据用于写入外部设备;
其中,所述通信方法还包括:
利用所述数据转换电路在接收处理器发送的所述外部设备的设备信息后,根据所述设备信息确定数据传输协议,以基于所述数据传输协议向所述外部设备传输数据;
所述利用数据转换电路接收所述数据读取电路读取的所述第二以太网数据,并将所述第二以太网数据转换为第一USB数据,包括:
利用第一数据缓存器缓存所述数据读取电路发送的所述第二以太网数据;
利用ECM协议控制子电路在确定接收到的设备信息为第一类设备信息的情况下,在有限状态机的控制下从所述第一数据缓存器中读取所述第二以太网数据,并基于ECM协议将所述第二以太网数据转换为第一USB数据;以及
利用RNDIS协议控制子电路在确定接收到的设备信息为第二类设备信息的情况下,在有限状态机的控制下从所述第一数据缓存器中读取所述第二以太网数据,并基于RNDIS协议将所述第二以太网数据转换为第一USB数据。
18.一种通信方法,应用于USB网卡,包括:
利用数据转换电路接收第二USB数据,并将所述第二USB数据转换成第三以太网数据;
利用缓存器缓存所述第三以太网数据;
利用数据读取电路从所述缓存器中读取所述第三以太网数据;以及
利用数据处理电路接收所述数据读取电路读取的所述第三以太网数据,并对所述第三以太网数据进行封装,得到第四以太网数据,其中所述第四以太网数据用于发送至外部网络;
其中,所述通信方法还包括:
利用所述数据转换电路在接收处理器发送的所述外部设备的设备信息后,根据所述设备信息确定数据传输协议,以基于所述数据传输协议向所述外部网络传输数据;
所述利用数据转换电路接收第二USB数据,并将所述第二USB数据转换成第三以太网数据,包括:
利用ECM协议控制子电路在确定接收到的设备信息为第一类设备信息的情况下,在有限状态机的控制下读取所述第二USB数据,并基于ECM协议将所述第二USB数据转换为第三以太网数据,并将所述第三以太网数据发送给所述数据处理电路;
利用RNDIS协议控制子电路在确定接收到的设备信息为第二类设备信息的情况下,在有限状态机的控制下读取所述第二USB数据,并基于RNDIS协议将所述第二USB数据转换为第三以太网数据,并将所述第三以太网数据发送给所述数据处理电路;以及
利用第二数据缓存器缓存所述第三以太网数据。
19.一种通信方法,应用于USB网卡,包括数据上行阶段和数据下行阶段,
在数据上行阶段,该方法包括:
利用数据处理电路接收第一以太网数据,并对所述第一以太网数据进行校验和卸载,得到第二以太网数据;
利用缓存器缓存所述第二以太网数据;
利用数据读取电路从所述缓存器中读取所述第二以太网数据;以及
利用数据转换电路接收所述数据读取电路读取的所述第二以太网数据,并将所述第二以太网数据转换为第一USB数据,其中所述第一USB数据用于写入外部设备;
其中,所述通信方法还包括:
利用所述数据转换电路在接收处理器发送的所述外部设备的设备信息后,根据所述设备信息确定数据传输协议,以基于所述数据传输协议向所述外部设备传输数据;
所述利用数据转换电路接收所述数据读取电路读取的所述第二以太网数据,并将所述第二以太网数据转换为第一USB数据,包括:
利用第一数据缓存器缓存所述数据读取电路发送的所述第二以太网数据;
利用ECM协议控制子电路在确定接收到的设备信息为第一类设备信息的情况下,在有限状态机的控制下从所述第一数据缓存器中读取所述第二以太网数据,并基于ECM协议将所述第二以太网数据转换为第一USB数据;以及
利用RNDIS协议控制子电路在确定接收到的设备信息为第二类设备信息的情况下,在有限状态机的控制下从所述第一数据缓存器中读取所述第二以太网数据,并基于RNDIS协议将所述第二以太网数据转换为第一USB数据;
以及
在数据下行阶段,该方法包括:
利用数据转换电路接收第二USB数据,并将所述第二USB数据转换成第三以太网数据;
利用缓存器缓存所述第三以太网数据;
利用数据读取电路从所述缓存器中读取所述第三以太网数据;以及
利用数据处理电路接收所述数据读取电路读取的所述第三以太网数据,并对所述第三以太网数据进行封装,得到第四以太网数据,其中所述第四以太网数据用于发送至外部网络;
其中,所述通信方法还包括:
利用所述数据转换电路在接收处理器发送的所述外部设备的设备信息后,根据所述设备信息确定数据传输协议,以基于所述数据传输协议向所述外部网络传输数据;
所述利用数据转换电路接收第二USB数据,并将所述第二USB数据转换成第三以太网数据,包括:
利用利用ECM协议控制子电路在确定接收到的设备信息为第一类设备信息的情况下,在有限状态机的控制下读取所述第二USB数据,并基于ECM协议将所述第二USB数据转换为第三以太网数据,并将所述第三以太网数据发送给所述数据处理电路;
利用RNDIS协议控制子电路在确定接收到的设备信息为第二类设备信息的情况下,在有限状态机的控制下读取所述第二USB数据,并基于RNDIS协议将所述第二USB数据转换为第三以太网数据,并将所述第三以太网数据发送给所述数据处理电路;以及
利用第二数据缓存器缓存所述第三以太网数据
其中,利用有限状态机控制所述USB网卡同步执行数据上行阶段和数据下行阶段的操作。
20. 根据权利要求19所述的通信方法,其中,所述有限状态机的状态包括初始状态、上行传输状态和下行传输状态,所述利用有限状态机控制所述USB网卡同步执行数据上行阶段和数据下行阶段的操作,包括:
在所述USB网卡上电后,所述有限状态机处于初始状态,响应于所述USB网卡接收第一传输信号,所述有限状态机处于初始状态由所述初始状态切换成上行传输状态,以控制所述USB网卡进行数据上行阶段的操作;以及
响应于所述USB网卡接收第二传输信号,所述有限状态机处由上行传输状态切换成下行传输状态,以控制所述USB网卡进行数据下行阶段的操作。
21. 根据权利要求20所述的通信方法,其中,所述利用有限状态机控制所述USB网卡同步执行数据上行阶段和数据下行阶段的操作,还包括:
在所述USB网卡上电后,所述有限状态机处于初始状态,响应于所述USB网卡接收第三传输信号,所述有限状态机处于初始状态由所述初始状态切换成下行传输状态,以控制所述USB网卡进行数据上行阶段的操作;以及
响应于所述USB网卡接收第四传输信号,所述有限状态机处由下行传输状态切换成上行传输状态,以控制所述USB网卡进行数据上行阶段的操作。
22. 根据权利要求20所述的通信方法,其中,所响应于所述USB网卡接收第二传输信号,所述有限状态机处由上行传输状态切换成下行传输状态,以控制所述USB网卡进行数据下行阶段的操作,包括:
在所述USB网卡接收数据读取中断信号时,所述状态机由上行发送数据状态切换至上行传输等待状态;以及
在所述USB网卡接收数据写入信号时,所述状态机由上行传输等待状态切换至下行接收数据状态,以控制所述USB网卡进行数据下行阶段的操作。
23. 根据权利要求21所述的通信方法,其中,所述响应于所述USB网卡接收第四传输信号,所述有限状态机处由下行传输状态切换成上行传输状态,以控制所述USB网卡进行数据上行阶段的操作,包括:
在所述USB网卡接收数据写入中断信号时,所述状态机由下行接收数据状态切换至下行传输等待状态;以及
在所述USB网卡接收数据读取信号时,所述状态机由下行传输等待状态切换至上行发送数据状态,以控制所述USB网卡进行数据上行阶段的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211442353.8A CN115499505B (zh) | 2022-11-18 | 2022-11-18 | Usb网卡和通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211442353.8A CN115499505B (zh) | 2022-11-18 | 2022-11-18 | Usb网卡和通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115499505A CN115499505A (zh) | 2022-12-20 |
CN115499505B true CN115499505B (zh) | 2023-03-10 |
Family
ID=85116110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211442353.8A Active CN115499505B (zh) | 2022-11-18 | 2022-11-18 | Usb网卡和通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115499505B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116232779A (zh) * | 2023-02-24 | 2023-06-06 | 无锡沐创集成电路设计有限公司 | 一种usb网卡、数据传输方法、装置及可读存储介质 |
CN116668538B (zh) * | 2023-08-02 | 2023-10-03 | 深圳市翼联网络通讯有限公司 | Usb新型网卡和通信方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103916252B (zh) * | 2014-04-18 | 2017-05-03 | 中国科学院西安光学精密机械研究所 | 一种基于fpga的高带宽以太网ip核 |
-
2022
- 2022-11-18 CN CN202211442353.8A patent/CN115499505B/zh active Active
Non-Patent Citations (1)
Title |
---|
"USB2.0转千兆以太网接口设计";王鑫;《中国优秀硕士学位论文全文数据库》;20140615;正文第1-77页 * |
Also Published As
Publication number | Publication date |
---|---|
CN115499505A (zh) | 2022-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115499505B (zh) | Usb网卡和通信方法 | |
US20200174953A1 (en) | Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link | |
US10146715B2 (en) | Techniques for inter-component communication based on a state of a chip select pin | |
US7349973B2 (en) | Data transfer control device, electronic equipment, and data transfer control method | |
US7647416B2 (en) | Full hardware based TCP/IP traffic offload engine(TOE) device and the method thereof | |
JP5933115B2 (ja) | 低電力物理ユニットのロード/ストア通信プロトコルへの提供 | |
US10585816B1 (en) | System and method for serial communication at a peripheral interface device | |
US7028109B2 (en) | Data transfer control device including buffer controller with plurality of pipe regions allocated to plurality of endpoints | |
US8032353B1 (en) | Method and apparatus for providing peripheral connection management in a remote computing environment | |
US20080147909A1 (en) | Remote USB protocol for a heterogeneous system | |
US20200201804A1 (en) | I3c device timing adjustment to accelerate in-band interrupts | |
US7469304B2 (en) | Data transfer control device, electronic equipment, and method for a data transfer through a bus, the data transfer control device including a register and a packet buffer that are commonly used during a host operation and a peripheral operation | |
US20130019031A1 (en) | System, method, and computer program product for inserting a gap in information sent from a drive to a host device | |
US20030093631A1 (en) | Method and apparatus for read launch optimizations in memory interconnect | |
JP2005504392A (ja) | バス・システムおよびバス・インターフェース | |
US7428600B2 (en) | Data transfer control device, electronic equipment, and data transfer control method | |
US6584536B1 (en) | Bus transaction accelerator for multi-clock systems | |
US20030093632A1 (en) | Method and apparatus for sideband read return header in memory interconnect | |
US20230035810A1 (en) | Method for data processing of frame receiving of an interconnection protocol and storage device | |
US20050273541A1 (en) | Circuit and method for adaptively recognizing a data packet in a universal serial bus network device | |
US20100023597A1 (en) | Diskless computer system | |
US11216398B2 (en) | USB device and data transfer method thereof | |
JPH1074140A (ja) | データ転送方法、復号装置、データ転送装置及びデータ処理装置 | |
CN115718712A (zh) | 基于虚拟串口的数据传输方法、装置、设备和存储介质 | |
JP2003323391A (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 |
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 |