CN104915315A - 信号状态的检测方法和装置 - Google Patents
信号状态的检测方法和装置 Download PDFInfo
- Publication number
- CN104915315A CN104915315A CN201510373627.6A CN201510373627A CN104915315A CN 104915315 A CN104915315 A CN 104915315A CN 201510373627 A CN201510373627 A CN 201510373627A CN 104915315 A CN104915315 A CN 104915315A
- Authority
- CN
- China
- Prior art keywords
- signal
- detected
- hot plug
- input pin
- zone bit
- 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
Links
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/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4081—Live connection to bus, e.g. hot-plugging
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/50—Testing of electric apparatus, lines, cables or components for short-circuits, continuity, leakage current or incorrect line connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/221—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
Abstract
本发明公开了一种信号状态的检测方法和装置。其中,该方法包括:接收待检测信号;检测可编程计数器阵列的捕获中断、溢出中断和可编程计数器阵列的通道的输入管脚状态;根据检测到的捕获中断、检测到的溢出中断和输入管脚状态确定待检测信号的信号状态;以及实时输出信号状态。本发明解决了现有技术检测热插拔检测信号的信号状态过程复杂且成本高的技术问题。
Description
技术领域
本发明涉及信号处理领域,具体而言,涉及一种信号状态的检测方法和装置。
背景技术
USB标准化团体USB应用者论坛(USB-IF)在2014年8月发布了不分正反面的新型USB Type-C接口规范,与此同时,VESA于9月也推出了USB Type-C的第一个应用即数字显示接口交替模式的USB type-C(DisplayPort Alternate Mode on USBType-C)接口标准(以下简称DP Alt Mode),这使得数字显示接口(DisplayPort,简称DP)视频信号在USB Type-C上得以传输。
DP Alt Mode规定DP的热插拔检测(Hot plug detect,简称为HPD)状态信息必须通过USB电力传输(USB Power Delivery,简称为USB-PD)消息进行传输,这意味着在DP Alt Mode的具体实施中需要检测HPD的状态并按照USB-PD规范封装到对应的消息中。图1是DP Alt Mode系统的典型原理方框图,其中包括一个USBType-C连接器,用于连接USB Type-C主机;一个USB-PD控制器,用于实现与USB-PD相关的物理层协议;一个8051内核单片机,用于控制多路复用器(可选)、与USB Type-C主机进行USB 2.0通信(可选)、与USB-PD控制器进行PD消息传输和检测DP连接器的HPD信号;和一个DP连接器,用于连接DP视频接收器。
为了通过USB电力传输消息进行热插拔检测状态信息的传输,现有技术通常采用硬件方法进行检测热插拔检测信号的信号状态的检测,但是采用硬件方法必须额外增加芯片,检测过程复杂且增加了检测成本。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种信号状态的检测方法和装置,以至少解决现有技术检测热插拔检测信号的信号状态过程复杂且成本高的技术问题。
根据本发明实施例的一个方面,提供了一种信号状态的检测方法,通过单片机的可编程计数器阵列检测信号状态,包括:接收待检测信号;检测所述可编程计数器阵列的捕获中断、溢出中断和所述可编程计数器阵列的通道的输入管脚状态;根据检测到的捕获中断、检测到的溢出中断和所述输入管脚状态确定所述待检测信号的信号状态;以及实时输出所述信号状态。
进一步地,所述输入管脚状态包括高电平和低电平,根据检测到的捕获中断、检测到的溢出中断和所述输入管脚状态确定所述待检测信号的信号状态包括:在所述单片机处于溢出中断时,根据所述输入管脚状态确定所述待检测信号的信号状态,其中:在检测到所述输入管脚状态为所述高电平时,确定所述待检测信号处于热插拔检测信号的高电平信号状态;在检测到所述输入管脚状态为所述低电平时,确定所述待检测信号处于所述热插拔检测信号的低电平信号状态。
进一步地,所述方法还包括:在检测到所述输入管脚状态为所述高电平时,置位所述热插拔检测的标志位,并且停止所述可编程计数器阵列的定时器;在检测到所述输入管脚状态为所述低电平时,清零所述热插拔检测的标志位,并且停止所述可编程计数器阵列的定时器。
进一步地,根据检测到的捕获中断、检测到的溢出中断和所述输入管脚状态确定所述待检测信号的信号状态包括:在所述单片机处于所述捕获中断时,获取热插拔检测的标志位;根据所述输入管脚状态和所述热插拔检测的标志位确定所述待检测信号的信号状态。
进一步地,根据所述输入管脚状态和所述热插拔检测的标志位确定所述待检测信号的信号状态包括:在所述输入管脚状态为高电平时,判断所述热插拔检测的标志位为0或者1,其中,在所述热插拔检测的标志位为0时,启动所述可编程计数器阵列的定时器;在所述热插拔检测的标志位为1时,计算低脉冲宽度并停止所述定时器;在所述输入管脚状态为低电平时,判断所述热插拔检测的标志位为0或者1,其中,在所述热插拔检测的标志位为0时,确定所述待检测信号为干扰正脉冲,在热插拔检测的标志位为1时,启动所述定时器。
进一步地,在所述热插拔检测的标志位为1时,计算低脉冲宽度并停止所述定时器包括:获取计算得到的低脉冲宽度;判断所述低脉冲宽度是否处于预设范围;如果所述低脉冲宽度处于所述预设范围,则确定所述待检测信号为中断请求热插拔检测信号;以及如果所述低脉冲宽度小于所述预设范围的最小值,则确定所述待检测信号为干扰负脉冲。
根据本发明实施例的另一方面,还提供了一种信号状态的检测装置,通过控制单片机的可编程计数器阵列检测信号状态,包括:接收单元,用于接收待检测信号;检测单元,用于检测所述可编程计数器阵列的捕获中断、溢出中断和所述可编程计数器阵列的通道的输入管脚状态;确定单元,用于根据检测到的捕获中断、检测到的溢出中断和所述输入管脚状态确定所述待检测信号的信号状态;以及输出单元,用于实时输出所述信号状态。
进一步地,所述输入管脚状态包括高电平和低电平,所述确定单元包括:第一确定子单元,用于在所述单片机处于溢出中断时,根据所述输入管脚状态确定所述待检测信号的信号状态,其中:在检测到所述输入管脚状态为所述高电平时,确定所述待检测信号处于热插拔检测信号的高电平信号状态;在检测到所述输入管脚状态为所述低电平时,确定所述待检测信号处于所述热插拔检测信号的低电平信号状态。
进一步地,所述装置还包括:置位子单元,用于在检测到所述输入管脚状态为所述高电平时,置位所述热插拔检测的标志位,并且停止所述可编程计数器阵列的定时器;清零子单元,用于在检测到所述输入管脚状态为所述低电平时,清零所述热插拔检测的标志位,并且停止所述可编程计数器阵列。
进一步地,所述确定单元包括:获取子单元,用于在所述单片机处于所述捕获中断时,获取热插拔检测的标志位;第二确定子单元,用于根据所述输入管脚状态和所述热插拔检测的标志位确定所述待检测信号的信号状态。
进一步地,所述第二确定子单元包括:计算模块,用于在所述输入管脚状态为高电平时,判断所述热插拔检测的标志位为0或者1,其中,在所述热插拔检测的标志位为0时,启动所述可编程计数器阵列的定时器,在所述热插拔检测的标志位为1时,计算低脉冲宽度并停止所述定时器;确定模块,用于在所述输入管脚状态为低电平时,判断所述热插拔检测的标志位为0或者1,其中,在所述热插拔检测的标志位为0时,确定所述待检测信号为干扰正脉冲,在热插拔检测的标志位为1时,启动所述定时器。
进一步地,所述计算模块包括:获取子模块,用于获取计算得到的低脉冲宽度;判断子模块,用于判断所述低脉冲宽度是否处于预设范围;第一确定子模块,用于在所述低脉冲宽度处于所述预设范围时,确定所述待检测信号为中断请求热插拔检测信号;以及第二确定子模块,用于在所述低脉冲宽度小于所述预设范围的最小值时,确定所述待检测信号为干扰负脉冲。
在本发明实施例中,接收待检测信号;检测可编程计数器阵列的捕获中断、溢出中断和可编程计数器阵列的通道的输入管脚状态;根据检测到的捕获中断、检测到的溢出中断和输入管脚状态确定待检测信号的信号状态;以及实时输出信号状态。通过本发明,实现了利用单片机中可编程计数器本身的中断操作,以及在仅占用一个硬件可编程计数器阵列通道的条件下完成HPD信号的检测,无需另外设置检测电路,从而解决了现有技术检测热插拔检测信号的信号状态过程复杂且成本高的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据现有技术的一种数字显示接口交替模式系统的原理方框图;
图2是根据本发明实施例的信号状态的检测方法的流程图;
图3(a)是根据本发明实施例的低电平触发溢出中断的示意图;
图3(b)是根据本发明实施例的高电平触发溢出中断的示意图;
图4(a)是根据本发明实施例的上升沿触发捕获中断的干扰脉冲的示意图;
图4(b)是根据本发明实施例的下降沿触发捕获中断的干扰脉冲的示意图;
图4(c)是根据本发明实施例的中断请求的热插拔检测信号的示意图;
图4(d)是根据本发明实施例的干扰负脉冲的信号的示意图;
图4(e)是根据本发明实施例的下降沿触发捕获中断后触发溢出中断的示意图;以及
图5是根据本发明实施例的信号状态的检测装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明可以应用于USB Type-C的Dongle/适配器(Adapter),主要完成DP连接器的HPD信号检测任务。按照DP规范,HPD信号包括两种状态:HPD_State和IRQ_HPD,其中HPD_State包括HPD_High(即热插拔检测信号的高电平信号状态)和HPD_Low(热插拔检测信号的低电平信号状态),分别定义为从上升沿跳变并保持高电平超过2ms和从下降沿跳变并保持低电平超过2ms。IRQ_HPD定义为从下降沿到上升沿之间的低脉冲宽度介于250us到2ms之间。
为了检测HPD信号的这两种状态,利用单片机内部的可编程计数器阵列(Programmable Counter Array,简称PCA)定时器捕获模块,该定时器设置为同时捕获上升沿和下降沿,并开启捕获中断;为了判断2ms的阈值设置PCA定时常数为2ms并开启定时器溢出中断。当中断发生时,在中断服务程序中完成对HPD信号的识别。
根据本发明实施例,提供了一种信号状态的检测方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图2是根据本发明实施例的信号状态的检测方法的流程图。如图2所示,该方法包括如下步骤:
步骤S202,接收待检测信号。如图1所示,单片机与DP连接器相连接,能接收DP连接器的HPD(热插拔检测)信号,HPD信号即待检测信号。
步骤S204,检测可编程计数器阵列的捕获中断、溢出中断和可编程计数器阵列的通道的输入管脚状态。单片机的可编程计数器阵列具有捕获中断和溢出中断两种中断操作,仅占用一个硬件可编程计数器阵列的通道的条件下完成HPD信号的检测。捕获中断为检测到信号的上升沿或者下降沿,溢出中断为检测到信号持续处于高电平或者低电平的时间超过预设值。例如,在本实施例中检测到待检测信号的上升沿则为捕获中断,检测到待检测信号持续处于高电平的时间超过2ms则为溢出中断。在单片机上电复位后,单片机程序将HPD标志位清零并初始化可编程计数器阵列如下:
16位软件定时器模式;上升沿和下降沿同时捕获模式;使能捕获中断和溢出中断;定时器初值为2ms;启动可编程计数器阵列的定时器。
步骤S206,根据检测到的捕获中断、检测到的溢出中断和输入管脚状态确定待检测信号的信号状态。
步骤S208,实时输出信号状态。在检测出待检测信号的信号状态后,实时输出信号的状态。
通过上述实施例,利用单片机中的可编程计数器阵列的捕获中断和溢出中断两种中断操作来检测待检测信号的上升沿、下降沿和溢出状态,并根据检测到捕获中断、溢出中断和输入管脚状态来确定信号状态,从而实现了利用单片机中可编程计数器本身的中断操作,以及在仅占用一个硬件可编程计数器阵列通道的条件下完成HPD信号的检测,无需另外设置检测电路,也就解决了现有技术检测热插拔检测信号的信号状态过程复杂且成本高问题,达到了采用软件检测热插拔检测信号的信号状态的效果。
本实施例可以根据检测到的可编程计数器阵列捕获中断、溢出中断和输入管脚状态确定待检测信号的信号状态可以如表1所示。
表1
可选地,输入管脚状态包括高电平和低电平,在单片机处于溢出中断时,根据输入管脚状态确定待检测信号的信号状态,其中:在检测到输入管脚状态为高电平时,确定待检测信号处于热插拔检测信号的高电平信号状态。在检测到输入管脚状态为低电平时,确定待检测信号处于热插拔检测信号的低电平信号状态。
本实施例中,单片机处于溢出中断时即检测到待检测信号持续处于高电平或者低电平的时间超过2ms。图3(a)和图3(b)分别示出了低电平和高电平的溢出中断,图3(a)示出的输入管脚状态为低,结合表1可知,此时待检测信号的信号状态为HPD_Low,即HPD_低;图3(b)示出的输入管脚状态为高,结合表1可知,此时待检测信号的信号状态为HPD_High,即HPD_高。
可选地,中断请求的热插拔检测信号出现在图1所示的单片机和DP连接器建立连接后,即在出现溢出中断(CF=1)后,检测到捕获中断(CCF=1)后才能够检测到中断请求的热插拔检测信号,因此,在溢出中断时停止可编程计数器阵列的定时器。同时,由于中断请求的热插拔检测信号的定义为从下降沿到上升沿之间的低脉冲宽度介于250μs到2ms之间,因此,为了检测中断请求的热插拔检测信号,在输入管脚状态为高电平时,置位热插拔检测的标志位;在检测到输入管脚状态为低电平时,清零热插拔检测的标志位。置位热插拔检测的标志位后可以检测中断请求的热插拔检测信号,在清零热插拔检测的标志位后无需再判断捕获中断是否为中断请求的热插拔检测信号。
可选地,根据检测到的捕获中断、检测到的溢出中断和输入管脚状态确定待检测信号的信号状态包括:在单片机处于捕获中断时,获取热插拔检测的标志位。根据输入管脚状态和热插拔检测的标志位确定待检测信号的信号状态。
由于在热插拔检测的标志位被置位后才会检测到中断请求的热插拔检测信号,根据输入管脚状态来判断捕获中断是由上升沿带来的还是下降沿带来的,并根据检测到的上升沿、下降沿和输入管脚的状态来确定待检测信号的信号状态。
具体地,热插拔检测的标志位置位时为1,清零时为0。根据输入管脚状态和热插拔检测的标志位确定待检测信号的信号状态包括:在输入管脚状态为高电平时,判断热插拔检测的标志位为0或者1,其中,在热插拔检测的标志位为0时,启动可编程计数器阵列的定时器。在热插拔检测的标志位为1时,计算低脉冲宽度并停止定时器。在输入管脚状态为低电平时,判断热插拔检测的标志位为0或者1,其中,在热插拔检测的标志位为0时,确定待检测信号为干扰正脉冲,在热插拔检测的标志位为1时,启动定时器。
如图4(a)所示,热插拔检测的标志位为0,输入管脚状态为高电平,则为上升沿触发中断,启动可编程计数器阵列的定时器进行2ms定时,由图4(a)可知定时器的计时时间小于2ms,并且在2ms的时间内输入管脚状态跳转为低电平,根据表1可知待检测信号为干扰正脉冲,并在检测到下降沿触发中断时停止定时器的定时。
如图4(b)所示,热插拔检测的标志位为0,输入管脚状态为低电平,则为下降沿触发中断,根据表1可知此时待检测信号为干扰脉冲信号,在检测到上升沿触发的中断时,启动可编程计数器阵列的定时器进行2ms定时,在超过2ms后置位HPD标志位为1。在HPD标志位为1时,再次检测到下降沿并触发捕获中断,如图4(c)所示,根据表1可知,下降沿触发捕获中断且HPD标志位为1时,启动2ms的定时器,在检测到上升沿触发的捕获中断时计算从下降沿到上升沿之间的低脉冲宽度介于250μs到2ms之间,则确定此时待检测信号为中断请求的热插拔检测信号。如果在检测到上升沿触发的捕获中断时计算从下降沿到上升沿之间的低脉冲宽度小于250μs时,如图4(d)所示,确定此时待检测信号为干扰负脉冲。如图4(e)所示,如果下降沿触发捕获中断且HPD标志位为1时,启动2ms的定时器后,在超过2ms的时间内没有检测到上升沿触发的捕获中断,则将触发溢出中断,与图3(a)的情况类似,根据表1可以判断为HPD_low,此时需要清零HPD标志位。
为了避免由于HPD信号发生干扰变化而导致错误判断,可编程计数器阵列的第一个操作就读入可编程计数器阵列的管脚的状态。当脉冲宽度非常接近且小于2ms时,可能会触发溢出中断,为了避免重复判断,清零溢出中断标志位。每当判断结束时都停止定时器,每当HPD信号有新的变化时都装入2ms定时初值并启动可编程计数器阵列的定时器。
可选地,在热插拔检测的标志位为1时,计算低脉冲宽度并停止定时器包括:获取计算得到的低脉冲宽度。判断低脉冲宽度是否处于预设范围。如果低脉冲宽度处于预设范围,则确定待检测信号为中断请求热插拔检测信号。如果低脉冲宽度小于预设范围,则确定待检测信号为干扰负脉冲。
如图4(c)所示,下降沿触发捕获中断时,触发2ms定时器,上升沿再次触发捕获中断时,计算低脉冲宽度并停止计时。设触发2ms定时器时的初始时间为t0,上升沿触发捕获中断时值为t1,则t1-t0=低脉冲宽度值,单位为机器周期。
通过上述实施例,可以根据单片机的捕获中断和溢出中断两种中断状态,以及输入管脚的状态和HPD的标志位来确定待检测信号的信号状态,并及时输出检测结果,从而解决了现有技术检测热插拔检测信号的信号状态过程复杂且成本高问题,达到了及时准确检测信号状态,并且无需增加硬件就能实现,降低了检测成本的同时提高了检测效率。
以下以Silicon Lab单片机C8051F321为例说明具体实施方式。该单片机具有5个PCA通道,选择0通道并将其映射到P0.2口。其PCA中断服务向量为0x5B,对应中断服务号为11。
定义两个位全局变量g_b HPD和g_b IRQ_HPD分别保存HPD和IRQ_HPD的状态,用于传递HPD信号供其他模块处理使用。定义PCAISR中断服务函数,其中断向量号为11,用于实时检测并更新HPD信号的状态。
为了避免在执行中断服务程序过程中,由于HPD信号发生干扰变化而导致错误判断,中断服务程序的第一个操作就读入PCA管脚的状态。考虑到当脉冲宽度非常接近于且小于2ms时,在判断过程中可能触发溢出中断,为了避免重复判断,清零溢出中断标志位。每当判断结束时都停止PCA定时器,每当HPD信号有新的变化时都装入2ms定时初值并启动PCA定时器。
本发明实施例还提供了一种信号状态的检测装置。图5是根据本发明实施例的信号状态的检测装置的示意图。如图5所示,该信号状态的检测装置通过单片机的可编程计数器阵列检测信号状态,包括:接收单元10、检测单元20、确定单元30和输出单元40。
接收单元10用于接收待检测信号。如图1所示,单片机与DP连接器相连接,能接收DP连接器的HPD(热插拔检测)信号,HPD信号即待检测信号。
检测单元20用于检测可编程计数器阵列的捕获中断、溢出中断和可编程计数器阵列的通道的输入管脚状态。单片机的可编程计数器阵列具有捕获中断和溢出中断两种中断操作,仅占用一个硬件可编程计数器阵列的通道的条件下完成HPD信号的检测。捕获中断为检测到信号的上升沿或者下降沿,溢出中断为检测到信号持续处于高电平或者低电平的时间超过预设值。例如,在本实施例中检测到待检测信号的上升沿则为捕获中断,检测到待检测信号持续处于高电平的时间超过2ms则为溢出中断。在单片机上电复位后,单片机程序将HPD标志位清零并初始化可编程计数器阵列如下:
16位软件定时器模式;上升沿和下降沿同时捕获模式;使能捕获中断和溢出中断;定时器初值为2ms;启动可编程计数器阵列的定时器。
确定单元30用于根据检测到的捕获中断、检测到的溢出中断和输入管脚状态确定待检测信号的信号状态。
输出单元40用于实时输出信号状态。
通过上述实施例,利用单片机中的可编程计数器阵列的捕获中断和溢出中断两种中断操作来检测待检测信号的上升沿、下降沿和溢出状态,并根据检测到捕获中断、溢出中断和输入管脚状态来确定信号状态,从而实现了利用单片机中可编程计数器本身的中断操作,以及在仅占用一个硬件可编程计数器阵列通道的条件下完成HPD信号的检测,无需另外设置检测电路,也就解决了现有技术检测热插拔检测信号的信号状态过程复杂且成本高问题,达到了采用软件检测热插拔检测信号的信号状态的效果。
本实施例可以根据检测到的可编程计数器阵列捕获中断、溢出中断和输入管脚状态确定待检测信号的信号状态可以如表1所示。
可选地,确定单元包括:第一确定子单元,用于在单片机处于溢出中断时,根据输入管脚状态确定待检测信号的信号状态,其中:在检测到输入管脚状态为高电平时,确定待检测信号处于热插拔检测信号的高电平信号状态。在检测到输入管脚状态为低电平时,确定待检测信号处于热插拔检测信号的低电平信号状态。
本实施例中,单片机处于溢出中断时即检测到待检测信号持续处于高电平或者低电平的时间超过2ms。图3(a)和图3(b)分别示出了低电平和高电平的溢出中断,图3(a)示出的输入管脚状态为低,结合表1可知,此时待检测信号的信号状态为HPD_Low,即HPD_低;图3(b)示出的输入管脚状态为高,结合表1可知,此时待检测信号的信号状态为HPD_High,即HPD_高。
可选地,中断请求的热插拔检测信号出现在图1所示的单片机和DP连接器建立连接后,即在出现溢出中断(CF=1)后,检测到捕获中断(CCF=1)后才能够检测到中断请求的热插拔检测信号,因此,在溢出中断时停止可编程计数器阵列的定时器。同时,由于中断请求的热插拔检测信号的定义为从下降沿到上升沿之间的低脉冲宽度介于250μs到2ms之间,因此,为了检测中断请求的热插拔检测信号,在输入管脚状态为高电平时,该装置还包括:置位子单元,用于在检测到输入管脚状态为高电平时,置位热插拔检测的标志位,并且停止可编程计数器阵列的定时器。清零子单元,用于在检测到输入管脚状态为低电平时,清零热插拔检测的标志位,并且停止可编程计数器阵列。置位热插拔检测的标志位后可以检测中断请求的热插拔检测信号,在清零热插拔检测的标志位后无需再判断捕获中断是否为中断请求的热插拔检测信号。
可选地,确定单元包括:获取子单元,用于在单片机处于捕获中断时,获取热插拔检测的标志位。第二确定子单元,用于根据输入管脚状态和热插拔检测的标志位确定待检测信号的信号状态。
由于在热插拔检测的标志位被置位后才会检测到中断请求的热插拔检测信号,根据输入管脚状态来判断捕获中断是由上升沿带来的还是下降沿带来的,并根据检测到的上升沿、下降沿和输入管脚的状态来确定待检测信号的信号状态。
具体地,第二确定子单元包括:计算模块,用于在输入管脚状态为高电平时,判断热插拔检测的标志位为0或者1,其中,在热插拔检测的标志位为0时,启动可编程计数器阵列的定时器,在热插拔检测的标志位为1时,计算低脉冲宽度并停止定时器。确定模块,用于在输入管脚状态为低电平时,判断热插拔检测的标志位为0或者1,其中,在热插拔检测的标志位为0时,确定待检测信号为干扰正脉冲,在热插拔检测的标志位为1时,启动定时器。
如图4(a)所示,热插拔检测的标志位为0,输入管脚状态为高电平,则为上升沿触发中断,启动可编程计数器阵列的定时器进行2ms定时,由图4(a)可知定时器的计时时间小于2ms,并且在2ms的时间内输入管脚状态跳转为低电平,根据表1可知待检测信号为干扰正脉冲,并在检测到下降沿触发中断时停止定时器的定时。
如图4(b)所示,热插拔检测的标志位为0,输入管脚状态为低电平,则为下降沿触发中断,根据表1可知此时待检测信号为干扰脉冲信号,在检测到上升沿触发的中断时,启动可编程计数器阵列的定时器进行2ms定时,在超过2ms后置位HPD标志位为1。在HPD标志位为1时,再次检测到下降沿并触发捕获中断,如图4(c)所示,根据表1可知,下降沿触发捕获中断且HPD标志位为1时,启动2ms的定时器,在检测到上升沿触发的捕获中断时计算从下降沿到上升沿之间的低脉冲宽度介于250μs到2ms之间,则确定此时待检测信号为中断请求的热插拔检测信号。如果在检测到上升沿触发的捕获中断时计算从下降沿到上升沿之间的低脉冲宽度小于250μs时,如图(d)所示,确定此时待检测信号为干扰负脉冲。如图4(e)所示,如果下降沿触发捕获中断且HPD标志位为1时,启动2ms的定时器后,在超过2ms的时间内没有检测到上升沿触发的捕获中断,则将触发溢出中断,与图3(a)的情况类似,根据表1可以判断为HPD_low,此时需要清零HPD标志位。
为了避免由于HPD信号发生干扰变化而导致错误判断,可编程计数器阵列的第一个操作就读入可编程计数器阵列的管脚的状态。当脉冲宽度非常接近且小于2ms时,可能会触发溢出中断,为了避免重复判断,清零溢出中断标志位。每当判断结束时都停止定时器,每当HPD信号有新的变化时都装入2ms定时初值并启动可编程计数器阵列的定时器。
可选地,计算模块包括:获取子模块,用于获取计算得到的低脉冲宽度。判断子模块,用于判断低脉冲宽度是否处于预设范围。第一确定子模块,用于在低脉冲宽度处于预设范围时,确定待检测信号为中断请求热插拔检测信号。以及第二确定子模块,用于在低脉冲宽度小于预设范围的最小值时,确定待检测信号为干扰负脉冲。
如图4(c)所示,下降沿触发捕获中断时,触发2ms定时器,上升沿再次触发捕获中断时,计算低脉冲宽度并停止计时。设触发2ms定时器时的初始时间为t0,上升沿触发捕获中断时值为t1,则t1-t0=低脉冲宽度值,单位为机器周期。
通过上述实施例,可以根据单片机的捕获中断和溢出中断两种中断状态,以及输入管脚的状态和HPD的标志位来确定待检测信号的信号状态,并及时输出检测结果,从而解决了现有技术检测热插拔检测信号的信号状态过程复杂且成本高的技术问题,达到了及时准确检测信号状态,并且无需增加硬件就能实现,在简化检测过程、降低检测成本的同时提高了检测效率。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种信号状态的检测方法,其特征在于,通过单片机的可编程计数器阵列检测信号状态,包括:
接收待检测信号;
检测所述可编程计数器阵列的捕获中断、溢出中断和所述可编程计数器阵列的通道的输入管脚状态;
根据检测到的捕获中断、检测到的溢出中断和所述输入管脚状态确定所述待检测信号的信号状态;以及
实时输出所述信号状态。
2.根据权利要求1所述的方法,其特征在于,所述输入管脚状态包括高电平和低电平,根据检测到的捕获中断、检测到的溢出中断和所述输入管脚状态确定所述待检测信号的信号状态包括:
在所述单片机处于溢出中断时,根据所述输入管脚状态确定所述待检测信号的信号状态,其中:
在检测到所述输入管脚状态为所述高电平时,确定所述待检测信号处于热插拔检测信号的高电平信号状态;
在检测到所述输入管脚状态为所述低电平时,确定所述待检测信号处于所述热插拔检测信号的低电平信号状态。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在检测到所述输入管脚状态为所述高电平时,置位所述热插拔检测的标志位,并且停止所述可编程计数器阵列的定时器;
在检测到所述输入管脚状态为所述低电平时,清零所述热插拔检测的标志位,并且停止所述可编程计数器阵列的定时器。
4.根据权利要求1所述的方法,其特征在于,根据检测到的捕获中断、检测到的溢出中断和所述输入管脚状态确定所述待检测信号的信号状态包括:
在所述单片机处于所述捕获中断时,获取热插拔检测的标志位;
根据所述输入管脚状态和所述热插拔检测的标志位确定所述待检测信号的信号状态。
5.根据权利要求4所述的方法,其特征在于,根据所述输入管脚状态和所述热插拔检测的标志位确定所述待检测信号的信号状态包括:
在所述输入管脚状态为高电平时,判断所述热插拔检测的标志位为0或者1,其中,在所述热插拔检测的标志位为0时,启动所述可编程计数器阵列的定时器;在所述热插拔检测的标志位为1时,计算低脉冲宽度并停止所述定时器;
在所述输入管脚状态为低电平时,判断所述热插拔检测的标志位为0或者1,其中,在所述热插拔检测的标志位为0时,确定所述待检测信号为干扰正脉冲,在热插拔检测的标志位为1时,启动所述定时器。
6.根据权利要求5所述的方法,其特征在于,在所述热插拔检测的标志位为1时,计算低脉冲宽度并停止所述定时器包括:
获取计算得到的低脉冲宽度;
判断所述低脉冲宽度是否处于预设范围;
如果所述低脉冲宽度处于所述预设范围,则确定所述待检测信号为中断请求热插拔检测信号;以及
如果所述低脉冲宽度小于所述预设范围的最小值,则确定所述待检测信号为干扰负脉冲。
7.一种信号状态的检测装置,其特征在于,通过控制单片机的可编程计数器阵列检测信号状态,包括:
接收单元,用于接收待检测信号;
检测单元,用于检测所述可编程计数器阵列的捕获中断、溢出中断和所述可编程计数器阵列的通道的输入管脚状态;
确定单元,用于根据检测到的捕获中断、检测到的溢出中断和所述输入管脚状态确定所述待检测信号的信号状态;以及
输出单元,用于实时输出所述信号状态。
8.根据权利要求7所述的装置,其特征在于,所述输入管脚状态包括高电平和低电平,所述确定单元包括:
第一确定子单元,用于在所述单片机处于溢出中断时,根据所述输入管脚状态确定所述待检测信号的信号状态,其中:
在检测到所述输入管脚状态为所述高电平时,确定所述待检测信号处于热插拔检测信号的高电平信号状态;
在检测到所述输入管脚状态为所述低电平时,确定所述待检测信号处于所述热插拔检测信号的低电平信号状态。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
置位子单元,用于在检测到所述输入管脚状态为所述高电平时,置位所述热插拔检测的标志位,并且停止所述可编程计数器阵列的定时器;
清零子单元,用于在检测到所述输入管脚状态为所述低电平时,清零所述热插拔检测的标志位,并且停止所述可编程计数器阵列。
10.根据权利要求7所述的装置,其特征在于,所述确定单元包括:
获取子单元,用于在所述单片机处于所述捕获中断时,获取热插拔检测的标志位;
第二确定子单元,用于根据所述输入管脚状态和所述热插拔检测的标志位确定所述待检测信号的信号状态。
11.根据权利要求10所述的装置,其特征在于,所述第二确定子单元包括:
计算模块,用于在所述输入管脚状态为高电平时,判断所述热插拔检测的标志位为0或者1,其中,在所述热插拔检测的标志位为0时,启动所述可编程计数器阵列的定时器,在所述热插拔检测的标志位为1时,计算低脉冲宽度并停止所述定时器;
确定模块,用于在所述输入管脚状态为低电平时,判断所述热插拔检测的标志位为0或者1,其中,在所述热插拔检测的标志位为0时,确定所述待检测信号为干扰正脉冲,在热插拔检测的标志位为1时,启动所述定时器。
12.根据权利要求11所述的装置,其特征在于,所述计算模块包括:
获取子模块,用于获取计算得到的低脉冲宽度;
判断子模块,用于判断所述低脉冲宽度是否处于预设范围;
第一确定子模块,用于在所述低脉冲宽度处于所述预设范围时,确定所述待检测信号为中断请求热插拔检测信号;以及
第二确定子模块,用于在所述低脉冲宽度小于所述预设范围的最小值时,确定所述待检测信号为干扰负脉冲。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510373627.6A CN104915315B (zh) | 2015-06-30 | 2015-06-30 | 信号状态的检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510373627.6A CN104915315B (zh) | 2015-06-30 | 2015-06-30 | 信号状态的检测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104915315A true CN104915315A (zh) | 2015-09-16 |
CN104915315B CN104915315B (zh) | 2018-02-02 |
Family
ID=54084391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510373627.6A Active CN104915315B (zh) | 2015-06-30 | 2015-06-30 | 信号状态的检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104915315B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239426A (zh) * | 2017-06-08 | 2017-10-10 | 山东超越数控电子有限公司 | 一种通过USB type C实现DP输入的结构及方法 |
CN108845517A (zh) * | 2018-04-26 | 2018-11-20 | 上海飞来信息科技有限公司 | 反符合电路及脉冲信号检测电路 |
CN110990316A (zh) * | 2019-10-31 | 2020-04-10 | 苏州浪潮智能科技有限公司 | 用于输出热插拔设备状态的方法和可编程逻辑电路 |
CN113161825A (zh) * | 2020-01-07 | 2021-07-23 | 瑞昱半导体股份有限公司 | 缆线、控制器与其控制方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833336A (zh) * | 2010-04-28 | 2010-09-15 | 北京航空航天大学 | 一种共轴式无人直升机的双余度姿态控制系统及调试方法 |
US20120173769A1 (en) * | 2011-01-04 | 2012-07-05 | Icron Technologies Corp. | Method And System For Communicating Display Port and Single-Link DVI/HDMI Information For Dual-Mode Devices |
CN102955733A (zh) * | 2012-11-12 | 2013-03-06 | 中兴通讯股份有限公司 | 一种单板热插拔检测方法及装置 |
CN103259999A (zh) * | 2012-02-20 | 2013-08-21 | 联发科技(新加坡)私人有限公司 | Hpd信号输出控制方法、hdmi接收端设备及系统 |
-
2015
- 2015-06-30 CN CN201510373627.6A patent/CN104915315B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833336A (zh) * | 2010-04-28 | 2010-09-15 | 北京航空航天大学 | 一种共轴式无人直升机的双余度姿态控制系统及调试方法 |
US20120173769A1 (en) * | 2011-01-04 | 2012-07-05 | Icron Technologies Corp. | Method And System For Communicating Display Port and Single-Link DVI/HDMI Information For Dual-Mode Devices |
CN103259999A (zh) * | 2012-02-20 | 2013-08-21 | 联发科技(新加坡)私人有限公司 | Hpd信号输出控制方法、hdmi接收端设备及系统 |
CN102955733A (zh) * | 2012-11-12 | 2013-03-06 | 中兴通讯股份有限公司 | 一种单板热插拔检测方法及装置 |
Non-Patent Citations (1)
Title |
---|
叶婷: ""基于C8051F单片机的煤矿井下监控分站的研究"", 《中国优秀硕士学位论文全文数据库 工程科技I辑》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239426A (zh) * | 2017-06-08 | 2017-10-10 | 山东超越数控电子有限公司 | 一种通过USB type C实现DP输入的结构及方法 |
CN108845517A (zh) * | 2018-04-26 | 2018-11-20 | 上海飞来信息科技有限公司 | 反符合电路及脉冲信号检测电路 |
CN110990316A (zh) * | 2019-10-31 | 2020-04-10 | 苏州浪潮智能科技有限公司 | 用于输出热插拔设备状态的方法和可编程逻辑电路 |
CN110990316B (zh) * | 2019-10-31 | 2021-10-01 | 苏州浪潮智能科技有限公司 | 用于输出热插拔设备状态的方法和可编程逻辑电路 |
CN113161825A (zh) * | 2020-01-07 | 2021-07-23 | 瑞昱半导体股份有限公司 | 缆线、控制器与其控制方法 |
CN113161825B (zh) * | 2020-01-07 | 2023-05-02 | 瑞昱半导体股份有限公司 | 缆线、控制器与其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104915315B (zh) | 2018-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104915315A (zh) | 信号状态的检测方法和装置 | |
US20090006709A1 (en) | Pci express interface | |
US20150234445A1 (en) | Interface expending method and device for tablet computer | |
EP2534496B1 (en) | Determination of physical connectivity status of devices based on electrical measurement | |
CN103024195B (zh) | 一种智能移动终端及其充电实现方法 | |
CN102830247A (zh) | 一种检测旋转部件旋转状态的方法和装置 | |
CN108920397B (zh) | 设备识别方法、装置、存储介质及电子设备 | |
KR102645139B1 (ko) | 수분 검출 회로, 이를 포함하는 전자 장치 및 수분 검출 방법 | |
CN104538996B (zh) | 移动终端及其与充电装置的匹配识别方法 | |
CN106326171A (zh) | 硬盘背板的硬盘类型识别方法和装置 | |
CN105183679B (zh) | 一种电子设备及信息处理方法 | |
CN103645730B (zh) | 一种带有自检功能的运动控制卡及检测方法 | |
CN103699509A (zh) | 基于定时器录波的串口通讯方法 | |
CN105071484B (zh) | 一种具有数据交换功能的终端的充电方法和装置 | |
CN109408126A (zh) | 一种多路服务器的开机方法、bmc及多路服务器 | |
CN109217922A (zh) | 一种光模块上报接收信号丢失告警的方法及装置 | |
CN105589772A (zh) | 检测fpga芯片逻辑挂死的方法和装置 | |
CN110647486B (zh) | 一种PCIe链路训练方法、端设备及通讯系统 | |
CN106877462B (zh) | 一种检测充电状态的方法和充电器 | |
CN105279055A (zh) | 一种热插拔检测调节电路 | |
CN105892609B (zh) | 一种终端开机与识别存储卡同步运行的方法及智能终端 | |
CN101826068A (zh) | 热插拔pci-e装置的方法及其应用 | |
CN104571942A (zh) | 数据存储系统和非信号分析方法 | |
CN111538626B (zh) | 一种从i2c设备解挂死的方法 | |
WO2008118756A1 (en) | Methods and apparatus to detect voltage class of a circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |