一种USB转以太网自适配的方法
文献发布时间:2024-04-18 19:58:53
技术领域
本发明涉及通信技术领域,特别涉及到一种USB转以太网自适配的方法。
背景技术
在现有方案中,专用于USB转以太网对接的模组USB端口将处于HOST模式,通常难以具备项目开发所需要的完整的功能,开发调试过程中往往需要不断的来回切换USB模式,需要花费更多的精力和时间去进行开发设备,现有的模组只具备一种功能,或是USB设备端网卡功能或是USB主机端USB转以太网功能,并且支持的USB转以太网通常只有一种或者少数几种,在实际使用中需要进行USB的灵活切换,在使用效率上很难满足当前的开发模式。
如CN110519237A中公开了一种适用于USB转以太网通讯的转换方法及转换装置,将USB数据转化为以太网数据,再由接口转换模块将数据传输到RJ45网口或光模块接口,可实现USB转以太网的功能,但是还是需要通过接口转换来进行USB转以太网的功能,无法进行USB转以太网自适配,耗费精力。
发明内容
本发明的目的是为了解决在开发过程中USB转以太网不能通过需求来实现自动切换,耗费人力和精力的问题,为解决上述问题,本发明提供以下技术方案:一种USB转以太网自适配的方法,包括以下步骤:
S1.通过操作USB_ID进行USB外设探测操作;
S2.探测成功后进行自检功能;
S3.自检通过后,进行USB转以太网的初始化。
通过自动探测是否有以太网的存在来判断是否生成相关的以太网设备,然后通过自动检测来判断探测到的以太网节点是否与期望的节点对应,如果对应的话,控制器控制USB_ID进行USB转以太网的初始化,以此实现根据不同的需求来进行USB转以太网的自适配。
作为优选,步骤S1的具体过程,还包括:
S101.将USB_ID管脚接入内部CPU控制器的一个GPIO管脚上面,CPU用于控制USB_ID状态;
S102.CPU主控将USB_ID管脚拉低,此时模组将处于USB Host模式;
S103.探测USB转以太网是否存在。
将传统悬空的USB_ID GPIO管脚接入内部CPU控制器的一个GPIO管脚上面,可以不用通过人工手动的方式接入不同的环境来切换成不同的模式,只需要通过内部CPU自动控制环境来切换模式即可,切换十分方便,大大节省了人力。
作为优选,步骤S2的具体过程,还包括:
S201.通过命令查看对应的USB转以太网对应的PID、VID来判断是否是期望的设备;
S202.若判断有相关以太网节点,且PID、VID与期望以太网对应,那么进行USB转以太网自检功能。
通过命令包来进行设备之间的通讯,每一个USB设备都有VID和PID,主机通过检测PID和VID来识别不同的设备,来判断探测到的设备是否为期望的设备,通过这个方法探测方便又精准。
作为优选,探测操作包括检错功能,具体过程包括:
在探测过程中,如果其中有一步失败,CPU操作USB_ID管脚,切换为USB device模式,并且对USB device模式进行初始化。
当没有探测到期望的设备时,USB会切换成device模式,以此来为下一次的USB以太网自适配作准备。
作为优选,自检功能还包括检错功能,具体过程包括:
在自检过程中,如果其中有一步失败,CPU操作USB_ID管脚,切换为USB device模式,并且对USB device模式进行初始化。
当自检失败时,USB会切换成device模式,防止出现适配错误导致数据丢失的情况。
作为优选,步骤S103的具体过程,包括:通过执行探测命令,查看/sys/class/net/eth0系统节点,来判断是否生成相关的以太网设备,/sys/class/net/eth0是系统的文件夹的地址,文件夹的内容涉及到eth0网卡的信息,其中eth0是指系统中的第一个以太网网卡。
作为优选,自检功能主要对数据的收发进行判断,选择通过Ping包的形式进行判断。通过这个方法可以以较短的命令和较快的速度对数据进行判断。
上述USB转以太网自适配的方法通过控制器控制USB_ID的GPIO管脚连接的环境来控制USB的工作状态,再根据具体需求来自动检测以太网来生产相关的以太网设备让控制器控制USB转以太网的初始化来实现USB转以太网的自适配功能,能够扩展通信模组使用场景,在许多原来本应必须发送AT命令才能达到的效果,现在可以自动适配,从而扩大通信模组的使用范围,进一步促进物联网应用,提高了开发效率,节省了人力和精力。
附图说明
图1为本发明流程图;
图2为本发明探测前USB_ID操作流程图;
图3为本发明探测过程流程图;
图4为本发明检错功能流程图;
图5为本发明USB_ID硬件管脚切换电路图。
具体实施方式
下面通过实施例,并结合附图对本发明技术方案的具体实施方式作进一步的说明。
实施例1:
请参阅图1,本发明实施例提供一种USB转以太网自适配方法,包括以下步骤:
S1.通过操作USB_ID进行USB外设探测操作;
S2.探测成功后进行自检功能;
S3.自检通过后,进行USB转以太网的初始化。
传统设计USB_ID GPIO管脚为悬空状态,USB_ID管脚由外部环境人为控制,例如需要拉高USB_ID管脚,则需要手动将USB_ID管脚接入VCC电源,若需要拉低USB_ID管脚管脚,则需要手动将USB_ID管脚接入GND环境;如图5所示,当前设计是将USB_ID管脚接入内部CPU控制器的一个GPIO管脚上面,USB_ID状态将由控制器控制,此时我们进行USB模式的切换将无需外部硬件接线操作,只需要控制器软件进行控制即可,这一改变后USB状态的切换将非常方便。
请参阅图2,在进行外设探测操作中,步骤S1还包括以下步骤:
S101.将USB_ID管脚接入内部CPU控制器的一个GPIO管脚上面,CPU用于控制USB_ID状态;
S102.CPU主控将USB_ID管脚拉低,此时模组将处于USB Host模式;
S103.探测USB转以太网是否存在。
通过自动探测来控制USB的模式,再根据探测到的结果与期望的以太网设备进行适配,根据不同的需求来切换不同的模式,实现自适配转换,无需人工切换。
请参阅图3,在探测过程中,步骤S2还包括以下步骤:
S201.通过命令查看对应的USB转以太网对应的PID、VID来判断是否是期望的设备;
S202.若判断有相关以太网节点,且PID、VID与期望以太网对应,那么进行USB转以太网自检功能。
其中通过执行命令,查看/sys/class/net/eth0系统节点,来判断是否生成相关的以太网设备,/sys/class/net/eth0是系统的文件夹的地址,文件夹的内容涉及到eth0网卡的信息,其中eth0是指系统中的第一个以太网网卡,再通过发送数据命令包的形式来判断对应的PID和VID防止出现配对不对应的情况,造成数据的丢失。探测成功后,进行以太网自检功能,以太网自检主要对数据的收发进行判断,本实施例中将通过Ping包的形式进行判断,因为不仅要自动能切换到USB host模式,还得保证USB以太网能用起来,才有意义,如图4所示,在探测和自检的过程中如果两者的任意一步出现错误都不会让USB转以太网成功,内部控制器会自动拉高USB_ID的管脚,令其处于device模式,并且对其进行USB device模式相关的初始化,通过上面的步骤,在使用USB转以太网模块时候,可以无感的进行使用,不需要额外的操作,极大的提高了模组的灵活性。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
- 在USB快速以太网适配器芯片内置NOR FLASH支持驱动程序自动安装的方法
- USB2.0快速以太网适配器芯片双绞线和光纤介质收发器管脚复用的方法