CN106021136A - 一种基于Linux或Unix内核操作系统的串口映射方法及装置 - Google Patents
一种基于Linux或Unix内核操作系统的串口映射方法及装置 Download PDFInfo
- Publication number
- CN106021136A CN106021136A CN201610304975.2A CN201610304975A CN106021136A CN 106021136 A CN106021136 A CN 106021136A CN 201610304975 A CN201610304975 A CN 201610304975A CN 106021136 A CN106021136 A CN 106021136A
- Authority
- CN
- China
- Prior art keywords
- serial
- list
- pointer
- logic
- physical
- 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
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
-
- 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
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
本发明公开了一种基于Linux或Unix内核操作系统的串口映射方法,包括如下步骤:从基本输入输出系统(BIOS)获取第一串口列表;其中,所述第一串口列表存储了面板的至少一个物理串口的串口信息;从操作系统获取第二串口列表;其中,所述第二串口列表存储了所述操作系统的至少一个逻辑串口的串口信息;根据所述串口信息对所述第一串口列表的物理串口和第二串口列表中的逻辑串口进行匹配,生成所述第一串口列表与所述第二串口列表的串口映射文件。本发明还提供一种基于Linux或Unix内核操作系统的串口映射装置,可在不需要人为干涉的情况下自动生成描述物理串口与逻辑串口映射关系的串口映射文件,提高了识别匹配的效率和准确率。
Description
技术领域
本发明涉及串口识别领域,尤其涉及一种基于Linux或Unix内核操作系统的串口映射方法及装置。
背景技术
Linux系统是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统,它能运行主要的UNIX工具软件、应用程序和网络协议,继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。在Linux系统下接入外部设备时,需要通过串口进行通信,然而Linux系统下的逻辑串口的顺序可能与面板的物理串口的顺序可能不一致,导致无法正常通信。
现有的解决方案主要是利用人工进行匹配。例如,一种方法是将硬件设备固定接入到面板上的某个物理串口,然后在应用软件中根据硬件设备特有的通信指令特性穷举每个串口进行识别;另一种方法是在应用软件固定打开某个串口的端口链接,通过人为方式切换每个物理串口,从而找到对应的物理串口。但人工匹配的方法由于需要人为的参与,容易导致效率低下、错误率高的问题,且由于需要固定的硬件设备和特定的识别辅助软件的支持,也会额外增加成本。
发明内容
针对上述问题,本发明的目的在于提供一种串口映射方法、装置及终端,可实现物理串口与逻辑串口的自动映射。
本发明提供了一种串口映射方法,包括如下步骤:
从基本输入输出系统(BIOS)获取第一串口列表;其中,所述第一串口列表存储了面板的至少一个物理串口的串口信息;
从基于Linux或Unix内核的操作系统获取第二串口列表;其中,所述第二串口列表存储了所述操作系统的至少一个逻辑串口的串口信息;
根据所述串口信息对所述第一串口列表的物理串口和第二串口列表中的逻辑串口进行匹配,生成所述第一串口列表与所述第二串口列表的串口映射文件,以使所述操作系统在检测到外部设备接入时,根据所述串口映射文件及所述外部设备当前接入的物理串口获取映射的逻辑串口,并根据与所述逻辑串口对应的程序与所述外部设备进行通信。
优选地,所述从基本输入输出系统获取第一串口列表具体为:通过在用户层调用中断指令,从基本输入输出系统获取第一串口列表;所述串口信息包括收发器类型、中断号及端口地址。
优选地,所述根据所述串口信息对所述第一串口列表的物理串口和第二串口列表中的逻辑串口进行匹配,生成所述第一串口列表与所述第二串口列表的串口映射文件,具体包括:
获取为所述第一串口列表配置的第一指针当前指向的物理串口的串口信息;
获取为所述第二串口列表配置的第二指针当前指向的逻辑串口的串口信息;
根据所述第一指针当前指向的物理串口的串口信息及所述第二指针当前指向的逻辑串口的串口信息,判断所述物理串口与所述逻辑串口是否匹配;
若不匹配,则在确定所述第二指针当前指向的逻辑串口不位于所述第二串口列表的列表末尾时,控制所述第二指针移动到位于当前指向的所述逻辑串口之后的下一个逻辑串口;
若匹配,则记录所述物理串口与所述逻辑串口的映射关系,并判断所述第一指针当前指向的物理串口是否位于所述第一串口列表的列表末尾;
若否,则控制所述第一指针移动到位于当前指向的所述物理串口之后的下一个物理串口,并在所述第二串口列表中删除所述第二指针当前指向的逻辑串口后,控制所述第二指针指向所述第二串口列表内的第一个逻辑串口;
若是,则根据所有已记录的映射关系,生成所述第一串口列表与所述第二串口列表的串口映射文件。
优选地,所述根据所述第一指针当前指向的物理串口的串口信息及所述第二指针当前指向的逻辑串口的串口信息,判断所述物理串口与所述逻辑串口是否匹配,具体包括:
根据哈希算法及所述第一指针当前指向的物理串口的串口信息生成第一哈希值;
根据哈希算法及所述第二指针当前指向的逻辑串口的串口信息生成第二哈希值;
根据所述第一哈希值及所述第二哈希值判断所述物理串口与所述逻辑串口是否匹配。
优选地,还包括:
在确定所述第二指针当前指向的逻辑串口位于所述第二串口列表的列表末尾时,控制所述第一指针移动到位于当前指向的所述物理串口之后的下一个物理串口,并控制所述第二指针指向所述第二串口列表内的第一个逻辑串口。
本发明还提供一种基于Linux或Unix内核操作系统的串口映射装置,包括:
第一列表获取单元,用于从基本输入输出系统获取第一串口列表;其中,所述第一串口列表存储了面板的至少一个物理串口的串口信息;
第二列表获取单元,用于从基于Linux或Unix内核的操作系统获取第二串口列表;其中,所述第二串口列表存储了所述操作系统的至少一个逻辑串口的串口信息;
匹配单元,用于根据所述串口信息对所述第一串口列表的物理串口和第二串口列表中的逻辑串口进行匹配,生成所述第一串口列表与所述第二串口列表的串口映射文件,以使所述操作系统在检测到外部设备接入时,根据所述串口映射文件及所述外部设备当前接入的物理串口获取映射的逻辑串口,并根据与所述逻辑串口对应的程序与所述外部设备进行通信。
优选地,所述第一列表获取单元具体用于,通过在用户层调用中断指令,从基本输入输出系统获取第一串口列表;所述串口信息包括收发器类型、中断号及端口地址。
优选地,所述匹配单元具体包括第一指针模块、第二指针模块、串口匹配模块,指针处理模块、映射关系记录模块及映射文件生成模块,其中:
所述第一指针模块,用于获取为所述第一串口列表配置的第一指针当前指向的物理串口的串口信息;
所述第二指针模块,用于获取为所述第二串口列表配置的第二指针当前指向的逻辑串口的串口信息;
所述串口匹配模块,用于根据所述第一指针当前指向的物理串口的串口信息及所述第二指针当前指向的逻辑串口的串口信息,判断所述物理串口与所述逻辑串口是否匹配;若不匹配,则通知所述指针处理模块,若匹配,则通知所述映射关系记录模块;
所述指针处理模块,用于在确定所述第二指针当前指向的逻辑串口不位于所述第二串口列表的列表末尾时,控制所述第二指针移动到位于当前指向的所述逻辑串口之后的下一个逻辑串口;
所述映射关系记录模块,用于记录所述物理串口与所述逻辑串口的映射关系,并判断所述第一指针当前指向的物理串口是否位于所述第一串口列表的列表末尾;若否,则通知所述指针处理模块,若是,则通知所述映射文件生成模块;
所述指针处理模块,还用于控制所述第一指针移动到位于当前指向的所述物理串口之后的下一个物理串口,并在所述第二串口列表中删除所述第二指针当前指向的逻辑串口后,控制所述第二指针指向所述第二串口列表内的第一个逻辑串口;
所述映射文件生成模块,用于根据所述映射关系记录模块记录的映射关系,生成所述第一串口列表与所述第二串口列表的串口映射文件。
优选地,所述串口匹配模块具体包括:
第一哈希值计算子模块,用于根据哈希算法及所述第一指针当前指向的物理串口的串口信息生成第一哈希值;
第二哈希值计算子模块,用于根据哈希算法及所述第二指针当前指向的逻辑串口的串口信息生成第二哈希值;
哈希值匹配子模块,用于根据所述第一哈希值及第二哈希值判断所述物理串口与所述逻辑串口是否匹配。
优选地,所述指针处理模块,还用于在确定所述第二指针当前指向的逻辑串口位于所述第二串口列表的列表末尾时,控制所述第一指针移动到位于当前指向的所述物理串口之后的下一个物理串口,并控制所述第二指针指向所述第二串口列表内的第一个逻辑串口。
本发明提供的基于Linux或Unix内核操作系统的串口映射方法及装置,通过对从基本输入输出系统获取的第一串口列表内的物理串口和从操作系统下获取的第二串联列表内的逻辑串口进行自动匹配,从而在不需要人为干涉的情况下自动生成描述物理串口与逻辑串口映射关系的串口映射文件,提高了识别匹配的效率和准确率。此外,由于不需要专门的外部设备和辅助软件,还同时减低了成本。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的基于Linux或Unix内核操作系统的串口映射方法的流程示意图。
图2是本发明实施例提供的第一串口列表的数据结构图。
图3是本发明实施例提供的第二串口列表的数据结构图。
图4是本发明实施例提供的生成串口映射文件的流程示意图。
图5是本发明实施例提供的基于Linux或Unix内核操作系统的串口映射装置的结构示意图。
图6是图5所示的第一列表单元获取第一串口列表的示意图。
图7是图5所示的匹配单元的结构示意图。
图8是图7所示的串口匹配模块的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种基于Linux或Unix内核操作系统的串口映射方法及装置,用于自动生成物理串口与逻辑串口的映射关系,实现串口的自动识别和匹配,以下分别进行详细描述。
请参阅图1,图1是本发明实施例提供的基于Linux或Unix内核操作系统的串口映射方法的流程示意图。所述串口映射方法可由基于Linux或Unix内核操作系统的串口映射装置(以下称为串口映射装置)来执行,并至少包括如下步骤:
S101,从基本输入输出系统(BIOS)获取第一串口列表;其中,所述第一串口列表存储了面板的至少一个物理串口的串口信息。
请一并参阅图2,具体的,在本发明实施例中,所述串口映射装置可通过在用户层调用中断指令,并将所述中断指令发送给所述基本输入输出系统(BasicInput Output System,BIOS),所述BIOS在接收到所述中断指令后,向所述串口映射装置返回第一串口列表,其中,所述第一串口列表内按顺序存储了面板的所有物理串口及每个物理串口的串口信息,所述物理串口的串口信息可包括收发器类型、中断号及端口地址。
S102,从基于Linux或Unix内核的操作系统获取第二串口列表;其中,所述第二串口列表存储了所述操作系统的至少一个逻辑串口的串口信息。
请一并参阅图3,具体地,在本发明实施例中,所述串口映射装置在操作系统的用户层输入特定指令读取第二串口列表,其中,所述第二串口列表存储了所述操作系统的所有逻辑串口的串口信息,同样的,所述逻辑串口的串口信息可包括收发器类型、中断号及端口地址。
在本发明实施例中,所述操作系统可为Linux系统,则一般地,所述特定指令可为/proc/tty/driver/serial。然而应当理解的是,在本发明的其他实施例中,所述操作系统还可为其他操作系统,如UNIX系统等,具体的指令也可根据实际的系统配置进行指定,本发明不做具体限定。
S103,根据所述串口信息对所述第一串口列表的物理串口和第二串口列表中的逻辑串口进行匹配,生成所述第一串口列表与所述第二串口列表的串口映射文件,以使所述操作系统在检测到外部设备接入时,根据所述串口映射文件及所述外部设备当前接入的物理串口获取映射的逻辑串口,并根据与所述逻辑串口对应的程序与所述外部设备进行通信。
在本发明实施例中,所述串口映射装置在获得所述第一串口列表和第二串口列表后,根据所述串口信息对所述第一串口列表的物理串口和第二串口列表中的逻辑串口进行匹配,并根据匹配的结果生成所述第一串口列表与所述第二串口列表的串口映射文件。
请一并参阅图4,具体地,可包括如下步骤:
S1031,获取为所述第一串口列表配置的第一指针当前指向的物理串口的串口信息。
在本发明实施例中,所述串口映射装置可定义一个第一指针,所述第一指针用于指向所述第一串口列表内的物理串口,并可在所述第一串口列表内移动,以指向不同的物理串口,其中,所述第一指针指向一个物理串口时,所述串口映射装置将获取该物理串口的串口信息。
S1032,获取为所述第二串口列表配置的第二指针当前指向的逻辑串口的串口信息。
在本发明实施例中,同样的,所述串口映射装置还可定义一个第二指针,所述第二指针用于指向所述第二串口列表内的逻辑串口,并可在所述第二串口列表内移动,以指向不同的逻辑串口,其中,所述第二指针指向一个逻辑串口时,所述串口映射装置将获取该逻辑串口的串口信息。
S1033,根据所述第一指针当前指向的物理串口的串口信息及所述第二指针当前指向的逻辑串口的串口信息,判断所述物理串口与所述逻辑串口是否匹配。
在一个实施例中,所述串口映射装置可判断第一指针当前指向的物理串口的串口信息及所述第二指针当前指向的逻辑串口的串口信息是否完成一致,例如,依次判断所述物理串口的收发器类型、中断号及端口地址是否与所述逻辑串口的收发器类型、中断号及端口地址一致,若全部一致,则所述物理串口与所述逻辑串口匹配,而只要有一个串口信息不一致,则所述物理串口与所述逻辑串口不匹配。
在另一个实施例中,也可先根据哈希算法和所述串口信息生成一个哈希值,再判断哈希值是否一致来判断所述物理串口与所述逻辑串口是否匹配,由于哈希算法的特性,只有当收发器类型、中断号及端口地址完全一致,得出的哈希值才一致。具体地:
首先,根据哈希算法及所述第一指针当前指向的物理串口的串口信息生成第一哈希值。
然后,根据哈希算法及所述第二指针当前指向的逻辑串口的串口信息生成第二哈希值。
最后,根据所述第一哈希值及所述第二哈希值判断所述物理串口与所述逻辑串口是否匹配。
如此,相比于直接对串口信息进行匹配,简化了匹配的过程,并提高了匹配的可靠性
S1034,若否,则在确定所述第二指针当前指向的逻辑串口不位于所述第二串口列表的列表末尾时,控制所述第二指针移动到位于当前指向的所述逻辑串口之后的下一个逻辑串口。
在本发明实施例中,若所述物理串口与所述逻辑串口不匹配,则所述串口映射装置先确定所述第二指针当前指向的逻辑串口是否位于所述第二串口列表的列表末尾(当所述第二指针向后移动一步后指向NULL时,则代表已经到了所述第二串口列表的列表末尾),如果是,则控制所述第一指针移动到位于当前指向的所述物理串口之后的下一个物理串口,并控制所述第二指针指向所述第二串口列表内的第一个逻辑串口。若否,则所述串口映射装置控制所述第二指针移动到位于当前指向的所述逻辑串口之后的下一个逻辑串口。
S1035,若是,则记录所述物理串口与所述逻辑串口的映射关系,并判断所述第一指针当前指向的物理串口是否位于所述第一串口列表的列表末尾。
在本发明实施例中,若所述物理串口与所述逻辑串口匹配,则所述串口映射装置记录所述物理串口与所述逻辑串口的映射关系,如记录所述物理串口的序号及所述逻辑串口的路径形成的映射关系,例如,映射关系可记录为:物理串口1映射为/dev/COM1,其表示面板上的序号为1的物理串口与操作系统的/dev/COM1的逻辑串口匹配。
在本发明实施例中,在记录所述映射关系后,所述串口映射装置还判断所述第一指针当前指向的物理串口是否位于所述第一串口列表的列表末尾(当所述第一指针向后移动一步后指向NULL时,则代表已经到了所述第一串口列表的列表末尾)。
S1036,若否,则控制所述第一指针移动到位于当前指向的所述物理串口之后的下一个物理串口,并在所述第二串口列表中删除所述第二指针当前指向的逻辑串口后,控制所述第二指针指向所述第二串口列表内的第一个逻辑串口。
在本发明实施例中,若所述串口映射装置判断所述第一指针当前指向的物理串口不是位于所述第一串口列表的列表末尾,则说明所述第一串口列表内尚有物理串口未经过匹配,此时,所述串口映射装置控制所述第一指针移动到位于当前指向的所述物理串口之后的下一个物理串口,并在所述第二串口列表中删除所述第二指针当前指向的逻辑串口后,控制所述第二指针指向所述第二串口列表内的第一个逻辑串口。
S1037,若是,则根据所有已记录的映射关系,生成所述第一串口列表与所述第二串口列表的串口映射文件。
在本发明实施例中,若所述串口映射装置判断所述第一指针当前指向的物理串口位于所述第一串口列表的列表末尾,则说明所述第一串口列表内的所有物理串口均经过匹配,此时,所述串口映射装置根据所有已记录的映射关系,生成所述第一串口列表与所述第二串口列表的串口映射文件。所述串口映射文件为所有物理串口与逻辑串口的映射关系的汇总文件,如此,当有外部设备接入面板上的物理串口时,即可根据所述串口映射文件找到对应的逻辑串口,再根据所述逻辑串口找到对应的程序来实现与所述外部设备进行通信。
综上所述,本发明实施例提供的串口映射方法,通过对从BIOS获取的第一串口列表内的物理串口和从操作系统下获取的第二串联列表内的逻辑串口进行自动匹配,从而在不需要人为干涉的情况下自动生成描述物理串口与逻辑串口映射关系的串口映射文件,提高了识别匹配的效率和准确率。此外,由于不需要专门的外部设备和辅助软件,还同时减低了成本。
下面将对上述提及的基于Linux或Unix内核操作系统的串口映射装置进行详细描述。
请参阅图5,图5是本发明实施例提供的基于Linux或Unix内核操作系统的串口映射装置的结构示意图。所述串口映射装置100包括第一列表获取单元10、第二列表获取单元20及匹配单元30,其中:
所述第一列表获取单元10,用于从基本输入输出系统获取第一串口列表;其中,所述第一串口列表存储了面板的至少一个物理串口的串口信息。
如图6所示,在本发明实施例中,所述第一列表获取单元10可通过在用户层调用中断指令,并将所述中断指令发送给所述基本输入输出系统(Basic InputOutput System,BIOS),所述BIOS在接收到所述中断指令后,向所述第一列表获取单元10返回第一串口列表。
在本发明实施例中,所述串口信息包括收发器类型、中断号及端口地址。
所述第二列表获取单元20,用于从基于Linux或Unix内核操作系统的操作系统获取第二串口列表;其中,所述第二串口列表存储了所述操作系统的至少一个逻辑串口的串口信息。
所述匹配单元30,用于根据所述串口信息对所述第一串口列表的物理串口和第二串口列表中的逻辑串口进行匹配,生成所述第一串口列表与所述第二串口列表的串口映射文件,以使所述操作系统在检测到外部设备接入时,根据所述串口映射文件及外部设备当前接入的物理串口获取映射的逻辑串口,并根据与所述逻辑串口对应的程序与所述外部设备进行通信。
请一并参阅图7,具体地,所述匹配单元30具体包括第一指针模块31、第二指针模块32、串口匹配模块33,指针处理模块34、映射关系记录模块35及映射文件生成模块36,其中:
所述第一指针模块31,用于获取为所述第一串口列表配置的第一指针当前指向的物理串口的串口信息。
所述第二指针模块32,用于获取为所述第二串口列表配置的第二指针当前指向的逻辑串口的串口信息。
所述串口匹配模块33,用于根据所述第一指针当前指向的物理串口的串口信息及所述第二指针当前指向的逻辑串口的串口信息,判断所述物理串口与所述逻辑串口是否匹配;若不匹配,则通知所述指针处理模块34,若匹配,则通知所述映射关系记录模块35。
所述指针处理模块34,用于在确定所述第二指针当前指向的逻辑串口不位于所述第二串口列表的列表末尾时,控制所述第二指针移动到位于当前指向的所述逻辑串口之后的下一个逻辑串口。
所述映射关系记录模块35,用于记录所述物理串口与所述逻辑串口的映射关系,并判断所述第一指针当前指向的物理串口是否位于所述第一串口列表的列表末尾;若否,则通知所述指针处理模块34,若是,则通知所述映射文件生成模块36。
所述指针处理模块34,还用于控制所述第一指针移动到位于当前指向的所述物理串口之后的下一个物理串口,并在所述第二串口列表中删除所述第二指针当前指向的逻辑串口后,控制所述第二指针指向所述第二串口列表内的第一个逻辑串口。
所述映射文件生成模块36,用于根据所述映射关系记录模块记录的映射关系,生成所述第一串口列表与所述第二串口列表的串口映射文件。
请一并参阅图8,优选地,所述串口匹配模块33具体包括:
第一哈希值计算子模块331,用于根据哈希算法及所述第一指针当前指向的物理串口的串口信息生成第一哈希值;
第二哈希值计算子模块332,用于根据哈希算法及所述第二指针当前指向的逻辑串口的串口信息生成第二哈希值;
哈希值匹配子模块333,用于根据所述第一哈希值及第二哈希值判断所述物理串口与所述逻辑串口是否匹配。
本优选实施例中,通过串口信息生成哈希值,再对哈希值进行匹配,简化了匹配的过程,提高了匹配的可靠性。
优选地,所述指针处理模块34,还用于在确定所述第二指针当前指向的逻辑串口位于所述第二串口列表的列表末尾时,控制所述第一指针移动到位于当前指向的所述物理串口之后的下一个物理串口,并控制所述第二指针指向所述第二串口列表内的第一个逻辑串口。
综上所述,本发明实施例提供的串口映射装置100,所述匹配单元30通过对所述第一列表获取单元10从BIOS获取的第一串口列表内的物理串口和所述第二列表获取单元20从操作系统下获取的第二串联列表内的逻辑串口进行自动匹配,从而在不需要人为干涉的情况下自动生成描述物理串口与逻辑串口映射关系的串口映射文件,提高了识别匹配的效率和准确率。此外,由于不需要专门的外部设备和辅助软件,还同时减低了成本。
本发明实施例还提供一种终端,所述终端具有BIOS和操作系统(如Linux系统或UNIX系统),其中,所述终端还包括上述任一实施例所述的串口映射装置100。
本发明实施例提供的终端,所述匹配单元30通过对所述第一列表获取单元10从BIOS获取的第一串口列表内的物理串口和所述第二列表获取单元20从操作系统下获取的第二串联列表内的逻辑串口进行自动匹配,从而在不需要人为干涉的情况下自动生成描述物理串口与逻辑串口映射关系的串口映射文件,提高了识别匹配的效率和准确率。此外,由于不需要专门的外部设备和辅助软件,还同时减低了成本。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可获取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
Claims (10)
1.一种基于Linux或Unix内核操作系统的串口映射方法,其特征在于,包括如下步骤:
从基本输入输出系统(BIOS)获取第一串口列表;其中,所述第一串口列表存储了面板的至少一个物理串口的串口信息;
从基于Linux或Unix内核的操作系统获取第二串口列表;其中,所述第二串口列表存储了所述操作系统的至少一个逻辑串口的串口信息;
根据所述串口信息对所述第一串口列表的物理串口和第二串口列表中的逻辑串口进行匹配,生成所述第一串口列表与所述第二串口列表的串口映射文件,以使所述操作系统在检测到外部设备接入时,根据所述串口映射文件及所述外部设备当前接入的物理串口获取映射的逻辑串口,并根据与所述逻辑串口对应的程序与所述外部设备进行通信。
2.根据权利要求1所述的串口映射方法,其特征在于,所述从基本输入输出系统获取第一串口列表具体为:通过在用户层调用中断指令,从基本输入输出系统获取第一串口列表;所述串口信息包括收发器类型、中断号及端口地址。
3.根据权利要求1或2所述的串口映射方法,其特征在于,所述根据所述串口信息对所述第一串口列表的物理串口和第二串口列表中的逻辑串口进行匹配,生成所述第一串口列表与所述第二串口列表的串口映射文件,具体包括:
获取为所述第一串口列表配置的第一指针当前指向的物理串口的串口信息;
获取为所述第二串口列表配置的第二指针当前指向的逻辑串口的串口信息;
根据所述第一指针当前指向的物理串口的串口信息及所述第二指针当前指向的逻辑串口的串口信息,判断所述物理串口与所述逻辑串口是否匹配;
若不匹配,则在确定所述第二指针当前指向的逻辑串口不位于所述第二串口列表的列表末尾时,控制所述第二指针移动到位于当前指向的所述逻辑串口之后的下一个逻辑串口;
若匹配,则记录所述物理串口与所述逻辑串口的映射关系,并判断所述第一指针当前指向的物理串口是否位于所述第一串口列表的列表末尾;
若否,则控制所述第一指针移动到位于当前指向的所述物理串口之后的下一个物理串口,并在所述第二串口列表中删除所述第二指针当前指向的逻辑串口后,控制所述第二指针指向所述第二串口列表内的第一个逻辑串口;
若是,则根据所有已记录的映射关系,生成所述第一串口列表与所述第二串口列表的串口映射文件。
4.根据权利要求3所述的串口映射方法,其特征在于,所述根据所述第一指针当前指向的物理串口的串口信息及所述第二指针当前指向的逻辑串口的串口信息,判断所述物理串口与所述逻辑串口是否匹配,具体包括:
根据哈希算法及所述第一指针当前指向的物理串口的串口信息生成第一哈希值;
根据哈希算法及所述第二指针当前指向的逻辑串口的串口信息生成第二哈希值;
根据所述第一哈希值及所述第二哈希值判断所述物理串口与所述逻辑串口是否匹配。
5.根据权利要求3所述的串口映射方法,其特征在于,还包括:
在确定所述第二指针当前指向的逻辑串口位于所述第二串口列表的列表末尾时,控制所述第一指针移动到位于当前指向的所述物理串口之后的下一个物理串口,并控制所述第二指针指向所述第二串口列表内的第一个逻辑串口。
6.一种基于Linux或Unix内核操作系统的串口映射装置,其特征在于,包括:
第一列表获取单元,用于从基本输入输出系统获取第一串口列表;其中,所述第一串口列表存储了面板的至少一个物理串口的串口信息;
第二列表获取单元,用于从基于Linux或Unix内核的操作系统获取第二串口列表;其中,所述第二串口列表存储了所述操作系统的至少一个逻辑串口的串口信息;
匹配单元,用于根据所述串口信息对所述第一串口列表的物理串口和第二串口列表中的逻辑串口进行匹配,生成所述第一串口列表与所述第二串口列表的串口映射文件,以使所述操作系统在检测到外部设备接入时,根据所述串口映射文件及所述外部设备当前接入的物理串口获取映射的逻辑串口,并根据与所述逻辑串口对应的程序与所述外部设备进行通信。
7.根据权利要求6所述的串口映射装置,其特征在于,所述第一列表获取单元具体用于,通过在用户层调用中断指令,从基本输入输出系统获取第一串口列表;所述串口信息包括收发器类型、中断号及端口地址。
8.根据权利要求6或7所述的串口映射装置,其特征在于,所述匹配单元具体包括第一指针模块、第二指针模块、串口匹配模块,指针处理模块、映射关系记录模块及映射文件生成模块,其中:
所述第一指针模块,用于获取为所述第一串口列表配置的第一指针当前指向的物理串口的串口信息;
所述第二指针模块,用于获取为所述第二串口列表配置的第二指针当前指向的逻辑串口的串口信息;
所述串口匹配模块,用于根据所述第一指针当前指向的物理串口的串口信息及所述第二指针当前指向的逻辑串口的串口信息,判断所述物理串口与所述逻辑串口是否匹配;若不匹配,则通知所述指针处理模块,若匹配,则通知所述映射关系记录模块;
所述指针处理模块,用于在确定所述第二指针当前指向的逻辑串口不位于所述第二串口列表的列表末尾时,控制所述第二指针移动到位于当前指向的所述逻辑串口之后的下一个逻辑串口;
所述映射关系记录模块,用于记录所述物理串口与所述逻辑串口的映射关系,并判断所述第一指针当前指向的物理串口是否位于所述第一串口列表的列表末尾;若否,则通知所述指针处理模块,若是,则通知所述映射文件生成模块;
所述指针处理模块,还用于控制所述第一指针移动到位于当前指向的所述物理串口之后的下一个物理串口,并在所述第二串口列表中删除所述第二指针当前指向的逻辑串口后,控制所述第二指针指向所述第二串口列表内的第一个逻辑串口;
所述映射文件生成模块,用于根据所述映射关系记录模块记录的映射关系,生成所述第一串口列表与所述第二串口列表的串口映射文件。
9.根据权利要求8所述的串口映射装置,其特征在于,所述串口匹配模块具体包括:
第一哈希值计算子模块,用于根据哈希算法及所述第一指针当前指向的物理串口的串口信息生成第一哈希值;
第二哈希值计算子模块,用于根据哈希算法及所述第二指针当前指向的逻辑串口的串口信息生成第二哈希值;
哈希值匹配子模块,用于根据所述第一哈希值及第二哈希值判断所述物理串口与所述逻辑串口是否匹配。
10.根据权利要求8所述的串口映射装置,其特征在于,所述指针处理模块,还用于在确定所述第二指针当前指向的逻辑串口位于所述第二串口列表的列表末尾时,控制所述第一指针移动到位于当前指向的所述物理串口之后的下一个物理串口,并控制所述第二指针指向所述第二串口列表内的第一个逻辑串口。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610304975.2A CN106021136B (zh) | 2016-05-09 | 2016-05-09 | 一种基于Linux或Unix内核操作系统的串口映射方法及装置 |
PCT/CN2017/083531 WO2017193898A1 (zh) | 2016-05-09 | 2017-05-09 | 一种基于Linux或Unix内核操作系统的串口映射方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610304975.2A CN106021136B (zh) | 2016-05-09 | 2016-05-09 | 一种基于Linux或Unix内核操作系统的串口映射方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106021136A true CN106021136A (zh) | 2016-10-12 |
CN106021136B CN106021136B (zh) | 2019-01-01 |
Family
ID=57098958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610304975.2A Active CN106021136B (zh) | 2016-05-09 | 2016-05-09 | 一种基于Linux或Unix内核操作系统的串口映射方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106021136B (zh) |
WO (1) | WO2017193898A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017193898A1 (zh) * | 2016-05-09 | 2017-11-16 | 广州广电运通金融电子股份有限公司 | 一种基于Linux或Unix内核操作系统的串口映射方法及装置 |
CN109634884A (zh) * | 2018-10-19 | 2019-04-16 | 珠海格力电器股份有限公司 | 通讯端口连接方法和装置 |
CN114201442A (zh) * | 2021-12-14 | 2022-03-18 | 广州通则康威智能科技有限公司 | 串口远程双向通信方法、装置、计算机设备及存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256513B (zh) * | 2020-10-29 | 2023-10-20 | 成都菁蓉联创科技有限公司 | 一种调试串口和数据串口复用的方法、装置和控制器 |
CN113347025A (zh) * | 2021-05-20 | 2021-09-03 | 上海上讯信息技术股份有限公司 | 一种用于运维串口设备的方法与设备 |
CN113740781B (zh) * | 2021-08-30 | 2022-05-24 | 广州文远知行科技有限公司 | 一种接口松动检测方法、装置、交通工具及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110267950A1 (en) * | 2005-05-06 | 2011-11-03 | Orckit Corrigent, Ltd. | Tunnel provisioning with link aggregation and hashing |
CN103049401A (zh) * | 2011-10-17 | 2013-04-17 | 康佳集团股份有限公司 | 一种控制外围串口设备的方法、系统及控制设备 |
CN103294630A (zh) * | 2013-05-07 | 2013-09-11 | 福建鑫诺通讯技术有限公司 | 一种嵌入式linux系统中实现串口多路复用的方法 |
CN103414597A (zh) * | 2013-08-30 | 2013-11-27 | 上海寰创通信科技股份有限公司 | 一种逻辑端口的状态更新系统和方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8700811B2 (en) * | 2010-05-25 | 2014-04-15 | Microsoft Corporation | Virtual machine I/O multipath configuration |
CN103150190B (zh) * | 2013-03-26 | 2016-04-27 | 汉柏科技有限公司 | Linux系统下用户态网卡自动探测及驱动加载的方法 |
CN103793651B (zh) * | 2014-02-22 | 2016-05-25 | 西安电子科技大学 | 基于Xen虚拟化的内核完整性检测方法 |
CN103853683B (zh) * | 2014-03-07 | 2017-09-15 | 山东超越数控电子有限公司 | 一种多串口数据通讯实现方法 |
CN106021136B (zh) * | 2016-05-09 | 2019-01-01 | 广州广电运通金融电子股份有限公司 | 一种基于Linux或Unix内核操作系统的串口映射方法及装置 |
-
2016
- 2016-05-09 CN CN201610304975.2A patent/CN106021136B/zh active Active
-
2017
- 2017-05-09 WO PCT/CN2017/083531 patent/WO2017193898A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110267950A1 (en) * | 2005-05-06 | 2011-11-03 | Orckit Corrigent, Ltd. | Tunnel provisioning with link aggregation and hashing |
CN103049401A (zh) * | 2011-10-17 | 2013-04-17 | 康佳集团股份有限公司 | 一种控制外围串口设备的方法、系统及控制设备 |
CN103294630A (zh) * | 2013-05-07 | 2013-09-11 | 福建鑫诺通讯技术有限公司 | 一种嵌入式linux系统中实现串口多路复用的方法 |
CN103414597A (zh) * | 2013-08-30 | 2013-11-27 | 上海寰创通信科技股份有限公司 | 一种逻辑端口的状态更新系统和方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017193898A1 (zh) * | 2016-05-09 | 2017-11-16 | 广州广电运通金融电子股份有限公司 | 一种基于Linux或Unix内核操作系统的串口映射方法及装置 |
CN109634884A (zh) * | 2018-10-19 | 2019-04-16 | 珠海格力电器股份有限公司 | 通讯端口连接方法和装置 |
CN114201442A (zh) * | 2021-12-14 | 2022-03-18 | 广州通则康威智能科技有限公司 | 串口远程双向通信方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2017193898A1 (zh) | 2017-11-16 |
CN106021136B (zh) | 2019-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106021136A (zh) | 一种基于Linux或Unix内核操作系统的串口映射方法及装置 | |
CN110134587A (zh) | 一种测试方法、测试装置及计算机可读存储介质 | |
CN114139210B (zh) | 一种基于智慧业务的大数据安全威胁处理方法及系统 | |
JP2020182214A (ja) | ブロックチェーンおよびオフチェーン装置の連携のための検証システムおよび方法 | |
CN112597153B (zh) | 一种基于区块链的数据存储方法、装置及存储介质 | |
CN104598380A (zh) | 一种基于控件的自动化测试方法及系统 | |
CN109376078A (zh) | 移动应用的测试方法、终端设备及介质 | |
CN110727740B (zh) | 关联分析方法及装置、计算机设备与可读介质 | |
CN109543891A (zh) | 容量预测模型的建立方法、设备及计算机可读存储介质 | |
CN108614970A (zh) | 病毒程序的检测方法、模型训练方法、装置及设备 | |
CN109298882A (zh) | 接口的管理方法、计算机可读存储介质和终端设备 | |
CN109542857A (zh) | 审计日志存储方法、查询方法、装置及相关设备 | |
WO2021135603A1 (zh) | 意图识别方法、服务器及存储介质 | |
CN105550628B (zh) | 指纹录入方法及装置 | |
CN108733797A (zh) | 文件处理方法及相关装置 | |
CN110442502A (zh) | 一种埋点的方法、装置、设备及存储介质 | |
CN107102950A (zh) | 一种应用程序测试方法和装置 | |
Razouk et al. | Modeling and verification of communication protocols in SARA: The X. 21 interface | |
CN110489242A (zh) | 分布式数据计算方法、装置、终端设备及存储介质 | |
CN106445824A (zh) | 一种基于角色的接口综合性管理系统 | |
CN109491909A (zh) | 一种cpld刷新验证方法、装置、终端及存储介质 | |
CN111738290B (zh) | 图像检测方法、模型构建和训练方法、装置、设备和介质 | |
CN112967138A (zh) | 基于区块链和云计算的信息推送方法及信息推送系统 | |
CN107180133B (zh) | 一种cps建模的方法及装置 | |
CN109828910A (zh) | monkey测试的方法及装置、计算机设备、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |