频毛刺;另一种是时间较长的干扰信号,如开关抖动。这里的拨动开关都是人为操作,因此每次触发的时间都不会很短,一般小于10 hz。根据上述分析开关抖动信号属于后一种。因此在每次开关操作后,对其产生的信号进行连续采样,如果每次采样都是低电平或者都是高电平,就认为此信号不是抖动,确实开关状态发生了变化。整个设计过程使用verilog硬件描述语言编写,然后在quartusⅱ平台上编译,并采用signaltapⅱlogic arlalvzer对信号采样分析,调试通过后连同其他程序一起烧写进fpga的配置器件epcsl6中。图2~图4分别是各个开关动作去抖动前和去抖动后的实时信号采样图。去抖动模块中的部分代码如下: 其中,clk为13.5 mhz频率的时钟信号,clk_cnt为采样时间间隔计数器,当clk_cnt为135 000时采样1次,即每隔10 ms采样1次。寄存器shuru_temp存储前一次开关信号状态,shum存储当前开关信号状态。如果shuru_temp的值等于shtlm的值,则计数器test_cnt自动加l。如果连续4次采样值相等,即test_cnt=4时去抖动输出才随输入变化。
频毛刺;另一种是时间较长的干扰信号,如开关抖动。这里的拨动开关都是人为操作,因此每次触发的时间都不会很短,一般小于10 hz。根据上述分析开关抖动信号属于后一种。因此在每次开关操作后,对其产生的信号进行连续采样,如果每次采样都是低电平或者都是高电平,就认为此信号不是抖动,确实开关状态发生了变化。整个设计过程使用verilog硬件描述语言编写,然后在quartusⅱ平台上编译,并采用signaltapⅱlogic arlalvzer对信号采样分析,调试通过后连同其他程序一起烧写进fpga的配置器件epcsl6中。图2~图4分别是各个开关动作去抖动前和去抖动后的实时信号采样图。去抖动模块中的部分代码如下: 其中,clk为13.5 mhz频率的时钟信号,clk_cnt为采样时间间隔计数器,当clk_cnt为135 000时采样1次,即每隔10 ms采样1次。寄存器shuru_temp存储前一次开关信号状态,shum存储当前开关信号状态。如果shuru_temp的值等于shtlm的值,则计数器test_cnt自动加l。如果连续4次采样值相等,即test_cnt=4时去抖动输出才随输入变化。