ESP通信协议.docx
《ESP通信协议.docx》由会员分享,可在线阅读,更多相关《ESP通信协议.docx(30页珍藏版)》请在冰豆网上搜索。
ESP通信协议
网管通讯协议
1协议流程
网管信息分为实时信息和普通信息两类。
对于实时信息,如果主机采用询问的方式,可以一次获取一个整网的的所有实时信息;普通信息则采用主从问答的方式处理,即上位机向下位机发送一条查询或者配置的命令,每一条命令通常只对网络中的一端设备,相对应的下位机收到以后,针对该命令进行相应的处理并将结果返回给上位机。
对于网络中的地址自动生成命令,则是按全网同时执行的,上位机只要发起命令,等配置完成时,由上位机查询完成其他的地址收集工作.
2协议格式
上位机下发的命令按其管理方式可分为两种,即本地命令和网络命令。
本地命令仅用于管理本地网管口相连的单端设备,对于局端和远端都适用;网络命令只有在上位机直接与局端设备相连时才有意义,即只有局端才能执行上位机下发的网络命令,远端会返回命令无法识别的错误码。
下位机收到的有效命令全有命令回应帧,若上位机发送命令后在约定的时间内没有回应,则下位机有可能没有收到数据或收帧错,用户应重发命令。
当用户对下位机的配置项改变时,上位机应根据下位机的命令响应帧确定下位机是否接受配置的修改。
协议全部采用ASCII字符。
在下的协议中,所有的本地命令中,地址码不起件用,通常是发”0000”(只有对于全网实时信息发送本地命令时,地址要求与局端的设备地址一致,通常情况,查询全网实时信息使用网络命令,并使用查询网络的局端设备的地址);在使用网络命令时,所有地址有效.
错误代码说明:
1——网管通道接收缓冲区溢出。
2——命令帧校验和错误
3——命令帧内容字符的数量不匹配
4——未知的命令类型
5——命令参数错误
6——因命令执行的对象没有响应导致命令失败
局端设备的地址默认参数为:
MasterNetID=0;SubNetID=0;DeviceAddrID=1。
在以下的命令中,CR代表回车符(十进制ASCII码13),LF代表换行符(十进制ASCII码10),代表空格,多个空格要出现多个这样字符,且字符间要有字字符分隔。
本协议采用异或的校验方式。
校验码产生过程如下:
从帧头后的第一个字符开始,依次与其后的字符进行异或运算,运算结果转换成ASCII码添加到命令帧的结尾。
协议中所用的参数凡涉及到有效范围的,由命令发起端保证其可靠性。
协议中凡涉及到对下位机进行参数设置的,由命令发起端负责对设置结果进行检验,一般流程为:
发起设置命令——〉收到响应命令——〉发起查询命令——〉收到响应命令——〉检查结果。
为了查阅方便,以下命令格式中用下划线“”分隔命令码,实际传送的命令不包含下划线“”。
&——上位机下发命令的帧头。
@——上位机下发本地命令的帧头。
*——上位机下发网络命令的帧头。
&——下位机上发命令的帧头。
vv——校验。
CR——帧尾。
3基本命令集
3.1t命令:
查询设备的局远端特性/
命令格式:
本地名令:
&@txxxxvvCR
网络命令:
&*txxxxvvCR
回应:
&txxxxC[R]nmvvCR
命令解释:
本命令用于查询设备的局远端特性。
xxxx代表地址号。
C[R]:
如果设备为局端,则返回C,否则返回R。
n:
如果设备的EEPROM0是好的,则返回T,否则返回F。
m:
如果设备的EEPROM1是好的,则返回T,否则返回F。
附加说明:
无。
测试例子:
局端:
发送:
&@t000034
接收:
&t0001C36
远端:
发送:
&@t000034
接收:
&t0002R24
注:
上面例子中的最后两位是校验,下回回应的后两位也是校验,且后都有CR没有显示.在下的测试例子中,都有同此处.
3.2I命令:
清空设备地址/
命令格式:
网络命令:
I9999vvCR
命令解释:
本命令为广播命令,用于清空网络上所有设备的地址。
附加说明:
本命令只在局端执行有效。
且没有回应;为确保此命令能安全执行,通常在间隔300ms左右时,连续执行3-5次.
3.3g命令:
查询网络配置信息/
命令格式:
本地名令:
&@gxxxxvvCR
网络命令:
没有
回应:
&gxxxxT[F]vvCR
命令解释:
本命令用于查询设备构成网络时,其地址信息的配置情况。
xxxx代表地址号。
T[F]:
如果当前网络所有设备的地址信息配置已经完成,则返回T,否则返回F。
附加说明:
1.本命令只在局端执行有意义;若对远端执行该命令,则无响应。
2.执行该命令时,最好用的“I”命令将全网设备的地址配置信息清零,然后用“j”命令启动地址自动配置,最后再用本命令查询网络配置情况。
3.如果全网已配置完成,执行本命令后会返回T;此时,执行清楚地址命令,再执行本命令后会返回F;再执行地址配置过程,在过程中执行本命令后会返回F;上述过程若没有执行址清楚命令,也可以执行地址生成过程,在全网地址配置完成的情况下直接执行地址生成过程,在过程中,执行本命令后会返回T(True).
4.此命令通常用于栓测地址生成过程是否完成.
测试例子:
局端:
发送:
&@g000027
接收:
&g0001F20或者&g0001T32
远端:
发送:
&@g000027
接收:
无回应
3.4j命令:
地址配置/
命令格式:
本地名令:
&@jxxxxpvvCR
网络命令:
&*jxxxxpvvCR
回应:
&jxxxxpnnsvvCR
命令解释:
本命令用于配置设备的地址信息。
p——参数:
为“R”表示查询设备的地址配置信息:
这里是除特殊字符及本命令中已用子命令以外的其他字符都可以
为“c”表示清除地址配置信息,地址置为0;
为“a”表示启动地址自动配置流程;
为“k”,”1”,”2”,”3”,”4”,”5”,”6”,”7”,”0”保留,用于调试;
为“m”表示设置MasterNetID,SubNetID及DeviceAddrID。
这是在不用自动地址生成时使用,不推荐用户自已使用此方式.地址的组成格式,见下面的命令.(DeviceAddrID一般不设置)
另外,回应中,nn是表示这个子网中的地址生成的的站数,包括局端站在内,
回应中的s表示地址生成正在执行的过程,除刚发送时回应0外,其他回应0时表示地址生成过程已完成.
附加说明:
(1)当参数p=“a”或“m”时,仅当下位机为局端时才有意义;
(2)当参数p=“c”时,通过局端发出网络命令可以将网络上的任一端设备的地址清空。
本命令只能一次清除一端,这也是与I命令的区别.可以为网络命令
(3)当参数p=“R”时,只适用于本地命令。
(4)从局端启动地址配置到全网设备(最多30端)地址配置完成,大约需要10秒。
3.5e命令:
查询连接关系/
命令格式:
本地命令:
&@exxxxvvCR
网络命令:
&*exxxxvvCR
回应:
&exxxxAaaaaAxBbbbbBxvvCR
命令解释:
本命令用于查询设备级连端口的连接关系。
xxxx表示地址号,编码格式是以ASCII码表示的十六进制数据,有效值为0x0000-0xFFFF,这16位数据(bit15..bit0)分成3个位段,依次为
MasterNetID:
bit12..bit8;
SubNetID:
bit7...bit5;
DeviceAddrID:
bit4…bit0;
aaaa和bbbb分别对应A向、B向端口所接设备的编址信息,数据格式同上。
Ax和Bx无意义。
附加说明:
本地命令中的地址号xxxx可以为任意值,网络命令中的地址号xxxx为与查询的下位机地址信息,回应命令中的地址号xxxx为下位机实际的地址信息;如果网络中不存在与网络命令中的地址号xxxx相对应的设备,则该网络命令无响应。
测试例子:
局端:
发送:
&@e000025
接收:
&e0001A0004B000261
发送:
&*e00014E
接收:
&e0001A0004B000261
发送:
&*e00034C
接收:
&e0001A0002B000463
远端:
发送:
&@e000025
接收:
&e0000A0003B000160
3.6Y命令:
查询相邻局端设备的网络ID
命令格式:
本地名令:
&@YxxxxvvCR
回应:
&YxxxxMSvvCR
命令解释:
本命令用于双局端构成环网时,通过一台局端查询另外一台局端的网络ID,包括主网ID(MaterNetID),子网ID(SubNetID)。
如果当前查询的局端处于双局端构成的环网中,回应消息中的”MS”构成的8位数据分别对应如下。
如果当前查询的局端只处于单局端构成的网络中时,回应消息中的”MS”构成的8位数据都是FF。
附加说明:
本命令只对局端有意义,主网ID(MaterNetID)和子网ID(SubNetID)不能同时为0。
测试例子:
3.7z命令:
查询设备类型,软件版本,协议版本,设备序列号和设备MAC值/
命令格式:
本地名令:
&@zxxxxvvCR
网络命令:
&*zxxxxvvCR
回应:
&zxxxxDDSSPP[ID11..ID0MAC11..MAC0]vvCR
命令解释:
本命令用于查询设备类型ID,软件版本和协议版本信息
DD——bit7…bit0,设备类型ID。
0——设备为ESP620。
SS——bit7…bit0,软件版本。
PP——bit7…bit0,协议版本。
ID11..ID0——如果设备类型为ESP322,则ID11..ID0共12个字符对应设备的序列号。
MAC11..MAC0——如果设备类型为ESP322,则MAC11..MAC0共12个字符对应设备的MAC地址。
附加说明:
无。
3.8%命令:
设置设备序列号和设备MAC值
命令格式:
本地命令:
&@%xxxxMW11110000WMID11..ID0MAC11..MAC0vvCR
回应:
&%xxxxMW11110000WMID11..ID0MAC11..MAC0vvCR
命令解释:
本命令用于设置设备序列号和设备MAC值。
MW11110000WM:
为设置的密码
ID11..ID0——如果设备类型为ESP322,则ID11..ID0共12个字符对应设备的序列号。
MAC11..MAC0——如果设备类型为ESP322,则MAC11..MAC0共12个字符对应设备的MAC地址。
附加说明:
该命令用于出厂配置,仅用于本地设置。
3.9N命令:
设置站名/
命令格式:
本地名令:
&@NxxxxstringsvvCR
网络命令:
&*NxxxxstringsvvCR
回应:
&NxxxxstringsvvCR
命令解释:
本命令用于设置设备的站名。
xxxx代表地址号。
strings:
设备的站名,最多15个字符。
附加说明:
设置时,本地命令回应时间最大1000ms网络命今回应时间最大3000ms。
测试例子:
局端:
发送:
&@N0000mmm11B
接收:
&N0000mmm15A
远端:
发送:
&@N0000MW11110000WM57
接收:
&N0000MW11110000WM17
3.10n命令:
查询站名/
命令格式:
本地名令:
&@nxxxxvvCR
网络命令:
&*nxxxxvvCR
回应:
&nxxxxstringsvvCR
命令解释:
本命令用于查询设备的站名配置。
xxxx代表地址号。
strings:
设备的站名,最多15个字符。
附加说明:
无。
测试例子:
局端:
发送:
&@n00002E
接收:
&n0001ABCDEFGHIJKLMNO2F
远端:
发送:
&@n00002E6
接收:
&n0000ABCDEFGHIJKLMNO2E
3.11o命令:
查询用户接口Parameter0
命令格式:
本地名令:
&@oxxxxvvCR
网络命令:
&*oxxxxvvCR
回应:
&oxxxxstringsvvCR
命令解释:
本命令用于查询设备的用户接口Parameter0,此用户接口可为用户提供一个传递串行信息的通道。
xxxx代表地址号。
strings:
设备的用户接口Parameter0字符串,最多15个字符。
附加说明:
无。
测试例子:
局端:
发送:
&@o00002F
接收:
&o0001abcdefghijklmno0E
远端:
发送:
&@o00002F
接收:
&o0000abcdefghijklmno0F
3.12O命令:
设置用户接口Parameter0
命令格式:
本地名令:
&@OxxxxstringsvvCR
网络命令:
&*OxxxxstringsvvCR
回应:
&OxxxxstringsvvCR
命令解释:
本命令用于设置设备的用户接口Parameter0,此用户接口可为用户提供一个传递串行信息的通道。
xxxx代表地址号。
strings:
设备的用户接口Parameter0字符串,最多15个字符。
附加说明:
设置时,本地命令回应时间最大1000ms网络命今回应时间最大3000ms。
。
3.13(命令:
查询用户接口Parameter1
命令格式:
本地名令:
&@(xxxxvvCR
网络命令:
&*(xxxxvvCR
回应:
&(xxxxstringsvvCR
命令解释:
本命令用于查询设备的用户接口Parameter1,此用户接口可为用户提供一个传递串行信息的通道。
xxxx代表地址号。
strings:
设备的用户接口Parameter1字符串,最多15个字符。
附加说明:
无。
3.14)命令:
设置用户接口Parameter1
命令格式:
本地名令:
&@)xxxxstringsvvCR
网络命令:
&*)xxxxstringsvvCR
回应:
&)xxxxstringsvvCR
命令解释:
本命令用于设置设备的用户接口Parameter1,此用户接口可为用户提供一个传递串行信息的通道。
xxxx代表地址号。
strings:
设备的用户接口Parameter1字符串,最多15个字符。
附加说明:
设置时,本地命令回应时间最大1000ms网络命今回应时间最大4000ms。
。
3.15w命令:
查询设备板卡硬件配置情况
命令格式:
本地名令:
&@wxxxxStartAddressAddressLengthvvCR
网络命令:
&*wxxxxStartAddressAddressLengthvvCR
回应:
&wxxxxStartAddressAddressLengthST…ST(AddressLength) vvCR
命令解释:
本命令用于查询设备的板卡状态。
xxxx代表地址号。
StartAddress:
用户所要查询的板卡的起始地址,有效值:
0x0..0x3。
AddressLength:
用户所要查询的板卡的数量,有效值:
0x0..0x3。
ST…ST(AddressLength):
板卡状态,
S——板卡的类型:
=0,8个电口普通卡(8Tx);
=1,4个电口普通卡(4Tx);
=2,2个光口普通卡(2Fx);
=3,4个光口普通卡(4Fx);
=4,2个光口组环卡。
T——板卡的状态:
=0,板卡不存在;
=1,板卡存在。
如,AddressLength=3,STSTSTST为:
01112131
其意义为:
槽位0,1,2,3依次存在8Tx卡,4Tx卡,2Fx卡,4Fx卡。
附加说明:
该命令仅对ESPGG系列设备有效。
3.16F命令:
恢复默认配置/
命令格式:
本地名令:
&@FxxxxvvCR
网络命令:
&*FxxxxvvCR
回应:
&fxxxxDefaultvvCR
命令解释:
本命令用于恢复设备的默认配置。
xxxx代表地址号。
Default:
如果配置成功,则返回该字符串,否则返回Fail。
附加说明:
本命令响应时间大约需要2~3秒钟。
测试例子:
局端:
发送:
&@F000006
接收:
&F0001Default2C
远端:
发送:
&@F000006
接收:
&F0002Default2F
4扩充命令集
4.1i命令:
查询设备的实时信息/
命令格式:
本地命令:
&@ixxxxvvCR
回应:
&innssppaaqqtthhff…vvCR
命令解释:
本命令用于查询设备的实时信息。
注意,虽然是本地命令,但此命令的地址是有效的,程序中有比较地址判断。
“回 应”信息中包括通过局端查询到的实时信息,根据不同的设备类型,回应参数中的设备端口部分信息也会不同:
nn——设备所在网络的MasterNetID(bit7..bit3)和SubNetID(bit2..bit0);
ss——该局端设备所管理网络中的设备数量。
pp——综合信息:
bit7表示该端设备通讯是否正常,1为通迅正常,0为通讯失败;
bit6,bit5表示双路电源的告警情况(bit6..bit5),bit6对应电源P2,bit5对应电源P1;为1表示告警,为0表示无告警;P2和P1以设备外壳标示为准
aa——设备类型(bit7..bit5)和设备自身的地址ID(bit4..bit0);
qq——设备端口1-8的链路告警情况,每个端口占一位,即
端口1:
bit0;
端口2:
bit1;
…
端口8:
bit7;
相应位为1表示链路发生告警,为0表示链路无告警。
端口号见设备外壳标示。
tt——设备端口1-8的链路连接情况,每个端口占一位,即
端口1:
bit0;
端口2:
bit1;
…
端口8:
bit7;
相应位为1表示链路连接成功,为0表示链路未连接。
端口号见设备外壳标示。
hh——设备端口1-8的10/100M工作模式,每个端口占一位,即
端口1:
bit0;
端口2:
bit1;
…
端口8:
bit7;
相应位为1表示链路为100M工作模式,为0表示链路为10M工作模式。
端口号见设备外壳标示。
ff——设备端口1-8的全双工/半双工工作模式,每个端口占一位,即
端口1:
bit0;
端口2:
bit1;
…
端口8:
bit7;
相应位为1表示链路为全双工工作模式,为0表示链路为半双工工作模式。
端口号见设备外壳标示。
…——设备端口n的链接情况及10/100M工作模式。
附加说明:
本命令只对局端有效。
如果网络上全部设备的地址信息已经配置,则局端会返回所查询设备的实时状态信息,上位机管理软件可以利用本命令将网络上所有设备的工作状态反映出来。
测试例子:
局端:
发送:
&@i0000
接收:
&i
4.2h命令:
电源实时告警使能设置/
命令格式:
本地名令:
&@hxxxxpvvCR
网络命令:
&*hxxxxpvvCR
回应:
&hxxxxpvvCR
命令解释:
本命令用于控制设备电源的实时告警使能功能。
p——对应4位二进制位,从高到低依次为bit3,bit2,bit1,bit0,其中bit3,bit2暂无意义,bit1,bit0分别对应设备外壳上标示的电源P2和P1。
相应位为1时表示启动该路电源的告警功能;为0时表示关闭该路电源的告警功能。
如果,发送的p=’R’,则回应的p是内部的设置
注意:
默认状态下,电源告警是打开的。
附加说明:
当启用实时告警上报功能时,局端会将网络上设备的告警情况实时地发送给上位机管理软件。
以下情况会引发报警:
(1)网络上任一端设备双路电源之一发生故障;
(2)如果启动了设备端口链路告警功能(k命令),则当该端设备端口线路链接发生故障时会产生实时告警;否则当任意一端设备的级连端口故障时会产生实时告警。
4.3^命令:
设备本地实时状态查询(远端命令)
命令格式:
本地名令:
&@^xxxxvvCR
回应:
&^xxxxppnnssddvvCR
命令解释:
本命令用于本地查询设备的时实告警及端口状态。
pp——本端设备的电源告警状态,bit6(0x40)是P2电源告警,bit5(0x20)是P1电源告警。
nn——本端设备的端口告警状态,bit7-bit0对应ESP620中的8-1端口告警,告警的条件是,设置了相应端口的告警使能且此端口的连接状态为非连接。
对应的位为1时表示告警.
ll——本端设备的端口连接状态,bit7-bit0对应ESP620中的8-1端口,对应的位为1时表示网线连接好。
ss——本端设备的端口速率连接状态,bit7-bit0对应ESP620中的8-1端口,对应的位为1时表示速率为10M,为0时,表示端口速率为100M。
dd——本端设备的端口全双工连接状态,bit7-bit0对应ESP620中的8-1端口,对应的位为1时表示设备工作在半双工状态,为0时,表工作在全双工状态。
附加说明:
(1)端口号为设备外部标示端口号;
(2)默认
4.4k命令:
端口链路告警使能设置/
命令格式:
本地名令:
&@kxxxxpqevvCR
网络命令:
&*kxxxxpqevvCR
回应:
&kxxxxpqevvCR
命令解释:
本命令用于控制端口链路告警使能功能。
pq——端口号,有效值为0x00-0x1F。
e——为1表示启动;为0表示关闭。
如果e=‘R’,则反回的e是内部的设置.
注意:
默认状态下,链路告警是关闭的。
附加说明:
(3)端口号pq为设备外部标示端口号;
(4)作为组成环网用的端口不受该命令控制。
4.5H命令:
端口工作模式设置/
命令格式:
本地名令:
&@HxxxxppmnvvCR
网络命令:
&*HxxxxppmnvvCR
回应:
&HxxxxppmnvvCR
命令解释:
本命令用于控制端口的发送/接收使能,自动协商,10/100/1000M,Full/HalfDuplex工作模式。
pp——端口号,有效值为0x00-0x1F。
m,n——端口的工作模式,共8位[bit7..bit0]
bit7——为0表示自动协商使能;为1表示自动协商关闭。
默认为0。
bit6——为1表示100M;为0表示10M。
默认为1。
bit5——