我有一台电脑(即用作服务器)和几个板与Atmega
微控制器是这样的:广播获取数据在UART
将计算机连接到UART
& RS485
(板带USB
到RS485
转换器)(我有导致我不能采用MODBUS)的限制。我想从广播服务器通过总线消息并从每个板的取ID(板ID是4位)。
当单板收到广播消息并尝试发送自己的ID并且服务器收到一些伪造的ID时,我认为它与所有单板想发送一次中的数据时碰撞问题有关。
之后我搜索一下这个问题找到了一种方法是把一个不断在每个省一个特殊的延迟发送数据,并在董事会收到广播消息与延迟发送ID板......这样它的工作很好,我没有看到碰撞,但有一些问题:
- 可能是2板的延迟数相同。
- 用于电路板的小型计数的好方法。
- 额外的过程要当上巴士安装板。
有人知道这个问题,可以帮助我如何解决这个问题更好的解决方案?
具有共享总线上的多个站点同时回答广播是一个坏主意。客户端主板上是否有一些逻辑尝试检测总线是否已被占用,然后尝试访问它作为答案(这将是CSMA/CD的“CSMA”部分) – tofro
*“...和服务器收到一些虚假的ID“* - 听起来像你需要实现更好的消息完整性检查。 *“但总的来说,它工作得很好”* - 然后你的期望很低,你应该完成,对吗? – sawdust
@sawdust _and服务器接收一些假ID_:我觉得在发现假身份证的错误,但我的问题是**如何防止客户端发送假身份证** ..._但作为整体工作fine_是的,它的工作,但有我有问题说问题。主要问题是_May被2板的延迟数same._,并导致冲突再次... –