通信控制服务的主要功能是控制非诊断数据通信的收发,从而创造特定的场景。例如当通过UDS协议下载程序时,可使用此服务停止其他非诊断报文停发,从而将带宽都留给下载通信,加快下载速度。
一、响应规则
除正常的响应规则外,当服务端(ECU)已经处在被请求的状态,如已经停止了应用报文,此时又被请求停止应用报文,服务端应当给予肯定响应。
二、应用数据格式
1.请求报文
通信控制服务的请求比前面介绍的几个稍微复杂一些,但平时使用的都只是强制的参数。第一个和第二个就是我们熟悉的服务和子功能参数,第三个是控制类型,子功能用来指明要控制接收还是发送,控制类型则指示要控制的报文类型如应用报文或网络管理报文,后面两个参数只有在使用子功能04和05的时候才会使用。
2.响应报文
响应报文特别简单,只包含响应的服务ID和子功能字节,没有多余的参数。
3.子功能
子功能比较多,这里列一个列表,前四个的含义比较明显,就是字面意思,注意这里的使能和禁止都是针对的非诊断报文。4和5这两个子功能比较特殊,用来控制指定的子网,在请求报文里,可以注意到后面有两个字节是在使用这两个子功能的时候才有的,也就是说这两个地址是用来表示子网网段的标识。4和5可使用的场景目前来看只有LIN网络,但暂时还未遇到有使用这两个子功能的情况。
子功能 | 描述 |
---|---|
0 | enableRxAndTx 使能接收和发送 |
1 | enableRxAndDisableTx 使能接收但禁止发送 |
2 | disableRxAndEnableTx 禁止接收但使能发送 |
3 | disableRxAndTx 禁止接收和发送 |
4 | enableRxAndDisableTxWithEnhancedAddressInformation 将增强地址信息表示的子网切换到诊断调度表,例如常见的LIN |
5 | enableRxAndTxWithEnhancedAddressInformation 恢复增强地址信息表示的子网为正常调度表 |
4.通信类型
通信类型参数用来指示控制指令要控制的报文类别,如应用报文、网络管理报文,具体定义可以参照下表。该参数是基于位编码的,bit0=normalCommunicatonMessages,bit1=networkManagementCommunicationMessages,所以当bit0=1时,也就是下表的“0to1”是1的时候,是通信报文,而当bit1=1时则是网络管理报文,两位都是1的时候也就是3表示这两类报文都受控制。除了低位,高位表示了具体的被控制的子网是哪个,但目前暂时还没有实际应用的案例。