一种基于CPLD实现多串口切换的方法、系统和板卡与流程

文档序号:18940056发布日期:2019-10-23 01:04阅读:278来源:国知局
一种基于CPLD实现多串口切换的方法、系统和板卡与流程

本申请涉及服务器板卡设计技术领域,特别是涉及一种基于cpld(complexprogrammablelogicdevice,复杂可编程逻辑器件)实现多串口切换的方法、系统和板卡。



背景技术:

串口是服务器板卡中的重要部件,通常,服务器板卡中的串口主要用于传输控制端bmc(baseboardmanagementcontroller,基板管理控制器)芯片中uart模块直连出来的信号,并通过该信号外接header。随着服务器和其他电子产品的功能和性能的不断增强,服务器板卡中通常存在多个串口,且经常需要在同一个服务器板卡的多个串口中进行串口切换。

目前进行串口切换的方法参见图1,由图1可知目前的串口切换方法通常是,针对多个串口,在服务器板卡中相应配置多个外接header(连接器),分别用于不同串口的切换和调试,串口与debug(调试)端之间一一对应,进行串口切换和调试时,需要调试人员携带debug板串口,采用人工拆机的方式分别进行调试。

然而,目前进行串口切换的方法中,由于串口与debug端是一一对应的,不同的串口对应不同的debug端,多串口之间的切换不够灵活,人工切换的切换效率低。而且,由于串口与debug端一一对应,针对多个串口需要在服务器板卡中设置多个外接header,所占用的板卡空间较大,不利于减少pcb(printedcircuitboard),印制电路板)板面密度。



技术实现要素:

本申请提供了一种基于cpld实现多串口切换的方法、系统和板卡,以解决现有技术中的口切换不够灵活、切换效率低以及串口切换占用板卡空间较大的问题。

为了解决上述技术问题,本申请实施例公开了如下技术方案:

一种基于cpld实现多串口切换的方法,所述方法包括:

获取控制使能信号以及来自控制端bmc中uart模块的多组uart(universalasynchronousreceiver/transmitter,通用异步收发传输器)信号,所述uart模块包括sysuart模块和bmcuart模块,且所述sysuart模块发出sysuart信号,所述bmcuart模块发出bmcuart信号;

根据所述控制使能信号,利用cpld从多组uart信号中确定待输出的uart信号;

利用一外接连接器,对所述待输出的uart信号进行输出。

可选地,所述根据所述控制使能信号,利用cpld从多组uart信号中确定待输出的uart信号,包括:

获取来自控制端bmc的bmcgpio(general-purposeinput/output,通用输入/输出口)信号,一个所述bmcgpio信号包括高电平和低电平两种电平状态;

根据所述bmcgpio信号的电平状态,确定待输出的uart信号为sysuart信号或bmcuart信号,其中,两种电平状态分别与sysuart信号及bmcuart信号一一匹配。

可选地,所述根据所述控制使能信号,利用cpld从多组uart信号中确定待输出的uart信号,包括:

用信号线连接所述外接连接器和cpld,且所述外接连接器中至少设置有电源pin和接地pin;

cpld根据外接连接器的电源pin和接地pin的连接状态,确定待输出的uart信号为sysuart信号或bmcuart信号,其中电源pin和接地pin连接,以及电源pin和接地pin不连接两种状态,分别与sysuart信号及bmcuart信号一一匹配。

可选地,所述根据所述控制使能信号,利用cpld从多组uart信号中确定待输出的uart信号,包括:

在所述外接连接器与cpld之间设置一逻辑或门电路,所述逻辑或门电路的输入端与外接连接器连接,所述逻辑或门电路的输出端与cpld连接,且所述逻辑或门电路的输入端至少包括第一输入端和第二输入端,其中,第一输入与外接连接器的电源pin连接,第二输入端与外接连接器的接地pin连接;

cpld根据逻辑或门电路第一输入和第二输入端的电平状态,确定待输出的uart信号为sysuart信号或bmcuart信号。

可选地,根据所述控制使能信号,利用cpld从多组uart信号中确定待输出的uart信号之前,所述方法还包括:

对所述控制使能信号以及多组uart信号进行滤波。

一种基于cpld实现多串口切换的系统,所述系统包括:

信号获取模块,用于获取控制使能信号以及来自控制端bmc中uart模块的多组uart信号,所述uart模块包括sysuart模块和bmcuart模块,且所述sysuart模块发出sysuart信号,所述bmcuart模块发出bmcuart信号;

待输出信号确定模块,用于根据所述控制使能信号,利用cpld从多组uart信号中确定待输出的uart信号;

一外接连接器,用于对所述待输出的uart信号进行输出,且所述外接连接器的输入端与cpld的输出端连接,所述外接连接器的输出端与debug端连接。

可选地,所述待输出信号确定模块包括:

bmcgpio信号获取单元,用于获取来自控制端bmc的bmcgpio信号,一个所述bmcgpio信号包括高电平和低电平两种电平状态;

确定单元,用于根据所述bmcgpio信号的电平状态,确定待输出的uart信号为sysuart信号或bmcuart信号,其中,两种电平状态分别与sysuart信号及bmcuart信号一一匹配。

可选地,所述待输出信号确定模块包括:信号线和待输出信号选择单元;

所述信号线连接所述外接连接器和cpld,且所述外接连接器中至少设置有电源pin和接地pin;

所述待输出信号选择单元,用于根据外接连接器的电源pin和接地pin的连接状态,确定待输出的uart信号为sysuart信号或bmcuart信号,其中电源pin和接地pin连接,以及电源pin和接地pin不连接两种状态,分别与sysuart信号及bmcuart信号一一匹配。

可选地,所述系统中还包括:滤波模块,用于对所述控制使能信号以及多组uart信号进行滤波。

一种基于cpld实现多串口切换的板卡,所述板卡包括:bmc以及如上任一所述的基于cpld实现多串口切换的系统,且所述bmc中包括uart模块。

本申请的实施例提供的技术方案可以包括以下有益效果:

本申请提供一种基于cpld实现多串口切换的方法,该方法首先获取控制使能信号以及来自控制端bmc中uart模块的多组uart信号,然后根据控制使能信号,利用cpld从多组uart信号中确定待输出的uart信号,最后通过一个外接连接器对待输出信号进行输出。在进行多个串口切换时,本实施例通过cpld获取控制使能信号,然后根据控制使能信号的电平状态确定待输出的uart信号,由于控制使能信号可以根据bmc灵活设置,也可以通过硬件电路来控制,具有两种链路模式,因此,本实施例能够灵活切换串口,且避免人工手动切换,有利于提高串口切换的准确性和切换效率。同时,本实施例利用cpld从多组uart信号中确定待输出的uart信号之后,通过一个外接连接器即可对待输出的uart信号进行输出,也就是通过一个外接连接器连接debug端,因此能够有效节省板面空间,有利于减少pcb板密度和物料成本。

本申请还提供一种基于cpld实现多串口切换的系统,该系统主要包括信号获取模块、待输出信号确定模块和一外接连接器,其中信号获取模块和待输出信号确定模块可以通过cpld来实现。待输出信号确定模块能够根据控制使能信号,从多组uart信号中确定待输出的uart信号,而控制使能信号既可以根据bmc灵活设置,又可以通过硬件电路来控制,具有两种链路模式,因此,本实施例对串口切换的灵活性较高,且本实施例通过硬件或软件方式进行串口切换,避免人工手动切换,有利于提高串口切换的准确性和切换效率。另外,针对多个串口,经信号获取模块和待输出信号确定模块之后,本实施例通过一个外接连接器对待输出urat信号进行输出,只需要一个外接连接器即可从实现调试,避免吸纳有技术中一个串口匹配一个debug端的情况,能够有效节省板面空间,有利于减少pcb板密度和物料成本。

本申请还提供一种基于cpld实现多串口切换的板卡,该板卡中包括bmc、如上所述的基于cpld实现多串口切换的系统。也就是该板卡中设置有bmc、cpld和一外接连接器,通过cpld对从多组uart信号中确定待输出的uart信号,最终通过一外接连接器对待输出的uart信号进行输出,从而实现多串口的灵活切换,同时能够大大降低板卡的板面空间,有利于节省物料成本。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为背景技术中串口切换方法的原理示意图;

图2为本申请实施例所提供的一种基于cpld实现多串口切换的方法的流程示意图;

图3为本申请实施例中基于cpld实现多串口切换的原理示意图;

图4为拨码开关与cpld的gpio接口连接方式示意图;

图5为本申请实施例所提供的一种基于cpld实现多串口切换的系统的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

为了更好地理解本申请,下面结合附图来详细解释本申请的实施方式。

实施例一

参见图2,图2为本申请实施例所提供的一种基于cpld实现多串口切换的方法的流程示意图。由图2可知,本实施例中基于cpld实现多串口切换的方法,主要包括如下过程:

s1:获取控制使能信号以及来自控制端bmc中uart模块的多组uart信号。

其中,bmc芯片中的uart模块包括sysuart模块和bmcuart模块,且sysuart模块发出sysuart信号,bmcuart模块发出bmcuart信号。sysuart模块为系统调试方式,bmcuart模块为bmc调试方式。

本实施例中基于cpld实现多串口切换的原理示意图可以参见图3,图3中mb为服务器主板,bmcuartpart为bmc中uart模块,tx为发送信号,rx为接受信号,p3v3为电源pin,gnd为接地pin,4pinheader为4pin的连接器。由图3可知,本实施例中控制使能信号oe有两路,分别为控制使能信号oe1和控制使能信号oe2。其中oe1由bmc控制,来自bmc;oe2由硬件线路通过逻辑电平控制,来自外围接口。本实施例通过cpld获取控制使能信号以及多组uart信号。

继续参见图2可知,通过cpld获取到控制使能信号和多组uart信号之后,执行步骤s3:根据控制使能信号,利用cpld从多组uart信号中确定待输出的uart信号。

根据控制使能信号的不同获取方式,本实施例中利用cpld确定待输出的uart信号的方法有两种:第一种方法为图3中的oe1的链路模式,第二种方法为图3中的oe2链路模式。

具体地,第一种确定方法包括如下步骤:

s031:获取来自控制端bmc的bmcgpio信号。

其中,一个bmcgpio信号包括高电平和低电平两种电平状态。如果有多路uart,可以通过增加bmc的bmcgpio信号来控制不同的pin。

s032:根据bmcgpio信号的电平状态,确定待输出的uart信号为sysuart信号或bmcuart信号。

其中,两种电平状态分别与sysuart信号及bmcuart信号一一匹配。可以设定bmcgpio信号为高电平时,待输出的uart信号为sysuart信号,bmcgpio信号为低电平时,待输出的uart信号为bmcuart信号。或者相反,设定bmcgpio信号为高电平时,待输出的uart信号为bmcuart信号,bmcgpio信号为低电平时,待输出的uart信号为sysuart信号。

由以上步骤s031和s032可知,oe1的链路模式是采用软件方法进行串口切换。在实际中,可以在xshell软件中设置bmcgpio信号的高电平和低电平状态,从而实现自动切换串口。

第二种确定方法为硬件切换方法,该方法又包括两种实现方式。其中,第一种硬件实现方式包括如下步骤:

s131:用信号线连接外接连接器和cpld,且外接连接器中至少设置有电源pin和接地pin。

s132:cpld根据外接连接器的电源pin和接地pin的连接状态,确定待输出的uart信号为sysuart信号或bmcuart信号。其中电源pin和接地pin连接,以及电源pin和接地pin不连接两种状态,分别与sysuart信号及bmcuart信号一一匹配。

当有两组uart信号时,可以直接根据步骤s132中电源pin和接地pin的连接状态,确定输出sysuart信号或bmcuart信号。例如:当电源pin和接地pin连接时,输出sysuart信号,当电源pin和接地pin不连接时,输出bmcuart信号;或者,当电源pin和接地pin连接时,输出bmcuart信号,当电源pin和接地pin不连接时,输出sysuart信号。

当有三组或者三组以上uart信号时,可以在利用一拨码开关和cpld的gpio接口来确定待输出的uart信号是sysuart信号或bmcuart信号。其中,拨码开关和cpld的gpio接口的连接方式,可以参见图4,图4中针对第一个uart信号,拨码开关的端口1接地,端口2接电源,且端口2连接cpld的gpio接口;以此类推,针对第二个uart信号,拨码开关的端口3接地,端口4接电源,且端口4连接cpld的gpio接口。

本实施例可以采用跳帽连接电源pin和接地pin,两个pin之间连接跳帽表示处于连接状态,拔开跳帽表示处于不连接状态。

第二种硬件实现方式包括如下步骤:

s231:在外接连接器与cpld之间设置一逻辑或门电路,逻辑或门电路的输入端与外接连接器连接,逻辑或门电路的输出端与cpld连接,且逻辑或门电路的输入端至少包括第一输入端和第二输入端,其中,第一输入与外接连接器的电源pin连接,第二输入端与外接连接器的接地pin连接。

本实施例利用逻辑或门电路来获取外接连接器的电源pin和接地pin的连接状态。

s232:根据逻辑或门电路第一输入端或第二输入端的电平状态,确定待输出的uart信号为sysuart信号或bmcuart信号。

具体地,根据逻辑或门电路输入端的不同选通状态与待输出信号的对应关系,步骤s232中确定待输出的uart信号的方法有两种:

方法a:

假设第一输入端为p3v3,第二输入端为gnd,当第一输入端为高电平且第二输入端为低电平,第一输入端为低电平且第二输入端为高电平,或者,第一输入端和第二输入端均为高电平时,确定待输出的uart信号为sysuart信号;

当第一输入端和第二输入端均为低电平时,例如:采用跳冒将第一输入端和第二输入端短接后,确定待输出的uart信号为bmcuart信号。

方法b:当第一输入端和第二输入端中至少有一个高电平时,确定待输出的uart信号为bmcuart信号;

当第一输入端和第二输入端均为地低电平时,例如:采用跳冒将第一输入端和第二输入端短接后,确定待输出的uart信号为sysuart信号。

由以上步骤s131和s132以及步骤s231和s232可知,oe2的链路模式是采用硬件线路的方法进行串口切换。硬件线路可采用逻辑或门电路,根据逻辑或门电路中电源pin和接地pin的电平进行uart信号的选通,从而实现串口切换。

由以上步骤s1和s3可知,本实施例中可以通过一cpld,获取控制使能信号和多组uart信号,以及根据所获取的控制使能信号从多组uart信号中最终确定待输出的uart信号,这种对多串口进行自动切换的方法,相比于现有技术中的手动切换,能够大大提高切换效率和切换的灵活性。

继续参见图2可知,利用cpld确定待输出的uart信号之后,执行步骤s4:利用一外接连接器,对待输出的uart信号进行输出。

由于本实施例中在多个串口时,cpld输出的待输出uart信号最终通过一个外接连接器连接到debug端,能够节省出更多的板面空间,减小pcb板密度,还有利于节省物料成本。

进一步地,本实施例中在步骤s3之前,还包括步骤s2:对控制使能信号以及多组uart信号进行滤波。通过进行信号滤波,能够有效防止控制使能信号和uart信号的异常波动,从而提高串口切换的准确性。

本实施例中对cpld所获取的控制使能信号以及多组uart信号进行滤波的方法,可以采用软件滤波,这种滤波方法有利于节省板面空间,且便于实现,从而提高串口切换效率。软件滤波采用现有技术中的滤波方法,在此不再赘详细描述。

实施例二

在图2、图3和图4所示实施例的基础之上参见图5,图5为本申请实施例所提供的一种基于cpld实现多串口切换的系统的结构示意图。由图5可知,本实施例中基于cpld实现多串口切换的系统中包括:信号获取模块、待输出信号确定模块和一外接连接器。信号获取模块和待输出信号确定模块可以通过一cpld实现,外接连接器的输入端与cpld的输出端连接,外接连接器的输出端与debug端连接。

其中,信号获取模块,用于获取控制使能信号以及来自控制端bmc中uart模块的多组uart信号。uart模块包括sysuart模块和bmcuart模块,且sysuart模块发出sysuart信号,bmcuart模块发出bmcuart信号。

待输出信号确定模块,用于根据控制使能信号,利用cpld从多组uart信号中确定待输出的uart信号。

进一步地,根据控制使能信号的不同获取方式,待输出信号确定模块有两种结构。第一种待输出信号确定模块包括:bmcgpio信号获取单元和确定单元。其中,bmcgpio信号获取单元用于获取来自控制端bmc的bmcgpio信号,一个bmcgpio信号包括高电平和低电平两种电平状态;确定单元用于根据bmcgpio信号的电平状态,确定待输出的uart信号为sysuart信号或bmcuart信号,其中,两种电平状态分别与sysuart信号及bmcuart信号一一匹配。

第二种待输出信号确定模块包括:信号线和待输出信号选择单元。其中,信号线用于连接外接连接器和cpld,且外接连接器中至少设置有电源pin和接地pin。待输出信号选择单元,用于根据外接连接器的电源pin和接地pin的连接状态,确定待输出的uart信号为sysuart信号或bmcuart信号,其中电源pin和接地pin连接,以及电源pin和接地pin不连接两种状态,分别与sysuart信号及bmcuart信号一一匹配。

第二种待输出信号确定模块也可以采用一逻辑或门电路和输出信号确定单元。其中,逻辑或门电路的输入端与外接连接器连接,逻辑或门电路的输出端与cpld连接,且逻辑或门电路至少包括第一输入端和第二输入端,其中,第一输入与外接连接器的电源pin连接,第二输入端与外接连接器的接地pin连接。输出信号确定单元用于根据逻辑或门电路第一输入端和第二输入端的电平状态,确定待输出的uart信号为sysuart信号或bmcuart信号。

由图5可知,本实施例中的系统还包括一个外接连接器,用于对待输出的uart信号进行输出。

进一步地,本实施例中基于cpld实现多串口切换的系统中还包括滤波模块,用于对控制使能信号以及多组uart信号进行滤波,从而去除干扰信号,避免控制使能信号以及多组uart信号的异常波动,有利于进一步提高串口切换的准确性。

本实施例中基于cpld实现多串口切换的系统的工作原理和工作方法,在图2-图4所示的实施例一种已经详细阐述,两个实施例之间可以互相参照,在此不再赘述。

本申请还提供一种基于cpld实现多串口切换的板卡,该板卡中包括bmc以及如上所述的基于cpld实现多串口切换的系统。其中,bmc中包括uart模块,基于cpld实现多串口切换的系统中包括一cpld和一个外接连接器,cpld中又包括信号获取模块和待输出信号确定模块。该板卡通过设置一cpld,能够获取来自bmc或硬件线路的控制使能信号,并获取bmc中uart模块的多组uart信号,并根据所获取的控制使能信号,从多组uart信号中最终确定待输出的uart信号,最后通过一个外接连接器对待输出的uart信号进行输出,从而实现多串口情况下的自动串口切换,且可以通过软件或硬件方式实现串口的灵活切换,串口切换的效率和切换灵活性高。由于该板卡中cpld的输出端仅连接一个外接连接器,有利于节省板卡的板面空间,降低板卡密度。

以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1