浅析基于国产嵌入式软硬件的电站操作板设计

2021-09-10 02:58曹希彧张丹瑞
中国设备工程 2021年16期
关键词:数据通信指示灯线程

曹希彧,张丹瑞

(上海船舶运输科学研究所,上海 200135)

船舶自动化电站是船舶电力系统中非常重要的组成部分,相较陆地电网具有运行工况复杂、负荷变化较多等特点,因此船舶自动化电站中各模块须有较强的抗电磁干扰能力,保证船舶航行中的稳定性。同时,船舶自动化电站中数据的交互日渐增多,常规船舶自动化电站中采用的现场总线技术可能会导致通信失败和系统瘫痪,无法满足高速通信的要求。综上所述,提高船舶电站通信的即时性和稳定性显得尤为重要。本文旨在设计一款硬件上基于国产SCM621主控芯片,软件上基于国产RT-Thread嵌入式操作系统的国产化电站操作板。验证实验结果表明,新研制的船舶电站操作板能够满足大型船舶电站抗干扰能力强、实时通信稳定的要求,提高了船舶电站重要模块的国产化率。

1 需求分析

电站操作板作为船舶控制的重要设备,主要负责船舶电网的发电机组、岸电,跨接,辅助机组等断路器以及分闸、解列的半自动手动遥控控制。

除了控制功能,电站操作板也必须配备显示功能,通过LED指示灯显示机组、断路器和岸电的当前状态。为了能达到在船舶中较好的控制和显示效果,电站操作板必须拥有即时性、稳定性以及可靠性等特点。由于电站操作板安装于配电板面板,而配电板处在一个复杂恶劣的电磁环境,因此电站操作板需具有较强的抗电磁干扰能力,确保在航行过程中的运行稳定。

2 电站操作板硬件设计

电站操作板作为船舶电站管理系统中的核心组成部分,其稳定性与可靠性是船舶电站管理系统长期有效运行的先决条件。电站操作板电控部分主要由3个部分组成,包括主控核心模块,通信模块以及按键显示模块。

核心嵌入式微控制器运行电站操作功能应用软件,必须具备强大的运算能力和扩展性。选用ARM Cortex-M4内核国产嵌入式处理器SCM621芯片为核心处理器,该处理器在国家电网中已经得到了广泛的应用,其在复杂电磁干扰环境中的抗干扰能力已经得到了充分验证。SCM621芯片具备256KB的SRAM和1MB的Flash,主频高达150MHz,在静态功耗仅600uA的同时集成了丰富的外设,通过CAN,SPI,I2C等内总线与外设芯片进行参数配置和数据交互。

通信模块负责电站操作板与船舶电站管理系统中的机组控制器和能量管理器的通信,包括现场总线通信模块以及以太网通信模块。以太网模块核心硬件选用内部硬件集成TCP/IP协议栈的百兆以太网MAC+PHY一体化CH395芯片实现,同时配合以太网隔离变压器可有效抑制外部干扰,提高通信质量。在与外部计算机连接时通过网线直连,无需通过路由器转换,降低了嵌入式项目的开发难度。

按键显示模块负责电站操作板发令以及显示功能,选用ZLG7290作为该模块主要芯片,实现多路的按键数据采集以及LED指示灯驱动,同时芯片内部硬件实现了矩阵键盘扫描、按键消抖和指示灯调光等功能,保证了电站操作板命令发送的稳定可靠和对不同光照条件的强适应性,图1为电站操作板原理框图。

图1 电站操作板原理框图

3 电站操作板软件设计

3.1 软件功能设计

电站操作板的软件基于RT-Thread嵌入式操作系统实现,RT-Thread是一款国产开源的抢占式多任务微内核操作系统,底层代码采用C语言面向对象编程,内核简洁、高效、稳定且易于移植,适用于多种CPU处理器架构,如ARM,RISC-V等,包含多种组件:GUI图形库、虚拟文件系统、TCP/IP协议栈,并且支持多款主流开发环境编译器。由于其运行稳定而被广泛应用于物联网、工业控制等多个行业。软件功能的实现采用数据结构和EEPROM存储参数相结合的方式,应用数据结构提高了软件的可维护性。软件通过拨码开关识别操作部位,EEPROM参数配置可适应电站系统的架构变化,快速响应船舶电站系统设计需求的变化。数据流图(DFD)如图2所示。

图2 电站操作板数据流图

3.2 主程序

主程序主要包括初始化模块,数据通信任务、命令发送任务、状态显示任务等。电站操作板上电后,对系统底层驱动、时钟、中断以及调度器进行初始化设置,包括对硬件底层驱动如GPIO、SPI、IIC等,读取的拨码开关状态并从EEPROM写入操作板相应标定数据,根据拨码结果配置电站操作板,完成CAN通信模块以及以太网模块的初始化工作,数据通信任务、命令发送任务以及状态显示任务也被初始化。

3.3 数据通信程序

新研电站操作板的通信包括CAN现场总线通信和工业以太网通信,数据通信任务主要包括:CAN报文处理线程与以太网报文处理线程,两个线程之间相互独立。

系统、外设、任务完成初始化后,进入数据通信任务等待接收报文,CAN报文和以太网UDP报文的处理根据其所属协议进入相应的报文处理线程。两者的主要功能都是由通信接口获取船舶电站能量管理系统内部的通信网络报文,解析报文的同时将数据更新到数据结构中对应的变量。

3.4 命令发送任务

命令发送任务是将按键作为控制系统的输入,当循环按键扫描函数采集到控制命令键的压按信号并且按键信号防抖函数判定信号稳定后,MCU将相应控制信息组装成命令报文发送至船舶电站能量管理系统。为了防止报文丢失,利用定时器设置间隔时间多次发送报文,连续三次发送未响应后取消发送。

3.5 状态显示任务

状态显示任务分为试灯显示线程以及正常显示线程,两个线程之间相互独立。按下试灯键后进入试灯显示线程,蜂鸣器在该线程中保持长鸣,松开试灯键结束试灯模式。

在正常显示模式下,LED指示灯显示当前电站操作板功能、所有断路器状态、发电机组状态以及分闸解列状态。当出现通信故障时,所有指示灯闪烁报警;当通信模块恢复工作后,所有指示灯回到正常显示模式。

4 结语

为初步测试电站操作板与机组控制器以及能量管理器之间的通信质量,采用VC++语言开发了一套运行于调试计算机的能量管理系统数据通信模拟软件,旨在较真实地模拟发电机组的起停、断路器合分以及合闸解列。该模拟软件通过记录调试计算机收发的所有报文,精确捕捉目的与结果不一致的错误,测试示意图如图3所示。

图3 电站操作板测试示意图

经过测试证明了新研制的电站操作板功能完善、实时通信稳定,能够被应用于某大型船舶的船舶电站系统中,在一定程度上提高了大型船舶电站系统核心设备的国产化率,为以后的研发项目提供了一定的参考价值。

猜你喜欢
数据通信指示灯线程
基于C#线程实验探究
基于国产化环境的线程池模型研究与实现
基于快牙平台实现全站仪与计算机的数据通信
监测系统接口数据通信方式
浅谈linux多线程协作
一种高效可靠的串行数据通信协议及处理算法
TCN实时协议栈过程数据通信研究
上海大众POLO充电指示灯点亮
美国邦纳 工业智能指示灯
2013年波罗车充电指示灯异常点亮