Volume 16 Issue 1
Feb.  2021
Turn off MathJax
Article Contents

ZHONG W B, CHEN J, FENG Y B, et al. Improvement and optimization of NMEA2000 based on an autonomous and controllable platform[J]. Chinese Journal of Ship Research, 2021, 16(1): 143–150 doi:  10.19693/j.issn.1673-3185.01870
Citation: ZHONG W B, CHEN J, FENG Y B, et al. Improvement and optimization of NMEA2000 based on an autonomous and controllable platform[J]. Chinese Journal of Ship Research, 2021, 16(1): 143–150 doi:  10.19693/j.issn.1673-3185.01870

Improvement and optimization of NMEA2000 based on an autonomous and controllable platform

doi: 10.19693/j.issn.1673-3185.01870
  • Received Date: 2019-12-31
  • Rev Recd Date: 2020-02-18
  • Available Online: 2021-01-19
  • Publish Date: 2021-02-28
  •   Objectives  In order to expand the application of NMEA2000 communication protocol standard and optimize and improve its transmission efficiency, an NMEA2000 data acquisition and transmission system based on an autonomous and controllable platform is developed. Non-NMEA2000 devices can be connected to the NMEA2000-based network and improve the transmission efficiency.   Methods  The autonomous and controllable platform consists of a GD32F207 microcontroller and RT-Thread embedded real-time operating system. The protocol format conversion is accomplished by data mapping according to the original device protocol and NMEA2000 standards. Further, it uses unused identifier fields in the NMEA2000's data frames and a priority dynamic adjustment method to improve the transmission efficiency of NMEA2000-based network.  Results  The NMEA2000 board based on the platform achieves non-NMEA2000 device access. The optimized network's transmission efficiency is improved to some extent with the number of bytes transferred. The real-time and reliability are also improved.  Conclusions  The NMEA2000 data acquisition and transmission system based on the proposed platform has a variety of interfaces, can help non-NMEA2000 devices access the network. The data transmission efficiency, real-time operation and reliability can fulfil the needs of data transmission among shipborne devices.
  • [1] 祝能, 陈实, 蔡玉良, 等. 传感器数据在船舶数字化中的应用价值与挑战[J]. 中国造船, 2019, 60(3): 209–223. doi:  10.3969/j.issn.1000-4882.2019.03.022

    ZHU N, CHEN S, CAI Y L, et al. Application value and challenge of sensor data in digitization of ships[J]. Shipbuilding of China, 2019, 60(3): 209–223 (in Chinese). doi:  10.3969/j.issn.1000-4882.2019.03.022
    [2] 仲伟波, 罗炀, 卢道华, 等. 无人艇通讯导航控制系统设计与实现[J]. 中国造船, 2018, 59(1): 207–215. doi:  10.3969/j.issn.1000-4882.2018.01.020

    ZHONG W B, LUO Y, LU D H, et al. Design and implementation of communication navigation and control system for unmanned surface vehicle[J]. Shipbuilding of China, 2018, 59(1): 207–215 (in Chinese). doi:  10.3969/j.issn.1000-4882.2018.01.020
    [3] 赵蕊, 余琨, 郑文成, 等. 无人水下航行器分布式运动控制系统设计与仿真验证[J]. 中国舰船研究, 2014, 9(6): 92–99. doi:  10.3969/j.issn.1673-3185.2014.06.016

    ZHAO R, YU K, ZHENG W C, et al. Design and simulation of the distributed motion control system for unmanned underwater vehicles[J]. Chinese Journal of Ship Research, 2014, 9(6): 92–99 (in Chinese). doi:  10.3969/j.issn.1673-3185.2014.06.016
    [4] National Marine Electronics Association. Standard for serial-data networking of marine electronic devices: NMEA2000[S]. Amsterdam: National Marine Electronics Association, 2011: 13-15,35-37.
    [5] 刘成勇, 陈蜀喆, 许昌如. 基于NMEA2000协议的船舶集成网络系统研究[J]. 武汉理工大学学报(交通科学与工程版), 2010, 34(5): 973–977.

    LIU C Y, CHEN S Z, XU C R. Research of integrated network system on board based on NMEA2000 protocol[J]. Journal of Wuhan University of Technology (Transportation Science & Engineering), 2010, 34(5): 973–977 (in Chinese).
    [6] National Marine Electronics Association. Home of NMEA2000[EB/OL]. [2019-09-09]. https://www.milltechmarine.com/NMEA-2000_c_41.html.
    [7] 张丽英. 基于CAN总线的汽车节点优先级晋升调度设计与研究[D]. 沈阳: 沈阳理工大学, 2012.

    ZHANG L Y. Based on the automobile node point promotion's designing and researching of CAN bus[D]. Shenyang: Shenyang Ligong University, 2012 (in Chinese).
    [8] 蔡礼松, 余楚中. 基于CAN的船舶数据监控系统设计[J]. 中国造船, 2013, 54(3): 184–189. doi:  10.3969/j.issn.1000-4882.2013.03.023

    CAI L S, YU C Z. Design of ship monitor and control system based on CAN bus[J]. Shipbuilding of China, 2013, 54(3): 184–189 (in Chinese). doi:  10.3969/j.issn.1000-4882.2013.03.023
    [9] 孟瑶, 李晓娟, 关永, 等. 机器人关节通信总线系统的建模与验证[J]. 软件学报, 2018, 29(6): 1699–1715.

    MENG Y, LI X J, GUAN Y, et al. Modeling and verification for robot joint bus communication system[J]. Journal of Software, 2018, 29(6): 1699–1715 (in Chinese).
    [10] DAVIS R I, KOLLMANN S, POLLEX V, et al. Controller area network (CAN) schedulability analysis with FIFO queues[C]//Proceedings of the 23rd Euromicro Conference on Real-Time Systems. Porto: IEEE, 2011: 45-56.
    [11] 郝勃, 刘衍珩, 曲良东, 等. CAN网络的分组合并策略研究及实现[J]. 仪器仪表学报, 2012, 33(9): 2137–2143. doi:  10.3969/j.issn.0254-3087.2012.09.031

    HAO B, LIU Y H, QU L D, et al. Research and implementation of grouping-merging strategy for CAN networks[J]. Chinese Journal of Scientific Instrument, 2012, 33(9): 2137–2143 (in Chinese). doi:  10.3969/j.issn.0254-3087.2012.09.031
    [12] National Marine Electronics Association. NMEA2000 standard for serial-data networking of marine electronic devices (PGNs)[S]. Amsterdam: National Marine Electronics Association, 2014: 9–10.
  • 加载中
通讯作者: 陈斌, bchen63@163.com
  • 1. 

    沈阳化工大学材料科学与工程学院 沈阳 110142

  1. 本站搜索
  2. 百度学术搜索
  3. 万方数据库搜索
  4. CNKI搜索

Figures(10)  / Tables(6)

Article Metrics

Article views(26) PDF downloads(12) Cited by()

Proportional views
Related

Improvement and optimization of NMEA2000 based on an autonomous and controllable platform

doi: 10.19693/j.issn.1673-3185.01870

Abstract:   Objectives  In order to expand the application of NMEA2000 communication protocol standard and optimize and improve its transmission efficiency, an NMEA2000 data acquisition and transmission system based on an autonomous and controllable platform is developed. Non-NMEA2000 devices can be connected to the NMEA2000-based network and improve the transmission efficiency.   Methods  The autonomous and controllable platform consists of a GD32F207 microcontroller and RT-Thread embedded real-time operating system. The protocol format conversion is accomplished by data mapping according to the original device protocol and NMEA2000 standards. Further, it uses unused identifier fields in the NMEA2000's data frames and a priority dynamic adjustment method to improve the transmission efficiency of NMEA2000-based network.  Results  The NMEA2000 board based on the platform achieves non-NMEA2000 device access. The optimized network's transmission efficiency is improved to some extent with the number of bytes transferred. The real-time and reliability are also improved.  Conclusions  The NMEA2000 data acquisition and transmission system based on the proposed platform has a variety of interfaces, can help non-NMEA2000 devices access the network. The data transmission efficiency, real-time operation and reliability can fulfil the needs of data transmission among shipborne devices.

ZHONG W B, CHEN J, FENG Y B, et al. Improvement and optimization of NMEA2000 based on an autonomous and controllable platform[J]. Chinese Journal of Ship Research, 2021, 16(1): 143–150 doi:  10.19693/j.issn.1673-3185.01870
Citation: ZHONG W B, CHEN J, FENG Y B, et al. Improvement and optimization of NMEA2000 based on an autonomous and controllable platform[J]. Chinese Journal of Ship Research, 2021, 16(1): 143–150 doi:  10.19693/j.issn.1673-3185.01870
  • 随着信息技术和人工智能技术的快速发展,船上电子设备越来越多,船舶运行所需的数据也越来越多,这对船舶数据采集、处理与传输提出了更高的要求[1]。工业应用及其要求的多样性催生了种类繁多的现场工业总线,例如工业以太网国际标准IEC 61158,ISO 11898规范的控制器域网(CAN)总线以及各大自动化公司开发的可编程逻辑控制器(PLC)、分散控制系统(DCS)专用通信协议等[2]。目前,工业以太网协议和CAN网络在船舶及海工装备上得到了广泛应用[3]

    NMEA2000是美国国家海洋电子协会制定的标准化数据通信协议,在CAN的架构上采用ISO 11783-3和11783-5作为基础[4],定义了国际标准组织开放系统互连模型的相关层。NMEA2000作为一种广泛应用于连接船舶及其内部传感器和显示单元的即插即用通信标准[5],经过认证的设备连接到一个主干网上,不同设备之间可以相互通信。NMEA2000是一种基于CAN总线的应用层协议,以多主方式工作[6],网络上的任意节点在任意时刻都能向其他节点发送数据,网络上每个节点都有不同的优先级,在发送冲突时能够在总线上进行仲裁,且有可靠的检错机制[7]

    NMEA2000是目前应用较为广泛的船载设备网络协议,但国内对其关注不多,研究得也较少,重要原因之一是仅有经过认证的设备才能使用NMEA2000协议,因此极大地限制了其在船舶海工装备中的应用和推广。蔡礼松等[8]针对数据采集的可靠性和安全性要求高等特点,设计了一种基于CAN的远程数据监控系统,但传感器设备接口不一致,不便于数据采集。孟瑶等[9]将CAN总线应用到机器人通信系统中,针对传统方法运用UPPAAL工具对CAN总线进行建模分析,部署动态优先级对节点实时性进行改进;Davis等[10]对响应时间和CAN消息的最优优先级分配策略进行了分析,采取了先入先出(FIFO)队列和优先队列混合的调度方式,CAN总线的传输效率有所改善,但会对CAN的实时性造成一定的影响。

    为了进一步拓展NMEA2000协议的应用范围,提升传输效率和实时性、可靠性,在自主可控平台上完善优化NMEA2000协议,本文拟提出一个基于自主可控平台的方案,将非认证设备接入NMEA2000网络,同时利用标识符域提升多帧数据传输效率,改静态优先级为动态优先级,使基于自主可控平台完善优化后的NMEA2000网络的传输效率、实时性和可靠性能够满足船载设备间数据传输的需要。

    • NMEA2000作为基于CAN的应用层协议,继承了CAN的扩展帧结构[11]。NMEA2000协议中使用了29 bits标识符,对其中的21 bits进行了定义,以标识不同的船舶通信设备及船体信息和事件,同时对这些报文信息的优先级顺序也进行了定义。

      NMEA2000网络中所有需要传输的数据内容被定义为参数群的形式,并给出唯一标识符,称之为参数群编号(PGN)。PGN共有18 bits,由NMEA2000委员会根据传输数据的性质分配,遵照船舶设备属性和事件定义了156个参数组号。在每个NMEA2000协议定义的设备中,分别定义优先级、更新频率、数据长度等信息。在NMEA2000中保留位都为0,数据页位都为1 bit。数据页位为0的PGN由ISO 11783定义,共有6个,主要用于数据传输控制和说明[12]

      NMEA2000通过使用PGN来区分不同的数据内容,针对连接到网络中的各种设备,例如GPS系统、惯性导航系统、雷达和其他传感器设备,以及无人艇航向、舵角、航速等实时信息,都有相对应的PGN来表示。NMEA2000继承了CAN协议扩展帧的仲裁域定义格式,在29 bits的标识符字段中,包括了每个参数组号的优先级、保留位、数据页位和PGN。NMEA2000标识符域和数据域与CAN扩展帧格式存在如图1所示的对应关系。图中包括以下参数:CAN扩展帧格式包括帧起始位(SOF)、替代远程请求位(SRR)、识别符扩展位(IDE)、扩展标识符、远程请求发送位(RTR)、2位保留位(R1和R0)、数据长度(DLC)、数据域、循环冗余校验码(CRC)域、应答域(ACK field)和帧结束符(EOF)。

      Figure 1.  Relationship between NMEA2000 identifier and CAN extension frame

    • 将非认证设备接入NMEA2000网络,自主研发的数据采集转接板卡就是此设计中的桥梁。数据采集转接板卡主要负责平台控制系统数据的收集处理及平台所载数据格式的统一。考虑到外围设备的多样性,数据采集转接板卡有4个RS232/RS485串口,2路CAN接口和1个网络接口,并设计了SD卡用于保存关键数据,通信接口较为丰富。在国产嵌入式实时操作系统RT-Thread上进行软件开发,完成NMEA2000协议应用扩展和优化。系统设计中可根据功能需求采用单块或多块板卡级联的方式协同处理数据。为保证数据采集转换板卡(图2)电路的稳定性和可靠性,多个对外接口均采用防浪涌电路设计,以避免系统遭到过压脉冲造成损坏。

      Figure 2.  Adapter card for data acquisition

    • NMEA2000设备分为认证和未认证2大类。所谓认证设备是指其数据格式已在协议中定义,且设备已被官方认证,可以直接接入NMEA2000网络。未认证设备有2种情况:一种是其数据类型在NMEA2000中已定义,即有对应的PGN,但设备未经官方认证;另一种是其数据在协议中未被定义,设备也就不可能被官方认证。未认证设备不能直接接入NMEA2000网络,需要根据实际情况进行转接处理方可接入网络。

      NMEA2000数据格式包含参数群、数据域、数据类型、优先级等重要参数。GPS定位设备是最常用的装备之一,NEMA2000协议定义了GPS数据格式,如表1所示,表中hex为十六进制。但是并不是所有的GPS设备都已得到认证,已认证过的设备可以直接接入NMEA2000网络,而大量未被认证的设备就无法直接接入。

      报文含义
      129 025(0x1F801)PGN(hex)
      数据帧帧类型
      扩展帧帧格式
      0x09F8010029 bit ID标识符
      9F 1E 31 13 CA 3C 34 478字节数据
      低4字节纬度数据
      高4字节经度数据

      Table 1.  Data format of GPS in NMEA2000

      表1可见,GPS设备定义的PGN为129 025(0x1F801)。NMEA2000中帧类型有远程帧和数据帧2类,其他帧则由CAN硬件设置。远程帧用于信息请求,数据帧用于传输数据。如图1所示,当远程发送请求位(RTR)为1时,代表此帧为远程帧,当其为0时,代表此帧为数据帧。帧格式分为标准帧和扩展帧,NMEA2000协议的帧格式均为扩展帧。根据NMEA2000协议定义的GPS设备的优先级、保留位、数据页位和PGN可得其ID为0x09F80100。

      针对已定义但未经认证的设备,例如GPS设备,对其测量数据进行处理得到经、纬度等有效数据。根据NMEA2000协议,CAN数据域和PGN有效数据呈倒序排列形式,所以将其倒序排列,最后得到符合NMEA2000协议的数据。

    • 若数据类型没有定义,则其采集设备也不可能被认证,此时需要根据NMEA2000的数据帧格式自定义数据类型和结构。以激光测距传感器为例,由于激光测距传感器传输的数据较少,所以使用单帧传输方式即可。

      首先,通过读取激光测距传感器的数据,识别传感数据类型。然后,根据自定义NMEA2000协议接口配置进行排序,同时对名称、测量距离、测量频率等属性予以赋值,按照规定的顺序封装传感器数据。最后,按NMEA2000协议字节交换表将所得的十六进制有效数据倒序排列,并完成转换。封装数据分为2类:元数据和传感器数据。元数据即为PGN,代表传感器的类别,传感器数据即为采集的有效数据。标准化的数据封装共用统一的数据接口,数据采集板卡丰富的接口可以满足各类传感器的需求。表2为自定义NMEA2000激光测距设备协议。

      报文含义
      129 030(0x1F806)PGN(hex)
      数据帧帧类型
      扩展帧帧格式
      0x09F8060029 bit ID标识符
      01 40 1F 28 0A FF FF FF8字节数据
      第1字节序列ID
      第2~3字节测量频率
      第4~5字节与障碍物距离
      第6~8字节多余字节默认FF

      Table 2.  Custom laser ranging protocol of NMEA2000

      表2所示,自定义激光测距设备的PGN为129 030(0x1F806)。帧类型和帧格式分别为数据帧和扩展帧,29 bit的ID标识符为0x09F80600。定义激光测距设备每帧数据的第1字节为序列ID,第2~3字节为测量频率,第4~5字节为与障碍物的距离,第6~8字节未用到,默认为FF。

      针对未定义且未认证的设备,如激光测距传感器,对其测量数据进行处理得到测量频率和与障碍物距离等有效数据。根据NMEA2000协议,CAN数据域和PGN有效数据呈倒序排列形式,所以将其倒序排列,得到符合NMEA2000协议的数据。

    • NMEA2000在CAN架构上采用短帧结构,每帧数据域不大于8字节,因此,它有3种数据传输方式:单帧传输、ISO多包传输以及快速数据包传输。当数据帧不大于8字节时,采用单帧传输方式。快速数据包传输方式能够最大传输223字节的数据并且不需要ISO 11783规范中指定的帧间空间,传输效率更高。如果设备需要接收任何超过223字节的数据,则应采用ISO多包传输方式,但数据传输上限不超过1 785字节[4]表3为NMEA2000的3种传输方式的对比。

      传输方式字节数发送方式握手机制传输延时应用范围
      单帧传输不大于8目的地址仅由PGN定义运用于所有工业
      ISO多包传输不大于1 785以广播形式发送到某一设备传输同样数据量时比快速数据包耗时长运用于所有工业
      快速数据包传输不大于223目的地址仅由PGN定义无传输延时,传输速度快用于船舶新协议

      Table 3.  Transmission mode comparison of NMEA2000

      当NMEA2000报文采用ISO多包传输或快速数据包传输方式时,它将数据域的第1字节作为报文的序号,后7字节存放所传输的数据,由接收节点按照序号将原来的数据重新组合起来。尽管节点能够根据序列ID正确解析报文,但传输效率大大降低,原本8字节的数据域实际只传输了7 字节的有效数据。

      本文在NMEA2000协议的基础上,充分利用数据域进行改进。至于序列ID,则可利用NMEA2000未使用的标志符域进一步优化NMEA2000网络。在NMEA2000报文中,仲裁域是应用层根据自己的需求定义的。仲裁域的作用有2个:一是在总线冲突时对报文的优先级进行仲裁,二是仲裁域本身也是传输数据的一种方式。在NMEA2000协议中,应用层定义的PGN仅占用21 bit,而CAN的扩展帧有29 bit。在NMEA2000所使用的PGN中,由于同一ID发送的数据不大于1 785字节,即最多传输255帧数据。鉴于此,取NMEA2000数据帧的低8 bit作为多报文数据帧序号,用来表示发送报文每帧数据的组合顺序,便于NMEA2000网络按照序号将原来的数据组合成正确的报文。由此,在发送多帧的NMEA2000报文时,总线在收到节点数据后能根据每帧数据的ID和序号进行整合,形成一条新的NMEA2000报文,保证数据的完整性和正确性,提高了NMEA2000网络的传输效率。

      在不改变基本CAN帧前提下,采用NMEA2000的扩展帧格式,充分利用NMEA2000未定义的标识符域,重新定义扩展帧的ID字段,保证了和传统CAN系统的良好兼容性。新NMEA2000标识符域如表4所示。

      对比图1表4,将NMEA2000标识符低8 bit用于多报文数据序号位,将原先传输序号的字节位置用来传输数据,原本传输7个有效字节的数据域现在传输了8个有效字节,提升了传输效率。当传输总字节数不同时,传输效率的提升程度也不同。当传输的字节数小于8 字节,采用单帧传输方式时,传输效率不会得到提升。当传输字节数不小于8字节,且采用改进后的数据帧跨帧传输时,传输效率会得到提升。部分传输效率的提升情况如表5所示,传输效率提升了0%~50%不等,传输效率提升程度受协议包总字节数的影响。由于NMEA2000协议规定,最大传输字节数不超过1 785字节,在传输字节数等概率情况下,经计算,最终传输速率综合提升约12.23%。而一般传输的数据域字节数不超过64字节,等概率情况下传输速率提升约9.18%。

      优先级保留位数据页PGN低16 bit报文号
      3 bit1 bit1 bit16 bit8 bit

      Table 4.  New identifier fields of NMEA2000

      传输总字节数传输效率/%提升程度/%
      改进前改进后
      85010050
      956.2556.250
      $ \vdots $$ \vdots $$ \vdots $$ \vdots $
      1562.593.7531.25
      1666.710033.3
      1770.8370.830
      $ \vdots $$ \vdots $$ \vdots $$ \vdots $
      89086.9199.3312.42
      8918799.4412.44
      $ \vdots $$ \vdots $$ \vdots $$ \vdots $
      1 78387.499.9412.54
      1 78487.4510012.55
      1 78587.599.612.1

      Table 5.  Partial comparison of transmission efficiency improvement

    • NMEA2000 协议优先级占了标识符域的前3 bit,紧接着第4 bit则是保留位0。根据NMEA2000协议的规定,保留位都为0。由于保留位相同,在总线仲裁时,会对保留位后的数据页位进行仲裁,保留位失去了意义。所以根据NMEA2000协议的特殊性,将保留位用于优先级位的延伸,优先级从原来的3 bit扩展至4 bit。由于优先级位扩充使优先级范围增大了1倍,所以可以在NMEA2000协议的基础上多定义8个优先级,减少了当优先级相同时对总线的仲裁次数。改进后的NMEA2000标识符域如表6所示。

      优先级拓展优先级数据页PGN低16 bit报文号
      3 bit1 bit1 bit16 bit8 bit

      Table 6.  Improved identifier fields of NMEA2000

      针对不同优先级的节点,当在同一时刻向总线上发送数据导致优先级低的节点仲裁失败时,则将落选节点提升1个优先级;若其优先级提升后与原有优先级冲突,则优先发送落选节点数据。针对同一优先级的节点,由于前4 bit的优先级位都相同,根据CAN总线规定,将对优先级域后面的标识符域继续进行仲裁。节点每仲裁失败1次便提升1个优先级,直至其被发送到总线上。动态优先级调整流程如图3所示。

      Figure 3.  Flowchart of dynamic priority adjustment

      同时,针对多帧发送的NMEA2000协议的报文,第1帧数据发出后,后面同一参数的报文无论自身优先级多少,都应立即将优先级调度至最高优先级,保证此节点报文的实时性与完整性。因为NMEA2000协议优先级是固定的,所以每帧报文的ID也是固定的。同样,本文提出的动态优先级策略也将改变NMEA2000协议报文的ID,所以在进行动态优先级调整后需要将优先级复原,以保证NMEA2000协议报文ID的一致性。多帧传输发送时优先级调整流程如图4所示。

      Figure 4.  Flowchart of multi-frame transmission priority adjustment

      由于NMEA2000网络中对数据传输的实时性和可靠性要求十分高,所以在NMEA2000数据采集转换板卡上采用RT-Thread嵌入式实时操作系统。根据实现各设备NMEA2000协议接口的统一性和提高传输效率及实时性等方面建立4个线程,总体架构如图5所示。主线程主要初始化各优先级和各互斥量并创建所需线程,如图5(a)所示。线程1负责接收并提取不同设备的信息,如图5(b)所示;线程2根据接收到的有效信息在判断是否为NMEA2000认证设备数据,并对数据进行分类,将其转换成相应的NMEA2000数据格式并借助NMEA2000未使用的标识符域增加数据域传输的有效数据,提高传输效率,如图5(c)所示;线程3中节点向NMEA2000网络发送数据,根据CAN发送寄存器(CAN_TSTR)仲裁失败标志位是否置1,判断节点是否仲裁失败,如图5(d)所示;线程4提高仲裁失败节点的优先级,进一步优化多帧发送的数据,使其能够快速将数据发送到总线上,提高实时性,如图5(e)所示。

      Figure 5.  Flowcharts of each thread of RT-Thread operation system

    • 基于自主可控平台研制的NMEA2000数据采集处理传输板卡采用的主控芯片是基于Cortex-M3内核的国产芯片GD32F207,有4个通用同步/异步串行接收/发送器(USART)和2个通用异步收发传输器(UART),2路CAN控制器,1个网络接口,通信接口较为丰富。在国产嵌入式实时操作系统RT-Thread上进行软件开发,完成了NMEA2000应用扩展和优化。

      中海达全球导航卫星系统(GNSS)接收机的数据已定义但设备未认证,其原始数据为:$GPRMC,091 036.40,A,3 211.917 247 9,N,11 927.634 625 7,E,0.035,189.7,250 319,0.0,E,A*3C。上述数据需进行处理后方能接入NMEA2000网络。以GPS纬度为例,首先将纬度数据32 119 172 479 N提取出来,得到纬度为32.198 620 7°。由于纬度数据是一个小数,不满足NMEA2000协议要求,根据NMEA2000协议,将纬度×107,得到整形数据321 986 207°,然后将其转换为4 Bytes的十六进制数13311E9F。同理,按照协议规定的顺序对经度、时间、高度等数据进行封装,完成转换。

      图6图7分别为GNSS接收机采集的原始数据及改进后的数据。由图可见,改进后的多帧报文将优先级位置于NMEA2000 ID空闲位,每帧的传输数据量由7字节扩大至8字节。此外,本次传输的有效字节数为44字节,数据改进前,由于NMEA2000协议的规定,每帧的第1字节用于序号定义,所以共分为7帧发送,传输的总字节数为56字节,传输效率约为78.57%。数据改进后,传输的有效字节数不变,由于序号位的转移,原本需要7帧发送的数据量仅用了6帧便可以完成发送,传输的总字节数为48字节,传输效率约为91.67%,提升约13.1%。而且将原有的GNSS接收机的数据格式成功转换为NMEA2000数据格式,使其兼容NMEA2000网络。

      Figure 6.  Original data of GNSS receiver

      Figure 7.  Improved data of GNSS receiver

      针对NMEA2000未定义的数据类型,也可以通过基于自主可控平台研制的数据板卡接入NMEA2000网络,图8为自定义激光测距设备协议采集到的数据。由图可见,改进后的激光测距传感器数据完全符合自定义的NMEA2000协议,同样兼容NMEA2000网络。

      Figure 8.  Improved laser ranging sensor data

      GD32F207自带CAN控制器,可以通过读取CAN发送状态寄存器(CAN_TSTR)中的仲裁失败标志位,来观察发送的 NMEA2000数据帧是否仲裁失败;当发生仲裁失败时,该位会被置1。GD32F207有2路CAN,设置CAN分别向总线发送优先级不同的2帧NMEA2000数据帧。

      为验证本文优先级动态调整方法的有效性和可靠性,在1条总线上挂载了10个节点,共有10帧优先级不同的NMEA2000数据帧同时往总线发送。由于CAN总线传输速率和传输距离相关性较大,本文将传输距离设为1 m并不再改变传输距离。NMEA2000网络是基于CAN总线的架构,而CAN总线是一种基于优先级的串行通信网络,因此采用载波监听多路访问机制。图9图10分别为NMEA2000网络实验模型和得到的网络数据。由图10可见,基于NMEA2000协议,在多节点情况下可同时向总线发送数据,且未产生丢包现象,总线数据稳定可靠。本方法可满足NMEA2000多节点冲突的仲裁情况。

      Figure 9.  The experimental model of NMEA2000

      Figure 10.  The network information of NMEA2000

    • 基于NMEA2000协议,将船上各种设备的数据接口标准化,统一了所有设备的数据格式,并针对NMEA2000协议,采用扩充NMEA2000数据域的方法提升总线数据传输效率。同时,采用动态优先级策略并对其进行实验分析和验证,结果表明,采用动态优先级策略可以改善NMEA2000网络的实时性,具有一定的应用价值。

Reference (12)

Catalog

    /

    DownLoad:  Full-Size Img  PowerPoint
    Return
    Return