APP下载

基于NMEA 0183 & 2000协议的船载集成显示终端设计

2020-06-04谈怀秋乐禹铭

交通科技 2020年2期
关键词:校验串口解析

秦 雷 谈怀秋 乐禹铭

(1.长江海事局 武汉 430016; 2.武汉理工大学能源与动力工程学院 武汉 430063)

随着信息技术、通导技术的不断发展,日益增多的自动化设备(如:AIS、GPS、雷达、罗经、测深仪、计程仪、风向风速仪等)被广泛应用于船舶,提高了船舶的智能化程度。然而,这些电子设备各自独立,导致驾驶人员在航行过程中需要同时观看多个屏幕,造成驾驶人员注意力的分散,影响航行安全和航行效率[1]。

NMEA 0183 & 2000是目前广泛应用于船舶电子通信设备的2种接口协议[2]。2种接口协议都是由NMEA制定的舰船设备级数据通信标准,不同在于NMEA 0183是通过串口进行数据关联,而NMEA 2000的核心是CAN。NMEA 2000网络的总线访问总裁机制、网络管理等功能都由CAN控制器实现,电气、机械接口也大都由CAN接口电路实现。CAN通信具有传输字节短、速度快、冗错性好、数据传输可靠等特性,对于船舶通信发展具有重大意义。要满足集成化显示[3]的需要,关键在于实现2种接口协议与屏幕之间的转化。串口屏相较于具有CAN接口的组态屏有着成本低、易开发等优势,因此,本文提出一种基于NMEA 0183 & 2000接口协议的船载综合信息一体化串口屏终端的设计方案。

1 硬件方案设计

1.1 终端功能需求分析

为满足NMEA 0183 & 2000接口协议与串口屏自定协议转化的测试条件,确定船载综合信息一体化串口屏终端应达到以下基本条件。

1) 终端应具备美国国家海洋电子协会(National Marine Electronics Association)制定的0183 & 2000协议接口,实现船舶GPS定位和机舱控制器局域网络(Controller Area Network)数据的采集及显示。

2) 终端应具备串口屏,基于NMEA 0183 & 2000协议与串口触摸屏自定义协议提供显示端。

船舶电子设备主要包括机舱设备和驾驶台设备,通过协议转换器(主控制板)分别将NMEA 0183和NMEA 2000协议接口数据与串口屏自定协议进行转换,最终将各种航行信息集成到屏幕端实现集成显示[4]。其总体硬件连接关系见图1。

图1 终端硬件关系

1.2 终端硬件设计方案

基于对集成化显示终端测试方案的需求分析,硬件设计包括4大部分:主控制器模块、NMEA 0183协议接口模块、NMEA 2000协议接口模块、串口触摸屏。系统的硬件框架见图2。

图2 终端硬件框架

2 NMEA 0183 & 2000协议转换方案

2.1.2 逗号分段方式

1) 对NMEA 0183数据识别解析;

2) 对NMEA 2000数据仲裁解析;

(1)《中华人民共和国增值税暂行条例》[1]中明确规定:在中华人民共和国境内销售货物或者加工、修理修配劳务(以下简称劳务)的单位和个人,为增值税的纳税人。《财政部税务总局关于调整增值税税率的通知》[2]中明确提出自2018年5月1日起执行。其中纳税人发生增值税应税销售行为或者进口货物,原适用11%税率的调整为10%;纳税人购进农产品,原适用11%扣除率的,扣除率调整为10%;纳税人购进用于生产销售或委托加工16%税率货物的农产品,按照12%的扣除率计算进项税额。涉农货物包括:粮食等农产品、食用植物油、食用盐;饲料、化肥、农药、农机、农膜。农业生产者销售的自产农产品项目免征增值税。

3) 串口屏数据识别解析。

下面分别对这3个需求进行具体的的协议转化方案设计。

2.1 NMEA 0183协议解析设计方案

通过分析,该协议采用ASCII码[5],其串行通信默认参数为:波特率=9 600 bps,数据位=8 bit,开始位=1 bit,停止位=1 bit,无奇偶校验。总结其通用帧格式见表1。

初中班主任在管理工作中应当善于了解学生和帮助学生。在与学生进行谈话的过程中,教师要创造良好的谈话机会,以合理的谈话方式展开交流。

表1 NMEA 0183协议通用帧格式

2.3.1 帧头

图3 NMEA 0183协议解析方案流程

2.1.1 地址域及校验和验证

在获取数据至接收缓冲区后,需进行aaccc地址域的识别验证及hh校验和纠错验证。

鉴于双硫酯类化合物在聚合物合成中的重要性,本文设计合成了两例新型的含羧基官能团双硫酯类化合物,并通过双硫酯化合物结构上的羧基与纳米二氧化硅表面的氨基之间的酰胺化反应,成功的合成了两种含双硫酯结构的纳米二氧化硅。

aaccc地址域的识别取位操作的方式,首先判定从串口采集的数据是否为NMEA 0183协议数据,判断的方式为识别RXBUFFER[0]是否为“$”字符,随后对RXBUFFER[1]~RXBUFFER[5]进行循环操作,依次对地址域的5个字符进行匹配,匹配地址域后,分别设计不同的解析函数,依次对其后的ddd数据段进行截取解析。

在0183数据解析前,进行校验和验证[6],验证字段为$与*之间所有字符ASCII码,对各字节做异或运算,得到校验和后,再转换16进制格式的ASCII字符(包含“,”字符),通过识别“*”字符,定位校验和位置,获取校验和数据,将计算的校验和数据与接收获取的校验和数据进行对比,进行校验纠错,完成数据的可靠性验证。

基于对硬件方案的设计考量,系统主要功能为实现船机数据NMEA 0183和NMEA 2000协议在辅助显示屏上的集中化显示,为了更好的使用这些数据,需进行NMEA 0183 & 2000协议的解析方案设计,方案设计有以下3个需求:

2.3.2 数据长度

此处对这4个部分进行协议设计。

通过此种分段方案,可以有效地对数据进行存取,同时可以对NMEA 0183数据进行分类,提高数据调用的可靠性。

2.2 NMEA 2000协议解析设计方案

NMEA 2000的通信协议是载波侦听多路访问(CSMA)协议,具备冲突检测仲裁功能,其基本技术是依托于CAN协议,可以对消息的优先级进行仲裁,优先级较高的标志符总会优先地获取总线的使用,通过分析NMEA 2000协议的基本格式,基于NMEA 2000数据串行的传输特性,NMEA 2000协议数据帧格式见表2。

表2 NMEA 2000协议数据帧结构 位

1) SOF。数据帧起始位,总线节点闲置后同步,数据开始接收或者发送开始标志,电平会翻转。

2) 仲裁。帧优先级字段,进行NMEA 2000网络设备优先级的分配,适用于实时控制,字段中二进制消息标志符数字越小优先级越高,整体优先级的设定取决于软件工程师自定义。

3) 控制。数据字节数,参数群编号(PGN)的定义识别。

破坏极限、屈服极限、刚度等压缩特性参数如表1所示。从表1中可以看出,不同硬度的圣女果在相同压缩速率情况下,横向压缩和纵向压缩的屈服极限差异不大,纵向压缩的破坏极限、破坏能、刚度明显大于横向压缩的,而横向压缩的变形能则大于纵向的。不同加载速度和不同的加载方向下的屈服极限值比较接近,可以看出加载速度、加载方向对屈服极限值影响不大。

4) 数据。最多可传输64位数据。

5) CRC。16位的循环冗余校验码,检查数据帧的传输可靠性,计算范围包括帧起始、仲裁、控制及数据,传输与发送不一致时会纠错并报错。

播种当年于8月3日在苜蓿盛花期进行第1次刈割,留茬5 cm。9月10日对再生草分种取样,选取顶部往下数第3~4片无损坏叶片10 g,在液氮中迅速冷冻,带回实验室后,存放冰柜中保存备用。超氧化物歧化酶(SOD)活性采用NBT光还原法测定,过氧化物酶(POD)活性采用愈创木酚法测定,丙二醛(MDA)含量采用硫代巴比妥酸法测定,脯氨酸(Pro)含量采用酸性茚三酮法测定[17]。

6) ACK。确认数据的正常接收。

7) EOF。表示数据帧结束。

在NMEA 2000网络中,所有传输的数据以群的形式组织,并赋予了1个唯一的标识符,以数字的形式表示,每一个设备均定义了一系列的参数群编号(PGN),组织需要传输的数据,此6位PGN值即为控制段数据,为实时有效地检测NMEA 2000网络的CAN数据,需要及时地过滤出有效的ID数据(PGN数据)。NMEA 2000协议解析的方案[7]流程见图4。

图4 NMEA 2000协议解析方案流程

由图4可见,解析方案采用CAN ID过滤的形式,从NMEA标准协议中基于数据需求中获取数据的PGN值,获取数据,通过CAN的过滤机制,从总线中的CAN收发器检测总线电平,检测控制段6位值,当检测的ID值为需求的PGN值时,从CANID邮箱数据接收值CANBUFFER中获取8 bit数据,即为数据源。

2.3 串口屏协议设计方案

迪文串口屏的通信采用串行指令式的报文协议,协议是以识别帧头的形式设计,与传统的 LCM通过时序或者指令控制显示不同,DGUS屏采用直接变量驱动显示方式,所有的显示和操作都是基于预先设置好的变量配置文件来运行的,同时通过串口数据帧来驱动屏幕。

串口迪文屏的的帧由4个数据块组成,其协议结构见表3。

表3 串口屏协议结构

$aaccc,ddd,ddd,…,ddd*hh,此为0183协议数据的格式,方案考量分别为多个ddd数据进行标号,从第一个ddd开始至*前的ddd结束,标号从1开始,从RXBUFFER[]中获取数据,判定RXBUFFER[i]是否为逗号“,”字符,2个逗号间数据进行重新存储并数据标号,依次取出2个“,”字符间的数据,直至检测出“*”字符为止。

1.3 统计学处理 采用SPSS17.0统计软件进行分析。计量资料以表示,组间比较采用t检验,以P<0.05为差异有统计学意义。

基于上述NMEA 0183协议分为7个部分,其中地址域字符按照分类多达30种,其中常用的有:$GPZDA(卫星定位信息)、$GPRMC(推荐定位信息)等定位信息;$GPZDA(UTC时间和日期)等时间信息。为了对数据进行获取,取出ddd数据域,需要进行地址域判别及数据的获取,在保证数据完整性的前提下进行数据判定,其解析方案流程见图3。

北宋末年论者吴可曾认为:“晚唐诗失之太巧,只务外华,而气弱格卑,流为词体耳。”〔6〕331所谓“气弱格卑,流为词体”即说词体本身托体亦卑。陆游对词体的态度则远较此微妙而复杂。

通信帧头设置用于串口数据帧的同步和识别,同时当多台DGUS屏并联工作时,把帧头作为设备地址进行区分,此处以2个字节16进制作为设定,即为5A A5。

逗号分段方式为本协议解析的重要组成部分,为获取协议报文的ddd数据段,结合0183通用帧格式,分析探讨出逗号为协议的主要分段区,为此做出对逗号域的分段标识,就可以完成对数据域的截取。

数据长度是对指令、数据及CRC校验的定义,设计的目的是防止数据丢失造成数据显示的紊乱,必须增添作为判定符。

2.3.3 指令

则 g(*,·)L2(Γ×R+;η)。这说明简单函数全体S(Γ;η)在Dom 中,故 稠定,从而 是L2(Γ;η)中稠定无界线性算子。

串口屏采用变量驱动模式工作,屏的工作模式和GUI状态完全由数据变量来控制。相应的,串口指令也只需要对变量进行读、写即可,指令集非常简单,一共有 4条主要指令,其指令定义见表4。

表4 指令定义

此处,数据通过0x80~0x83指令,就可以实现对串口屏的读取数据的操作。为了完成向迪文串口屏写数据的操作,利用0x82指令,固定的向屏幕固定位置写入数据。

2.3.4 数据

支承辊原始剥落状况如图1所示,辊子表面大面积与辊子本体分层剥落,采用机械加工的方式去除掉快部分,对剥落面进行解剖。

此处数据包括变量地址及变量值,变量地址采取2个字节的形式定义,变量数据的长度根据每个变量地址允许的变量值长度进行设计及小数点的定位,具体的数据位示意见图5。

图5 地址数据位示意

由图5可知,每个地址可以存储2个字节的数据,按照需求显示的数据长度,分配变量地址分别为1000、1001、1003、1004,每个变量地址分别存储2、4、2、4个字节数据,此处数据位的报文定义见图6。

图6 数据段报文协议

基于对4个数据块的协议定义,串口迪文屏的数据报文完整定义见表5。

由于数据挖掘结果基于人工智能创作结果而产生,鉴于人工智能强大的计算能力和由此而来的巨大的数据生成量,考虑到人工智能自动完成数据挖掘的可能性,赋予挖掘结果的特别知识产权在排他性方面不宜过强。权利内容应主要排斥对数据挖掘结果的竞争性商业复制和传播,对于自然人的非竞争性使用要给出足够的空间。对于涉及教育和表达自由的使用者利益要给予充分考虑,防范在计算力强大的机器智能的挤压下人类创作空间的萎缩。

表5 串口屏协议完整定义

3 协议转换测试与验证

为确保上述硬件功能与协议转换满足集成化显示需求,开展基于以上终端硬件方案和协议转换方案的试验测试,测试内容包括NMEA 0183和NMEA 2000协议接口与串口屏通信测试。

3.1 NMEA 0183协议测试

NMEA 0183协议接口与DGUS串口屏通信测试:按硬件设计方案要求连接好设备后,将GPS天线置于室外空旷位置,连接24 V电源,利用PC端串口调试助手查看GPS定位信息。串口调试助手接收GPS数据界面见图7。

图7 串口调试助手接受GPS数据界面

以“$GNVTG,511.000,T,511.00,M,0.000,N,0.000,K*50”为例,其含义分别是指以真北为基准参考的地面航向及以磁北为参考基准的地面航向均为511.000°,对地航速分别为0.000 km和0.000 km/h。GPS数据NMEA 01-83标准由主控制器解析,发送给屏幕相应显示区域,测试结果表明NMEA 0183协议经由单片机解析成功在串口屏显示。

3.2 NMEA 2000协议测试

NMEA 2000协议接口与DGUS串口屏通信测试:NMEA 2000协议的核心是CAN协议[8],主要对象为机舱设备(如:主、辅柴油机等)数据的采集,在本实验室现有设备条件下对测试进行简化。利用PC端软件模拟NMEA 2000协议模块向主控制器发送数据,经由解析后再发送给屏幕显示。具体测试界面及结果如下。

1) PC端通过USB CAN转换器连接主控器,基于PC端CAN TEST软件发送6个帧ID数据,共48个字节。经测试,数据能够正常发送。

经过半年多的运转,浮选车间运行状况稳定。浮选精煤灰分控制在8%以内,三班工作制,每班精煤压滤机可卸3~4个循环,按每个循环8 t计,则每天可生产浮选精煤80 t左右。每月可多洗精煤约2 500 t,按当时精煤价格1 300元/t测算,每月可增加效益近350万元。经测算,实际运行4个月后,已收回投资成本。

因为负荷预测具有较高的实时性,本文采用ARMAX模型[14]对负荷进行预测。ARMAX模型主要包括模型定阶、参数优化和参数检验3方面内容,可描述为

2) 通过控制器的解析,将接受到的CAN扩展帧数据解析发送至串口,成为串口显示屏可以解析的格式。

通过串口解析出来的数据,对数据进行解析。串口解析出来的数据位为:00 64 00 64 00 64 00 64 00 64 00 64 00 64 00 64 00 64 00 64 00 64 00 64 00 64 00 64 00 64 00 64 00 64 00 64 00 64 00 64 AA AA AA AA AA AA AA AA。

其中每8个字节数据对应1个CAN ID数据段,以0064 0064 0064 0064对应帧ID为0x18f00f52的数据段,AA AA AA AA AA AA AA AA对应于帧id为0x18feee00的数据段。此处证明控制器的NMEA 2000数据协议解析正确无误,完美实现。屏幕端首页面各参数均显示正确。

4 结语

本文基于NMEA 0183 & 2000接口协议与串口屏协议的转化提出了一种船载综合信息一体化显示串口触摸屏终端设计方案。为验证该方案的可行性,设计了简化的硬件方案并对协议之间的转换原理进行了系统的阐述,最后通过软硬件测试进行了验证。

首先,注重入门引导。学生对专业的兴趣是建立在专业入门时的引导上,学生刚刚接触专业是培育学生兴趣的最佳时机,因此教师应该在专业入门的引导上下功夫,让每一名学生都能找到自己感兴趣的点,这样才能培养学生的专业兴趣,让学生真的能够“钻进去,学出来”。在学生刚刚接触专业时,应注重学习方法的传授,而不是知识的传授,告诉学生怎么学,学什么,比给学生讲一个知识点重要得多。同时教师要在课程中融入专业的文化,培养学生对专业的责任感和使命感,这也能提高学生对所学专业的兴趣。

研究结果表明,本文所提出的硬件方案和软件设计能够完美实现NMEA 0183 & 2000接口协议与串口屏协议之间的转化,完全满足集成化显示的需求,对于提高航行安全和航行效率具有重大的意义。从设计成本和难度上分析,提出应用串口触摸屏替代CAN口组态屏,不仅降低了研发成本,同时降低了屏幕端的开发难度。

猜你喜欢

校验串口解析
使用Excel朗读功能校验工作表中的数据
三角函数解析式中ω的几种求法
浅谈AB PLC串口跟RFID传感器的通讯应用
睡梦解析仪
炉温均匀性校验在铸锻企业的应用
电竞初解析
电子式互感器校验方式研究
对称巧用解析妙解
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索