有效
一种低功耗同时提高水表脉冲计量准确性的方法
罗晓霞、杨伯菊、吴刚
四川广安爱众股份有限公司
摘要
本发明属于用水信息计量采集技术领域,公开了一种低功耗同时提高水表脉冲计量准确性的方法,通过定义脉冲计量相关的结构体变量;配置脉冲信号采集设备的主控芯片的IO中断模式及系统休眠状态下的唤醒模式等参数;脉冲信号电平状态的判断,判断当前是产生的上升沿还是下降沿;单脉冲有效性判断,通过计算上升沿和下降沿的时间差绝对值,计算出低电平的持续时间;通过将A/B两路脉冲信号实际产生的时序和理论时序进行比对,若二者一致,则认定本次脉冲信号为有效脉冲进行计量,否则认定为干扰信号,进行丢弃;系统立刻进入休眠状态。本发明降低了系统的功耗,同时提高了计量的准确性,降低了工程维护的费用,进而达到节省运维成本的目的。
1.一种低功耗同时提高水表脉冲计量准确性的方法,其特征在于,所述低功耗同时提高水表脉冲计量准确性的方法包括:设定脉冲信号采集设备内的两路脉冲信号计量接口为A路脉冲接口和B路脉冲接口,分别对应脉冲式水表的两路脉冲信号接口,定义脉冲计量相关的结构体变量;配置脉冲信号采集设备的主控芯片的IO中断模式及系统休眠状态下的唤醒模式参数;脉冲信号电平状态的判断,判断当前是产生的上升沿还是下降沿,若产生沿信号则进入单脉冲有效性判断,否则进入本次唤醒后脉冲统计完成,系统立刻进入休眠状态;单脉冲有效性判断,通过计算上升沿和下降沿的时间差绝对值,计算出低电平的持续时间,若持续时间小于最小限值,认定为干扰信号,进行丢弃,进入本次唤醒后脉冲统计完成,系统立刻进入休眠状态;若时间值超过最小限值且为上升沿,则进入脉冲交替有序性判断,否则进入本次唤醒后脉冲统计完成,系统立刻进入休眠状态;脉冲交替有序性判断,通过将A/B两路脉冲信号实际产生的时序和理论时序进行比对,若二者一致,则认定本次脉冲信号为有效脉冲进行计量,否则认定为干扰信号,进行丢弃;本次唤醒后脉冲统计完成,系统立刻进入休眠状态。
2.如权利要求1所述的低功耗同时提高水表脉冲计量准确性的方法,其特征在于,当脉冲信号采集设备起始运行时,首先,在主控芯片内配置A/B两路脉冲的IO接口为外部中断模式,且中断触发条件为上升沿和下降沿均可触发;其次,配置主控芯片在进入休眠状态后,可通过A/B两路脉冲接口的IO外部中断事件唤醒系统,退出休眠状态。
3.如权利要求1所述的低功耗同时提高水表脉冲计量准确性的方法,其特征在于,所述脉冲信号电平状态的判断为当主控芯片由脉冲信号的中断事件唤醒后,查询A路/B路脉冲的电平状态,具体过程如下:S1,通过查询系统中断源,确定是A路还是B路脉冲产生了信号中断,若是A路或者B路,则进入步骤S2,否则,认为异常,系统立刻进入休眠状态;S2,创建含有N个元素数组PortArry[N],定义0代表低电平,1代表高电平,N的取值范围为大于2小于16,然后进入步骤S3;S3,依据步骤S1,对产生中断的A路脉冲或者B路脉冲,以固定的采样间隔T进行读取采样,T的取值范围最小值大于0毫秒小于100毫秒,连续读取N个A路脉冲或者B路脉冲接口的电平状态,若脉冲信号为高,则用1表示,为低则用0表示,依次放入数组PortArry中,N个值读取完毕后,进入S4,否则继续读取,直至读取完毕;S4,在数组PortArry的N个数据值中,依次提取数组下标为N/2–1、N/2、N/2+1的三个数值,即PortArry[N/2–1]、PortArry[N/2]和PortArry[N/2+1]的三个数据值,然后对这三个数据值进行比对;S5,获取A路/B路脉冲上一次电平状态,即s tPortAInf o.ucLa s tPortPlus或者stPortBInfo.ucLastPortPlus的值,和当前值stPortAInfo.ucCurPortPlus或者stPortBInfo.ucCurPortPlus,进行比较;S6,依据S5,若当前产生了下降沿,首先把stPortAInfo.udwCurDownTimes或者stPortBInfo.udwCurDownTimes的值,赋值给stPortAInfo.udwLastDownTimes或者s t Por t B I nf o.ud w La s t D o w n Ti m e s,然后把脉冲信号采集设备的当前时间赋值给stPortAInfo.udwCurDownTimes或者stPortBInfo.udwCurDownTimes;同理,若产生了上升沿,则把stPortAInfo.udwCurUpTimes或者stPortBInfo.udwCurUpTimes的值,赋值给stPortAInfo.udwLastUpTimes或者stPortBInfo.udwLastUpTimes,然后把脉冲信号采集设备的当前时间赋值给stPortAInfo.udwCurUpTimes或者stPortBInfo.udwCurUpTimes,然后进入步骤四。
4.如权利要求3所述的低功耗同时提高水表脉冲计量准确性的方法,其特征在于,S4中,对数据值进行比对时,采取少数服从多数的原则,若1的个数大于0的个数,则认定当前脉冲信号为1,反之认定当前脉冲信号为0,把当前电平状态1或者0赋值给stPortAInfo.ucCurPortPlus或者stPortBInfo.ucCurPortPlus,然后进入S5。
5.如权利要求3所述的低功耗同时提高水表脉冲计量准确性的方法,其特征在于,S5中,将上一次电平状态和当前值进行比较时,若上一次电平状态为1,当前电平状态为0,则认定当前产生下降沿,反之,若上一次电平状态为0,当前电平状态为1,则认定产生上升沿,然后进入S6,若上一次电平状态与当前电平状态为一致,则直接进入步骤六。
6.如权利要求1所述的低功耗同时提高水表脉冲计量准确性的方法,其特征在于,进行单脉冲有效性判断时,具体过程如下:S11,获取当前脉冲的下降沿和上升沿的发生时间,即,stPortAInfo.udwCurDownTimes/stPortBInfo.udwCurDownTimes的值和stPortAInfo.udwCurUpTimes/stPortBInfo.udwCurUpTimes的值,然后进入步骤S12;S12,计算上升沿和下降沿之间的时间差t1,即,t1=stPortAInfo.udwCurUpTimes/stPortBInfo.udwCurUpTimes-stPortAInfo.udwCurDownTimes/stPortBInfo.udwCurDownTimes,然后进入步骤S13;S13,判断t1的绝对值是否大于脉冲的最小持续时间VldMinTime,VldMinTime的取值需要依据具体脉冲是水表的口径、流速、传感器位置等因素进行确定,若大于,则认定当前单个脉冲有效,若当前为下降沿,则直接进入步骤六;若当前为上升沿,然后进入步骤五;若不大于,则认定当前脉冲持续时间过短,为无效脉冲,进入步骤S14;S14,把stPortAInfo.udwLastDownTimes或者stPortBInfo.udwLastDownTimes,重新赋值给stPortAInfo.udwCurDownTimes或者stPortBInfo.udwCurDownTimes;把stPortAInfo.udwLastUpTimes或者stPortBInfo.udwLastUpTimes,重新赋值给stPortAInfo.udwCurUpTimes或者stPortBInfo.udwCurUpTimes。
7.如权利要求1所述的低功耗同时提高水表脉冲计量准确性的方法,其特征在于,对脉冲交替有序性判断时,具体包括如下步骤:S21,通过查询系统中断源,确定是A路还是B路脉冲产生了信号中断,即当前产生脉冲信号的实际值是哪路,然后进入S22;S22,分别获取A路和B路脉冲的累计个数,即stPortAInfo.udwPlusSum和stPortBInfo.udwPlusSum的值,并进行比对;S23,由步骤S22确定当前产生的有效脉冲是A路或者B路,并推算出上一次的脉冲产生有效脉冲应当是B路或者A路,然后获取当前脉冲的下降沿发生时间stPortAInfo.udwCurDownTimes或者stPortBInfo.udwCurDownTimes以及上一路脉冲的上升沿发生时间stPortBInfo.udwCurUpTimes或者stPortAInfo.udwCurUpTimes,并计算二者之间的差值t2,若当前为A路,则t2=stPortAInfo.udwCurDownTimes-stPortBInfo.udwCurUpTimes同理,若当前为B路,则t2=stPortBInfo.udwCurDownTimes-stPortAInfo.udwCurUpTimes然后进入步骤S24;S24,判断t2的值是否大于两路脉冲交替出现时的最小间隔时间VldMinTimeFrAB,VldMinTimeFrAB的取值需要依据具体脉冲是水表的口径、流速、传感器位置等因素进行确定,若大于,则认定当前A路或者B路脉冲为有效脉冲,其对应的脉冲个数统计值stPortAInfo.udwPlusSum/stPortBInfo.udwPlusSum进行加一操作,且该脉冲式水表的总的脉冲计量个数为stPortAInfo.udwPlusSum和stPortBInfo.udwPlusSum的总和;若不大于,则认定当前A路或者B路脉冲为无效的干扰脉冲。
8.如权利要求7所述的低功耗同时提高水表脉冲计量准确性的方法,其特征在于,步骤S22中,若stPortAInfo.udwPlusSum小于stPortBInfo.udwPlusSum,则理论期望的当前脉冲应由A路产生,然后再与步骤S21确定的当前实际产生脉冲的路数进行比对,若当前实际产生路数为B路,则实际值与理论值不一致,认定当前实际值为干扰脉冲信号,若一致,则认定当前实际值有效,进入步骤S23;同理,若stPortBInfo.udwPlusSum小于stPortAInfo.udwPlusSum,则理论期望的当前产生脉冲应由B路产生,然后再与步骤S21确定的当前实际产生脉冲的路数进行比对,若当前实际产生路数为A路,则实际值与理论值不一致,认定当前实际值为干扰脉冲信号,若一致,则认定当前实际值有效,进入步骤S23;若stPortBInfo.udwPlusSum和stPortAInfo.udwPlusSum相等,则直接认定步骤S21确定的实际脉冲路数与理论期望值一致,直接进入步骤S23。
暂无引用专利



