검색 전체 메뉴
PDF
맨 위로
OA 학술지
NMEA2000 프로토콜을 적용한 선박 모니터링 시스템 설계 및 구현 Design and Implementation of NMEA2000 Protocol Application for Marine Monitoring System
  • 비영리 CC BY-NC
  • 비영리 CC BY-NC
ABSTRACT

최근 선박용 전자, 통신 장비들이 다양하고 복잡해짐에 따라 새로운 통신 프로토콜을 적용하기 위한 많은 연구가 진행되고 있다. 그중에서도 CAN(Controller Area Network)통신 프로토콜을 기반으로 하는 NMEA(National Marine Electronics Association)2000 프로토콜은 대표적인 차세대 선박용 프로토콜로 표준화와 더불어 선박에 적용되고 있다. NMEA2000은 선박에서 사용되는 다양한 데이터들을 다른 전자장비로 통신하기 위한 표준으로 네트워크 관리를 위한 서버가 필요 없는 멀티마스터의 실시간 제어 네트워크이다. 본 연구에서는 NMEA 2000 기반의 선박 센서용 프로토콜 변환 알고리즘의 구현과 NMEA2000/CAN/ Ethernet/RS232 등의 데이터 포맷 변환 및 NMEA2000 기반 전용 케이블을 고려한 아날로그 데이터 모듈의 개발을 목표로 한다. 본 연구에서 NMEA2000 핵심 기술의 개발과 적용으로 다양한 통신 프로토콜을 지원함으로써 사용자 기반의 데이터 모니터링 시스템을 설계하고 구현하였다.


Recently, due to the variety and complexity of marine electronics communication devices, much research has been done to adopt the novel communication protocol. Among them, NMEA2000 protocol, is adopted as standardized protocol to the next generation ship. In this paper, we design and implement the conversion algorithm for sensor protocol based on NMEA2000, and analog data module which convert data format between NMEA2000, CAN, Ethernet, RS232. The present study was designed to implement user-based data monitoring system by supporting various communication protocols through the development and application of key technologies through NMEA2000.

KEYWORD
엔엠이에이2000 , 컨버터 , 게이트웨이 , 피지엔 , 캔
  • Ⅰ. 서 론

    현재 선박의 대형화와 자동화의 도입에 따라 선박내의 전자장비의 수요가 크게 증가하고 있다[1]. 특히 이들 선박의 전자장비들은 상호 인터페이스의 증가로 기존 통신에 주로 사용되는 NMEA0183 프로토콜 등으로는 증가하는 데이터와 물리적인 케이블의 복잡성 등의 문제를 해결하기에는 역부족이어서 새로운 프로토콜의 필요성이 대두 되었다[2].

    최근 선박에서 사용되는 모든 센서 장비들은 NMEA 2000 통신 프로토콜을 적용하여 장비들의 통합 운영 및 자동화를 위한 P2P방식의 네트워크로 구성되고 있다[3]. 또한 차세대 선박 네트워크 표준으로 채택된 NMEA 2000 프로토콜에서는 선박내의 다양한 센서 데이터들을 포함하여 모든 상황에 대한 알람 정보 및 긴급신호 정보 등에 대한 대책도 마련되어야 한다.

    본 논문에서는 차세대 선박 네트워크의 표준 통신 규격인 NMEA 2000 네트워크의 특징 및 구성과 이를 적용한 엔진 센서 모니터링을 위한 컨버터 및 게이트웨이를 설계 및 구현하고 이들 데이터의 효율적 변환을 위한 알고리즘의 구현을 통해 사용자 기반의 모니터링 시스템을 구성하여 그 성능을 테스트하였다.

    Ⅱ. NMEA2000과 CAN 프로토콜

       2.1. NMEA2000 프로토콜 개요

    NMEA 2000 프로토콜은 선박 내에서 설치된 엔진, 기상센서, 속도계, GPS 등 다양한 입·출력 장치간의 연결을 지원하는 통신망 기술로서 버스방식, 실시간 데이터 전송 및 케넥터/케이블 등의 규격화를 통해 성능과 편의성을 추구하는 통신 규격이다. 또한 물리계층에는 ISO 11898 CAN 을 사용하여 버스 충돌을 방지하고 실시간 데이터 전송이 가능하도록 하고 있으며, 데이터링크계층은 ISO 11783-3, 네트워크 관리는 ISO 11783-5를 사용하고 있다[4-6].

    또한 NMEA 2000 프로토콜은 각종 선박 장비간의 실시간 데이터 통신을 위한 표준으로 CAN (Controller Area Network)에서 기반한 네트워크 구조를 가지고 있으며, PGN (Parameter Group Number)을 기반으로 하는 데이터 포맷을 정의하고 있다[7].

    전송속도가 4,800bps인 기존의 NMEA 0183에 비해 NMEA 2000은 250kbps를 유지하기 때문에 높은 전송속도를 보장하며 양방향 다중 송수신이 가능하기 때문에 데이터 충돌을 회피할 수 있다. 또한 정상적으로 동작하는 네트워크에 연결되어 있는 한 장비가 고장이 나도 전체 네트워크가 멈추지 않는 특징 때문에 많은 선박 기자재 분야에서 NMEA 2000을 채택하고 이를 이용한 제품이 상용화 되고 있다[8].

       2.2. CAN 통신 개요

    CAN 통신은 초기에 자동차 산업분야에 적용하기 위해 고안된 시리얼 통신 네트워크로서, 근래에 와서는 선박 등 산업 전반에 걸쳐 폭 넓게 적용되고 있다.

    임베디드 시스템에서 일반적으로 사용되는 CAN 버스는 마이크로 컨트롤러 사이에서 통신망을 형성하며, 2가닥의 꼬임선으로 연결되어 반이중 통신 방식으로 짧은 메시지를 사용하는 고속 응용 시스템에 적당하다. 또한 외부의 영향 등에 강인성을 가져 통신 에러율을 최소화 하여 높은 신뢰성을 가지고 있다. 이론상으로는 2032 개의 서로 다른 디바이스를 하나의 네트워크 상에 연결하여 통신을 수행할 수 있으나 CAN Transceiver의 한계로 인해 110개까지의 Node를 연결하여 사용할 수 있도록 설계되었다. 통신 속도는 실시간 제어가 가능한 1Mbps의 고속 통신을 제공하고 심각한 노이즈 환경에 적합하도록 에러 검출 및 에러 보정 기능이 있다.

    대부분의 CAN 2.0A Controller는 오직 표준 CAN 포맷 방식의 메시지만 전송 및 수신이 가능하며 확장 CAN 포맷 방식(CAN 2.0B)의 메시지를 수신 하더라도 그 데이터는 무시해 버린다. CAN 2.0B Controller는 양쪽 모두의 메시지 포맷 송수신이 가능하다. 그림1은 확장형 CAN2.0프레임 구조도이다.

       2.3. NMEA2000 프로토콜 구조

    NMEA 2000 프로토콜은 CAN을 기반으로 하고 있어서 CAN의 특성을 따른다. CAN 1.0A와 2.0A는 기본 ID포맷을 사용하고, NMEA 2000에서는 CAN 2.0B를 채택하여 확장 ID포맷을 사용한다. 두 형식의 큰 차이점은 중재필드(Arbitration field)의 크기 차이로 확장 포맷이 32비트로 기본 포맷보다 18비트가 더 크다. CAN 메시지 프레임의 중재 필드 32비트 중에서 29비트를 NMEA 식별자(Identifier)로 사용하며, 이중 18비트를 PGN으로 사용한다[9].

    그림 2는 CAN 확장 ID 포맷의 메시지 프레임과 NMEA 2000 프로토콜의 ID의 구조를 나타낸 것이다. NMEA 2000 프로토콜은 총 29비트인 식별자로 Priority, EDP(Extended Data Page), DP(Data Page), PF(PGN Format), PS(PGN Specific), SA(Source Address)로 구분하여 사용하고, 이중에서 EDP, DP, PF, PS를 활용하여 PGN을 구성한다. PGN은 각 파라미터 그룹을 식별하는 8비트나 16비트의 숫자로 NMEA 0183 프로토콜에서 3개 문자로 이루어진 문장 식별자와 비슷한 형태이다. NMEA 2000 프로토콜 정의에 따라 PGN에 의해 식별된 파라미터 그룹(PG)은 네트워크의 모든 주소로 방송되기도 하고 특정 주소로 직접 데이터를 전송하기 위해 사용할 수도 있다. 이를 통해 네트워크에서 발생하는 여러 정보들을 교환하고 장비간의 요구, 요청 및 응답 등에 사용된다[10].

    Ⅲ. 시스템 설계 및 구현

    NMEA 2000 프로토콜 기반 통합 모니터링 시스템의 구성은 NMEA 2000 기반 센서용 아날로그 데이터 모듈과 CAN to Ethernet 게이트웨이를 이용한 모니터링 시스템으로 구성되어 있다. 게이트웨이는 32bit Cortex M3를 사용하여 서버측으로 고속 데이터를 실시간 멀티 태스크 처리가 가능하며, 이더넷 W5100 칩을 사용하여 최대 25Mbps 네트워크 성능을 낼 수 있다. 향후 Wi-Fi 및 Bluetooth 칩을 사용하여 무선 네트워크에 대한 실험을 할 수 있도록 인터페이스 설계를 완료하였다. 엔진 모니터링을 위한 아날로그 데이터 모듈은 저가형 32bit Cortex M3를 사용하여 아날로그 입력 mA, mV, PT100 을 12bit A/D 변환하여 디지털 데이터를 게이트웨이로 전송한다. NMEA 2000에서 Engine Parameters는 Rapid Update(PGN 127488)와 Dynamic(PGN 127489) 및 Static(PGN 127498)등이 있다[11,12]. 본 논문에서는 Engine Parameters를 Dynamic으로 우선 구현하였다. Dynamic은 500ms 주기로 데이터를 전송하는 방식을 사용하고 있다. 향후 과제로는 PGN# 127488 Engine Parameters(Rapid update)와 Protocol PGNs 스택을 구현하여 엔진 모니터링 시스템을 구축할 예정이다. 그림 3은 본 논문에서 제안하는 NMEA 2000 기반의 엔진 모니터링 시스템의 구성을 나타내는 블록도이다. 현장 엔진 센서로부터 전압(mA), 전류(mV), 저항(R)의 아날로그 데이터를 디지털로 변환하는 컨버터와 CAN to Ethernet으로 변환하는 게이트웨이를 통해 모니터링 시스템을 구성하게 된다.

    그림 4는 본 논문에서 설계 및 구현한 게이트웨이와 아날로그 데이터 모듈(mA to CAN, mV to CAN, R to CAN)이다. 왼쪽 그림이 CAN to Ethernet 게이트웨이이고 오른쪽은 아날로그 데이터 모듈인 컨버터(전압, 전류, 저항)이다. 표 1은 본 논문에서 구현한 NMEA 2000 Parameter Group Numbers(PGNs)의 Periodic Data PGNs(PGN # 127489)는 엔진에서 모니터링 되어진 데이트를 500 msec 주기로 게이트웨이로 전송하고 있으며, Response to Request PGNs(PGN # 126464 PGN #126996, PGN # 126998)는 서버에서 현재 PGN 및 제품정보에 대한 요구 신호를 엔진 모니터링 장비로 전송했을 때 응답정보를 나타낸다.

    [표 1.] 엔진 모니터링 시스템 구현을 위한 PGN 리스트

    label

    엔진 모니터링 시스템 구현을 위한 PGN 리스트

    [표 2.] 엔진 모니터링 시스템 구현을 위한 PGN 프레임 리스트

    label

    엔진 모니터링 시스템 구현을 위한 PGN 프레임 리스트

    Ⅳ. 시험 및 검증

    선박 엔진 모니터링 시스템 구현을 위하여 4개의 아날로그 데이터 모듈(PT100, mA[2EA], mV)와 1개의 게이트웨이(CAN to Ethernet)로 구성하고 PC 서버 기반 모니터링 시스템을 구현하였으며 그림 5는 시스템 구축 및 테스트 환경을 보여주고 있다.

    본 논문에서는 NMEA 2000 규격의 케이블과 단자대를 사용하여 네트워크 통신 실험을 하였다.

    그림 6은 실제 PGN 127489에 대한 데이터 검증을 위한 Raw 데이터를 수신하여 CAN 2.0b 소프트웨어 아날라이저로 분석한 결과를 나타내었다. 게이트웨이는 CAN ID를 수신하여 특정 PGN을 프로세싱 할 수 있도록 ID 필터링 알고리즘을 구성하였다. 또한 그림 7은 개별 프레임에 대한 Data는 프레임을 구분하는 카운터 값을 수신하여 특정 모듈의 아날로그 데이터를 구별할 수 있도록 하였다.

    그림 8은 엔진의 주기적인 데이터를 확인할 수 있도록 500m[sec] 마다 CAN 데이터 신호를 분석한 결과로 모듈별로 4 Frame Data가 500msec로 전송되고 있음을 확인하였다.

    선박 엔진을 모니터링 할 수 있는 N2000-DP 소프트웨어 모듈을 개발하여 실시간 CAN Raw데이터와 엔진의 상태를 모니터링 할 수 있도록 Labview 2013 소프트웨어로 제작하였다. 본 소프트웨어는 확장이 용이한 플랫폼으로 주기적인 엔진 데이터 뿐만 아니라, 향후 탱크 및 배터리, 제너레이터 등의 데이터를 모니터링 할 수 있도록 설계 되어 있다.

    시스템 테스트를 위한 통신방식은 TCP/IP로 하였으며 통신속도는 10~100Mbps로, 전송주기는 500 msec 로 테스트를 실시하였다. 그림9는 N2000-DP Engine Monitoring System의 CAN Raw Data의 디스플레이 화면이고, 그림10은 2000-DP Engine Monitoring System의 온도, 압력 등의 실제 데이터 값들의 보여주는 메인 화면이다.

    Ⅴ. 결 론

    본 논문에서는 차세대 선박 네트워크의 표준인 NMEA 2000 프로토콜의 특징 및 구성과 이 표준을 적용한 아날로그 데이터 모듈 및 게이트웨이를 설계 및 구현하고 실험을 통해 실제 PGN # 127489의 CAN ID, CAN Data, CAN Update Timing을 분석하였다. 또한 N2000-DP 소프트웨어 모듈을 개발하여 실시간 CAN Raw데이터와 엔진의 상태를 모니터링 할 수 있는 모니터링 시스템을 개발하였다.

    이 연구에 이어서 추가적으로 진행하여야할 내용으로는 PGN# 127488 Engine Parameters(Rapid update)의 추가 스택 개발과 실험을 계획하고 있으며, 탱크 및 배터리, 제너레이터 모듈 설계와 PGN 스택을 추가 구성하여 시스템을 구축해 나갈 예정이다. 또한 엔진 모니터링 뿐만 아니라 다양한 장치로부터 올라오는 데이터를 실시간으로 처리할 수 있도록 알고리즘을 확장해 나갈 예정이다.

참고문헌
  • 1. Kim C.Y., Lee S. M., Lee I.G. 2014 “A Study of NMEA 2000 Protocol Application for Marine Engine Monitoring System” [KIICE Conference] Vol.18 P.553-556 google
  • 2. 12-21 May 2004. IMO Maritime Safety Committee 78th session google
  • 3. 2010 http://www.lowrance.com/products/Marine/LowranceNET-Marine-Networking-System google
  • 4. Lee K. Y. 2009 “Ship's internal communications international standardization trends,” [TTA Journal] P.45-51 google
  • 5. Yu Y. H. 2009 “NMEA and NMEA 2000 communication protocol standard trends” [TTA Journal] P.52-57 google
  • 6. Yu Y. H. 2009 “Standrd ship's network domestic technical trends,” [TTA Journal] Vol.133 P.116-121 google
  • 7. 2004 NMEA 2000 Standard for Serial-Data Networking of Marine Electronic Devices, Version 1.200 google
  • 8. Griffin N. 2008 “NMEA 2000, Coming On Strong” [MarineElectronics Journal.] Vol.31 P.31-33 google
  • 9. 2004 “NMEA2000 standard for serial-data networking of marine electronic devices”, ver 1.2 google
  • 10. 2009 Appendix B.1-PGN Table, ver 1. 210 google
  • 11. 2004 NMEA 2000. STANDARD FOR SERIAL-DATA NET WORKING OF MARINE ELECTRONIC DEVICES Dain Document ver.1.2 google
  • 12. Park D.H 2011 “A Study on implementation of NMEA2000 based integrated gateway using FPGA,” [J. KSME] Vol.35 P.247-287 google
이미지 / 테이블
  • [ 그림 1. ]  확장 CAN 2.0B 프레임 구조
    확장 CAN 2.0B 프레임 구조
  • [ 그림 2. ]  CAN 메시지 프레임과 NMEA 2000 식별자 구성도
    CAN 메시지 프레임과 NMEA 2000 식별자 구성도
  • [ 그림 3. ]  NMEA 2000 기반 엔진 모니터링 시스템 블록도
    NMEA 2000 기반 엔진 모니터링 시스템 블록도
  • [ 그림 4. ]  NMEA 2000 기반 아날로그 데이터 모듈 및 게이트웨이
    NMEA 2000 기반 아날로그 데이터 모듈 및 게이트웨이
  • [ 표 1. ]  엔진 모니터링 시스템 구현을 위한 PGN 리스트
    엔진 모니터링 시스템 구현을 위한 PGN 리스트
  • [ 표 2. ]  엔진 모니터링 시스템 구현을 위한 PGN 프레임 리스트
    엔진 모니터링 시스템 구현을 위한 PGN 프레임 리스트
  • [ 그림 5. ]  엔진 모니터링 시스템 테스트 환경
    엔진 모니터링 시스템 테스트 환경
  • [ 그림 6. ]  Engine Parameters Dynamic PGN # 127489의 CAN ID 분석
    Engine Parameters Dynamic PGN # 127489의 CAN ID 분석
  • [ 그림 7. ]  Engine Parameters Dynamic PGN # 127489의 CAN Data 분석
    Engine Parameters Dynamic PGN # 127489의 CAN Data 분석
  • [ 그림 8. ]  Engine Parameters Dynamic PGN # 127489의 CAN Update Timing 분석
    Engine Parameters Dynamic PGN # 127489의 CAN Update Timing 분석
  • [ 그림 9. ]  CAN 원시 데이터 표시 화면
    CAN 원시 데이터 표시 화면
  • [ 그림 10. ]  NMEA 2000 프로토콜 적용 엔진 모니터링 시스템
    NMEA 2000 프로토콜 적용 엔진 모니터링 시스템
(우)06579 서울시 서초구 반포대로 201(반포동)
Tel. 02-537-6389 | Fax. 02-590-0571 | 문의 : oak2014@korea.kr
Copyright(c) National Library of Korea. All rights reserved.