基于ARM的开关量信号采集模板的设计
O 引言
本文设计的开关量信号采集模板是一款嵌入式SCADA系统的一种插件,称为智能数字量采集板(IntelligentBinary Input Board,简称B板)。该装置主要用于电力系统等工业过程控制领域的实时数据采集与控制。
在绝大多数工业测控系统中都不可避免地会涉及开关量采集的问题,开关量信号采样的准确可靠性对于整个测控系统能否正常稳定地工作,起着重要的作用。从以往的工作经验来看,开关量信号采集的关键问题就是去抖动,避免错误的开关量变位信号困扰系统的使用者。所谓开关量信号抖动就是由于开关量信号的采样通道受到干扰后装置采集到了错误的开关状态并上报给主站系统,产生许多莫须有的告警信息,让系统的使用者难以辨别事件的真伪,影响系统的实用性。在电力系统自动化行业,开关量的事件顺序记录分辨率的指标要求是1~2ms,繁琐的硬件去抖动电路和软件延时去抖动算法会破坏系统的实时性指标。为此,本文提出了一种快速的去抖动算法,与模板上硬件去抖动滤波电路配合,较好地解决的上述问题。
本文主要就B板的软硬件设计原理与实现方法以及去抖动算法进行介绍。
1 硬件设计
1.1 总体设计
B板以Philips LPC2138 32位ARM微控制器为核心,完成16通道开关量的数据采集。作为嵌入式SCADA系统的一种插件,板上设计了一路RS422异步串行通信接口,通过该接口与装置的通信与管理模板(Communication andManagement Board,简称M板)通信,将采集生成的实时开关量信息上报给M板。由于M板要通过RS422总线管理多块II0板工作,M板采用主从方式实现与II0板的通信连接,为此各IIO板都设计了ID标识地址进行身份确定。B板的ID标识地址采用8位双排跳线器设置,标识地址范围为0lH~FFH。此外,模板还设计了一路为RS232接口,用于模板的检测与调试,以及LPC2138的软件下载。调试RS232接口是一个标准的VTl00超级终端接口,通过该接口可以与PC机进行通信连接,使用Windows的超级终端仿真软件可以十分方便地对该模板进行调试和检测。同时该串口也是LPC2138软件的下载接口,将跳线JPl02和JPl03跳接上,即可通过专用软件将编译连接生成的软件下载到LPC2138的FLASH存储器。
板上开关量过程通道包括BI回路信号调理与滤波电路、光电隔离电路、开关量状态访问电路。由于LPC2138的I/0引脚的数量有限,硬件设计时采用部分I/O引脚作为CS片选信号,部分I/O仿真8位数据总线对外部访问端口进行分时操作。
为了保证模板运行的稳定可靠性,B板设计有硬件看门狗电路(HWDT),软件还设计了软看门狗定时监视器(SWDT)。软硬看门狗协同工作,在软件“走飞”或局部“走死”之后自动恢复模板运行。
B板的工作原理如图1所示。
1.2 LP02138的I/0扩展
LPC2138是一款总线不出芯片的片上系统(SoC),主要通过I/O引脚对外部电路进行访问。本文设计的B板有16路BI输入状态、8位ID标识地址、异步串口和HWDT等都需要使用I/O资源,LPC2138的I/O引脚不够用。为此,硬件设计时通过对LPC2138的I/0引脚进行组合使用,实现了对外部电路的分时访问。具体实现方法是,采用部分I/O引脚作为CS信号,再用8个I/0模仿8位地址总线DBO~7对外部端口进行访问。这种方法的优点在于既可减少I/0资源的使用,PCB布线也容易许多。采用这种方法进行I/O扩展需要注意两个方面的问题:①由于LPC2138的I/0引脚在启动时多为低状态,此时会导致CS信号都使能,造成冲突,需要将用做CS信号的I/0引脚上拉;②软件访问外部电路时,要通过设置I/O状态模拟外部电路的访问时序。B板LPC2138的I/0扩展如图2所示。
1.3 开关量输入过程设计
开关量输入过程通道的设计相对简单,首先要根据光偶的驱动电流确定输入电阻的大小,并选择一个电容与该输入电阻构成一个RC滤波回路,过滤过程通道上的毛刺干扰;为了防止用户接线时把外部驱动回路的电源极性接反导致光偶烧坏,在回路上反向接入一个二极管对其进行保护;为了适应外部输入回路多样性(如有源脉冲信号和无源干接点信号不能共地),硬件设计时将16路开关量分为4组,每组一个公共端。开关量输入信号与LPC2138的接口采用HC245实现,软件设置片选使能,将BI状态放入数据总线,读取BI状态,然后设置片选禁止,完成BI的采集工作。开关量输入过程通道如图3所示。
1.4 硬件看门狗复位电路
评论