一种基于Linux或Unix内核操作系统的串口映射方法及装置的制造方法

文档序号:10654491阅读:255来源:国知局
一种基于Linux或Unix内核操作系统的串口映射方法及装置的制造方法
【专利摘要】本发明公开了一种基于Linux或Unix内核操作系统的串口映射方法,包括如下步骤:从基本输入输出系统(BIOS)获取第一串口列表;其中,所述第一串口列表存储了面板的至少一个物理串口的串口信息;从操作系统获取第二串口列表;其中,所述第二串口列表存储了所述操作系统的至少一个逻辑串口的串口信息;根据所述串口信息对所述第一串口列表的物理串口和第二串口列表中的逻辑串口进行匹配,生成所述第一串口列表与所述第二串口列表的串口映射文件。本发明还提供一种基于Linux或Unix内核操作系统的串口映射装置,可在不需要人为干涉的情况下自动生成描述物理串口与逻辑串口映射关系的串口映射文件,提高了识别匹配的效率和准确率。
【专利说明】
一种基于L i nux或Un i x内核操作系统的串口映射方法及装置
技术领域
[0001]本发明涉及串口识别领域,尤其涉及一种基于Linux或Unix内核操作系统的串口映射方法及装置。【背景技术】
[0002]Linux系统是一个基于P0SIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统,它能运行主要的UNIX工具软件、应用程序和网络协议,继承了 Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。在Linux系统下接入外部设备时,需要通过串口进行通信,然而Linux系统下的逻辑串口的顺序可能与面板的物理串口的顺序可能不一致,导致无法正常通信。
[0003]现有的解决方案主要是利用人工进行匹配。例如,一种方法是将硬件设备固定接入到面板上的某个物理串口,然后在应用软件中根据硬件设备特有的通信指令特性穷举每个串口进行识别;另一种方法是在应用软件固定打开某个串口的端口链接,通过人为方式切换每个物理串口,从而找到对应的物理串口。但人工匹配的方法由于需要人为的参与,容易导致效率低下、错误率高的问题,且由于需要固定的硬件设备和特定的识别辅助软件的支持,也会额外增加成本。
【发明内容】

[0004]针对上述问题,本发明的目的在于提供一种串口映射方法、装置及终端,可实现物理串口与逻辑串口的自动映射。
[0005]本发明提供了一种串口映射方法,包括如下步骤:
[0006]从基本输入输出系统(B1S)获取第一串口列表;其中,所述第一串口列表存储了面板的至少一个物理串口的串口信息;
[0007]从基于Linux或Unix内核的操作系统获取第二串口列表;其中,所述第二串口列表存储了所述操作系统的至少一个逻辑串口的串口信息;
[0008]根据所述串口信息对所述第一串口列表的物理串口和第二串口列表中的逻辑串口进行匹配,生成所述第一串口列表与所述第二串口列表的串口映射文件,以使所述操作系统在检测到外部设备接入时,根据所述串口映射文件及所述外部设备当前接入的物理串口获取映射的逻辑串口,并根据与所述逻辑串口对应的程序与所述外部设备进行通信。
[0009]优选地,所述从基本输入输出系统获取第一串口列表具体为:通过在用户层调用中断指令,从基本输入输出系统获取第一串口列表;所述串口信息包括收发器类型、中断号及端口地址。
[0010]优选地,所述根据所述串口信息对所述第一串口列表的物理串口和第二串口列表中的逻辑串口进行匹配,生成所述第一串口列表与所述第二串口列表的串口映射文件,具体包括:
[0011]获取为所述第一串口列表配置的第一指针当前指向的物理串口的串口信息;
[0012]获取为所述第二串口列表配置的第二指针当前指向的逻辑串口的串口信息;
[0013]根据所述第一指针当前指向的物理串口的串口信息及所述第二指针当前指向的逻辑串口的串口信息,判断所述物理串口与所述逻辑串口是否匹配;
[0014]若不匹配,则在确定所述第二指针当前指向的逻辑串口不位于所述第二串口列表的列表末尾时,控制所述第二指针移动到位于当前指向的所述逻辑串口之后的下一个逻辑串口;
[0015]若匹配,则记录所述物理串口与所述逻辑串口的映射关系,并判断所述第一指针当前指向的物理串口是否位于所述第一串口列表的列表末尾;
[0016]若否,则控制所述第一指针移动到位于当前指向的所述物理串口之后的下一个物理串口,并在所述第二串口列表中删除所述第二指针当前指向的逻辑串口后,控制所述第二指针指向所述第二串口列表内的第一个逻辑串口;
[0017]若是,则根据所有已记录的映射关系,生成所述第一串口列表与所述第二串口列表的串口映射文件。
[0018]优选地,所述根据所述第一指针当前指向的物理串口的串口信息及所述第二指针当前指向的逻辑串口的串口信息,判断所述物理串口与所述逻辑串口是否匹配,具体包括: [0〇19]根据哈希算法及所述第一指针当前指向的物理串口的串口信息生成第一哈希值;
[0020]根据哈希算法及所述第二指针当前指向的逻辑串口的串口信息生成第二哈希值;
[0021]根据所述第一哈希值及所述第二哈希值判断所述物理串口与所述逻辑串口是否匹配。[〇〇22] 优选地,还包括:[〇〇23]在确定所述第二指针当前指向的逻辑串口位于所述第二串口列表的列表末尾时, 控制所述第一指针移动到位于当前指向的所述物理串口之后的下一个物理串口,并控制所述第二指针指向所述第二串口列表内的第一个逻辑串口。[〇〇24]本发明还提供一种基于Linux或Unix内核操作系统的串口映射装置,包括:
[0025]第一列表获取单元,用于从基本输入输出系统获取第一串口列表;其中,所述第一串口列表存储了面板的至少一个物理串口的串口信息;[〇〇26]第二列表获取单元,用于从基于Linux或Unix内核的操作系统获取第二串口列表; 其中,所述第二串口列表存储了所述操作系统的至少一个逻辑串口的串口信息;[〇〇27]匹配单元,用于根据所述串口信息对所述第一串口列表的物理串口和第二串口列表中的逻辑串口进行匹配,生成所述第一串口列表与所述第二串口列表的串口映射文件, 以使所述操作系统在检测到外部设备接入时,根据所述串口映射文件及所述外部设备当前接入的物理串口获取映射的逻辑串口,并根据与所述逻辑串口对应的程序与所述外部设备进行通{目。
[0028]优选地,所述第一列表获取单元具体用于,通过在用户层调用中断指令,从基本输入输出系统获取第一串口列表;所述串口信息包括收发器类型、中断号及端口地址。[〇〇29]优选地,所述匹配单元具体包括第一指针模块、第二指针模块、串口匹配模块,指针处理模块、映射关系记录模块及映射文件生成模块,其中:
[0030]所述第一指针模块,用于获取为所述第一串口列表配置的第一指针当前指向的物理串口的串口信息;
[0031]所述第二指针模块,用于获取为所述第二串口列表配置的第二指针当前指向的逻辑串口的串口信息;
[0032]所述串口匹配模块,用于根据所述第一指针当前指向的物理串口的串口信息及所述第二指针当前指向的逻辑串口的串口信息,判断所述物理串口与所述逻辑串口是否匹配;若不匹配,则通知所述指针处理模块,若匹配,则通知所述映射关系记录模块;
[0033]所述指针处理模块,用于在确定所述第二指针当前指向的逻辑串口不位于所述第二串口列表的列表末尾时,控制所述第二指针移动到位于当前指向的所述逻辑串口之后的下一个逻辑串口;
[0034]所述映射关系记录模块,用于记录所述物理串口与所述逻辑串口的映射关系,并判断所述第一指针当前指向的物理串口是否位于所述第一串口列表的列表末尾;若否,则通知所述指针处理模块,若是,则通知所述映射文件生成模块;[〇〇35]所述指针处理模块,还用于控制所述第一指针移动到位于当前指向的所述物理串口之后的下一个物理串口,并在所述第二串口列表中删除所述第二指针当前指向的逻辑串口后,控制所述第二指针指向所述第二串口列表内的第一个逻辑串口;
[0036]所述映射文件生成模块,用于根据所述映射关系记录模块记录的映射关系,生成所述第一串口列表与所述第二串口列表的串口映射文件。
[0037]优选地,所述串口匹配模块具体包括:
[0038]第一哈希值计算子模块,用于根据哈希算法及所述第一指针当前指向的物理串口的串口信息生成第一哈希值;
[0039]第二哈希值计算子模块,用于根据哈希算法及所述第二指针当前指向的逻辑串口的串口信息生成第二哈希值;
[0040]哈希值匹配子模块,用于根据所述第一哈希值及第二哈希值判断所述物理串口与所述逻辑串口是否匹配。[〇〇41]优选地,所述指针处理模块,还用于在确定所述第二指针当前指向的逻辑串口位于所述第二串口列表的列表末尾时,控制所述第一指针移动到位于当前指向的所述物理串口之后的下一个物理串口,并控制所述第二指针指向所述第二串口列表内的第一个逻辑串□ 〇[〇〇42]本发明提供的基于Linux或Unix内核操作系统的串口映射方法及装置,通过对从基本输入输出系统获取的第一串口列表内的物理串口和从操作系统下获取的第二串联列表内的逻辑串口进行自动匹配,从而在不需要人为干涉的情况下自动生成描述物理串口与逻辑串口映射关系的串口映射文件,提高了识别匹配的效率和准确率。此外,由于不需要专门的外部设备和辅助软件,还同时减低了成本。【附图说明】
[0043]为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0044]图1是本发明实施例提供的基于Linux或Unix内核操作系统的串口映射方法的流程不意图。
[0045]图2是本发明实施例提供的第一串口列表的数据结构图。
[0046]图3是本发明实施例提供的第二串口列表的数据结构图。
[0047]图4是本发明实施例提供的生成串口映射文件的流程示意图。[〇〇48]图5是本发明实施例提供的基于Linux或Unix内核操作系统的串口映射装置的结构示意图。
[0049]图6是图5所示的第一列表单元获取第一串口列表的示意图。
[0050]图7是图5所示的匹配单元的结构示意图。[0〇51 ]图8是图7所不的串口匹配_旲块的结构不意图。【具体实施方式】[〇〇52]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[〇〇53]本发明提供了一种基于Linux或Unix内核操作系统的串口映射方法及装置,用于自动生成物理串口与逻辑串口的映射关系,实现串口的自动识别和匹配,以下分别进行详细描述。[〇〇54]请参阅图1,图1是本发明实施例提供的基于Linux或Unix内核操作系统的串口映射方法的流程示意图。所述串口映射方法可由基于Linux或Unix内核操作系统的串口映射装置(以下称为串口映射装置)来执行,并至少包括如下步骤:
[0055]S101,从基本输入输出系统(B1S)获取第一串口列表;其中,所述第一串口列表存储了面板的至少一个物理串口的串口信息。
[0056]请一并参阅图2,具体的,在本发明实施例中,所述串口映射装置可通过在用户层调用中断指令,并将所述中断指令发送给所述基本输入输出系统(Basic Input Output SyStem,B10S),所述B1S在接收到所述中断指令后,向所述串口映射装置返回第一串口列表,其中,所述第一串口列表内按顺序存储了面板的所有物理串口及每个物理串口的串口信息,所述物理串口的串口信息可包括收发器类型、中断号及端口地址。[〇〇57]S102,从基于Linux或Unix内核的操作系统获取第二串口列表;其中,所述第二串口列表存储了所述操作系统的至少一个逻辑串口的串口信息。
[0058]请一并参阅图3,具体地,在本发明实施例中,所述串口映射装置在操作系统的用户层输入特定指令读取第二串口列表,其中,所述第二串口列表存储了所述操作系统的所有逻辑串口的串口信息,同样的,所述逻辑串口的串口信息可包括收发器类型、中断号及端口地址。
[0059]在本发明实施例中,所述操作系统可为Linux系统,则一般地,所述特定指令可为/ proc/tty/driver/serial。然而应当理解的是,在本发明的其他实施例中,所述操作系统还可为其他操作系统,如UNIX系统等,具体的指令也可根据实际的系统配置进行指定,本发明不做具体限定。
[0060]S103,根据所述串口信息对所述第一串口列表的物理串口和第二串口列表中的逻辑串口进行匹配,生成所述第一串口列表与所述第二串口列表的串口映射文件,以使所述操作系统在检测到外部设备接入时,根据所述串口映射文件及所述外部设备当前接入的物理串口获取映射的逻辑串口,并根据与所述逻辑串口对应的程序与所述外部设备进行通{目。
[0061]在本发明实施例中,所述串口映射装置在获得所述第一串口列表和第二串口列表后,根据所述串口信息对所述第一串口列表的物理串口和第二串口列表中的逻辑串口进行匹配,并根据匹配的结果生成所述第一串口列表与所述第二串口列表的串口映射文件。
[0062]请一并参阅图4,具体地,可包括如下步骤:[〇〇63]S1031,获取为所述第一串口列表配置的第一指针当前指向的物理串口的串口信息。[〇〇64]在本发明实施例中,所述串口映射装置可定义一个第一指针,所述第一指针用于指向所述第一串口列表内的物理串口,并可在所述第一串口列表内移动,以指向不同的物理串口,其中,所述第一指针指向一个物理串口时,所述串口映射装置将获取该物理串口的串口信息。
[0065]S1032,获取为所述第二串口列表配置的第二指针当前指向的逻辑串口的串口信息。
[0066]在本发明实施例中,同样的,所述串口映射装置还可定义一个第二指针,所述第二指针用于指向所述第二串口列表内的逻辑串口,并可在所述第二串口列表内移动,以指向不同的逻辑串口,其中,所述第二指针指向一个逻辑串口时,所述串口映射装置将获取该逻辑串口的串口信息。[〇〇67]S1033,根据所述第一指针当前指向的物理串口的串口信息及所述第二指针当前指向的逻辑串口的串口信息,判断所述物理串口与所述逻辑串口是否匹配。[〇〇68]在一个实施例中,所述串口映射装置可判断第一指针当前指向的物理串口的串口信息及所述第二指针当前指向的逻辑串口的串口信息是否完成一致,例如,依次判断所述物理串口的收发器类型、中断号及端口地址是否与所述逻辑串口的收发器类型、中断号及端口地址一致,若全部一致,则所述物理串口与所述逻辑串口匹配,而只要有一个串口信息不一致,则所述物理串口与所述逻辑串口不匹配。
[0069]在另一个实施例中,也可先根据哈希算法和所述串口信息生成一个哈希值,再判断哈希值是否一致来判断所述物理串口与所述逻辑串口是否匹配,由于哈希算法的特性, 只有当收发器类型、中断号及端口地址完全一致,得出的哈希值才一致。具体地:
[0070]首先,根据哈希算法及所述第一指针当前指向的物理串口的串口信息生成第一哈希值。
[0071]然后,根据哈希算法及所述第二指针当前指向的逻辑串口的串口信息生成第二哈希值。
[0072]最后,根据所述第一哈希值及所述第二哈希值判断所述物理串口与所述逻辑串口是否匹配。
[0073]如此,相比于直接对串口信息进行匹配,简化了匹配的过程,并提高了匹配的可靠性[〇〇74]S1034,若否,则在确定所述第二指针当前指向的逻辑串口不位于所述第二串口列表的列表末尾时,控制所述第二指针移动到位于当前指向的所述逻辑串口之后的下一个逻辑串口。
[0075]在本发明实施例中,若所述物理串口与所述逻辑串口不匹配,则所述串口映射装置先确定所述第二指针当前指向的逻辑串口是否位于所述第二串口列表的列表末尾(当所述第二指针向后移动一步后指向NULL时,则代表已经到了所述第二串口列表的列表末尾), 如果是,则控制所述第一指针移动到位于当前指向的所述物理串口之后的下一个物理串口,并控制所述第二指针指向所述第二串口列表内的第一个逻辑串口。若否,则所述串口映射装置控制所述第二指针移动到位于当前指向的所述逻辑串口之后的下一个逻辑串口。 [〇〇76]S1035,若是,则记录所述物理串口与所述逻辑串口的映射关系,并判断所述第一指针当前指向的物理串口是否位于所述第一串口列表的列表末尾。
[0077]在本发明实施例中,若所述物理串口与所述逻辑串口匹配,则所述串口映射装置记录所述物理串口与所述逻辑串口的映射关系,如记录所述物理串口的序号及所述逻辑串口的路径形成的映射关系,例如,映射关系可记录为:物理串口 1映射为/dev/COMl,其表示面板上的序号为1的物理串口与操作系统的/dev/COMl的逻辑串口匹配。
[0078]在本发明实施例中,在记录所述映射关系后,所述串口映射装置还判断所述第一指针当前指向的物理串口是否位于所述第一串口列表的列表末尾(当所述第一指针向后移动一步后指向NULL时,则代表已经到了所述第一串口列表的列表末尾)。[〇〇79]S1036,若否,则控制所述第一指针移动到位于当前指向的所述物理串口之后的下一个物理串口,并在所述第二串口列表中删除所述第二指针当前指向的逻辑串口后,控制所述第二指针指向所述第二串口列表内的第一个逻辑串口。
[0080]在本发明实施例中,若所述串口映射装置判断所述第一指针当前指向的物理串口不是位于所述第一串口列表的列表末尾,则说明所述第一串口列表内尚有物理串口未经过匹配,此时,所述串口映射装置控制所述第一指针移动到位于当前指向的所述物理串口之后的下一个物理串口,并在所述第二串口列表中删除所述第二指针当前指向的逻辑串口后,控制所述第二指针指向所述第二串口列表内的第一个逻辑串口。
[0081]S1037,若是,则根据所有已记录的映射关系,生成所述第一串口列表与所述第二串口列表的串口映射文件。
[0082]在本发明实施例中,若所述串口映射装置判断所述第一指针当前指向的物理串口位于所述第一串口列表的列表末尾,则说明所述第一串口列表内的所有物理串口均经过匹配,此时,所述串口映射装置根据所有已记录的映射关系,生成所述第一串口列表与所述第二串口列表的串口映射文件。所述串口映射文件为所有物理串口与逻辑串口的映射关系的汇总文件,如此,当有外部设备接入面板上的物理串口时,即可根据所述串口映射文件找到对应的逻辑串口,再根据所述逻辑串口找到对应的程序来实现与所述外部设备进行通信。 [〇〇83]综上所述,本发明实施例提供的串口映射方法,通过对从B1S获取的第一串口列表内的物理串口和从操作系统下获取的第二串联列表内的逻辑串口进行自动匹配,从而在不需要人为干涉的情况下自动生成描述物理串口与逻辑串口映射关系的串口映射文件,提高了识别匹配的效率和准确率。此外,由于不需要专门的外部设备和辅助软件,还同时减低了成本。
[0084]下面将对上述提及的基于Linux或Unix内核操作系统的串口映射装置进行详细描述。
[0085]请参阅图5,图5是本发明实施例提供的基于Linux或Unix内核操作系统的串口映射装置的结构示意图。所述串口映射装置100包括第一列表获取单元10、第二列表获取单元 20及匹配单元30,其中:
[0086]所述第一列表获取单元10,用于从基本输入输出系统获取第一串口列表;其中,所述第一串口列表存储了面板的至少一个物理串口的串口信息。
[0087]如图6所示,在本发明实施例中,所述第一列表获取单元10可通过在用户层调用中断指令,并将所述中断指令发送给所述基本输入输出系统(Basic Input Output System, B1S),所述B1S在接收到所述中断指令后,向所述第一列表获取单元10返回第一串口列表。
[0088]在本发明实施例中,所述串口信息包括收发器类型、中断号及端口地址。[〇〇89]所述第二列表获取单元20,用于从基于Linux或Unix内核操作系统的操作系统获取第二串口列表;其中,所述第二串口列表存储了所述操作系统的至少一个逻辑串口的串口信息。
[0090]所述匹配单元30,用于根据所述串口信息对所述第一串口列表的物理串口和第二串口列表中的逻辑串口进行匹配,生成所述第一串口列表与所述第二串口列表的串口映射文件,以使所述操作系统在检测到外部设备接入时,根据所述串口映射文件及外部设备当前接入的物理串口获取映射的逻辑串口,并根据与所述逻辑串口对应的程序与所述外部设备进行通信。
[0091]请一并参阅图7,具体地,所述匹配单元30具体包括第一指针模块31、第二指针模块32、串口匹配模块33,指针处理模块34、映射关系记录模块35及映射文件生成模块36,其中:[〇〇92]所述第一指针模块31,用于获取为所述第一串口列表配置的第一指针当前指向的物理串口的串口信息。[〇〇93]所述第二指针模块32,用于获取为所述第二串口列表配置的第二指针当前指向的逻辑串口的串口信息。[〇〇94]所述串口匹配模块33,用于根据所述第一指针当前指向的物理串口的串口信息及所述第二指针当前指向的逻辑串口的串口信息,判断所述物理串口与所述逻辑串口是否匹配;若不匹配,则通知所述指针处理模块34,若匹配,则通知所述映射关系记录模块35。
[0095]所述指针处理模块34,用于在确定所述第二指针当前指向的逻辑串口不位于所述第二串口列表的列表末尾时,控制所述第二指针移动到位于当前指向的所述逻辑串口之后的下一个逻辑串口。[〇〇96]所述映射关系记录模块35,用于记录所述物理串口与所述逻辑串口的映射关系, 并判断所述第一指针当前指向的物理串口是否位于所述第一串口列表的列表末尾;若否, 则通知所述指针处理模块34,若是,则通知所述映射文件生成模块36。[〇〇97]所述指针处理模块34,还用于控制所述第一指针移动到位于当前指向的所述物理串口之后的下一个物理串口,并在所述第二串口列表中删除所述第二指针当前指向的逻辑串口后,控制所述第二指针指向所述第二串口列表内的第一个逻辑串口。
[0098]所述映射文件生成模块36,用于根据所述映射关系记录模块记录的映射关系,生成所述第一串口列表与所述第二串口列表的串口映射文件。
[0099]请一并参阅图8,优选地,所述串口匹配模块33具体包括:[〇1〇0]第一哈希值计算子模块331,用于根据哈希算法及所述第一指针当前指向的物理串口的串口信息生成第一哈希值;
[0101]第二哈希值计算子模块332,用于根据哈希算法及所述第二指针当前指向的逻辑串口的串口信息生成第二哈希值;
[0102]哈希值匹配子模块333,用于根据所述第一哈希值及第二哈希值判断所述物理串口与所述逻辑串口是否匹配。
[0103]本优选实施例中,通过串口信息生成哈希值,再对哈希值进行匹配,简化了匹配的过程,提高了匹配的可靠性。
[0104]优选地,所述指针处理模块34,还用于在确定所述第二指针当前指向的逻辑串口位于所述第二串口列表的列表末尾时,控制所述第一指针移动到位于当前指向的所述物理串口之后的下一个物理串口,并控制所述第二指针指向所述第二串口列表内的第一个逻辑串口。
[0105]综上所述,本发明实施例提供的串口映射装置100,所述匹配单元30通过对所述第一列表获取单元10从B1S获取的第一串口列表内的物理串口和所述第二列表获取单元20 从操作系统下获取的第二串联列表内的逻辑串口进行自动匹配,从而在不需要人为干涉的情况下自动生成描述物理串口与逻辑串口映射关系的串口映射文件,提高了识别匹配的效率和准确率。此外,由于不需要专门的外部设备和辅助软件,还同时减低了成本。
[0106]本发明实施例还提供一种终端,所述终端具有B1S和操作系统(如Linux系统或 UNIX系统),其中,所述终端还包括上述任一实施例所述的串口映射装置100。
[0107]本发明实施例提供的终端,所述匹配单元30通过对所述第一列表获取单元10从 B1S获取的第一串口列表内的物理串口和所述第二列表获取单元20从操作系统下获取的第二串联列表内的逻辑串口进行自动匹配,从而在不需要人为干涉的情况下自动生成描述物理串口与逻辑串口映射关系的串口映射文件,提高了识别匹配的效率和准确率。此外,由于不需要专门的外部设备和辅助软件,还同时减低了成本。
[0108]以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
[0109]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可获取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
【主权项】
1.一种基于Linux或Unix内核操作系统的串口映射方法,其特征在于,包括如下步骤: 从基本输入输出系统(B1S)获取第一串口列表;其中,所述第一串口列表存储了面板的至少一个物理串口的串口信息;从基于Linux或Unix内核的操作系统获取第二串口列表;其中,所述第二串口列表存储 了所述操作系统的至少一个逻辑串口的串口信息;根据所述串口信息对所述第一串口列表的物理串口和第二串口列表中的逻辑串口进 行匹配,生成所述第一串口列表与所述第二串口列表的串口映射文件,以使所述操作系统 在检测到外部设备接入时,根据所述串口映射文件及所述外部设备当前接入的物理串口获 取映射的逻辑串口,并根据与所述逻辑串口对应的程序与所述外部设备进行通信。2.根据权利要求1所述的串口映射方法,其特征在于,所述从基本输入输出系统获取第 一串口列表具体为:通过在用户层调用中断指令,从基本输入输出系统获取第一串口列表; 所述串口信息包括收发器类型、中断号及端口地址。3.根据权利要求1或2所述的串口映射方法,其特征在于,所述根据所述串口信息对所 述第一串口列表的物理串口和第二串口列表中的逻辑串口进行匹配,生成所述第一串口列 表与所述第二串口列表的串口映射文件,具体包括:获取为所述第一串口列表配置的第一指针当前指向的物理串口的串口信息;获取为所述第二串口列表配置的第二指针当前指向的逻辑串口的串口信息;根据所述第一指针当前指向的物理串口的串口信息及所述第二指针当前指向的逻辑 串口的串口信息,判断所述物理串口与所述逻辑串口是否匹配;若不匹配,则在确定所述第二指针当前指向的逻辑串口不位于所述第二串口列表的列 表末尾时,控制所述第二指针移动到位于当前指向的所述逻辑串口之后的下一个逻辑串 P;若匹配,则记录所述物理串口与所述逻辑串口的映射关系,并判断所述第一指针当前 指向的物理串口是否位于所述第一串口列表的列表末尾;若否,则控制所述第一指针移动到位于当前指向的所述物理串口之后的下一个物理串 口,并在所述第二串口列表中删除所述第二指针当前指向的逻辑串口后,控制所述第二指 针指向所述第二串口列表内的第一个逻辑串口;若是,则根据所有已记录的映射关系,生成所述第一串口列表与所述第二串口列表的 串口映射文件。4.根据权利要求3所述的串口映射方法,其特征在于,所述根据所述第一指针当前指向 的物理串口的串口信息及所述第二指针当前指向的逻辑串口的串口信息,判断所述物理串 口与所述逻辑串口是否匹配,具体包括:根据哈希算法及所述第一指针当前指向的物理串口的串口信息生成第一哈希值;根据哈希算法及所述第二指针当前指向的逻辑串口的串口信息生成第二哈希值;根据所述第一哈希值及所述第二哈希值判断所述物理串口与所述逻辑串口是否匹配。5.根据权利要求3所述的串口映射方法,其特征在于,还包括:在确定所述第二指针当前指向的逻辑串口位于所述第二串口列表的列表末尾时,控制 所述第一指针移动到位于当前指向的所述物理串口之后的下一个物理串口,并控制所述第 二指针指向所述第二串口列表内的第一个逻辑串口。6.—种基于Linux或Unix内核操作系统的串口映射装置,其特征在于,包括:第一列表获取单元,用于从基本输入输出系统获取第一串口列表;其中,所述第一串口 列表存储了面板的至少一个物理串口的串口信息;第二列表获取单元,用于从基于Linux或Unix内核的操作系统获取第二串口列表;其 中,所述第二串口列表存储了所述操作系统的至少一个逻辑串口的串口信息;匹配单元,用于根据所述串口信息对所述第一串口列表的物理串口和第二串口列表中 的逻辑串口进行匹配,生成所述第一串口列表与所述第二串口列表的串口映射文件,以使 所述操作系统在检测到外部设备接入时,根据所述串口映射文件及所述外部设备当前接入 的物理串口获取映射的逻辑串口,并根据与所述逻辑串口对应的程序与所述外部设备进行 通信。7.根据权利要求6所述的串口映射装置,其特征在于,所述第一列表获取单元具体用 于,通过在用户层调用中断指令,从基本输入输出系统获取第一串口列表;所述串口信息包 括收发器类型、中断号及端口地址。8.根据权利要求6或7所述的串口映射装置,其特征在于,所述匹配单元具体包括第一 指针模块、第二指针模块、串口匹配模块,指针处理模块、映射关系记录模块及映射文件生 成模块,其中:所述第一指针模块,用于获取为所述第一串口列表配置的第一指针当前指向的物理串 口的串口信息;所述第二指针模块,用于获取为所述第二串口列表配置的第二指针当前指向的逻辑串 口的串口信息;所述串口匹配模块,用于根据所述第一指针当前指向的物理串口的串口信息及所述第 二指针当前指向的逻辑串口的串口信息,判断所述物理串口与所述逻辑串口是否匹配;若 不匹配,则通知所述指针处理模块,若匹配,则通知所述映射关系记录模块;所述指针处理模块,用于在确定所述第二指针当前指向的逻辑串口不位于所述第二串 口列表的列表末尾时,控制所述第二指针移动到位于当前指向的所述逻辑串口之后的下一 个逻辑串口;所述映射关系记录模块,用于记录所述物理串口与所述逻辑串口的映射关系,并判断 所述第一指针当前指向的物理串口是否位于所述第一串口列表的列表末尾;若否,则通知 所述指针处理模块,若是,则通知所述映射文件生成模块;所述指针处理模块,还用于控制所述第一指针移动到位于当前指向的所述物理串口之 后的下一个物理串口,并在所述第二串口列表中删除所述第二指针当前指向的逻辑串口 后,控制所述第二指针指向所述第二串口列表内的第一个逻辑串口;所述映射文件生成模块,用于根据所述映射关系记录模块记录的映射关系,生成所述 第一串口列表与所述第二串口列表的串口映射文件。9.根据权利要求8所述的串口映射装置,其特征在于,所述串口匹配模块具体包括:第一哈希值计算子模块,用于根据哈希算法及所述第一指针当前指向的物理串口的串 口信息生成第一哈希值;第二哈希值计算子模块,用于根据哈希算法及所述第二指针当前指向的逻辑串口的串 口信息生成第二哈希值;哈希值匹配子模块,用于根据所述第一哈希值及第二哈希值判断所述物理串口与所述 逻辑串口是否匹配。10.根据权利要求8所述的串口映射装置,其特征在于,所述指针处理模块,还用于在确 定所述第二指针当前指向的逻辑串口位于所述第二串口列表的列表末尾时,控制所述第一 指针移动到位于当前指向的所述物理串口之后的下一个物理串口,并控制所述第二指针指 向所述第二串口列表内的第一个逻辑串口。
【文档编号】G06F13/42GK106021136SQ201610304975
【公开日】2016年10月12日
【申请日】2016年5月9日
【发明人】熊飞, 吴胜楠, 陈明宇, 张雲瑞, 罗忠明, 梁建明
【申请人】广州广电运通金融电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1