我正在从信息娱乐系统中读取一些 frames ,并且我得到了多个 frames ,它们形成了一个“包”(让我们这么称呼它),它形成了一个文本。无线电单元发送的每个帧都由显示模块接收,该显示模块发送回具有相同数据的 confirmation 帧(如确认),除了无线电发送的数据包的最后一帧,confirmation帧与其他帧有一点不同。在多条消息上测试了很长时间。
现在,为了移除显示,我需要知道包有多长(多少 frames)才能在我的应用程序中使用它,但是如果没有显示模块发送的不同确认帧,我将无法继续我的项目。
我的问题是,显示模块如何知道它需要接收多少个 frames ?是否有可能在接收到的第一帧的某个位中(我尝试过检查,但没有一个位具有与包的 frames 长度数相关的模式)?是别的吗?我知道帧上的确认位,但这只是用于检查是否有任何设备接收到该帧(该 CAN 网络上大约有 6 个模块,所以这就是为什么我相信显示器会发送 confirmation frames)。
我是CAN初学者,欢迎提供任何有用的信息。
回答1
所以看起来这种包含超过 7 个字节数据的包使用 https://en.m.wikipedia.org/wiki/ISO_15765-2 协议,该协议在第一帧的第二个字节中指定了该包的字节数包含。