通过半双工接口发送文件

时间:2019-05-30 10:40:52

标签: linux rs485

我正在尝试在运行debian(4.19)的Box PC和具有im6xDL的SBC之间通过半双工接口(RS-485)发送文件。

感谢这个社区,我可以使用picocom或通过回显/读取功能在单位之间成功传输简单数据。

Box PC本机支持半双工RS-485,并具有自动RTS功能,因此您可以毫无问题地读取/发送数据。另一方面,需要将SBC切换为RX或TX模式。

当我尝试将文件从Box 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

如您所见,出现了严重错误,就好像文件传输时无法解释这些位。

我的问题:

  1. 在半双工系统中是否可以从命令行发送文件? (SBC始终需要处于RX模式。)

  2. 还有另一种更直观的方法来实现这一目标吗?

一如既往,感谢您的帮助和支持:)

/ W

1 个答案:

答案 0 :(得分:0)

查看此处:

Pymodbus - Read input register of Energy meter over rs485 on uart of raspberry pi3

我在此处使用 pylibmodbus 提出的解决方案应适用于任何具有UART和可从Linux用户空间访问的一或两个GPIO线的硬件。

如果另一方面,您想要使用诸如picocom或minicom之类的东西,那么您可以使用555计时器来查看仅硬件解决方案。

当然,如果原型电路不适合您,则始终可以购买具有半双工支持的USB至RS485。您有很多可用的设备,但是基于MAX13487 IC的设备似乎工作得很好。

编辑:使用555计时器的解决方案不在上面我链接的文章中,而是在半双工RS485链接上的一些背景资料:RS485: Inappropriate ioctl for device