一种串口数据处理方法、装置及电子设备与流程

文档序号:29091116发布日期:2022-03-02 02:50阅读:133来源:国知局
一种串口数据处理方法、装置及电子设备与流程

1.本技术涉及计算机领域,更具体的说,是涉及一种串口数据处理方法、装置及电子设备。


背景技术:

2.当前的服务器需求中,操作系统需要将串口数据即提供给基板管理控制器,又要提供给主机的后置io。一些实现方案中,操作系统串口数据的向外传送,无论是通过基板管理控制器的路径还是主机的后置io路径,都依赖基板管理控制器实现;其中主机的后置io路径的串口数据的传送需要经过基板管理控制器进行中转,从而形成对基板管理控制器的依赖。因此,在基板管理控制器出现故障时,操作系统将无法与外界交互,影响用户的正常使用。


技术实现要素:

3.有鉴于此,本技术提供如下技术方案:
4.一种串口数据处理方法,应用于现场可编程逻辑门阵列fpga,包括:
5.接收操作系统发送的第一串口数据;
6.将所述第一串口数据转发给基板管理控制器和后置io接口;
7.基于第一策略接收所述基板管理控制器或所述后置io接口发送的第二串口数据,所述第一串口数据和所述第二串口数据的数据传送方向不同;
8.将所述第二串口数据发送给所述操作系统。
9.可选的,所述将所述第一串口数据转发给基板管理控制器和后置io接口,包括:
10.通过多路选择器将所述第一串口数据转发给基板管理控制器和后置io接口。
11.可选的,所述接收操作系统发送的第一串口数据,包括:
12.在监测到操作系统的数据发送串口由第一电平转换为第二电平的情况下,接收操作系统发送的第一串口数据。
13.可选的,所述将所述第二串口数据发送给所述操作系统,包括:
14.通过多路选择器将所述第二串口数据发送给所述操作系统的数据接收串口。
15.可选的,所述基于第一策略接收所述基板管理控制器或所述后置io接口发送的第二串口数据,包括:
16.在所述基板管理控制器或所述后置io接口单独发出数据时,直接接收所述基板管理控制器或所述后置io接口发送的第二串口数据;
17.在所述基板管理控制器或所述后置io接口同时发出数据时,基于设定优先级确定可连通路径,并接收所述可连通路径传送的第二串口数据,所述可连通路径表征所述基板管理控制器或所述后置io接口。
18.可选的,其中,通过监控所述基板管理控制器的数据发送串口的电平值确定所述基板管理控制器的数据发送串口是否发出数据。
19.可选的,其中,在所述基板管理控制器的串口转网口功能开启或关闭时,所述基板管理控制器的数据发送串口的电平值发生变化。
20.一种串口数据处理装置,应用于现场可编程逻辑门阵列fpga,包括:
21.下行数据接收模块,用于接收操作系统发送的第一串口数据;
22.下行数据发送模块,用于将所述第一串口数据转发给基板管理控制器和后置io接口;
23.上行数据接收模块,用于基于第一策略接收所述基板管理控制器或所述后置io接口发送的第二串口数据,所述第一串口数据和所述第二串口数据的数据传送方向不同;
24.上行数据发送模块,用于将所述第二串口数据发送给所述操作系统。
25.可选的,所述上行数据接收模块具体用于:在所述基板管理控制器或所述后置io接口单独发出数据时,直接接收所述基板管理控制器或所述后置io接口发送的第二串口数据;在所述基板管理控制器或所述后置io接口同时发出数据时,基于设定优先级确定可连通路径,并接收所述可连通路径传送的第二串口数据,所述可连通路径表征所述基板管理控制器或所述后置io接口。
26.一种电子设备,包括:
27.处理器;
28.存储器,用于存储所述处理器的可执行指令;
29.其中,所述可执行指令包括:接收操作系统发送的第一串口数据;将所述第一串口数据转发给基板管理控制器和后置io接口;基于第一策略接收所述基板管理控制器或所述后置io接口发送的第二串口数据,所述第一串口数据和所述第二串口数据的数据传送方向不同;将所述第二串口数据发送给所述操作系统。
30.经由上述的技术方案可知,与现有技术相比,本技术实施例公开了一种串口数据处理方法、装置及电子设备,方法包括:接收操作系统发送的第一串口数据;将所述第一串口数据转发给基板管理控制器和后置io接口;基于第一策略接收所述基板管理控制器或所述后置io接口发送的第二串口数据,所述第一串口数据和所述第二串口数据的数据传送方向不同;将所述第二串口数据发送给所述操作系统。上述方案通过现场可编程逻辑门阵列fpga实现操作系统分别与基板管理控制器和后置io接口的单独连接,通过现场可编程逻辑门阵列fpga的桥接作用,使得后置io接口与操作系统的通信不再依赖于基板管理控制器,从而在基板管理控制器出现故障时,外接仍然可以通过后置io接口实现与操作系统的通信。
附图说明
31.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
32.图1为本技术实施例公开的一种串口数据处理方法的流程图;
33.图2为本技术实施例公开的串口数据处理方法的实现架构示意图;
34.图3为本技术实施例公开的另一种串口数据处理方法的流程图;
35.图4为本技术实施例公开的一种串口数据处理装置的结构示意图。
具体实施方式
36.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
37.本技术实施例可以应用于电子设备,本技术对该电子设备的产品形式不做限定,可以包括但并不局限于智能手机、平板电脑、可穿戴设备、个人计算机(personal computer,pc)、上网本等,可以依据应用需求选择。
38.图1为本技术实施例公开的一种串口数据处理方法的流程图。图1所示方法可应用于现场可编程逻辑门阵列fpga。参见图1所示,串口数据处理方法可以包括:
39.步骤101:接收操作系统发送的第一串口数据。
40.本实现中,现场可编程逻辑门阵列fpga作为传送串口数据的中转结构,用于将操作系统发出的串口数据转发给基板管理控制器bmc和/或后置io接口,也用于将基板管理控制器bmc或后置io接口发送的串口数据传送给现场可编程逻辑门阵列fpga。在传送串口数据的过程中,fpga并不会对其需要传送的数据做任何实质内容的处理,仅负责数据的分流转发。其中的后置io接口通常设置在主机后面板上,如当前存在的db9接口。
41.cpu通过其串行接口,将并行数据字符转换为连续的串行数据流并发出给现场可编程逻辑门阵列fpga,由现场可编程逻辑门阵列fpga对接收到的串行数据进行转发控制。本实现中,现场可编程逻辑门阵列fpga同时独立连接基板管理控制器bmc和后置io接口,因此,fpga可以讲cpu发送的串口数据单独发送给基板管理控制器bmc,也可以单独发送给后置io接口。当然,fpga也可以将接收到的串口数据同时发送给基板管理控制器bmc和后置io接口。
42.步骤102:将所述第一串口数据转发给基板管理控制器和后置io接口。
43.接收到cpu通过串行接口发送的串行数据后,基于串口输出要求,现场可编程逻辑门阵列fpga将串行数据通过与基板管理控制器bmc连接的接口发送给bmc,同时也会将串行数据通过与后置io接口连接的接口发送给后置io接口。
44.具体的,所述将所述第一串口数据转发给基板管理控制器和后置io接口,可以但不限制于包括:通过多路选择器将所述第一串口数据转发给基板管理控制器和后置io接口。本技术中,将由cpu发出的串口数据称为第一串口数据。
45.步骤103:基于第一策略接收所述基板管理控制器或所述后置io接口发送的第二串口数据,所述第一串口数据和所述第二串口数据的数据传送方向不同。
46.其中,第二串口数据指由外部发送至cpu的串口数据。
47.操作系统(cpu)会向外发送串口数据,也会从外部接收串口数据,因此,串口数据的传送方向是双向的。本实现中,由于现场可编程逻辑门阵列fpga同时连接基板管理控制器bmc和后置io接口,而cpu只有一个数据接收串口,一个时间段内仅能传送一路串口数据。因此,实现中需要基于第一策略确定是将基板管理控制器bmc发送的第二串口数据传送给cpu,还是将后置io接口发送的第二串口数据传送给cpu。
48.步骤104:将所述第二串口数据发送给所述操作系统。
49.确定了需要传送给cpu的第二串口数据后,直接将所述第二串口数据对应的通信路径连通,实现将第二串口数据发送给所述操作系统,也即前文提及的cpu。
50.本实施例所述串口数据处理方法,通过现场可编程逻辑门阵列fpga实现操作系统分别与基板管理控制器和后置io接口的单独连接,通过现场可编程逻辑门阵列fpga的桥接作用,使得后置io接口与操作系统的通信不再依赖于基板管理控制器,从而在基板管理控制器出现故障时,外接仍然可以通过后置io接口实现与操作系统的通信。
51.图2为本技术实施例公开的串口数据处理方法的实现架构示意图。其中,cpu0可以理解为操作系统;uart为串口,其中带有“_tx”标记的为数据输出串口,带有“_rx”标记的为数据输入串口;mux为现场可编程逻辑门阵列fpga中的多路选择器;urat(universal asynchronous receiver/transmitter,通用异步收发传输器)controler为基板管理控制器中关于串口管理的控制器;routine(sol)为实现串口转网络功能的模块;max3232为转换电平的芯片;reario可以理解为后置io接口。
52.结合图2所示,实现方案中,现场可编程逻辑门阵列fpga作为中转站,cpu、基板管理控制器bmc和rear io都连接到fpga。一个实现过程可以包括:
53.1、cpu的uart0_tx连接到fpga后,fpga内部将其一转二,同时输出到bmc的uart1_rx和rear io的rx,保证两者(bmc和rear io)同时能收到数据。.
54.2、cpu的uart0_rx的输入源需要切换,当sol active时,rear io和sol,由fpga内部仲裁,谁有数据输出时,谁连接到uart0_rx,同时有数据时sol优先级高,只联通sol的tx。
55.3、bmc异常时,fpga通过rear io可以接收串口命令,将rear io切换到cpu rx侧,保证系统uart链路畅通。
56.由此,通过上述方案,系统一路串口既可以实现与bmc交互,同时与rear io串口通信;系统调试也不再只依赖bmc,bmc异常时,依然可以通过fpga切换,通过rear io与系统通信;且本实现能够解决rear io和bmc同时输出数据到系统时的冲突问题,由fpga实现仲裁。
57.基于以上内容,一个实现中,所述接收操作系统发送的第一串口数据,可以包括:在监测到操作系统的数据发送串口由第一电平转换为第二电平的情况下,接收操作系统发送的第一串口数据。
58.现场可编程逻辑门阵列fpga可时刻监测与cpu连接串口的电平值。可以理解的,串口中在有数据传送时和没有数据传送时的电平值是不同的,通常情况下有数据传送时,串口的电平值要高于没有数据传送时的电平值;而这些电平值的大概范围可以基于实验或经验确定。
59.因此,若现场可编程逻辑门阵列fpga检测到与cpu连接的串口的电平值对应有数据传送的数值范围时,可以确定操作系统向其发送了第一串口数据。
60.一个实现中,所述将所述第二串口数据发送给所述操作系统,可以包括:通过多路选择器mux将所述第二串口数据发送给所述操作系统的数据接收串口。
61.多路选择器可以将从cpu接收到的一路串口数据分成多路串口数据,并将多路串口数据分别发送到不同的目的地。需要说明的是,将一路串口数据分成多路串口数据,并不是将一路串口数据划分成不同的部分,而是相当于将一路串口数据“复制”成相同的多路串口数据。因此,基板管理控制器bmc和后置io接口收到的串口数据是完全相同的。
62.图3为本技术实施例公开的另一种串口数据处理方法的流程图,参见图3所示,数据处理方法可以包括:
63.步骤301:接收操作系统发送的第一串口数据。
64.步骤302:将所述第一串口数据转发给基板管理控制器和后置io接口,进入步骤302或步骤303。
65.步骤303:在所述基板管理控制器或所述后置io接口单独发出数据时,直接接收所述基板管理控制器或所述后置io接口发送的第二串口数据,进入步骤305。
66.在仅有基板管理控制器bmc或所述后置io接口发送数据时,发往cpu串口的数据不存在冲突,可以直接接收所述基板管理控制器或所述后置io接口发送的第二串口数据,并将其确定为需要发送给cpu串口的数据。
67.步骤304:在所述基板管理控制器或所述后置io接口同时发出数据时,基于设定优先级确定可连通路径,并接收所述可连通路径传送的第二串口数据,进入步骤305。
68.其中,所述可连通路径表征所述基板管理控制器或所述后置io接口。
69.当基板管理控制器bmc或后置io接口同时发出数据时,由于只能够将一路数据发送给cpu串口,因此需要由现场可编程逻辑门阵列fpga进行仲裁判断,确定将来自于基板管理控制器bmc的第二串口数据发送给cpu串口,还是将来自于后置io接口的第二串口数据发送给cpu串口。
70.本实现中,是基于设定优先级确定可连通路径。当然,确定可连通路径也可以基于其他规则,例如,在第一情况下,确定接通哪个路径;在第二情况下,基于设定优先级确定可连通路径。
71.步骤305:将所述第二串口数据发送给所述操作系统。
72.本实施例介绍了将串口数据从外部传送到cpu的详细实现,以便于领域内技术人员能够更好了理解本技术实现。
73.上述实现中,可以通过监控所述基板管理控制器的数据发送串口的电平值确定所述基板管理控制器的数据发送串口是否发出数据。在所述基板管理控制器的串口转网口功能开启或关闭时,所述基板管理控制器的数据发送串口的电平值发生变化。基板管理控制器的串口转网口功能开启时,表征基板管理控制器bmc在向fpga发送串口数据;而在基板管理控制器的串口转网口功能关闭时,表征基板管理控制器bmc没有向fpga发送串口数据。
74.对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。
75.上述本技术公开的实施例中详细描述了方法,对于本技术的方法可采用多种形式的装置实现,因此本技术还公开了一种装置,下面给出具体的实施例进行详细说明。
76.图4为本技术实施例公开的一种串口数据处理装置的结构示意图。图4所示装置应用于现场可编程逻辑门阵列fpga。结合图4所示,串口数据处理装置40可以包括:
77.下行数据接收模块401,用于接收操作系统发送的第一串口数据。
78.下行数据发送模块402,用于将所述第一串口数据转发给基板管理控制器和后置io接口。
79.上行数据接收模块403,用于基于第一策略接收所述基板管理控制器或所述后置io接口发送的第二串口数据,所述第一串口数据和所述第二串口数据的数据传送方向不同。
80.上行数据发送模块404,用于将所述第二串口数据发送给所述操作系统。
81.本实施例所述串口数据处理装置,通过现场可编程逻辑门阵列fpga实现操作系统分别与基板管理控制器和后置io接口的单独连接,通过现场可编程逻辑门阵列fpga的桥接作用,使得后置io接口与操作系统的通信不再依赖于基板管理控制器,从而在基板管理控制器出现故障时,外接仍然可以通过后置io接口实现与操作系统的通信。
82.一个实现中,所述下行数据发送模块402具体可用于:通过多路选择器将所述第一串口数据转发给基板管理控制器和后置io接口。
83.一个实现中,所述下行数据接收模块401具体可用于:在监测到操作系统的数据发送串口由第一电平转换为第二电平的情况下,接收操作系统发送的第一串口数据。
84.一个实现中,所述上行数据发送模块具体可用于:通过多路选择器将所述第二串口数据发送给所述操作系统的数据接收串口。
85.一个实现中,所述上行数据接收模块具体用于:在所述基板管理控制器或所述后置io接口单独发出数据时,直接接收所述基板管理控制器或所述后置io接口发送的第二串口数据;在所述基板管理控制器或所述后置io接口同时发出数据时,基于设定优先级确定可连通路径,并接收所述可连通路径传送的第二串口数据,所述可连通路径表征所述基板管理控制器或所述后置io接口。
86.一个实现中,通过监控所述基板管理控制器的数据发送串口的电平值确定所述基板管理控制器的数据发送串口是否发出数据。
87.一个实现中,在所述基板管理控制器的串口转网口功能开启或关闭时,所述基板管理控制器的数据发送串口的电平值发生变化。
88.上述实施例中的所述的任意一种串口数据处理装置包括处理器和存储器,上述实施例中的下行数据接收模块、下行数据发送模块、上行数据接收模块、上行数据发送模块等均作为程序模块存储在存储器中,由处理器执行存储在所述存储器中的上述程序模块来实现相应的功能。
89.处理器中包含内核,由内核去存储器中调取相应的程序模块。内核可以设置一个或多个,通过调整内核参数来实现回访数据的处理。
90.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
91.本技术实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现上述实施例中所述的串口数据处理方法。
92.本技术实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述实施例中所述的串口数据处理方法。
93.进一步,本实施例提供了一种电子设备,包括处理器以及存储器。其中存储器用于存储所述处理器的可执行指令,所述处理器配置为经由执行所述可执行指令来执行上述实施例中所述的串口数据处理方法。
94.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
95.还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
96.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
97.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1