[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN107423244A - 一种复用功能管脚的灵活配置装置及其实现方法 - Google Patents

一种复用功能管脚的灵活配置装置及其实现方法 Download PDF

Info

Publication number
CN107423244A
CN107423244A CN201710284911.5A CN201710284911A CN107423244A CN 107423244 A CN107423244 A CN 107423244A CN 201710284911 A CN201710284911 A CN 201710284911A CN 107423244 A CN107423244 A CN 107423244A
Authority
CN
China
Prior art keywords
resistance
function pin
level
state
signal
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.)
Granted
Application number
CN201710284911.5A
Other languages
English (en)
Other versions
CN107423244B (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.)
Guangzhou Huiruisitong Technology Co Ltd
Original Assignee
Guangzhou Huiruisitong Information 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 Guangzhou Huiruisitong Information Technology Co Ltd filed Critical Guangzhou Huiruisitong Information Technology Co Ltd
Priority to CN201710284911.5A priority Critical patent/CN107423244B/zh
Publication of CN107423244A publication Critical patent/CN107423244A/zh
Application granted granted Critical
Publication of CN107423244B publication Critical patent/CN107423244B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/0175Coupling arrangements; Interface arrangements
    • H03K19/017509Interface arrangements
    • H03K19/017536Interface arrangements using opto-electronic devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Electronic Switches (AREA)

Abstract

本发明公开了一种复用功能管脚的灵活配置装置及其实现方法,所述装置包括电平设置模块和隔离模块,电平设置模块用于完成硬件配置信号的配置,包括电阻R1、R2和开关器件SW1,电阻R1和R2串联连接在电源与复用功能管脚之间,电阻R1端与电源连接,电阻R2端与复用功能管脚连接,开关器件SW1的一端与地面连接,另一端与电阻R1和R2的连接处连接,隔离模块为开关器件SW2,一端与复用功能管脚和电阻R2的连接处连接,另一端与对端器件连接。本发明采用两个电阻和一个开关组成的电平配置模块与一个开关组成的隔离模块的组合电路,解决了芯片调测和维护不便的问题,同时使复用功能管脚作为GPIO时的通用性不受限制。

Description

一种复用功能管脚的灵活配置装置及其实现方法
技术领域
本发明涉及芯片应用设计领域,具体涉及一种复用功能管脚的灵活配置装置及其实现方法。
背景技术
通常的,处理器芯片(如CPU、MCU、DSP)在上电复位后,系统有两种模式可以选择进入:第一:用户代码模式,即开始搬移用户代码,然后由用户代码控制处理器芯片工作;第二:调测模式,常用的是通过JTAG(Joint Test Action Group,联合测试行动小组)接口连接仿真器后与上位机的调测软件交互,并由在调测软件上运行的代码控制处理器芯片工作。随着处理器芯片的处理能力不断的增大,实现的功能越来越复杂,对存放用户代码的存储空间需求也越来越大,越来越多的处理器芯片采用外置存储芯片来存储用户代码,而且为了灵活设计,处理器芯片接收用户代码的接口通常会有多个选择。这样就涉及了在系统启动时,搬移用户代码的接口选择。
硬件配置信号是在处理器芯片上电复位过程中,通过管脚上的电平状态获得的配置信息,主要是配置芯片选择系统进入哪一种模式和通过哪一个接口搬移代码,以及初始化系统锁相环频率等参数。GPIO(General Purpose Input Output,通用输入/输出接口)是处理器芯片的常用管脚信号,是可由用户代码灵活定义和控制的信号。随着处理器芯片的管脚资源越来越紧张,且硬件配置信号和GPIO信号的使用并不冲突,硬件配置信号往往会与GPIO口复用,即共用一个芯片管脚,这类管脚则被称为复用功能管脚。具体的实现如下,处理器芯片处于复位状态时,要求上述复用功能的管脚此时作为硬件配置信号使用,当外部的复位信号跳变,解除芯片复位状态时,此跳变沿触发处理器芯片内置的锁存器,将硬件配置信号的状态锁存住,也就是,解除芯片复位状态后,上述复用功能管脚的状态不再影响硬件配置信息。进入用户代码后,则可作为正常的GPIO口使用。
现有的设计中,最常见的是通过外部电阻直接上下拉来配置硬件配置信号,通过预留的NC电阻位置,达到调测时需要的模式切换、配置修改等目的,但这种简单的预留操作会导致系统功能调测和后期产品维护时的诸多不便,如每一次进入调测模式定位问题或者改动一个硬件配置参数都要通过烙铁来焊接电阻,除了导致调测人员定位问题不便外,频繁的焊接也会使板上焊盘脱落等,减小了产品的良品率。另一种情况,为了避免上述方案的诸多不便,有条件的系统会增加逻辑芯片如CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)来实现配置硬件配置信息的功能并转接扩展GPIO口信号,这种方案无疑增加了系统的成本、功耗、PCB布局面积、复杂性等,使系统的简洁受到限制,另外,为了避免上述复用功能管脚的对端器件在处理器芯片锁存配置信息过程中产生不确定影响,要求在此过程中对端器件必须处于高阻状态,或者直接不接对端器件,则限制了上述复用功能管脚作为GPIO时的通用性。
发明内容
本发明的目的是针对上述现有技术的不足,提供了一种复用功能管脚的灵活配置装置及其实现方法,该装置在不增加系统复杂性的情况下,解决了处理器芯片现有设计中导致的调测和后期维护不便的问题,同时使得复用功能管脚作为GPIO时的通用性不受限制。
本发明的目的可以通过如下技术方案实现:
一种复用功能管脚的灵活配置装置,包括电平设置模块和隔离模块,所述电平设置模块用于完成硬件配置信号的配置,包括电阻R1、电阻R2以及一个开关器件SW1,所述电阻R1和电阻R2串联连接在电源与复用功能管脚之间,电阻R1端与电源连接,电阻R2端与复用功能管脚连接,所述开关器件SW1的一端与地面连接,另一端与电阻R1和电阻R2的连接处连接,所述隔离模块为一个开关器件SW2,在复用功能管脚作为硬件配置信号的过程中,避免对端器件的不确定驱动状态影响,使硬件配置信号的配置值完全由电平设置模块决定,所述开关器件SW2的一端与复用功能管脚和电阻R2的连接处连接,另一端与对端器件连接。
进一步地,所述电阻R1和电阻R2的阻值范围为1KΩ-4.7KΩ。
进一步地,所述开关器件SW1的通断状态切换由控制信号CTL1控制,所述开关器件SW2的通断状态切换由控制信号CTL2控制。
进一步地,所述开关器件SW1为机械开关,如拨码开关,所对应的控制信号CTL1为手动控制;或者为电子开关,如MOS管器件、光耦器件等,所对应的控制信号CTL1为电平信号。
进一步地,所述开关器件SW2为电子开关,如MOS管器件、光耦器件等,所对应的控制信号CTL2为电平信号。
上述一种复用功能管脚的灵活配置装置的实现方法,包括以下步骤:
1)处理器芯片正常上电前,控制信号CTL1设置开关器件SW1为断开状态,在这种状态下,复用功能管脚信号通过电阻R1和电阻R2串联上拉到高电平;
2)处理器芯片完成上电后,硬件复位信号为声称状态,控制信号CTL2与处理器芯片的硬件复位信号为相同电平状态,且此电平状态控制隔离模块的开关器件SW2处于断开状态,隔离与对端器件的连接,避免受到对端器件强驱动的影响;
3)处理器芯片的硬件复位信号保持在声称状态一段时间之后,硬件复位信号切换为释放状态,电平信号发生改变,产生的跳变触发沿处理器芯片内部锁存器锁存管脚上的电平信息,并释放对上述复用功能管脚电平状态的监控,控制信号CTL2延时跟随硬件复位信号实现电平的翻转,翻转后的电平状态控制隔离模块开关器件SW2处于闭合状态,使得上述复用功能管脚与对端器件连接;
4)控制信号CTL1重新设置开关器件SW1为闭合状态,在这种状态下,复用功能管脚信号则通过电阻R2和开关器件SW1下拉到低电平,重新执行步骤2)和步骤3),则处理器芯片的硬件配置信息发生改变。
进一步地,步骤3)中,处理器芯片的硬件复位信号保持在声称状态的时间为100ms。
本发明与现有技术相比,具有如下优点和有益效果:
1、本发明通过采用两个电阻和一个开关组成的电平配置模块与一个开关组成的隔离模块的组合电路,具体通过分割和旁路电阻手段,达到了可控、灵活地配置上下拉电阻的效果,不仅方便了系统调测和后期维护工作的实施,也不会造成系统的成本、功耗、PCB布局面积和复杂性的明显增加。
2、本发明采用一个开关组成的隔离模块,具体通过处理器芯片自带的复位信号来控制开关,从而达到了实现硬件配置时隔离对端元器件的影响和GPIO时的正常双向交互的智能切换效果,避免了对上述复用功能管脚作为GPIO时的通用性的限制。
附图说明
图1为本发明实施例的复用功能管脚的灵活配置装置原理框图。
图2为本发明实施例的复用功能管脚的灵活配置装置的实例电路图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例:
如图1所示,本实施例提供了一种复用功能管脚的灵活配置装置,该装置包括电平设置模块和隔离模块,所述电平设置模块用于完成硬件配置信号的配置,包括电阻R1、电阻R2以及一个开关器件SW1,所述电阻R1和电阻R2串联连接在电源与复用功能管脚之间,电阻R1端与电源连接,电阻R2端与复用功能管脚连接,所述开关器件SW1的一端与地面连接,另一端与电阻R1和电阻R2的连接处连接,所述隔离模块为一个开关器件SW2,在复用功能管脚作为硬件配置信号的过程中,避免对端器件的不确定驱动状态影响,使硬件配置信号的配置值完全由电平设置模块决定,所述开关器件SW2的一端与复用功能管脚和电阻R2的连接处连接,另一端与对端器件连接。
如图2所示,采用上述复用功能管脚的处理器芯片为TI公司的DSP芯片,型号为TCI6638K2KBAAW2;电平设置模块中的两个电阻R1和R2的阻值都为1kΩ,器件SW1为欧姆龙的拨码开关AH6-4102;隔离模块中的开关器件SW2为TI公司的TS5A3157DBVR芯片,TS5A3157DBVR芯片的开关逻辑为,IN1为高电平时,COM1与NO1管脚相接;IN1为低电平时,COM1与NO1管脚断开连接。TCI6638K2KBAAW2的管脚PIN_D29为上述复用功能管脚,在DSP_POR_RESET_N的上升沿锁存住bootmode配置信息,进入用户代码运行后作为GPIO口使用。DSP_RESETSTAT_N为复位初始化完成状态标志位,在TCI6638K2KBAAW2处于复位状态时,该信号为低电平,DSP_POR_RESET_N跳变为高电平10ms后,该信号跳转为高电平,声称处理器芯片初始化配置完成。正常逻辑下,DSP_RESETSTAT_N与DSP_POR_RESET_N形成延时跟随关系。
上述复用功能管脚的灵活配置装置的实现方法包括以下步骤:
步骤一、在处理器芯片正常上电复位前,将拨码开关SW1拨到断开状态,这种状态下,管脚信号则通过两个电阻值1kΩ串联到1.8V,即DSP_GPIO2_BOOTMODE1被设置为1;
步骤二、处理器芯片正常上电后,进入上电复位流程,DSP_POR_RESET_N处于低电平,此时DSP_RESETSTAT_N由处理器芯片输出低电平,并作为TS5A3157DBVR的IN1输入,使得DSP_GPIO2_BOOTMODE1信号与DSP_GPIO2_TO_FPGA信号断开。
步骤三、DSP_POR_RESET_N保持低电平100ms后跳转为高电平,产生的上升沿触发处理器芯片内部锁存器锁存BOOTMODE1的配置为1,并释放对DSP_GPIO2_BOOTMODE1的监控,10ms后,处理器芯片初始化配置完成,DSP_RESETSTAT_N输出高电平,并作为TS5A3157DBVR的IN1输入,使得DSP_GPIO2_BOOTMODE1信号与DSP_GPIO2_TO_FPGA信号连接;
步骤四、若要改变BOOTMODE1的配置为0,则将拨码开关SW1拨到闭合状态,这种状态下,管脚信号则通过电阻1kΩ下拉到GND,重新执行步骤二和步骤三,则处理器芯片的硬件配置BOOTMODE1将被配置为0。
以上所述,仅为本发明专利较佳的实施例,但本发明专利的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明专利所公开的范围内,根据本发明专利的技术方案及其发明专利构思加以等同替换或改变,都属于本发明专利的保护范围。

Claims (7)

1.一种复用功能管脚的灵活配置装置,其特征在于:包括电平设置模块和隔离模块,所述电平设置模块用于完成硬件配置信号的配置,包括电阻R1、电阻R2以及一个开关器件SW1,所述电阻R1和电阻R2串联连接在电源与复用功能管脚之间,电阻R1端与电源连接,电阻R2端与复用功能管脚连接,所述开关器件SW1的一端与地面连接,另一端与电阻R1和电阻R2的连接处连接,所述隔离模块为一个开关器件SW2,在复用功能管脚作为硬件配置信号的过程中,避免对端器件的不确定驱动状态影响,使硬件配置信号的配置值完全由电平设置模块决定,所述开关器件SW2的一端与复用功能管脚和电阻R2的连接处连接,另一端与对端器件连接。
2.根据权利要求1所述的一种复用功能管脚的灵活配置装置,其特征在于:所述电阻R1和电阻R2的阻值范围为1KΩ-4.7KΩ。
3.根据权利要求1所述的一种复用功能管脚的灵活配置装置,其特征在于:所述开关器件SW1的通断状态切换由控制信号CTL1控制,所述开关器件SW2的通断状态切换由控制信号CTL2控制。
4.根据权利要求1所述的一种复用功能管脚的灵活配置装置,其特征在于:所述开关器件SW1为机械开关,所对应的控制信号CTL1为手动控制;或者为电子开关,所对应的控制信号CTL1为电平信号。
5.根据权利要求1所述的一种复用功能管脚的灵活配置装置,其特征在于:所述开关器件SW2为电子开关,所对应的控制信号CTL2为电平信号。
6.一种复用功能管脚的灵活配置装置的实现方法,其特征在于,包括以下步骤:
1)处理器芯片正常上电前,控制信号CTL1设置开关器件SW1为断开状态,在这种状态下,复用功能管脚信号通过电阻R1和电阻R2串联上拉到高电平;
2)处理器芯片完成上电后,硬件复位信号为声称状态,控制信号CTL2与处理器芯片的硬件复位信号为相同电平状态,且此电平状态控制隔离模块的开关器件SW2处于断开状态,隔离与对端器件的连接,避免受到对端器件强驱动的影响;
3)处理器芯片的硬件复位信号保持在声称状态一段时间之后,硬件复位信号切换为释放状态,电平信号发生改变,产生的跳变触发沿处理器芯片内部锁存器锁存管脚上的电平信息,并释放对上述复用功能管脚电平状态的监控,控制信号CTL2延时跟随硬件复位信号实现电平的翻转,翻转后的电平状态控制隔离模块开关器件SW2处于闭合状态,使得上述复用功能管脚与对端器件连接;
4)控制信号CTL1重新设置开关器件SW1为闭合状态,在这种状态下,复用功能管脚信号则通过电阻R2和开关器件SW1下拉到低电平,重新执行步骤2)和步骤3),则处理器芯片的硬件配置信息发生改变。
7.根据权利要求6所述的一种复用功能管脚的灵活配置装置的实现方法,其特征在于:步骤3)中,处理器芯片的硬件复位信号保持在声称状态的时间为100ms。
CN201710284911.5A 2017-04-27 2017-04-27 一种复用功能管脚的灵活配置装置及其实现方法 Active CN107423244B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710284911.5A CN107423244B (zh) 2017-04-27 2017-04-27 一种复用功能管脚的灵活配置装置及其实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710284911.5A CN107423244B (zh) 2017-04-27 2017-04-27 一种复用功能管脚的灵活配置装置及其实现方法

Publications (2)

Publication Number Publication Date
CN107423244A true CN107423244A (zh) 2017-12-01
CN107423244B CN107423244B (zh) 2019-07-30

Family

ID=60425339

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710284911.5A Active CN107423244B (zh) 2017-04-27 2017-04-27 一种复用功能管脚的灵活配置装置及其实现方法

Country Status (1)

Country Link
CN (1) CN107423244B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110221650A (zh) * 2019-06-18 2019-09-10 中国人民解放军国防科技大学 一种适用于高性能网络处理器芯片的时钟发生器
CN111198527A (zh) * 2020-01-15 2020-05-26 北京实干兴邦科技有限公司 基于fpga的gpio输出状态的控制装置、控制方法及应用
CN113127078A (zh) * 2021-03-30 2021-07-16 山东英信计算机技术有限公司 一种cpld的配置选定方法和装置
CN113656076A (zh) * 2021-07-16 2021-11-16 新华三技术有限公司合肥分公司 一种基于硬件复用通道的bios启动方法及装置
CN113726127A (zh) * 2021-08-25 2021-11-30 Oppo广东移动通信有限公司 一种电源管理电路及其控制方法、系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1728554A (zh) * 2004-07-30 2006-02-01 杭州华为三康技术有限公司 功能复用芯片管脚的配置电路及配置功能复用芯片管脚的方法
CN102279830A (zh) * 2011-08-01 2011-12-14 北京航空航天大学 基于cpci总线的多功能数据采集模块
CN102572352A (zh) * 2011-12-26 2012-07-11 中兴通讯股份有限公司 Hdmi复用方法、hdmi、以及带有hdmi的设备
CN105404538A (zh) * 2015-12-25 2016-03-16 广州慧睿思通信息科技有限公司 一种fpga的加载和升级目标代码的装置及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1728554A (zh) * 2004-07-30 2006-02-01 杭州华为三康技术有限公司 功能复用芯片管脚的配置电路及配置功能复用芯片管脚的方法
CN102279830A (zh) * 2011-08-01 2011-12-14 北京航空航天大学 基于cpci总线的多功能数据采集模块
CN102572352A (zh) * 2011-12-26 2012-07-11 中兴通讯股份有限公司 Hdmi复用方法、hdmi、以及带有hdmi的设备
CN105404538A (zh) * 2015-12-25 2016-03-16 广州慧睿思通信息科技有限公司 一种fpga的加载和升级目标代码的装置及方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110221650A (zh) * 2019-06-18 2019-09-10 中国人民解放军国防科技大学 一种适用于高性能网络处理器芯片的时钟发生器
CN110221650B (zh) * 2019-06-18 2021-04-09 中国人民解放军国防科技大学 一种适用于高性能网络处理器芯片的时钟发生器
CN111198527A (zh) * 2020-01-15 2020-05-26 北京实干兴邦科技有限公司 基于fpga的gpio输出状态的控制装置、控制方法及应用
CN111198527B (zh) * 2020-01-15 2021-03-30 北京实干兴邦科技有限公司 基于fpga的gpio输出状态的控制装置、控制方法及应用
CN113127078A (zh) * 2021-03-30 2021-07-16 山东英信计算机技术有限公司 一种cpld的配置选定方法和装置
CN113656076A (zh) * 2021-07-16 2021-11-16 新华三技术有限公司合肥分公司 一种基于硬件复用通道的bios启动方法及装置
CN113726127A (zh) * 2021-08-25 2021-11-30 Oppo广东移动通信有限公司 一种电源管理电路及其控制方法、系统
CN113726127B (zh) * 2021-08-25 2023-08-25 Oppo广东移动通信有限公司 一种电源管理电路及其控制方法、系统

Also Published As

Publication number Publication date
CN107423244B (zh) 2019-07-30

Similar Documents

Publication Publication Date Title
CN107423244A (zh) 一种复用功能管脚的灵活配置装置及其实现方法
CN101043144B (zh) 一种便携式电子产品的电源管理方法及其装置
US8615610B2 (en) Interface system and method with backward compatibility
CN107077188A (zh) 互连唤醒响应电路和方法
CN201479095U (zh) 一种开关机电路
CN103746681B (zh) 一种cmos器件电源上下电输出三态控制电路
CN104461664B (zh) Mcu启动模式选择电路
CN205847223U (zh) 一种具备硬件强制关机功能的单键软开关机电路
CN101021740A (zh) 实现单板强制复位的方法和系统
CN100553143C (zh) N阱电位切换电路
CN203468417U (zh) 一种安全食品加工机
CN209231744U (zh) 一种可预设开关机按键响应时间的电路
CN103490786B (zh) 键盘装置及其键盘扫描电路
CN208316365U (zh) 一种掉电时间延长电路以及电源控制电路
WO2019015110A1 (zh) 芯片烧录电路及系统
CN203070004U (zh) 带本地强制控制的远程双控电源管理系统
CN205540548U (zh) 一种自适应at电源和atx电源的计算机开机电路
CN100414480C (zh) 一种防止误关机的控制方法及其装置
CN204905852U (zh) Io子卡顺序启动控制电路
CN104881340B (zh) 电子装置
CN207742278U (zh) 一种测试电路
CN208589014U (zh) 带脉冲检测的智能硬件看门狗电路
CN111797054A (zh) 一种soc按键开关机检测电路及soc系统
CN107526700A (zh) 输入输出接收电路及电子装置
CN107346180A (zh) 一种基于单片机技术的ps2计算机键盘接口设计

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 510000 no.2-8, North Street, Nancun Town, Panyu District, Guangzhou City, Guangdong Province

Patentee after: Guangzhou huiruisitong Technology Co.,Ltd.

Address before: 605, No.8, 2nd Street, Ping'an 2nd Road, Xianzhuang, lirendong village, Nancun Town, Panyu District, Guangzhou City, Guangdong Province 511442

Patentee before: GUANGZHOU HUIRUI SITONG INFORMATION TECHNOLOGY Co.,Ltd.

CP03 Change of name, title or address
PP01 Preservation of patent right

Effective date of registration: 20230207

Granted publication date: 20190730

PP01 Preservation of patent right
PD01 Discharge of preservation of patent

Date of cancellation: 20240402

Granted publication date: 20190730

PD01 Discharge of preservation of patent