检查两个系统之间的 (USB) 连接中的位错误(用于游戏)
Checking for bit errors in a (USB) connection between two systems (for a game)
我正在做一个小项目,我有两个系统相互通信。以下是一些可能对这个问题有用的信息:
我用的语言是C,游戏是PONG;
我在两个系统上都使用 freeRTOS。 (sys1 和 sys2,sys 1 具有玩家 1 的游戏逻辑、显示和控制器)并且系统通过 USB 连接。
一个系统具有所有游戏逻辑,另一个系统只是玩家 2 的控制器,还显示一些游戏数据(比如哪个玩家得分或获胜)。
我的问题是当我从 sys2 发送数据时进行位检查(例如校验和)是否是个好主意sys1.This 数据是移动玩家 2 的原因。
目前只检查接收到的数据是否为 'a' ,如果是,则玩家移动。我认为实施某些东西可能会很好,但我找不到对性能影响最小的东西。就像现在一样,当 System2 正在侦听来自 system1 的数据时,Player 2 的动作滞后。
如果你的两端都有实际的 USB 接口,那么就不需要错误检查:USB 帧已经包含 CRC,USB 控制器应该确保数据完整性(除非你正在进行同步传输,这是一个糟糕的选择为你的情况)。这是一篇文章,其中包含 USB 框架的精美图片以及其他信息:
https://www.totalphase.com/support/articles/200349256-USB-Background
如果两端都有 USB 转串口,那就另当别论了,但很可能即使那样您也不必担心错误。
我正在做一个小项目,我有两个系统相互通信。以下是一些可能对这个问题有用的信息:
我用的语言是C,游戏是PONG;
我在两个系统上都使用 freeRTOS。 (sys1 和 sys2,sys 1 具有玩家 1 的游戏逻辑、显示和控制器)并且系统通过 USB 连接。
一个系统具有所有游戏逻辑,另一个系统只是玩家 2 的控制器,还显示一些游戏数据(比如哪个玩家得分或获胜)。
我的问题是当我从 sys2 发送数据时进行位检查(例如校验和)是否是个好主意sys1.This 数据是移动玩家 2 的原因。
目前只检查接收到的数据是否为 'a' ,如果是,则玩家移动。我认为实施某些东西可能会很好,但我找不到对性能影响最小的东西。就像现在一样,当 System2 正在侦听来自 system1 的数据时,Player 2 的动作滞后。
如果你的两端都有实际的 USB 接口,那么就不需要错误检查:USB 帧已经包含 CRC,USB 控制器应该确保数据完整性(除非你正在进行同步传输,这是一个糟糕的选择为你的情况)。这是一篇文章,其中包含 USB 框架的精美图片以及其他信息:
https://www.totalphase.com/support/articles/200349256-USB-Background
如果两端都有 USB 转串口,那就另当别论了,但很可能即使那样您也不必担心错误。