CN113032305B - 一种接口中断测量方法及装置 - Google Patents

一种接口中断测量方法及装置 Download PDF

Info

Publication number
CN113032305B
CN113032305B CN202110273413.7A CN202110273413A CN113032305B CN 113032305 B CN113032305 B CN 113032305B CN 202110273413 A CN202110273413 A CN 202110273413A CN 113032305 B CN113032305 B CN 113032305B
Authority
CN
China
Prior art keywords
interrupt
interface
time
module
cpu
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
CN202110273413.7A
Other languages
English (en)
Other versions
CN113032305A (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.)
Phytium Technology Co Ltd
Original Assignee
Phytium 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 Phytium Technology Co Ltd filed Critical Phytium Technology Co Ltd
Priority to CN202110273413.7A priority Critical patent/CN113032305B/zh
Publication of CN113032305A publication Critical patent/CN113032305A/zh
Application granted granted Critical
Publication of CN113032305B publication Critical patent/CN113032305B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

本发明公开了一种接口中断测量方法及装置,该方法的步骤包括:步骤S1:产生可调中断触发源,将可调中断触发源转换为CPU能够读取的中断类型,发送给CPU;同时,捕获接口中断的触发时间,记录触发时刻;步骤S2:利用CPU内的中断控制模块对中断进行处理,上报到中断服务程序;当处理完了一个中断的时候,发送中断结束的标志;步骤S3:当接收中断结束的标志,记录结束标志时刻;将接口中断的触发时刻和结束标志时刻输入接口中断测量装置,计算出接口中断处理的时间。该装置用来实施上述方法。本发明具有成本低、操作简便、应用范围广等优点。

Description

一种接口中断测量方法及装置
技术领域
本发明主要涉及到计算机技术领域,特指一种接口中断测量方法及装置。
背景技术
“中断”作为计算机一种标准的输入接口,反映了计算机对外部事件进行判断和处理的过程。它被广泛应用于线程切换及状态管理、异常处理、硬件与处理器的交互、I/O操作等方面。随着计算机通信技术的快速发展,如何有效和便捷地在更多场合使用中断技术一直是当今的需求。
在现有计算机领域的中断技术中,主要表现为对中断响应时间的测量,但是目前对于整个中断执行机制所需要的时间,没有简单而又能应用于多场合应用测试的测量方法。
中断响应时间的测量方法通常有两种方式:一种可以使用CPU内置的计数寄存器计数法,即当可调中断触在触发的同时,寄存器开始计数,直到开始执行中断服务函数的第一条指令停止计数,读取寄存器值就能获得中断的响应时间。另一种可以通过函数发生器和信号源,用函数发生器输出两路信号,一路经过待测系统,另一路直接接入示波器,利用示波器比较两路信号的延迟,得到中断响应的时间。
对于上述的测量方法,第一种存在依赖CPU资源的缺陷,且只适用于系统响应外部请求的场合。在该场合下,系统才能获取计数寄存器的值。对于中断处理异常的情况,该测量方法并不适用。另一种则需要借助仪器,示波器的价格昂贵而且操作比较复杂,在实际应用中,很多的应用场合并不具备使用示波器的条件。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种成本低、操作简便、应用范围广的中断测量方法及装置。
为解决上述技术问题,本发明采用以下技术方案:
一种接口中断测量方法,其步骤包括:
步骤S1:产生可调中断触发源,将可调中断触发源转换为CPU能够读取的中断类型,发送给CPU;同时,捕获接口中断的触发时间,记录触发时刻;
步骤S2:利用CPU内的中断控制模块对中断进行处理,上报到中断服务程序;当处理完了一个中断的时候,发送中断结束的标志;
步骤S3:当接收中断结束的标志,记录结束标志时刻;将接口中断的触发时刻和结束标志时刻输入接口中断测量装置,计算出接口中断处理的时间。
作为本发明方法的进一步改进:所述步骤S1中,所述可调中断触发源由CPLD产生,由CPU系统时钟通过CPLD分频或者倍频而得。
作为本发明方法的进一步改进:所述可调中断触发源采用标准时间脉冲触发,然后进行中断转换。
作为本发明方法的进一步改进:所述步骤S1中,通过中断类型的转换,将LPC、PCIE、UART接口中的任意一个转换为CPU的中断类型。
作为本发明方法的进一步改进:所述步骤S2中,当处理完了一个中断的时候,向CPU写入发送结束标志寄存器、从而通知中断控制模块已经处理完该中断,通过发送结束标志寄存器获取。
作为本发明方法的进一步改进:所述步骤S2中,在当进入中断后,中断标志位会自动被置1,代表着“正在执行中断服务程序”;在结束中断服务程序之前,通过中断控制模块清除中断标志位,在清除中断标志位完成之后,将发送中断结束的标志发出。
作为本发明方法的进一步改进:在所述步骤S3中,对中断处理的时间进行判断,输出中断处理的时间和/或中断错误信息。
作为本发明方法的进一步改进:在所述步骤S3中,进行中断测量时采用脉冲计数法,即采用高频时钟对接口中断测量模块的触发时刻T0和接收信号结束标志时刻TN进行计数;从接口中断的触发时刻T0开始计数,计数值为0,接收到CPU结束标志的时刻TN停止计数,计数值为N,Tx为脉冲计数时间,得到中断处理的时间T如下式:
T=Tx+ΔT
Figure BDA0002974257930000031
ΔT=ΔT1-ΔT2
得到中断处理的时间T最终表达式:
Figure BDA0002974257930000032
中断测量时间的误差为ΔT。
作为本发明方法的进一步改进:在所述步骤S3中,进行中断测量时采用时间数字转换器-TDC,TDC为时间测量电路;TDC的测量包括粗测量和细测量;所述粗测量采用脉冲计数法,所述细测量采用延时线内插法。
作为本发明方法的进一步改进:所述延时线将时钟信号延迟了n次相位,每次延时的相位的相同;通过比较接收标志TN的上升沿之后与各延时的时钟信号的逻辑关系,锁存器存储对应的状态,推出时间测量误差ΔT′:
Figure BDA0002974257930000033
将触发时刻的T0的信号在延时器中相右传递,每经过一个延时器,延时的时间为τ;当结束标志时刻TN进入触发器,记录触发时刻的T0的经过的延时器的数量σ,得到测量误差:
ΔT′=στ
结合粗测量,得到中断处理的时间T:
Figure BDA0002974257930000034
作为本发明方法的进一步改进:对于UART接口,所述UART为一个串口,用其RX信号,将外设传输来的数据上报GIC。
作为本发明方法的进一步改进:对于I2C接口,通信双方作为主设备或者从设备。
作为本发明方法的进一步改进:对于LPC接口,使用主板上已有的CPLD做为上报的设备。
作为本发明方法的进一步改进:对于PCIe接口,采用INTX中断或者时MSI中断,使FPGA向CPU的PCIe接口之间发送中断报文。
本发明进一步提供一种接口中断测量装置,其包括:
可调中断触发源模块,用来产生可调中断触发源;
中断转换器模块,用来将所述可调中断触发源转换为CPU能够读取的中断类型,并发送给CPU;
发送中断结束标志模块,用来在CPU内中断控制模块对中断进行处理之后发送中断结束标志至综合计算模块;
综合计算模块,通过接收标志信号模块接收中断结束标志,对中断处理的时间进行判断,输出中断处理的时间和/或中断错误信息。
作为本发明装置的进一步改进:所述综合计算模块与可调中断触发源模块为同一模块,用来将收发的时间统计回来。
作为本发明装置的进一步改进:所述可调中断触发源模块采用周期的方波或正弦波。
作为本发明装置的进一步改进:所述中断转换器模块用来将可调中断触发源转换后经接口模块送入CPU,所述接口模块为CPUIO模块、GPIO口、LPC接口、PCIe接口中的任意一种。
作为本发明装置的进一步改进:所述CPU内还包括CPU的中断服务程序模块,所述中断服务程序模块用来负责中断的开启,优先级的分配,及对应的中断服务程序入口
与现有技术相比,本发明的优点在于:
1、本发明的接口中断测量方法及装置,可以解决由于IO模块的不同进而造成IO中断协议的不同,而影响中断系统测试的问题,具有良好的平台和接口拓展兼容性。本发明通过测量这些中断执行机制处理的时间并进行判断,输出中断处理时间或者中断错误信息。本发明得到的结果可以反映系统对外部请求的处理速度,对提高系统的实时交互性具有非常重要的意义。
2、本发明的接口中断测量方法及装置,可以解决依赖CPU资源,占用中断服务程序进程,进而导致中断处理时间测量不精确的问题。
3、本发明的接口中断测量方法及装置,可以解决中断触发方式复杂,无法准确捕获到触发时间节点的问题。本发明进一步可以解决由于不同中断对应的总线类型不同,普通设备不支持而无法测量的问题。本发明进一步还能够解决中断服务程序调试时由于时间无法把控,在中断服务程序执行异常时,影响系统正常工作状态的问题。
4、本发明的接口中断测量方法及装置,可运用在不同的中断触发源、不同的总线类型上、服务器终端以及嵌入式等不同的领域,具有低成本、涵盖领域广的优点。
附图说明
图1是本发明方法在具体应用实例中流程示意图。
图2是本发明在具体应用实例中LPC接口中断CPU与CPLD硬件连接示意图。
图3是本发明在具体测量实例中Continue模式的中断时序图。
图4是本发明在具体应用实例中Continue模式中断转换器原理示意图。
图5是本发明在具体应用实例中Continue模式中断转换器流程示意图。
图6是本发明在具体应用实例中Quite模式中断时序图。
图7是本发明在具体应用实例中Quite模式中断转换器示意图。
图8是本发明在具体应用实例中Quite模式中断转换器流程示意图。
图9是本发明在具体应用实例中DMA模式中断时序图。
图10是本发明在具体应用实例中DMA模式中断转换器示意图。
图11是本发明在具体应用实例中DMA模式中断转换器具体流程示意图。
图12是本发明在具体应用实例中UART接口CPU与CPLD硬件连接示意图。
图13是本发明在具体应用实例中UART协议时序图。
图14是本发明在具体应用实例中UART接口中断转换器示意图。
图15是本发明在具体应用实例中UART接口中断转换器具体流程示意图。
图16是本发明在具体应用实例中I2C接口CPU与CPLD硬件连接示意图。
图17是本发明在具体应用实例中I2C的整体时序图。
图18是本发明在具体应用实例中I2C接口的单字节写时序图。
图19是本发明在具体应用实例中I2C接口中断转换器示意图。
图20是本发明在具体应用实例中I2C接口中断转换器具体流程示意图。
图21是本发明在具体应用实例中GIC模块与LPC中断控制模块的示意图。
图22是本发明在具体应用实例中GIC模块与UART中断控制模块的示意图。
图23是本发明在具体应用实例中GIC模块与I2C中断控制模块的示意图。
图24是本发明在具体应用实例中标志信号的发送接收示意图。
图25是本发明在具体应用实例中LPC的典型时序的示意图。
图26是本发明在具体应用实例中中断测量模块的示意图。
图27是本发明在具体应用实例中脉冲计数法的示意图。
图28是本发明在具体应用实例中延时线内插法基本思路的示意图。
图29是本发明在具体应用实例中延时线内插法的示意图。
图30是本发明装置在具体应用实例中结构原理示意图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
如图1所示,本发明的一种接口中断测量方法,其步骤包括:
步骤S1:产生可调中断触发源,将可调中断触发源转换为CPU能够读取的中断类型,发送给CPU;同时捕获接口中断的触发时间,记录触发时刻;
步骤S2:利用CPU内的中断控制模块对中断进行处理,上报到中断服务程序;当处理完了一个中断的时候,发送中断结束的标志;
步骤S3:当接收中断结束的标志,记录结束标志时刻;将接口中断的触发时间和接收信号标志时刻输入接口中断测量装置,最后计算出接口中断处理的时间。
在具体应用实例中,在所述步骤S1中,所述可调中断触发源由CPLD产生,由CPU系统时钟通过CPLD分频或者倍频而得,且进一步可以采用分频比或者倍频比可调的方式。为了配合接口中断的测量,使得接口中断的传输速度与可调中断触发源相匹配,即传输速度在相差不大的数量级进行接口中断的测量。可以对分频和倍频的应用场景进行区分,在低速接口中断测量中,比如UART、I2C和LPC接口,可以将可调中断触发源的频率降低,即分频。在高速接口中断测量中,比如PCIE接口,需要将可调中断触发源的频率提高,即倍频。在具体应用实例中,可以根据实际需要选择是简单的正弦波,或者由按键触发,然后进行中断转换。
在具体应用实例中,在所述步骤S1中,通过中断类型的转换,可以将不同外设接口如LPC、UART、I2C和PCIe等接口,转换为CPU的中断类型。进一步可以捕获对应的接口中断的触发时间。
为了满足不同接口中断测量,对几种常用的接口中断上报的速度进行简单分析,例如:
对于UART接口,无论是高性能CPU还是嵌入式CPU,UART都是一个常用的串口。用其RX信号,将外设传输来的数据上报GIC,就能匹配高性能的CPU中断。中断上报的速度与波特率会有极大的关系,适用于一些对中断上报速度较低的场合。
对于I2C接口,上报的速度比UART接口稍微高一点,通信双方可以作为主设备或者从设备,可以充分发挥CPLD的优点。
对于LPC接口,上报的速度在UART及PCIe之间,可以使用主板上已有的CPLD做为上报的设备,无需增加成本,自身可以承载多设备。
对于PCIe接口,广泛应用于高性能CPU,中断上报的速度非常快。采用INTX中断或者时MSI中断,使FPGA向CPU的PCIe接口之间发送中断报文。
作为较佳实施例,本发明选择LPC接口,UART接口和I2C接口,并描述可调中断触发源到LPC接口,UART接口和I2C接口的中断转换器。
实施例1:可调中断触发源到LPC接口中断的中断转换器。
LPC接口中断转换器参见图2所示,描述了外部可调中断触发源转化为LPC中断的方式,转换之后与之相连接的CPUIO自然就为LPC总线。
结合这个LPC中断为例,对本发明做进一步详细阐述。LPC中断分为DMA和串行中断两大类,而串行中断又分为两种模式,分别为Continue和Quite模式。LPC中断的信号如下表所示。
Figure BDA0002974257930000081
当使用串行中断时,配置SERIRQ信号,它将多个请求中断源用一根信号线传输,遵循PCI系统中标准ISA IRQ。常见可调中断触发源大多表现为高低电平的变化就能完成中断的上报,而串行中断的整个结构包括起始帧、中断号、结束帧。
下面介绍LPC SERIRQ的其中一种方式:Continue模式用于本实施例。Continue模式的中断时序图如图3所示。
当LPC的中断处于Continue模式的时候,无论slave是否有中断上报,CPU都会一直向外发出起始帧及结束帧。当slave需要上报中断时,需要检测其起始帧的位置,并在处于该slave中断号IRQ的位置,将对应节拍的SERIRQ信号拉低。当结束帧发出的时候,本次中断就会上报到CPU的GIC模块。
本实例中,本发明是采用CPLD逻辑设计来实现中断类型转换。选用gpio_A做为附带标准时间属性的脉冲输入端口。
下面以串行中断Continue模式为例,分析CPLD逻辑设计。
在CPLD模块的信号包括clk_33M、SERIRQ_in、gpio_A、rst_n和SERIRQ_out,呈现形式如图4所示。
在图4中,左边将gpio_A高低电平的变化,转化为串行中断start帧的检测。经过CPLD逻辑设计,使得gpio_A电平中断转换到串行中断IRQ上,便于CPU读取gpio_A的中断类型。其主旨就是将可调中断触发源的波形转化为适合Continue模式的波形。Continue模式中断转换器具体流程框图如图5所示。
结合图5,在gpio_A为低电平,在Continue模式中断转换器具体流程中执行SERIRQ_out=0,然后执行结束,CPU会根据图3发出结束帧。这个过程,意味着从gpio_A触发到LPC中断转化完成。通过中断转换器模块,gpio_A实现了CPUIO中断的上报,下一步等待结束帧发出结束之后,CPLD同时捕获接口中断的触发时间。下一步中断控制器GIC模块对外设接口中断进行处理,上报到中断服务程序,等待处理完成后通知GIC模块进行清除处理,发出发送结束标志。下一步CPLD接收信号标志,再次记录当前的时刻。将接口中断的触发时间和接收信号标志时刻输入接口中断测量装置,最后计算出接口中断处理的时间。
下面介绍LPC SERIRQ的另一种方式:Quite模式用于本实施例。Quite模式的中断时序图如图6所示。
当LPC的中断处于Quite模式的时候,总线上没有中断的时候,SERIRQ中断线为高。当slave需要向CPU报中断的时候,需要一次性将起始帧、中断号IRQ、结束帧,全部发送到SerIRQ信号线上。当结束帧发出的时候,本次中断就会上报到CPU的GIC模块。
下面分析串行中断Quite模式的CPLD逻辑设计。
与Continue模式不一样的是在CPLD逻辑设计不需要SERIRQ_in信号,而是由CPLD在检测到gpio_A为低电平之后,一次性将起始帧、中断号IRQ和结束帧,再输出到SERIRQ_out上,呈现形式如图7所示。
对于串行中断Quite模式,在图7中,左边将gpio_A高低电平的变化,通过周期计数部分,在gpio_A为低电平时,开始周期计数,发出start帧,接着并在对应中断号IRQ位置IRQ_TIME周期拉低,最后发出stop帧,目的就是在SERIRQ_out形成符合LPC中断的波形。具体的实现流程框图如图8所示。
IRQ_cnt模块:主要用于串行中断Quite模式整个数据帧的周期计数。当检测到gpio_A为低电平时,开始计数,形成周期计数模块。
IRQ_out模块:在IRQ_cnt计数模块开始之后,start为4个周期,SERIRQ_out的IRQ占n个周期,可根据CPU分配的中断号lRQ位置,作出相应的分配,不同中断号IRQ对应不同的IRQ_TIME,stop为2个周期,只需要在SERIRQ_out模块将对应周期的电平根据Quite模式中断时序图SERIRQ数据线输出,gpio_A的波形就转化成了LPC Quite模式中断的波形。
结合图7,在gpio_A为低电平,在Quite模式中断转换器具体流程中IRQ_out输出2个周期的stop。这个过程,意味着从gpio_A触发到LPC中断转化完成。通过中断转换器模块,gpio_A实现了CPUIO中断的上报,下一步等待结束帧发出结束之后,CPLD同时捕获接口中断的触发时间。下一步中断控制器GIC模块对外设接口中断进行处理,上报到中断服务程序,等待处理完成后通知GIC模块进行清除处理,发出发送结束标志。下一步CPLD接收信号标志,再次记录当前的时刻。将接口中断的触发时间和接收信号标志时刻输入中断测量模块,最后计算出接口中断处理的测量时间。
下面介绍LPCDMA模式用于本实施例。DMA中断所走的硬件通道与串行中断的不一样,DMA中断通过LDRQ信号线向CPU的LPC控制器提交中断请求,如图2所示。DMA传输支持多设备,因此中断上报也需要遵循一定的规则。规则为:设备ID与波形上的ID号必须是一致的。DMA模式的中断时序图如图9所示。
下面分析DMA模式的CPLD逻辑设计。DMA的实现方式在接口中断测量系统中,直接将gpio_A的信号转化为LDRQ数据线的信号,是数据线较少的一种实现方式。CPLD对于CPU来说,是单输入信号,在逻辑设计上,就不需要对信号进行预处理了。在CPLD模块的信号包括clk_33M、gpio_A、rst_n和LDRQ_out,呈现形式如图10所示。
对于DMA模式,CPLD逻辑设计呈现形式与串行中断的Quite模式是类似的,需要注意的是:LDRQ_out模块改为下降沿检测,输出的波形与LPC控制器的DMA ID号需要一致。具体流程框图如图11所示。
LDRQ_cnt模块:主要用于DMA模式的周期计数。当检测到gpio_A为低电平时,开始计数,形成周期计数模块。
LDRQ_out模块:在IRQ_cnt计数模块开始之后,结合图11,start为1个周期,LDRQ数据线输出0;DMA ID占3个周期,与设备的ID号一致。DMA ID高位在前,地位在后,例如当设备的ID为1,LDRQ数据线输出001。只需要在LDRQ_out模块将对应周期的电平根据LDRQ数据线输出,并且在输出之后将ACT置1。gpio_A的波形就转化成了LPCDMA模式中断的波形。
结合图11,在gpio_A为低电平,在DMA中断转换器具体流程中LDRQ输出对应的DMAID,并将ACT置1。这个过程,意味着从gpio_A触发到LPC中断转化完成。通过中断转换器模块,gpio_A实现了CPUIO中断的上报,下一步等待ACT置1发出结束之后,CPLD同时捕获接口中断的触发时间。下一步中断控制器GIC模块对外设接口中断进行处理,上报到中断服务程序,等待处理完成后通知GIC模块进行清除处理,发出发送结束标志。下一步CPLD接收信号标志,再次记录当前的时刻。将接口中断的触发时间和接收信号标志时刻输入接口中断测量装置,最后计算出接口中断处理的时间。
实施例2:可调中断触发源到URAT接口中断的中断转换器。
UART接口如图13所示,描述了外部可调中断触发源转化为UART帧格式,转换之后与之相连接的CPUIO为UART总线。UART接口有两根数据线接收端RX和发送端TX,CPU用于处理外部可调中断触发源,所以CPU端作为接收端RX,CPLD作为发送端TX,硬件连接图如图12所示。
结合UART为例,对本发明做进一步详细阐述。UART通常以帧为单位,帧结构包含起始位、数据位,奇偶校验位和停止位,奇偶校验位可以不使用,如图13所示。
Baud_CLK为波特率发生模块,波特率是通信双方约定的传输速率进行传输数据。在没有数据传输时,TX为空闲状态,电平状态为高电平。在第一个时钟上升沿来临的时刻,TX发出低电平在表示起始位开始;接着8个上升沿,检测TX的数据位,在第十个上升沿来临,TX发出低电平表示发出停止位。在第十一个上升沿来临,TX的数据传输结束。
在本实例中,用CPLD逻辑设计UART串口发生模块,并完成可调中断触发源到UART串口发送类型模块的转换,以便于CPU接收后完成UART中断的上报。下面分析CPLD逻辑设计,基本框图如图14所示。
UART中断转换器的基本框图的接口信号描述如下表所示。
信号名 方向 说明
CLK I CPLD系统时钟
rst_n I 复位信号
gpio_A I 中断触发源信号
DATA[7:0] I/O 8bit数据
Buad_CLK I/O 波特率发生时钟信号
TX O CPLD发送端信号
在图14中,CPLD通过逻辑设计将gpio_A高低电平变化转化为UARTTX信号。其实现的思路就是将gpio_A的波形转换到UARTTX的数据位上。UART的数据位有8位,可以表示成256种不同的可调中断触发源,gpio_A的电平有两种:高电平和低电平,只需要使用UARTTX的BITO就能完成转换。当使用的可调中断触发源种类增加时,相应的增加UARTTX的数据位就能满足要求。gpio_A分配到UARTTXBITO的具体实施流程框图如图15所示。
Div_cnt模块:根据CPLD系统时钟分频得到波特率时钟,常见波特率为9600、19200、38400、57600和115200。波特率分频计数值与时钟和波特率的计算关系式为:
Figure BDA0002974257930000121
通过波特率分频计数值Div_cnt,可以得到Baud_CLK。
Baud_cnt模块:根据波特率时钟Baud_CLK,在可调中断触发源gpio_A检测到低电平时,Baud开始计数,帧格式一共需要11个Baud_CLK就能完成UARTTX数据的发送。
DATA_buf模块:当检测gpio_A为低电平时,用8位DATA[7:0]存储成一组数据,gpio_A的数据映射到BITO的数据,BIT1~BIT7置为高电平。
DATA_out模块:用于UART_TX的数据输出。当检测到gpio_A电平为低电平时,Baud_cnt模块开始计数,在计数值为1时,将START位置1;在计数值为2~9时,将DATA[7:0]放置到DATA_out;当计数值为10时,将STOP位置1。当计数值为11时,DATA_out数据输出端TX发送完成。
结合图15,在gpio_A为低电平,在UART中断转换器具体流程中当Baud_cnt计数值为10时,将STOP位置1。这个过程,意味着从gpio_A触发到UART中断转化完成。通过中断转换器模块,gpio_A实现了CPUI0中断的上报,下一步等待Baud_cnt计数值为11时,CPLD同时捕获接口中断的触发时间。下一步中断控制器GIC模块对外设接口中断进行处理,上报到中断服务程序,等待处理完成后通知GIC模块进行清除处理,发出发送结束标志。下一步CPLD接收信号标志,再次记录当前的时刻。将接口中断的触发时间和接收信号标志时刻输入接口中断测量装置,最后计算出接口中断处理的时间。
实施例3:可调中断触发源到I2C接口中断的中断转换器。
在I2C总线上通信双方都可以作为主设备或者从设备,在本申请中,外部可调中断触发源通过中断转换器,变为I2C中断类型,CPU将I2C上传来的数据完成I2C中断的上报。所以CPU作为从设备,CPLD作为主设备,I2C接口CPU与CPLD硬件连接框图如图16所示。
I2C整体时序图如图17所示。
结合图17,一共有两根数据线SCL和SDA。当SCL和SDA都为高电平时,I2C总线处于空闲状态;当SCL为高电平时,SDA出现下降沿,代表起始信号;当起始信号开始之后,SCL为低电平时,主设备改变写入从设备数据;当SCL为高电平时,数据是稳定不变的。当SCL为高电平时,SDA出现上升沿,代表发出结束信号,数据传输完成。
I2C总线数据传输速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s。I2C总线的单字节写时序的DATA有8位,对于GPIO[n:0]来说,n<256是满足需求的,即可调中断触发源的种类不大于256。下面介绍I2C接口单字节写时序图,如图18所示。
结合图18,主设备写入单字节数据过程如下:主设备发起起始信号;传输从设备的控制命令字节,控制命令字节最低位为0表示写操作;接着读取从设备应答信号;传输1字节地址和数据,地址和数据都是高位在前,低位在后;接着又读取从设备应答信号;最后主设备发出停止信号,结束本次传输。
在本实例中,用CPLD逻辑设计一个I2C主设备,并将可调中断触发源的状态映射到I2C协议主设备的数据,以便于从设备CPU接收后完成I2C中断的上报。在CPLD模块的信号包括CLK、gpio_A、rst_n、SCL和SDA,基本框图如图19所示。
结合图19,CPLD通过逻辑设计将gpio_A高低电平变化转化为I2C的SCL和SDA信号。其实现的思路就是将gpio_A的波形转换到SDA某个地址的数据位上,与UART串口的思路类似,这里不再赘述。I2Cconv模块的具体实施流程框图如图20所示。
I2Ccnt模块:主要用于I2C总线一帧数据的周期计数。当检测到gpio_A为低电平时,开始计数,形成周期计数模块。
DATA_buf模块:与UART的DATA_buf一样,这里不再解释。
DATA_out模块:用于I2C SCL和SDA的数据输出。当检测到gpio_A电平为低电平时,I2C_cnt模块开始计数,结合图18的I2C接口单字节写时序图,对时序上的各个状态进行选择:比如第一个周期为状态1:SCL维持高电平,SDA产生下降沿,表示发出start信号;在发出起始信号后,SCL的状态与计数的时钟一致,接着进入状态2,维持八个周期,每个周期所对应的状态与控制字节con_byte的数据相对应;在状态3检测CPU是否发出ack;如果发出ack,则进入下一个状态,如果没有ack则重新开始计数,SCL置为高电平,依次类推。直到最后一个状态:在SCL为高电平时,SDA产生上升沿,表示此次数据发送结束,SCL维持高电平,等待下一个周期计数的到来。执行完这整个过程,先将gpio_A的电平存储在I2C DATA里,然后就被放置到SDA数据线上了。
结合图20,在gpio_A为低电平,在I2C中断转换器具体流程中直到最后一个状态:在SCL为高电平时,SDA产生上升沿,表示此次数据发送结束之后,SCL维持高电平时。这个过程,意味着从gpio_A触发到I2C中断转化完成。通过中断转换器模块,gpio_A实现了CPUIO中断的上报,下一步在SCL维持高电平时,CPLD同时捕获接口中断的触发时间。下一步中断控制器GIC模块对外设接口中断进行处理,上报到中断服务程序,等待处理完成后通知GIC模块进行清除处理,发出发送结束标志。下一步CPLD接收信号标志,再次记录当前的时刻。将接口中断的触发时间和接收信号标志时刻输入接口中断测量装置,最后计算出接口中断处理的时间。
在本实例中,CPU内的中断控制模块为GIC模块,GIC模块与外设接口(LPC、UART和I2C接口)直接相连接,在实例中的功能是控制外设接口中断。
对于LPC接口中断,将gpio_A的波形转化为符合LPC中断的波形;GIC模块与LPC的连接框图如图21所示。
对于UART接口中断,通过判断CPLDUARTTX发送端的数据符合gpio_A相对应的DATA[7:0]相对应的波形即接收到gpio_A所映射的数据;GIC模块与UART通过共享外设中断(SPI)相连接,连接框图如图22所示。
对于I2C接口,判断CPU从I2C总线的SDA数据线获取的数据是否为gpio_A所映射的数据。同时GIC模块对外设接口中断进行处理,上报到中断服务程序,处理完成后通知GIC模块进行清除处理。GIC模块与I2C的连接框图如图23所示。
在本实例中,参见图21、22和23,当处理完了一个中断的时候,向CPU写入发送结束标志寄存器、从而通知GIC模块已经处理完该中断,通过发送结束标志寄存器获取。
或者,在另一个实施例中,可以在当进入中断后,中断标志位会自动被置1,代表着“正在执行中断服务程序”。在结束中断服务程序之前,通过GIC模块清除中断标志位,在清除中断标志位完成之后,将发送中断结束的标志发出。
当CPU通过LPC总线将发送中断结束标志发出,CPLD作为接收标志信号。硬件连接框图如图24所示。LPC的典型时序如图25所示,结合图25,LCLK是时钟信号线,通常是33MHz,CPU将LFRAME#信号拉低一个时钟周期表示通信开始,在信息传输时,CPU将LFRAME#置高电平,LAD[3:0]传输地址和数据。CPLD在监测到LFRAME#信号被拉低时,对LAD[3:0]传输的信息进行处理,将对应的信息解码为接收结束信号标志,然后停止计数。
在具体应用实例中,结合图26,在所述步骤S3中,综合模块的时钟模块在整个接口中断测量装置的作用非常重要。如下式,关系着中断处理时间的准确性。对于不同接口中断测量系统,主要表现为接口的中断的上报速度的差异,在综合计算模块上,也需要不同的时钟才能完成对应的接口中断测量装置。在低速接口中断测量装置中,比如UART和I2C接口,CPLD的系统时钟(一般为50MHz时)基本满足要求。在中高速接口中断测量装置中,比如LPC和PCIE接口,需要将CPLD的系统时钟提高,即倍频。
结合图26,在本实例介绍几种中断测量的方法。
第一,采用脉冲计数法。采用高频时钟对接口中断测量模块的触发时刻T0和接收信号结束标志时刻TN进行计数。如图27所示。
从接口中断的触发时刻T0开始计数,计数值为0,接收到CPU结束标志的时刻TN停止计数,计数值为N,Tx为脉冲计数时间,可得到中断处理的时间T如下式:
T=Tx+ΔT
Figure BDA0002974257930000161
ΔT=ΔT1-ΔT2
得到中断处理的时间T最终表达式:
Figure BDA0002974257930000162
中断测量时间的误差为ΔT,主要来源为高频时钟,时钟频率越高,精度就越高。对于UART和I2C接口中断测量,CPLD提供50MHz的系统时钟,在使用上述的脉冲计数法,使用简单且误差不会很大。
第二,采用时间数字转换器-TDC,TDC通常称为时间测量电路。由于CPLD内部有锁相环,能生成锁存器和延时器等,在CPLD上实现TDC使得中断处理时间T的测量误差减小。下面选择TDC的一种方法-延时线内插法,基本思路就是减小测量的误差ΔT。如图28所示。
TDC的测量,通常分为粗测量和细测量。粗测量的方法与脉冲计数法一样。细测量主要使用延时线内插法,延时线的作用就是使时钟像尺子的被分割为很多的小段,从而提高了时钟的精度减少了时间测量的误差。在上图中延时线将时钟信号延迟了n次相位,每次延时的相位的相同。通过比较接收标志TN的上升沿之后与各延时的时钟信号的逻辑关系,锁存器存储对应的状态。可以推出时间测量误差ΔT′:
Figure BDA0002974257930000171
延时线内插法的具体实现框图如图29所示。
结合图29,将触发时刻的T0的信号在延时器中相右传递,每经过一个延时器,延时的时间为τ。当结束标志时刻TN进入触发器,记录触发时刻的T0的经过的延时器的数量σ,可得到测量误差:
ΔT′=στ
结合粗测量,得到中断处理的时间T:
Figure BDA0002974257930000172
进一步,在具体应用实例中,在所述步骤S3中,除了对中断处理的时间进行判断之外,还输出中断错误等信息。
进一步,在实例中整个综合计算由CPLD的逻辑设计而来实现。
结合图30,本发明进一步提供一种接口中断测量装置,包括:
可调中断触发源模块,用来产生可调中断触发源;
中断转换器模块,用来将所述可调中断触发源转换为CPU能够读取的中断类型,并发送给CPU;
发送中断结束标志模块,用来在CPU内中断控制模块对中断进行处理之后发送中断结束标志至综合计算模块;
综合计算模块,通过接收标志信号模块接收中断结束标志,对中断处理的时间进行判断,输出中断处理的时间和/或中断错误等信息。
在具体应用实例中,所述综合计算模块可以与可调中断触发源模块为同一模块,便于将收发的时间统计回来。
在具体应用实例中,所述可调中断触发源模块,根据实际应用的需要,可以是周期的方波,也可以是正弦波,但其宗旨就是用最简单的方式,触发CPUIO中断的同时,测量到其对应的时间。
在具体应用实例中,所述中断转换器模块,多用于计算机系统中,比如PCI串行中断协议。如果直接是GPIO中断,那么就可以省略该模块。
在具体应用实例中,中断转换器模块将可调中断触发源转换后经CPUIO模块送入CPU,可以理解,也可以是CPU的GPIO口,也可能是LPC接口、PCle接口,等等。
在具体应用实例中,所述CPU的中断控制模块,在高性能CPU中通常指的是GIC,但是对于嵌入式CPU,单片机可能并不是GIC。
在具体应用实例中,CPU内还包括CPU的中断服务程序模块,该模块包括中断的开启,优先级的分配,及对应的中断服务程序入口。但通常在测试的时候,并不会在服务程序中加入事件,而是进入到中断服务程序后,自行跳出。
在具体应用实例中,所述接收标志信号模块可以采用涵盖在综合计算模块内的方式,可以使用CPLD实现,当然也不局限于使用CPLD来实现的。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

Claims (19)

1.一种接口中断测量方法,其特征在于,步骤包括:
步骤S1:产生可调中断触发源,将可调中断触发源转换为CPU能够读取的中断类型,发送给CPU;同时,捕获接口中断的触发时间,记录触发时刻;
步骤S2:利用CPU内的中断控制模块对中断进行处理,上报到中断服务程序;当处理完了一个中断的时候,发送中断结束的标志;
步骤S3:当接收中断结束的标志,记录结束标志时刻;将接口中断的触发时刻和结束标志时刻输入接口中断测量装置,计算出接口中断处理的时间。
2.根据权利要求1所述的接口中断测量方法,其特征在于,所述步骤S1中,所述可调中断触发源由CPLD产生,由CPU系统时钟通过CPLD分频或者倍频而得。
3.根据权利要求2所述的接口中断测量方法,其特征在于,所述可调中断触发源采用标准时间脉冲触发,然后进行中断转换。
4.根据权利要求1或2或3所述的接口中断测量方法,其特征在于,所述步骤S1中,通过中断类型的转换,将LPC、PCIE、UART接口中的任意一个转换为CPU的中断类型。
5.根据权利要求1或2或3所述的接口中断测量方法,其特征在于,所述步骤S2中,当处理完了一个中断的时候,向CPU写入发送结束标志寄存器、从而通知中断控制模块已经处理完该中断,通过发送结束标志寄存器获取。
6.根据权利要求1或2或3所述的接口中断测量方法,其特征在于,所述步骤S2中,在当进入中断后,中断标志位会自动被置1,代表着“正在执行中断服务程序”;在结束中断服务程序之前,通过中断控制模块清除中断标志位,在清除中断标志位完成之后,将发送中断结束的标志发出。
7.根据权利要求1或2或3所述的接口中断测量方法,其特征在于,在所述步骤S3中,对中断处理的时间进行判断,输出中断处理的时间和/或中断错误信息。
8.根据权利要求1或2或3所述的接口中断测量方法,其特征在于,在所述步骤S3中,进行中断测量时采用脉冲计数法,即采用高频时钟对接口中断测量模块的触发时刻T0和接收结束标志时刻TN进行计数;从接口中断的触发时刻T0开始计数,计数值为0,接收到CPU结束标志时刻TN停止计数,计数值为N,Tx为脉冲计数时间,得到中断处理的时间T如下式:
Figure QLYQS_1
Figure QLYQS_3
Figure QLYQS_4
得到中断处理的时间T最终表达式:
Figure QLYQS_5
中断测量时间的误差为
Figure QLYQS_6
9.根据权利要求1或2或3所述的接口中断测量方法,其特征在于,在所述步骤S3中,进行中断测量时采用时间数字转换器-TDC,TDC为时间测量电路;TDC的测量包括粗测量和细测量;所述粗测量采用脉冲计数法,所述细测量采用延时线内插法。
10.根据权利要求9所述的接口中断测量方法,其特征在于,所述延时线将时钟信号延迟了n次相位,每次延时的相位相同;通过比较接收结束标志时刻TN的上升沿之后与各延时的时钟信号的逻辑关系,锁存器存储对应的状态,推出时间测量误差
Figure QLYQS_7
Figure QLYQS_8
将触发时刻的T0的信号在延时器中相右传递,每经过一个延时器,延时的时间为
Figure QLYQS_9
;当结束标志时刻TN进入触发器,记录触发时刻T0的经过延时器的数量/>
Figure QLYQS_10
,得到测量误差:
Figure QLYQS_11
结合粗测量,得到中断处理的时间T:
Figure QLYQS_13
11.根据权利要求5所述的接口中断测量方法,其特征在于,对于UART接口,所述UART为一个串口,用其RX信号,将外设传输来的数据上报GIC。
12.根据权利要求5所述的接口中断测量方法,其特征在于,对于I2C接口,通信双方作为主设备或者从设备。
13.根据权利要求5所述的接口中断测量方法,其特征在于,对于LPC接口,使用主板上已有的CPLD做为上报的设备。
14.根据权利要求5所述的接口中断测量方法,其特征在于,对于PCIe接口,采用INTX中断或者是MSI中断,使FPGA向CPU的PCIe接口之间发送中断报文。
15.一种接口中断测量装置,其特征在于,包括:
可调中断触发源模块,用来产生可调中断触发源;
中断转换器模块,用来将所述可调中断触发源转换为CPU能够读取的中断类型,并发送给CPU;同时,捕获接口中断的触发时间,记录触发时刻;
发送中断结束标志模块,用来在CPU内中断控制模块对中断进行处理之后发送中断结束标志至综合计算模块;当处理完了一个中断的时候,发送中断结束的标志;
综合计算模块,通过接收标志信号模块接收中断结束标志,对中断处理的时间进行判断,输出中断处理的时间和/或中断错误信息;当接收中断结束的标志,记录结束标志时刻;根据接口中断的触发时刻和结束标志时刻计算出接口中断处理的时间。
16.根据权利要求15所述的接口中断测量装置,其特征在于,所述综合计算模块与可调中断触发源模块为同一模块,用来将收发的时间统计回来。
17.根据权利要求16所述的接口中断测量装置,其特征在于,所述可调中断触发源模块采用周期的方波或正弦波。
18.根据权利要求16所述的接口中断测量装置,其特征在于,所述中断转换器模块用来将可调中断触发源转换后经接口模块送入CPU,所述接口模块为CPUIO模块、GPIO口、LPC接口、PCIe接口中的任意一种。
19.根据权利要求17所述的接口中断测量装置,其特征在于,所述CPU内还包括CPU的中断服务程序模块,所述中断服务程序模块用来负责中断的开启,优先级的分配,及对应的中断服务程序入口。
CN202110273413.7A 2021-03-12 2021-03-12 一种接口中断测量方法及装置 Active CN113032305B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110273413.7A CN113032305B (zh) 2021-03-12 2021-03-12 一种接口中断测量方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110273413.7A CN113032305B (zh) 2021-03-12 2021-03-12 一种接口中断测量方法及装置

Publications (2)

Publication Number Publication Date
CN113032305A CN113032305A (zh) 2021-06-25
CN113032305B true CN113032305B (zh) 2023-07-04

Family

ID=76468945

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110273413.7A Active CN113032305B (zh) 2021-03-12 2021-03-12 一种接口中断测量方法及装置

Country Status (1)

Country Link
CN (1) CN113032305B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110515822A (zh) * 2019-08-30 2019-11-29 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) 中断响应时间测试方法、装置、设备和存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6064646A (en) * 1997-09-26 2000-05-16 Delco Electronics Corporation Data communication apparatus and method
US9009368B2 (en) * 2012-10-23 2015-04-14 Advanced Micro Devices, Inc. Interrupt latency performance counters
CN103914424B (zh) * 2014-04-14 2016-08-03 中国人民解放军国防科学技术大学 基于gpio接口的lpc外设扩展方法及装置
CN105095128B (zh) * 2014-05-22 2020-04-03 中兴通讯股份有限公司 中断处理方法及中断控制器
US10055369B1 (en) * 2017-03-27 2018-08-21 Apple Inc. Systems and methods for coalescing interrupts
CN108984350B (zh) * 2017-06-01 2023-06-27 龙芯中科技术股份有限公司 一种中断处理功能验证系统和方法
US10318456B2 (en) * 2017-11-06 2019-06-11 International Business Machines Corporation Validation of correctness of interrupt triggers and delivery

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110515822A (zh) * 2019-08-30 2019-11-29 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) 中断响应时间测试方法、装置、设备和存储介质

Also Published As

Publication number Publication date
CN113032305A (zh) 2021-06-25

Similar Documents

Publication Publication Date Title
US10621025B2 (en) Methods for data acquisition systems in real time applications
US6460107B1 (en) Integrated real-time performance monitoring facility
CN110471872B (zh) 一种基于zynq芯片实现m-lvds总线数据交互系统和方法
US9639447B2 (en) Trace data export to remote memory using remotely generated reads
US9684583B2 (en) Trace data export to remote memory using memory mapped write transactions
KR100954568B1 (ko) 집적 회로 내에서의 진단 데이터 수집 장치 및 방법
CN111078492B (zh) 一种SoC内部总线的状态监控系统及方法
KR101054109B1 (ko) 메시지 큐 시간을 계산하기 위한 방법, 장치, 시스템 및 컴퓨터 판독가능 매체
CN101183347A (zh) 一种自适应速率匹配总线的桥接电路
US11493948B2 (en) Sensor-data processing device
US11809350B2 (en) Serial interrupt method, device, serial interrupt processing method, and processor
TWI604303B (zh) 輸入輸出擴展晶片以及其驗證方法
CN115061082A (zh) 干涉仪测向窄带接收机信号处理方法及装置
CN113032305B (zh) 一种接口中断测量方法及装置
CN101895353A (zh) 多速率一带四比特误码分析检测仪
CN201766598U (zh) 一种多速率一带四比特误码分析检测仪
CN203102268U (zh) 带触发和时钟同步功能的控制总线
CN116881065B (zh) 总线传输延时检测模块、电路及方法
CN117857402A (zh) 自动波特率检测方法、配置方法、装置及电子设备
US20230361900A1 (en) Synchronized rate control at rate limiter
CN117648287B (zh) 一种片上数据处理系统、方法、服务器及电子设备
CN115345123B (zh) 一种用于硬件加速的非标准协议的芯片验证装置
US20230073160A1 (en) Clock generating device, controller, and storage device
US20240201773A1 (en) Supply current consumption acquisition synchronized with debug data trace
EP4242860A1 (en) A device for decoding the data communication under universal serial bus standard

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 300452 Building 5, Xin'an pioneer Plaza, Binhai New Area marine high tech Development Zone, Tianjin

Applicant after: Feiteng Information Technology Co.,Ltd.

Address before: 300452 Building 5, Xin'an pioneer Plaza, Binhai New Area marine high tech Development Zone, Tianjin

Applicant before: TIANJIN FEITENG INFORMATION TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant