Development of engine room monitoring system complied with IEC 61162-3 international standards for ship’s network
International network standards for SOLAS ship are composed of instrument network that controls and monitors machine in real time, shipboard control network that controls and monitors system through computer by human and telecommunication network that connects ship and shore. This paper describes development of stack for instrument network protocol complied with NMEA 2000 that is IEC 61162-3 international standards for SOLAS ship and also that of engine room monitoring system using the developed stack. Developed engine room monitoring system is certified by NMEA according to standards that require to pass about 1,600 test procedures.
초록
SOLAS 선박표준 네트워크는 기계시스템 간 실시간 제어감시가 필요한 제어계측 네트워크와 운용자가 컴퓨터 모니터를 통하여 기계를 제어감시 하는 선박제어네트워크 및 외부와의 무선통신 네트워크로 구성되어 있다. 본 논문은 실시간 제어감시가 요구되는 제어계측네트워크로서 국제표준화 된 IEC 61162-3 (NMEA2000 네트워크)에 적합한 프로토콜 스택을 개발하고, 개발된 프로토콜 스택을 사용하여 기관실 모니터링시스템을 개발하였다. 개발된 기관실모니터링시스템을 NMEA에서 제공한 공식인증시험 툴을 사용하여 표준에서 요구하는 항목에 따라 약 1600여 가지의 인증시험과정을 통과하여 인증을 득하였으며 이에 관하여 기술한다.
Keywords:
IEC 61162-3 standard, Certified NMEA 2000 protocol stack, engine room monitoring system complied with IEC 61162-3, IEC 61162-3 표준, NMEA 2000 프로토콜 인증스택, IEC 61162-3 선박네트워크 국제표준 기관실 모니터링시스템1. 서 론
IMO e-navigation 구현계획이 구체화되어 감에 따라 IEC에서는 선박 정보를 통합하기 위하여 선박 네트워크 표준작업을 진행하고 있다. 2011년 선박제어계층의 네트워크표준인 IEC 61162-450이 출판됨에 따라 선박 네트워크표준화는 일단락되었으며 개별적인 항해통신장비의 표준화 작업이 진행되고 있다. 국내에서도 프로토콜변환 게이트웨이, FPGA에 의한 구현 등 NMEA 2000에 관한 연구[1]-[4]는 점차 활발해지고 있다. 본 연구에서는 NMEA 2000 표준으로 알려진 IEC 61162-3에 적합한 선박표준네트워크 프로토콜을 분석하고 표준에 준하는 프로토콜 스택의 구조와 프로토콜 구현에 관하여 연구한다.
또 개발된 프로토콜 스택을 이용하여 선박기관실 모니터링시스템을 개발하고 NMEA에서 제공한 공식인증시험 툴에 의한 인증시험에 관하여 기술한다. 인증시험을 통과하기 위하여 구현하는 장비에 따라 다소 차이가 있으나 약 1600여개의 인증시험과정을 모두 통과하여야 한다. 인증시험은 인증 시험기에 의해 자동적으로 행하여지며 각 시험절차의 방법에 따라 수행하면 시험의 통과와 실패가 표시된다. 추후 NMEA 2000 프로토콜에 적합한 장비개발을 위하여 스택의 구조와 인증시험절차 및 인증시험방법에 관하여 자세히 기술한다.
2. NMEA 2000 표준
2.1 표준 일반
NMEA 2000은 미국 운수성이 ISIT(Intergrated Shipboard Information Technology)라고 하는 프로젝트를 수행하면서 40개 기관이 5년간 연구개발하고 12개 제조사가 USCG(United State Coast Guard)의 감독 하에 테스트를 수행하여 개발한 선박 실시간 네트워크의 표준프로토콜이다. 이 프로토콜은 ISO 11898 –1로 국제표준화 되어 있는 CAN 2.0B을 물리계층으로 하고 있으며, Data link layer의 LLC는 ISO 11783-3, Network management layer는 ISO 11783-5를 준용하고 응용계층으로 NMEA 2000 프로토콜 데이터베이스를 가지는 구조로 되어 있다. 이 프로토콜은 250 kBPS의 전송속도, 전송거리 200m, Multi-talker, Multi-listener, Multi-server, 네트워크 PnP기능을 가지는 실시간 제어네트워크 프로토콜이다[5]-[8]. 또한 이들은 Figure 1 NMEA 2000 표준의 구성도에 표시한 바와 같이 미국자동차협회의 SAE J 1939 –21, -81을 동시에 참조하고 있다.
CAN 2.0B의 ID(Identifier)는 11비트 ID와 29비트 ID 두 가지가 있으며, NMEA 2000프로토콜에서는 29비트 ID를 사용한다. Figure 2는 CAN 2.0B의 데이터 포맷이다.
CAN이 비교적 낮은 전송율임에도 불구하고 실시간 제어네트워크로 사용되는 이유는 충돌이 발생할 경우에는 충돌을 감지하여 중재함으로서 전송이 끈기지 않고 계속되기 때문이다. 충돌을 감지하고 중재하는 기간은 Figure 2에서 11비트와 18비트로 구분되어 있는 ID 데이터가 전송되는 기간 동안이다. 또한 비트 1또는 비트 0을 일정기간 동안 같은 비트를 전송하게 되면 비트간격의 동기가 틀어지게 되므로 반대 비트를 끼워 넣는 작업 즉 bit stuffing을 하게 되는데 CAN은 프레이임 시작부터 CRC까지 bit stuffing을 하게 된다.
NMEA 2000에서는 정보의 단위로 PGN을 사용한다. PGN은 29비트 ID로부터 구해진다. Figure 3은 PGN과 29비트 ID와의 관계를 나타낸다.
NMEA 2000의 EDP는 모두 0이며 DP(data page)는 0페이지와 1페이지가 있다. PF(protocol format)의 값에 따라 PDU1과 PDU2로 나누어지고 PDU1의 경우에는 PS가 목적지주소(DA)가 되고 PDU2의 경우에는 PS가 GE(group extension)이 된다. PGN은 EDP, DP, PF, PS로 구성되는 3바이트 정보이다. PDU1일 때는 PS값을 0으로 하여 PGN을 구성한다. NMEA 2000은 클래스 1과 클래스 2로 나누고 클래스 1은 하나의 백본, 클래스 2는 두 개의 백본으로 구성하여 이중화되어 있다. 또한 레벨 A는 모든 기능을, 레벨 B는 최소기능을 가지는 장치로 각각이 구현하여야 할 기능은 Table 1에 나타내었다. PGN 59904는 ISO request로서 데이터길이를 나타내는 DLC(data length code)가 유일하게 3으로 3바이트의 데이터 PGN이다. 즉 PGN 59904의 데이터로 60928을 넣어 특정주소 또는 전체주소(DA가 255)로 보내면 해당 주소의 장비 또는 전체 장비는 자신의 속성을 나타내는 NAME이라고 하는 PGN 60928의 데이터베이스에 있는 정보를 보내어야 한다. NMEA 2000에서 패킷의 종류는 CAN 8바이트 데이터 한 프레임으로 구성되는 싱글 패킷, 223바이트까지 연속하여 CAN프레임을 전송하는 패스트패킷, 1278바이트까지 전송프로토콜을 사용하여 전송하는 멀티패킷이 있다.
2.2 필수 구현 PGN
Table 1에서 레벨 A와 B 모두가 구현해야 하는 PGN은 NMEA 2000 장비가 네트워크에 접속되기 위한 기본적인 PGN이다. 그 외 PGN은 레벨A에서만 요구되는 것으로 전송프로토콜을 이용한 멀티 패킷전송 PGN 60416, 60160과 PGN의 데이터 필드를 지정하여 세부적으로 정보를 요청, 명령하는 PGN 126208 및 장비가 보내거나 받을 수 있는 정보의 리스트 PGN 126464이다.
PGN 60416은 전송프로토콜을 사용하여 멀티패킷을 전송할 때 사용되는 핸드 쉐이킹 PGN이고 PGN 60160은 전송프로토콜로 데이터를 전송할 때 사용하는 PGN이다.
PGN 126208은 PGN 59904와 같이 요구 PGN이지만, 정보의 필드를 세부적으로 정하여 명령, 요구 및 승인할 때 사용하는 PGN으로 요구하는 필드번호와 데이터의 수가 정해지지 않고 임의로 지정됨으로 이를 해석하여 응답해야 함으로 구현이 매우 까다롭다.
장비의 고유기능에 관한 PGN은 추가로 구현하여야 한다. 즉 레벨 A, GNSS장비라면 Table 1에 나타낸 PGN 모두와 GNSS에 관련된 PGN 129029(GNSS position data)을 포함하여 수개의 PGN을 구현하여야 한다.
2.3 네트워크 소스 주소요청
NMEA 2000 프로토콜이 네트워크 PnP가 될 수 있는 것은 네트워크에 전원이 인가되면 자기주소를 포함하여 자기 속성정보 NAME를 PGN 60928로 전송하여 네트워크 내에서 유일한 소스주소가 자동적으로 확정되는 기능을 가지고 있기 때문이다. 이러한 과정을 주소요청과정(address request procedure)라 한다. Figure 4는 주소요청과정의 일부를 나타내고 Table 2는 주소관리 메시지를 나타낸다.
Figure 4에서 네트워크에 전원이 인가되면 장비는 POST(power on self test)를 완료하고 소스주소 X로 주소요청 PGN 60928을 전송한다. 250ms동안 기다려 네트워크로 부터 아무런 응답이 없으면 소스주소 X를 가진 장비가 네트워크에 없다는 것이므로 소스주소 X를 장비의 자기주소로 하여 일상정보를 전송한다.
Figure 5는 주소경쟁이 있는 경우의 예로서 ECU A의 POST 가 미리 종료하여 주소요청을 하였으나 ECU B의 POST가 끝나지 않아 요청을 받아들이지 못하고 POST후에 ECU B가 소스주소 X PGN 60928로 주소요청을 하였다. ECU A는 PGN 60928을 수신하여 자기의 우선순위가 높음을 알고 다시 소스주소 X PGN 60928로 주소요청 하였다. ECU B는 NAME으로 우선순위를 검사하여 자기의 우선순위가 낮음을 알고 소스주소를 Y로 변경하여 PGN 60928로 주소요청을 하였다. 250ms 기다린 후에 ECU B는 일상의 정보를 전송할 것이다. 이와 같이 NMEA 2000 표준장비는 사용할 수 있는 주소 공간 전범위에 거쳐 우선순위에 따라 자기주소를 확정함으로서 네트워크 내에서 유일한 자기주소를 확보한다. Table 3은 NAME필드의 상세로서 우선순위결정에 사용되며 작은 값의 우선순위가 높다.
2.4 패킷의 처리
NMEA 2000인증을 득하기 위하여서는 다음과 같은 5개의 패킷을 동시에 처리할 수 있어야 한다.
- 하나의 싱글 프레임 패킷 메시지
- 두 개의 패스트 패킷 메시지
- 하나의 멀티 패킷 방송 메시지
- 하나의 멀티 패킷 전송프로토콜 메시지
Table 3에서와 같이 NMEA 2000에서는 8바이트데이터를 모두 정보로 사용하기 위하여 비트단위로 정보가 표현된다. 따라서 수신하여 데이터베이스의 자료구조에 따라 파싱하여 정보를 재구성하여야 한다.
Table 4는 패스트 패킷의 구조이다. 전송단위는 CAN 프레임 8바이트 패킷이므로 패스트 패킷의 첫 데이터바이트는 패킷카운터 3비트와 프레임 카운터 5비트로 사용된다. 패스트 패킷의 패킷카운터는 0-7까지의 라운드 카운터로 동일한 소스주소에서 동일한 PGN이 패스트 패킷으로 전송될 때 앞선 정보와 뒤에 온 정보를 구분하기 위한 것이며 프레임 카운터에 의해 전송된 프레임을 조합하여 완전한 정보를 만들어야 한다.
NMEA 2000 데이터베이스에는 PGN의 정보 업데이트시간과 패킷의 종류, 목적지 주소의 형태가 정의되어 있는데 싱글프레임으로 정의되지 않은 메시지 패킷은 모두 패스트 패킷으로 전송하여야 한다.
또한 패스트 패킷의 프레임간격은 100ms보다 짧은 시간 간격으로 전송되어야 하며 최종 수신 프레임으로부터 750ms까지는 연속 메시지로 간주한다.
3. NMEA 2000 프로토콜 스택의 구현
3.1 H/W의 구현
앞서 기술한 바와 같이 H/W가 CAN 2.0B제어기를 가지고 있으면 CPU레벨에서 CAN관련 필터를 구현하거나 기타 CAN제어기의 물리계층에서 수행하여야 할 많은 기능을 포함하고 있기 때문에 구현도 쉽고 주변장치를 별도로 설계할 필요가 없으므로 선정에 고려하는 것이 좋다. 본 연구에서는 STM 32 Cortex M3프로세서를 사용하였다.
엔진룸모니터링시스템의 사양은
- CPU : STM 32F ARM 32bit 프로세서
- A/D 변환기 : 12비트 변환기 12 채널
- D/I : 16채널 D/O 릴레이 출력 16채널
- CAN : 2 채널
DI는 모두 Opto TR로 격리시켰으며, DO는 모두 릴레이출력으로 하여 외부 접점의 이상이 CPU보드에 영향을 주지 않도록 하였다. Photo 1은 개발된 엔진룸모니터링시스템의 외부전면과 CPU보드사진이다.
3.2 S/W 구현
소프트웨어는 앞서 기술한 5종류의 메시지 패킷이 동시에 처리할 수 있도록 작성되어야 한다. Timer ISR(interrupt service routine)는 내부 지연시간, 패스트 패킷 전송시간, 패스트 패킷 연속시간 등 다양한 시간을 제어해야 하므로 Figure 6과 같이 time tick에 의해 해당 변수를 설정하고 해제한다. 각 루틴에서는 해당 time tick 변수의 설정 값을 확인하여 시간을 제어하도록 되어 있다.
Figure 7은 NMEA 2000 스택 전체의 소프트웨어 흐름도이다.
NMEA 2000 PGN은 주소요청, 응답, 요청, 프로토콜 기능이 PGN으로 구별되므로 스택은 PGN기능별로 구분하여 수행하도록 설계하였다. 네트워크에 전원이 인가되면 POST 실행과 주변장치를 설정하고 각종 변수를 초기화한 후, 처음으로 주소요청을 위한 루틴을 수행하여 송신요청을 한다.
2.3에서 설명한 주소요청과정이 완료되면 장치는 자기 주소를 확보하고 장치의 고유 임무수행을 위한 플래그 변수 DutyTxFlgSet를 설정한 후 플래그설정에 따라 장치의 임무 PGN을 송신한다. 수신 인터럽트 루틴에 의해 수신 플래그 CAN_RxRdy가 설정되면 수신된 PGN을 분석하여 주소요청, 응답PGN, 요구PGN, 프로토콜PGN 인지를 구분하여 각각의 루틴을 수행하고 무한 루틴을 반복한다.
수신인터럽트루틴은 CAN 수신 인터럽트가 하드웨어에 의해 발생하면 수행하는 루틴으로 단순히 수신 플래그변수 CAN_RxRdy를 세트하고 인터럽트루틴을 빠져 나온다. CAN 2.0B제어기 하드웨어에 의해 수신된 ID와 수신패킷이 메모리에 저장되고 저장된 번지를 리턴하면 IDAnalysis()루틴에서 수신된 정보를 수신 구조체에 저장하고 분석한 후 수신플래그변수 CAN_RxRdy를 리셋한다. 분석된 정보에 따라 요청에 응답하기 위한 정보를 구성하고 송신한다.
Figure 8은 주소요청루틴의 흐름도이다. 처음주소요청을 한 후 250ms 기다려도 주소요청에 대한 응답이 없으면 주소충돌이 없이 주소요청이 된 것이므로 주소요청을 완료한다. 응답이 있으면 응답이 PGN 59904, 60928 또는 명령 PGN 65240인지를 구분하여 수행한다. 수신 PGN이 59904이면 데이터필드에 있는 PGN을 구분하여 PGN 60928이면 자기 NAME으로 PGN 60928 패킷을 만들어 송신한다. 수신 PGN이 60928이면 수신주소와 NAME을 부속 테이블(association table)에 저장한다. 부속테이블은 네트워크에 존재하는 장비의 소스주소와 NAME을 맵핑하는 테이블로서 네트워크에 존재하는 장비를 파악하는데 사용한다.
Figure 9의 Duty127449TxPkg(PGN,DA,SA)루틴은 장비의 임무를 수행하기 위한 루틴으로 PGN 127449는 기관실 각종장비의 동적정보를 가지는 PGN이다. 기관실장비의 동적데이터는 하드웨어의 AD변환기, DA변환기, DI입력에 의해 정보를 실시간으로 수집하고 필요한 경우 DO를 통하여 출력한다. 제어나 경보에 관한 정보는 실시간으로 바로 수행하고 정보는 이 루틴에 의해 네트워크에 제공하게 된다. 만약 장비의 임무가 달라지면 이 부분 만 장비의 임무에 따라 루틴을 만들면 되므로 전체 코드의 재사용이 가능하도록 설계되어 있다.
4. NMEA 2000 인증시험
NMEA 인증시험은 공식인증 툴에 의해 자동으로 시험한다. 공식인증 툴은 인증 툴 하드웨어와 소프트웨어로 구성되어 있으며 NMEA에 의해 제공된 인증 툴을 사용한다. Photo 2는 인증 툴의 하드웨어 사진이다.
인증 툴의 CAN 1포트와 DUT(device under test)의 NMEA2000 포트와 연결하고 인증소프트웨어를 구동한다.
DUT의 하드웨어는 일반적으로 IEC 60945에 적합하도록 설계하여야 하고 또 별도의 환경시험을 거쳐 확인하여야 한다. 인증시험은 NMEA2000 표준의 부록 C 에 따라 시험한다.
Figure 10은 인증시험결과의 일부이다. 각 항목에 대한 시험방법과 시험에 따른 결과가 표시되고 통과와 실패가 표기된다. 시험결과는 암호화된 파일과 텍스트파일 두 개로 저장되며 암호화된 파일은 시험에 모두 통과되면 NMEA에 송부하여 인증검사를 받아 인증절차를 수행하고 텍스트파일은 실패하였을 경우 어느 항목에 문제가 있는지 파악하여 수정에 도움을 준다.
본 연구결과 기관실모니터링시스템으로 NMEA로부터 인증을 득하였으며 NMEA2000 표준에 적합한 스택을 개발하였다. 이 스택을 활용하면 Figure 9의 Dutyxx PGNTxPkg 부분만 개발하려는 장비의 임무에 맞는 PGN을 처리하도록 수정하면 NMEA 2000 표준에 적합한 임의의 장비를 용이하게 개발할 수 있다.
Figure 11은 인증되었음을 공고한 NMEA 웹 사이트의 스크린 캡처이다.
5. 결 론
본 연구의 결과로 IEC 61162-3 으로 SOLAS 선박의 국제표준네트워크로 표준화된 NMEA 2000 프로토콜에 적합한 프로토콜 스택을 개발하고 기관실모니터링시스템에 적용하여 인증시험을 거쳐 인증을 득하였다.
최근 IMO는 2014년 까지 e-navigation 이행계획을 완료하도록 계획되어 있다. 이행계획이 완료되면 2018년부터 실행하는 것에 대비하여 관련 국제기구에서는 표준의 제정과 정비작업 중에 있다. 이에 대비하여 선박의 모든 정보를 통합하기 위하여 IEC에서는 IEC 61162 시리즈로 선박네트워크에 관한 표준의 정비와 제정을 모두 완료하였다.
본 연구의 결과로 IEC 61162-3표준에 적합한 선박의 실시간 정보통합을 위한 프로토콜 인증 스택 원천기술을 확보하였으며 이를 활용하면 표준에 적합한 장비를 빠른 시간 내에 개발할 수 있다. 최근 국내 몇몇 IT기업에서는 본 연구결과의 기술지원으로 NMEA 2000 표준에 적합한 서비스 제품을 개발하고 인증 시험단계에 있다. 앞으로는 본 기술을 활용하거나 기술지원에 의해 NMEA 2000 표준 적합 제품의 개발이 가속화될 것으로 기대된다.
References
- C. U. Lee, D. Y. Kim, Y. H. Yu, and O. K. Shin, "Development of embedded vessel monitoring system using NMEA2000", Journal of the Korean Society of Marine Engineering, 33(5), p746-755, (2009, Jul). [https://doi.org/10.5916/jkosme.2009.33.5.746]
- K. Y. Kim, D. H. Park, J. B. Shim, and Y. H. Yu, "A study of marine network NMEA2000 for e-navigation", Journal of the Korean Society of Marine Engineering, 34(1), p133-140, (2010, Jan). [https://doi.org/10.5916/jkosme.2010.34.1.133]
- D. H. Park, J. T. Hong, K. Y. Kim, and Y. H. Yu, "Implementation of SOC for NMEA2000 ship standard network protocol using FPGA", Journal of the Korean Society of Marine Engineering, 34(1), p125-132, (2010, Jan). [https://doi.org/10.5916/jkosme.2010.34.1.125]
- J. H. Lee, Jang N. J., Lee J. W., Park H. C., Lee J. S., and Jang K. W., "Conversion and storage of NMEA 2000 PGN data into IEC 61162-4 tag format", Journal of the Korean Society of Marine Engineering, 34(4), p522-531, (2010, May). [https://doi.org/10.5916/jkosme.2010.34.4.522]
- NMEA 2000 Standard for Serial-data Networking of Marine Electronic Devices Ver 1.200, Oct, 1), (2004, NMEA.
- ISO 11898-1 Road vehicles-Controller area network (CAN) Part 1: Data Link Layer and Physical Signalling, ISO International Standards.
- ISO 11783-3 Tractors and Machinery for Agriculture and Forestry-Serial Control and Communications Data Network –Part 5 Data Link Layer, Oct, 1), (2007, ISO.
- ISO 11783-5 Tractors and Machinery for Agriculture and Forestry-Serial Control and Communications Data Network –Part 5 Network Management, (2001, May, 1), ISO.