一种可滤除毛刺的跳沿检测方法及装置
技术领域
本发明属于集成电路信号处理技术领域,尤其涉及一种可滤除毛刺的跳沿检测方法及装置。
背景技术
跳沿检测广泛用于各种传输协议中,用来作为信号的启动标识、完成标识、休眠唤醒信号等。因此,对接口信号的上跳沿和下跳沿的检测,成为很多电子设备所需功能。随着电子设备向便携式和小型化发展,设备主板中高密度的器件布局使得噪声在电路设计中变成主要问题之一,而噪声和干扰容易导致芯片接口信号产生毛刺。所谓毛刺就是小于定义最小时间的信号跳变,采样到毛刺信号将引起电路或者系统错误的反应,造成系统不稳或者失效。
一方面,现有对信号传输中的毛刺滤除电路由与非门、或非门、反相器、延时器件链及与RS触发器构成,其结构比较复杂,在不影响占空比的前提下,对时钟管脚上的高频毛刺进行过滤,实际芯片电路中,延时单元延时一般为纳秒级,而RC滤波电路所采用的电阻和电容量级是千欧级和皮法级,其时间常数为纳秒级别,因此,只能过滤纳秒级的毛刺,如果有微秒级的毛刺,则需要考虑其他方法。
另一方面,中国发明专利CN200910107495.7一种消除信号毛刺的方法,其公开了1)设置有效和无效电平计数门限值;2)加减计数器接收待消除毛刺的信号并开始计数:在每个时钟的上升沿到达时,若信号为有效电平,则将当前的计数值加1,反之则减1;且计数值在达到有效/无效电平计数门限值后不再增加/减少;同时,信号输出电路根据计数值输出无毛刺的信号:在每个时钟的上升沿到达时,若计数值为有效/无效电平计数门限值,则输出有效/无效电平;若计数值介于有效和无效电平计数门限值之间,则保持与前一时钟的输出相同。
综上所述,现有技术主要是针对信号传输中的毛刺滤除,电路较为复杂,而对需要进行跳沿检测的情况来说,除跳沿检测电路外,还需要增加上述滤除毛刺电路,实现成本较高,另外,跳沿的时序要求不同,需要滤除的毛刺宽度也会不同,而现有技术设计一旦固定,滤除毛刺的宽度是相对固定的,适应性有所不足。
发明内容
本发明实施例提供了一种可滤除毛刺的跳沿检测方法及装置,旨在解决现有技术毛刺滤除电路较为复杂,滤除毛刺的宽度是相对固定的,适应性有所不足,其在需要进行跳沿检测时,必须同时设置跳沿检测电路和滤除毛刺电路,实现成本高的问题。
一方面,提供一种可滤除毛刺的跳沿检测方法,所述方法包括:
根据跳沿的类型和跳沿的时序,主控制器通过序列配置寄存器设置用于采样的跳沿序列;
采样时钟以预设频率采样接口数据;
通过移位寄存器存储所述接口数据,其中,所述接口数据从移位寄存器的左端进入,每进来一位接口数据同时移位寄存器右移一位;
比较位数寄存器设置序列配置寄存器和移位寄存器的比较位数,比较移位寄存器中左起的给定位数据和序列配置寄存器中跳沿序列中相应的比特位数据是否相等,如果两者相等,则显示为有效的跳沿。
另一方面,提供一种可滤除毛刺的跳沿检测装置,所述装置包括:
序列配置单元,用于根据跳沿的类型和跳沿的时序,主控制器通过序列配置寄存器设置用于采样的跳沿序列;
数据采样单元,用于采样时钟以预设频率采样接口数据;
数据储存单元,用于通过移位寄存器存储所述接口数据,其中,所述接口数据从移位寄存器的左端进入,每进来一位接口数据同时移位寄存器右移一位;
数据检测单元,用于比较位数寄存器设置序列配置寄存器和移位寄存器的比较位数,比较移位寄存器中左起的给定位数据和序列配置寄存器中跳沿序列中相应的比特位数据是否相等,如果两者相等,则显示为有效的跳沿。
在本发明实施例,根据跳沿的类型和跳沿的时序,主控制器通过序列配置寄存器设置用于采样的跳沿序列;采样时钟以预设频率采样接口数据;通过移位寄存器存储所述接口数据,其中,所述接口数据从移位寄存器的左端进入,每进来一位接口数据同时移位寄存器右移一位;比较寄存器设置序列配置寄存器和移位寄存器的比较位数,比较移位寄存器中左起的给定位数据和序列配置寄存器中跳沿序列中相应的比特位数据是否相等,如果两者相等,则显示为有效的跳沿,本发明,将滤除毛刺电路和跳沿检测电路结合在一起,检测跳沿的同时完成滤除毛刺,电路简单,易于实现,同时,通过配置上述装置可方便的实现上跳沿和下跳沿的检测,滤除毛刺的宽度可配置,可满足不同的应用场景。
附图说明
图1是本发明实施例一提供的可滤除毛刺的跳沿检测方法的实现流程图;
图2是本发明实施例一提供的可滤除毛刺的跳沿检测方法的操作示意图;
图3是本发明实施例一提供的数据同步示意图;
图4是本发明实施例一提供的检测序列示意图;
图5是本发明实施例二提供的可滤除毛刺的跳沿检测装置的具体结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下结合具体实施例对本发明的实现进行详细描述:
实施例一
图1示出了本发明实施例一提供的可滤除毛刺的跳沿检测方法的实现流程,详述如下:
在步骤S101中,根据跳沿的类型和跳沿的时序,主控制器通过序列配置寄存器设置用于采样的跳沿序列。
在本实施例中,所述主控制器通过数据总线来配置和修改序列配置寄存器的用于采样的跳沿序列,所述序列配置寄存器的长度为第一数据长度,所述第一数据长度大于一个预设跳沿时序中所有高电平采样点数和所有低电平采样点数之和,其中,对上跳沿、下跳沿检测需要不同的配置,而滤除毛刺的宽度需要根据采样时钟来估算设置。其中,序列配置寄存器的配置方法如下:
(1)高电平对应寄存器内数据“1”,低电平对应寄存器内数据“0”;
(2)根据跳沿的时序要求来估算高电平和低电平的采样数,例如,假设某个跳沿要求高电平时间为大于H,持续低电平时间大于L,采样时钟频率为Mf,则可计算出高电平的采样点数至少为HMf,低电平采样点数目至少为LMf;
(3)下跳沿变化是信号电平从高跳变到低,对应寄存器内的值从左起始端开始应该是LMf个0,然后紧接着HMf个1;
(4)上跳沿变化是信号电平从低跳变到高,对应寄存器内的值从左起始端开始应该是HMf个1,然后紧接着LMf个0;
在步骤S102中,采样时钟以预设频率采样接口数据。
在本实施例中,所述预设频率为输入数据频率的M倍,所述M为大于等于4并小于等于10的整数。采样时钟产生采样所需时钟,假设待检测信号频率为f,采样时钟的预设频率需要是输入信号频率的M倍,其为Mf,考虑奈奎斯特采样定律,一般实际应用中保证采样频率为信号最高频率的5~10倍。优选的,预设频率M为大于4的整数,才可以保证采样的充分性,具体的,序列配置寄存器为S位,要求HMf+LMf≤S,当高电平和低电平的时间参数H和L给定后,采样时钟的预设频率倍数要求M≤S/(Hf+Lf)。另外,实际应用中在移位寄存器的个数N给定后,M的值也不能过大,以免送入移位寄存器的值溢出。
作为一个优选方案,在步骤S103之前还包括采样时钟同步接口数据,具体的,在采样时钟的上沿或者下沿,将采样的所述接口数据依次输入第一级D触发器和第二级D触发器消除所述接口数据的亚稳态,具体过程如图3所示。
在步骤S103中,通过移位寄存器存储所述接口数据,其中,所述接口数据从移位寄存器的左端进入,每进来一位接口数据同时移位寄存器右移一位。
在本实施例中,通过N位移位寄存器存储所述接口数据,所述N大于等于第一数据长度。移位寄存器由N个寄存器组成,每次启动比较之前,寄存器的值将全部清零,开始检测时,数据从移位寄存器左端输入,经过每拍时钟后,数据依次右移动一位。第一数据长度不能超过移位寄存器的最大深度,在实施方法中,N(N≥S)位寄存器可以保证满足上述要求。
在步骤S104中,比较位数寄存器设置序列配置寄存器和移位寄存器的比较位数,比较移位寄存器中左起的给定位数据和序列配置寄存器中跳沿序列中相应的比特位数据是否相等,如果两者相等,则显示为有效的跳沿。
在本实施例中,所述比较位数大于等于滤除毛刺的宽度,其由主控制器进行设置。比较寄存器可以根据主控制器设置的比较位数,比较序列配置寄存器中左起相应的设置值和移位寄存器中左起对应位数据,当移位寄存器里面的数据和比较器内的预置数据完全相同时,则显示为有效的跳沿。另外一个优选方案是,如果移位寄存器中左起的给定位数据和序列配置寄存器中跳沿序列中相应的比特位数据不相等,则将移位寄存器中所述给定位数据滤除。
如图4示出了一种具体通过本方法进行跳沿检测的具体示例,其中,待检测信号相应的时钟频率为f,周期为T,取M为8,即以8倍频作为采样时钟;设定移位寄存器的N为8,序列配置寄存器的S也为8,需要检测下跳沿,其中跳沿的高电平持续时间大于0.4T,低电平持续时间大于0.4T,根据上述方法描述,比较位数寄存器的值设置为6,序列配置寄存器的值设置为000111XX,其中XX标识0或者1中任意值均可,待检测数据从端口持续输入时候,即可自动完成下跳沿检测,具体过程如下:
(1)第一拍采样,下跳沿附近的高电平D1被采样,首先输入到移位寄存器最左端;
(2)第二拍采样,高电平D2被采样到寄存器最左端,同时D1被移位到移位寄存器的左起第二位;
(3)第三拍采样,高电平D3被采样到移位寄存器最左端,高电平D2移动到左起第二位,高电平D1移动到左起第三位;
(4)第四拍采样,低电平D4被采样到移位寄存器最左端,高电平D3移动到左起第二位,高电平D2移动到左起第三位,高电平D1移动到左起第四位;
(5)第五拍采样,低电平D5被采样到移位寄存器最左端,低电平D4移动到左起第二位,高电平D3移动到左起第三位,高电平D2移动到左起第四位,高电平D1移动到左起第五位;
(6)第六拍采样,低电平D6被采样到移位寄存器最左端,低电平D5移动到左起第二位,低电平D4移动到左起第三位,高电平D3移动到左起第四位,高电平D2移动到左起第五位,高电平D1移动到左起第六位。此时,移位寄存器的值和比较器内的预置数据等,即可判断下跳沿有效。
当待检测数据有毛刺时,如图4所示,毛刺的持续时间小于0.4T,即采样时钟无法采样到足够的低电平0,如图4中的D10、D11、D12,因此移位寄存器里的值不能与序列配置寄存器的预置的值相匹配,则这两个毛刺将被过滤掉。
本实施例,将滤毛刺电路和跳沿检测电路结合在一起,检测跳沿的同时完成滤除毛刺,电路简单,易于实现,另外,通过配置可方便的实现上跳沿和下跳沿的检测,滤除毛刺的宽度可配置,可满足不同的应用场景。
实施例二
图5示出了本发明实施例二提供的可滤除毛刺的跳沿检测装置的具体结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。在本实施例中,该可滤除毛刺的跳沿检测装置包括:。
其中,序列配置单元51,用于根据跳沿的类型和跳沿的时序,主控制器通过序列配置寄存器设置用于采样的跳沿序列;
数据采样单元52,用于采样时钟以预设频率采样接口数据;
数据储存单元53,用于通过移位寄存器存储所述接口数据,其中,所述接口数据从移位寄存器的左端进入,每进来一位接口数据同时移位寄存器右移一位;
数据检测单元54,用于比较位数寄存器设置序列配置寄存器和移位寄存器的比较位数,比较移位寄存器中左起的给定位数据和序列配置寄存器中跳沿序列中相应的比特位数据是否相等,如果两者相等,则显示为有效的跳沿。
进一步地,所述装置还包括:
毛刺滤除单元55,用于如果移位寄存器中左起的给定位数据和序列配置寄存器中跳沿序列中相应的比特位数据不相等,则将移位寄存器中所述给定位数据滤除。
进一步地,所述装置还包括:
数据同步单元56,用于采样时钟同步接口数据。
具体的,所述数据同步单元具体用于在采样时钟的上沿或者下沿,将采样的所述接口数据依次输入第一级D触发器和第二级D触发器消除所述接口数据的亚稳态。
进一步地,所述比较位数大于等于滤除毛刺的宽度,其由主控制器进行设置。
本发明实施例提供的可滤除毛刺的跳沿检测装置可以应用在前述对应的方法实施例一中,详情参见上述实施例一的描述,在此不再赘述。
值得注意的是,上述装置实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。