CN115374028A - Usb接口转串口映射方法、装置、集线器、设备和介质 - Google Patents
Usb接口转串口映射方法、装置、集线器、设备和介质 Download PDFInfo
- Publication number
- CN115374028A CN115374028A CN202211304448.3A CN202211304448A CN115374028A CN 115374028 A CN115374028 A CN 115374028A CN 202211304448 A CN202211304448 A CN 202211304448A CN 115374028 A CN115374028 A CN 115374028A
- Authority
- CN
- China
- Prior art keywords
- serial port
- node
- usb interface
- usb
- port node
- 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.)
- Granted
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/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different 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/0002—Serial port, e.g. RS232C
-
- 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]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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接口转串口映射方法、装置、集线器、设备和介质,所述USB接口转串口映射方法包括:在USB设备首次连接于USB接口时,自配置文件中获取为所述USB接口分配的串口节点的节点地址;为所述串口节点设置虚拟串口节点名称,所述虚拟串口节点名称与所述节点地址一一对应;在硬件设备信息目录中建立包括所述虚拟串口节点名称与节点地址的链接目标文件,其中,所述链接目标文件用于在所述USB设备再次连接于USB接口时,为所述USB接口与所述串口节点建立映射,以提升效率和可靠性。
Description
技术领域
本公开涉及计算机技术领域,具体涉及一种USB接口转串口映射方法、装置、集线器、设备和介质。
背景技术
目前通过集线器HUB等设备将通用串行总线(Universal Serial Bus, USB)接口转换为串口时,通常的实现方式是USB设备在连接于HUB中的USB接口时,USB设备中的应用对HUB设备中的串口节点进行遍历,逐个通信以判断当前串口节点是否为该USB设备的对应串口,遍历时可以通过控制USB设备,即HUB上模块的上下电顺序来加快判断速度。
在USB设备经过热插拔后,之前与该USB设备使用的USB接口建立了软连接的串口节点的名称可能发生变化,此时需要重新进行遍历并由USB设备中的应用来进行判断,以重新建立所述USB接口与对应串口节点的软连接。
旧的设备HUB接的USB设备较少,串口节点也比较少,采用遍历的方式可以满足应用需求。然而,新的HUB设备上可能存在多达十几个串口节点,对应的应用有4个以上,遍历历时较长,且需要应用对遍历操作进行控制,并对遍历结果进行判断,这种操作方式存在如下缺陷:
1)不友好、扩展性差:每个应用都需要对遍历操作和结果进行控制和判断操作,在新接入USB设备的时候,还会生成新的设备节点,即串口设备,通常会生成三到四个设备节点,此时还要考虑对新生成节点的判断,操作复杂度高;
2)容易出错:多USB设备情况下,原有的判断方式未必有效;例如,在电磁兼容测试中,会反复出现HUB设备上下电情况,每次上电都需要重新为USB设备连接的USB接口确定对应的串口,并建立USB接口和对应串口之间的软连接,情况也会复杂。此时,如果判断不准确,会导致业务应用不能正确操作节点。
发明内容
为了解决相关技术中的问题,本公开实施例提供一种USB接口转串口映射方法、装置、集线器、设备和介质。
第一方面,本公开实施例中提供了一种USB接口转串口映射方法,所述方法包括:
在USB设备首次连接于USB接口时,自配置文件中获取为所述USB接口分配的串口节点的节点地址;
为所述串口节点设置虚拟串口节点名称,所述虚拟串口节点名称与所述节点地址一一对应;
在硬件设备信息目录中建立包括所述虚拟串口节点名称与节点地址的链接目标文件;
其中,所述链接目标文件用于在所述USB设备再次连接于USB接口时,为所述USB接口与所述串口节点建立映射。
根据本公开的实施例,所述方法应用于Linux系统。
根据本公开的实施例,所述自配置文件中获取为所述USB接口分配的串口节点的节点地址,包括:
通过POSIX文件接口读取所述配置文件,对所述配置文件中的JSON格式数据进行解析后,获取为所述USB接口分配的串口节点的节点地址。
根据本公开的实施例,所述USB接口再次连接于USB设备,包括:
所述USB设备断电后重新上电,再次连接于所述USB接口;或者
所述USB设备在热插拔后再次连接于所述USB接口。
根据本公开的实施例,所述为所述USB接口与所述串口节点建立映射,包括:
在USB接口首次连接于USB设备,并在硬件设备信息目录中建立包括所述虚拟串口节点名称与节点地址的链接目标文件后,在所述配置文件中添加各串口节点的所述虚拟串口节点名称;
在所述USB接口再次连接于USB设备时,自所述配置文件获取为所述USB接口分配的所述串口节点的虚拟串口节点名称。
根据本公开的实施例,所述为所述USB接口与所述串口节点建立映射,还包括:
根据获取到的串口节点的虚拟串口节点名称,自所述硬件设备信息目录中获取所述串口节点的链接目标文件;
根据所述链接目标文件建立所述USB接口与所述串口节点的映射。
根据本公开的实施例,所述为所述USB接口与所述串口节点建立映射,还包括:
所述链接目标文件中的所述虚拟串口节点名称和节点地址一起指向所述串口节点的软链接;
基于所述软链接建立所述USB接口与所述串口节点的映射。
根据本公开的实施例,所述方法应用于集线器HUB,还包括:
所述集线器HUB中的应用程序通过接收内核发送的消息识别连接于USB接口的USB设备的设备特征,进而确定为所述USB接口分配的串口节点;或者
所述集线器HUB中的应用程序对USB设备的设备地址持续进行扫描以确定有USB设备接入,进而识别所述USB设备的设备特征,确定为所述USB接口分配的串口节点。
第二方面,本公开实施例中提供了一种USB接口转串口映射装置,所述装置包括:
第一获取单元,被配置为在USB设备首次连接于USB接口时,自配置文件中获取为所述USB接口分配的串口节点的节点地址;
设置单元,被配置为为所述串口节点设置虚拟串口节点名称,所述虚拟串口节点名称与所述节点地址一一对应;
映射单元,被配置为在硬件设备信息目录中建立包括所述虚拟串口节点名称与节点地址的链接目标文件,所述链接目标文件用于在所述USB设备再次连接于USB接口时,为所述USB接口与所述串口节点建立映射。
根据本公开的实施例,所述装置应用于Linux系统。
根据本公开的实施例,所述自配置文件中获取为所述USB接口分配的串口节点的节点地址,包括:
通过POSIX文件接口读取所述配置文件,对所述配置文件中的JSON格式数据进行解析后,获取为所述USB接口分配的串口节点的节点地址。
根据本公开的实施例,USB接口再次连接于USB设备,包括:
所述USB设备断电后重新上电,再次连接于所述USB接口;或者
所述USB设备在热插拔后再次连接于所述USB接口。
根据本公开的实施例,所述为所述USB接口与所述串口节点建立映射,包括:
在USB接口首次连接于USB设备,并在硬件设备信息目录中建立所述虚拟串口节点名称与节点地址的映射后,在所述配置文件中添加各串口节点的所述虚拟串口节点名称;
在所述USB接口再次连接于USB设备时,自所述配置文件获取为所述USB接口分配的所述串口节点的节点名称。
根据本公开的实施例,所述为所述USB接口与所述串口节点建立映射,还包括:
根据获取到的串口节点的虚拟串口节点名称,自所述硬件设备信息目录中获取所述串口节点的链接目标文件;
根据所述链接目标文件建立所述USB接口与所述串口节点的映射。
根据本公开的实施例,所述为所述USB接口与所述串口节点建立映射,还包括:
所述链接目标文件中的所述虚拟串口节点名称和节点地址一起指向所述串口节点的软链接;
基于所述软链接建立所述USB接口与所述串口节点的映射。
根据本公开的实施例,所述装置应用于集线器HUB,还包括:
所述集线器HUB中的应用程序通过接收内核发送的消息识别连接于USB接口的USB设备的设备特征,进而确定为所述USB接口分配的串口节点;或者
所述集线器HUB中的应用程序对USB设备的设备地址持续进行扫描以确定有USB设备接入,进而识别所述USB设备的设备特征,确定为所述USB接口分配的串口节点。
第三方面,本公开实施例中提供了一种集线器HUB,所述集线器HUB包括如第二方面中任一实施例所述的USB接口转串口映射装置。
第四方面,本公开实施例中提供了一种电子设备,所述电子设备包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如第一方面中任一实施例所述的方法步骤。
第五方面,本公开实施例提供了一种芯片,所述芯片包括第四方面所述的电子设备。
第六方面,本公开实施例提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现如第一方面中任一实施例所述的方法步骤。
根据本公开实施例提供的技术方案,通过对为USB接口分配的串口节点设置节点名称,在硬件设备信息目录中建立节点名称与节点地址的映射,并在配置文件中记录各串口节点的虚拟串口节点名称,从而基于虚拟串口节点名称为USB接口与串口节点建立映射。采用这种方式,无需遍历各串口节点即可快速实现USB接口与串口节点间的映射连接,速度快效率高,且在热插拔等串口节点编号可能发生变化的情况下,也能保证USB设备连接正确的串口,提高了可靠性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本公开的其它特征、目的和优点将变得更加明显。在附图中。
图1示出根据本公开实施例的USB接口转串口映射方法的流程图。
图2示出根据本公开实施例的USB接口转串口映射装置的结构框图。
图3示出根据本公开实施例的集线器HUB的结构框图。
图4示出根据本公开实施例的电子设备的结构框图。
图5示出适于用来实现根据本公开实施例的方法的计算机系统的结构示意图。
具体实施方式
下文中,将参考附图详细描述本公开的示例性实施例,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施例无关的部分。
在本公开中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
上文提及,目前,新的集线器HUB可连接的USB设备较多,对应的串口数目也较多,可能达到十几个串口节点,若在USB设备每次连接于所述HUB的USB接口时均通过遍历的方式建立USB接口与串口间的软连接,耗时较长,且需要USB设备中的应用程序对遍历操作进行控制,并对遍历结果进行判断,这种方式存在如下缺陷:
1)不友好、扩展性差:每个应用都需要对遍历操作和结果进行控制和判断操作,在新接入USB设备的时候,还会生成新的设备节点,即串口设备,通常会生成三到四个设备节点,此时还要考虑对新生成节点的判断,操作复杂度高;
2)容易出错:多USB设备情况下,原有的判断方式未必有效;例如,在电磁兼容测试中,会反复出现HUB设备上下电情况,每次上电都需要重新为USB设备连接的USB接口确定对应的串口,并建立USB接口和对应串口之间的软连接,情况也会复杂。此时,如果判断不准确,会导致业务应用不能正确操作节点。
鉴于此,本公开实施例提供了一种USB接口转串口映射方法,通过将USB接口对应的设备特征与其对应的串口节点的节点地址建立映射,然后将串口节点的节点地址与虚拟串口节点名称建立对应关系,即可在USB设备通过所述USB接口连接于所述集线器HUB时,首先识别所述USB设备的设备特征,然后基于所述映射表查询对应串口节点的节点地址,并通过所述节点地址获取所述串口节点的虚拟串口节点名称,从而建立所述USB接口与所述串口节点的软连接。采用这种方式,无需遍历各串口节点即可快速实现USB接口与串口节点间的映射连接,速度快效率高,且在热插拔等串口节点编号可能发生变化的情况下,也能保证USB设备连接正确的串口,提高了可靠性。
图1示出根据本公开实施例的USB接口转串口映射方法的流程图。
如图1所示,所述USB接口转串口映射方法包括步骤S101-步骤S103:
在步骤S101中,在USB设备首次连接于USB接口时,自配置文件中获取为所述USB接口分配的串口节点的节点地址;
在步骤S102中,为所述串口节点设置虚拟串口节点名称,所述虚拟串口节点名称与所述节点地址一一对应;
在步骤S103中,在硬件设备信息目录中建立包括所述虚拟串口节点名称与节点地址的链接目标文件;其中,所述链接目标文件用于在所述USB设备再次连接于USB接口时,为所述USB接口与所述串口节点建立映射。
在本公开实施例中,所述USB接口转串口映射方法可以应用于Linux操作系统。
在本公开实施例中,所述USB接口可以对应一个或多个串口。当所述USB接口对应多个串口时,所述USB接口可以连接于USB设备,以将所述USB设备的信息自多个串口输出,从而提高信息传输效率。
在本公开实施例中,所述USB接口转串口映射方法可应用于集线器,所述集线器HUB可以包括多个USB接口,以及多个串口。在本公开的一个具体实施方式中,所述集线器可以包括4个USB接口,12个串口。在本公开实施例中,所述USB设备首次连接于USB接口时,可以通过open、read等可移植操作系统接口(Portable Operating System Interface,POSIX)文件接口对系统中配置文件的内容进行读取,并对所述配置文件中的JSON格式数据进行解析后,获取为该USB接口分配的串口节点的节点地址。例如,若USB接口的地址是基于USBHUB在Linux系统的地址规则分配的,则从解析得到的数据/sys/bus/usb/devices/1-1.4:1.2可知,USB总线1上的HUB的第4个端口的第2个接口,是为当前USB接口分配的串口节点的节点地址。
在本公开实施例中,在获取了所述为当前USB接口分配的串口节点的节点地址后,可以为各串口节点设置虚拟串口节点名称。
相关技术中,在Linux操作系统中,每次USB设备连接于USB接口时,系统均会为每个串口节点自动生成一个临时节点名称,例如为节点地址为/sys/bus/usb/devices/1-1.3:1.0的串口节点生成临时节点名称ttyACM2,为节点地址为/sys/bus/usb/devices/1-1.3:1.2的串口节点生成临时节点名称ttyACM3,为节点地址为/sys/bus/usb/devices/1-1.3:1.4的串口节点生成临时节点名称ttyACM4。这里的临时节点名称ttyACM2、ttyACM3和ttyACM4与节点地址并不是一一对应的,也就是说,当USB设备断电后重新上电时,或者USB设备进行了热插拔时,节点地址为/sys/bus/usb/devices/1-1.3:1.0的串口节点的临时节点名称可能变为ttyACM3,此时无法根据所述临时节点名称建立串口节点和USB接口之间的映射,需要对串口节点进行遍历以获取正确的临时节点名称。
鉴于此,本公开实施例中为各串口节点设置了与各串口节点的节点地址一一对应节点名称,该节点名称可以为虚拟串口节点名称。例如,为节点地址为/sys/bus/usb/devices/1-1.3:1.0的串口节点设置虚拟串口节点名称为ttyPLC0,为节点地址为/sys/bus/usb/devices/1-1.3:1.2的串口节点设置虚拟串口节点名称为ttyPLC1,为节点地址为/sys/bus/usb/devices/1-1.3:1.4的串口节点设置虚拟串口节点名称为ttyPLC2。当USB设备断电后重新上电时,或者USB设备进行了热插拔时,节点地址为/sys/bus/usb/devices/1-1.3:1.0的串口节点的虚拟串口节点名称不会发生变化,仍然是ttyPLC0,同样地,节点地址为/sys/bus/usb/devices/1-1.3:1.2的串口节点的虚拟串口节点名称始终是ttyPLC1,节点地址为/sys/bus/usb/devices/1-1.3:1.4的串口节点的虚拟串口节点名称始终是ttyPLC2。采用这种方式,获得了与串口节点的地址一一对应、保持不变的节点名称。
在本公开实施例中,在为各串口节点设置虚拟串口节点名称后,可以在硬件设备信息目录中建立所述虚拟串口节点名称与节点地址的映射。具体地,可以在所述硬件设备信息目录中为各串口节点建立链接目标文件,所述链接目标文件的文件名可以包括对应串口节点的虚拟串口节点名称,所述链接目标文件中可以包括对应串口节点的节点地址,所述串口节点的节点名称即上述虚拟串口节点名称,所述虚拟串口节点名称和节点地址一起指向实际串口节点的软链接。
在本公开实施例中,在硬件设备信息目录中完成所述虚拟串口节点名称与节点地址的映射的建立后,还可以在所述配置文件中添加各串口节点的所述虚拟串口节点名称。仍然以上述节点地址为/sys/bus/usb/devices/1-1.3:1.0、/sys/bus/usb/devices/1-1.3:1.2和/sys/bus/usb/devices/1-1.3:1.4,虚拟串口节点名称为ttyPLC0、ttyPLC1和ttyPLC2为例,此时配置文件中可以用如下方式描述:
{
“name”: ”HPLC”,
“type”: ”usb”,
“enable”: 1,
“add”: “/sys/bus/usb/devices/1-1.3”,
“remove”: “remove@/devices/platform/soc/fotg210_hcd.1/usb1/1-1/1-1.3/1-1.3”,
“link”: [
“/dev/ttyPLC0”,
“/dev/ttyPLC1”,
“/dev/ttyPLC2”
]
}
在本公开实施例中,在所述USB设备再次连接于USB接口时,可以获取为所述USB接口分配的所述串口节点的虚拟串口节点名称,以为所述USB接口与所述串口节点建立映射。其中,所述USB设备再次连接于USB接口可以包括,所述USB设备断电后重新上电,再次连接于所述USB接口;或者,所述USB设备在热插拔后再次连接于所述USB接口。
在本公开实施例中,可以自所述配置文件中获取为所述USB接口分配的所述串口节点的虚拟串口节点名称,然后根据所述串口节点的节虚拟串口点名称自所述硬件设备信息目录中获取所述串口节点的链接目标文件,最后根据所述链接目标文件建立所述USB接口与所述串口节点的映射。具体地,如前所述,所述链接目标文件中包括了串口节点的虚拟串口节点名称和节点地址,所述虚拟串口节点名称和节点地址一起指向实际串口节点的软链接,因此,在获取了相应串口节点的虚拟串口节点名称后,根据所述虚拟串口节点名称即可得到对应的链接目标文件,由所述链接目标文件中包含的软链接即可自动完成USB接口与实际串口节点的映射,为所述USB接口与串口节点建立软链接。
在本公开实施例中,当所述方法应用于集线器HUB时,所述集线器HUB中的应用程序可以通过接收内核发送的消息识别连接于USB接口的USB设备的设备特征,进而确定为所述USB接口分配的串口节点;或者,所述集线器HUB中的应用程序还可以对USB设备的设备地址持续进行扫描以确定有USB设备接入,进而识别所述USB设备的设备特征,确定为所述USB接口分配的串口节点。其中,所述USB设备的设备特征是指能够标识USB设备的特征,所述USB设备的设备特征可以包括设备地址,例如1个4G设备在HUB第一个接口,另一个4G在HUB第2个接口,HPLC设备在HUB第三个接口。
根据本公开实施例的技术方案,通过对为USB接口分配的串口节点设置虚拟串口节点名称,在硬件设备信息目录中建立虚拟串口节点名称与节点地址的映射,并在配置文件中记录各串口节点的虚拟串口节点名称,从而基于虚拟串口节点名称为USB接口与串口节点建立映射。采用这种方式,无需遍历各串口节点即可快速实现USB接口与串口节点间的映射连接,速度快效率高,且在热插拔等串口节点编号可能发生变化的情况下,也能保证USB设备连接正确的串口,提高了可靠性。
图2示出根据本公开实施例的USB接口转串口映射装置的结构框图。
如图2所示,所述USB接口转串口映射装置200包括:
第一获取单元210,被配置为在USB设备首次连接于USB接口时,自配置文件中获取为所述USB接口分配的串口节点的节点地址;
设置单元220,被配置为为所述串口节点设置虚拟串口节点名称,所述虚拟串口节点名称与所述节点地址一一对应;
映射单元230,被配置为在硬件设备信息目录中建立包括所述虚拟串口节点名称与节点地址的链接目标文件,所述链接目标文件用于在所述USB设备再次连接于USB接口时,为所述USB接口与所述串口节点建立映射。
在本公开实施例中,所述USB接口转串口映射装置可以应用于Linux操作系统。
在本公开实施例中,所述USB接口可以对应一个或多个串口。当所述USB接口对应多个串口时,所述USB接口可以连接于USB设备,以将所述USB设备的信息自多个串口输出,从而提高信息传输效率。
在本公开实施例中,所述USB接口转串口映射方法可应用于集线器,所述集线器HUB可以包括多个USB接口,以及多个串口。在本公开的一个具体实施方式中,所述集线器可以包括4个USB接口,12个串口。在本公开实施例中,所述USB设备首次连接于USB接口时,可以通过open、read等可移植操作系统接口(Portable Operating System Interface,POSIX)文件接口对系统中配置文件的内容进行读取,并对所述配置文件中的JSON格式数据进行解析后,获取为该USB接口分配的串口节点的节点地址。例如,若USB接口的地址是基于USBHUB在Linux系统的地址规则分配的,则从解析得到的数据/sys/bus/usb/devices/1-1.4:1.2可知,USB总线1上的HUB的第4个端口的第2个接口,是为当前USB接口分配的串口节点的节点地址。
在本公开实施例中,在获取了所述为当前USB接口分配的串口节点的节点地址后,可以为各串口节点设置虚拟串口节点名称。
相关技术中,在Linux操作系统中,每次USB设备连接于USB接口时,系统均会为每个串口节点自动生成一个临时节点名称,例如为节点地址为/sys/bus/usb/devices/1-1.3:1.0的串口节点生成临时节点名称ttyACM2,为节点地址为/sys/bus/usb/devices/1-1.3:1.2的串口节点生成临时节点名称ttyACM3,为节点地址为/sys/bus/usb/devices/1-1.3:1.4的串口节点生成临时节点名称ttyACM4。这里的临时节点名称ttyACM2、ttyACM3和ttyACM4与节点地址并不是一一对应的,也就是说,当USB设备断电后重新上电时,或者USB设备进行了热插拔时,节点地址为/sys/bus/usb/devices/1-1.3:1.0的串口节点的临时节点名称可能变为ttyACM3,此时无法根据所述临时节点名称建立串口节点和USB接口之间的映射,需要对串口节点进行遍历以获取正确的临时节点名称。
鉴于此,本公开实施例中为各串口节点设置了与各串口节点的节点地址一一对应虚拟串口节点名称。例如,为节点地址为/sys/bus/usb/devices/1-1.3:1.0的串口节点设置虚拟串口节点名称为ttyPLC0,为节点地址为/sys/bus/usb/devices/1-1.3:1.2的串口节点设置虚拟串口节点名称为ttyPLC1,为节点地址为/sys/bus/usb/devices/1-1.3:1.4的串口节点设置虚拟串口节点名称为ttyPLC2。当USB设备断电后重新上电时,或者USB设备进行了热插拔时,节点地址为/sys/bus/usb/devices/1-1.3:1.0的串口节点的虚拟串口节点名称不会发生变化,仍然是ttyPLC0,同样地,节点地址为/sys/bus/usb/devices/1-1.3:1.2的串口节点的虚拟串口节点名称始终是ttyPLC1,节点地址为/sys/bus/usb/devices/1-1.3:1.4的串口节点的虚拟串口节点名称始终是ttyPLC2。采用这种方式,获得了与串口节点的地址一一对应、保持不变的虚拟串口节点名称。
在本公开实施例中,在为各串口节点设置虚拟串口节点名称后,可以在硬件设备信息目录中建立所述虚拟串口节点名称与节点地址的映射。具体地,可以在所述硬件设备信息目录中为各串口节点建立链接目标文件,所述链接目标文件的文件名可以包括对应串口节点的虚拟串口节点名称,所述链接目标文件中可以包括对应串口节点的节点地址。
在本公开实施例中,在硬件设备信息目录中完成所述虚拟串口节点名称与节点地址的映射的建立后,还可以在所述配置文件中添加各串口节点的所述虚拟串口节点名称。仍然以上述节点地址为/sys/bus/usb/devices/1-1.3:1.0、/sys/bus/usb/devices/1-1.3:1.2和/sys/bus/usb/devices/1-1.3:1.4,虚拟串口节点名称为ttyPLC0、ttyPLC1和ttyPLC2为例,此时配置文件中可以用如下方式描述:
{
“name”: ”HPLC”,
“type”: ”usb”,
“enable”: 1,
“add”: “/sys/bus/usb/devices/1-1.3”,
“remove”: “remove@/devices/platform/soc/fotg210_hcd.1/usb1/1-1/1-1.3/1-1.3”,
“link”: [
“/dev/ttyPLC0”,
“/dev/ttyPLC1”,
“/dev/ttyPLC2”
]
}
在本公开实施例中,在所述USB设备再次连接于USB接口时,可以获取为所述USB接口分配的所述串口节点的虚拟串口节点名称,以为所述USB接口与所述串口节点建立映射。其中,所述USB设备再次连接于USB接口可以包括,所述USB设备断电后重新上电,再次连接于所述USB接口;或者,所述USB设备在热插拔后再次连接于所述USB接口。
在本公开实施例中,可以自所述配置文件中获取为所述USB接口分配的所述串口节点的虚拟串口节点名称,然后根据所述串口节点的虚拟串口节点名称自所述硬件设备信息目录中获取所述串口节点的链接目标文件,最后根据所述链接目标文件建立所述USB接口与所述串口节点的映射。具体地,所述链接目标文件中保存了各串口节点的节点地址的路径信息,且所述链接目标文件的文件名包括所述串口节点的虚拟串口节点名称,因此,在获取了相应串口节点的虚拟串口节点名称后,根据所述虚拟串口节点名称即可得到对应的链接目标文件,由所述链接目标文件中包含的串口节点的节点地址即可自动完成USB接口与串口的映射。
在本公开实施例中,当所述方法应用于集线器HUB时,所述集线器HUB中的应用程序可以通过接收内核发送的消息识别连接于USB接口的USB设备的设备特征,进而确定为所述USB接口分配的串口节点;或者,所述集线器HUB中的应用程序还可以对USB设备的设备地址持续进行扫描以确定有USB设备接入,进而识别所述USB设备的设备特征,确定为所述USB接口分配的串口节点。其中,所述USB设备的设备特征是指能够标识USB设备的特征,所述USB设备的设备特征可以包括设备地址,例如1个4G设备在HUB第一个接口,另一个4G在HUB第2个接口,HPLC设备在HUB第三个接口。
根据本公开实施例的技术方案,通过对为USB接口分配的串口节点设置虚拟串口节点名称,在硬件设备信息目录中建立虚拟串口节点名称与节点地址的映射,并在配置文件中记录各串口节点的虚拟串口节点名称,从而基于虚拟串口节点名称为USB接口与串口节点建立映射。采用这种方式,无需遍历各串口节点即可快速实现USB接口与串口节点间的映射连接,速度快效率高,且在热插拔等串口节点编号可能发生变化的情况下,也能保证USB设备连接正确的串口,提高了可靠性。
图3示出根据本公开实施例的集线器HUB的结构框图。
如图3所示,所述集线器HUB 300包括上述USB接口转串口映射装置200。
图4示出根据本公开实施例的电子设备的结构框图。
如图4所示,所述电子设备包括存储器和处理器,其中,存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现根据本公开的实施例的USB接口转串口映射方法。
在本公开实施例中,所述USB接口转串口映射方法包括:
在USB设备首次连接于USB接口时,自配置文件中获取为所述USB接口分配的串口节点的节点地址;
为所述串口节点设置虚拟串口节点名称,所述虚拟串口节点名称与所述节点地址一一对应;
在硬件设备信息目录中建立包括所述虚拟串口节点名称与节点地址的链接目标文件,其中,所述链接目标文件用于在所述USB设备再次连接于USB接口时,为所述USB接口与所述串口节点建立映射。
在本公开实施例中,所述方法应用于Linux系统。
在本公开实施例中,所述自配置文件中获取为所述USB接口分配的串口节点的节点地址,包括:
通过POSIX文件接口读取所述配置文件,对所述配置文件中的JSON格式数据进行解析后,获取为所述USB接口分配的串口节点的节点地址。
在本公开实施例中,所述USB接口再次连接于USB设备,包括:
所述USB设备断电后重新上电,再次连接于所述USB接口;或者
所述USB设备在热插拔后再次连接于所述USB接口。
在本公开实施例中,所述为所述USB接口与所述串口节点建立映射,包括:
在USB接口首次连接于USB设备,并在硬件设备信息目录中建立包括所述虚拟串口节点名称与节点地址的链接目标文件后,在所述配置文件中添加各串口节点的所述虚拟串口节点名称;
在所述USB接口再次连接于USB设备时,自所述配置文件获取为所述USB接口分配的所述串口节点的节点名称。
在本公开实施例中,所述为所述USB接口与所述串口节点建立映射,还包括:
根据获取到的串口节点的虚拟串口节点名称,自所述硬件设备信息目录中获取所述串口节点的链接目标文件;
根据所述链接目标文件建立所述USB接口与所述串口节点的映射。
在本公开实施例中,所述为所述USB接口与所述串口节点建立映射,还包括:
所述链接目标文件中的所述虚拟串口节点名称和节点地址一起指向所述串口节点的软链接;
基于所述软链接建立所述USB接口与所述串口节点的映射。
在本公开实施例中,所述方法应用于集线器HUB,还包括:
所述集线器HUB中的应用程序通过接收内核发送的消息识别连接于USB接口的USB设备的设备特征,进而确定为所述USB接口分配的串口节点;或者
所述集线器HUB中的应用程序对USB设备的设备地址持续进行扫描以确定有USB设备接入,进而识别所述USB设备的设备特征,确定为所述USB接口分配的串口节点。
根据本公开实施例的技术方案,通过对为USB接口分配的串口节点设置节点名称,在硬件设备信息目录中建立节点名称与节点地址的映射,并在配置文件中记录各串口节点的节点名称,从而基于节点名称为USB接口与串口节点建立映射。采用这种方式,无需遍历各串口节点即可快速实现USB接口与串口节点间的映射连接,速度快效率高,且在热插拔等串口节点编号可能发生变化的情况下,也能保证USB设备连接正确的串口,提高了可靠性。
本公开实施例还提供一种芯片,所述芯片包括本公开实施例提供的电子设备。
图5示出适于用来实现根据本公开实施例的方法的计算机系统的结构示意图。
如图5所示,计算机系统包括处理单元,其可以根据存储在只读存储器(ROM)中的程序或者从存储部分加载到随机访问存储器(RAM)中的程序而执行上述实施例中的各种方法。在RAM中,还存储有计算机系统操作所需的各种程序和数据。处理单元、ROM以及RAM通过总线彼此相连。输入/输出(I/O)接口也连接至总线。
以下部件连接至I/O接口:包括键盘、鼠标等的输入部分;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分;包括硬盘等的存储部分;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分。通信部分经由诸如因特网的网络执行通信过程。驱动器也根据需要连接至I/O接口。可拆卸介质,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器上,以便于从其上读出的计算机程序根据需要被安装入存储部分。其中,所述处理单元可实现为CPU、GPU、TPU、FPGA、NPU等处理单元。
特别地,根据本公开的实施例,上文描述的方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行上述方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过可编程硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中电子设备或计算机系统中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中电子设备或计算机系统中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (20)
1.一种USB接口转串口映射方法,其特征在于,包括:
在USB设备首次连接于USB接口时,自配置文件中获取为所述USB接口分配的串口节点的节点地址;
为所述串口节点设置虚拟串口节点名称,所述虚拟串口节点名称与所述节点地址一一对应;
在硬件设备信息目录中建立包括所述虚拟串口节点名称与节点地址的链接目标文件;
其中,所述链接目标文件用于在所述USB设备再次连接于USB接口时,为所述USB接口与所述串口节点建立映射。
2.根据权利要求1所述的方法,其特征在于,所述方法应用于Linux系统。
3.根据权利要求2所述的方法,其特征在于,所述自配置文件中获取为所述USB接口分配的串口节点的节点地址,包括:
通过POSIX文件接口读取所述配置文件,对所述配置文件中的JSON格式数据进行解析后,获取为所述USB接口分配的串口节点的节点地址。
4.根据权利要求1所述的方法,其特征在于,所述USB接口再次连接于USB设备,包括:
所述USB设备断电后重新上电,再次连接于所述USB接口;或者
所述USB设备在热插拔后再次连接于所述USB接口。
5.根据权利要求1所述的方法,其特征在于,所述为所述USB接口与所述串口节点建立映射,包括:
在USB接口首次连接于USB设备,并在硬件设备信息目录中建立包括所述虚拟串口节点名称与节点地址的链接目标文件后,在所述配置文件中添加各串口节点的所述虚拟串口节点名称;
在所述USB接口再次连接于USB设备时,自所述配置文件获取为所述USB接口分配的所述串口节点的虚拟串口节点名称。
6.根据权利要求5所述的方法,其特征在于,所述为所述USB接口与所述串口节点建立映射,还包括:
根据获取到的串口节点的虚拟串口节点名称,自所述硬件设备信息目录中获取所述串口节点的链接目标文件;
根据所述链接目标文件建立所述USB接口与所述串口节点的映射。
7.根据权利要求6 所述的方法,其特征在于,所述为所述USB接口与所述串口节点建立映射,还包括:
所述链接目标文件中的所述虚拟串口节点名称和节点地址一起指向所述串口节点的软链接;
基于所述软链接建立所述USB接口与所述串口节点的映射。
8.根据权利要求1所述的方法,其特征在于,所述方法应用于集线器HUB,还包括:
所述集线器HUB中的应用程序通过接收内核发送的消息识别连接于USB接口的USB设备的设备特征,进而确定为所述USB接口分配的串口节点;或者
所述集线器HUB中的应用程序对USB设备的设备地址持续进行扫描以确定有USB设备接入,进而识别所述USB设备的设备特征,确定为所述USB接口分配的串口节点。
9.一种USB接口转串口映射装置,其特征在于,包括:
第一获取单元,被配置为在USB设备首次连接于USB接口时,自配置文件中获取为所述USB接口分配的串口节点的节点地址;
设置单元,被配置为为所述串口节点设置虚拟串口节点名称,所述虚拟串口节点名称与所述节点地址一一对应;
映射单元,被配置为在硬件设备信息目录中建立包括所述虚拟串口节点名称与节点地址的链接目标文件,所述链接目标文件用于在所述USB设备再次连接于USB接口时,为所述USB接口与所述串口节点建立映射。
10.根据权利要求9所述的装置,其特征在于,所述装置应用于Linux系统。
11.根据权利要求10所述的装置,其特征在于,所述自配置文件中获取为所述USB接口分配的串口节点的节点地址,包括:
通过POSIX文件接口读取所述配置文件,对所述配置文件中的JSON格式数据进行解析后,获取为所述USB接口分配的串口节点的节点地址。
12.根据权利要求9所述的装置,其特征在于,USB接口再次连接于USB设备,包括:
所述USB设备断电后重新上电,再次连接于所述USB接口;或者
所述USB设备在热插拔后再次连接于所述USB接口。
13.根据权利要求9所述的装置,其特征在于,所述为所述USB接口与所述串口节点建立映射,包括:
在USB接口首次连接于USB设备,并在硬件设备信息目录中建立包括所述虚拟串口节点名称与节点地址的链接目标文件后,在所述配置文件中添加各串口节点的所述虚拟串口节点名称;
在所述USB接口再次连接于USB设备时,自所述配置文件获取为所述USB接口分配的所述串口节点的虚拟串口节点名称。
14.根据权利要求13所述的装置,其特征在于,所述为所述USB接口与所述串口节点建立映射,还包括:
根据获取到的串口节点的虚拟串口节点名称,自所述硬件设备信息目录中获取所述串口节点的链接目标文件;
根据所述链接目标文件建立所述USB接口与所述串口节点的映射。
15.根据权利要求14所述的装置,其特征在于,所述为所述USB接口与所述串口节点建立映射,还包括:
所述链接目标文件中的所述虚拟串口节点名称和节点地址一起指向所述串口节点的软链接;
基于所述软链接建立所述USB接口与所述串口节点的映射。
16.根据权利要求9所述的装置,其特征在于,所述装置应用于集线器HUB,还包括:
所述集线器HUB中的应用程序通过接收内核发送的消息识别连接于USB接口的USB设备的设备特征,进而确定为所述USB接口分配的串口节点;或者
所述集线器HUB中的应用程序对USB设备的设备地址持续进行扫描以确定有USB设备接入,进而识别所述USB设备的设备特征,确定为所述USB接口分配的串口节点。
17.一种集线器HUB,其特征在于,
所述集线器HUB包括如权利要求9-16中任一项所述的USB接口转串口映射装置。
18.一种电子设备,其特征在于,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求1-8中任一项所述的方法步骤。
19.一种芯片,其特征在于,
所述芯片包括如权利要求18所述的电子设备。
20.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,该计算机指令被处理器执行时实现权利要求1-8中任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211304448.3A CN115374028B (zh) | 2022-10-24 | 2022-10-24 | Usb接口转串口映射方法、装置、集线器、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211304448.3A CN115374028B (zh) | 2022-10-24 | 2022-10-24 | Usb接口转串口映射方法、装置、集线器、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115374028A true CN115374028A (zh) | 2022-11-22 |
CN115374028B CN115374028B (zh) | 2023-01-20 |
Family
ID=84072795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211304448.3A Active CN115374028B (zh) | 2022-10-24 | 2022-10-24 | Usb接口转串口映射方法、装置、集线器、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115374028B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160192417A1 (en) * | 2014-12-26 | 2016-06-30 | Texas Instruments Incorporated | Systems and Methods of Wireless USB Service Discovery |
CN113608790A (zh) * | 2021-07-14 | 2021-11-05 | 深圳市科陆电子科技股份有限公司 | 基于Linux系统的串口设备自适配管理方法、系统及存储介质 |
CN114896188A (zh) * | 2022-04-26 | 2022-08-12 | 深圳市科陆电子科技股份有限公司 | 一种usb设备网络共享自动适配的方法及系统 |
-
2022
- 2022-10-24 CN CN202211304448.3A patent/CN115374028B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160192417A1 (en) * | 2014-12-26 | 2016-06-30 | Texas Instruments Incorporated | Systems and Methods of Wireless USB Service Discovery |
CN113608790A (zh) * | 2021-07-14 | 2021-11-05 | 深圳市科陆电子科技股份有限公司 | 基于Linux系统的串口设备自适配管理方法、系统及存储介质 |
CN114896188A (zh) * | 2022-04-26 | 2022-08-12 | 深圳市科陆电子科技股份有限公司 | 一种usb设备网络共享自动适配的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115374028B (zh) | 2023-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108768730B (zh) | 用于操作智能网卡的方法和装置 | |
US9348771B1 (en) | Cloud-based instrument driver system | |
CN106326088B (zh) | 实现构建测试对象的方法、装置及业务配置测试的装置 | |
US20180212924A1 (en) | Method for ascertaining an ip address and a mac address of a unit under test mounted in a rack server | |
CN112187574A (zh) | 使用虚拟机进行网络压力测试的方法、系统和存储介质 | |
CN114024853A (zh) | 一种裸金属节点的硬件信息收集方法、系统及相关组件 | |
CN114860272A (zh) | 一种操作系统安装方法、计算设备及存储介质 | |
CN105357267A (zh) | 一种获取服务器信息的方法、装置及系统 | |
CN109684148B (zh) | 一种基于arinc653的机载嵌入式软件虚拟总线通信构建方法 | |
CN115374028B (zh) | Usb接口转串口映射方法、装置、集线器、设备和介质 | |
CN103678058A (zh) | 硬件检测系统及方法 | |
WO2024113884A1 (zh) | 外接设备的资源分配方法、装置、服务器及存储介质 | |
CN109120433B (zh) | 用于容器化部署主机的方法和装置 | |
CN112099902A (zh) | 虚拟机的网络适配器配置方法、装置、电子装置和存储介质 | |
CN116483470A (zh) | 一种获取配置信息的方法、电子设备及介质 | |
CN114070889B (zh) | 配置方法、流量转发方法、设备、存储介质及程序产品 | |
CN115933591A (zh) | 一种控制器诊断方法、装置、设备和存储介质 | |
CN110327626B (zh) | 虚拟服务器创建方法及装置 | |
CN111324374B (zh) | 基于应用性能管理系统的应用程序的注册方法和装置 | |
CN117312183B (zh) | 一种内存容量调整方法、装置、电子设备及存储介质 | |
CN104683178A (zh) | 一种相同ip地址多dut的测试方法及系统 | |
CN115473760B (zh) | 数据传输方法及装置、终端设备、计算机可读存储介质 | |
CN114640652B (zh) | 一种信息处理方法及装置 | |
CN117251297B (zh) | 一种设备分配方法及电子设备和存储介质 | |
CN116205199B (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 |