世纪电源网社区logo
社区
Datasheet
标题
返回顶部
讨论

【武】GBT27930通讯协议中的TP协议总结

[复制链接]
查看: 3932 |回复: 4
1
caidao
  • caidao
  • 离线
  • LV3
  • 助理工程师
  • 积分:289
  • |
  • 主题:7
  • |
  • 帖子:44
积分:289
LV3
助理工程师
  • 2016-11-22 15:08:13
GBT27930通讯协议中的TP协议总结

河许*李某

GB T 27930-2015 电动汽车非车载传导式充电机与电池管理系统之间的通信协议中,当报文数据>8个字节时,要使用传输协议TP进行虚拟联接传输,以下是相关协议的总结,有错误的地方请不吝指正。
相关技术信息主要来源于GBT27930和SAE J1939-21:2006两相标准,例子来源于测试报文。
传输协议功能(GB/T 27930-2015/2011)

BMS与充电机之间传输9~1785字节的数据使用传输协议功能,连接初始化、数据传输、连接关闭应遵循SAE J1939-21:2006中的5.4.7和5.10消息传输的规定。
对于多帧报文,报文周期为整个数据包的发送周期。

TP协议内帧报文时间间隔10ms(GBT27930定义)

传输协议:连接管理消息

这类消息类型用于建立和关闭连接,以及控制数据流。传输协议提供了以下六种传输协议连接管理消息:
连接模式下的请求发送,连接模式下的准备发送,消息结束应答,放弃连接,以及广播公告消息。

  
帧ID格式
  
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
未用
P
R
DP
PF
PS
SA



28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0

  
连接管理帧 PGN:0x00EC00
  
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
未用
111
0
0
1110 11000xEC
PS(目标地址)
SA(源地址)



28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0


  
TP.CM_RTS 连接模式下请求发送,只能由发送者发送
  
例:ID:0x1cec56f4    DATA10 29 00 06 ff 00 02 00
ID
数据
说明

1
控制字节,值=0x10(16);向目标地址请求发送RTS

2,3
整个消息大小,字节数目,有效范围:9~1785,其它值禁用。低字节在前(低序号字节)。

4
全部数据包的数目,有效范围:1~2550禁用。

5
保留,设置为0xFF

6~8
传输数据的参数组(PGN)编号。
1.          通知一个节点(目标地址节点),网络上有另一节点(源地址节点)希望和它建立虚拟连接。
  
2.          如果接收到来自同一源地址的关于相同PGN多组RTS消息,那么最新的RTS有效,以前的丢弃,不需要为被丢弃的RTS消息发送放弃连接消息。

  
TP.CM_CTS 连接模式下准备发送,由响应者发送
  
例:ID: 0x1cecf456  DATA:11 06  01 ff ff 00 02 00
ID
数据
说明

1
控制字节,值=0x11(17);目标地址准备发送。响应RTS,说明可以发送。

2
可发送的数据包数目。范围0~2550=暂停

3
下一个将发送的数据包编号。范围1~255

4,5
保留,设置为0xFFFF

6~8
传输数据的参数组(PGN)编号。
1.          用于回答请求发送消息。通知对方节点,已经准备好接收一定量的长消息数据。
  
2.          如果连接已经建立,还收到多组CTS消息,连接将被关闭。
  
3.          如果发送者放弃连接,会发送放弃连接消息。
  
4.          响应者只有等到它已经接收到来自前一个CTS消息的数据包,或者工作超时,才会发送下一条CTS消息。
  
5.          如果在连接尚未建立时接收到 CTS 消息,那么该消息将被忽略。
  
6.          CTS 消息不但控制数据流,还可以确认在该CTS 消息数据包编号之前的所有数据包被正确接收。因此,如果前一个CTS 的信息被破坏,那么应该在继续发送队列中的下一个数据包前,为被破坏的信息发送一条CTS 消息。
TP.CM_EndofMsgAck 消息结束应答,由响应者发送
例:ID: 0x1cecf456  DATA: 13 29  00 06 ff 00 02 00
ID
数据
说明

1
控制字节,值=0x13(19);消息结束应答,说明接收方结束了连接。

2,3
整个消息大小,字节数目。范围1~1785,其它值禁用。

4
全部数据包的数目。

5
保留,设置为0xFF

6~8
传输数据的参数组(PGN)编号。
1.          TP.CM_EndofMsgACK 消息是由长消息的响应者传送给消息的发送者,表示整个消息已经被接收并正确重组。
  
2.          在最后一个数据传输完成后,响应者可以通过不马上发送TP.CM_EndofMsgACK 消息来维持连接。这样可以在需要时让响应者得到重发的数据包。
  
3.          如果发送者在最后的数据传输之前接收到消息结束应答,那么发送者将忽略这条应答消息。
TP.CM_Abort 放弃连接,发起方可以是数据发送方或接收方
例:ID:0x1cec56f4    DATAff ff ff ff ff 00  02 00
ID
数据
说明

1
控制字节,值=0xFF(255);放弃连接。

2~5
保留,值=0xFFFFFFFF

6~8
传输数据的参数组(PGN)编号。
1.    消息用于让虚拟连接中的任一节点在没有完成整个消息的传输时关闭连接。
  
2.    如果响应者当前无能力进行传输,即使连接尚未建立,也可以发送放弃连接消息。这样做可以使发送者无需先等到超时产生才去尝试别的虚拟连接。
  
3.    无论是发送者还是响应者,在数据传输完成之前,由于任何原因,包括超时,决定关闭连接,它都应该发送一条放弃连接消息。
  
4.          在接收到放弃连接消息后,发送者应该马上停止传输数据。如果这样不可行,那么在停止传送数据包的过程中不能发送超过32个数据包或超过50 毫秒。
  
5.          在发送或接收了放弃连接消息后,所有相关的已接收数据包都会被忽略。




收藏收藏1
caidao
  • caidao
  • 离线
  • LV3
  • 助理工程师
  • 积分:289
  • |
  • 主题:7
  • |
  • 帖子:44
积分:289
LV3
助理工程师
  • 2016-11-22 15:08:33
  • 倒数4
 
传输协议:数据传送消息(TP.DT)

TP.DT 消息用于与同一个参数组相关的数据通讯。它是指多组消息传送中的一个单独的数据包。例如,如果一条长消息为了通讯被分割成5个数据包,那么将有5 个TP.DT消息。
TP.DT 消息只能由发送者发送。

连接的限制:

如果一个节点不能再处理增加的会话通讯,那么它应该拒绝其他节点的建立连接要求。(如果是个独立的线程来处理桩和BMS的通讯,同时只可能会维持一个TP连接,是点对点的,没有其它设备)
同样的,如果这时出现一条RTS消息,它的源地址和目标地址都与已存在的会话通讯相同但参数组PGN不同,那么它也会被拒绝。(就是一个TP传输没有完成,又开始了另一个PGN的传输)在这些情况下,新的会话请求都会通过放弃连接消息被拒绝。这样做可以使设备无需等到超时产生才转移到一个新的连接。(如果是点对点的充电线程不会出现新连接的状态,只会维持一个连接)

网络上每个节点每次可以产生一个带有指定目标地址的指定目标地址连接传送。这是因为TP.DT 消息只包含要传送数据的源地址和目标地址,而非PGN 值。

接收方必须使用目标地址和源地址来保持消息的数据接收正确。

传输协议是为了对带有9字节或以上数据的PGN 进行传送提供一种机制而制定出来的。如果一个可被定义为多组消息的PGN,在特殊情况下要传送少于9 个字节的消息,那么它应该使用一个DLC 被设为8 的独立CAN 数据帧来发送。

并发PGN接收:

一些特定的PG 可能当它们少于或等于8 个字节时,会使用非传输协议的形式来发送,而当它们大于8 个字节时,则使用传输协议的形式来发送。也有可能同一PG 的两种形式同时进行发送。
需要注意的是,使用PGN 的非传输协议形式发送并不被认为是一次会话,所以它的发送不会停止同一PGN 值的传输协议形式的发送。

发至指定目标地址的多组消息中,数据包之间的时间间隔是0 200 毫秒(GBT27930协议设定为10ms)。这意味着当标志符相同时可能产生背对背消息。使用CTS 机制可以确保数据包之间有指定的时间间隔。多组广播消息中,数据包之间所需要的时间间隔是50 200 毫秒。50 毫秒的最短时间可以保证响应者有时间从CAN 硬件中收取数据。这时,响应者应使用250 毫秒的超时(为200毫秒的时间间隔提供了余量)。
  
数据传送帧 PGN:0x00EB00
  
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
未用
111
0
0
1110 10110xEB
PS(目标地址)
SA(源地址)



28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0



1
C
E
B




数据帧第一字节为帧序号,从01开始
  
例:
  
同一参数组数据,第一字节表示此帧在参数组中的序号
  
0x1ceb56f4, 01 00 01 00 03 a0 0f e0  
  
0x1ceb56f4, 02 15 48 52 43 45 ff ff
  
0x1ceb56f4, 03 ff ff ff ff ff ff ff
  
0x1ceb56f4, 04 22 01 ff 86 02 00 40
  
0x1ceb56f4, 05 00 00 00 00 00 00 00
  
0x1ceb56f4, 06 00 FF FF FF FF FF FF

时间参数定义:

两方中的任一方发生传输故障也会导致连接的关闭。例如,当收到的最后一个数据包后等待下一个数据包(CTS 允许有更多)的时间间隔大于(T1)秒;当一条CTS 消息被发送后等待时间大于(T2)秒(发送者发生故障);当发送了一个数据包后等待CTS 或者ACK 消息的时间大于(T3)秒(响应者发生故障);在CTS(0)消息后等待下一条CTS 来保持连接,但等待时间大于(T4)秒,这些都将会导致关闭连接发生。见附录C 中的图C1和5.12.3 节关于超时的部分。无论发送者还是响应者,由于某一原因(包括超时)决定要关闭连接,它都应该发出一条放弃连接消息。
在传输指定目标地址消息时,由响应者负责调整节点间的数据流控制。在一个开放的连接中,如果响应者想即刻停止数据流,它必须使用准备发送消息CTS把它要接收的数据包数目设置为0。当数据流传输需要停止几秒时,响应者必须每0.5 秒(Th)重复发送一次准备发送消息,来告知发送者连接没有中断。其他所有剩余的数据域都设为1(无关重要)。

(GBT27930,目前在测试机构的测试中,似乎没有对TP协议内部的相关时序进行要求和检测,简化了?)
TP发送RTS,等待响应,超时值为T3,响应方必须在Tr时间内进行响应RTS;
    接收方收到CTS后,在T2时间内发送数据报文;
    数据报文发送周期Tr 10ms,接收方超时值为T1;
    接收方发送保持连接停止数据传输CTS报文周期Th,发送方等待连接状态更新超时值T4;


1.        Tr=200 mS
数据间最大报文间隔时间,所有的设备在被要求做出响应时,必须在200ms内做出。数据包间的时间间隔0~200ms
2.        Th=500 mS
数据流控制CTS报文发送周期
3.        T1=750 mS
数据包之间超时值
4.        T2=1250 mS
接收方收到CTS报文响应后,至发送方数据发送的超时时间
5.        T3=1250 mS
所有等待响应的设备必须在放弃或重试前,至少等待T3(可以为特定应用使用不同的时间值)
6.        T4=1050 mS
流量控制,两条CTS之间的超时值
适用于请求发送/准备发送消息的连接关闭,包括:
1. 在以下状况,可以认为连接被关闭,即发送者:
a.在完成整个 PGN 的数据传输时接收到TP.CM_EndOfMsgAck 消息
b.由于某种原因发送了放弃连接消息(例如,由于一次 T3 或者T4 的超时)
c.接收到放弃连接消息
2. 在以下状况,可以认为连接被关闭,当响应者:
a.在完成整个 PGN 的数据传输时发送了TP.CM_EndOfMsgAck 消息
b.接收到放弃连接消息
c.由于某种原因发送了放弃连接消息(例如,包括希望提早停止通讯,由于一次T1 或者T2 的连接超时等等)

世纪电源网雪花
  • 积分:26546
  • |
  • 主题:719
  • |
  • 帖子:1982
积分:26546
超级版主
  • 2016-11-22 16:32:45
  • 倒数3
 
再补充点通俗易懂的呗

cl0201
  • cl0201
  • 离线
  • LV6
  • 高级工程师
  • 积分:1118
  • |
  • 主题:6
  • |
  • 帖子:218
积分:1118
LV6
高级工程师
  • 2016-12-9 15:10:04
  • 倒数2
 
看来楼主是参与过通信编程的一线人员,只有进行过实际编程才能对协议理解的更加深入,否则只看文档的话会很抽象。
另外,开普对通信协议的检测中包含了对多包数据传输协议功能的检测,不知楼主所说的协议内部的相关时序的检测所指何物?
caidao
  • caidao
  • 离线
  • LV3
  • 助理工程师
  • 积分:289
  • |
  • 主题:7
  • |
  • 帖子:44
积分:289
LV3
助理工程师
最新回复
  • 2016-12-21 09:24:48
  • 倒数1
 
TP协议内部报文的时序
热门技术、经典电源设计资源推荐

世纪电源网总部

地 址:天津市南开区黄河道大通大厦8层

电 话:400-022-5587

传 真:(022)27690960

邮 编:300110

E-mail:21dy#21dianyuan.com(#换成@)

世纪电源网分部

广 东:(0755)82437996 /(138 2356 2357)

北 京:(010)69525295 /(15901552591)

上 海:(021)24200688 /(13585599008)

香 港:HK(852)92121212

China(86)15220029145

网站简介 | 网站帮助 | 意见反馈 | 联系我们 | 广告服务 | 法律声明 | 友情链接 | 清除Cookie | 小黑屋 | 不良信息举报 | 网站举报

Copyright 2008-2024 21dianyuan.com All Rights Reserved    备案许可证号为:津ICP备10002348号-2   津公网安备 12010402000296号