搜档网
当前位置:搜档网 › NMEA通讯协议详解

NMEA通讯协议详解

NMEA通讯协议详解

说起NMEA协议,只要接触过GPS设备的人,或者说是要用到GPS设备研发的人都知道,这是一个很常用的GPS通讯协议,而且也有很多人遇到关于NEMA协议的一些问题,我忽然有一个想法,就是按照自己对这个协议的一些理解,写一点这方面的东西,看是不是能帮刚刚入门的人解答一些疑问,由于笔者水平有限,这个东西也只能算是一个简单介绍,就算是知识普及吧,希望能引高手出来大家一起讨论。好了,言归正传,我们开始吧!

GPS(全球定位系统)接收机与手持机之间的数据交换格式一般都由生产厂商缺省定制,其定义内容普通用户很难知晓,且不同品牌、不同型号的GPS接收机所配置的控制应用程序也因生产厂家的不同而不同。所以,对于通用GPS应用软件,需要一个统一格式的数据标准,以解决与任意一台GPS的接口问题。NMEA-0183数据标准就是解决这类问题的方案之一。NMEA协议是为了在不同的GPS导航设备中建立统一的RTCM(海事无线电技术委员会)标准,它最初是由美国国家海洋电子协会(NMEA—The NationalMarine Electronics Association)制定的。NMEA协议有0180、0182和0183这3种,0183可以认为是前两种的升级,也是目前使用最为广泛的一种

NMEA通讯协议硬件接口

符合NMEAO183标准的GPS接收机的硬件接口能够兼容计算机的RS-232C协议串口,然而,严格来说NMEA标准不是RS-232C,规范推荐依照EIA422(也称为RS-422)。是一个与RS-232C不同的系统。标准RS-232C采用负逻辑,即逻辑“1”表示-5V~-15v,逻辑“0”表示+5V~+15V,利用传输信号线和信号地之间的电压差进行传输。而EIA-422是利用导线之间的信号电压差来传输信号的,其每个通道要用两条信号线,一条是逻辑“1”,~条是逻辑“0”,通过传输线驱动器和传输线接收器实现逻辑电平和电位差之间的转换,一般允许驱动器输出为±2V~±6V 。

虽然存在区别,但在实际使用中,如果只是接收GPS的输出.则只需两根信号线GPS数据输出线和信号地线,可以直接将EIA-422输出通道两条信号线的中一条同计算机的Rs232C 输入线相连(这个方法我并没有试验过,是从别的地方听来的,有兴趣有条件的兄弟可以动手实验一下,不过后果自负哦!呵呵)。

NMEA通讯协议所定义的标准通讯接口参数为:

波特率:4800bit/s;

数据位:8位;

停止位:1位;

奇偶校验:无;

NMEA-OI83语句解析

NMEA通讯协议所规定的通讯语句都已是以ASCII码为基础的,NMEA-0183协议语句的数据格式如下:“$”为语句起始标志;“,”为域分隔符;“ *”为校验和识别符,其后面的两位数为校验和,代表了“$”和“*”之间所有字符的按位异或值(不包括这两个字符);“/”为终止符,所有的语句必须以来结束,也就是ASCII 字符的“回车”(十六进制的0D)和“换行”(十六进制的0A)。

典型的NMEA0183语句如下面的GPGGA语句。

当GPS正常工作时,语句如:

$GPGGA,053152,3957.7484,N,11626.7626,E,1,06,1.5,88.1,M,-8.0,M,,*64

当GPS收不到卫星信号时,GPGGA语句输出变为:

$GPGGA,053247,3957.7484,N,11626.7626,E,0,00,,,M,,M,,*46

除标准语句外,NMEAO183规范还允许个别厂商定义私有的语句格式,这些语句以“$P”开始,然后是三个字符长度的厂商识别号,跟着是厂商定义的数据,接下来的数据格式与标准格式相同。

如Garmin的PGRME私有格式如下:

$PGRME,8.9,M,6.1,M,10.8,M*11

其中,“P”代表私有格式,“GRM”是Garmin的代码,“E”表示语句类型。

NMEA数据处理中的注意事项

如果开发基于GPS的应用系统,就需要将GPS作为信息源,正确接收和解析GPS发送的NMEA一0183数据。此时,在编程实现时需要注意几个问题。

1、通讯端口的设置

虽然NMEA规范推荐的串行通讯参数为“波特率:4800;奇偶校验:无;数据位:8;停止位:1”,但也有厂商的产品允许用户将波特率设置的更高,此时需要注意设置计算机的接口参数与GPS设备一致。

2、所需信息的正确提取

NMEA—0183是以语句形式发送数据的,接收机可能发送很多类型的语句,而我们需要的可能只是某些语句中的几个字段。因此就需要对接收到的数据进行解析,取得所需的信息。另外,可能会由于小数点位数不同等原因,语句的长度是可变的,因而分离感兴趣的信息时,不能按照该信息在语句中所处的字符位置来查找,只能依据逗号分隔符,这一点在数据提取的过程中非常重要。笔者就经常遇到一些应用软件工程师,在提取NMEA语句中的信息的时候按照字符的长度提取,这样编出来的程序,通用性差,而且经常会出现信息提取错误的问题。

以上都是我们在程序中需要注意的问题。为解决信息的正确提取问题,并提高程序的复用性,可以编写适当的函数,如一个函数用来分离语句(即通过$字符判断语句头,一直到换行回车结束一条语句);一个函数用来判断语句中的字段数(通过“,”分隔符来提取语句字段),还有一个函数用来返回语句中指定字段的内容。有了这三个函数,就可以方便的提取所需的信息,此时的工作只是简单字符串比较和显示格式的变换

检验和的计算与比较

最后,为了确保所采集的GPS数据的可靠性,必须进行检验和的计算与比较。检验和hh为“$”与“*”之间的所有字符按位异或的结果,并将其高4位和低4位各用一个十六进制数(字母大写)表示出来。为此,需编写函数,从语句头识别符“*”开始,计算检验和,直至“*”到达为止,这时“*”号后面的两个字符就是检验码,将自己的计算结果同这两个检验码字符比较,若不同,按出错处理,并继续运行;若相同,则说明通讯成功,数据接收正确,可以处理该语句,提取所需数据。

这里简单介绍了NMEA一0183规范的接口定义和数据格式,但是篇幅限制没有对NMEA语句进行详细的解析,语句的详细说明可参照NMEA规范或各GPS接收机的说明书。我现在

手中有一份中文版本的NMEA协议语句的详细解析,当然并不是全部的语句,是根据GARMIN技术手册翻译过来的,如果有兴趣了解的兄弟可以留下邮箱。

以上这些文字,是AKA按照自己对NMEA协议的的理解,再加上一点东找西看来的东西写出来的,如对其中的问题有疑问,欢迎探讨!邮箱地址:zhl001@https://www.sodocs.net/doc/3716299014.html,

宇电AI501 RS485通讯协议说明

AIBUS通讯协议说明(V7.0) AIBUS是厦门宇电自动化科技有限公司为AI系列显示控制仪表开发的通讯协议,能用简单的指令实现强大的功能,并提供比其它常用协议(如MODBUS)更快的速率(相同波特率下快3-10倍),适合组建较大规模系统。AIBUS采用了16位的求和校正码,通讯可靠,支持4800、9600、19200等多种波特率,在19200波特率下,上位机访问一台AI-7/8系列高性能仪表的平均时间仅20mS,访问AI-5系列仪表的平均时间为50mS。仪表允许在一个RS485通讯接口上连接多达80台仪表(为保证通讯可靠,仪表数量大于60台时需要加一个RS485中继器)。AI系列仪表可以用PC、触摸屏及PLC作为上位机,其软件资源丰富,发展速度极快。基与PC的上位机软件广泛采用WINDOWS作为操作环境,不仅操作直观方便,而且功能强大。最新的工业平板触摸屏式PC的应用,更为工业自动化带来新的界面。这使得AIDCS系统价格大大低于传统DCS系统,而性能及可靠性也具备比传统DCS系统更优越的潜力,V7.X版本AI-7/8系列仪表允许连续写参数,写给定值或输出值,可利用上位机将仪表组成复杂调节系统。 一、接口规格 AI系列仪表使用异步串行通讯接口,接口电平符合RS232C或RS485标准中的规定。数据格式为1个起始位,8位数据,无校验位,1个或2个停止位。通讯传输数据的波特率可调为4800~19200 bit/S,通常用9600 bit/S,单一通讯口所连接仪表数量大于40台或需要更快刷新率时,推荐用19200bit/S,当通讯距离很长或通讯不可靠常中断时,可选4800bit/S。AI仪表采用多机通讯协议,采用RS485通讯接口,则可将1~80台的仪表同时连接在一个通讯接口上。 RS485通讯接口通讯距离长达1KM以上(部分实际应用已达3-4KM),只需两根线就能使多台AI仪表与计算机进行通讯,优于RS232通讯接口。为使用普通个人计算机PC能作上位机,可使用RS232/RS485或USB/RS485型通讯接口转换器,将计算机上的RS232通讯口或USB口转为RS485通讯口。宇电为此专门开发了新型RS232/RS485及USB/RS485转换器,具备体积小、无需初始化而可适应任何软件、无需外接电源、有一定抗雷击能力等优点。 按RS485接口的规定,RS485通讯接口可在一条通讯线路上连接最多32台仪表或计算机。需要联接更多的仪表时,需要中继器,也可选择采用75LBC184或MAX487等芯片的通讯接口。目前生产的AI仪表通讯接口模块通常采用75LBC184,这种芯片具备一定的防雷击和防静电功能,且无需中继器即可连接约60台仪表。 AI仪表的RS232及RS485通讯接口采用光电隔离技术将通讯接口与仪表的其他部分线路隔离,当通讯线路上的某台仪表损坏或故障时,并不会对其它仪表产生影响。同样当仪表的通讯部分损坏或主机发生故障时,仪表仍能正常进行测量及控制,并可通过仪表键盘对仪表进行操作,工作可靠性很高。16位校验码的正确性是简单奇偶校验的30000倍,基本能保证数据可靠性。并且同一网络上有其他公司也采用主从方式通讯的产品时,如PLC、变频器等,多数情况下AI系列仪表都不会受其它公司产品通讯干扰,不会产生采集数据混乱或无法通讯的问题。但是AI仪表协议并不能保证其它公司产品能否正常工作,所以除非万不得已,不应将AI仪表与其它产品混在一个RS485通讯总线上,而应分别使用不同的总线。 二、通讯指令 AI仪表采用16进制数据格式来表示各种指令代码及数据。AI仪表软件通讯指令经过优化设计,标准的通讯指令只有两条,一条为读指令,一条为写指令,两条指令使得上位机软件编写容易,不过却能100%完整地对仪表进行操作;标准读和写指令分别如下: 读:地址代号+52H(82)+要读的参数代号+0+0+校验码 写:地址代号+43H(67)+要写的参数代号+写入数低字节+写入数高字节+校验码 地址代号:为了在一个通讯接口上连接多台AI仪表,需要给每台AI仪表编一个互不相同的通讯地址。有效的地址为0~80(部分型号为0~100),所以一条通讯线路上最多可连接81台AI仪表,仪表的通讯地址由参数Addr决定。仪表内部采用两个重复的128~208(16进制为80H~D0H)之间数值来表示地址代号,由于大于128的数较少用到(如ASC方式的协议通常只用0-127之间的数),因此可降低因数据与地址重复造成冲突的可能性。

NMEA协议详解

NMEA协议详解 2017/9/11 NMEA协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术 委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associations)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串 口传送到PC机、PDA等设备。 NMEA-0183协议是GPS接收机应当遵守的标准协议,也是目前GPS接收机上使用最广泛的协议, 大多数常见的GPS接收机、GPS数据处理软件、导航软件都遵守或者至少兼容这个协议。 不过,也有少数厂商的设备使用自行约定的协议比如GARMIN的GPS设备(部分GARMIN设备也 可以输出兼容NMEA-0183协议的数据)。软件方面,我们熟知的Google Earth目前也不支持 NMEA-0183协议,但Google Earth已经声明会尽快实现对NMEA-0183协议的兼容。呵呵,除非 你确实强壮到可以和工业标准分庭抗礼,否则你就得服从工业标准。 NMEA-0183协议定义的语句非常多,但是常用的或者说兼容性最广的语句只有$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL等。下面给出这些常用NMEA-0183语句 的字段定义解释。 $GPGGA 例:$GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,19.7,M,,,,0000*1F 字段0:$GPGGA,语句ID,表明该语句为Global Positioning System Fix Data(GGA)GPS 定位信息 字段1:UTC 时间,hhmmss.sss,时分秒格式 字段2:纬度ddmm.mmmm,度分格式(前导位数不足则补0) 字段3:纬度N(北纬)或S(南纬) 字段4:经度dddmm.mmmm,度分格式(前导位数不足则补0) 字段5:经度E(东经)或W(西经) 字段6:GPS状态,0=未定位,1=非差分定位,2=差分定位,3=无效PPS,6=正在估算 字段7:正在使用的卫星数量(00 - 12)(前导位数不足则补0) 字段8:HDOP水平精度因子(0.5 - 99.9) 字段9:海拔高度(-9999.9 - 99999.9) 字段10:地球椭球面相对大地水准面的高度 字段11:差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空)

RS485仪表通讯协议

目录 1.引言 (1) 1.1仪表通讯及命令 (1) 1.2仪表基本构成与通讯命令的关系 (2) 2.接线 (3) 2.1RS232接口的仪表与计算机的接线 (3) 2.2RS485接口的仪表与计算机的接线 (4) 2.3关于JR485转换器 (4) 3.通讯接口要素 (5) 4.仪表的版本号 (6) 5.校验核 (7) 6.一般仪表命令集详解 (8) 6.0关于命令集 (8) 6.1读版本号命令 (10) 6.2读主测量值命令 (10) 6.3读其它测量值命令 (11) 6.4读模拟量输出值及开关量输入输出状态命令 (12) 6.5输出模拟量命令 (13) 6.6输出开关量命令 (14)

6.7读仪表参数符号命令 (15) 6.8读仪表参数命令 (16) 6.9设置仪表参数命令 (16) 7.巡检仪通讯命令集 (18) 7.0关于命令集 (18) 7.1读测量值命令 (19) 7.2读报警状态命令 (20) 7.3读参数命令 (21) 7.4设置参数命令 (22) 7.5参数地址表 (23) 8.测试软件 (25) 8.0关于测试软件 (25) 8.1DOS环境测试 (25) 8.2W INDOWS 环境下测试 (26) 9.故障诊断及应用笔记 (29) 9.1故障诊断流程图 (29) 9.2应用笔记 (30) 附录1 通讯中使用的ASCⅡ码表 (31) 附录2 XS系列仪表通讯协议的解释与补充 (32)

1.引言 1.1 仪表通讯及命令 仪表能连接到所有的计算机并与之通讯,采用RS232或RS485传输标准。仪表与计算机之间的往来通讯都以ASCⅡ码实现,意味着计算机能以任何高级语言编程。 仪表的命令集由数条指令组成,完成计算机从仪表读取测量值、报警状态、控制值、参数值,向仪表输出模拟量、数字量,以及对仪表的参数设置。与通过仪表面板设置参数一样,通过计算机对仪表的参数设置被存入EEPROM存贮器,在掉电情况下也能保存这些参数。 为避免通讯冲突,所有的操作均受计算机控制。当仪表不进行发送时,都处于侦听方式。计算机按规定地址向某一仪表发出一个命令,然后等待一段时间,等候仪表回答。如果没收到回答,则超时中止,将控制转回计算机。 由于仪表的特性不同,我们将仪表的通讯命令集分为3类: 第1类:一般仪表 包括除巡检仪和无纸记录仪外的全部仪表。 命令详解见第6章 第2类:巡检仪表 命令详解见第7章 第3类:无纸记录仪 通讯规程见《无纸记录仪用户手册》

rs485总线通讯协议

竭诚为您提供优质文档/双击可除 rs485总线通讯协议 篇一:Rs485通讯协议说明 摘要:阐述了Rs-485总线规范,描述了影响Rs-485总线通信速率和通信可靠性的三个因素,同时提出了相应的解决方法并讨论了总线负载能力和传输距离之间的具体关系。 关键词:Rs-485现场总线信号衰减信号反射 当前自动控制系统中常用的网络,如现场总线can、profibus、inteRbus-s以及aRcnet的物理层都是基于 Rs-485的总线进行总结和研究。 一、eiaRs-485标准 在自动化领域,随着分布式控制系统的发展,迫切需要一种总线能适合远距离的数字通信。在Rs-422标准的基础上,eia研究出了一种支持多节点、远距离和接收高灵敏度的Rs-485总线标准。 Rs-485标准采有用平衡式发送,差分式接收的数据收发器来驱动总线,具体规格要求: 接收器的输入电阻Rin≥12kΩ 驱动器能输出±7V的共模电压

输入端的电容≤50pF 在节点数为32个,配置了120Ω的终端电阻的情况下,驱动器至少还能输出电压1.5V(终端电阻的大小与所用双绞线的参数有关) 接收器的输入灵敏度为200mV(即(V+)-(V-)≥0.2V,表示信号“0”;(V+)-(V-)≤-0.2V,表示信号“1”)因为Rs-485的远距离、多节点(32个)以及传输线成本低的特性,使得eiaRs-485成为工业应用中数据传输的首选标准。 二、影响Rs-485总线通讯速度和通信可靠性的三个因素 1、在通信电缆中的信号反射 在通信过程中,有两种信号因导致信号反射:阻抗不连续和阻抗不匹配。 阻抗不连续,信号在传输线末端突然遇到电缆阻抗很小甚至没有,信号在这个地方就会引起反射,如图1所示。这种信号反射的原理,与光从一种媒质进入另一种媒质要引起反射是相似的。消除这种反射的方法,就必须在电缆的末端跨接一个与电缆的特性阻抗同样大小的终端电阻,使电缆的阻抗连续。由于信号在电缆上的传输是双向的,因此,在通讯电缆的另一端可跨接一个同样大小的终端电阻,如图2所示。

GPS数据协议NMEA0183

GPS 数据协议 NMEA-0183
NMEA 0183 是美国国家海洋电子协会(National Marine Electronics Association )为海用电子设备制定的标准格式。目前业已成了 GPS 导航设备统一的 RTCM(Radio Technical Commission for Maritime services)标准协议。
序号 1 2 3 4 5 6 7
命令 $GPGGA $GPGSA $GPGSV $GPRMC $GPVTG $GPGLL $GPZDA
说明 全球定位数据 卫星 PRN 数据 卫星状态信息 运输定位数据 地面速度信息 大地坐标信息 UTC 时间和日期
最大帧长 72 65 210 70 34
注:发送次序$PZDA、$GPGGA、$GPGLL、$GPVTG、$GPGSA、$GPGSV*3、 $GPRMC 协议帧总说明: 该协议采用 ASCII 码, 其串行通信默认参数为: 波特率=4800bps, 数据位=8bit, 开始位=1bit,停止位=1bit,无奇偶校验。 帧格式形如:$aaccc,ddd,ddd,…,ddd*hh 1、“$”——帧命令起始位 2、aaccc——地址域,前两位为识别符,后三位为语句名 3、ddd…ddd——数据 4、“*”——校验和前缀 5、hh——校验和(check sum),$与*之间所有字符 ASCII 码的校验和(各字 节做异或运算,得到校验和后,再转换 16 进制格式的 ASCII 字符。) 6、——CR(Carriage Return) + LF(Line Feed)帧结束,回车和 换行 GPGGA GPS 固定数据输出语句, 这是一帧 GPS 定位的主要数据, 也是使用最广的数据。
$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>*<1 5> <1> UTC 时间,格式为 hhmmss.sss。 <2> 纬度,格式为 ddmm.mmmm(前导位数不足则补 0)。 <3> 纬度半球,N 或 S(北纬或南纬)。 <4> 经度,格式为 dddmm.mmmm(前导位数不足则补 0)。

RS485主从式多机通讯协议

RS485主从式多机通讯协议 一、数据传输协议 此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。 此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息按本协议发出。 1、数据在网络上转输 控制器通信使用主—从技术,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据作出相应反应。 主设备可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则从设备不作任何回应。协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、一错误检测域。 从设备回应消息也由协议构成,包括确认要行动的域、任何要返回的数据、和一错误检测域。如果在消息接收过程中发生一错误(无相应的功能码),或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。 2、在对等类型网络上转输 在对等网络上,控制器使用对等技术通信,故任何控制都能初始和其它控制器的通信。这样在单独的通信过程中,控制器既可作为主设备也可作为从设备。 在消息位,本协议仍提供了主—从原则,尽管网络通信方法是“对等”。如果一控制器发送一消息,它只是作为主设备,并期望从设备得到回应。同样,当控制器接收到一消息,它将建立一从设备回应格式并返回给发送的控制器。 3、查询—回应周期 (1)查询 查询消息中的功能代码告之被选中的从设备要执行何种功能。数据段包含了从设备要执行功能的任何附加信息。错误检测域为从设备提供了一种验证消息内容是否正确的方法。 (2)回应 如果从设备产生一正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。数据段包括了从设备收集的数据。如果有错误发生,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。错误检测域允许主设备确认消息内容是否可用。 二、传输方式 控制器能设置传输模式为RS485串行传输,通信参数为9600,n,8,1。在配置每个控制器的时候,在一个网络上的所有设备都必须选择相同的串口参数。 地址功能代码数据数量数据1 ...….数据n CRC字节 每个字节的位 · 1个起始位 · 8个数据位,最小的有效位先发送 · 1个停止位 错误检测域 · CRC(循环冗余码校验) 三、消息帧

GNSS输出NEMA协议解析

GNSS 导航芯片输出 NEMA 协议解析 1. NEMA 协议的由来 NMEA 协议是为了在不同的 GPS (全球定位系统)导航设备中建立统一的 BTCM (海事无线电技术委员会)标准,由美国国家海洋电子协会( NMEA-The National Marine Electronics Associa-tion )制定的一套通讯协议。GPS接收机根据NMEA-0183 协议的标准规范,将位置、速度等信息通过串口传送到 PC 机、PDA 等设备。 NMEA-0183 协议是 GPS 接收机应当遵守的标准协议,也是目前 GPS 接收机上使用最广泛的协议,大多数常见的GPS接收机、GPS数据处理软件、导航软件都遵守或者至少兼容这个协议。 NMEA-0183 协议定义的语句非常多,但是常用的或者说兼容性最广的语句只有$GPGGA $GPGSA 、 $GPGSV 、 $GPRMC 、 $GPVTG 、 $GPGLL 等。下面给出这些常用 NMEA-0183 语句的字段定义解释。$GPGGA 例: $GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,19.7,M,,,,0000*1F 字段 0: $GPGGA ,语句 ID,表明该语句为 Global Positioning System Fix Data (GGA )GPS 定位信息 字段 1 : UTC 时间, hhmmss.sss ,时分秒格式 字段 2:纬度 ddmm.mmmm ,度分格式(前导位数不足则补 0) 字段3:纬度N (北纬)或S (南纬) 字段 4 :经度 dddmm.mmmm ,度分格式(前导位数不足则补 0 ) 字段 5: 经度 E(东经)或 W(西经) 字段 6: GPS 状态, 0=未定位, 1=非差分定位, 2=差分定位, 3=无效 PPS , 6=正在估算 字段 7: 正在使用的卫星数量( 00 - 12 )(前导位数不足则补 0) 字段 8 : HDOP 水平精度因子( 0.5 - 99.9 ) 字段 9: 海拔高度( -9999.9 - 99999.9 ) 字段 10: 地球椭球面相对大地水准面的高度 字段 11 : 差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空) 字段 12: 差分站 ID 号 0000 - 1023 (前导位数不足则补 0,如果不是差分定位将为空) 字段 13: 校验值

Gps协议解析

GPS卫星定位接收器的NMEA协议解析 GPS接收机只要处于工作状态就会源源不断地把接收并计算出的GPS导航定位信息通过串口传送到计算机中。前面的代码只负责从串口接收数据并将其放置于缓存,在没有进一步处理之前缓存中是一长串字节流,这些信息在没有经过分类提取之前是无法加以利用的。因此,必须通过程序将各个字段的信息从缓存字节流中提取出来,将其转化成有实际意义的,可供高层决策使用的定位信息数据。同其他通讯协议类似,对GPS进行信息提取必须首先明确其帧结构,然后才能根据其结构完成对各定位信息的提取。对于本文所使用的GARMIN GPS 天线板,其发送到计算机的数据主要由帧头、帧尾和帧内数据组成,根据数据帧的不同,帧头也不相同,主要有"$GPGGA"、"$GPGSA"、"$ GPGSV"以及"$GPRMC"等。这些帧头标识了后续帧内数据的组成结构,各帧均以回车符和换行符作为帧尾标识一帧的结束。对于通常的情况,我们所关心的定位数据如经纬度、速度、时间等均可以从"$GPRMC"帧中获取得到,该帧的结构及各字段释义如下: $GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>*hh <1> 当前位置的格林尼治时间,格式为hhmmss <2> 状态, A 为有效位置, V为非有效接收警告,即当前天线视野上方的卫星个数少于3颗。 <3> 纬度, 格式为ddmm.mmmm <4> 标明南北半球, N 为北半球、S为南半球 <5> 径度,格式为dddmm.mmmm <6> 标明东西半球,E为东半球、W为西半球 <7> 地面上的速度,范围为0.0到999.9 <8> 方位角,范围为000.0到359.9 度 <9> 日期, 格式为ddmmyy <10> 地磁变化,从000.0到180.0 度 <11> 地磁变化方向,为E 或W 至于其他几种帧格式,除了特殊用途外,平时并不常用,虽然接收机也在源源不断地向主机发送各种数据帧,但在处理时一般先通过对帧头的判断而只对"$GPRMC"帧进行数据的提取处理。如果情况特殊,需要从其他帧获取数据,处理方法与之也是完全类似的。由于帧内各数据段由逗号分割,因此在处理缓存数据时一般是通过搜寻ASCII码"$"来判断是否是帧头,在对帧头的类别进行识别后再通过对所经历逗号个数的计数来判断出当前正在处理的是哪一种定位导航参数,并作出相应的处理。 附:NMEA0183常用协议格式 说明:NMEA0183格式以“$”开始,主要语句有GPGGA,GPVTG,GPRMC等

RS485通讯协议

RS485 通讯协议 RS-232与RS-422之间转换原理和接法 通常我们对于视频服务器、录像机、切换台等直接播出、切换控制主要使用串口进行,主要使用到RS-232、RS-422与RS-485三种接口控制。下面就串口的接口标准以及使用和外部插件和电缆进行探讨。 RS-232、RS-422与RS-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议。例如:视频服务器都带有多个RS422串行通讯接口,每个接口均可通过RS422通讯线由外部计算机控制实现记录与播放。视频服务器除提供各种控制硬件接口外,还提供协议接口,如RS422接口除支持RS422的Profile 协议外,还支持Louth、Odetics、BVW等通过RS422控制的协议。 RS-232、RS-422与RS-485都是串行数据接口标准,都是由电子工业协会(EIA)制订并发布的,RS-232在1962年发布。RS-422由RS-232发展而来,为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mbps,传输距离延长到4000英尺(速率低于100Kbps时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和突保护特性,扩展了总线共模范围,后命名为TIA/EIA485-A标准。 1. RS-232串行接口标准 目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯。收、发端的数据信号是相对于信号地。典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在5~-15V电平。当无数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回 TTL电平。接收器典型的工作电平在+3~+12V与-3~-12V。由于发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20Kbps。RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为3kΩ~7kΩ。所以RS-232适合本地设备之间的通信。 2. RS-422与RS-485串行接口标准 (1)平衡传输 RS-422、RS-485与RS-232不一样,数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B。通常情况下,发送驱动器A、B之间的正电平在+2~+6V,是一个逻辑状态,负电平在-2V~6V,是另一个逻辑状态。另有一个信号地C,在RS-485中还有一“使能”端,而在RS-422中这是可用可不用的。“使能”端是用于控制发送驱动器与传输线的切断与连接。当“使能”端起作用时,发送驱动器处于高阻状态,称作“第三态”,即它是有别于逻辑“1”与“0”的第三态。 (2)RS-422电气规定 由于接收器采用高输入阻抗和发送驱动器比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10个节点。即一个主设备(Master),其余为从设备(Salve),从设备之间不能通信,所以RS-422支持点对多的双向通信。RS-422四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式(XON/XOFF握手)或硬件方式(一对单独的双绞线)实现。RS-422的最大传输距离为

NMEA0183协议说明(中文)

NMEA-0183协议说明 V2.20 2004年1月 注:因本人水平有限,难免出现错,敬请修改。

1、NMEA输出报文 A. GGA –全球定位系统固定数据 $GPGGA,161229.487,3723.2475,N,12158.3416,W,1,07,1.0,9.0,M,,,,0000*18

B. GLL –地理信息——纬度/经度 $GPGLL, 3723.2475,N,12158.3416,W,161229.487,A*2C C. GSA –GNSS DOP(定位点)活动卫星 $GPGSA, A,3,07,02,26,27,09,04,15,,,,,,1.8,1.0,1.5*33

和表1.7应互换) D. GSV –GNSS DOP(定位点)活动卫星 $GPGSV,2,2,07,07,79,048,42,02,51,062,43,26,36,256,42,27,27,138,42*71

E. RMC –推荐的最小具体定位数据 $GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120598,,*10

$GPVTG,309.62,T,,M,0.13,N,0,2,K*6E NMEA 输入报文提供了允许通过NMEA协议控制GPS的方法。 传输格式: 1.起始符包含3个字节,从MID100开始(Message identifier consisting of three numeric characters. Input messages begin at MID 100.)。?????? 2.具体数据,特定的数据序列。 3.NMEA定义的校验是2个HEX的字符,适用于所有输入报文。

ZNJC2 RS485通讯 modbus 协议

_ MODBUS 通讯协议说明 1. 通讯相关的参数 2.通讯说明 2.1 数据格式说明 控制器采用RS-485总线,协议符合ModBus 规约,数据格式有标准MODBUS-RTU 、 非标准MODBUS-RTU(16进制)和ASC(ASC Ⅱ码)3种格式。 数据传输均采用8位数据位、1位停止位、无奇偶校验位。波特率可设为2400、4800、9600和19200 bit/s 。 通讯传送分为独立的信息头,和发送的编码数据。以下的通讯传送方式定义与RTU 通讯规约相兼容: 2.2 非标准MODBUS-RTU(16进制)数据格式详细说明 下面以RTU(16进制)数据格式进行详细说明,ASC Ⅱ码数据格式只是把16进制代码 转换成ASC Ⅱ码字符。 地址码:这个字节表明由用户设定地址码的从机将接收由主机发送来的信息。并且每个从机都有具有唯一的地址码,并且响应回送均以各自的地址码开始。主机发送的地址码表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。 功能码:通讯传送的第二个字节。ModBus 通讯规约定义功能号为01H 到7FH 。本控制器利用其中的一部分功能码。作为主机请求发送,通过功能码告诉从机执行什么动作。作为从机响应,从机发送的功能码与从主机发送来的功能码一样,并表明从机已响应主机进行操作。如果从机发送的功能码的

最高位 (比如功能码大于7FH),则表明从机没有响应操作或发送出错。 数据区:数据区是根据不同的功能码而不同。 CRC码:二字节的错误检测码。 当通讯命令发送至仪器时,符合相应地址码的设备接通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务;然后把执行结果返送给发送者。返送的信息中包括地址码、执行动作的功能码、执行动作后结果的数据以及错误校验码。如果出错就不发送任何信息。 2.2.2 信息帧格式: (1)地址码: 地址码是信息帧的第一字节(8位),从1到255。这个字节表明由用户设置地址的从机将接收由主机发送来的信息。每个从机都必须有唯一的地址码,并且只有符合地址码的 从机才能响应回送。当从机回送信息时,相当的地址码表明该信息来自于何处。 (2)功能码: 主机发送的功能码告诉从机执行什么任务。表2列出的功能码都有具体的含义及操作。 (3 数据区包含需要从机执行什么动作或由从机采集的返送信息。这些信息可以是数值、参考地址等等。例如,功能码告诉从机读取寄存器的值,则数据区必需包含要读取寄存器 的起始地址及读取长度。对于不同的从机,地址和数据信息都不相同。 (4)错误校验码: 主机或从机可用校验码进行判别接收信息是否出错。有时,由于电子噪声或其它一些干扰,信息在传输过程中会发生细微的变化,错误校验码保证了主机或从机对在传送过程 中出错的信息不起作用。这样增加了系统的安全和效率。错误校验采用CRC-16校验方法。 注: 信息帧的格式都基本相同:地址码、功能码、数据区和错误校验码。 2.2.3 错误校验 参与冗余循环码(CRC)计算的包括:地址码、功能码、数据区的字节。 冗余循环码包含2个字节,即16位二进制。CRC码由发送设备计算,放置于发送信息的尾部。接收信息的设备再重新计算接收到信息的 CRC码,比较计算得到的CRC码是否与接收到的相符,如果两者不相符,则表明出错。 CRC码的计算方法是,先预置16位寄存器全为1。再逐步把每8位数据信息进行处理。在进行CRC码计算时只用8位数据位,起始位及停止位,如有奇偶校验位的话也包括奇偶校验位,都不参与CRC码计算。 在计算CRC码时,8位数据与寄存器的数据相异或,得到的结果向低位移一字节,用0填补最高位。再检查最低位,如果最低位为1,把寄存器的内容与预置数相异或,如果最低位为0,不进行异或运算。 这个过程一直重复8次。第8次移位后,下一个8位再与现在寄存器的内容相异或,这个过程与以上一样重复8次。当所有的数据信息处理完后,最后寄存器的内容即为CRC码值。 计算CRC码的步骤为: (1).预置16位寄存器为十六进制FFFF(即全为1)。称此寄存器为CRC寄存器; (2).把第一个8位数据与16位CRC寄存器的低位相异或,把结果放于CRC寄存器; (3).把寄存器的内容右移一位(朝低位),用0填补最高位,检查最低位(注意:这时的最低位指移位前 的最低位,不是移位后的最低位); (4).如果最低位为0:重复第3步(再次移位)

RS485通信协议

串行数据通信的协议从RS-232到千兆位以太网,虽然每种协议都有特定的应用领域,但任何情况下我们都必须考虑成本和物理层(PHY)性能。 本文主要介绍RS-485协议及该协议所适合的应用。同时给出了根据电缆长度、系统设计以及元件选择来优化数据速率的方法。 传输协议 什么是RS-485?Profibus又是什么?与其它串行协议相比,它们的性能如何?适用于哪些应用?为了回答这些问题,我们对RS-485 物理层(PHY)、RS-232和RS-422的特性、功能进行了总体比较[1](本文中的RS表示ANSIEIA/TIA标准)。 RS-232是一个最初用于调制解调器、打印机及其它PC外设的通讯标准,提供单端20kbps的波特率,后来速率提高至1Mbps。RS-232的其它技术指标包括:标称±5V发送电平、±3V接收电平(间隔/符号)、2V共模抑制、2200pF最大电缆负载电容、300最大驱动器输出电阻、3k最小接收器(负载)阻抗、100英尺(典型值)最大电缆长度。RS-232只用于点对点通信系统,不能用于多点通信系统,所有RS-232系统都必须遵从这些限制。 RS-422是单向、全双工通信协议,适合嘈杂的工业环境。RS-422规范允许单个驱动器与多个接收器通信,数据信号采用差分传输方式,速率最高可达50Mbps。接收器共模范围为±7V,驱动器输出电阻最大值为100,接收器输入阻抗可低至4k。 RS-485标准 RS-485是双向、半双工通信协议,允许多个驱动器和接收器挂接在总线上,其中每个驱动器都能够脱离总线。该规范满足所有RS-422的要求,而且比RS-422稳定性更强。具有更高的接收器输入阻抗和更宽的共模范围(-7V至+12V)。 接收器输入灵敏度为±200mV,这就意味着若要识别符号或间隔状态,接收端电压必须高于+200mV或低于-200mV。最小接收器输入阻抗为12k,驱动器输出电压为±1.5V(最小值)、±5V(最大值)。 驱动器能够驱动32个单位负载,即允许总线上并联32个12k的接收器。对于输入阻抗更高的接收器,一条总线上允许连接的单位负载数也较高。RS-485接收器可随意组合,连接至同一总线,但要保证这些电路的实际并联阻抗不高于32个单位负载(375)。 采用典型的24AWG双绞线时,驱动器负载阻抗的最大值为54,即32个单位负载并联2个120终端匹配电阻。RS-485已经成为POS、工业以及电信应用中的最佳选择。较宽的共模范围可实现长电缆、嘈杂环境(如工厂车间)下的数据传输。更高的接收器输入阻抗还允许总线上挂接更多器件。

NMEA通讯协议详解

NMEA通讯协议详解 说起NMEA协议,只要接触过GPS设备的人,或者说是要用到GPS设备研发的人都知道,这是一个很常用的GPS通讯协议,而且也有很多人遇到关于NEMA协议的一些问题,我忽然有一个想法,就是按照自己对这个协议的一些理解,写一点这方面的东西,看是不是能帮刚刚入门的人解答一些疑问,由于笔者水平有限,这个东西也只能算是一个简单介绍,就算是知识普及吧,希望能引高手出来大家一起讨论。好了,言归正传,我们开始吧! GPS(全球定位系统)接收机与手持机之间的数据交换格式一般都由生产厂商缺省定制,其定义内容普通用户很难知晓,且不同品牌、不同型号的GPS接收机所配置的控制应用程序也因生产厂家的不同而不同。所以,对于通用GPS应用软件,需要一个统一格式的数据标准,以解决与任意一台GPS的接口问题。NMEA-0183数据标准就是解决这类问题的方案之一。NMEA协议是为了在不同的GPS导航设备中建立统一的RTCM(海事无线电技术委员会)标准,它最初是由美国国家海洋电子协会(NMEA—The NationalMarine Electronics Association)制定的。NMEA协议有0180、0182和0183这3种,0183可以认为是前两种的升级,也是目前使用最为广泛的一种 NMEA通讯协议硬件接口 符合NMEAO183标准的GPS接收机的硬件接口能够兼容计算机的RS-232C协议串口,然而,严格来说NMEA标准不是RS-232C,规范推荐依照EIA422(也称为RS-422)。是一个与RS-232C不同的系统。标准RS-232C采用负逻辑,即逻辑“1”表示-5V~-15v,逻辑“0”表示+5V~+15V,利用传输信号线和信号地之间的电压差进行传输。而EIA-422是利用导线之间的信号电压差来传输信号的,其每个通道要用两条信号线,一条是逻辑“1”,~条是逻辑“0”,通过传输线驱动器和传输线接收器实现逻辑电平和电位差之间的转换,一般允许驱动器输出为±2V~±6V 。 虽然存在区别,但在实际使用中,如果只是接收GPS的输出.则只需两根信号线GPS数据输出线和信号地线,可以直接将EIA-422输出通道两条信号线的中一条同计算机的Rs232C 输入线相连(这个方法我并没有试验过,是从别的地方听来的,有兴趣有条件的兄弟可以动手实验一下,不过后果自负哦!呵呵)。 NMEA通讯协议所定义的标准通讯接口参数为: 波特率:4800bit/s; 数据位:8位; 停止位:1位; 奇偶校验:无; NMEA-OI83语句解析 NMEA通讯协议所规定的通讯语句都已是以ASCII码为基础的,NMEA-0183协议语句的数据格式如下:“$”为语句起始标志;“,”为域分隔符;“ *”为校验和识别符,其后面的两位数为校验和,代表了“$”和“*”之间所有字符的按位异或值(不包括这两个字符);“/”为终止符,所有的语句必须以来结束,也就是ASCII 字符的“回车”(十六进制的0D)和“换行”(十六进制的0A)。 典型的NMEA0183语句如下面的GPGGA语句。

变频器与上位机RS485通讯协议介绍讲解

变频器与上位机的通讯:浅述RS485通讯协议 引言:当上位机与变频器构成控制系统时,上位机和变频器可以通过特定的通讯协议实现数据交换,这样上位机就可以随时控制每一台变频器的工作状况,并及时做出响应。本文介绍一下一种常用的上位机和变频器通讯协议RS485通讯协议 1、概述 本文专门介绍一种变频器的RS485通讯接口,用户可通过PC/PLC实现集中监控(设定变频器参数和读取、控制变频器的工作状态),以适应特定的使用要求。 1.1协议内容 该串行通讯协议定义了串行通讯中传输的信息内容及使用格式。其中包括:主机轮询(或广播)格式:主机的编码方法,内容包括:要求动作的功能代码,传输数据和错误校验等。从机的响应也是采用相同的结构,内容包括:动作确认,返回数据和错误校验等。如果从机在接收信息时发生错误,或不能完成主机要求的动作,它将组织一个故障信息作为响应反馈给主机。 1.2应用方式: (1)变频器接入具备RS485总线的“单主多从”PC/PLC控制网。(2)变频器接入具备RS485/RS232(转换接口)的“点对点”方式的PC/PLC监控后台。 2、总线结构及协议说明 2.1总线结构

(1)接口方式 RS485(RS232可选,但需自备电平转换附件) (2) 传输方式 异步串行、半双工传输方式。在同一时刻主机和从机只能有一个发送数据,而另一个只能接收数据。数据在串行异步通讯过程中,是以报文的形式,一帧一帧发送。 (3)拓扑方式 单主站系统,最多32个站,其中一个站为主机、31个站为从机。从机地址设定范围为0~30,31(1FH)为广播通讯地址。网络中的从机地址必须是唯一的。点对点方式实际是作为单主多从拓扑方式的一个应用特例,即只有一个从机的情况。 2.2协议说明 此种变频器的通讯协议是一种串行的主从通讯协议,网络中只有一台设备(主机)能够建立协议(称为“查询/命令”)。其它设备(从机)只能通过提供数据响应主机的查询/命令,或根据主机的命令/查询做出响应的动作。主机在此处指个人计算机(PC)、工控机和可编程控制器(PLC)等,从机指的是变频器。主机既能对某个从机单独访问,又能对所有的从机发布广播消息。对于单独访问的主机查询/命令,从机都要返回一个信息(响应);对于单独访问的主机查询/命令,从机都要返回一个信息(称为响应);对于主机发出的广播信息,从机无需反馈响应给主机。 注意:和RS485通讯有关的参数的设定。

NEMA0183协议

NMEA0183协议 Glenn Baddeley - GPS - NMEA senten ce information All $GPxxx sentence codes and short descripti ons ?$GPAAM - Waypoint Arrival Alarm ?$GPALM - GPS Almanac Data ?$GPAPA - Autopilot format "A" ?$GPAPB - Autopilot format "B" ?$GPASD - Autopilot System Data ?$GPBEC - Bearing & Distance to Waypoint, Dead Reckoning ?$GPBOD - Bearing, Origin to Destination ?$GPBWC - Bearing & Distance to Waypoint, Great Circle ?$GPBWR - Bearing & Distance to Waypoint, Rhumb Line ?$GPBWW - Bearing, Waypoint to Waypoint ?$GPDBT - Depth Below Transducer ?$GPDCN - Decca Position ?$GPDPT - Depth ?$GPFSI - Frequency Set Information ?$GPGGA - Global Positioning System Fix Data

?$GPGLC - Geographic Position, Loran-C ?$GPGLL - Geographic Position, Latitude/Longitude ?$GPGRS - GPS Range Residuals ?$GPGSA - GPS DOP and Active Satellites ?$GPGST - GPS Pseudorange Noise Statistics ?$GPGSV - GPS Satellites in View ?$GPGXA - TRANSIT Position ?$GPHDG - Heading, Deviation & Variation ?$GPHDT - Heading, True ?$GPHSC - Heading Steering Command ?$GPLCD - Loran-C Signal Data ?$GPMSK - Control for a Beacon Receiver ?$GPMSS - Beacon Receiver Status ?$GPMTA - Air Temperature (to be phased out) ?$GPMTW - Water Temperature ?$GPMWD - Wind Direction ?$GPMWV - Wind Speed and Angle ?$GPOLN - Omega Lane Numbers ?$GPOSD - Own Ship Data ?$GPR00 - Waypoint active route (not standard) ?$GPRMA - Recommended Minimum Specific Loran-C Data ?$GPRMB - Recommended Minimum Navigation Information

相关主题