小小教员
小小教员
发布于 2025-08-23 / 4 阅读
0
0

CANape发生CAN报文

问题

如何使用 CANape 发送 CAN 报文或 CAN 标志的信号?

答:可以:

可以通过以下步骤实现。在 CANape 中打开Tools | Function Editor 并定义New 项目函数.

Example 1:

例如,定义一个帧,ID 为0x100 ,数据字节填充为0x01 。通过设备ExampleDevice_send 在 CAN 总线上发送帧。

Function SendExchangeFrame ()
{
   ExampleDevice_send.SendMessage(0x100, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01); 
   return ;
}

有关函数SendMessage() 的更多细节,请参阅 CANape 帮助。

Example 2:

下一个示例显示了一个针对现有 CAN 设备ExampleDevice_send 的函数,该设备带有描述文件(DBC 文件),其中描述了信号 (SendSignal_01;SendSignal_02) 。这些信号应发送到 CAN 总线,其中SendSignal_01 的固定值为0x100x20 的固定值为SendSignal_02

Function SendExchangeSignal ()
{
   ExampleDevice_send.SendSignal_01 = 0x10;
   ExampleDevice_send.SendSignal_02 = 0x20; 
   return ;
}

Example 3:

另一个使用场景可以是 XCP 至 CAN 网关。设备XCPSim 的信号channel1channel2 应路由的 CAN 设备XCPtoCAN_V01 的信号XCPtoCAN_Sig_01XCPtoCAN_Sig_02 。XCP 和 CAN 信号的数据类型必须匹配。

Function XCPtoCAN ()
{
  XCPtoCAN_V01.XCPtoCAN_Sig_01 = XCPsim.channel1;
  XCPtoCAN_V01.XCPtoCAN_Sig_02 = XCPsim.channel2;
  return ;
}

下一步打开Start | Measurement Configuration, ,转到Functionsinsert 的测量函数。然后Select 刚刚创建的项目功能SendExchangeFrame();SendExchangeSignal()XCPtoCAN()

通过Measurement mode 可以定义何时调用测量功能,从而何时发送 CAN 报文。在将 XCP 信号路由到 CAN 的情况下,最好使用与 XCP 信号相同的测量模式。


评论