CN114661655B - 一种星载测控数传一体机fpga程序在轨重构系统及方法 - Google Patents

一种星载测控数传一体机fpga程序在轨重构系统及方法 Download PDF

Info

Publication number
CN114661655B
CN114661655B CN202210571710.4A CN202210571710A CN114661655B CN 114661655 B CN114661655 B CN 114661655B CN 202210571710 A CN202210571710 A CN 202210571710A CN 114661655 B CN114661655 B CN 114661655B
Authority
CN
China
Prior art keywords
chip
fpga
pin
spi
data transmission
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210571710.4A
Other languages
English (en)
Other versions
CN114661655A (zh
Inventor
何林飞
李晓飞
韩俊博
霍恩广
靳云龙
柴超
宋德民
贺健
姚子叶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin Xunlian Technology Co ltd
Original Assignee
Tianjin Xunlian Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tianjin Xunlian Technology Co ltd filed Critical Tianjin Xunlian Technology Co ltd
Priority to CN202210571710.4A priority Critical patent/CN114661655B/zh
Publication of CN114661655A publication Critical patent/CN114661655A/zh
Application granted granted Critical
Publication of CN114661655B publication Critical patent/CN114661655B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7885Runtime interface, e.g. data exchange, runtime control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Arrangements For Transmission Of Measured Signals (AREA)
  • Train Traffic Observation, Control, And Security (AREA)

Abstract

本发明提供了一种星载测控数传一体机FPGA程序在轨重构系统,包括:处理器ARM芯片接收星务计算机发送的成型重构指令后,通过控制总线缓冲门断开FPGA和两个SPI flash芯片之间的片选信号连接,同时处理器ARM芯片通过串口从FPGA读取上注数据,使用SPI总线实现对上注存储器的程序写入;SPI存储器,用于存储FPGA芯片运行所需的程序代码;总线缓冲门,用于控制FPGA片选管脚FCS_B与2片SPI存储器的片选管脚使能导通。本发明所述的星载测控数传一体机系统,在电路上增加一个总线缓冲门,增加1个FPGA代码存储SPI芯片,即可实现程序在轨升级功能;无需复杂的FPGA加载专用刷新芯片或控制芯片,所需额外功耗很小,成本极低,适用于商业航天领域。

Description

一种星载测控数传一体机FPGA程序在轨重构系统及方法
技术领域
本发明属于FPGA程序重构技术领域,尤其是涉及一种星载测控数传一体机FPGA程序在轨重构系统及方法。
背景技术
目前大多数卫星的测控、数传单机的数据处理单元等采用FPGA+ARM的灵活架构。
测控数传一体机与地面测控数传站联合建立星地链路,完成星地遥控/遥测以及对地数传任务。测控数传一体机具有的主要功能如下:
1)遥控:星地遥控数据接收。接收地面测控站发送的X波段上行扩频遥控信号,完成解扩、解调,并对解扩解调后的遥控信号进行处理,产生直接指令输出或将遥控数据转发给星务。
2)高速上行:具备高速上行通道,实现本机、星务及载荷程序在轨更新。高速上行接收到的上注数据包首先存储于数传的固存中。
3)遥测:向地面测控站发射X波段下行扩频遥测信号,将卫星遥测信息下传地面。
4)数传:载荷数据先通过LVDS传输给数传,存储于数传的固存中。当卫星过境时再通过数传下行通道进行下传。
其功能较多,需要的FPGA资源多,航天常用的virtex2,virtex4等不能满足资源要求,需要选择更大逻辑资源的FPGA.同时需要考虑低功耗等要求。
有鉴于此,xilinx公司artix 7系列FPGA加STM32单片架构成为一种有效、可行的方案。
由于地面测试的不充分性,在设备发射升空后,有时仍然存在对FPGA代码升级的需求。ARM代码数据量小,程序在轨重构升级非常成熟。而FPGA代码一般有几兆字节,常规程序重构方案需要专门的控制器芯片配合才能完成。
常规航天FPGA在轨升级采用控制器FPGA,采用SelectMAP加载方式,所用控制器一般为ACLTEL公司反熔丝或者flash结构FPGA或者专用FPGA加载控制芯片(如上海复旦微公司抗辐射回读刷新芯片JFMRS01RH,航天772所刷新芯片BSV1CQRH,BSV2CQRH,BM501)。
这种系统过于庞大,且价格昂贵,同时需要额外功耗0.5W以上,不适合商业航天的应用。
同时目前市面上的刷新芯片均不支持xilinx公司artix 7系列fpga程序重构,不适合artix 7fpga+STM32架构的星载测控数传一体机FPGA程序在轨重构。
4款刷新芯片的手册介绍如下:
JFMRS01RH支持复旦微电子公司研制的JFM4V系列以及JFM7V系列FPGA器件,以及Xilinx公司主流FPGA,包括VIRTEX2、VIRTEX4、VIRTEX5、VIRTEX6、VIRTEX7、KINTEX7系列。
BSV1CQRH是一款专门针对SRAM型FPGA的配置存储器进行刷新的芯片,支持Xilinx公司Virtex系列XQVR300、XQVR600和XQVR1000型耐辐照FPGA,以及与上述产品兼容的北京微电子技术研究所的BQVR300RH(单粒子翻转加固)型宇航级FPGA系列产品。
BSV2CQRH是一款专门针对SRAM型FPGA的配置存储器进行刷新的芯片。BSV2CQRH刷新芯片支持Xilinx公司Virtex2系列XQR2V1000、XQR2V3000、XQR2V6000耐辐照FPGA,以及与上述产品完全功能兼容的北京微电子技术研究所的BQR2V1000、BQR2V3000、BQR2V6000型宇航级FPGA系列产品。
BM501-003CBRH/BM501-003CBRBB是一款支持1到4片Xilinx公司Virtex/Virtex2/Virtex4/Virtex5系列XQVR300、XQR2V3000、XQR4VSX55、XQR5VSX95T、XQR5VLX155T、XQR5VFX130T 6种型号耐辐照SRAM型FPGA,以及与上述产品兼容的北京微电子技术研究所的BQVR300RH、BQR2V3000、BQR5VSX95T型宇航级FPGA系列产品的上电配置、定时刷新、回读刷新、在轨重构功能的FPGA动态重构管理。同样不支持xilinx 7系列(kintex 7,VIRTEX7,artix 7)fpga的代码重构控制。
发明内容
有鉴于此,本发明旨在提出一种星载测控数传一体机FPGA程序在轨重构系统及方法,以实现无需增加复杂的FPGA刷新控制芯片或者控制器,同时可以支持artix 7系列FPGA的代码重构。
为达到上述目的,本发明的技术方案是这样实现的:
一种星载测控数传一体机FPGA程序在轨重构系统,包括:测控数传一体机,测控数传一体机与星务计算机通过CAN总线连接,测控数传一体机包括:处理器ARM芯片、FPGA芯片、SPI flash芯片1、SPI flash芯片2、总线缓冲门、固存NAND flash;
处理器ARM芯片接收星务计算机发送的成型重构指令后,通过控制总线缓冲门断开FPGA芯片和两个SPI flash芯片之间的片选信号连接,同时处理器ARM初始化与SPIflash2芯片连接的管脚为SPI功能,处理器ARM芯片通过FPGA芯片从固存NAND flash中读取上注数据,使用SPI总线实现对SPI flash2芯片的上注数据擦除和程序写入;
处理器ARM芯片,用于测控数传一体机运行控制和实现对SPI flash芯片1、SPIflash芯片2擦除和写入程序;
SPI存储器,用于存储FPGA芯片运行所需的程序代码;
总线缓冲门,用于控制FPGA片选管脚FCS_B与两个SPI flash芯片的片选管脚导通和关断。
固存NAND flash,用于临时存储上注数据和其它载荷数据。
进一步的,FPGA芯片的配置管脚CCLK分别与SPI flash芯片1的管脚CLK、SPIflash芯片2的管脚CLK连接,FPGA芯片的配置管脚D00_MOSI分别与SPI flash芯片1的管脚DIN、SPI flash芯片2的管脚DIN连接,FPGA芯片的配置管脚D01_DIN分别与SPI flash芯片1的管脚DOUT、SPI flash芯片2的管脚DOUT连接。
进一步的,处理器ARM芯片的SPI功能管脚MISO与SPI flash芯片2的管脚DOUT连接,处理器ARM芯片的SPI功能管脚MOSI与SPI flash芯片2的管脚DIN连接,处理器ARM芯片的SPI功能管脚CLK与SPI flash芯片2的管脚CLK连接,处理器ARM芯片的SPI功能管脚NSS与SPI flash芯片2的管脚CS连接。
进一步的,FPGA芯片的管脚UART、PROGRAM_B、DONE与处理器ARM芯片的管脚UART、IO3、IO4连接。
进一步的,选择总线缓冲门用于控制FPGA片选管脚FCS_B与两个SPIflash芯片的片选管脚使能导通,总线缓冲门包括四个通道,四个通道分别包括通道1、通道2、通道3、通道4,使用其中通道1和通道2;FPGA芯片的管脚FCS_B分别与通道1的管脚1A、通道2的管脚2A连接,ARM芯片的管脚IO1(即使能信号EN_CS1)、IO2(即使能信号EN_CS2)分别与通道1的管脚1OE、通道2的管脚2OE连接,通道1的管脚1Y与SPI flash芯片1的管脚CS连接,通道2的管脚2Y与SPI flash芯片2的管脚CS连接。
FPGA的配置模式为Master SPI模式。FPGA芯片的配置管脚M0,M1,M2,M0连接电压端,M1,M2均连接接地端。
一种星载测控数传一体机FPGA程序在轨重构方法,包括以下步骤:
S1、地面将所需FPGA代码编译完成,并生成bin文件且分包为上注数据包;
S2、地面站将分包好的FPGA上注数据包通过上行测控链路发送给测控数传一体机,测控数传一体机将上注数据包临时存储到固存NAND flash中;
S3、测控数传一体机加电后,处理器ARM芯片上电,处理器ARM芯片选择SPI flash芯片1,作为FPGA芯片程序加载使用;
S4、处理器ARM芯片给FPGA芯片一个PROGRAM_B低脉冲信号,控制FPGA重新加载;
S5、监控FPGA芯片的DONE状态,待DONE状态变高后,测控数传一体机进入默认的工作状态;
S6、星务计算机根据任务需要给测控数传一体机发送FPGA程序全重构或FPGA程序部分重构开始指令;
S7、测控数传一体机进入FPGA程序全重构或FPGA程序部分重构模式;执行FPGA程序重构。
进一步的,步骤S1中上注数据包格式如下:
帧头-包计数-数据-校验和;其中帧头为EB90,包计数为0~4095,每个包对应4096字节数据,校验和为包计数和数据部分按字节无符号数据累加和取低2字节;
每个上注数据包的总包数由FPGA芯片配置文件的大小决定,对于XC7A200T其配置文件大小为77845216bits对应的总包数2376,其中最后一包填充1444字节FF数据;对于7K325T总包数2794。
进一步的,FPGA程序全部重构过程如下:
S601、处理器ARM芯片通过控制总线缓冲门断开FPGA和两个SPI flash芯片之间的片选信号连接;处理器ARM芯片初始化其与SPI flash芯片2连接的管脚为SPI功能,并控制SPI flash芯片2数据全擦除;
S602、测控数传一体机的处理器ARM接收标号为n的上注数据包;对上注数据包n的数据进行校验,如果校验通过,将上注数据包n的数据写入到SPI flash芯片2对应的地址中;
S603、同时通过遥测告知星务计算机上注数据n校验通过;
S604、如果校验错误,通过遥测告知星务计算机上注数据包n验证未通过,同时将上注数据包的包号n告知星务计算机;通过串口给FPGA发送应答数据;
依次循环步骤S602-S604,直到循环至最后一个上注数据包,校验完成后跳出循环;
S606、完成FPGA程序全重构。
进一步的,FPGA程序部分重构过程如下:
S701、星务计算机将错误的上注数据包进行组包形成完整的错误数据包;
S702、通过卫星测控链路将组包后的错误数据包发给测控数传一体机;
S703、测控数传一体接收错误数据包后,将获取的错误数据包内的n个上注数据包进行校验,如果校验通过;将上注数据包n的数据写入到flash的对应的地址中;同时通过遥测告知星务计算机上注数据包n校验通过;如果校验错误,通过遥测告知星务计算机上注数据包n校验未通过,同时将上注数据包的包号n告知星务计算机;通过串口给FPGA发送应答数据;
S704、再次重复执行步骤S703至将所有错误数据包处理完成;
S705、完成FPGA程序部分重构。
相对于现有技术,本发明所述的一种星载测控数传一体机FPGA程序在轨重构系统及方法具有以下优势:
(1)本发明所述的一种星载测控数传一体机FPGA程序在轨重构系统及方法,其测控数传一体机的系统简单,在电路上增加一个总线缓冲门,增加1个FPGA代码存储芯片,即可实现程序在轨升级功能;无需复杂的FPGA加载专用刷新芯片或控制芯片,所需额外功耗很小,成本极低,适用于商业航天领域。
(2)本发明所述的一种星载测控数传一体机FPGA程序在轨重构系统及方法,FPGA配置采用Master SPI模式,无需采用复杂的SelectMAP加载方式;适用于xilinx公司7系列FPGA,如XC7A200T/XC7K325T等,以及其他支持SPI FLASH或QSPI FLASH加载的FPGA。
(3)本发明所述的一种星载测控数传一体机FPGA程序在轨重构系统及方法,只需要CPU一个SPI接口(可通过普通I/O管脚模拟SPI)、一个UART接口和几个普通I/O管脚配合,适用单片机实现,例如STM32系列。
(4)本发明所述的一种星载测控数传一体机FPGA程序在轨重构系统及方法,通过CPU控制可以控制FPGA使用SPI存储器1或者SPI存储器2程序加载运行,亦可控制测控数传一体机的系统进入在轨重构模式。
(5)本发明所述的一种星载测控数传一体机FPGA程序在轨重构系统及方法,支持全部代码重构或者部分代码重构。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例所述的一种星载测控数传一体机FPGA程序在轨重构系统连接示意图;
图2为本发明实施例所述的一种星载测控数传一体机FPGA程序全重构软件流程示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。
下面将参考附图并结合实施例来详细说明本发明。
如图1所示,测控数传一体机,测控数传一体机与星务计算机通过CAN总线连接,测控数传一体机包括:处理器ARM芯片、FPGA芯片、两个SPI存储器、总线缓冲门、固存NANDflash;
两个SPI存储器包括SPI flash芯片1、SPI flash芯片2;
处理器ARM芯片接收星务计算机发送的成型重构指令后,通过控制总线缓冲门断开FPGA和两个SPI flash芯片之间的片选信号连接,同时处理器ARM初始化其与SPI flash2芯片连接的管脚为SPI功能,处理器ARM芯片通过串口从FPGA的固存NAND flash中读取上注数据,使用SPI总线实现对上注SPI flash2芯片的擦除和程序写入;
处理器ARM芯片,用于测控数传一体机运行控制和实现对SPI存储器擦除和写入程序;
SPI存储器,用于存储FPGA芯片运行所需的程序代码;
总线缓冲门,用于控制FPGA芯片的片选管脚FCS_B与两个SPI存储器的片选管脚导通和关断。
其中,SPI功能指:SPI接口是一种同步串行总线(Serial PeripheralInterface),多用于Flash存储器(如NOR Flash&Nand Flash),ADC、LCD控制器等外围器件的通讯接口;通常说的SPI就是Standard SPI,有4根信号线,分别为CLK、CS、MOSI和MISO。数据线工作在全双工。SPI还可以扩展成Qual SPI(QSPI)总线,增加了两根I/O线(SIO2,SIO3),目的是一个时钟内传输4个bit数据。固存NAND flash为测控数传一体机的固存,用于临时存储上注数据和其它载荷数据。
FPGA芯片的配置管脚CCLK分别与SPI flash芯片1的管脚CLK、SPI flash芯片2的管脚CLK连接,FPGA芯片的配置管脚D00_MOSI分别与SPI flash芯片1的管脚DIN、SPI flash芯片2的管脚DIN连接,FPGA芯片的配置管脚D01_DIN分别与SPI flash芯片1的管脚DOUT、SPI flash芯片2的管脚DOUT连接。
处理器ARM芯片的SPI功能管脚MISO与SPI flash芯片2的管脚DOUT连接,处理器ARM芯片的SPI功能管脚MOSI与SPI flash芯片2的管脚DIN连接,处理器ARM芯片的SPI功能管脚CLK与SPI flash芯片2的管脚CLK连接,处理器ARM芯片的SPI功能管脚NSS与SPI flash芯片2的管脚CS连接FPGA芯片的管脚UART、PROGRAM_B、DONE与处理器ARM芯片的管脚UART、IO3、IO4连接。
选择总线缓冲门用于控制FPGA芯片的片选管脚FCS_B与两个SPI存储器的片选管脚使能导通,总线缓冲门包括四个通道,四个通道分别包括通道1、通道2、通道3、通道4,使用其中通道1和通道2。FPGA芯片的管脚FCS_B分别与通道1的管脚1A、通道2的管脚2A连接,ARM芯片的管脚IO1(即使能信号EN_CS1)、IO2(即使能信号EN_CS2)分别与通道1的管脚1OE、通道2的管脚2OE连接,通道1的管脚1Y与SPI flash芯片1的管脚CS连接,通道2的管脚2Y与SPI flash芯片2的管脚CS连接。
FPGA芯片的配置模式为Master SPI模式。FPGA芯片的配置管脚M0,M1,M2,M0连接3.3V电压端,M1,M2均连接接地端。
其中电路设计原理如下:
以xilinx公司artix 7系列FPGA芯片XC7A200T-2FBG484I为例介绍测控数传一体机的系统电路的设计,电路设计如图1所示。其中FPGA的配置管脚M0,M1,M2配置状态为100,即选择Master SPI模式;具体说明见7Series FPGAs Configuration User Guide UG470。
表1:XC7A200T-2FBG484I功能介绍
Table 2-1:7 Series FPGA Configuration Modes
Configuration Mode M[2:0] Bus Width CCLK Direction
Master Setial 000 x1 Output
Master SPI 001 x1,x2,x4 Output
Master BPI 010 x8,x16 Output
MastetSelectMAP 100 x8,x16 Output
JTAG 101 x1 NotApplicable
SlaveSeloctMAP 110 x8,x16,32<sup>(1)</sup> Input
Stwc Serial<sup>(2)</sup> 111 x1 Input
两个SPI存储器包括SPI flash芯片1、SPI flash芯片2,FPGA芯片的配置管脚CCLK分别与SPI flash芯片1的管脚CLK、SPI flash芯片2的管脚CLK连接,FPGA芯片的配置管脚D00_MOSI分别与SPI flash芯片1的管脚DIN、SPI flash芯片2的管脚DIN连接,FPGA芯片的配置管脚D01_DIN分别与SPI flash芯片1的管脚DOUT、SPI flash芯片2的管脚DOUT连接。
其中,D00_MOSI为数据输出端、D01_DIN为数据输入端、CCLK为时钟输出、FCS_B为片选;
FPGA配置代码存储芯片选用两个相同的串行SPI flash芯片,容量为128Mbit,型号为N25Q128,厂家为镁光。亦可选择256Mbit、其它厂家兼容的spi flash。其具有256个扇区,每个扇区空间为65536字节,每个扇区可独立擦除。
SPI flash芯片读写相关控制管脚包括:数据输入(DIN),数据输出(DOUT),时钟(CLK),片选(CS),数据DQ2和数据DQ3。两个SPI flash芯片的管脚数据DQ2和数据DQ3分别直接与对应的FPGA芯片的管脚D02、D03连接,仅在FPGA加载时使用,重构时写flash采用SPI模式,无需数据DQ2和数据DQ3。
两个串行SPI flash芯片的电源VCC为3.3V;FPGA的配置bank电压也为3.3V。
ARM的SPI通信接口中管脚MISO,MOSI,CLK分别于SPI flash存储芯片的DIN,DOUT,CLK连接。
这些信号当中,对于FPGA配置管脚来说,FCS_B,D00_MOSI通常为输出管脚,D01_DIN为FPGA输入管脚。
同时根据《7Series FPGAs Configuration User Guide UG470(v1.8)》August22,2014第39页,FPGA的配置管脚CCLK仅在INIT_B上升沿之后直到DONE信号变高后短暂的时间保持输出驱动状态,其它时间均为高阻状态。INIT_B上升沿在重新加载信号给PROGRAM_B上升沿之后;因而FPGA_CCLK在FPGA和ARM之间无需增加隔离芯片,减少了测控数传一体机系统的复杂度。
SPI flash芯片数据输出DOUT,仅在片选(CS)为低时才会驱动,片选无效时DOUT输出高阻。因而两片SPI flash芯片直接无需增加隔离芯片。
FPGA芯片的管脚UART、PROGRAM_B、DONE与处理器ARM芯片的管脚UART、IO3、IO4连接。
FPGA芯片的UART为2个普通IO管脚通过逻辑实现的异步串口功能。
FPGA芯片的加载通过PROGRAM_B管脚控制,当给PROGRAM_B一个低脉冲后,FPGA芯片开始重新加载。
DONE为FPGA芯片加载完成指示信号,成功加载后DONE为高(需要上拉),否则为低。
ARM芯片的UART为管脚选取2个具有的异步串口功能管脚。
ARM芯片的IO3,IO4管脚选取2个的普通I/O功能管脚,其中IO3为输出,IO4为输入。
总线缓冲门用于控制FPGA芯片的片选管脚FCS_B与2片SPI存储器的片选管脚使能导通,总线缓冲门包括四个通道,四个通道分别包括通道1、通道2、通道3、通道4,使用其中通道1和通道2。FPGA芯片的管脚FCS_B分别与通道1的管脚1A、通道2的管脚2A连接,ARM芯片的使能信号EN_CS1(管脚IO1)、使能信号EN_CS2(管脚IO2)分别与通道1的管脚1OE、通道2的管脚2OE连接,通道1的管脚1Y与SPI flash芯片1的管脚CS连接,通道2的管脚2Y与SPIflash芯片2的管脚CS连接。
两个SPI flash芯片片选分别接总线缓冲门选用SN74ALVC125的输出端口1Y和2Y。
SN74ALVC125输入1A和2A连接到FPGA芯片的片选使能管脚FCS_B。
具体连接及功能介绍如下:
处理器ARM芯片的SPI通信接口中管脚MISO,MOSI,CLK分别与SPI flash存储芯片的管脚DIN,DOUT,CLK连接。
这些信号当中,对于FPGA芯片配置管脚来说,FCS_B,D00_MOSI通常为输出管脚,D01_DIN为FPGA输入管脚。
同时根据《7Series FPGAs Configuration User Guide UG470(v1.8)》August22,2014第39页,FPGA的配置管脚CCLK仅在INIT_B上升沿之后直到DONE信号变高后短暂的时间保持输出驱动状态,其它时间均为高阻状态。INIT_B上升沿在重新加载信号PROGRAM_B上升沿之后。因而FPGA_CCLK在FPGA和ARM之间无需增加隔离芯片,减少了测控数传一体机系统的复杂度。
FPGA芯片和两片SPI flash芯片直接采用总线缓冲门SN74ALVC125控制片选信号导通连接。
处理器ARM芯片只与spi flash芯片2连接。在轨时SPI flash芯片1禁止重构,只允许对SPI flash芯片2内容进行重构,避免由于重构数据异常导致两个SPI flash芯片内容均错误,芯片FPGA无法加载成功,导致测控数传一体机功能失效。
对于ARM芯片,其SPI通信接口中管脚MISO,MOSI,CLK,NSS在非重构模式时配置成输入管脚,这样不会与FPGA芯片的输出管脚存在冲突,进而不会影响FPGA的正常加载。
处理器ARM芯片向SPI存储器内烧写通过处理器ARM芯片自带的SPI通信接口实现,或者通过普通I/O管脚模拟SPI时序。
四总线缓冲门可选用SN74ALVC125,其具有4个独立的通道.每个通道功能为:当使能管脚OE为低时,输出Y与输入A端口一样。若使能管脚OE为高,输出Y端口为高阻状态。
SN74ALVC125功能如下表所示:
表2:SN74ALVC125功能
FUNCTION TABLE(each buffer)
Figure GDA0003739077510000101
总线缓冲门的使能管脚由ARM芯片控制。默认端口1有效,即使能信号EN_CS1为低。同一时刻1OE和2OE只有一个输入为低。1OE输入为低,对应的SPI flash芯片1被选作为FPGA加载存储flash。2OE输入为低,对应的SPI flash芯片2被选作为FPGA加载存储flash。
实际使用时存储器的片选和FPGA的片选以及数据信号均接4.7K上拉电阻。
一种星载测控数传一体机FPGA程序在轨重构方法,包括以下步骤:
S1、地面将所需FPGA代码编译完成,并生成bin文件且分包为上注数据包;
S2、地面站将分包好的FPGA上注数据包通过上行测控链路发送给测控数传一体机,测控数传一体机将上注数据包临时存储到固存NAND flash中;
S3、测控数传一体机加电后,处理器ARM芯片上电,处理器ARM芯片选择SPI flash芯片1为FPGA的加载程序;
S4、给FPGA芯片一个PROGRAM_B低脉冲信号,控制FPGA重新加载;
S5、监控FPGA芯片的DONE状态,待DONE状态变高后,测控数传一体机进入默认的工作状态;
S6、星务计算机根据任务需要给测控数传一体机发送FPGA程序全重构或FPGA程序部分重构开始指令;
S7、测控数传一体机进入FPGA程序全重构或FPGA程序部分重构模式;执行FPGA程序重构。
FPGA重构流程具体如下:
1)FPGA程序正常加载模式:
默认加电状态选择SPI flash芯片1加载:
处理器ARM芯片上电后将其SPI通信接口中MISO,MOSI,CLK,NSS配置成输入管脚。
初始化使能信号EN_CS1、使能信号EN_CS2状态为01,选择SPI flash芯片1为FPGA芯片的加载flash。
给FPGA芯片一个PROGRAM_B低脉冲信号,控制FPGA芯片重新加载。
2)FPGA程序重构流程:
总流程
a)使用ISE Design Suite 14.7软件将所需FPGA代码编译完成,并生成bin文件。
b)对bin文件进行分包,添加包计数和校验信息。
其中,FPGA重构需要的上注数据包的格式如下:
帧头(2字节)、包计数(2字节)、数据(4096字节)、校验和(2字节);
其中帧头为EB90,包计数为0~4095,每个包对应4096字节数据,校验和为包计数和数据部分按字节无符号数据累加和取低2字节。
每个数据包的总包数由FPGA配置文件的大小决定,对于XC7A200T其配置文件大小为77845216bits对应的总包数2376,其中最后一包填充1444字节FF数据;对于7K325T总包数2794。
c)地面站将分包好的FPGA上注数据包通过上行测控链路发送给测控数传一体机。
d)测控数传一体机接收到上注数据后,将解调后的有效数据存储到固存NANDFLASH中。
e)测控数传一体机加电后。
f)处理器ARM芯片上电后将其SPI通信接口中管脚MISO,MOSI,CLK,NSS均配置成输入管脚;初始化使能信号EN_CS1、使能信号EN_CS2状态为01,选择SPI flash芯片1为FPGA的加载flash;之后给FPGA一个PROGRAM_B低脉冲信号,控制FPGA重新加载。
j)监控DONE状态,待DONE变高后;测控数传一体机进入默认的工作状态。
k)星务计算机根据任务需要给测控数传一体机发送FPGA程序全重构或FPGA程序部分重构开始指令;测控数传一体机进入FPGA程序全重构或FPGA程序部分重构模式;执行FPGA程序重构。
如图2所示,FPGA程序全重构:
全重构是,地面站将所有的上注数据包均发给测控数传一体机,测控数传一体机将上注数据包通过串口总线发送给ARM。
ARM进行如下操作:
a)对SPI flash芯片2进行全擦除。
b)接收上注数据包0,对上注数据进行校验,如果校验通过,将该包数据写入到flash的起始地址0*4096中。同时通过遥测告知星务计算机上注数据包0校验通过;如果校验错误,通过遥测告知星务计算机上注数据包0校验未通过,同时将数据包号0告知星务计算机;通过串口给FPGA发送应答数据A555;
c)接收上注数据包1,对上注数据进行校验,如果校验通过,将该包数据写入到flash的起始地址为1*4096中;同时通过遥测告知星务计算机上注数据包1校验通过。如果校验错误,通过遥测告知星务计算机上注数据包1校验未通过,同时将数据包号1告知星务计算机;通过串口给FPGA发送应答数据A555;
d)接收中间的数据包n,对上注数据进行校验,如果校验通过,将该包数据写入到flash的起始地址n*4096中;同时通过遥测告知星务计算机上注数据包n校验通过;如果校验错误,通过遥测告知星务计算机上注数据包n校验未通过,同时将数据包号n告知星务计算机。通过串口给FPGA发送应答数据A555;
e)接收最后一个上注数据包(XC7A200为2376包,对于7K325T为2794包),对上注数据进行校验,如果校验通过,将该包数据写入到对于的flash的地址中;同时通过遥测告知星务计算机上注数据包255校验通过;如果校验错误,通过遥测告知星务计算机上注数据包255校验未通过,同时将数据包号255告知星务计算机。
f)完成FPGA程序全重构。
FPGA程序部分重构:
在测控上行测控链路出现异常时,接收到的上注数据包可能存在错误情况。在FPGA程序全上注时,星务计算机通过测控的下行链路可将错误的上注数据包号下传到地面。在错误数据包少的情况下,例如1~2个,可采用FPGA程序部分重构方案。对于在错误数据包多的情况下,例如10个以上个,可再次进行采用FPGA程序全重构。
a)地面将错误的上注数据包及其相邻的、处于用一个SPI FLASH扇区的总共16个上注数据包,进行组包。
假设错误包号n,则需要重新上注的数据包为(n/16)取整数部分W,W即为SPI对应的扇区号,则需要重新上注的数据包为W*16,W*16+1,W*16+2,。。。,W*16+15;
例如错误的上注数据包号为是17,则需要重新上注的数据包为16~31;
b)通过测控的上行测控链路将16个上注数据包发给测控数传一体机。
c)星务计算机给测控数传一体机发送FPGA部分重构开始指令。
d)测控数传一体机进入部分上注模式。
e)接收上注数据包,获取包计数为n,对上注数据进行校验,如果校验通过。
f)对spi flash2扇区W((n/16)取整数部分)进行扇区擦除。
g)将该包数据写入到flash的起始地址W*16*4096中。同时通过遥测告知星务计算机上注数据包n校验通过。如果校验错误,通过遥测告知星务计算机上注数据包n校验未通过,同时将数据包号0告知星务计算机。通过串口给FPGA发送应答数据A555。
h)接收上注数据包,获取包计数为n+1,对上注数据进行校验,如果校验通过。将该包数据写入到flash的起始地址W*16*4096+1*4096中。同时通过遥测告知星务计算机上注数据包n+1校验通过。如果校验错误,通过遥测告知星务计算机上注数据包n+1校验未通过,同时将数据包号n+1告知星务计算机,不进行写操作。通过串口给FPGA发送应答数据A555。
i)再次重复执行上述g、h两个步骤13次。
j)接收上注数据包,获取包计数为n+15,对上注数据进行校验。如果校验通过,将该包数据写入到flash的起始地址W*16*4096+15*4096中。同时通过遥测告知星务计算机上注数据包n+15校验通过。通过串口给FPGA发送应答数据A555。如果校验错误,通过遥测告知星务计算机上注数据包n+15校验未通过,同时将数据包号n+15告知星务计算机,不进行写操作。通过串口给FPGA发送应答数据A555。
g)完成FPGA程序部分重构。
k)对于其它错误的上注数据包号,重复执行上述流程。直至所有错误的上注数据包重新上注完成。
重构完成后上注代码启动流程:
a)测控数传一体机arm可以通过CAN总线接收星务接收机的上注代码启动指令。
b)收到该指令后,初始化使能信号EN_CS1、使能信号EN_CS2状态为10,选择SPIflash芯片2为FPGA的加载flash。
c)给FPGA一个PROGRAM_B低脉冲信号,控制FPGA重新加载。
d)通过DONE信号可判断FPGA加载是否完成。
e)如果失败,可以再次加载。
f)如果连续失败,设置使能信号EN_CS1、使能信号EN_CS2状态为01。用SPI flash芯片1代码启动,并将失败状态通过遥测告知星务计算机或者星务计算机。
测控数传一体机本机FPGA代码重构或者其它单机FPGA代码重构:
a)对于测控数传一体机,通过内部的串口将固存NAND FLASH数据发送给ARM芯片,再由ARM写入SPI flash芯片中。
b)对于其它设备的上注需求,则由测控数传通过内部的串口将固存NAND FLASH数据发送给测控数传ARM芯片,测控数传一体机的ARM芯片再通过can总线分包将数据传输给其它单机。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种星载测控数传一体机FPGA程序在轨重构系统,其特征在于包括:测控数传一体机,测控数传一体机与星务计算机通过CAN总线连接,测控数传一体机包括:处理器ARM芯片、FPGA芯片、SPI flash芯片1、SPI flash芯片2、总线缓冲门、固存NAND flash;
处理器ARM芯片接收星务计算机发送的成型重构指令后,通过控制总线缓冲门断开FPGA芯片和两个SPI flash芯片之间的片选信号连接,同时处理器ARM初始化与SPI flash芯片2连接的管脚为SPI功能,处理器ARM芯片通过FPGA芯片从固存NAND flash中读取上注数据,并使用SPI总线实现对SPI flash2芯片的上注数据进行擦除和程序写入;
处理器ARM芯片,用于测控数传一体机运行控制和实现对SPI flash芯片1、SPI flash芯片2擦除和写入程序;
SPI flash芯片1和SPI flash芯片2,用于存储FPGA芯片运行所需的程序代码;
总线缓冲门,用于控制FPGA芯片的片选管脚FCS_B与SPI flash芯片1和SPI flash芯片2的片选管脚导通和关断;
固存NAND flash,用于临时存储上注数据和载荷数据。
2.根据权利要求1所述的一种星载测控数传一体机FPGA程序在轨重构系统,其特征在于:FPGA芯片的配置管脚CCLK分别与SPI flash芯片1的管脚CLK、SPI flash芯片2的管脚CLK连接,FPGA芯片的配置管脚D00_MOSI分别与SPI flash芯片1的管脚DIN、SPI flash芯片2的管脚DIN连接,FPGA芯片的配置管脚D01_DIN分别与SPI flash芯片1的管脚DOUT、SPIflash芯片2的管脚DOUT连接。
3.根据权利要求2所述的一种星载测控数传一体机FPGA程序在轨重构系统,其特征在于:处理器ARM芯片的SPI功能管脚MISO与SPI flash芯片2的管脚DOUT连接,处理器ARM芯片的SPI功能管脚MOSI与SPI flash芯片2的管脚DIN连接,处理器ARM芯片的SPI功能管脚CLK与SPI flash芯片2的管脚CLK连接,处理器ARM芯片的SPI功能管脚NSS与SPI flash芯片2的管脚CS连接。
4.根据权利要求1所述的一种星载测控数传一体机FPGA程序在轨重构系统,其特征在于:FPGA芯片的管脚UART、PROGRAM_B、DONE与处理器ARM芯片的管脚UART、IO3、IO4连接。
5.根据权利要求1所述的一种星载测控数传一体机FPGA程序在轨重构系统,其特征在于:选择总线缓冲门用于控制FPGA芯片的片选管脚FCS_B与两个SPIflash芯片的片选管脚CS使能导通,总线缓冲门包括四个通道,四个通道分别包括通道1、通道2、通道3、通道4,使用其中通道1和通道2;FPGA芯片的管脚FCS_B分别与通道1的管脚1A、通道2的管脚2A连接,ARM芯片的管脚IO1、IO2分别与通道1的管脚1OE、通道2的管脚2OE连接,通道1的管脚1Y与SPI flash芯片1的管脚CS连接,通道2的管脚2Y与SPI flash芯片2的管脚CS连接。
6.根据权利要求1所述的一种星载测控数传一体机FPGA程序在轨重构系统,其特征在于:FPGA芯片的配置模式为Master SPI模式;FPGA芯片的配置管脚M0,M1,M2,M0连接电压端,M1,M2均连接接地端。
7.一种星载测控数传一体机FPGA程序在轨重构方法,基于权利要求1-6任一所述的一种星载测控数传一体机FPGA程序在轨重构系统,其特征在于包括以下步骤:
S1、地面站将所需FPGA代码编译完成,并生成bin文件且分包为上注数据包;
S2、地面站将分包好的FPGA上注数据包通过上行测控链路发送给测控数传一体机,测控数传一体机将上注数据包临时存储到固存NAND flash中;
S3、测控数传一体机加电后,处理器ARM芯片上电,处理器ARM芯片选择SPI flash芯片1,作为FPGA芯片程序加载使用;
S4、处理器ARM芯片给FPGA芯片一个PROGRAM_B低脉冲信号,控制FPGA重新加载;
S5、监控FPGA芯片的DONE状态,待DONE状态变高后,测控数传一体机进入默认的工作状态;
S6、星务计算机根据任务需要给测控数传一体机发送FPGA程序全重构或FPGA程序部分重构开始指令;
S7、测控数传一体机进入FPGA程序全重构或FPGA程序部分重构模式;执行FPGA程序重构。
8.根据权利要求7所述的一种星载测控数传一体机FPGA程序在轨重构方法,其特征在于:步骤S1中上注数据包格式如下:
帧头-包计数-数据-校验和;其中帧头为EB90,包计数为0~4095,每个包对应4096字节数据,校验和为包计数和数据部分按字节无符号数据累加和取低2字节;
每个上注数据包的总包数由FPGA芯片的配置文件的大小决定,对于XC7A200T其配置文件大小为77845216bits对应的总包数2376,其中最后一包不足4096字节末尾填充1444字节FF数据;对于XC7K325T总包数2794。
9.根据权利要求7所述的一种星载测控数传一体机FPGA程序在轨重构方法,其特征在于:FPGA程序全部重构过程如下:
S601、处理器ARM芯片通过控制总线缓冲门断开FPGA芯片和两个SPI flash芯片之间的片选信号连接;处理器ARM芯片初始化其与SPI flash芯片2连接的管脚为SPI功能,并控制SPI flash芯片2数据全擦除;
S602、测控数传一体机的处理器ARM接收标号为n的上注数据包;对上注数据包n的数据进行校验,如果校验通过,将上注数据包n的数据写入到SPI flash芯片2对应的地址中;
S603、同时通过遥测告知星务计算机上注数据n校验通过;
S604、如果校验错误,通过遥测告知星务计算机上注数据包n验证未通过,同时将上注数据包的包号n告知星务计算机;通过串口给FPGA芯片发送应答数据;
依次循环步骤S602-S604,直到循环至最后一个上注数据包,校验完成后跳出循环;
S606、完成FPGA程序全重构。
CN202210571710.4A 2022-05-25 2022-05-25 一种星载测控数传一体机fpga程序在轨重构系统及方法 Active CN114661655B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210571710.4A CN114661655B (zh) 2022-05-25 2022-05-25 一种星载测控数传一体机fpga程序在轨重构系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210571710.4A CN114661655B (zh) 2022-05-25 2022-05-25 一种星载测控数传一体机fpga程序在轨重构系统及方法

Publications (2)

Publication Number Publication Date
CN114661655A CN114661655A (zh) 2022-06-24
CN114661655B true CN114661655B (zh) 2022-08-16

Family

ID=82038410

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210571710.4A Active CN114661655B (zh) 2022-05-25 2022-05-25 一种星载测控数传一体机fpga程序在轨重构系统及方法

Country Status (1)

Country Link
CN (1) CN114661655B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115269017B (zh) * 2022-09-29 2023-01-17 天津讯联科技有限公司 一种星载测控数传NANDFlash并行读写控制方法
CN116094577B (zh) * 2023-03-14 2023-06-30 天津讯联科技有限公司 多模帧可重构通用遥测发射机

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104239090A (zh) * 2014-07-15 2014-12-24 上海微小卫星工程中心 一种基于fpga的卫星星务计算机在轨重构系统及方法
CN104484272A (zh) * 2014-12-10 2015-04-01 深圳航天东方红海特卫星有限公司 一种可在轨调试星载电子系统及在轨调试方法
WO2020253293A1 (zh) * 2019-06-21 2020-12-24 成都星时代宇航科技有限公司 一种星务数据传输设备、方法及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110119474A1 (en) * 2009-11-16 2011-05-19 Bally Gaming, Inc. Serial Peripheral Interface BIOS System and Method
CN102736941A (zh) * 2012-07-03 2012-10-17 江西省电力公司信息通信分公司 一种实现自动双flash启动cpu系统的方法
CN106909425B (zh) * 2017-03-03 2020-05-08 中国电子科技集团公司第五十四研究所 一种dsp和fpga系统在线升级方法
CN110196726B (zh) * 2019-05-17 2023-05-26 江西山水光电科技股份有限公司 一种基于cpu+cpld实现fpga程序远程升级加载的方法
CN113238985A (zh) * 2021-05-21 2021-08-10 北京轩宇空间科技有限公司 Fpga在轨重构控制系统及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104239090A (zh) * 2014-07-15 2014-12-24 上海微小卫星工程中心 一种基于fpga的卫星星务计算机在轨重构系统及方法
CN104484272A (zh) * 2014-12-10 2015-04-01 深圳航天东方红海特卫星有限公司 一种可在轨调试星载电子系统及在轨调试方法
WO2020253293A1 (zh) * 2019-06-21 2020-12-24 成都星时代宇航科技有限公司 一种星务数据传输设备、方法及存储介质

Also Published As

Publication number Publication date
CN114661655A (zh) 2022-06-24

Similar Documents

Publication Publication Date Title
CN114661655B (zh) 一种星载测控数传一体机fpga程序在轨重构系统及方法
CN104484214B (zh) 一种sram型fpga的配置、刷新与程序上注一体化系统
US6907595B2 (en) Partial reconfiguration of a programmable logic device using an on-chip processor
CN101313287B (zh) 经由嵌入式控制器初始化快闪存储设备
US9235546B2 (en) System and method for data read of a synchronous serial interface NAND
US8286874B2 (en) Card and host device
US7441060B2 (en) System, method and storage medium for providing a service interface to a memory system
US20120317458A1 (en) Memory controller and non-volatile storage device
CN105474319A (zh) 用于配置混合存储器模块的存储器的i/o的设备及方法
CN101477480B (zh) 内存控制方法、装置及内存读写系统
US9460813B2 (en) Memory system
CN106843983A (zh) 远程升级现场可编程门阵列的系统及方法
WO2010069045A1 (en) Error detection method and a system including one or more memory devices
KR101221265B1 (ko) 구성가능 입력/출력 포트를 구비한 메모리 모듈
US8898420B2 (en) Non-volatile storage device and a memory controller controlling parity tables of recording regions of the non-volatile storage device
US20070028037A1 (en) Memory system with automatic dual-buffering
CN104094357A (zh) 执行并行存储测试的装置和方法
CN107506206A (zh) 一种抗辐照反熔丝prom对sram型fpga的加载电路
US10831963B1 (en) Apparatus and method of parallel architecture for NVDIMM
CN110100236A (zh) 数据读取方法及闪存设备
US6381175B2 (en) Method and system for validating flash memory
CN117453462B (zh) 一种星载设备软件可靠重构和加载运行方法
CN118152197A (zh) 芯片测试方法、系统、设备及存储介质
CN117234991A (zh) 对fpga进行配置、回读和刷新的电路及控制方法
CN117256102A (zh) 具有用于并发接口操作的单向端口的集成电路存储器设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant