(2)I/O扩展

I/O扩展方面,采用多片扩展能力较强的芯片8255,实现对500路开关量信号的采集,8255由芯片IDT74LVC4245A驱动,同时该芯片可实现3.3 V与5 V信号之间的转换,实现CPU与扩展芯片8255的连接,其选通由CPU通过译码器实现。

3.2 信号传送部分

为了降低数据通讯对系统资源的占用,提高系统监测的实时性,采用另一CPU负责与上位机进行数据通讯,通信CPU通过串口或USB口与上位机进行连接。通讯过程如下:当系统监测到1次事件触发后,通讯CPU从双口RAM中读出数据,将数据通过串口或USB口发给上位机。

4 SoE系统的软件结构

根据SoE系统的硬件构成,其软件结构也分为下位机部分与上位机部分。

4.1 下位机

下位机程序采用汇编语言编写,其主要完成定时数据采集及数据发送工作。其中定时采样的中断频率由定时器0的常数自动装载16位计数器方式产生;波特率由定时器1的方式1产生;自定义软件握手,握手信号可以随意选择一常数,如果单片机接收到的数据等于此常数,则表示握手成功,否则重新接收握手数据。

在系统上电复位后,根据各开关量的正常状态将原始数据存入存储器,同时在同步脉冲下将采集到的数据与初始状态做比较,如果数据保持不变,说明各开关量的状态没有改变,系统重新采集数据;当接收到一个事件触发数据时,就会按照该触发事件时间标记将采集到的数据传送到缓存器中,同时开始计时,如果在定义的时间内没有其他事件到达,则完成1次SoE记录,并将数据从缓存器中发送到双口RAM中,再由通信CPU将数据从双口RAM中调出,经汇总整理后,经网络提交给上位机。其流程图可简单描述如图2所示: