【发布时间】:2010-09-18 23:52:22
【问题描述】:
老实说,我认为答案是“不”;但是,我想获得第二意见。基本上,我需要一个微控制器设备向另一个微控制器设备发送稳定的信号,但它们之间的通信是使用 RS232。所以我认为我必须创建/更新通信消息才能让它做我想做的事情。
你怎么看?
【问题讨论】:
标签: c embedded communication serial-port
老实说,我认为答案是“不”;但是,我想获得第二意见。基本上,我需要一个微控制器设备向另一个微控制器设备发送稳定的信号,但它们之间的通信是使用 RS232。所以我认为我必须创建/更新通信消息才能让它做我想做的事情。
你怎么看?
【问题讨论】:
标签: c embedded communication serial-port
您应该能够将 DTR(数据终端就绪)引脚 20 或 DSR(数据集就绪)引脚 6 设置为高电平,并将其作为您的稳态信号保持在那里。这就是调制解调器/终端如何检测到另一端有设备准备好进行通信的方式。这完全取决于您通过驱动程序对硬件的访问级别。
[编辑] 这不涉及发送数据,尽管您仍然可以使用 TX/RX、引脚 2 和 3 来完成。
RS-232 Reference 维基百科
【讨论】:
如果您不介意类似突发的界面,则可以执行类似的操作。一个微可以传输一个字节,另一个可以对该字节执行某些操作并将其作为响应发回。
【讨论】:
如果你可以控制线路的两端,你也许可以将 rs-232 tx 和 rx 线变成常规的逻辑线来提供该信息。
然而,在大多数情况下,每一端都会定期发送一个字节的状态信息,其中包含 8 个可能的数字值 - 提供更多的状态信息。
接收端的计时器在每次收到消息时都会重置,如果计时器超时,则表明消息耗时过长,您可以对丢失的状态消息采取行动。
正如其他人所指出的,如果您使用的是硬件流控制,那么您也可以使用一些状态行,但在许多情况下,这些行并未实现,因此这可能不是一个选项。
-亚当
【讨论】:
稳定的信号可能意味着:
【讨论】:
我认为这在很大程度上取决于您使用的 UART,例如link text,以及您在软件下对其的访问级别。如果您查看数据表,通常可以直接控制大多数引脚以进行测试,但您需要从相当低的级别开始。
在更高的层次上,tvanfosson 的回答与我的做法差不多。
【讨论】:
如果问题是“我可以改变 Tx 线的 DC 状态吗”,那么答案是可以要求许多 uart(包括 PC 中的那些)来创建“中断”条件,这与线路的正常空闲状态。
因此您可以打开和关闭“中断”并像这样切换线路。
【讨论】:
虽然第一个答案是正确的,但可能无法在许多微控制器上使用这种技术(使用 DTR 或 DSR),因为它们可能没有这些信号(许多微控制器可能只有基本的 RX/TX 线,而您如果您想要额外的控制/状态线,通常必须使用其他 i/o 端口。但是,一切都不会丢失,许多 RS232 控制器允许您将 TX 线设置为“标记”或“空格”(即设置 TX 线逻辑高或低)。这将允许您获得稳定状态信号。可以检查接收器上的 RX 线以查看其是否处于标记或空间电平。
【讨论】:
你的意思是固定电压?不是方波? (字母 U)break 命令怎么样(如果你想称它为命令)?
当然,如果有帮助,您可以使用其中一条控制线……或者您是否专门从 TX 中寻找某些东西?
【讨论】: