我试着通过半双工接口(RS-485)在运行debian(4.19)的盒式PC和带有im6xDL的SBC之间发送文件。
多亏了这个社区,我可以使用picocom或通过回声/读数在单元之间成功地传输简单的数据。
盒式PC机本机支持半双工RS-485,并具有自动RTS功能,因此您可以读取/发送数据而不会出现任何问题。另一方面,需要切换SBC以切换到RX或TX模式。
当我试图将文件从盒式PC发送到SBC时,结果发现这是一个问题。

On the box PC:
picocom /dev/ttyUSB0 -b 9600 -fn
C-a,C-S
***file: /home/user/test.txt
Transfer incomplete

*** exit status: 128

On the SBC
picocom /dev/ttymxc2 -b 9600 -fn -et
C-a,C-r
Terminal ready
�000000

正如你所看到的,有些事情是非常不对劲的,就好像在传输文件时它无法解释这些位一样。
我的问题:
在半双工系统中,是否可以从命令行发送文件?(SBC需要一直处于RX模式)。
有没有其他更直观的方法来实现这一点?
一如既往,感谢您的帮助和支持:)
/西

最佳答案

请看这里:
Pymodbus - Read input register of Energy meter over rs485 on uart of raspberry pi3
我在这里介绍的使用pylibmodbus的解决方案应该适用于任何带有UART的硬件,以及可以从Linux用户空间访问的一条或两条GPIO线。
另一方面,如果您想使用picocom或minicom之类的东西,那么您可以使用555定时器查看仅硬件的解决方案。
当然,如果原型电路不适合你,你可以买一个USB到RS485的半双工支持。你有很多可用的,但那些基于MAX13487IC的似乎工作得很好。
编辑:使用555定时器的解决方案不在我上面链接的post中,但这里还有一些关于半双工RS485链路的背景资料:RS485: Inappropriate ioctl for device

09-05 13:40