我想同时将我的主微控制器的硬件串行端口连接到多个设备。我的理解是,我的微控制器上的 UART 基于低电平有效 5V TTL。
(我知道我在这里解释的内容可以通过使用更合适的协议(例如 SPI 和 I 2 C)在技术上实现,但我的项目只需要使用 UART 来实现。)
这是我想要实现的伪示意图:
请注意:
我不想在主机或任何从机上使用第二个UART 接口。
一次只有一个从站将通过线路向主站传输或发送数据。(例如,如果从机 1 正在传输数据,从机 2 和 3 应该保持空闲。)
无论主设备发送什么,所有从设备都可以并且应该接收到。
所有从站都应该是可热插拔的,这意味着它们可以随时移除或插入。
到主机的 RX 和 TX 线在每个从机之间是平行的,因此没有菊花链。
所以,我的问题如下:
假设考虑了正确的阻抗,我不需要额外的电路来同时将数据从主机的TX线传输到任何从机的RX线。它是否正确?
我知道,如果从机的TX线和主机的RX线之间没有限流电阻,如果任何设备开始广播数据,设备之间的线会短路,我有损坏它们的风险。它是否正确?
假设第 1 项和第 2 项是正确的:
a) 只需要一些限流电阻就足够了吗?
b) 我可以使用 74 系列逻辑门代替电阻吗?
在上面的选项a和b之间,我应该选择什么路线?
对于可靠的115200 波特率连接,
74HC08
与门的开关频率是否足以包含在内?
编辑:我很清楚其他非常适合的协议,例如 SPI 和 I 2 C。我使用 UART 是有原因的,那是因为主 mcu 上使用的optiboot 引导加载程序通过 UART 进行通信,尽管 UART 很明显限制。
此外,虽然菊花链绝对是一种聪明的方法,但由于违反了第四条要求,它也破坏了引导加载程序的功能。
这些设备也可以是 USB-to-Serial 芯片,在这个项目中使用 SPI-to-USB 或 I2C-to-USB 是不可行的。
因此,如果您能专注于此处列出的 6 个问题,并分享您的 UART 知识,我将不胜感激。