CN111352893B - 一种fpga和stm32单片机的通信方法 - Google Patents
一种fpga和stm32单片机的通信方法 Download PDFInfo
- Publication number
- CN111352893B CN111352893B CN202010106358.8A CN202010106358A CN111352893B CN 111352893 B CN111352893 B CN 111352893B CN 202010106358 A CN202010106358 A CN 202010106358A CN 111352893 B CN111352893 B CN 111352893B
- Authority
- CN
- China
- Prior art keywords
- data
- fpga
- stm32
- dma
- spi2
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种FPGA和STM32单片机的通信方法,包括以下步骤:(1)使STM32单片机的SPI1连接FPGA的SPI1’;(2)STM32单片机的SPI2连接FPGA的SPI2’;配置STM32单片机的SPI1为主模式,配置SPI1为单工只发送模式,使能SPI1的DMA传输;配置STM32单片机的SPI2为从模式,配置SPI2为单工只接收模式,使能SPI2的DMA传输,配置SPI2的通信控制信号,并设置为浮空输入,配置通信控制信号的上升沿触发STM32单片机中断;STM32与FPGA之间以DMA方式实施全双工通讯。由此,本发明的FPGA和STM32单片机的通信方法仅使用5根线就实现了STM32单片机与FPGA之间的全双工通讯,传输速率达几M/S。
Description
技术领域
本发明涉及STM32单片机通信领域,尤其涉及一种FPGA和STM32单片机的通信方法。
背景技术
FPGA器件属于专用集成电路中的一种半定制电路,是可编程的逻辑列阵,能够有效的解决原有的器件门电路数较少的问题。FPGA的基本结构包括可编程输入输出单元,可配置逻辑块,数字时钟管理模块,嵌入式块RAM,布线资源,内嵌专用硬核,底层内嵌功能单元。
STM32单片机和FPGA一般以主从形式来工作,STM32单片机和FPGA之间的数据发送和接收的时钟信号都是由主机即STM32单片机产生的,如果从机主动向主机发送数据,需要从机通过I/O口向主机发中断信号,主机响应中断,通过SPI协议向从机发送准备就绪的信号数据,才能得到从机发送的数据,从机发送的数据帧的长度由主机控制。另一方面,这种通信的过程中受到干扰,容易产生数据错位或进入死循环。
发明内容
本发明所要解决的技术问题是:提供一种FPGA和STM32单片机的通信方法。
为解决上述技术问题,本发明所采用的技术方案是:
一种FPGA和STM32单片机的通信方法,包括以下步骤:
(1)使STM32单片机的SPI 1连接FPGA的SPI 1’;STM32单片机的SPI2连接FPGA的SPI2’;
(2)配置STM32单片机的SPI 1为主模式,配置SPI 1为单工只发送模式,使能SP I1的DMA传输;
配置STM32单片机的SPI2为从模式,配置SPI 2为单工只接收模式,使能SPI2的DMA传输,配置SP I2的通信控制信号,并设置为浮空输入,配置通信控制信号上升沿触发STM32单片机中断。
(3)STM32与FPGA之间以DMA方式实施全双工通讯;
在上述技术方案的基础上,本发明还可以做如下改进。
优选地,所述步骤(3)中的通讯过程,包括
STM32发送数据、FPGA接收单字节数据、FPGA接收帧数据;
FPGA发送单字节数据,FPGA发送帧数据、STM32接收数据。
优选地,所述步骤(3)中STM32发送,具体是指STM32通过SP I 1发送数据,步骤如下:
S31-1:STM32启动DMA传输程序,将要发送的数据复制到DMA关联的内存中;
S31-2:监测DMA标志位,等待DMA传输完成;
S31-3:重置DMA标志位;
S31-4:发送下一帧;
优选地,所述步骤(3)中FPGA接收单字节数据的过程,具体步骤如下:
S32-1:在时钟信号的上升沿,将单字节数据接收标志信号位置0,采样数据位7;
S32-2:依次采样数据位6-1;
S32-3:采样数据位0,将单字节数据接收标志信号位置1;
单字节数据接收完毕。
优选地,所述步骤(3)中FPGA接收帧数据,基于单字节数据接收过程,所述帧数据的格式包括:帧头、类型、数据区长度、数据1…至数据n、校验和部分,每一部分均为1字节,共n+4个字节,具体接收步骤如下:
S33-1:检测到单字节数据接收标志信号的上升沿,锁存单字节数据,判断单字节数据是否为帧头,如果是,超时计时器从零开始计时;否则,转S33-1;
S33-2:检测到单字节数据接收标志信号的上升沿,锁存"类型"数据,超时计时器从零开始计时;若超时计时器达到预先设定的超时阈值,启动错误处理程序;
S33-3:检测到单字节数据接收标志信号的上升沿,锁存"数据区长度"数据,超时计时器从零开始计时;若超时计时器达到预先设定的超时阈值,启动错误处理程序;
S33-4:检测到单字节数据接收标志信号的上升沿,锁存"数据1"数据,超时计时器从零开始计时;若超时计时器达到预先设定的超时阈值,启动错误处理程序;
S33-5:根据"数据区长度",采用S33-4同样的方法,锁存“数据2”至“数据n”;
S33-6:检测到单字节数据接收标志信号的上升沿,锁存"校验和"数据;若超时计时器达到预先设定的超时阈值,启动错误处理程序;
S33-7:判断"校验和",正确则产生一帧数据接收信号,否则启动错误处理程序。
超时计时器的超时阈值设为大于一个字节的传输时间且小于两个字节的传输时间;
所述错误处理程序为跳转至S33-1步骤。
优选地,所述步骤(3)中FPGA发送单字节数据,具体步骤如下:
S34-1:FPGA检测到发送使能信号,防错计时器开始计时;
S34-2:FPGA按SPI的时序规范,根据防错计时器生成8个时钟信号。
S34-3:FPGA按SPI的规则发送8位数据。
S34-4:防错计时器运行到预设值时,生成单字节数据发送结束信号,预设值为传输9位数据所需的时间。
优选地,所述步骤(3)中FPGA发送帧数据,具体步骤如下:
S35-1:FPGA将通信控制信号置0,启动FPGA的数据发送;
S35-2:按照FPGA发送单字节数据的方法,依次按字节发送所有数据;
S35-3:当最后一个字节的数据发送完毕,延时大于单字节数据传输时间后,将通信控制信号置1,触发STM32单片机的中断程序,结束数据发送过程。
优选地,所述步骤(3)中,STM32单片机接收数据的步骤如下:
S36-1、STM32单片机的中断处理程序读取DMA相关联的内存中的数据。
S36-2、检验数据的合法性,数据合法,则采纳,否则丢弃;
与现有技术相比,本发明具有如下技术效果:
1、STM32单片机负荷小,工作效率高;并行通讯需要16根以上连线,速率几十M/S,串行通讯虽然仅需2根线,但速率<1M/S,本方案只需要5根线,就可以实现几M/S的通讯速率。
2、全双工自由通讯,可靠性高。
附图说明
图1为本发明的FPGA和STM32单片机的通信方法的硬件连接示意图;
图2为本发明中FPGA接收单字节数据的时序图;
图3为本发明中FPGA发送的帧数据的结构图;
图4为本发明中FPGA发送单字节数据的时序图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
请参照图1所示,其为本发明的FPGA和STM32单片机的通信方法的硬件连接示意图。所述FPGA和STM32单片机的通信方法包括以下步骤:
(1)使STM32单片机的SPI 1连接FPGA的SPI 1’;STM32单片机的SPI2连接FPGA的SPI2’,只需要连接对应的MOSI、SCLK即可,MISO、CS端口浮空,另将FPGA的一个I/O口与STM32单片机的一个I/O口连接起来。
(2)配置STM32单片机的SPI 1为主模式,配置SPI 1为单工只发送模式,使能SP I1的DMA传输;
配置STM32单片机的SPI2为从模式,配置SPI 2为单工只接收模式,使能SPI2的DMA传输,配置STM32单片机与FPGA连接的I/O口作为SPI2的通信控制信号,并设置为浮空输入,配置通信控制信号的上升沿触发STM32单片机的中断。
(3)STM32与FPGA之间以DMA方式实施全双工通讯;
优选地,所述步骤(3)中的通讯过程,包括
STM32发送数据、FPGA接收单字节数据、FPGA接收帧数据;
FPGA发送单字节数据,FPGA发送帧数据、STM32接收数据。
优选地,所述步骤(3)中STM32发送,具体是指STM32通过SPI 1发送数据,步骤如下:
S31-1:STM32启动DMA传输程序,将要发送的数据复制到DMA关联的内存中;
S31-2:监测DMA标志位,等待DMA传输完成;
S31-3:重置DMA标志位;
S31-4:发送下一帧;
优选地,如图2所示,所述步骤(3)中FPGA接收单字节数据的过程,具体步骤如下:
S32-1:在时钟信号的上升沿,将单字节数据接收标志信号位置0,采样数据位7;
S32-2:依次采样数据位6-1;
S32-3:采样数据位0,将单字节数据接收标志信号位置1;
单字节数据接收完毕。
注意如图3所示,步骤S32-1中,单字节数据接收标志信号不一定要在第一个时钟信号上升沿置零,在采样数据位7/6/5/4/3/2/1任意一个时置零均可,只要保证采样数据位0时,单字节数据接收标志信号为低电平即可。
优选地,所述步骤(3)中FPGA接收帧数据,基于单字节数据接收过程,所述帧数据的格式如图3所示,包括:帧头、类型、数据区长度、数据1…至数据n、校验和等部分,每一部分均为1字节,共n+4个字节,具体接收步骤如下:
S33-1:检测到单字节数据接收标志信号的上升沿,锁存单字节数据,判断单字节数据是否为帧头,如果是,超时计时器重置,并从零开始计时;否则,转S33-1;
S33-2:检测到单字节数据接收标志信号的上升沿,锁存"类型"数据,超时计时器从零开始计时;若超时计时器达到预先设定的超时阈值,启动错误处理程序;
S33-3:检测到单字节数据接收标志信号的上升沿,锁存"数据区长度"数据,超时计时器从零开始计时;若超时计时器达到预先设定的超时阈值,启动错误处理程序;
S33-4:检测到单字节数据接收标志信号的上升沿,锁存"数据1"数据,超时计时器从零开始计时;若超时计时器达到预先设定的超时阈值,启动错误处理程序;
S33-5:根据"数据区长度",采用S33-4同样的方法,锁存“数据2”---“数据n”;
S33-6:检测到单字节数据接收标志信号的上升沿,锁存"校验和"数据;若超时计时器达到预先设定的超时阈值,启动错误处理程序;
S33-7:判断"校验和",正确则产生一帧数据接收信号,否则启动错误处理程序。
超时计时器的超时阈值设为大于一个字节的传输时间且小于两个字节的传输时间;如此设置保证每次接收的是一个字节,如果超过了一个字节的接收时间,仍然没有检测到接收标志信号的上升沿,则判断数据接收过程发生异常,进入错误处理程序。
所述错误处理程序为跳转至S33-1步骤。
优选地,如图4所示,所述步骤(3)中FPGA发送单字节数据,具体步骤如下:
S34-1:单字节发送使能信号置1,防错计时器开始计时;
S34-2:FPGA按SPI的时序规范,根据防错计时器生成8个时钟信号。
S34-3:FPGA按SPI的规则发送8位数据。
S34-4:防错计时器运行到预设值时,生成单字节数据发送结束信号,单字节发送使能信号置0;
防错计时器的预设值为传输9位数据所需的时间。
优选地,所述步骤(3)中FPGA发送帧数据,基于FPGA发送单字节数据步骤,具体步骤如下:
S35-1:FPGA将通信控制信号置0,启动FPGA的数据发送;
S35-2:按照FPGA发送单字节数据的方法,依次按字节发送所有数据;
S35-3:当最后一个字节的数据发送完毕,延时大于单字节数据传输时间后,将通信控制信号置1,触发STM32单片机的中断程序,结束数据发送过程。
优选地,所述步骤(3)中,STM32单片机接收数据的步骤如下:
S36-1、STM32单片机的中断处理程序读取DMA相关联的内存中的数据。
S36-2、检验数据的合法性,数据合法,则采纳,否则丢弃;
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种FPGA和STM32单片机的通信方法,其特征在于,包括:
(1)使STM32单片机的SPI1连接FPGA的SPI1’;STM32单片机的SPI2连接FPGA的SPI2’;
(2)配置STM32单片机的SPI1为主模式,配置SPI1为单工只发送模式,使能SPI1的DMA传输;
配置STM32单片机的SPI2为从模式,配置SPI2为单工只接收模式,使能SPI2的DMA传输,配置SPI2的通信控制信号,并设置为浮空输入,配置通信控制信号的上升沿触发STM32单片机中断;
(3)STM32与FPGA之间以DMA方式实施全双工通讯。
2.根据权利要求1所述的FPGA和STM32单片机的通信方法,其特征在于,所述步骤(3)中的通讯过程包括
STM32发送数据、FPGA接收单字节数据、FPGA接收帧数据;
FPGA发送单字节数据、FPGA发送帧数据、STM32接收数据。
3.根据权利要求2所述的FPGA和STM32单片机的通信方法,其特征在于,所述步骤(3)中STM32发送,具体是指STM32通过SPI1发送数据,步骤如下:
S31-1:STM32启动DMA传输程序,将要发送的数据复制到DMA关联的内存中;
S31-2:监测DMA标志位,等待DMA传输完成;
S31-3:重置DMA标志位;
S31-4:发送下一帧。
4.根据权利要求2所述的FPGA和STM32单片机的通信方法,其特征在于,所述步骤(3)中FPGA接收单字节数据,具体步骤如下:
S32-1:在时钟信号的上升沿,将接收标志信号位置0,采样数据位7;
S32-2:依次采样数据位6-1;
S32-3:采样数据位0,并将接收标志信号位置1。
5.根据权利要求2所述的FPGA和STM32单片机的通信方法,其特征在于,所述步骤(3)中FPGA接收帧数据,所述帧数据的格式为:帧头、类型、数据区长度、数据1至数据n、校验和部分,每一部分均为1字节,共n+4个字节,具体接收步骤如下:
S33-1:检测到单字节数据接收标志信号的上升沿,锁存单字节数据,判断单字节数据是否为帧头,如果是,超时计时器从零开始计时;否则,转S33-1;
S33-2:检测到单字节数据接收标志信号的上升沿,锁存"类型"数据,超时计时器从零开始计时;若超时计时器达到预先设定的超时阈值,启动错误处理程序;
S33-3:检测到单字节数据接收标志信号的上升沿,锁存"数据区长度"数据,超时计时器从零开始计时;若超时计时器达到预先设定的超时阈值,启动错误处理程序;
S33-4:检测到单字节数据接收标志信号的上升沿,锁存"数据1"数据,超时计时器从零开始计时;若超时计时器达到预先设定的超时阈值,启动错误处理程序;
S33-5:根据"数据区长度",采用S33-4同样的方法,锁存“数据2”---“数据n”;
S33-6:检测到单字节数据接收标志信号的上升沿,锁存"校验和"数据;若超时计时器达到预先设定的超时阈值,启动错误处理程序;
S33-7:判断"校验和",正确则产生一帧数据接收信号,否则启动错误处理程序;
所述超时计时器的超时阈值设为大于一个字节的传输时间且小于两个字节的传输时间;
所述错误处理程序为跳转至S33-1步骤。
6.根据权利要求2所述的FPGA和STM32单片机的通信方法,其特征在于,所述步骤(3)中FPGA发送单字节数据的具体步骤如下:
S34-1:FPGA检测到发送使能信号,防错计时器开始计时;
S34-2:FPGA按SPI的时序规范,根据防错计时器生成8个时钟信号;
S34-3:FPGA按SPI的规则发送8位数据;
S34-4:防错计时器运行到预设值时,生成单字节数据发送结束信号,预设值为传输9位数据所需的时间。
7.根据权利要求2所述的FPGA和STM32单片机的通信方法,其特征在于,所述步骤(3)中FPGA发送帧数据具体步骤如下:
S35-1:FPGA将通信控制信号置0,启动FPGA的数据发送;
S35-2:按照FPGA发送单字节数据的方法,依次按字节发送所有数据;
S35-3:当最后一个字节的数据发送完毕,延时大于单字节数据传输时间后,将通信控制信号置1,触发STM32单片机的中断程序,结束数据发送过程。
8.根据权利要求2所述的FPGA和STM32单片机的通信方法,其特征在于,所述步骤(3)中,STM32单片机接收数据的步骤如下:
S36-1、STM32单片机的中断处理程序读取DMA相关联的内存中的数据;
S36-2、检验数据的合法性,数据合法,则采纳,否则丢弃。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010106358.8A CN111352893B (zh) | 2020-02-21 | 2020-02-21 | 一种fpga和stm32单片机的通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010106358.8A CN111352893B (zh) | 2020-02-21 | 2020-02-21 | 一种fpga和stm32单片机的通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111352893A CN111352893A (zh) | 2020-06-30 |
CN111352893B true CN111352893B (zh) | 2023-06-20 |
Family
ID=71197042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010106358.8A Active CN111352893B (zh) | 2020-02-21 | 2020-02-21 | 一种fpga和stm32单片机的通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111352893B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016127835A1 (zh) * | 2015-02-11 | 2016-08-18 | 深圳配天智能技术研究院有限公司 | 单片机及其在线编程的方法 |
CN107342993A (zh) * | 2017-06-29 | 2017-11-10 | 电子科技大学 | 一种基于fpga+stm32的通信管理机系统 |
CN107370651A (zh) * | 2017-06-26 | 2017-11-21 | 中国人民解放军91388部队 | 一种spi从机之间的通信方法 |
-
2020
- 2020-02-21 CN CN202010106358.8A patent/CN111352893B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016127835A1 (zh) * | 2015-02-11 | 2016-08-18 | 深圳配天智能技术研究院有限公司 | 单片机及其在线编程的方法 |
CN107370651A (zh) * | 2017-06-26 | 2017-11-21 | 中国人民解放军91388部队 | 一种spi从机之间的通信方法 |
CN107342993A (zh) * | 2017-06-29 | 2017-11-10 | 电子科技大学 | 一种基于fpga+stm32的通信管理机系统 |
Non-Patent Citations (3)
Title |
---|
吴嘉伟 ; 张会新 ; 梁烁 ; .基于ARM和FPGA的远程温度测控系统.电子器件.2020,(01),全文. * |
吴晓宇 ; 孙瑞杰 ; 崔春生 ; 裴东兴 ; .基于MSP430单片机的同步串行SPI多通道温度测试系统设计.电子测试.2009,(12),全文. * |
李福俊 ; 姜学东 ; .MSP430系列多单片机间的SPI主从通信.单片机与嵌入式系统应用.2007,(09),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111352893A (zh) | 2020-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8082373B2 (en) | Specialized universal serial bus controller | |
US20110087914A1 (en) | I2c buffer clock delay detection method | |
KR101823315B1 (ko) | 가변 프레임 길이를 갖는 2-와이어 인터페이스 시스템에 대한 임피던스-기반 플로우 제어 | |
JP2017528830A (ja) | 修正型uartインターフェースを有する可変フレーム長仮想gpio | |
CN100480923C (zh) | I2c总线从控制器软实现方法 | |
CN108304335A (zh) | 一种通过dma接收串口不定长报文的方法 | |
CN115017076A (zh) | 通用串行总线中继器/重定时器中节省电力的方法和装置 | |
CN109062850B (zh) | 一种单片机的数据发送和接收方法 | |
EP2865163A1 (en) | Providing a serial protocol for a bidirectional serial interconnect | |
CN107771331B (zh) | 独立式uark brk检测 | |
CN111352887B (zh) | 一种pci总线到可配置帧长度串行总线适配和传输方法 | |
CN111352893B (zh) | 一种fpga和stm32单片机的通信方法 | |
US6496487B2 (en) | Efficient full duplex simultaneous message transfer | |
US8510485B2 (en) | Low power digital interface | |
US11892927B2 (en) | Method for error handling of an interconnection protocol, controller and storage device | |
CN111026691A (zh) | 基于apb总线的owi通讯设备 | |
CN108241586B (zh) | 控制器电路与估计延迟补偿方法 | |
US20110087812A1 (en) | Multi-master bi-directional i2c bus buffer | |
CN110865954A (zh) | 基于dma的spi设备间通信自动界定可变长帧结束的方法 | |
De Maria et al. | A low cost FPGA based USB device core | |
Warrier et al. | FPGA implementation of SPI To I2C bridge | |
US7165127B2 (en) | Flow control for interfaces providing retransmission | |
EP1491016B1 (en) | Impedance compensation control | |
US20230152876A1 (en) | Semiconductor device, communication system and packet transmission method | |
CN112506846B (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 |