传输协议:数据传送消息(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 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | |
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
|
| | | | |
|
|
|
|
数据帧第一字节为帧序号,从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 的连接超时等等)