RS232通信 - 我可以用它来创建稳态信号吗?

时间:2008-10-24 12:11:29

标签: c embedded communication serial-port

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

您怎么看?

8 个答案:

答案 0 :(得分:7)

您应该可以将DTR(数据终端就绪),引脚20或DSR(数据集就绪),引脚6,高电平设置为稳态信号。这是调制解调器/终端检测到另一端有准备通信的设备的方式。这一切都取决于您通过驱动程序对硬件的访问级别。

[EDIT]这不涉及发送数据,尽管你仍然可以使用TX / RX,引脚2和3。

维基百科上的

RS-232 Reference

答案 1 :(得分:3)

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

当然,如果有帮助,你可以使用其中一条控制线......或者你是否专门寻找TX以外的东西?

答案 2 :(得分:1)

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

所以你可以打开和关闭'break'并切换那条线。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

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

每次收到消息时,接收端的定时器都会复位,如果定时器超时,则消息占用时间过长,并且可以对丢失的状态消息进行操作。

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

- 亚当

答案 5 :(得分:0)

稳定的信号可能意味着:

  • charaters的稳定爆发:保持发送缓冲区已满
  • 保持高位或低位:不发送任何内容或发送连续休息

答案 6 :(得分:0)

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

在更高的层面上,tvanfosson的回答几乎就是我的做法。

答案 7 :(得分:0)

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