首页> 中国专利> 基于FPGA多路UART的扩展模件及扩展方法

基于FPGA多路UART的扩展模件及扩展方法

摘要

本发明提供一种基于FPGA多路UART的扩展模件,包括:电源模块、信号处理模块、总线通讯模块、电平转换模块和接收发送信号模块。本发明所述的基于FPGA多路UART的扩展模件,通过集成FPGA芯片、RS485芯片,解决串口扩展模件无法进行高速通讯的问题,同时此板件在机构上采用标准3U插(165mm*100mm),适用于3U机箱,具有非常强的通用性,实现了多路高速UART扩展。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-04-14

    专利权的转移 IPC(主分类):G06F13/38 专利号:ZL2016104606397 登记生效日:20230403 变更事项:专利权人 变更前权利人:江苏瑞凯电气技术服务有限公司 变更后权利人:南京大全电气研究院有限公司 变更事项:地址 变更前权利人:211106 江苏省南京市江宁区经济技术开发区隐龙路28号(江宁开发区) 变更后权利人:211100 江苏省南京市江宁经济技术开发区隐龙路28号

    专利申请权、专利权的转移

  • 2019-03-12

    授权

    授权

  • 2016-11-30

    实质审查的生效 IPC(主分类):G06F13/38 申请日:20160622

    实质审查的生效

  • 2016-11-02

    公开

    公开

说明书

技术领域

本发明涉及一种基于FPGA多路UART的扩展模件,具体涉及关于一种配电自动化中高速UART扩展模件,且特别关于MAX10型FPGA、总线、UART、RS485、电力系统中使用。

背景技术

UART英文全称“Universal Asynchronous Receiver/Transmitter”,中文全称通用异步收发传输器,一种异步收发传输器,将数据由串行通讯与并行通讯件做传输转换,通常继承与通讯接口的连接上。因为CPU内部采用并行数据,不能直接把数据发送到Modem,必须经过串并转化进行异步传输,由于UART总线具有抗干扰性强、工作范围宽、连接简单、稳定性高的特点,因此被广泛应用于配电自动化领域。在配电自动化系统中,一台主机设备往往需要和多台从机设备之间通讯,由于主机设备的CPU集成的UART口较少,就需要扩展UART口,传统方法多为SPI扩展多路串口,由于受SPI通讯速度所限,扩展后的UART波特率较慢,以1路SPI扩展8路UART为例,UART的波特率在10K以下,很难实现UART的告诉通讯。

发明内容

本发明要解决的技术问题是提供一种基于FPGA多路UART的扩展模件,克服上述缺陷,解决上述问题。

为解决上述技术问题,本发明提供一种基于FPGA多路UART的扩展模件,包括:电源模块、信号处理模块、总线通讯模块、电平转换模块和接收发送信号模块,

所述电源模块的一端与所述信号处理模块连接,所述电源模块向所述信号处理模块提供电源,所述总线通讯模块的一端与所述信号处理模块连接,所述信号处理模块将接收到的信号通过所述总线通讯模块向外界传输,所述电平转换模块的一端连接所述信号处理模块,所述电平转换模块的另一端连接所述接收发送信号模块,所述电平转换模块将所述信号处理模块的电平信号转换后传至所述接收发送信号模块,由所述接收发送信号模块发送基准时间信号,所述电平转换模块将所述接收发送信号模块接收的数据转换成电平信号后传输至所述信号处理模块。

作为本发明所述一种基于FPGA多路UART的扩展模件的一种优选方案,所述电源模块包括MAX1951芯片,

所述信号处理模块包括MAX10型FPGA芯片,

所述总线通讯模块包括EPT端子,

所述电平转换模块包括RS485芯片,所述RS485芯片具有TX和RX,

所述接收发送信号模块包括TXA、TXB、RXA和RXB,

所述FPGA芯片的一端与所述MAX1951芯片连接,所述FPGA芯片的另一端与所述EPT端子连接,所述RS485芯片的一端连接所述FPGA芯片,所述RS485芯片的另一端连接所述接收发送信号模块,所述RS485芯片的TX将所述FPGA芯片的基准时间信号由TTL电平转换成RS485电平后通过TXA和TXB发送基准时间信号,所述RS485芯片的RX将所述RXA和RXB中接收的数据转换成TTL电平后传输至所述FPGA芯片。

作为本发明所述一种基于FPGA多路UART的扩展模件的一种优选方案,所述FPGA芯片包括UART模块、配置寄存器模块和FIFO模块,

所述UART模块由8个UART组成,依次为UART1至UART8,

所述配置寄存器模块由波特率配置寄存器和校验配置寄存器组成,所述波特率配置寄存器由用于配置波特率的八个位寄存组成,依次对应UART1到UART8,所述校验配置寄存器由用于配置校验方式的八个位寄存组成,依次对应UART1到UART8,

所述FIFO模块包括8800个八位寄存器,地址为0-8799,其中,地址0-3999为发送数据区,地址4000-7999为接收数据区,地址8000-8799为指令区组。

作为本发明所述一种基于FPGA多路UART的扩展模件的一种优选方案,所述地址0-3999为发送数据区具体包括地址0-499为UART1发送数据区;地址500-999为UART2发送数据区;地址1000-1499为UART3发送数据区;地址1500-1999为UART4发送数据区;地址2000-2499为UART5发送数据区;地址2500-2999为UART6发送数据区;地址3000-3499为UART7发送数据区;地址3500-3999为UART8发送数据区。

作为本发明所述一种基于FPGA多路UART的扩展模件的一种优选方案,所述地址4000-7999为接收数据区具体包括:地址4000-4499为UART1接收数据区;地址4500-4999为UART2接收数据区;地址5000-5499为UART3接收数据区;地址5500-5999为UART4接收数据区;地址6000-6499为UART5接收数据区;地址6500-6999为UART6接收数据区;地址7000-7499为UART7接收数据区;地址7500-7999为UART8接收数据区。

作为本发明所述一种基于FPGA多路UART的扩展模件的一种优选方案,所述地址8000-8799为指令区组具体包括:8000-8099为UART1的指令区;其中8100-8199为UART2的指令区;其中8200-8299为UART3的指令区;其中8300-8399为UART4的指令区;其中8400-8499为UART5的指令区;其中8500-8599为UART6的指令区;其中8600-8699为UART7的指令区;其中8700-8799为UART8的指令区。

作为本发明所述一种基于FPGA多路UART的扩展模件的一种优选方案,所述UART模块包括波特率发生器模块、发送功能模块和接收功能模块,

所述波特率发送器模块根据所述配置寄存器模块7配置的波特率,生产UART工作所需要的时钟,

所述发送功能模块根据装置CPU已经配置好的波特率及奇偶校验,生成相应的校验位,并以相应的波特率将数据发送出去,

所述接收功能模块根据已配置的波特率,检测开始位,并接收数据,当数据接收完后,根据已配置的校验类型,检验接收到的数据是否正确。

本发明还提供一种基于FPGA多路UART的扩展模件的扩展方法,

发送功能模块首先读取发送数据区中的数据,将数据存入8bit数据寄存器;校验计算器读取所述8bit数据寄存器中数据,并根据配置的校验方式,计算出校验值,并存入奇偶校验寄存器;9bit数据寄存器根据所述8bit数据寄存器和所述奇偶校验寄存器中的数据,形成一为9bit的数据,其中高8位一次对应所述8bit数据寄存器中的数据,最低位对应所述奇偶校验寄存器中的数据;所述9bit数据寄存器进入移位寄存器,所述移位寄存器依次送数据到发送状态机进行数据发送,并对数据进行相应的移位,一直到数据发送完成;

接收功能模块首先将数据接收至接收状态机,由移位寄存器将数据传至9bit数据寄存器,校验计算器读取所述9bit数据寄存器中数据,并根据配置的校验方式,计算出校验值,并存入所述奇偶校验寄存器;8bit数据寄存器根据所述奇偶校验寄存器中的数据,形成一为8bit的数据。

与现有技术相比,本发明提出的一种基于FPGA多路UART的扩展模件,通过集成FPGA芯片、RS485芯片,解决串口扩展模件无法进行高速通讯的问题,同时此板件在机构上采用标准3U插(165mm*100mm),适用于3U机箱,具有非常强的通用性,实现了多路高速UART扩展。

附图说明

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

图1是本发明的一种基于FPGA多路UART的扩展模件的硬件框图;

图2是本发明的一种基于FPGA多路UART的扩展模件的系统框图;

图3是本发明的一种基于FPGA多路UART的扩展模件的UART模块的系统框图;

图4是本发明的一种基于FPGA多路UART的扩展模件的波特率发生器模块系统框图;

图5是本发明的一种基于FPGA多路UART的扩展模件的发送状态机的系统框图;

图6是本发明的一种基于FPGA多路UART的扩展模件的接收状态机的系统框图。

其中:1为电源模块、2为信号处理模块、3为总线通讯模块、4为电平转换模块、5为接收发送信号模块、6为UART模块、7为配置寄存器模块、71为波特率配置寄存器、72为校验配置寄存器、8为FIFO模块、81为发送数据区、82为接收数据区、83为指令区组、9为波特率发生器模块、10为发送功能模块、101为8bit数据寄存器、102为校验计算器、103为奇偶校验寄存器、104为9bit数据寄存器、105为移位寄存器、106为发送状态机、11为接收功能模块、111为接收状态机、112为移位寄存器、113为9bit数据寄存器、114为校验计算器、115为奇偶校验寄存器、116为8bit位数据寄存器。

具体实施方式

本发明所述的一种基于FPGA多路UART的扩展模件,其包括:电源模块1、信号处理模块2、总线通讯模块3、电平转换模块4和接收发送信号模块5。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合具体实施方式对本发明作进一步详细的说明。

首先,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。

其次,本发明利用结构示意图等进行详细描述,在详述本发明实施例时,为便于说明,表示FPGA多路UART的扩展模件结构的示意图会不依一般比例作局部放大,而且所述示意图只是实例,其在此不应限制本发明保护的范围。此外,在实际制作中应包含长度、宽度及深度的三维空间。

请参阅图1,图1是本发明的一种基于FPGA多路UART的扩展模件的硬件框图。如图1所示,FPGA多路UART的扩展模件,包括:电源模块1、信号处理模块2、总线通讯模块3、电平转换模块4和接收发送信号模块5。电源模块1负责为板件供电,电源模块1的控制芯片为MAX1951,输入电压DC24V,经过DC-DC电路产生DC3.3V和DC5V,其中DC3.3V为MAX10芯片、晶振等供电,5V为光纤头等供电;信号处理模块2为MAX10型FPGA芯片,负责板件的信号处理;总线通讯模块3为EPT端子,负责装置的CPU板进行总线通讯;电平转换模块4为RS485芯片,负责电平转换。所述RS485芯片的TX将基准时间信号由TTL电平转换RS485电平后,通过接收发送信号模块5的TXA和TXB发送基准时间信号,并将所述接收发送信号模块5中的RXA和RXB中接收的数据转换为TTL电平,在板件的四周可以设置安装孔,负责安装用于和机箱连接的安装块。

请参阅图2,图2是本发明的一种基于FPGA多路UART的扩展模件的系统框图。如图2所示,由UART模块6、配置寄存器模块7、FIFO模块8三部分组成。所述UART模块6由8个UART组成,依次为UART1至UART8,他们依次负责1至8通道。配置寄存器模块7由波特率配置寄存器71和校验配置寄存器72组成。所述波特率配置寄存器71由八个位寄存组成,依次对应UART1到UART8,可以独立为各个UART配置波特率。所述校验配置寄存器72由八个位寄存组成,依次对应UART1到UART8,可以独立为各个UART配置校验方式。所述FIFO模块8共有8800个八位寄存器,地址为0-8799。地址0-3999为发送数据区81,其中地址0-499为UART1发送数据区;地址500-999为UART2发送数据区;地址1000-1499为UART3发送数据区;地址1500-1999为UART4发送数据区;地址2000-2499为UART5发送数据区;地址2500-2999为UART6发送数据区;地址3000-3499为UART7发送数据区;地址3500-3999为UART8发送数据区。地址4000-7999为接收数据区82,其中地址4000-4499为UART1接收数据区;地址

4500-4999为UART2接收数据区;地址5000-5499为UART3接收数据区;地址5500-5999为UART4接收数据区;地址6000-6499为UART5接收数据区;地址6500-6999为UART6接收数据区;地址7000-7499为UART7接收数据区;地址7500-7999为UART8接收数据区。地址8000-8799为指令区组83,其中8000-8099为UART1的指令区;其中8100-8199为UART2的指令区;其中8200-8299为UART3的指令区;其中8300-8399为UART4的指令区;其中8400-8499为UART5的指令区;其中8500-8599为UART6的指令区;其中8600-8699为UART7的指令区;其中8700-8799为UART8的指令区。

所述UART模块中的8个UART发送接收机制相同,此处以UART1为例。装置CPU先通过配置寄存器模块7分别配置UART1的波特率和校验方式。从地址0开始写入数据,每个周期写入一个8bit数据,最多可以写入500个,当发送数据全部写入发送寄存器后,再向地址为8000的UART1的指令寄存器中写入0x01,在地址为8001-8002寄存器中写入需要发送的数据个数。此时FPGA开始通过UART1发送数据,当全部发送完UART1发送数据区中的数据后,会对此段地址的寄存器清零,同时对地址为8000-8002的UART1的指令寄存器清零,并在UART1的指令寄存器地址为8003的寄存器写入0x01。当装置CPU读到地址为8003寄存器中的值为0x01时,即表示装置CPU可以进行下次数据的发送,同时会对地址为8003的寄存器清零。

当外部通过UART1向装置发送数据,UART1会将数据进行串并转换,从地址4000向UART1的数据接收区写入接收到的数据,最大接收长度为500个,当接收完外部数据后,FPGA会在地址为再向地址为8010的UART1的指令寄存器中写入0x01,在地址为8011-8012寄存器中写入需要发送的数据个数。当装置CPU检测到地址为8010寄存器的值为0x01,并根据地址为8011-8012此时会读取UART1接收数据区的数据,当读取完后,会对此段地址的寄存器清零,同时对地址为8010-8013的UART1的指令寄存器清零,并在UART1的指令寄存器地址为8013的寄存器写入0x01。当装置CPU读到地址为8013寄存器中的值为0x01时,即表示FPGA可以进行下次数据的接收,同时会对地址为8003的寄存器清零。

请参阅图3,图3是本发明的一种基于FPGA多路UART的扩展模件的UART模块的系统框图。如图3所示,所述UART模块包括:波特率发生器模块9、发送功能模块10和接收功能模块11组成。所述波特率发送器模块9根据所述配置寄存器模块7配置的波特率,生产UART工作所需要的时钟;发送功能模块10根据装置CPU已经配置好的波特率及奇偶校验,生成相应的校验位,并以相应的波特率将数据发送出去;所述接收功能模块11指根据已配置的波特率,检测开始位,并接收数据,当数据接收完后,根据已配置的校验类型,检验接收到的数据是否正确。

发送功能模块10首先读取图2中发送数据区81中的数据,将数据存入8bit数据寄存器101;校验计算器102读取所述8bit数据寄存器101中数据,并根据配置的校验方式,计算出校验值,并存入奇偶校验寄存器103;9bit数据寄存器104根据所述8bit数据寄存器101和所述奇偶校验寄存器103中的数据,形成一为9bit的数据,其中高8位一次对应所述8bit数据寄存器101中的数据,最低位对应所述奇偶校验寄存器103中的数据;所述9bit数据寄存器104进入移位寄存器105,所述移位寄存器105依次送数据到发送状态机106进行数据发送,并对数据进行相应的移位,一直到数据发送完成。换句话说从发送数据区81把它输出的8bit数据读出来,然后存在移位寄存器105里面;然后,用就检验方法计算出1bit的奇偶校验值,并在所述奇偶校验寄存器103中进行存储,之后,从两个寄存器里面读取出存储的数据,根据前面写的高八位低一位的方法拼成9bit的数据,使用移位寄存器输出。

接收功能模块11首先将数据接收至接收状态机111,由移位寄存器112将数据传至9bit数据寄存器113,校验计算器114读取所述9bit数据寄存器113中数据,并根据配置的校验方式,计算出校验值,并存入所述奇偶校验寄存器115;8bit数据寄存器116根据所述奇偶校验寄存器115中的数据,形成一为8bit的数据。换句话说,也就是通过移位寄存器112一次性接收到的9bit数据,然后进行存储;之后,根据计算得到奇偶校验位;然后把奇偶校验位去掉发送8bit数据,送至图2的接收数据区82。

请参阅图5,图5是本发明的一种基于FPGA多路UART的扩展模件的发送状态机106的系统框图。如图5所示,其功能是将并行数据转换成串行数据向TX线上发送,依次为1位起始位、8位数据位、1位校验位和1位停止位共11位。在“待机态”时,UART发送功能模块10不工作;一但有发送指令,即进入“发送态”,依次发送1位开始位、8位数据位、1位结束位;数据发送完后回到“待机态”,等待下一次数据发送。

请参阅图6,图6是本发明的一种基于FPGA多路UART的扩展模件的接收状态机的系统框图。如图6所示,其功能是将RX线上接收到的串行数据转换为并行数据。在“待机态”下,当检测到低电平,会确认是否为数据的开始位,一旦确定为开始,进入“接收态”。在“接收态”下依次接收8bit数据,1bit校验位,接收完后后进入“数据校验”。在“数据校验”中当计算的校验值和校验位吻合时,将数据存入数据接收区同时进入“待机态”,准备接收下一个数据;当计算的校验值和校验位不吻合,抛弃接收数据,同时进入“待机态”,准备接收下一个数据。

请参阅图4,图4是本发明的一种基于FPGA多路UART的扩展模件的波特率发生器模块系统框图。如图4所示,波特率发生器模块9可以产生八种波特率时钟,依次为2400bps、4800bps、9600bps、38400bps、43000bps、56000bps、57600bps,115200bps。它们的发送机制相同,此处以2400bps为例。“2400分频器”首先对系统时钟(F1)进行分频,分频倍数为F1/2400*16;“2400计数器”对系统时钟进行计数,在(0-(F1/2400*16-2))时,数据为0,当F1/2400*16-1时,输出高电平,数据为1;“2400波特率时钟”根据“2400计数器”数据数据输出高低电平,若数据为0为低电平,若数据为1为高电平。

所属领域内的普通技术人员应该能够理解的是,本发明的特点或目的之一在于:本发明所述的基于FPGA多路UART的扩展模件,通过集成FPGA芯片、RS485芯片,解决串口扩展模件无法进行高速通讯的问题,同时此板件在机构上采用标准3U插(165mm*100mm),适用于3U机箱,具有非常强的通用性,实现了多路高速UART扩展。

应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号