繁体   English   中英

通过RS-485串行通讯时控制RTS线路

[英]Control RTS line when communication via RS-485 serial

我正在尝试在内核为2.6.39的Linux机器上通过串行接口RS-485进行通信。 我将这个分线板pySerial模块一起使用。 当我通过界面写东西时,我的数据经常被破坏。 在突破面板的产品页面上,有人提到:

我从一开始就注意到,在发送串行数据之后,我需要有大约25毫秒的延迟,然后才能将RTS线拉低,否则传输将被破坏或无法传输。

我发现,当我写入字节时,RTS线不久就会变高,但是写入后立即变低。 我如何保持那条线高(长一点)?

您可以使用以下方法手动设置RTS:

setRTS(level=True)

然后经过25ms的延迟后将其清除:

setRTS(level=False)

经过大量的反复试验,我认为我找到了问题所在。 我的推测是,当我使用serial.write()时,内核的RS-485驱动程序将RTS线设置为高电平。 serial.write()将字符写入/ dev / ttyS1。 从这一刻起,用于RS-485的Linux驱动程序控制串行总线以写入字符。 在此操作期间,它将在实际写入时间内的短时间内将RST线设置为高。

我无法在更高级别上控制此写操作,我想必须侵入驱动程序或将RTS线连接到我可以控制的其他GPIO。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM