新型便携式多路开关量信号检测仪设计

2014-03-26 00:58曹洪龙胡剑凌蔡文锋
仪表技术与传感器 2014年12期
关键词:状态机板卡检测仪

曹洪龙,胡剑凌,邵 雷,蔡文锋

(苏州大学电子信息学院,江苏苏州 215006)

0 引言

在现代工业生产和科学研究过程中,常常需要检测开关量信号变化,然后根据各个开关量信号变化关系(通常是时间关系),判决工作状态、影响因素、异常因素等信息。例如在工业测控系统中,需要检测电磁继电器、辅助开关等设备产生的开关信号,进行判断从而获得高精度的动作顺序分辨率[1-2]。目前市场上的一些数据采集卡可以实现基本的开关量信号测量需求,但对多达几十路的开关量信号的并行实时检测和计时方面没有专门的应用。为了解决多路开关量信号检测问题,设计了一种新的开关量信号分析方法和一种便携式多路开关量信号检测仪。

1 新型的开关量信号分析

多路开关量检测是要实现开关量信号的实时采集、检测与存储,其检测到的数字化单路开关量信号可以抽象为图1所示信号。图1所示的开关量信号主要有以下重要参数:

(1)信号状态,有高、低电平2种状态,数字化后对应着“1”和“0”状态;

(2)跳变和跳变时间,当开关量信号由“0”转换为“1”或者由“1”转换为“0”时,即发生跳变,称为上跳或下跳,其对应时刻分别为上跳时间和下跳时间;

(3)脉宽和有效脉宽,开关量保持“1”或者“0”的时间,其值为相邻的2个跳变时间的差值,有效脉宽是指最小允许的脉宽;

(4)抖动,开关量在发生时或在传输受到外部干扰时可能发生电平翻转现象即抖动,其特征是翻转后维持时间小于有效脉宽;

(5)幅值,即高、低电平的电压差。

图1 数字化开关量信号

在开关量信号采集和检测过程中,需要解决以下问题。

(1)信号采集与存储问题。开关量信号仅有高、低电平2种状态,在幅度信息不计的情况下可以不使用AD而用I/O接口直接读取“0”、“1”状态进行采集。同时为节省存储空间,仅记录每路发生跳变的时刻和状态,后处理时可通过跳变时间和对应状态恢复出对应的开关量信号。

(3)去抖动算法。抖动将增加跳变次数,使恢复的信号失真,必须在实际应用中进行去抖动处理,可以采用硬件去抖动和软件去抖动相结合的方法。在兼顾计时精度和软件去抖动有效性的基础上可以采用有限状态机(Finite State Machine,FSM)的方法进行软件去抖动。

2 基于有限状态机的开关量检测算法

在开关量信号检测算法中,为提高开关量信号检测的精度,必须对采集的信号进行去抖动处理。目前信号去抖动处理方法主要有基于概率统计方法的软件去抖动方法[1]、延时去抖动算法等。延时去抖动算法实际上是通过延时避过抖动进行信号检测的方法,用于已知抖动产生规律的情况下,如按键去抖动算法。基于概率统计方法去抖动是在一定长时间T内对采集的开关量信号的高低状态进行概率计算,并与设置的抖动阈值相比较确定是否发生抖动并进行去抖动处理。阈值选择不同,可以得到不同的去抖动效果。为了更高精度的进行开关量信号的检测,文中提出一种具有去抖动功能的基于有限状态机的开关量检测算法。

根据开关量信号检测要求确定有限状态机是一个三元组M={S,X,δ},其中S是M中包含的状态集,包括初始状态(高或低电平)及其他信号检测过渡状态。X为非空的输入集,即每次采样到的“0”和“1”,这些量激励着状态机发生状态转移。δ为状态转移函数,表示信号状态si(si∈S)时获取输入xi(xi∈X)后,转移到下一个状态sj(sj∈S)[3-6]。

过渡状态的有限状态机转移图。当取X=0.1 ms,Pe=20 μs时,Fs=50 kHz,则具有N=8种中间过渡状态,可建立如图2所示的有限状态图。当连续采集到5个“1”时确认开关量信号由低电平(S_0)跳变为高电平状态(S_1);当连续采集到5个“0”时,确认开关量信号由高电平状态(S_1)跳变为低电平状态(S_0)。在采样率为50 kHz的前提下,仅当5个连续的同样输入才能确认一种稳定状态,从而保证有效脉宽精度为0.1 ms和计时精度为20 μs.当有效脉宽增加时(以1ms为例),在保证计时精度为20 μs的基础上,对采样样本进行抽样处理(该例每10个样本抽取1个样本),保证采用图2所示的有限状态机工作方式。在高精度记录高低电平跳变的计时信息后,可以在大幅度降低开关量信号存储空间的基础上,高精度的记录开关量信号状态。

图2 开关量检测有限状态机

3 便携式多路开关量信号检测仪设计

采用新型开关量信号检测方法的便携式多路开关量信号检测仪主要由两部分构成:作为下位机的多路开关量信号检测板卡;作为上位机的计算机。根据小型化需求上位机采用单板计算机,而下位机采用PC104Plus接口与上位机互联并采用PCI协议通信。

3.1多路开关量信号检测板卡硬件设计

根据新型多路开关量信号检测方法的分析,采用图3所示的硬件原理框图实现基于FSM的多路开关信号采集。

如图3所示,板卡硬件主要由以下几个模块构成,各个模块协同工作实现多路开关量信号的采集和检测功能。

图3 多路开关量信号检测板卡硬件设计框图

3.1.1 信号输入模块

信号输入模块主要由信号输入接口、信号调理模块和信号隔离模块构成。其中信号调理模块用于将输入开关量信号进行调幅,使其符合信号隔离模块的输入范围,并对开关量信号进行硬件去抖动,有助于提高系统的抗干扰能力。信号隔离模块用于隔离前、后端信号,使得两者之间互不影响,同时保护后端电路。文中采用高速光耦器件来实现前后端信号的隔离,同时保证后续检测的精度。

3.1.2 处理器模块

多路开关量信号检测板卡选用TMS320VC5416 DSP作为处理器,通过通用IO接口采集光耦输出的开关量信号并进行信号跳变检测,并将检测到的跳变信息存储到片内的RAM中。

3.1.3 PCI协议转换模块

为了实现多路开关量信号检测仪的便携化处理,多路开关量信号检测板卡采用PC104Plus接口与单板计算机互联,通过PCI协议进行通信[7-8]。由于TMS320VC5416 DSP不直接支持PCI总线接口,在应用中选择PCI2040作为PCI桥接芯片,将TMS320VC5416的HPI接口访问和PCI接口访问进行转换。当上层应用程序通过PCI协议发送读写请求时,PCI2040会将PCI协议转换为HPI协议,实现对DSP内部存储资源的访问。

3.1.4 PC104Plus接口

PC104Plus接口是目前单板计算机提供的一种具有高可靠的电器和机械特性的接口,其电气规范采用PCI2.1标准,支持32bit/33 MHz的总线操作,最多可以连接4个支持PCI协议的板卡设备[9]。

3.2 多路开关量检测仪软件设计

便携式多路开关量检测板卡软件设计主要包括三方面:板卡DSP程序设计、板卡驱动程序设计和上层应用程序设计。

3.2.1 板卡DSP程序设计

板卡DSP程序主要完成工作状态配置功能、开关量信号采集功能、基于有限状态机的跳变检测功能、跳变信息存储和传输等功能。

为提高多路开关量检测仪的灵活性,工作状态配置功能采用配置寄存器对板卡工作方式和工作状态进行配置,包括有效脉宽设置、延时启动设置、工作方式(中断模式和查询模式)选择、启动或停止采集等功能。当选择启动采集功能后,DSP程序通过GPIO接口进行多路开关量信号的实时采集,并调用基于有限状态机的跳变检测方法,根据有效脉宽设置检测开关量信号是否发生跳变。当发生跳变时,DSP存储当前各路的状态和跳变标志信息,并对缓存的跳变信息进行计数。如果系统配置为中断工作模式,将立刻通过HPI接口发送中断,通知板卡驱动实时读取缓存的跳变信息。当选择停止采集功能时,DSP程序将停止开关量信号检测工作,进入低功耗状态,等待HPI中断唤醒。

3.2.2 板卡设备驱动设计

设备驱动程序是计算机系统识别和访问硬件设备的软件接口,其设备驱动程序直接影响整个便携式多路开关量信号检测仪的信号检测性能和系统稳定性。为降低设备驱动程序设计难度并增强设备驱动程序的鲁棒性,微软公司为Windows系统提供一种WDF(Windows Driver Foundation)开发包,在原WDM(Windows Driver Model)的基础上隔离了设备驱动程序和操作系统内核,降低了设备驱动程序对内核的影响,提高驱动的稳定性[10]。WDF提供2种驱动设计框架:KMDF(内核模式驱动程序框架)和UMDF(用户模式驱动程序框架)。多路开关量信号检测板卡采用KMDF框架进行设计,主要实现板卡设备的即插即用管理、板卡中断服务、读写板卡存储器和上层应用程序通信等功能,采用图4所示的流程进行应用处理。

图4 驱动主要工作流程

如图4所示,驱动初始化后,等待响应上层应用程序IO请求并为下层板卡提供中断服务。上层应用程序利用IO请求可以完成板卡和驱动工作状态初始化、板卡和驱动复位、跳变信息读取等功能。当上层应用程序启动采集功能后,板卡检测到跳变状态将实时存储跳变信息并向驱动发送中断请求。驱动实时响应板卡的中断请求,调用相应的中断服务程序将跳变信息读取并存入驱动的数据缓冲区,采用事件中断的方式通知上层程序实时读取缓存的跳变信息。由于中断服务程序运行在IRQL(Interrupt Request Level,中断请求级别)中的DIRQL级别,因此中断服务程序要尽可能简短,实际应用中,中断服务程序调用DPC程序(延迟过程调用程序)进行跳变信息的读取,DPC程序运行在相对较低的DISPATCH_LEVEL的IRQL级别。

3.2.3 检测仪的上层应用程序设计

便携式多路开关量检测仪的上层应用程序主要采用Windows API函数对驱动进行访问,实现上位机和下位机的协同工作,主要具有以下几个功能:

(1) 枚举板卡功能。采用PC104Plus接口的便携式多路开关量检测仪最多可以同时连接4个PCI设备,应用程序首先要对板卡设备进行枚举,确定有几块板卡连接进入系统。

(2) 板卡HPI Boot(自举)和配置功能。为节省多路开关量检测板卡成本,以TMS320VC5416 DSP作为CPU的板卡选用DSP的HPI 自举方式,解决DSP程序永久存储和高速运行的矛盾。应用程序枚举板卡后将存储于上位机中的DSP程序下载到DSP的程序空间实现DSP的HPI自举。在板卡程序自举成功后,应用程序根据用户需求配置板卡,在启动检测时,使板卡按用户需求工作。

(3) 开关量信号信息获取和显示功能。在多路开关量检测工作状态下,应用程序可以采用主动和被动2种方式获取板卡检测到的开关量跳变信息。主动方式,又称查询模式,是指应用程序周期性查询板卡并读取板卡中跳变信息缓冲区新的跳变数据,存储数据并更新显示界面上的多路开关量信号状态。被动方式(中断工作模式)下,应用程序采用同步事件(Event)实现与驱动的DPC线程同步。当板卡检测到一路或多路开关量信号发生跳变时,存储对应跳变信息并向驱动发送硬件中断。驱动的中断服务程序调用DPC程序读取跳变信息后将约定的同步事件置为信号态。应用程序处理线程在监测到该同步事件的信号态有效后,从驱动中读回对应的跳变信息,存储数据和更新显示界面。

(4) 板卡调试功能。板卡调试功能主要用于板卡工作状态的调试和校准,是便携式多路开关量检测仪的辅助功能。

4 便携式多路开关量信号检测仪应用实例

该检测仪采用50 kHz采样率可以识别最小有效脉宽为0.1 ms的开关量信号。在最终仪器上将采用触摸屏和液晶屏代替键盘、鼠标和显示器,实现便携化。原型机采用PC104Plus接口的单板计算机,一共连接3块多路开关量检测板卡。启动应用程序,先对板卡工作状态进行用户配置,支持被动和主动2种工作方式进行多路开关量信号检测,并采用字符方式对各路开关量信号的实时跳变信息进行显示。图5中的便携式多路开关量信号检测仪的原型机经长时间测试,可以高精度地进行多路开关量的采集和显示,测试结果稳定。以采集开关闭合时电信号为例,表1中数据表明在不同的有效脉宽设置下采用FSM方法检测跳变的结果存在差异。有效脉宽较大时,开关闭合时的抖动信号被滤除;当有效脉宽设置为0.1 ms时,恢复出的开关量信号完全匹配示波器捕捉的开关闭合时的电信号抖动情况,跳变计时精度达到20 μs,达到系统预设目标。

表1 开关闭合时电信号跳变检测结果

5 结束语

采用基于FSM的开关量信号检测和记录方法,可以通过配置有效脉宽的方法在保证开关量信号波形精度的基础上去除抖动信号,达到开关量信号跳变检测的目的。利用TMS320VC5416 DSP为核心处理器设计的多路开关量信号检测板卡采用PC104Plus接口与单板计算机互联,可以构成一个便携式的多路开关量信号检测仪。该检测仪可以实时检测多路开关量信号的工作状态,并将检测结果显示在程序显示界面上,其原型机经长时测试,工作稳定。当采用50 kHz采样率的情况下计时精度达到20 μs,可以识别0.1 ms有效脉宽的开关量信号。

参考文献:

[1] 郑来波,李泰强.多路高速开关信号采集中的一种软件消抖算法.山东工业大学学报,2002,32(1):48-51.

[2] 郑来波,张有志.双机热备份高动作顺序分辨率多路开关量采集系统.山东大学学报(工学版),2002,32(2):181-184.

[3] 唐飞,查长礼.基于有限状态机的STM32系统按键识别方法.长春工业大学学报(自然科学版),2013,34(2):160-164.

[4] 包健,魏丽娜,赵建勇.基于有限状态机的电梯控制系统故障诊断方法.计算机应用,2012,32(6):1692-1695.

[5] 张宇,闵子建,袁慧梅.基于SOPC技术的AD73360采样控制器.仪表技术与传感器,2009(5):66-67;93.

[6] 杨萌,ALRNAI A E A.面向多优化目标的有限状态机状态分配.计算机辅助设计与图形学学报,2013,25(2):258-263.

[7] 陈霞.DSP与PCI总线接口设计研究.微型电脑应用,2008,24(11):40-41.

[8] 曾湘芸,倪卫芳.基于PCI总线和DSP的多功能接口卡.现代雷达,2004,26(5):27-30.

[9] 李健,崔剑雷,刘栋.高清晰度漏磁管道内检测器主控系统的设计.传感器与微系统,2012,31(5):129-131.

[10] 王雷,何羚,唐博.PXI频谱分析仪的WDF驱动设计.仪表技术与传感器,2012(4):28-29.

猜你喜欢
状态机板卡检测仪
车载控制器CVRE板卡显红故障分析及处理
基于有限状态机的交会对接飞行任务规划方法
一种防雷接地装置的便携式检测仪电路
基于555振荡器的地沟油频率检测仪
基于组态王软件和泓格PIO-D64 板卡的流水灯控制
三段式状态机在单片机中的实现
多功能空气质量远程检测仪
一种基于光纤数据传输的多板卡软件程序烧写技术
巧用故障检测仪中的Reset功能
一种通用模拟量及开关量信号采集板卡的设计