王恩博,孙 骜,李 翠
(中国电子科技集团公司第四十七研究所,沈阳110032)
随着工业产线的多元化发展,集中式控制在很多工业现场无法满足安装要求,此外,由于工业现场的工作环境复杂,设备数量多,生产过程产生的故障信息分散,无法采用集中控制的方式处理[1-2]。针对此情况,提出了分布式故障信息处理系统,可解决工业生产现场故障信息采集及汇总问题,提高生产效率。
系统主要由以下部分组成:电源模块、控制模块、CAN总线驱动器、USB扫码枪模块、SD卡模块、地址编码模块。
系统输入电源为+24V,为提高系统稳定性,使用了两种DC/DC芯片提供+3.3V及+5V电源。采用STM32F103微控制器控制外设芯片工作,实现数据的采集、通信等功能。微控制器读取SD卡内存储的配置信息,根据配置信息对外设芯片进行初始化。如果SD卡内存储的默认设备地址与编码盘的地址不一致,则以编码盘地址为准。为获得系统工作环境的温湿度信息,系统中加入了温湿度传感器,温湿度超过阈值时会上传系统故障信息。采用专用USB接口芯片读取USB扫码枪数据,该接口芯片通过UART接口将数据上传至微控制器,微控制器对数据进行处理并解码。系统结构图如图1所示。
图1 系统结构图
系统的+3.3V电源由TI公司的DC/DC芯片LM2832实现,该芯片可提供最大2A的输出电流,并且提供热保护和过压包括,工作温度为-40℃~125℃,成本较低且占用面积比较小,另外该芯片还具有很高的效率。原理图如图2所示。
图2 5V转3.3V降压电路原理图
系统的+5V电源由TI公司的DC/DC芯片TPS5420 DR实现,该芯片具有很宽的输入范围:5.5V~36V;可提供2A的输出电流(最大可输出3A的峰峰值电流),效率高达95%以上,支持工业级应用,温度范围为 -40℃~125℃;并且该芯片的封装为Small 8-Pin SOIC,具有比较小的面积。另外该芯片具有多种保护功能,其中包括过流限制、过压保护和热关断的功能。电路原理图如图3所示。
图3 24V转5V降压电路原理图
工业环境复杂,MCU的选择需要具备抗干扰能力、处理速度快的特点。系统采用ST公司的STM32F103嵌入式处理器,该处理器具有以下优势:性能比较高;抗干扰能力强(外部使用5V电平抗干扰能力强;内部使用3.3V逻辑,功耗低且速率快);支持多种接口(I2C接口、UART接口、SPI接口,CAN接口、SDIO接口、USB接口等)[3-4]。
系统外置看门狗芯片,一方面为整个系统提供复位源,另一方面保证系统在故障或者死机状态下能够实现系统复位功能[5]。本设计中,选用EXAR公司的SP706REU芯片作为复位芯片,该芯片是一款3.0V/3.3V的电源监控芯片,主要功能有电源监控、系统复位及CPU检测。该芯片在应用上已很成熟、成本较低。
系统选用Philips公司的TJA1040芯片实现CAN总线通信,该芯片支持1Mbps的波特率,完全兼容ISO11898标准,并且支持热保护功能。由于该芯片支持STAND BY模式,设计为当不使用CAN接口时,MCU可以控制CAN收发器的进入STAND BY模式;为了防止电路反射,匹配电路阻抗[6-7],CAN总线需要增加120欧姆的终端电路,原理图如图4所示。
图4 CAN接口原理图
为了增强系统的可靠性,对设备周围温湿度进行检测,以便于在温湿度异常情况下提出报警,这样可以有效保护设备本身。系统采用DHT11作为温湿度传感器,该传感器包括一个电阻式测湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。通过单片机等微处理器简单的电路连接就能够实时的采集本地湿度和温度。DHT11与控制器之间能采用简单的单总线进行通信,仅需要一个I/O口。传感器内部湿度和温度数据40bit的数据一次性传给控制器,数据采用校验和方式进行校验,有效的保证数据传输的准确性。
为了便于现场工作人员进行数据维护,保存配置参数以及大量的故障信息,本设计使用闪存卡作为故障及配置信息的存储介质,并可以通过读卡器在PC机中读/写SD卡数据。系统采用的微控制器STM32F103具备SDIO接口,只需要少量外围电路就可以驱动读写SD卡,并支持SD卡插入检测功能。系统采用FatFs文件系统存储数据,数据以TXT文本格式存于SD卡。系统采用三个编码盘用于设置设备地址,MCU通过两片74HC165串并转换芯片读取编码盘上的地址,以此减少MCU的IO使用数量。编码盘输出为BCD码,MCU读取数据后需要将BCD码转换成十进制数并与SD卡存储的设备地址进行比对。
根据实际使用需要,系统提供一个USB2.0的接口,供扫码枪使用。系统采用专用USB接口芯片接收USB扫码枪数据,并通过UART接口将数据传送给MCU。USB接口芯片稳定性好,有效解决了USB驱动开发耗时长的问题[8-9]。为了更好地保护内部电路,将外部USB与内部隔离,使用ADI公司的USB专用隔离器,可有效避免外部对内部电路的损害,原理图如图5所示。另外为了保证USB的完全隔离,必须增加隔离电源模块,以达到整个USB部分的电气隔离。并且隔离电源模块必须符合USB接口设备对功耗的需求。选用TI公司的DCP020505U,输出电流可达到0.7A,其原理图如图6所示。
图5 USB隔离器原理图
图6 隔离电源原理图
分布式故障信息采集处理系统软件部分主要用于完成故障信息采集、存储及处理;检测设备周围环境温湿度;信息上传等工作。本设计采用Keil μVision 5软件进行编程,主要由主程序、CAN中断服务程序、UART中断服务程序、定时器中断服务程序、信息接收机存储程序组成。
系统上电后MCU的主程序首先进行初始化工作,包括对时钟初始化、定时器初始化、SD卡初始化、CAN初始化、UART初始化等。然后读取编码盘上的地址码以及SD卡内存储的配置信息,根据配置信息MCU对其他外设进行初始化。系统采用CAN通信实现上位机和下位机的数据传输,MCU通过串口中断接收USB接口芯片上传的数据并解码,然后将扫码枪数据、温湿度值、报警等信息通过CAN总线进行上传。同时,上位机不断查询下位机通信,下位机超过1s无应答,则判定为下位机通信丢失。软件主程序流程图如图7所示。
图7 软件主程序流程图
系统对温湿度较为敏感,所以设置定时器为0.3秒溢出一次,来读取DHT11传感器的温湿度值并判断是否超限。该传感器的一帧数据由5Byte组成,即一次完整的数据传输为40bit,数据格式为:8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验和。其中,校验和数据为前四个字节相加。
读取温湿度数据时,首先对DHT11发送复位信号,根据时序图MCU需要延时 20~40μs读取DH11T的回应信号,若数据线为低电平,则说明DHT11发送了响应信号。给主机发送响应信号后,DHT11再把数据线拉高,准备发送数据。每一bit数据都以低电平(12~14μs)开始,然后拉高数据线。“0”“1”信号以高电平的持续时间来区分:“0”信号的高电平持续 26~28μs,“1”信号的高电平持续116~118μs。数据读取程序如下:
依据工业现场使用环境,提出并实现了一种切实可行的设备故障信息采集、存储及上传解决方案。所实现的分布式故障信息采集处理系统综合使用了STM32F103处理器,USB扫码枪获,SD卡存储数据并和CAN总线,使之协调配合,实现了设计初衷。系统符合工业生产现场的实际使用要求,可靠性高,稳定性强,具有一定的实用价值。