信号状态的检测方法和装置的制造方法_2

文档序号:9200333阅读:来源:国知局
发明方案,下面将结合本发明实施例中的 附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是 本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术 人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范 围。
[0032] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语"第一"、"第 二"等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用 的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或 描述的那些以外的顺序实施。此外,术语"包括"和"具有"以及他们的任何变形,意图在于 覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限 于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产 品或设备固有的其它步骤或单元。
[0033] 本发明可以应用于USB Type-C的Dongle/适配器(Adapter),主要完成DP连接 器的HH)信号检测任务。按照DP规范,HH)信号包括两种状态:HPD_State和IRQ_HPD,其 中HPD_State包括HPD_High (即热插拔检测信号的高电平信号状态)和HPD_Low(热插拔 检测信号的低电平信号状态),分别定义为从上升沿跳变并保持高电平超过2ms和从下降 沿跳变并保持低电平超过2ms。IRQJPD定义为从下降沿到上升沿之间的低脉冲宽度介于 250us到2ms之间。
[0034] 为了检测HH)信号的这两种状态,利用单片机内部的可编程计数器阵列 (Programmable Counter Array,简称PCA)定时器捕获模块,该定时器设置为同时捕获上升 沿和下降沿,并开启捕获中断;为了判断2ms的阈值设置PCA定时常数为2ms并开启定时器 溢出中断。当中断发生时,在中断服务程序中完成对HH)信号的识别。
[0035] 根据本发明实施例,提供了一种信号状态的检测方法的方法实施例,需要说明的 是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行, 并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行 所示出或描述的步骤。
[0036] 图2是根据本发明实施例的信号状态的检测方法的流程图。如图2所示,该方法 包括如下步骤:
[0037] 步骤S202,接收待检测信号。如图1所示,单片机与DP连接器相连接,能接收DP 连接器的HPD (热插拔检测)信号,HH)信号即待检测信号。
[0038] 步骤S204,检测可编程计数器阵列的捕获中断、溢出中断和可编程计数器阵列的 通道的输入管脚状态。单片机的可编程计数器阵列具有捕获中断和溢出中断两种中断操 作,仅占用一个硬件可编程计数器阵列的通道的条件下完成Hro信号的检测。捕获中断为 检测到信号的上升沿或者下降沿,溢出中断为检测到信号持续处于高电平或者低电平的时 间超过预设值。例如,在本实施例中检测到待检测信号的上升沿则为捕获中断,检测到待检 测信号持续处于高电平的时间超过2ms则为溢出中断。在单片机上电复位后,单片机程序 将HH)标志位清零并初始化可编程计数器阵列如下:
[0039] 16位软件定时器模式;上升沿和下降沿同时捕获模式;使能捕获中断和溢出中 断;定时器初值为2ms ;启动可编程计数器阵列的定时器。
[0040] 步骤S206,根据检测到的捕获中断、检测到的溢出中断和输入管脚状态确定待检 测信号的信号状态。
[0041] 步骤S208,实时输出信号状态。在检测出待检测信号的信号状态后,实时输出信号 的状态。
[0042] 通过上述实施例,利用单片机中的可编程计数器阵列的捕获中断和溢出中断两种 中断操作来检测待检测信号的上升沿、下降沿和溢出状态,并根据检测到捕获中断、溢出中 断和输入管脚状态来确定信号状态,从而实现了利用单片机中可编程计数器本身的中断操 作,以及在仅占用一个硬件可编程计数器阵列通道的条件下完成Hro信号的检测,无需另 外设置检测电路,也就解决了现有技术检测热插拔检测信号的信号状态过程复杂且成本高 问题,达到了采用软件检测热插拔检测信号的信号状态的效果。
[0043] 本实施例可以根据检测到的可编程计数器阵列捕获中断、溢出中断和输入管脚状 态确定待检测信号的信号状态可以如表1所示。
[0044] 表 1
[0045]
[0047] 可选地,输入管脚状态包括高电平和低电平,在单片机处于溢出中断时,根据输入 管脚状态确定待检测信号的信号状态,其中:在检测到输入管脚状态为高电平时,确定待检 测信号处于热插拔检测信号的高电平信号状态。在检测到输入管脚状态为低电平时,确定 待检测信号处于热插拔检测信号的低电平信号状态。
[0048] 本实施例中,单片机处于溢出中断时即检测到待检测信号持续处于高电平或者低 电平的时间超过2ms。图3(a)和图3(b)分别示出了低电平和高电平的溢出中断,图3(a) 示出的输入管脚状态为低,结合表1可知,此时待检测信号的信号状态为HPD_Low,即HPD_ 低;图3(b)示出的输入管脚状态为高,结合表1可知,此时待检测信号的信号状态为HPD_ High,即 HPD_ 高。
[0049] 可选地,中断请求的热插拔检测信号出现在图1所示的单片机和DP连接器建立 连接后,即在出现溢出中断(CF = 1)后,检测到捕获中断(CCF = 1)后才能够检测到中断 请求的热插拔检测信号,因此,在溢出中断时停止可编程计数器阵列的定时器。同时,由于 中断请求的热插拔检测信号的定义为从下降沿到上升沿之间的低脉冲宽度介于250 μ s到 2ms之间,因此,为了检测中断请求的热插拔检测信号,在输入管脚状态为高电平时,置位热 插拔检测的标志位;在检测到输入管脚状态为低电平时,清零热插拔检测的标志位。置位热 插拔检测的标志位后可以检测中断请求的热插拔检测信号,在清零热插拔检测的标志位后 无需再判断捕获中断是否为中断请求的热插拔检测信号。
[0050] 可选地,根据检测到的捕获中断、检测到的溢出中断和输入管脚状态确定待检测 信号的信号状态包括:在单片机处于捕获中断时,获取热插拔检测的标志位。根据输入管脚 状态和热插拔检测的标志位确定待检测信号的信号状态。
[0051] 由于在热插拔检测的标志位被置位后才会检测到中断请求的热插拔检测信号,根 据输入管脚状态来判断捕获中断是由上升沿带来的还是下降沿带来的,并根据检测到的上 升沿、下降沿和输入管脚的状态来确定待检测信号的信号状态。
[0052] 具体地,热插拔检测的标志位置位时为1,清零时为0。根据输入管脚状态和热插 拔检测的标志位确定待检测信号的信号状态包括:在输入管脚状态为高电平时,判断热插 拔检测的标志位为0或者1,其中,在热插拔检测的标志位为0时,启动可编程计数器阵列的 定时器。在热插拔检测的标志位为1时,计算低脉冲宽度并停止定时器。在输入管脚状态 为低电平时,判断热插拔检测的标志位为0或者1,其中,在热插拔检测的标志位为0时,确 定待检测信号为干扰正脉冲,在热插拔检测的标志位为1时,启动定时器。
[0053] 如图4(a)所示,热插拔检测的标志位为0,输入管脚状态为高电平,则为上升沿触 发中断,启动可编程计数器阵列的定时器进行2ms定时,由图4(a)可知定时器的计时时间 小于2ms,并且在2ms的时间内输入管脚状态跳转为低电平,根据表1可知待检测信号为干 扰正脉冲,并在检测到下降沿触发中断时停止定时器的定时。
[0054] 如图4(b)所示,热插拔检测的标志位为0,输入管脚状态为低电平,则为下降沿触 发中断,根据表1可知此时待检测信号为干扰脉冲信号,在检测到上升沿触发的中断时,启 动可编程计数器阵列的定时器进行2ms定时,在超过2ms后置位Hro标志位为1。在Hro标 志位为1时,再次检测到下降沿并触发捕获中断,如图4(c)所示,根据表1可知,下降沿触 发捕获中断且HH)标志位为1时,启动2ms的定时器,在检测到上升沿触发的捕获中断时计 算从下降沿到上升沿之间的低脉冲宽度介于250 μ s到2ms之间,则确定此时待检测信号为 中断请求的热插拔检测信号。如果在检测到上升沿触发的捕获中断时计算从下降沿到上升 沿之间的低脉冲宽度小于250 μ S时,如图4(d)所示,确定此时待检测信号为干扰负脉冲。 如图4(e)所示,如果下降沿触发捕获中断且HH)标志位为1时,启动2ms的定时器后,在超 过2ms的时间内没有检测到上升沿触发的捕获中断,则将触发溢出中断,与图3 (a)的情况 类似,根据表1可以判断为HPD_low,此时需要清零HH)标志位。
[0055] 为了避免由于HH)信号发生干扰变化而导致错误判断,可编程计数器阵列的第一 个操作就读入可编程计数器阵列的管脚的状态。当脉冲宽度非常接近且小于2ms时,可能 会触发溢出中断,为了避免重复判断,清零溢出中断标志位。每当判断结束时都停止定时 器,每当HH)信号有新的变化时都装入2ms定时初值并启动可编程计数器阵列的定时器。
[0056] 可选地,在热
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1