您好,
这里有一些挑战:
我正在尝试设计一个基于低成本组件和良好社区支持的大型树拓扑网络。 I2C似乎在最后两个方面都很好。
理想情况下,大量集线器将采用菊花链式,从而形成较大的树状结构。 在每个集线器之后,此段中的唯一从属设备是下一个集线器。 因此,它更像是点对点,而不是总线。 从模块将在同一项目中设计。 我设想通过向所有人发出广播呼叫并在发送的数据中使用专有寻址系统来寻址它们,以便能够寻址>112个设备。 在每个从属模块上,理想情况下最多可提供14个I2C连接(是的,一个巨大的树结构)。
如果问题不清楚,我可以包括一些草图。
但是,集线器(例如PCA9518)的信号质量似乎取决于其传入信号,因此不能采用菊花链方式。 当树状结构中的上一个集线器降级了传入信号时,下一个模块/集线器有时无法读取传出信号。
因此,我正在寻找一种廉价而快速的解决方案来重新创建每个集线器的原始信号质量,因此,我不会因为涉及大量集线器而降低性能。 可以将一个网段中连接的从属设备的数量限制为仅一个-下一个集线器。 此外,模块之间的距离很短(ca。 20 cm ,中间有一个连接器)
我现在能想到的解决方案是在每个从属模块上使用一个廉价的微处理器,支持I2C作为中继器,以原始质量重新创建I2C信号。 然后,这些信号进入模块上的PCA9518集线器,再从该处进入下一个模块,这些模块执行相同操作。
问题是这种比特冲击解决方案可能会相当缓慢。
那么,是否有更简单,更快速的方法来使用多个链式集线器重新创建原始清晰的信号质量? 可能通过将I2C中继器IC与PCA9518集线器IC相结合?
或者,我是否应该忘记I2C并使用位冲击或集线器,这些集线器可能是针对点对点连接的,例如SerDes,串行背板总线,IEEE1394或CAN? 或者是否值得为该任务对FGPAs进行编程?
这可能是一个不寻常的问题,但任何帮助都将受到极大的赞赏,因为这是项目的一个基本概念问题。
此致,
Christoph