周 平 ,溫林儒 ,李志俊
(1.武漢南華工業(yè)設備工程股份有限公司,武漢 430023;2.武漢理工大學 自動化學院,武漢 430070)
艦船狀態(tài)監(jiān)控系統(tǒng)是現(xiàn)代艦船自動化的一個重要標志,可分為機艙內監(jiān)控和機艙外監(jiān)控。主要用于實時監(jiān)控船舶設備在不同工況下運行參數(shù)(溫度、壓力、氣體濃度等)是否正常,目前艦船監(jiān)控模式基本為有線式的集中監(jiān)控,利用現(xiàn)場總線連接傳感器網(wǎng)絡節(jié)點進行監(jiān)測和控制,從而有效地解決船舶空間狹小不便布線、不易維護的困難,降低了施工人員的工作強度以及工程生產(chǎn)成本[1-3]。
船舶集中監(jiān)控平臺分上層網(wǎng)、下層網(wǎng)。上層網(wǎng)一般采用以太網(wǎng),下層網(wǎng)一般采用現(xiàn)場總線網(wǎng),從而實現(xiàn)船舶集成平臺管理系統(tǒng)總線網(wǎng)之間的信息交換、實時監(jiān)測、控制和報警功能。船舶集成平臺管理系統(tǒng)的上層網(wǎng)可通過艦船用網(wǎng)絡轉換控制器轉換后給下層網(wǎng)發(fā)布現(xiàn)場控制命令,直接對下層網(wǎng)絡的控制器進行遠程操縱(或進行參數(shù)設置);下層網(wǎng)絡的分類信息經(jīng)過以太網(wǎng)關傳遞給上層網(wǎng)進行顯示、存儲等操作[4-6]。
目前在艦船控制網(wǎng)絡中上層網(wǎng)一般采用TCP/IP協(xié)議的以太網(wǎng),而下層網(wǎng)則是基于Profibus-DP或CAN的現(xiàn)場總線結構,兩層網(wǎng)絡間的數(shù)據(jù)傳輸不兼容,所以該網(wǎng)絡控制器的設計核心就是實現(xiàn)現(xiàn)場總線的數(shù)據(jù)與以太網(wǎng)Socket數(shù)據(jù)幀的相互轉化。本次設計采用PIC18F4250單片機作為微處理器,它可以方便地實現(xiàn)以太網(wǎng)絡的通信控制功能,從而簡化了系統(tǒng)結構[7-8]。
本文介紹如何應用西門子公司的智能化接口芯片 SPC3(SIMENS Profibus controler 3)進行網(wǎng)絡接口設計。SPC3集成了完整的DP協(xié)議,其中包括方式寄存器、狀態(tài)寄存器、中斷寄存器、各種緩沖器指針和緩沖區(qū)等,傳輸速率可達到12 Mb/s。根據(jù)監(jiān)控系統(tǒng)的要求,網(wǎng)絡轉換控制器的硬件主要由微處理器、擴展存儲器、看門狗、Profibus-DP接口和以太網(wǎng)接口等部分組成,系統(tǒng)的硬件框圖如圖1所示。
圖1 網(wǎng)絡控制轉換器硬件Fig.1 Structure frame of network controller
微處理器控制模塊是硬件設計的核心,也是硬件運作的核心,負責對通信芯片的控制、存儲芯片的讀寫、看門狗的協(xié)調,保證整個系統(tǒng)正常工作。由專用集成電路ASIC(applications specific integrated cxircuit)芯片 SPC3(SIEMENS Profibus controler 3)及它后面的RS485接口組成Profibus接口模塊,完成了SPC3物理層和數(shù)據(jù)鏈路層的功能,它能支持10種服務,這些服務大部分由SPC3自動完成,SPC3芯片經(jīng)光電隔離后通過RS485驅動電路與Profibus-DP總線連接。
由于Profibus-DP是一種高速的現(xiàn)場總線,其最大的傳輸速率可以達到12 MHz,使用專用芯片SPC3可以和多種MCU連接。選擇MicroChip公司的PIC18F4520單片機作為系統(tǒng)的控制核心,它采用精簡指令集計算機(RISC)體系結構和哈佛(Harvard)雙總線結構,數(shù)據(jù)總線和指令傳輸總線完全分開,以避免出現(xiàn)典型的復雜指令集計算機(CISC)體系結構中經(jīng)常出現(xiàn)的處理瓶頸問題。設計時,外部中斷0接SPC3中斷信號,在中斷服務程序中處理SPC3接收到的各種報文(參數(shù)化、組態(tài)、數(shù)據(jù)交換、全局控制、發(fā)送診斷和改變從站地址等報文);定時器/計數(shù)器2用于RS485通信的波特率發(fā)生器,并設置串行通信中斷為最高優(yōu)先級中斷[9]。
網(wǎng)絡轉換控制器用PIC18F4520單片機作為處理器單元管理通信事務,通過PORTA端口和PORTD端口對SPC3進行初始化和參數(shù)設置,SPC3本身帶有地址鎖存器所以PORTD端口可以不經(jīng)鎖存器直接與SPC3連接,這樣低8位地址線和8位數(shù)據(jù)線共用,而單片機的高5位地址線與SPC3的AB0~AB4數(shù)據(jù)線相連。單片機將SPC3內部1.5 K RAM作為自己外部RAM,統(tǒng)一分配地址空間,并通過雙端口完成對SPC3的初始化和數(shù)據(jù)交換[10]。
為提高系統(tǒng)的抗干擾性,SPC3內部線路必須與物理接口在電氣上隔離。輸入、輸出通道上的電氣隔離采用的是6N137高速光耦。選用SN75ALS176作為收發(fā)器,通信速率可達6 Mb/s。RS485總線驅動器一側與9針D型插座相連,另一側通過光耦與SPC3相連。其中SPC3的系統(tǒng)時鐘頻率為48 MHz,需外接晶振以達到SPC3的時鐘頻率。SPC3協(xié)議芯片則完成數(shù)據(jù)的轉換和收發(fā)功能,通過UART接口經(jīng)過光電耦合隔離來連接Profibus-DP總線。SPC3與單片機PIC18F4520的接口電路如圖2所示[11]。
圖2 單片機PIC18F4520與SPC3的接口電路Fig.2 Interface of MCU and SPC3
Profibus-DP滿足RS485的標準,即發(fā)送電平為1.5 V~5 V,負載阻抗為54 Ω,允許任何驅動器。SPC3的串行口協(xié)議芯片通過請求發(fā)送信號(TRS)、發(fā)送數(shù)據(jù)信號(TXD)、接收數(shù)據(jù)信號(RXD)與電流隔離接口驅動器連接,發(fā)送器將并行數(shù)據(jù)結構轉換為串行數(shù)據(jù)流。TRS為SPC3的請求發(fā)送信號,其最終接到收發(fā)器的輸出使能端。RXD和TXD分別為串行接收和發(fā)送端口。其中SPC3中的3根信號TRS、TXD、RXD經(jīng)UART口,把并行數(shù)據(jù)流變換為串行數(shù)據(jù)流和將串行數(shù)據(jù)流變?yōu)椴⑿袛?shù)據(jù)流,并經(jīng)光耦進行電流隔離接入RS485總線驅動器中,控制總線數(shù)據(jù)互相交換。異步的UART序列采用1個起始位(邏輯為0)和1個停止位(邏輯為1),中間為9位信息位(8個數(shù)據(jù)位和1個偶校驗位),低位數(shù)據(jù)先發(fā)送。發(fā)送器包含1個發(fā)送緩沖器和1個移位寄存器。
Profibus-DP網(wǎng)絡接口在物理上與RS485網(wǎng)絡接口相近。在Profibus-DP總線驅動和光耦隔離的通信部分,Profibus-DP總線驅動一側與Profibus-DP總線連接,另一側通過光耦與SPC3連接,采用光耦主要是為了消除來自總線的干擾。
為了保證數(shù)據(jù)傳輸?shù)膶崟r性,設計要求進行數(shù)據(jù)通信的現(xiàn)場總線接口能以12 Mb/s的速率進行數(shù)據(jù)傳輸,而SPC3滿足這種要求。在本文中,系統(tǒng)的總線接口部分的驅動器采用SN65ALS1176。另外,總線接口采用12 Mb/s的光耦6N137隔離接口設備到總線的干擾。光耦6N137與SN65ALS1176相連的部分,及其與SPC3相連的部分采用不同的5 V電源供電,防止相互之間的串擾。RS485與Profibus-DP接口電路如圖3所示[7]。
圖3 Profibus-DP總線接口電路Fig.3 Interface of Profibus-DP
根據(jù)RS485規(guī)范和DP規(guī)范,9針定義為Pin 3-B 線、Pin 4-請求發(fā)送(RTS)、Pin 5-地線(M5)、Pin 6-正電壓位(floating P5)、Pin 8-A 線,其余針腳空閑。在SPC3連線中,類似的引腳3接B線(RxD/TxD-P),引腳 4 接 RTS(請求發(fā)送),引腳 5 接地(DGND),引腳 6 接電源(5 V),引腳 8 接 A 線(RxD/TxD-N)。當信號在總線上傳輸時,如發(fā)生阻抗不連續(xù),將形成信號反射,導致傳輸信號畸變,因此在傳輸線的末端,需要加電阻來消除這種阻抗的不連續(xù),所加電阻的阻值應盡量接近傳輸線的特性阻抗。另外當總線上沒有站處于發(fā)射狀態(tài)時,發(fā)射器停止,處于高阻狀態(tài),在這種狀態(tài)下要使總線處于“1”,因此在Pin3上加1個上拉電阻,Pin8上加1個下拉電阻。
網(wǎng)絡轉換控制器的軟件主要包括微處理器初始化、Ethernet初始化、SPC3智能芯片的初始化及啟動、DP協(xié)議的解算、Ethernet協(xié)議的解算、此外還要對Profibus-DP總線上的節(jié)點進行診斷。主程序流程如圖4所示[11]。
圖4 主程序流程Fig.4 Flow chart of main program
Ethernet協(xié)議解算主要包括發(fā)送接收數(shù)據(jù)包的格式與發(fā)送接收數(shù)據(jù)包的過程。程序將要發(fā)送的數(shù)據(jù)包按指定格式寫入芯片并啟動發(fā)送命令,接口芯片會自動把數(shù)據(jù)包轉換成物理幀格式在物理信道上傳輸。反之,當收到物理信號后將其還原成數(shù)據(jù),按指定格式存放在芯片內存中以便MCU取用。網(wǎng)絡轉換控制器使用的是802.3 TCP/IP協(xié)議。
Profibus-DP協(xié)議解算主要提供用戶訪問SPC3寄存器的宏接口和進行變量定義的頭文件模塊;處理組態(tài)數(shù)據(jù)檢查、分配DP站參數(shù)和設定中斷事件的中斷程序模塊;根據(jù)組態(tài)數(shù)據(jù)計算輸入輸出數(shù)據(jù)長度,輔助緩沖區(qū)分配,緩沖區(qū)初始化,設置I/O數(shù)據(jù)長度,各緩沖區(qū)更新函數(shù)等外部函數(shù)模塊;用戶主程序模塊系統(tǒng)在軟件的設計上采用了SIEMENS公司提供的軟件包DPS2,使用戶的主要工作為用戶主程序的設計,主要集中在SPC3初始化、啟動、外部信號處理程序、DP站數(shù)據(jù)的發(fā)送、接收來自主站的數(shù)據(jù)以及診斷事務的處理部分的程序設計上,從而在縮短系統(tǒng)開發(fā)時間的同時,保證了DP站各種功能的實現(xiàn)和系統(tǒng)開發(fā)的可靠性。SPC3的初始化程序流程如圖5所示[12]。
圖5 SPC3初始化程序流程Fig.5 Initial flow chart of SPC3
為了解決艦船信息化過程中遇到的多總線、多網(wǎng)絡、多協(xié)議的困境,本文設計了能支持Profibus-DP協(xié)議的網(wǎng)絡轉換控制器。該網(wǎng)絡轉換控制器的設計采用性價比高的PIC18F4520單片機作為MCU,足以滿足信息處理所需的速度,與Profibus-DP接口控制芯片SPC3的數(shù)據(jù)線、地址線和控制信號線連接簡單,增強了系統(tǒng)硬件的穩(wěn)定性,系統(tǒng)結構簡單便于今后的維護和改進。該網(wǎng)絡轉換控制器已經(jīng)運用于多艘艦船上,結合相應的應用軟件實現(xiàn)了艦船的信息集成與監(jiān)控,可以實現(xiàn)集控室對各分控制系統(tǒng)的在線操作,并實時采集監(jiān)測各遠端設備運行狀況,實現(xiàn)了船舶信息管理和自動化監(jiān)控一體化。
[1]王磊,何晉秋.基于通用化的船舶監(jiān)控裝置設計[J].艦船電子工程,2015,35(1):147-150.
[2]竇文博,王衛(wèi)東.基于Zigbee的船舶狀態(tài)監(jiān)控系統(tǒng)的設計與實現(xiàn)[J].電子設計工程,2014,22(22):127-130.
[3]朱兵,劉維亭,朱志宇,等.網(wǎng)絡型船舶機艙自動化及報警系統(tǒng)的設計[J].船海工程,2005(6):43-46.
[4]李志俊,楊佳,沈克宇,等.基于C8051的船用以太網(wǎng)關的設計[J].湖南工業(yè)大學學報,2009,23(5):81-83.
[5]尚作斌,林葉錦,楊金保.船舶機艙自動化系統(tǒng)的發(fā)展趨勢研究[J].世界海運,2001,24(4):38-40.
[6]林建軍.基于Profibus-DP總線的船舶監(jiān)控系統(tǒng)初探[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]丁小偉,王衛(wèi)國,李芃.基于Profibus-DP協(xié)議的智能斷路器系統(tǒng)設計[J].低壓電器,2010(24):39-42.
[10]馮朔.基于SPC3的嵌入式Profibus-DP智能從站接口的設計及測試[J].電腦知識與技術,2010,6(10):2518-2519.
[11]張穎超,侯瑞剛.采用SPC3的智能型Profibus-DP通信接口開發(fā)[J].通信技術,2009,10(42):225-226.
[12]江平,趙輝,孫麗梅.Profibus-DP智能從站的設計與實現(xiàn)[J].天津理工大學學報,2007,23(1):53-55.