【问题标题】:RS232 Communication - Can I use it to create a steady state signal?RS232 通信 - 我可以使用它来创建稳态信号吗?
【发布时间】:2010-09-18 23:52:22
【问题描述】:

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

你怎么看?

【问题讨论】:

    标签: c embedded communication serial-port


    【解决方案1】:

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

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

    RS-232 Reference 维基百科

    【讨论】:

      【解决方案2】:

      如果您不介意类似突发的界面,则可以执行类似的操作。一个微可以传输一个字节,另一个可以对该字节执行某些操作并将其作为响应发回。

      【讨论】:

        【解决方案3】:

        如果你可以控制线路的两端,你也许可以将 rs-232 tx 和 rx 线变成常规的逻辑线来提供该信息。

        然而,在大多数情况下,每一端都会定期发送一个字节的状态信息,其中包含 8 个可能的数字值 - 提供更多的状态信息。

        接收端的计时器在每次收到消息时都会重置,如果计时器超时,则表明消息耗时过长,您可以对丢失的状态消息采取行动。

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

        -亚当

        【讨论】:

          【解决方案4】:

          稳定的信号可能意味着:

          • 稳定的字符突发:保持发送缓冲区满
          • 线保持高位或低位:不发送或发送连续中断

          【讨论】:

            【解决方案5】:

            我认为这在很大程度上取决于您使用的 UART,例如link text,以及您在软件下对其的访问级别。如果您查看数据表,通常可以直接控制大多数引脚以进行测试,但您需要从相当低的级别开始。

            在更高的层次上,tvanfosson 的回答与我的做法差不多。

            【讨论】:

              【解决方案6】:

              如果问题是“我可以改变 Tx 线的 DC 状态吗”,那么答案是可以要求许多 uart(包括 PC 中的那些)来创建“中断”条件,这与线路的正常空闲状态。

              因此您可以打开和关闭“中断”并像这样切换线路。

              【讨论】:

                【解决方案7】:

                虽然第一个答案是正确的,但可能无法在许多微控制器上使用这种技术(使用 DTR 或 DSR),因为它们可能没有这些信号(许多微控制器可能只有基本的 RX/TX 线,而您如果您想要额外的控制/状态线,通常必须使用其他 i/o 端口。但是,一切都不会丢失,许多 RS232 控制器允许您将 TX 线设置为“标记”或“空格”(即设置 TX 线逻辑高或低)。这将允许您获得稳定状态信号。可以检查接收器上的 RX 线以查看其是否处于标记或空间电平。

                【讨论】:

                  【解决方案8】:

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

                  当然,如果有帮助,您可以使用其中一条控制线……或者您是否专门从 TX 中寻找某些东西?

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2011-02-03
                    • 2012-07-20
                    • 2016-09-15
                    • 2013-06-06
                    • 1970-01-01
                    相关资源
                    最近更新 更多