TRDP协议定义了在一个已确认的TRDP服务上Caller和一个或多个Replier之间的MD交换。由于它只用于实时消息数据,因此报文的长度被限制为64 kb。
Roles
在Message Data交互的过程中,有两种角色:
• Caller: Push通信模式中MD消息的源设备;Pull通信模式中MD消息的目的设备
• Replier: Push通信模式中MD消息的目的设备;Pull通信模式中MD消息的源设备
TRDP提供三种MD传输方式:
• 请求消息没有应答 (‘notification’)
• 请求消息有应答但是没有确认 (‘request without confirmation’)
• 请求消息有应答有确认 (‘request with confirmation’)
Push通信模式
支持点对点,点对多点,源设备知道目的设备,源设备不知道目的设备等多种模式
Pull通信模式
支持点对点,点对多点,目的设备知道源设备,目的设备不知道源设备等多种模式
MD报文格式
IEC标准定义MD报文格式如下:
字段 |
长度 |
值 |
描述 |
SequenceCounter |
4字节 |
从0开始计数 |
|
ProtocolVersion |
2字节 |
固定值 |
高字节:MainVersion 低字节:SubVersion 例如:’0102’H=1.2版本 |
MsgType |
2字节 |
‘4D6E‘H (‘Mn’) ‘4D72‘H (‘Mr’) ‘4D70‘H (‘Mp’) ‘4D71‘H (‘Mq’) ‘4D63‘H (‘Mc’) ‘4D65‘H (‘Me’) |
‘Mn’ = Notification (Request without reply) ‘Mr’ = MD Request with reply ‘Mp’ = MD Reply without confirmation ‘Mq’ = MD Reply with confirmation ‘Mc’ = MD Confirm ‘Me’= MD error |
comId |
4字节 |
用户设置 |
用户数据的标识,支持Unspecified报文(ComId=0) |
etbTopoCnt |
4字节 |
0..2的32次方-1 |
The ETB topography counter: • 作为列车的地址来使用IEC 61375-2-5 (parameter ‘etbTopoCnt’) • 用户设置这个字段 • 基于ETB的所有通信都要设置 • 如果设置了有效的opTrnTopoCnt,则这个字段也要设置 • 其它情况设置为0 |
opTrnTopoCnt |
4字节 |
|
The operational train topography counter: • 参照5.3.3章节的介绍来使用 • 用户设置这个字段 • 当需要使用operational train directory中的信息时,设置该字段(例如选路操作) • 当源设备使用operational列车字典来解析目的IP时,需要设置该字段。(例如解析URI ‘vcu.leadVeh.anyCst.anyClTrn.lTrn’) • 其它情况设置为0 |
DatasetLength |
4字节 |
0 ..65388 |
用户数据的长度,以字节数为单位,不包括填充字节 |
ReplyStatus |
4字节 |
< 0: NOK 0: OK > 0: user reply status |
Replier报告request消息执行结果的时候设置,或者caller发送确认消息的时候设置。Replier在reply消息中携带这个字段。 如果是MD error消息,值可能如下: –1 – reserved –2 – session abort –3 – no replier instance (at replier side) –4 – no memory (at replier side) –5 – no memory (local) –6 – no reply –7 – not all replies –8 – no confirm –9 – reserved –10 – sending failed |
SessionId |
16字节 |
计算得到 |
• 能够标识一组“request-reply”会话或“request-reply-confirm”会话 • 能够标识一组”请求-错误”会话 |
ReplyTimeOut |
4字节 |
1..2的32次方-1 0==无限时间 |
在request/reply中使用 在’Mn’, ‘Mp’, ‘Mc’和’Me’中设置为0 |
SourceURI |
32字节 |
|
• 用于寻址功能 • 是一个以空字符结尾的字符串 • 最后用0填充 • URI只包含用户部分,不包括主机部分和@ • 可能是全0的空字符串 |
DestinationURI |
32字节 |
|
• 用于寻址功能 • 应该是一个以空字符结尾的字符串 • 最后用0填充 • URI只包含用户部分,不包括主机部分和@ • 可能是全0的空字符串 |
HeaderFCS |
4字节 |
|
• 根据PD-PDU头计算 • 计算时不包含headerFcs自己 |
Dataset |
0..65388 |
|
必须是4字节的整数倍,不足时补零 |