CN112445743B - 一种去除毛刺的方法、装置及状态机 - Google Patents
一种去除毛刺的方法、装置及状态机 Download PDFInfo
- Publication number
- CN112445743B CN112445743B CN201910830595.6A CN201910830595A CN112445743B CN 112445743 B CN112445743 B CN 112445743B CN 201910830595 A CN201910830595 A CN 201910830595A CN 112445743 B CN112445743 B CN 112445743B
- Authority
- CN
- China
- Prior art keywords
- data
- transmitted
- state
- state machine
- transmitting
- 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
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000005540 biological transmission Effects 0.000 claims abstract description 81
- 238000012546 transfer Methods 0.000 claims abstract description 19
- 238000012545 processing Methods 0.000 claims description 13
- 238000013500 data storage Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3027—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/0008—Synchronisation information channels, e.g. clock distribution lines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0016—Inter-integrated circuit (I2C)
Abstract
本申请公开了一种去除毛刺的方法、装置及状态机,用于提高数据传输的准确性。在该方法中,获取待传输的数据的传输指令,其中,所述传输指令至少携带有待传输的数据;根据所述传输指令,当确定第一从机状态机可传输所述待传输的数据时,则将所述待传输的数据传输至第一状态;按照预设转移状态转移所述待传输的数据;当确定传输所述待传输的数据的时钟周期达到预设时钟周期时,将所述待传输的数据转移至预设状态处;若确定达到预设传输时间,则传输所述待传输的数据。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种去除毛刺的方法、装置及状态机。
背景技术
目前,由于I2C(Inter Integrated Circuit,集成电路总线)总线使用时,可实现接口少、通信效率高、操作简单等优点,使得其仍广泛应用于小容量存储以及低速通信控制等领域。
然而,在使用I2C总线传输数据时,传输总线上会出现突兀的尖峰即毛刺,从而导致传输数据出现传输不准确的情况,现有技术中一般是在传输数据的接收端设置滤波器从而将毛刺过滤,然而,这样的方式,需要在接收端增加滤波器设备,传输成本较大,且传输的准确性较低。
发明内容
本申请实施例提供一种去除毛刺的方法、装置及状态机,用于提高数据传输的准确性。
第一方面,提供一种去除毛刺的方法,应用于I2C总线,所述方法包括:
获取待传输的数据的传输指令,其中,所述传输指令至少携带有待传输的数据;
根据所述传输指令,当确定第一从机状态机可传输所述待传输的数据时,则将所述待传输的数据传输至第一状态;
按照预设转移状态转移所述待传输的数据,其中,所述预设转移状态至少包括发送所述待传输的数据存储地址完成状态、读取所述待传输的数据状态;
当确定传输所述待传输的数据的时钟周期达到预设时钟周期时,将所述待传输的数据转移至预设状态处,其中,所述预设状态为数据暂停传输状态;若确定达到预设传输时间,则传输所述待传输的数据。
在一种可能的实施方式中,根据所述传输指令,当确定第一从机状态机可传输所述待传输的数据时,则将所述待传输的数据传输至第一状态,包括:
若确定所述传输指令中包括指示传输所述待传输的数据的第一从机状态机的指示信息,则根据所述指示信息,从至少一个从机状态机中确定出指示的第一从机状态机,以将所述待传输的数据传输至第一状态。
在一种可能的实施方式中,根据所述传输指令,当确定第一从机状态机可传输所述待传输的数据时,则将所述待传输的数据传输至第一状态,包括:
判断至少一个从机状态机是否可以传输所述待传输的数据;
若所述至少一个从机状态机中第一从机状态可传输所述待传输的数据,则将所述待传输的数据传输至第一状态。
在一种可能的实施方式中,若所述至少一个从机状态机中均不可传输所述待传输的数据,则将所述待传输的数据作为下一个待传输的数据或废弃数据。
在一种可能的实施方式中,所述按照预设转移状态转移所述待传输的数据,包括:
当确定所述待传输的数据传输至第一状态,则判断是否接收到控制信号;
若确定接收到所述控制信号,则将所述待传输的数据转移至预设状态处。
在一种可能的实施方式中,若确定未接收到所述控制信号,则读取所述待传输的数据的地址信息,并将所述待传输的数据发送至待发送状态处。
在一种可能的实施方式中,所述第一从机状态机的编码方式为格雷码编码方式。
第二方面,提供一种去除毛刺的装置,应用于I2C总线,所述装置包括:
获取模块,用于获取待传输的数据的传输指令,其中,所述传输指令至少携带有待传输的数据;
第一确定模块,用于根据所述传输指令,当确定第一从机状态机可传输所述待传输的数据时,则将所述待传输的数据传输至第一状态;
处理模块,用于按照预设转移状态转移所述待传输的数据,其中,所述预设转移状态至少包括发送所述待传输的数据存储地址完成状态、读取所述待传输的数据状态;
第二确定模块,用于当确定传输所述待传输的数据的时钟周期达到预设时钟周期时,将所述待传输的数据转移至预设状态处,其中,所述预设状态为数据暂停传输状态;若确定达到预设传输时间,则传输所述待传输的数据。
在一种可能的实施方式中,所述第一确定模块,用于:
若确定所述传输指令中包括指示传输所述待传输的数据的第一从机状态机的指示信息,则根据所述指示信息,从至少一个从机状态机中确定出指示的第一从机状态机,以将所述待传输的数据传输至第一状态。
在一种可能的实施方式中,所述第一确定模块,用于:
判断至少一个从机状态机是否可以传输所述待传输的数据;
若所述至少一个从机状态机中第一从机状态可传输所述待传输的数据,则将所述待传输的数据传输至第一状态。
在一种可能的实施方式中,若所述至少一个从机状态机中均不可传输所述待传输的数据,则将所述待传输的数据作为下一个待传输的数据或废弃数据。
在一种可能的实施方式中,所述第二确定模块,用于:
当确定所述将所述待传输的数据以所述从机状态机传输时,判断是否接收到控制信号;
若确定接收到所述控制信号,则将所述待传输的数据转移至确定时钟周期状态处。
在一种可能的实施方式中,若确定未接收到所述控制信号,则读取所述待传输的数据的地址信息,并将所述待传输的数据发送至暂停处理状态处。
在一种可能的实施方式中,所述第一从机状态机的编码方式为格雷码编码方式。
第三方面,提供一种状态机,所述状态机包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行第一方面中的任一方法包括的步骤。
第四方面,提供一种存储介质,该存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行第一方面中的任一方法包括的步骤。
本申请的有益效果如下:
在本申请实施例中,可以获取待传输的数据的传输指令,其中,传输指令至少携带有待传输的数据,然后可以根据传输指令,当确定第一从机状态机可传输待传输的数据时,则将待传输的数据传输至第一状态,从而按照预设转移状态转移待传输的数据;当确定传输所述待传输的数据的时钟周期达到预设时钟周期(第8时钟周期)时,将待传输的数据转移至预设状态处,若确定达到预设传输时间,则传输待传输的数据。也就是说,在本申请实施例中,可以使得第8个时钟周期的数据暂停传输,即需要让主机状态机提前接管数据总线的控制权,从而可以实现在源头处不产生毛刺,即可以准确的将毛刺去除,从而提升数据传输的准确性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例。
图1为本申请实施例中的I2C总线系统中主机和从机交换数据总线时序示意图;
图2为本申请实施例中的I2C总线系统的结构框图的示意图;
图3为本申请实施例中的I2C总线系统外部连接通路的示意图;
图4为本申请实施例中的去除毛刺方法的流程示意图;
图5为本申请实施例中的状态机的状态转移图;
图6为本申请实施例中的去除毛刺的装置示意图;
图7为本申请实施例中的状态机的结构框图的示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请的说明书和权利要求书及上述附图中的术语“第一”和“第二”是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的保护。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例中,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,在不做特别说明的情况下,一般表示前后关联对象是一种“或”的关系。
如前所述,现有技术中使用I2C总线传输数据时,会出现毛刺问题,具体的,请参见图1。如图1所示,I2C_SCL用于表示I2C总线的时钟传输状态,I2C_SDA用于表示I2C总线的数据传输状态,MST_SDA_OE用于表示主状态机的数据传输状态,SLV_SDA_OE用于表示从机状态机的数据传输状态,line1表示主机状态机开始释放数据总线控制权,line2表示从机状态机开始释放数据总线控制权,line3表示主机状态机完成数据总线控制权的接管。
请继续参见图1,根据I2C标准协议,在I2C_SCL的bit8时钟即第八个时钟周期时下降沿(line1虚线处)I2C总线系统的主机状态机开始释放数据总线的控制权,I2C从机状态机开始接管控制数据总线即开始传输数据,I2C_SCL的bit9时钟即第九个时钟周期高电平期间是由I2C从机状态机接管数据总线控制权,line2虚线处表示I2C从机开始释放数据总线控制权,I2C主机状态机直到line3虚线处才完全接管总线,当主机状态机和从机状态机都不接管总线控制期间,I2C_SDA数据总线的控制状态会被外部上拉电阻影响,导致I2C_SDA在I2C_SCL时钟下降沿附近数据总线上出现有毛刺。
在具体实施过程中,为了更便于对出现毛刺状态的理解,请参见如表1所示的数据:
表1
I2C_SDA(bit9) | I2C_SDA(bit1) | I2C_SDA(变化) | SDA_OE(变化) | 行为表现 |
0 | 0 | 0→0 | 1→1 | 有毛刺 |
0 | 1 | 0→1 | 1→0 | 无毛刺 |
1 | 0 | 1→0 | 0→1 | 无毛刺 |
1 | 1 | 1→1 | 0→0 | 无毛刺 |
具体的,请参见表1,其中,在通过I2C总线系统传输数据时,一般是以8个bit为一组数据进行数据传输,也就是说,在传输到bit9数据时,则下一个传输的为下一组的数据。请继续参见表1,在表1中“0”用于表征低电平,“1”用于表征高电平,当从机状态机释放数据总线控制权,而主机状态机未及时接收数据总线控制权时,会出现毛刺。
通过如前所述的分析,可知在I2C总线系统中,主机状态机发送电路中I2C_SCL第9个时钟周期,即第9个时钟高电平对应的数据总线为0,并且主机发送的下一个byte的最高位为0,即第9个时钟下降沿附近一定会产生毛刺。
鉴于此,本申请提出一种应用于I2C总线系统的毛刺去除方法,通过该方法可以将控制信号与状态机的发送状态相结合,从而可以解决I2C主机发送电路中I2C_SCL第9个时钟周期,由于I2C主机和I2C从机交换数据总线控制权期间的容易出现毛刺的问题。
在介绍完本申请实施例的设计思想之后,下面对本申请实施例中的毛刺的去除方法的技术方案适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本申请实施例提供的技术方案。
请参见图2,为本申请中I2C总线系统的结构框图,具体的,I2C总线系统包括数据存储模块,先入先出模块、数据控制模块、数据接发模块。下面结合附图2具体介绍数据存储模块,其中,I2C_REG用于表征存储数据的存储子模块,I2C_INT用于表征存储控制信号的存储子模块,I2C_REG和I2C_INT用于接收APB(advanced peripheral bus,先进片上总线)发送的待传输的数据以及I2C总线系统与APB之间的交互数据即控制信号;DMA(DirectMemory Access,直接内存存储)与I2C总线系统中的I2C_DMA存储子模块连接。
在具体实施过程中,外部系统总线由APB通过I2C总线进行寄存器的读写。当出现大量的控制命令和数据需要存储在SRAM静态随机存储器或SDRAM动态随机存储器时,可以使用DMA为其数据的传输单元。
请继续参见图2,I2C_DMA存储子模块、I2C_REG存储子模块以及I2C_INT存储子模块均与I2C总线系统中的FIFO(First In First Out,先进先出)模块连接。然后可以通过I2C总线系统中的数据接发模块发送控制命令和数据,其中,I2C总线系统中的数据接发模块包括TX_SHIFT子模块、RX_SHIFT子模块以及CLK_GEN子模块,具体的,TX_SHIFT子模块为数据发送子模块、RX_SHIFT可以为数据接收子模块以及CLK_GEN子模块为时钟产生子模块。
在具体的实施过程中,请继续参数图2,I2C总线系统中还包括数据控制模块,即图2中的FSM(finite state machine,有限状态机)是由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设计的状态进行状态的转移,是协调相关信号动作、完成特定功能的控制中心。在实际应用中,FSM分为主要分为Moore状态机和Mealy状态机,本申请以Mealy状态机为例进行说明。
在本申请实施例中,前述的FSM可以理解为本申请中的数据控制模块,该模块包括主机状态机和从机状态机两部分,状态机模块可以控制I2C总线系统在传输数据时将待传输的数据按照特定的状态进行状态转移,从而实现对数据传输时间的控制,这样的话,可以避免毛刺的产生。在本申请实施例中,状态机模块可以包括多个从机状态机,本申请中不做限制。
在本申请实施例中,请参见图3,图3用于示出图2中数据接发模块与所述外部连接电路的详细的结构示意图。在具体实施过程中,当需要将待传输的数据向外部传输时,则可以通过发送子模块中的数据发送模块和时钟信号产生模块,使待传输的数据以时钟信号产生模块产生时钟的周期传输数据。当需要从外部获取数据时,可以通过I/O接口与按照接收子模块中的时钟信号产生模块产生的时钟顺序通过数据传输模块进行数据的接收。
下面结合说明书附图介绍本申请实施例提供的技术方案。
请参见图4,本申请实施例提供一种去除毛刺的方法,该方法可以由前述的状态机执行,该方法的具体流程描述如下。
步骤401:获取待传输的数据的传输指令,其中,传输指令至少携带有待传输的数据。
步骤402:根据传输指令,当确定第一从机状态机可传输待传输的数据时,则将待传输的数据传输至第一状态;
步骤403:按照预设转移状态转移待传输的数据;
步骤404:当确定传输待传输的数据的时钟周期达到预设时钟周期时,将待传输的数据转移至预设状态处;若确定达到预设传输时间,则传输待传输的数据。
在本申请实施例中,可以获取待传输的数据的传输指令,其中,传输指令至少携带有待传输的数据,然后可以根据传输指令,当确定第一从机状态机可传输待传输的数据时,则将待传输的数据传输至第一状态,从而按照预设转移状态转移待传输的数据;当确定传输所述待传输的数据的时钟周期达到预设时钟周期(第8时钟周期)时,将待传输的数据转移至预设状态处,若确定达到预设传输时间,则传输待传输的数据。也就是说,在本申请实施例中,可以使得第8个时钟周期的数据暂停传输,即需要让主机状态机提前接管数据总线的控制权,从而可以实现在源头处不产生毛刺,即可以准确的将毛刺去除,从而提升数据传输的准确性。
具体的,为了更清楚的说明本申请实施例中状态机对数据接发模块数据发送的控制,从而实现毛刺的去除的技术方案,请参见图5,主机状态机默认状态是从先入先出模块未进入数据开始,即图5中所示的idle(0x0),然后当确定先入先出模块有数据输入时,即tx_empty=0时,则进入到gen_start状态。
在具体实施过程中,可以根据传输到gen_start状态的待传输的数据的传输指令中是否包括指示传输待传输的数据传输的从机状态机的指示信息,若携带有指示信息,即非general_call模式即(gc_stbyte_sel=0),前述的general_call模式可以理解为呼叫所有从机状态机,即从至少一个从机状态机中确定出可以处理待传输的数据的从机状态机。那么,相应的非general_call模式即无需呼叫所有从机状态机,可以根据指示信息确定从机状态机。
请继续参考图5,当传输指令中未携带有指示信息,可以确定为选择general_call模式即(gc_stbyte_sel=1),则进入check_ic_tat状态,也就是说,需要判断至少一个从机状态机是否可以传输待传输的数据。然后主机状态机则往先入先出模块中写入该待传输的数据的地址,例如0x00,并且把这个地址发送给所有的I2C从机状态机,若有I2C从机状态机响应,则返回I2C主机状态机一个响应即(ack_det=1),从而主机状态机则可以从至少一个从机状态机确定出第一从机状态机。
在本申请实施例中,若至少一个从机状态机均不可传输待传输的数据,则将待传输的数据返回至gen_stop状态或idle状态,即将待传输的数据作为下一个待传输的数据或废弃数据。
在本申请实施例中,当确定出可传输待传输的数据的第一从机状态机之后,即如图5中到达pop_tx_data状态即前述的第一状态,具体的,pop_tx_data状态可以理解为确定将待传输的数据的传输地址发送给从机状态机,当确定mst_tx_cmplt=1条件成立时,即表明主机状态机发送地址完成,则可确定将待传输的数据进入tx_byte状态即前述的预设状态中发送待传输的数据存储地址完成状态。
在本申请实施例中,当从非general_call模式即(gc_stbyte_sel=0)中确定出第一从机状态机后,则将待传输的数据的控制状态由gen_start状态跳转到pop_tx_data状态,然后当确定根据mst_tx_cmplt=0的条件,即表明I2C主机需要再发送一次地址(tx7_1st_addr),由于master_read=0条件成立即表明主机是写操作,即将进入发送数据状态,然后再进入rx_byte状态。
在具体实施过程中,当TX_FIFO即先入先出模块中数据跟不上发送数据的速率(tx_empty=1)时,即认为到达预设时钟周期,则将预设状态转移到hold_tx_byte状态即前述的预设状态处。反之,若当TX_FIFO即先入先出模块中数据与发送数据的速率同步时,即认为未收到控制信号时,则将待传输的数据发送至待发状态即rx_byte状态.
在本申请实施例中,在tx_empty=1到tx_empty=0期间,即进入hold_tx_byte状态后未跳转到tx_byte状态之前,I2C数据总线由于工作在open_drain模式,此段时间是会被上拉电阻拉高,在I2C_SCL低电平期间出现异常凸起的毛刺。
在本申请实施例中,当达到预设传输时间时,则将待传输的数据从hold_tx_byte状态后跳转到tx_byte状态,从而可以避免出现I2C数据总线由于主机状态机和从机状态机对数据总线控制权接管出现空接问题,而导致的出现毛刺,从而造成待传输的数据传输准确性较低的问题。
在本申请实施例中,可以理解为在hold_tx_byte状态状态加入一个预测控制位,当I2C_SDA_OE在bit9和bit1分别为0和1时候,I2C_SDA才会出现毛刺,则需要让I2C主机状态机提前接管数据总线的控制权,即当接收到控制信号时,也就是前述的到达预设传输时间时,使得主机状态机接管数据总线的控制权。
进一步地,在本申请实施例中,可以使用gray_code(格雷码)对第一从机状态机进行编码,例如从tx_byte状态到hold_tx_byte状态码为0xb跳转到0x1b。
如前所述,可以将确定处理待传输的数据的从机状态机的编码采用格雷码的编码格式,这样的话,由于只有1bit数据的变化,则相对传统的I2C从机状态机相可以具有自适应能力,即根据不同的传输数据硬件自动决定是否让I2C主机状态机提前接管总线,可以降低I2C总线系统的功耗。
本申请实施例中的毛刺自适应状态机电路设计,即前述的去除毛刺的方法,可以从根本上解决了I2C主机状态机和I2C从机状态机在总线交互过程中产生毛刺的可能性,且由于第一从机状态机采用格雷码编码,这样的话,可以降低状态之间跳转的功耗的消耗,增强了系统的稳定性,提高抗干扰能力。例如,传输4个数据,有3/4的概率状态机是按照格雷码跳转,与现有技术中技术方案相比,状态机跳转功耗降低了至少50%,且采用的从机状态机个数较少。
基于同一发明构思,本申请实施例提供了一种去除毛刺的装置,该去除毛刺的装置能够实现前述的去除毛刺的方法对应的功能。该去除毛刺的装置可以是硬件结构、软件模块、或硬件结构加软件模块。该去除毛刺的装置可以由芯片系统实现,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。请参见图6所示,该去除毛刺的装置包括获取模块601、第一确定模块602、第二确定模块603和处理模块604。其中:
获取模块601,用于获取待传输的数据的传输指令,其中,传输指令至少携带有待传输的数据;
第一确定模块602,用于根据传输指令,当确定第一从机状态机可传输待传输的数据时,则将待传输的数据传输至第一状态;
第二确定模块603,用于按照预设转移状态转移待传输的数据,其中,预设转移状态至少包括发送待传输的数据存储地址完成状态、读取待传输的数据状态;
处理模块604,用于当确定传输待传输的数据的时钟周期达到预设时钟周期时,将待传输的数据转移至预设状态处,其中,预设状态为数据暂停传输状态;若确定达到预设传输时间,则传输待传输的数据。
在一种可能的实施方式中,第一确定模块602,用于:
若确定传输指令中包括指示传输待传输的数据的第一从机状态机的指示信息,则根据指示信息,从至少一个从机状态机中确定出指示的第一从机状态机,以将待传输的数据传输至第一状态。
在一种可能的实施方式中,第一确定模块602,用于:
判断至少一个从机状态机是否可以传输待传输的数据;
若至少一个从机状态机中第一从机状态可传输待传输的数据,则将待传输的数据传输至第一状态。
在一种可能的实施方式中,若至少一个从机状态机中均不可传输待传输的数据,则将待传输的数据作为下一个待传输的数据或废弃数据。
在一种可能的实施方式中,第二确定模块603,用于:
当确定待传输的数据传输至第一状态,则判断是否接收到控制信号;
若确定接收到控制信号,则将待传输的数据转移至预设状态处。在一种可能的实施方式中,若确定未接收到控制信号,则读取待传输的数据的地址信息,并将待传输的数据发送至待发送状态处。
在一种可能的实施方式中,第一从机状态机的编码方式为格雷码编码方式。
前述的去除毛刺的方法的实施例涉及的各步骤的所有相关内容均可以援引到本申请实施例中的去除毛刺的装置所对应的功能模块的功能描述,在此不再赘述。
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
基于同一发明构思,本申请实施例提供一种状态机,请参见图7所示,该状态机包括至少一个处理器701,以及与至少一个处理器连接的存储器702,本申请实施例中不限定处理器701与存储器702之间的具体连接介质,图7中是以处理器701和存储器702之间通过总线700连接为例,总线700在图7中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线700可以分为地址总线、数据总线、控制总线等,为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请实施例中,存储器702存储有可被至少一个处理器701执行的指令,至少一个处理器701通过执行存储器702存储的指令,可以执行前述的去除毛刺的方法中所包括的步骤。
其中,处理器701是状态机的控制中心,可以利用各种接口和线路连接整个状态机的各个部分,通过运行或执行存储在存储器702内的指令以及调用存储在存储器702内的数据,状态机的各种功能和处理数据,从而对状态机进行整体监控。可选的,处理器701可包括一个或多个处理单元,处理器701可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器701中。在一些实施例中,处理器701和存储器702可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器701可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器702作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器702可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器702是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器702还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
通过对处理器701进行设计编程,可以将前述实施例中介绍的去除毛刺的方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行前述的去除毛刺的方法的步骤,如何对处理器701进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
基于同一发明构思,本申请实施例还提供一种存储介质,该存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行如前述的去除毛刺的方法的步骤。
在一些可能的实施方式中,本申请提供的去除毛刺的方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在状态机上运行时,所述程序代码用于使该状态机执行本说明书上述描述的根据本申请各种示例性实施方式的去除毛刺的方法中的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种去除毛刺的方法,其特征在于,应用于I2C总线,所述方法包括:
获取待传输的数据的传输指令,其中,所述传输指令至少携带有待传输的数据;
根据所述传输指令,当确定第一从机状态机可传输所述待传输的数据时,则将所述待传输的数据传输至第一状态;
按照预设转移状态转移所述待传输的数据,其中,所述预设转移状态至少包括发送所述待传输的数据存储地址完成状态、读取所述待传输的数据状态;
当确定传输所述待传输的数据的时钟周期达到预设时钟周期时,将所述待传输的数据转移至数据暂停传输状态处;若确定达到预设传输时间,则传输所述待传输的数据。
2.如权利要求1所述的方法,其特征在于,根据所述传输指令,当确定第一从机状态机可传输所述待传输的数据时,则将所述待传输的数据传输至第一状态,包括:
若确定所述传输指令中包括指示传输所述待传输的数据的第一从机状态机的指示信息,则根据所述指示信息,从至少一个从机状态机中确定出指示的第一从机状态机,以将所述待传输的数据传输至第一状态。
3.如权利要求1所述的方法,其特征在于,根据所述传输指令,当确定第一从机状态机可传输所述待传输的数据时,则将所述待传输的数据传输至第一状态,包括:
判断至少一个从机状态机是否可以传输所述待传输的数据;
若所述至少一个从机状态机中第一从机状态可传输所述待传输的数据,则将所述待传输的数据传输至第一状态。
4.如权利要求3所述的方法,其特征在于,若所述至少一个从机状态机中均不可传输所述待传输的数据,则将所述待传输的数据作为下一个待传输的数据或废弃数据。
5.如权利要求1所述的方法,其特征在于,所述按照预设转移状态转移所述待传输的数据,包括:
当确定所述待传输的数据传输至第一状态,则判断是否接收到控制信号;
若确定接收到所述控制信号,则将所述待传输的数据转移至数据暂停传输状态处。
6.如权利要求5所述的方法,其特征在于,若确定未接收到所述控制信号,则读取所述待传输的数据的地址信息,并将所述待传输的数据发送至待发送状态处。
7.如权利要求1所述的方法,其特征在于,所述第一从机状态机的编码方式为格雷码编码方式。
8.一种去除毛刺的装置,其特征在于,应用于I2C总线,所述装置包括:
获取模块,用于获取待传输的数据的传输指令,其中,所述传输指令至少携带有待传输的数据;
第一确定模块,用于根据所述传输指令,当确定第一从机状态机可传输所述待传输的数据时,则将所述待传输的数据传输至第一状态;
处理模块,用于按照预设转移状态转移所述待传输的数据,其中,所述预设转移状态至少包括发送所述待传输的数据存储地址完成状态、读取所述待传输的数据状态;
第二确定模块,用于当确定传输所述待传输的数据的时钟周期达到预设时钟周期时,将所述待传输的数据转移至数据暂停传输状态处;若确定达到预设传输时间,则传输所述待传输的数据。
9.一种状态机,其特征在于,所述状态机包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行权利要求1-7任一所述的方法包括的步骤。
10.一种存储介质,其特征在于,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行权利要求1-7任一所述的方法包括的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910830595.6A CN112445743B (zh) | 2019-09-04 | 2019-09-04 | 一种去除毛刺的方法、装置及状态机 |
US17/625,524 US20220269642A1 (en) | 2019-09-04 | 2020-06-29 | Method and apparatus for eliminating glitch, and state machine |
PCT/CN2020/098669 WO2021042836A1 (zh) | 2019-09-04 | 2020-06-29 | 一种去除毛刺的方法、装置及状态机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910830595.6A CN112445743B (zh) | 2019-09-04 | 2019-09-04 | 一种去除毛刺的方法、装置及状态机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112445743A CN112445743A (zh) | 2021-03-05 |
CN112445743B true CN112445743B (zh) | 2024-03-22 |
Family
ID=74734427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910830595.6A Active CN112445743B (zh) | 2019-09-04 | 2019-09-04 | 一种去除毛刺的方法、装置及状态机 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220269642A1 (zh) |
CN (1) | CN112445743B (zh) |
WO (1) | WO2021042836A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115981880B (zh) * | 2023-03-21 | 2023-06-23 | 深圳云豹智能有限公司 | 避免主机访问从机出现死锁的方法、装置、系统、存储介质及芯片 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5506809A (en) * | 1994-06-29 | 1996-04-09 | Sharp Kabushiki Kaisha | Predictive status flag generation in a first-in first-out (FIFO) memory device method and apparatus |
US6571106B1 (en) * | 1999-07-14 | 2003-05-27 | Texas Instruments Incorporated | Method and apparatus for glitchless signal generation |
CN1491394A (zh) * | 2001-08-14 | 2004-04-21 | ���ܿ���ϵͳ����˾ | 时序不灵敏及无假信号逻辑系统和方法 |
CN102163180A (zh) * | 2011-01-20 | 2011-08-24 | 电子科技大学 | 一种i2c总线接口电路模块及其控制方法 |
US10255603B1 (en) * | 2017-08-31 | 2019-04-09 | Sqaure, Inc. | Processor power supply glitch mitigation |
CN109709475A (zh) * | 2017-10-26 | 2019-05-03 | 恩智浦美国有限公司 | 输入/输出总线中的毛刺检测 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5808485A (en) * | 1996-08-05 | 1998-09-15 | Vlsi Technology, Inc. | Clock clamping circuit that prevents clock glitching and method therefor |
US6535057B2 (en) * | 2000-05-29 | 2003-03-18 | Stmicroelectronics Ltd. | Programmable glitch filter |
US6799233B1 (en) * | 2001-06-29 | 2004-09-28 | Koninklijke Philips Electronics N.V. | Generalized I2C slave transmitter/receiver state machine |
US6981204B2 (en) * | 2002-07-19 | 2005-12-27 | Texas Instruments Incorporated | Programmable glitch filter for an asynchronous data communication interface |
JP2008539645A (ja) * | 2005-04-29 | 2008-11-13 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 状態マシンを用いたi2cスレーブ/マスタインタフェース機能強化 |
US7372304B2 (en) * | 2005-10-04 | 2008-05-13 | Stmicroelectronics, Inc. | System and method for glitch detection in a secure microcontroller |
CN103714029B (zh) * | 2013-05-07 | 2015-03-25 | 深圳市汇春科技有限公司 | 新型二线同步通信协议及应用 |
US10635767B2 (en) * | 2017-01-31 | 2020-04-28 | Mentor Graphics Corporation | Glitch detection at clock domain crossing |
-
2019
- 2019-09-04 CN CN201910830595.6A patent/CN112445743B/zh active Active
-
2020
- 2020-06-29 US US17/625,524 patent/US20220269642A1/en not_active Abandoned
- 2020-06-29 WO PCT/CN2020/098669 patent/WO2021042836A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5506809A (en) * | 1994-06-29 | 1996-04-09 | Sharp Kabushiki Kaisha | Predictive status flag generation in a first-in first-out (FIFO) memory device method and apparatus |
US6571106B1 (en) * | 1999-07-14 | 2003-05-27 | Texas Instruments Incorporated | Method and apparatus for glitchless signal generation |
CN1491394A (zh) * | 2001-08-14 | 2004-04-21 | ���ܿ���ϵͳ����˾ | 时序不灵敏及无假信号逻辑系统和方法 |
EP1417605A1 (en) * | 2001-08-14 | 2004-05-12 | Axis Systems, Inc. | Timing-insensitive glitch-free logic system and method |
CN102163180A (zh) * | 2011-01-20 | 2011-08-24 | 电子科技大学 | 一种i2c总线接口电路模块及其控制方法 |
US10255603B1 (en) * | 2017-08-31 | 2019-04-09 | Sqaure, Inc. | Processor power supply glitch mitigation |
CN109709475A (zh) * | 2017-10-26 | 2019-05-03 | 恩智浦美国有限公司 | 输入/输出总线中的毛刺检测 |
Also Published As
Publication number | Publication date |
---|---|
CN112445743A (zh) | 2021-03-05 |
US20220269642A1 (en) | 2022-08-25 |
WO2021042836A1 (zh) | 2021-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109902053A (zh) | 一种基于双控制器的spi通信方法、终端设备及存储介质 | |
JP2009540681A5 (zh) | ||
US9552279B2 (en) | Data bus network interface module and method therefor | |
CN101504692A (zh) | 一种验证和测试片上系统的系统及方法 | |
CN105302612A (zh) | 快速升级电子系统机箱内单片机软件程序的方法 | |
EP2847683B1 (en) | Processor device with instruction trace capabilities | |
CN101510185A (zh) | 一种高速总线向低速总线写入、读取数据的方法和装置 | |
US20190356412A1 (en) | Fast termination of multilane double data rate transactions | |
CN103558812B (zh) | 基于fpga和arm的mvb网络四类设备网卡 | |
CN112564882A (zh) | 一种基于ahb总线的单线数字通讯接口 | |
CN112445743B (zh) | 一种去除毛刺的方法、装置及状态机 | |
CN113849433A (zh) | 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质 | |
US10733121B2 (en) | Latency optimized I3C virtual GPIO with configurable operating mode and device skip | |
CN101763324B (zh) | 设备模拟的实现方法和装置 | |
CN109684152B (zh) | 一种risc-v处理器指令下载方法及其装置 | |
CN105718396A (zh) | 一种大数据主设备传输的i2c总线装置及其通讯方法 | |
US10339085B2 (en) | Method of scheduling system-on-chip including real-time shared interface | |
CN105022706A (zh) | 控制器电路,数据接口块和用于传输数据的方法 | |
KR20130045894A (ko) | 인터럽트 요인 관리 장치 및 인터럽트 처리 시스템 | |
CN115794701A (zh) | 一种dma功能虚拟串口的bmc芯片及方法 | |
CN104156336A (zh) | 一种usb2.0接口芯片的控制方法 | |
WO2014027223A1 (en) | Data bus network interface module and method therefor | |
CN109684245B (zh) | 一种apb总线访问spi flash的方法及装置 | |
CN114830103A (zh) | 跟踪处理程序模块系统和使用所述系统的方法 | |
US20230305816A1 (en) | Device and method for handling programming language function |
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 |