使用NI-VCOM工具包2025 Q3或更高版本为CAN应用添加自定义的Checksum

更新 Mar 19, 2026

环境

软件

  • Vehicle Communication Toolkit 2025 Q3

驱动

  • NI-XNET

从Vehicle Communication Toolkit 2025 Q3版本开始,新增了PSPRFM(发送前接收后帧处理)模块,替换原来的Custom Interface用于计算自定义的Checksum。本文将介绍如何使用该模块实现自定义的Checksum算法。

  1. 参考将NI Linux RT交叉编译工具链与Visual Studio Code结合使用为Linux RT配置编译工具链,参考使用Visual Studio生成用于自定义校验和的Windows Dll文件为Windows配置编译工具链。 
  2. 准备包含自定义Checksum算法的 C 代码文件“ RCPSPRFM_Module.cpp ”。以下代码是一个Checksum算法示例。Checksum信号是字节0,Checksum算法是将所有其他字节相加。

在第二个if条件中,“ pEvent->event.msg.m_uIdc == 0x1D1 ”表示只有帧0x1D1会应用此Checksum算法。如果没有此条件,则所有传输帧都会应用此Checksum算法。

  1. 对于Linux RT,编译RCPSPRFM_Module.cpp生成libTbPSPRFMtest.so时确保不会出现任何错误。

so 文件位于“ ......\build\bin\ ”文件夹中。

对于Windows系统,将RCPSPRFM_Module.cpp编译成dll文件。该dll文件位于“ ......\x64\Release\ ”文件夹中。

  1. 对于Linux RT系统,请将附件中的libTbPSPRFMtest.dll文件放入“<VeriStand 项目文件夹>\VCOMConfiguration_Controller\”文件夹,并将您的so文件上传到RT系统的/c/ni-rt/NIVeriStand/Custom Devices/NI VCOM/文件夹。请务必确保这两个文件的名称相同。

在Windows系统上:

在Linux RT上:

对于Windows系统,请勿使用附件中的DLL文件。您应该生成自己的DLL文件,其中包含您自定义的Checksum算法。

  1. <NIXNETCustomInterface>Path_To_DLL/SO</<NIXNETCustomInterface>标签已不再使用。请在VCOMConfig.xml文件中添加<PSPRFMPath>Name_Of_DLL</PSPRFMPath>标签。您需要使用文本编辑工具编辑此XML文件。在更高版本的VCOM中,您可以通过WebUI配置面板或VeriStand中的配置工具定义PSPRFMPath。

  1. 打开VeriStand System Explorer窗口,导航至VCOM->Set VCOM Configuration->Save,然后关闭配置文件窗口。信号树窗口将打开,如下所示。

[PortName].FrameManipulation.TX_enable用以启用发送帧的Checksum计算,[PortName].FrameManipulation.RX_enable 用以启用接收帧的Checksum计算。

  1. 将VeriStand System Definition文件部署到Linux RT系统。libTbPSPRFMtest.dll将被识别为外部库路径。不用担心,VCOM会加载与dll文件同名的so文件。

如果您在使用新模块时遇到任何问题,请联系我们的技术支持。

注意: 附件中的PSPRFM Module_Linux RT.zip文件适用于Linux RT系统,PSPRFM Module_Windows.zip文件适用于Windows系统,您可以直接使用。