Быстрый и надежный SerialPort - PullRequest
       46

Быстрый и надежный SerialPort

0 голосов
/ 14 декабря 2018

В настоящее время мы используем встроенный компонент SerialPort .Net для связи с различными датчиками через RS485.Это показывает задержку более 10 мс между приходом сообщений до тех пор, пока не сработает событие DataReceived или не завершится SerialPort.ReadLine.

Подключенные датчики отвечают в течение <1 мс, а передача занимает от 1 до 3 мс (2 или 3 МБод / с).Они также могут быть прочитаны так быстро через микроконтроллер. </p>

Возможно ли это ускорить?Или есть полезные сторонние компоненты с задержкой менее 10 мс?

1 Ответ

0 голосов
/ 14 декабря 2018

Я только что просмотрел исходный код, не похоже, что код задерживает ответ.

https://referencesource.microsoft.com/#system/sys/system/io/ports/SerialPort.cs

Однако вы можете следить за статьей, чтобы изменить это в диспетчере устройств и посмотреть, работает ли это.

https://store.chipkin.com/articles/rs232-how-do-i-reduce-latency-on-com-ports

Edit

Поскольку решение описывает, что вы можете перейти к своему диспетчеру устройств и найти свой последовательный порт из списка.Существует настройка таймера задержки, и вы можете обновить ее до 1 мс.

1 Меню «Пуск» -> Настройки -> Панель управления -> Диспетчер устройств -> Порты (COM и LPT) -> {Выберите USB дляКонвертер RS485}

2 Щелкните правой кнопкой мыши и выберите «Свойства»

3 Выберите вкладку «Настройки порта»

4 Нажмите кнопку «Дополнительно»

5 Измените таймер задержки (mSec) на 1 или минимально возможную настройку.

6 Измените размеры передачи USB на 64 или минимально возможные настройки.

7 Сохраните и закройте.

...