Отправка файлов через полудуплексный интерфейс - PullRequest
0 голосов
/ 30 мая 2019

Я пытаюсь отправить файлы через полудуплексный интерфейс (RS-485) между ПК, работающим под управлением Debian (4.19), и SBC с im6xDL.

Благодаря этому сообществу я могу успешноПередача простых данных между устройствами с помощью Picocom или эхом / считывания.

ПК-блок имеет встроенную полудуплексную связь RS-485 и имеет автоматические функции RTS, так что вы можете читать / отправлять данные без каких-либо проблем.SBC, с другой стороны, необходимо переключить для перехода в режим RX или TX.

Это оказалось проблемой, когда я попытался отправить файлы с ПК на 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 должен все время находиться в режиме приема).

  2. Есть ли другой способ добиться этого, который является более интуитивным?

Как всегда, спасибо за помощь и поддержку:)

/ W

1 Ответ

0 голосов
/ 30 мая 2019

Смотрите здесь:

Pymodbus - Считать входной регистр счетчика энергии по RS485 на Uart Raspberry Pi3

Решение, которое я представил там с использованием pylibmodbus , должно работать на любом оборудовании с UART и одной или двумя линиями GPIO, доступными из пространства пользователя в Linux.

Если, с другой стороны, вы хотите использовать что-то вроде picocom или minicom, тогда вы можете взглянуть на аппаратное решение с использованием таймера 555.

Конечно, если прототипирование цепей не для вас, вы всегда можете купить USB для RS485 с поддержкой полудуплексного режима. У вас есть много доступных, но те, которые основаны на MAX13487 IC, похоже, работают очень хорошо.

РЕДАКТИРОВАТЬ : Решение с использованием таймера 555 не в посте, который я связал выше, а здесь вместе с дополнительным справочным материалом по полудуплексным ссылкам RS485: RS485: неподходящий ioctl для устройства

...