工具/软件:CCS、CAN FD 分析仪
嗨、
我的项目需要通过 CAN FD 在主站和 9 个从站之间进行通信。 从主器件 (ID:10、0xA) 到所有从器件 (ID 1、2、3... 9) 被广播、作为回报、我将从器件编程为以单帧确认进行响应。
测试时、当 CAN FD 总线上有主器件和 4 个从器件时、为了响应广播的数据、我只观察到最多两个从器件、它们在 CAN FD 总线分析器软件工具上以确认帧进行响应。
我确信其他两个从器件正在接收数据、因为我有一个在接收后运行的计数器、我还观察到响应(从主器件接收数据后从从器件传输到主器件)帧正在进行结构化、但我无法判断其是否实际发送。
单独来看、如果只有 主器件、从器件和 CAN FD 分析仪、则会按照 CAN FD 软件工具上的显示发送确认、但仅当有多个从器件时、我才会遇到此问题。
主广播数据 ID 配置:
txMsg[0][BROADCAST_CONTROLOLDATA].id =(MCU << 12)|(0 << 8)|(BROADCAST_CONTROLOLDATA << 4)|(1);
txMsg[0][BROADCAST_CONTROLDATA].Rtr = 0u;
txMsg[0][BROADCAST_CONTROLOLDATA].XTD = 1;
txMsg[0][BROADCAST_CONTROLOLDATA].ESI = 0U;
txMsg[0][BROADCAST_CONTROLOLDATA].DLC = 15;
txMsg[0][BROADCAST_CONTROLOLDATA].1U = brs;
txMsg[0][BROADCAST_CONTROLOLDATA].FDF = 1U;
txMsg[0][BROADCAST_CONTROLOLDATA].efc = 1U;
txMsg[0][BROADCAST_CONTROLDATA].mm = 0xAAU;
(主器件和从器件的所有参数都是相同的,但下面指定用于从器件确认的参数除外)
tx Msg_Config_Para_ st.id =(LCU_NODE_id << 12)|(MCU_ID << 8)|(BROADCAST_CONTROLRAATA << 4)|(6);
tx Msg_Config_Para_ st.data[0]= 0x06;
tx Msg_Config_Para_ st.DLC = 4U;
数据比特率为 5Mbps、而仲裁比特率为 500Kbps。 我假设总线太忙,无法容纳 2 个以上的 LCU,这就是为什么总线上 4 个从器件发送的所有 4 个确认信息不总是由主器件读取的原因。 我有另一个计数器声明为主 器件程序中的数组、当主器件收到特定从器件的确认时、该数组的元素递增。
由于总线上有 4 个从器件、所有这些都编程相同、因此 我获得不同数量的确认。 在 主控制卡中接收确认时也有很多随机性。
如果您需要我提供其他数据来解决此问题、请告知我。
此致、
Nalin P.

(数据中总线上只有 7 个本地节点和一个主节点) 
