一种基于UART总线的数据传输方法、系统、介质及设备与流程

文档序号:26139522发布日期:2021-08-03 14:23阅读:111来源:国知局
一种基于UART总线的数据传输方法、系统、介质及设备与流程

本发明涉及总线技术领域,尤其涉及一种基于uart总线的数据传输方法、系统、介质及设备。



背景技术:

随着现有服务器产品功能及硬件密度的不断提升,服务器系统中对于硬件设计精简化的要求日益增加。uart作为一种常用异步全双工通信协议,其协议需要主从uart设备一对一连接的方式,在外部uart从设备数量不断增加的状况下,大大提升了对硬件资源的需求。

图1示出了现有技术的uart总线链路架构示意图。如图1所示,其中,uartmaster表示uart链路中的主控制器端,例如bmc(基本管理控制器)、pch等设备;uartslave表示uart链路中的从设备端,例如cpld、智能网卡等设备。图示中一个uartmaster的每一组uart连接一个uartslave设备,可以通过uart连接多个uart从设备,进行数据的异步全双工通信。

uartmaster与多个uartslave设备进行互连链路中,每个uartmaster都需要tx发送端通过一根uart总线与uartslave的rx接收端相连,且相应的,每个uartmaster的rx接收端都需要通过一根uart总线与uartslave的tx发送端相连。在uartslave设备越多的情况下,需要占用uartmaster更多的tx发送端和rx接收端,因而需要的硬件资源就越多,并且,当uartmaster的tx发送端和rx接收端数量不够时也会带来资源不足的麻烦。



技术实现要素:

有鉴于此,本发明的目的在于提出一种基于uart总线的数据传输方法、系统、介质及设备,用以解决现有技术中uart主设备的发送端和接收端资源不足的问题。

基于上述目的,本发明提供了一种基于uart总线的数据传输方法,包括以下步骤:

由主设备将命令通过第一主uart通道传输到cpld;

响应于cpld接收到命令,将命令通过各第一从uart通道分别传输到各从设备;

响应于各从设备分别接收到命令,基于命令分别将相关数据输出到各自的第二从uart通道;

分别对各第二从uart通道进行通道有效性分析以确认其中的有效通道,并由cpld将有效通道中的数据通过第二主uart通道传输到主设备。

在一些实施例中,分别对各第二从uart通道进行通道有效性分析以确认其中的有效通道,并由cpld将有效通道中的数据通过第二主uart通道传输到主设备包括:

监测各第二从uart通道的cpld端的电平;

响应于监测到有第二从uart通道的cpld端的电平变为低电平,监测预设时间段内是否有其他第二从uart通道的cpld端的电平变为低电平,并对所述第二从uart通道进行通道有效性分析以及基于分析结果将其中的数据通过所述第二主uart通道传输到所述主设备;

响应于预设时间段内有其他第二从uart通道的cpld端的电平变为低电平,对其他第二从uart通道进行通道有效性分析以确认其是否分别为有效通道;

响应于有其他第二从uart通道为有效通道,判断第二主uart通道是否空闲;

响应于第二主uart通道空闲,由cpld依次将各有效通道中的数据通过第二主uart通道传输到主设备。

在一些实施例中,方法还包括:响应于第二主uart通道繁忙,由cpld依次将各有效通道中的数据进行存储。

在一些实施例中,由cpld依次将各有效通道中的数据通过第二主uart通道传输到主设备包括:

由cpld将优先变为低电平的cpld端对应的有效通道中的数据通过第二主uart通道向主设备传输,直到将停止位数据传输到主设备,停止有效通道的数据传输;

针对下一有效通道的数据重复前一步骤,直到各有效通道中的数据依次通过第二主uart通道传输到主设备。

在一些实施例中,对该第二从uart通道进行通道有效性分析以及基于分析结果将其中的数据通过所述第二主uart通道传输到所述主设备包括:

对该第二从uart通道进行通道有效性分析以确认其是否为有效通道;

响应于该第二从uart通道为有效通道,由cpld将该第二从uart通道中的数据通过第二主uart通道向主设备传输,直到将停止位数据传输到主设备,停止该第二从uart通道的数据传输。

在一些实施例中,通道有效性分析包括:

判断第二从uart通道中的数据长度是否大于或等于预设最短数据长度;

响应于第二从uart通道中的数据长度大于或等于预设最短数据长度,确认第二从uart通道为有效通道。

在一些实施例中,方法还包括:

监测第二从uart通道中的数据长度小于预设最短数据长度的次数;

响应于有第二从uart通道中的数据长度连续n次小于预设最短数据长度,确认该第二从uart通道为异常通道并将其舍弃。

本发明的另一方面,还提供了一种基于uart总线的数据传输系统,包括:

第一主uart通道传输模块,配置用于由主设备将命令通过第一主uart通道传输到cpld;

第一从uart通道传输模块,配置用于响应于cpld接收到命令,将命令通过各第一从uart通道分别传输到各从设备;

数据输出模块,配置用于响应于各从设备分别接收到命令,基于命令分别将相关数据输出到各自的第二从uart通道;以及

有效传输模块,配置用于分别对各第二从uart通道进行通道有效性分析以确认其中的有效通道,并由cpld将有效通道中的数据通过第二主uart通道传输到主设备。

本发明的又一方面,还提供了一种计算机可读存储介质,存储有计算机程序指令,该计算机程序指令被执行时实现上述任意一项方法。

本发明的再一方面,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该计算机程序被处理器执行时执行上述任意一项方法。

本发明至少具有以下有益技术效果:

本发明通过在主设备和各从设备之间设置了cpld,使得主设备的命令通过cpld发送到各从设备,各从设备的数据通过cpld发送到主设备,从而使得主设备只需要一个发送端和一个接收端;通过使用cpld,有效缓解了主设备的端口不足的情况,使得数据收发依然能够正常进行。

附图说明

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

图1为现有技术的uart总线链路架构示意图;

图2为根据本发明实施例提供的基于uart总线的数据传输方法的示意图;

图3为根据本发明实施例提供的uart总线链路架构示意图;

图4为根据本发明实施例提供的基于uart总线的数据传输系统的示意图;

图5为根据本发明实施例提供的实现基于uart总线的数据传输方法的计算机可读存储介质的示意图;

图6为根据本发明实施例提供的执行基于uart总线的数据传输方法的计算机设备的硬件结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。

需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称的非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备固有的其他步骤或单元。

基于上述目的,本发明实施例的第一个方面,提出了一种基于uart总线的数据传输方法的实施例。图2示出的是本发明提供的基于uart总线的数据传输方法的实施例的示意图。如图2所示,本发明实施例包括如下步骤:

步骤s10、由主设备将命令通过第一主uart通道传输到cpld;

步骤s20、响应于cpld接收到命令,将命令通过各第一从uart通道分别传输到各从设备;

步骤s30、响应于各从设备分别接收到命令,基于命令分别将相关数据输出到各自的第二从uart通道;

步骤s40、分别对各第二从uart通道进行通道有效性分析以确认其中的有效通道,并由cpld将有效通道中的数据通过第二主uart通道传输到主设备。

图3示出了根据本发明实施例提供的uart总线链路架构示意图。如图3所示,第一主uart通道(uart_tx_m)的两端分别是主设备(uartmaster)和cpld,具体的,分别是主设备的发送端(tx_m)和cpld的接收端(rx_in);相应的,第二主uart通道(uart_rx_m)的两端也分别是主设备和cpld,具体的,分别是主设备的接收端(rx_m)和cpld的发送端(tx_out)。cpld的uarttxmodule端通过各第一从uart通道与各从设备(uartslave)连接,用于向各从设发送来自主设备的命令;uartrxmodule端通过各第二从uart通道与各从设备连接,用于接收来自各从设备的数据。cpld将来自从设备的数据发送到主设备时,由于第二主uart通道只有一条,因此每次只能将一个从设备的数据通过第二主uart通道发送到主设备。

cpld(complexprogramminglogicdevice)表示复杂可编程逻辑器件,通过采用cmoseprom、eeprom、快闪存储器和sram(静态随机存储器)等编程技术,从而构成了高密度、高速度和低功耗的可编程逻辑器。是一种用户根据各自需要而自行构造逻辑功能的数字集成电路,其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,并通过下载电缆将代码传送到目标芯片中以实现设计的数字系统。

uart(universalasynchronousreceiver/transmitter)通用异步收发传输器,是一种通用串行数据总线,用于异步通信,该总线双向通信,可以实现全双工传输和接收。其作为异步串口通信协议的一种,工作原理是将传输数据的每个字符一位接一位地传输。

本发明实施例中,通过在主设备和各从设备之间设置了cpld,使得主设备的命令通过cpld发送到各从设备,各从设备的数据通过cpld发送到主设备,从而使得主设备只需要一个发送端和一个接收端;通过使用cpld,有效缓解了主设备的端口不足的情况,使得数据收发依然能够正常进行。由于cpld的端口多,且其端口多数可以扩展,可以将端口设置为需要的功能,所以本发明实施例通过使用cpld有效提高了在主设备端口不足时进行应变的灵活性。

在一些实施例中,分别对各第二从uart通道进行通道有效性分析以确认其中的有效通道,并由cpld将有效通道中的数据通过第二主uart通道传输到主设备包括:监测各第二从uart通道的cpld端的电平;响应于监测到有第二从uart通道的cpld端的电平变为低电平,监测预设时间段内是否有其他第二从uart通道的cpld端的电平变为低电平,并对所述第二从uart通道进行通道有效性分析以及基于分析结果将其中的数据通过所述第二主uart通道传输到所述主设备;响应于预设时间段内有其他第二从uart通道的cpld端的电平变为低电平,对其他第二从uart通道进行通道有效性分析以确认其是否分别为有效通道;响应于有其他第二从uart通道为有效通道,判断第二主uart通道是否空闲;响应于第二主uart通道空闲,由cpld依次将各有效通道中的数据通过第二主uart通道传输到主设备。

本实施例中,当监测到有一个第二从uart通道的cpld端的电平变为低电平时,便监测在预设时间段内是否有其他第二从uart通道的cpld端的电平变为低电平。由于cpld到各从设备的uart链路长度可能有所不同,导致不同的第二从uart通道会有不同的传输延时,并且由于各从设备的设备类型不同使得对命令或者数据的处理时间不同,导致从设备发出数据的时间点不同,因此在监测到一个第二从uart通道的cpld端的电平变为低电平时设置了预设时间内对其他第二从uart通道的cpld端进行监测。该预设时间段为各从设备中的最大传输延时之差(即各从设备通过各第二从uart通道传输最快与传输最慢的传输延时之差)加上各从设备发出数据的最大时间差(即发出数据最快的从设备与发出数据最慢的从设备所用时间之差),以保障不会漏掉发出数据请求的从设备。该预设时间段是提前经多次试验评估计算而得到的,评估计算包括对各uart链路传输延时的统计及计算,以及对各从设备收到命令后发出数据的时间的统计及计算。

在一些实施例中,方法还包括:响应于第二主uart通道繁忙,由cpld依次将各有效通道中的数据进行存储。然后直到第二主uart通道空闲,由cpld依次将各有效通道中的数据通过第二主uart通道传输到主设备。本实施例中,当第二主uart通道繁忙时,其是在传输上述实施例中的第一个电平变低的cpld端对应的第二从uart通道中的数据,同时表明该第二从uart通道为有效通道,当第二主uart通道空闲了,便继续传输下一有效通道中的数据。

在一些实施例中,由cpld依次将各有效通道中的数据通过第二主uart通道传输到主设备包括:由cpld将优先变为低电平的cpld端对应的有效通道中的数据通过第二主uart通道向主设备传输,直到将停止位数据传输到主设备,停止有效通道的数据传输;针对下一有效通道的数据重复前一步骤,直到各有效通道中的数据依次通过第二主uart通道传输到主设备。本实施例中,第二主uart通道每次只传输一个有效通道中的数据,停止位数据是每个有效通道中的数据的最后一位,当主设备每次收到正在传输的有效通道中的停止位数据时,表示该有效通道中的数据传输完毕,便可以进行下一有效通道的数据传输。

在一些实施例中,对该第二从uart通道进行通道有效性分析以及基于分析结果将其中的数据通过所述第二主uart通道传输到所述主设备包括:对该第二从uart通道进行通道有效性分析以确认其是否为有效通道;响应于该第二从uart通道为有效通道,由cpld将该第二从uart通道中的数据通过第二主uart通道向主设备传输,直到将停止位数据传输到主设备,停止该第二从uart通道的数据传输。本实施例中,该第二从uart通道为第一个电平变低的cpld端对应的第二从uart通道,其同样遵循先分析通道有效性的原则。

在一些实施例中,通道有效性分析包括:判断第二从uart通道中的数据长度是否大于或等于预设最短数据长度;响应于第二从uart通道中的数据长度大于或等于预设最短数据长度,确认第二从uart通道为有效通道。本实施例中,预设最短数据长度可以是8bit,也可以根据实际的从设备类型或其他情况而定。

在一些实施例中,方法还包括:监测第二从uart通道中的数据长度小于预设最短数据长度的次数;响应于有第二从uart通道中的数据长度连续n次小于预设最短数据长度,确认该第二从uart通道为异常通道并将其舍弃。本实施例中,n为大于等于1的整数,可以根据对第二从uart通道的安全程度的高低来设置n,当n越小时,对无效通道的容忍度越小。当n为5时,即若有第二从uart通道中的数据长度连续5次小于预设最短数据长度,则确认该第二从uart通道为异常通道,将其舍弃,且之后也不再监测其cpld端的电平。其中,第二从uart通道中的数据长度有一次小于预设最短数据长度,表示监测到该第二从uart通道的cpld端的电平变为低电平时,通过判断其数据长度分析该第二从uart通道的通道有效性,若其数据长度小于预设最短数据长度,则记录其一次非有效。

本发明实施例的第二个方面,还提供了一种基于uart总线的数据传输系统。图4示出的是本发明提供的基于uart总线的数据传输系统的实施例的示意图。一种基于uart总线的数据传输系统包括:第一主uart通道传输模块10,配置用于由主设备将命令通过第一主uart通道传输到cpld;第一从uart通道传输模块20,配置用于响应于cpld接收到命令,将命令通过各第一从uart通道分别传输到各从设备;数据输出模块30,配置用于响应于各从设备分别接收到命令,基于命令分别将相关数据输出到各自的第二从uart通道;以及有效传输模块40,配置用于分别对各第二从uart通道进行通道有效性分析以确认其中的有效通道,并由cpld将有效通道中的数据通过第二主uart通道传输到主设备。

本发明实施例的基于uart总线的数据传输系统,通过在主设备和各从设备之间设置了cpld,使得主设备的命令通过cpld发送到各从设备,各从设备的数据通过cpld发送到主设备,从而使得主设备只需要一个发送端和一个接收端;通过使用cpld,有效缓解了主设备的端口不足的情况,使得数据收发依然能够正常进行。由于cpld的端口多,且其端口多数可以扩展,可以将端口设置为需要的功能,所以通过使用cpld有效提高了在主设备端口不足时进行应变的灵活性。

在一些实施例中,有效传输模块40包括:监测模块,配置用于监测各第二从uart通道的cpld端的电平;低电平监测模块,配置用于响应于监测到有第二从uart通道的cpld端的电平变为低电平,监测预设时间段内是否有其他第二从uart通道的cpld端的电平变为低电平,并对所述第二从uart通道进行通道有效性分析以及基于分析结果将其中的数据通过所述第二主uart通道传输到所述主设备;有效通道确认模块,配置用于响应于预设时间段内有其他第二从uart通道的cpld端的电平变为低电平,对其他第二从uart通道进行通道有效性分析以确认其是否分别为有效通道;空闲判断模块,配置用于响应于有其他第二从uart通道为有效通道,判断第二主uart通道是否空闲;空闲模块,配置用于响应于第二主uart通道空闲,由cpld依次将各有效通道中的数据通过第二主uart通道传输到主设备。

在一些实施例中,系统还包括第二主uart通道繁忙模块,配置用于响应于第二主uart通道繁忙,由cpld依次将各有效通道中的数据进行存储。

在一些实施例中,空闲模块进一步配置用于响应于第二主uart通道空闲,由cpld将优先变为低电平的cpld端对应的有效通道中的数据通过第二主uart通道向主设备传输,直到将停止位数据传输到主设备,停止有效通道的数据传输;针对下一有效通道的数据重复前一步骤,直到各有效通道中的数据依次通过第二主uart通道传输到主设备。

在一些实施例中,低电平监测模块包括第一低电平模块,配置用于对所述第二从uart通道进行通道有效性分析以及基于分析结果将其中的数据通过所述第二主uart通道传输到所述主设备;该第一低电平模块进一步配置用于对该第二从uart通道进行通道有效性分析以确认其是否为有效通道;响应于该第二从uart通道为有效通道,由cpld将该第二从uart通道中的数据通过第二主uart通道向主设备传输,直到将停止位数据传输到主设备,停止该第二从uart通道的数据传输。

在一些实施例中,系统还包括通道有效性分析模块,配置用于判断第二从uart通道中的数据长度是否大于或等于预设最短数据长度;响应于第二从uart通道中的数据长度大于或等于预设最短数据长度,确认第二从uart通道为有效通道。

在一些实施例中,系统还包括无效通道模块,配置用于监测第二从uart通道中的数据长度小于预设最短数据长度的次数;响应于有第二从uart通道中的数据长度连续n次小于预设最短数据长度,确认该第二从uart通道为异常通道并将其舍弃。

本发明实施例的第三个方面,还提供了一种计算机可读存储介质,图5示出了根据本发明实施例提供的实现基于uart总线的数据传输方法的计算机可读存储介质的示意图。如图5所示,计算机可读存储介质3存储有计算机程序指令31,该计算机程序指令31被执行时实现上述任意一项实施例的方法。

应当理解,在相互不冲突的情况下,以上针对根据本发明的基于uart总线的数据传输方法阐述的所有实施方式、特征和优势同样地适用于根据本发明的基于uart总线的数据传输系统和存储介质。

本发明实施例的第四个方面,还提供了一种计算机设备,包括存储器402和处理器401,该存储器中存储有计算机程序,该计算机程序被该处理器执行时实现上述任意一项实施例的方法。

如图6所示,为本发明提供的执行基于uart总线的数据传输方法的计算机设备的一个实施例的硬件结构示意图。以如图6所示的计算机设备为例,在该计算机设备中包括一个处理器401以及一个存储器402,并还可以包括:输入装置403和输出装置404。处理器401、存储器402、输入装置403和输出装置404可以通过总线或者其他方式连接,图6中以通过总线连接为例。输入装置403可接收输入的数字或字符信息,以及产生与基于uart总线的数据传输系统的用户设置以及功能控制有关的键信号输入。输出装置404可包括显示屏等显示设备。

存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的基于uart总线的数据传输方法对应的程序指令/模块。存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储基于uart总线的数据传输方法的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

处理器401通过运行存储在存储器402中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的基于uart总线的数据传输方法。

最后需要说明的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦写可编程rom(eeprom)或快闪存储器。易失性存储器可以包括随机存取存储器(ram),该ram可以充当外部高速缓存存储器。作为例子而非限制性的,ram可以以多种形式获得,比如同步ram(dram)、动态ram(dram)、同步dram(sdram)、双数据速率sdram(ddrsdram)、增强sdram(esdram)、同步链路dram(sldram)、以及直接rambusram(drram)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。

以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。

应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

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