周 平 ,温林儒 ,李志俊
(1.武汉南华工业设备工程股份有限公司,武汉 430023;2.武汉理工大学 自动化学院,武汉 430070)
舰船状态监控系统是现代舰船自动化的一个重要标志,可分为机舱内监控和机舱外监控。主要用于实时监控船舶设备在不同工况下运行参数(温度、压力、气体浓度等)是否正常,目前舰船监控模式基本为有线式的集中监控,利用现场总线连接传感器网络节点进行监测和控制,从而有效地解决船舶空间狭小不便布线、不易维护的困难,降低了施工人员的工作强度以及工程生产成本[1-3]。
船舶集中监控平台分上层网、下层网。上层网一般采用以太网,下层网一般采用现场总线网,从而实现船舶集成平台管理系统总线网之间的信息交换、实时监测、控制和报警功能。船舶集成平台管理系统的上层网可通过舰船用网络转换控制器转换后给下层网发布现场控制命令,直接对下层网络的控制器进行远程操纵(或进行参数设置);下层网络的分类信息经过以太网关传递给上层网进行显示、存储等操作[4-6]。
目前在舰船控制网络中上层网一般采用TCP/IP协议的以太网,而下层网则是基于Profibus-DP或CAN的现场总线结构,两层网络间的数据传输不兼容,所以该网络控制器的设计核心就是实现现场总线的数据与以太网Socket数据帧的相互转化。本次设计采用PIC18F4250单片机作为微处理器,它可以方便地实现以太网络的通信控制功能,从而简化了系统结构[7-8]。
本文介绍如何应用西门子公司的智能化接口芯片 SPC3(SIMENS Profibus controler 3)进行网络接口设计。SPC3集成了完整的DP协议,其中包括方式寄存器、状态寄存器、中断寄存器、各种缓冲器指针和缓冲区等,传输速率可达到12 Mb/s。根据监控系统的要求,网络转换控制器的硬件主要由微处理器、扩展存储器、看门狗、Profibus-DP接口和以太网接口等部分组成,系统的硬件框图如图1所示。
图1 网络控制转换器硬件Fig.1 Structure frame of network controller
微处理器控制模块是硬件设计的核心,也是硬件运作的核心,负责对通信芯片的控制、存储芯片的读写、看门狗的协调,保证整个系统正常工作。由专用集成电路ASIC(applications specific integrated cxircuit)芯片 SPC3(SIEMENS Profibus controler 3)及它后面的RS485接口组成Profibus接口模块,完成了SPC3物理层和数据链路层的功能,它能支持10种服务,这些服务大部分由SPC3自动完成,SPC3芯片经光电隔离后通过RS485驱动电路与Profibus-DP总线连接。
由于Profibus-DP是一种高速的现场总线,其最大的传输速率可以达到12 MHz,使用专用芯片SPC3可以和多种MCU连接。选择MicroChip公司的PIC18F4520单片机作为系统的控制核心,它采用精简指令集计算机(RISC)体系结构和哈佛(Harvard)双总线结构,数据总线和指令传输总线完全分开,以避免出现典型的复杂指令集计算机(CISC)体系结构中经常出现的处理瓶颈问题。设计时,外部中断0接SPC3中断信号,在中断服务程序中处理SPC3接收到的各种报文(参数化、组态、数据交换、全局控制、发送诊断和改变从站地址等报文);定时器/计数器2用于RS485通信的波特率发生器,并设置串行通信中断为最高优先级中断[9]。
网络转换控制器用PIC18F4520单片机作为处理器单元管理通信事务,通过PORTA端口和PORTD端口对SPC3进行初始化和参数设置,SPC3本身带有地址锁存器所以PORTD端口可以不经锁存器直接与SPC3连接,这样低8位地址线和8位数据线共用,而单片机的高5位地址线与SPC3的AB0~AB4数据线相连。单片机将SPC3内部1.5 K RAM作为自己外部RAM,统一分配地址空间,并通过双端口完成对SPC3的初始化和数据交换[10]。
为提高系统的抗干扰性,SPC3内部线路必须与物理接口在电气上隔离。输入、输出通道上的电气隔离采用的是6N137高速光耦。选用SN75ALS176作为收发器,通信速率可达6 Mb/s。RS485总线驱动器一侧与9针D型插座相连,另一侧通过光耦与SPC3相连。其中SPC3的系统时钟频率为48 MHz,需外接晶振以达到SPC3的时钟频率。SPC3协议芯片则完成数据的转换和收发功能,通过UART接口经过光电耦合隔离来连接Profibus-DP总线。SPC3与单片机PIC18F4520的接口电路如图2所示[11]。
图2 单片机PIC18F4520与SPC3的接口电路Fig.2 Interface of MCU and SPC3
Profibus-DP满足RS485的标准,即发送电平为1.5 V~5 V,负载阻抗为54 Ω,允许任何驱动器。SPC3的串行口协议芯片通过请求发送信号(TRS)、发送数据信号(TXD)、接收数据信号(RXD)与电流隔离接口驱动器连接,发送器将并行数据结构转换为串行数据流。TRS为SPC3的请求发送信号,其最终接到收发器的输出使能端。RXD和TXD分别为串行接收和发送端口。其中SPC3中的3根信号TRS、TXD、RXD经UART口,把并行数据流变换为串行数据流和将串行数据流变为并行数据流,并经光耦进行电流隔离接入RS485总线驱动器中,控制总线数据互相交换。异步的UART序列采用1个起始位(逻辑为0)和1个停止位(逻辑为1),中间为9位信息位(8个数据位和1个偶校验位),低位数据先发送。发送器包含1个发送缓冲器和1个移位寄存器。
Profibus-DP网络接口在物理上与RS485网络接口相近。在Profibus-DP总线驱动和光耦隔离的通信部分,Profibus-DP总线驱动一侧与Profibus-DP总线连接,另一侧通过光耦与SPC3连接,采用光耦主要是为了消除来自总线的干扰。
为了保证数据传输的实时性,设计要求进行数据通信的现场总线接口能以12 Mb/s的速率进行数据传输,而SPC3满足这种要求。在本文中,系统的总线接口部分的驱动器采用SN65ALS1176。另外,总线接口采用12 Mb/s的光耦6N137隔离接口设备到总线的干扰。光耦6N137与SN65ALS1176相连的部分,及其与SPC3相连的部分采用不同的5 V电源供电,防止相互之间的串扰。RS485与Profibus-DP接口电路如图3所示[7]。
图3 Profibus-DP总线接口电路Fig.3 Interface of Profibus-DP
根据RS485规范和DP规范,9针定义为Pin 3-B 线、Pin 4-请求发送(RTS)、Pin 5-地线(M5)、Pin 6-正电压位(floating P5)、Pin 8-A 线,其余针脚空闲。在SPC3连线中,类似的引脚3接B线(RxD/TxD-P),引脚 4 接 RTS(请求发送),引脚 5 接地(DGND),引脚 6 接电源(5 V),引脚 8 接 A 线(RxD/TxD-N)。当信号在总线上传输时,如发生阻抗不连续,将形成信号反射,导致传输信号畸变,因此在传输线的末端,需要加电阻来消除这种阻抗的不连续,所加电阻的阻值应尽量接近传输线的特性阻抗。另外当总线上没有站处于发射状态时,发射器停止,处于高阻状态,在这种状态下要使总线处于“1”,因此在Pin3上加1个上拉电阻,Pin8上加1个下拉电阻。
网络转换控制器的软件主要包括微处理器初始化、Ethernet初始化、SPC3智能芯片的初始化及启动、DP协议的解算、Ethernet协议的解算、此外还要对Profibus-DP总线上的节点进行诊断。主程序流程如图4所示[11]。
图4 主程序流程Fig.4 Flow chart of main program
Ethernet协议解算主要包括发送接收数据包的格式与发送接收数据包的过程。程序将要发送的数据包按指定格式写入芯片并启动发送命令,接口芯片会自动把数据包转换成物理帧格式在物理信道上传输。反之,当收到物理信号后将其还原成数据,按指定格式存放在芯片内存中以便MCU取用。网络转换控制器使用的是802.3 TCP/IP协议。
Profibus-DP协议解算主要提供用户访问SPC3寄存器的宏接口和进行变量定义的头文件模块;处理组态数据检查、分配DP站参数和设定中断事件的中断程序模块;根据组态数据计算输入输出数据长度,辅助缓冲区分配,缓冲区初始化,设置I/O数据长度,各缓冲区更新函数等外部函数模块;用户主程序模块系统在软件的设计上采用了SIEMENS公司提供的软件包DPS2,使用户的主要工作为用户主程序的设计,主要集中在SPC3初始化、启动、外部信号处理程序、DP站数据的发送、接收来自主站的数据以及诊断事务的处理部分的程序设计上,从而在缩短系统开发时间的同时,保证了DP站各种功能的实现和系统开发的可靠性。SPC3的初始化程序流程如图5所示[12]。
图5 SPC3初始化程序流程Fig.5 Initial flow chart of SPC3
为了解决舰船信息化过程中遇到的多总线、多网络、多协议的困境,本文设计了能支持Profibus-DP协议的网络转换控制器。该网络转换控制器的设计采用性价比高的PIC18F4520单片机作为MCU,足以满足信息处理所需的速度,与Profibus-DP接口控制芯片SPC3的数据线、地址线和控制信号线连接简单,增强了系统硬件的稳定性,系统结构简单便于今后的维护和改进。该网络转换控制器已经运用于多艘舰船上,结合相应的应用软件实现了舰船的信息集成与监控,可以实现集控室对各分控制系统的在线操作,并实时采集监测各远端设备运行状况,实现了船舶信息管理和自动化监控一体化。
[1]王磊,何晋秋.基于通用化的船舶监控装置设计[J].舰船电子工程,2015,35(1):147-150.
[2]窦文博,王卫东.基于Zigbee的船舶状态监控系统的设计与实现[J].电子设计工程,2014,22(22):127-130.
[3]朱兵,刘维亭,朱志宇,等.网络型船舶机舱自动化及报警系统的设计[J].船海工程,2005(6):43-46.
[4]李志俊,杨佳,沈克宇,等.基于C8051的船用以太网关的设计[J].湖南工业大学学报,2009,23(5):81-83.
[5]尚作斌,林叶锦,杨金保.船舶机舱自动化系统的发展趋势研究[J].世界海运,2001,24(4):38-40.
[6]林建军.基于Profibus-DP总线的船舶监控系统初探[J].内江科技,2013(1):166-167.
[7]黄伟,蔡玉艳.Profibus-DP智能温度控制器从站设计[J].自动化与仪表,2008,23(10):12-16.
[8]Zhao Jue,Yang Shun.Design of Modbus-Profibus fieldbus bridge based on the STM32 and VPC3+C[C]//Proceedings of 2012 IEEE 3rd International Conference on Software Engineering and Service Science,2012:411-414.
[9]丁小伟,王卫国,李芃.基于Profibus-DP协议的智能断路器系统设计[J].低压电器,2010(24):39-42.
[10]冯朔.基于SPC3的嵌入式Profibus-DP智能从站接口的设计及测试[J].电脑知识与技术,2010,6(10):2518-2519.
[11]张颖超,侯瑞刚.采用SPC3的智能型Profibus-DP通信接口开发[J].通信技术,2009,10(42):225-226.
[12]江平,赵辉,孙丽梅.Profibus-DP智能从站的设计与实现[J].天津理工大学学报,2007,23(1):53-55.