Перейти к содержанию
    

Работа с очень быстрым COM портом

Доброго времени суток.

 

Есть прибор, который должен общаться с компьютером по RS-422 на скорости 921600 б/с. В компьютере стоит МОХА, которая такую скорость обеспечивает.

Собственно сами по себе запись и чтение в СОМ порт работают. Но дальше требуется обеспечить обмен с частотой 1000 Гц.

То есть каждую милисекунду прибор отправляет 5 байт компьютеру, он их должен обработать и отправить ответ до прихода следующего сообщения.

 

Возможно ли в принципе решить эту задачу под виндос? Даже если я делаю отделный поток с реал тайм приоритетом который занят только чтением из порта, все равно даже близко нет требуемой точности.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Под виндюками можно, а вот с Вашим драйвером COM'а - это вопрос. Я делал в свое время прием данных с частотой 8кГц по сотне байт еще на P3, но драйвер устройства был свой. Дальше прием данных в отдельном потоке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Даже если я делаю отделный поток с реал тайм приоритетом который...

Поток? тогда уж процессу приоритет поднимайте. Насколько я помню изменение приоритета пока влияет только на планировку управления в рамках процесса.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Slovan

Сделать можно. Но не нужно.

Лучше realtime задачи отдать на откуп подключенному между ПК и прибором недорогому микроконтроллеру.

Скорость передачи в ПК = 1000 (Гц) * 5 (байт) * 10 (бит) = 50 кБит. На стандартной скорости 115 200 через стандартный COM будет с запасом.

По своему опыту, это самое простое, дешёвое и надёжное решение.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поток? тогда уж процессу приоритет поднимайте. Насколько я помню изменение приоритета пока влияет только на планировку управления в рамках процесса.

ну да, имел ввиду процесс.

 

Лучше realtime задачи отдать на откуп подключенному между ПК и прибором недорогому микроконтроллеру.

Через микроконтролер проблем нет, в боевых условиях так скорее всего и будет, просто хотелось для удобства и наглядности работать с ПК.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Делал на ftdi ft232 прием с частотой 1 Кгц , по 10 байт, скорость порта пробовал до полмегабита. Пытался оценить задержки ответа. получилось около 2 мс.

Но это- под родными VCP драйверами FTDI. Под D2x - говорят- значительно лучше, но не пробовал.

 

C ком портом работал стандартными виндовыми API функциями.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скорость 3 МГц. Блоки по (примерно) 3.5 килобайта, загруженность канала где-то на 75%. При использовании VCP блоки иногда приходят битыми (внутренний контроль обнаруживал). Какая-то зависимость от загрузки компютера (без разницы, windows7 или xp). После редактирования программы для использования функций D2, проблемы исчезли. Использовался асинхронный режим обмена и через WinAPI и через D2.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...