设计网站公司长沙,比较出名的游戏外包公司,网站该怎么做链接,引流渠道推广一、引言 
在测试CANCANFD通信或者网络管理的时候#xff0c;我们经常遇到使用报文#xff08;网络管理报文或者通信报文#xff09;唤醒被测件这个测试点#xff0c;如果测试比较多的情况下#xff0c;我们就会发现#xff0c;如果CANoe没有接被测件或者被测件没有…一、引言 
在测试CANCANFD通信或者网络管理的时候我们经常遇到使用报文网络管理报文或者通信报文唤醒被测件这个测试点如果测试比较多的情况下我们就会发现如果CANoe没有接被测件或者被测件没有打开收发器这时候就会出现CANoe Trace上面没有报文出现这时候就会涉及到今天我们所说的CAN Ack应答。那什么是CAN ack呢 
二、简介 
CAN总线的通信是一个双向的过程也就是说一般情况下发送节点在发送数据的同时会对总线的上的数据进行回读以及ack slot场的判定接收方在发送方发送博文之后需要及时的在总线上进行Ack Slot显性确认以让发送方确认发送的数据已经被接收。 
CAN总线是一种广播形式进行通信的为了保证总线上的每个节点都能接收到正确的报文因此发送方要求接收方接收到报文后需要给出ack应答如果没有则认为接收方没有接收到。这个应答就是在ack位上修改该位置为显性这样发送和接收双方都能够通过这个位来保证信息的传输。 
由于发送者在发送数据的同时会向ACK段连续写入2个隐性位如果发送者在回读过程中监控到ACK SLOT 位为“显性”位则说明接收者已正确接收如果发送者在回读过程中监控到ACK SLOT 位为“隐性”位则说明没有节点正确接收该报文则发送者会检测到这个隐性位而知道发送失败此条报文需要重发。 
再来看我最初提出来的问题有时候我们明明发送了报文但是CANoe Ttrace上却看不到这是为什么呢这个就涉及到CANoe这个工具的强大性了他是可以设置是否给出Ack自应答毕竟CANoe作为一个监控节点如果没有连接被测件就能够将报文发出来这就很容易导致问题的出现比如DUT无法被唤醒这类的问题出现。因此我们可以通过控制是否打开CANoe的自应答来进行不同的测试 
三、手动配置 四、CAPL脚本实现 功能定义通道的自应答功能的激活与停用  channel需要配置的CAN通道CAN1、CAN2、CAN3 … CAN32  activate将对应的CAN通道激活或者停用   0deactivate1active返回值   0设备不支持该功能1设置成功-1其他原因导致设置失败代码示例 
on key 1
{int channel;int activate;// 激活 CAN 通道 1 的 TX Self-ACKchannel  1;activate  1;canActivateTXSelfAck(channel, activate);
}五、CANoe显示结果: 
CAN通道不连DUT设备时 1.不勾选TX Self-ACK时显示异常  2.勾选TX Self-ACK时显示正常自应答