在J1939中多帧数据如何发送,它是通过TP.CM_BAM和TP_DT报文发送

1,多帧报文是通过专门的多帧发送报文来传递发送的,
其中常见的由DM1报文(故障读取的报文)
RC报文(缓速器扭矩特性报告的报文)
还由ETC7(AMT相关的报文)
2,那么这些多帧是如何发送到总线上的?
这个时候就要用到TP.CM_BAM和TP_DT报文了
首先如果是单帧报文,那么他们用各自的ID直接发送到总线上
如果是多帧数据就需要用到TP_DT了,
例如:DM1多帧发送故障数据到总线,那么发送的过程是如下:
首先发送TP.CM_BAM,其中包含的信息有:
ID :18ECFF10 + Control byte +故障信息的大小,字节总数+包的个数+DM1的PGN(FECA)
然后发送TP.DT多帧数据,其中包含的信息有:
多帧数据的序号+多帧数据
3,如果发送的是单帧数据,那么则直接发送一条DM1就可以了,但是事实上这种TP.CM_BAM和TP_DT报文组合方式,发送多帧情况很多。
DM1多帧发送故障,两个故障一般就会出现多帧的情况因为一般灯的故障状态就需要占用四个字节,故障占用4个字节,两个故障共用灯故障的情况下占用10个字节,也就是两帧数据了,所有这种种组合式的多帧数据发送在J1939种是很常见的

你可能感兴趣的:(嵌入式开发,C语言基础)