【问题标题】:How to create a tunnel between two half-duplex serial ports?如何在两个半双工串口之间建立隧道?
【发布时间】:2013-08-26 21:13:14
【问题描述】:

我正在开发一个嵌入式项目,其中包括两个半双工 UART 和一个全双工 UART。

UART1 连接到Device A。UART2 连接到Device B,UART3 连接到PC。 UART1 和 UART2 是半双工的,因此必须正确配置 RX/TX 模式。

当触发 UART1 上的信号时,UART2 从设备 B 获取一些数据。这些数据被放入缓冲区,然后传输回 UART1 和 UART3。设备 A 消耗数据,并在 UART1 上发送更多项目,然后必须将其传递到 UART2 以供设备 B 响应。

我正在考虑一个高效的状态机,它可以处理 TX/RX 模式之间的切换模式,到目前为止,我的 UART 代码是中断驱动的。有什么方法可以解决这个程序的流程?

【问题讨论】:

    标签: embedded microcontroller avr uart atmega


    【解决方案1】:

    我认为您在这种情况下不需要状态机。为什么不相应地连接所有中断并将从一个设备接收到的任何内容转发到其他设备?

    您可能希望包含一个 TX(环形)缓冲区以适应每个 UART 的不同速度,然后只需让一个 RX-ISR 将接收到的数据写入相应的 TX 缓冲区,然后从那里接收由其他 UART 的 UDRE-ISR 消耗。

    【讨论】:

      猜你喜欢
      • 2020-12-21
      • 2012-05-16
      • 2021-05-20
      • 1970-01-01
      • 2011-10-10
      • 2013-12-04
      • 2011-03-31
      • 2011-10-24
      • 2016-03-27
      相关资源
      最近更新 更多