如何在微控制器中创建UART通过

时间:2016-09-16 18:26:51

标签: embedded microcontroller

我试图为我的一个项目创建一个UART Pass。但我无法弄清楚我应该如何绑定微控制器的引脚。我使用嵌入式C& Keil编程。

  1. 我正在使用恩智浦p89lpc954微控制器(基于8051)。
  2. 我的要求如下图所示 enter image description here

  3. 我通过UART端口控制传感器。在正常操作下,微控制器程序使用UART-1端口与传感器通信。但是当我将微控制器UART-0端口连接到主机时,我希望主机通过在UART-0和UART-0之间创建通道来直接与传感器通信。 UART-1。

  4. 任何人都可以建议我们如何实现这一目标。

2 个答案:

答案 0 :(得分:4)

通常不可能直接透明地将一个UART连接到另一个UART。您必须提供适当的软件才能将数据从一个UART传输到另一个UART。

如果两个UART以相同的波特率运行,这可能相对简单 - 您可以从一个UART读取Rx寄存器并将值写入另一个UART的TX寄存器(反之亦然,用于双向通信)。如果使用UART中断处理程序实现此功能,则它可能对MCU上运行的其他代码更加透明或更不透明。为了在没有缓冲的情况下工作,您必须确保在发生硬件溢出之前可以将数据从一个UART传输到另一个UART - 您的硬件可能有也可能没有FIFO,因此硬件缓冲可能与Rx一样少寄存器和输入移位寄存器(两个字节)。如果发生其他可能干扰此操作的软件操作,您可能仍需要缓冲。

如果波特率不同,则需要至少为两个端口中的较慢端口提供缓冲,并且您将无法将数据从快速端口流式传输到慢速端口 - 必须暂停数据流以防止缓冲区耗尽。

在某些设备上,通过使用DMA传输可能会显着降低软件开销(我不太可能想象)。

无论如何,您仍然需要软件来启用和配置UART - 没有硬件或简单的“引脚”直通解决方案。

答案 1 :(得分:0)

我建议查看UART配置寄存器或路由寄存器中是否存在UART通过位。除此之外,我只使用从PC UART到传感器UART的飞线。