2.1 设备交互流程
2.1.1 网络管理组网架构
2.1.2 设备接入OMC流程
主设备通过TCP/IP接入OMC,此时OMC作为TCP/IP服务端,主设备作为客户端且主设备IP地址和端口号可设。主设备通过开站上报数据包或者登录包来主动接入OMC。
2.2 协议格式
起始标志 (7E) | AP层协议类型 (01或03) | 承载协议类型 (01) | 数据单元(PDU) | 校验单元 (CRC) | 结束标志 |
2.2.1 起始、结束标志
长度为1字节,固定为ASCII字符‘~’(0x7E)。结束标志的内容与起始标志相同。
2.2.2 AP层协议类型
标识AP层协议的类型,针对承载层和通信方式的要求对上层数据进行编码,以适应和屏蔽不同承载层的特性和差异。接入层承载并保证访问层协议数据的可靠传输,在本监控协议中支持了多种接入层协议。该层协议简称为AP(Access Protocol)。
长度为1字节,对AP:A型协议(本地直连),此值为0x01,对AP:C型协议(以太网),此值为0x03。
2.2.3 承载协议类型
长度为1字节,取值范围:0x01。
2.2.4 数据单元
参看2.3数据单元详细格式
2.2.5 校验单元
根据通信包(从“协议类型”开始,计算到“数据单元”的最后一个字节)生成校验值。校验单元采用CRC校验,生成多项式为CCITT推荐的16位的x16+x12+x5+1(0x11021)。发送方根据通信包生成2字节的CRC检验(传输时低字节在前,高字节在后);同样,接收方收到完整的数据包后,根据通信包生成新的CRC检验值。如果所计算出的CRC值和收到的校验值相同则表明该数据包有效,否则认为该包在传输的过程中产生了差错。
在正式产品中,对校验出错的命令,接收方不处理也不返回任何应答。
2.2.6 转义处理
由于使用16进制方式传输数据,为防止数据中出现与通信包起始标志、结束标志相同的数据而影响这两个标志的判断。在发送和接收时必须进行数据的转义,使用的转义字符是ASCII字符‘^’(0x5E)。范围:在本层协议中,对除起始标志和结束标志外的所有数据。转义规则:用0x5E,0x5D来代替0x5E;用0x5E,0x7D来代替0x7E。
对于需要进行转义后发送的情况,要按照如下的顺序进行操作:发送数据包之前,先生成CRC校验值,再进行转义处理;接收到数据包后,先进行转义处理,再进行CRC校验。
2.3 数据单元详细格式
数据单元由地址单元、通信包标识号、VP层交互标志、控制层协议标识和数据组成。协议内容详见表2 。
地址单元 | 通信包标识号 | VP层交互标志 | 控制层协议标识(CPID) | 数据 |
2.3.1 地址单元
VP:A中地址单元的组成详见下表:
VP:A协议的地址单元组成
序号 | 内容 | 开始位置 | 长度 | 备注 |
| 主单元站点编号 | 1 | 1 | 1-255值 |
| 设备编号 | 2 | 6 | 远端单元编号,如"A01001"其中A表示楼号,"01"表示楼层,“001”表示远端单元编号 |
主单元站点编号 | 设备编号 | |||
1字节 | 1字节 | 2字节 | 1字节 | 2字节 |
主单元站点编号 | 楼号 | 楼层 | 设备类型 | 远端单元编号 |
1~255 | 0~F | 0~255 | 主控单元0x00 | 1~255 |
远端单元0x01 | ||||
*侦测单元0x02 |
主单元站点编号:用于区分不同的主单元
设备编号:6个字节,设备编号为“FFFFFF"表示对主单元下的所有远端单元进行控制,设备编号为“A01FFF"表示对A栋01层的所有远端单元进行控制,设备编号为“A01001”表示对单台远端单元进行控制,设备编号为“000000”表示对主单元进行设置
2.3.2 通信包标识号
长度为2个字节,由发起通信的一端产生,用于标识每个通信包的编号。接收端在接收到之后不处理,而是在返回时将此值原封不动地发回给发起端,以便于发起端分辨通信包。在传输时低字节在前,高字节在后。
本协议将通信包标识号分为三段,其中0x0000~0x7FFF用于监控中心发起的通信,而0x8000~0x8FFF则用于由设备发起的通信,余下的0x9000~0xFFFF则为保留。
2.3.3 VP层交互标志
用于两个实体VP层的信息互通。发起通信的一端用此标志来通知接收端的VP层如何处理通信包(即VP层的命令),接收端则用此标志通知发起端对刚才通信包的执行结果(即VP层的应答)。在通信过程中,使用此标志可以定位通信异常是否发生在VP层。此命令使VP层的功能更为完善。
本协议将该标志分为两段,其中0x80~0xFF用于命令,而0x00~0x7F则用于应答包中。具体的数值所代表的含义见下表。
VP层交互标志定义
VP层交互标志 | 含义 |
0x00 | 通信请求的执行结果,表示执行正常。 |
0x01 | 通信请求的执行结果,表示设备忙,无法处理命令请求。 |
0x02~0x3F | 保留 |
0x40~0x7F | 厂家自定义 |
0x80 | 正常的命令请求。 |
0x81~0xBF | 保留 |
0xC0~0xFF | 厂家自定义 |
2.3.4 控制层协议标识(CPID)的规定
标识VP层所承载的MCP层协议类型。长度为1字节,取值范围:1~255。具体的数值所代表的含义见下表。
规定:160~255为厂家自定义,其它值为系统保留(厂家不能占用)。
数值 | 类型描述 |
0x01 | MCP:A |
2.3.5 数据部分格式
数据部分由命令单元和子数据单元组成。
命令单元 (2字节) | 监控子数据单元 |
命令单元:命令单元的组成格式见表7 ;
数据单元:监控控制层协议的有效载荷(PDU),此部分可以为空(即0个字节)。
2.3.5.1命令单元
命令单元的组成详见下表7 :
序号 | 内 容 | 开始位置 | 长度 | 备注 |
1 | 命令标识 | 1 | 1 |
|
2 | 应答标志 | 2 | 1 |
|
- 命令标识:命令的唯一标识。详见表8。
命令编码 | 含义 | 备注 |
0x00 | —— | 禁止使用 |
0x01 | 设备主动告警(上报) |
|
0x02 | 查询 |
|
0x03 | 设置 |
|
0x10 | 转换到软件升级模式 | 或FTP方式:启动软件升级 |
0x11 | 切换监控软件版本 |
|
0x80~0xFF | 厂家自定义 | 用来留给各个厂家扩充功能使用,此部分的用途由各厂家自己确定 |
其它 | 系统保留 |
|
- 应答标志:作为命令的主动发起方,该字段填0xFF,表示此包为命令,当接收到的命令包该字段中不为0xFF时,则被动接收方不应答。作为应答包,此字段表示被动接收方对命令的执行情况,不能为0xFF。在应答包中,当命令执行成功时,应答标志为0x00,当命令执行不成功时,应答标志为非0x00,同时应将接收到的数据单元返回给发起方。应答标志编码详细见表55 。
编码 | 含义 | 备注 |
0x00 | 成功 |
|
0x01 | 命令被有条件执行 | 具体错误含义要在数据单元中(用监控数据标识)明确指出,仅在设备返回给监控中心时使用 |
0x02 | 命令编号错 | 无效的命令 |
0x03 | 长度错 | 接收到的实际长度与数据包中描述的不相符(有不完整的参数) |
0x04 | CRC校验错 | 仅在调试时使用,正式产品中不返回此信息 |
0x05~0xBF | —— | 系统保留(厂家不能占用) |
0xC0~0xFD | —— | 厂家自定义(监控中心不用处理) |
0xFE | 其它错误 | 此表中未定义到的其它错误 |
0xFF | 命令 | 表示此包为发出的命令,而非命令的应答包 |
注:出错返回时,返回包的应答标志不同则其数据单元内容有所不同:
应答标志为0x01:用数据单元中的监控数据标识来表示设备在处理该监控数据时(一个或多个或全部监控数据)是否发生错误以及错误类型(详见后述),此时监控中心要对数据单元的内容进行解析。
应答标志为非0x01:数据单元的内容与接收的相同,接收方对数据单元的内容不解析。
子数据用于承载监控数据。在子数据单元中一次可以装载一个或多个监控数据。为提高监控信息的传输效率,在一次通信过程中,应装载尽可能多的监控数据。
数据单元可能包含多个字节的数值,为了保证对这些数值的正确解析,现对它们传输时的字节流顺序作如下规定:低字节在前,高字节在后。
对ASCII码格式的多字节流(相当于字符串)不进行倒序,如设备编号“A01001”,实际排列的顺序也为“A01001”。
有符号数统一采用补码形式表示。
监控数据格式如表10:
表10: 监控单元格式
监控数据长度(L) | 监控标识(T) | 值(V) |
1 Byte | 2 Byte | 变长 |
a) 监控数据的长度(L)
标识监控数据结构的长度,指的是从“长度”到“值”的所有字节总数,其本身为1个字节无符号整型数,单位是字节。取值范围为0~255,其中3~255为合法的监控数据长度,0、1、2是不合法监控数据长度。
b)监控数据的标识(T)
监控数据标识是对设备所有监控参数分类后的统一标识,每一个监控数据标识都唯一地确定一个监控参数。
监控数据标识为2个字节的无符号整型数,其可取值范围为0x0000~0xFFFF,协议中使用0x0000~0x0FFF的一段来标识各个监控参数(传输时低字节在前,高字节在后)。
c)监控数据的值(V)
监控数据的值可以是ASCII码字符串、数值或以bit值表示的状态等。