代码之家  ›  专栏  ›  技术社区  ›  Dan

RS232通信-我能用它来创建一个稳定状态信号吗?

  •  4
  • Dan  · 技术社区  · 16 年前

    老实说,我认为答案是“不”;不过,我想听听第二种意见。基本上,我需要一个微控制器设备向另一个设备发送稳定的信号,但它们之间的通信使用的是RS232。所以我认为我必须创建/更新通信消息,让它做我想做的。

    你怎么认为?

    8 回复  |  直到 16 年前
        1
  •  7
  •   tvanfosson    16 年前

    您应该能够设置诸如DTR(数据终端就绪)、引脚20或DSR(数据集就绪)、引脚6之类的高电平,并将其作为稳态信号保存在那里。这就是调制解调器/终端如何检测到另一端有准备好通信的设备。这完全取决于您通过驱动程序对硬件的访问级别。

    [编辑]这不涉及发送数据,尽管您仍然可以使用TX/RX、插脚2和3进行发送。

    RS-232 Reference 论维基百科

        2
  •  3
  •   old_timer    16 年前

    你是说固定电压?不是方波?(字母U)break命令怎么样(如果你想称它为命令)?

    当然,如果这有帮助的话,你可以使用其中一条控制线……或者你是专门在Tx之外寻找什么?

        3
  •  1
  •   Will Dean    16 年前

    如果问题是“我能改变TX线的直流状态吗”,那么答案是可以要求许多UART(包括PC中的UART)创建一个“中断”状态,这与该线的正常空闲状态相反。

    所以你可以打开和关闭“break”,然后像这样切换线条。

        4
  •  0
  •   Nate    16 年前

    如果您不介意一个类似于突发的接口,那么可以这样做。一个micro可以发送一个字节,另一个可以对该字节做一些事情,并将其作为响应发送回去。

        5
  •  0
  •   Adam Davis    16 年前

    如果您可以控制线路的两端,您可以将RS-232 TX和RX线路转换为常规逻辑线路以提供该信息。

    然而,在大多数情况下,每端周期性地发送一个包含8个可能的数字值的状态信息字节—提供更多的状态信息。

    每次收到消息时,接收端的计时器都会重置,如果计时器超时,则消息花费的时间太长,您可以对丢失的状态消息执行操作。

    正如其他人指出的,如果您使用的是硬件流控制,那么您也可以使用一些状态行,但在许多情况下,这些行并没有实现,因此这可能不是一个选项。

    -亚当

        6
  •  0
  •   jyoung    16 年前

    稳定信号可能意味着:

    • 字符稳定爆发:保持发送缓冲区满
    • 线路保持高或低:不发送任何信息或发送连续中断
        7
  •  0
  •   SmacL    16 年前

    我认为这在很大程度上取决于您使用的UART,例如 link text 以及您在软件下对它的访问级别。如果您检查数据表,通常有一些方法可以直接控制大多数管脚以进行测试,但是您需要从一个非常低的级别进行检查。

    在更高的层次上,Tvanfosson的回答几乎和我的回答一样。

        8
  •  0
  •   Tim Ring    16 年前

    虽然第一个答案是正确的,但可能无法在许多微控制器上使用此技术(使用DTR或DSR),因为它们可能没有这些信号(许多微控制器可能只有基本的RX/TX线路,如果需要额外的控制/状态线路,您通常需要使用其他I/O端口。但是,并非所有都丢失,许多RS232控制器允许您将TX线设置为“标记”或“空格”(即将TX线设置为逻辑高或低)。这可以让你得到稳定状态信号。可以检查接收器上的接收线,看其是否处于标记或空间级别。