-1

Член нашего научного сотрудничества разработал коробку сбора данных с 4 каналами на частоте 1 кГц, которая синхронизирует время с GPS. Он использует USB 2.0 для связи устройства с компьютером, а последовательный интерфейс COM со скоростью 115200 бод используется для передачи данных на компьютер в формате ASCII. Производитель называет это "виртуальным сериалом" через USB 2.0. Следовательно, все конфигурации, такие как четность, управление рабочим процессом и т.д., Не имеют значения в последовательном интерфейсе, но для этого должна быть установлена только скорость передачи 115200.

Мой вопрос: действительно ли это число 115200 представляет собой число байтов в секунду, которое может быть максимально передано через этот порт, создавая ограничение того, что может делать порт USB 2.0? Или это число не имеет значения, и реальная скорость передачи данных составляет около 480 Мбит / с по стандарту USB 2.0?

Какие факторы решают это?

Почему спрашиваешь? В настоящее время устройство использует однонаправленную последовательную связь для доставки данных, что иногда приводит к проблемам с потерей байтов при перегрузке компьютера. Надежным решением было бы сделать соединение двунаправленным с контрольными суммами и запрашивать пакеты и повторно запрашивать, когда данные повреждены. Однако, если мы действительно ограничены 115 кБ / с, это означает, что мы не можем передавать 4 канала при 1 кГц.

Если вам нужна дополнительная информация, пожалуйста, спросите.

1 ответ1

4

Последовательный через USB 2.0. Это действительно быстрее, чем серийный?

Ваша терминология небрежная.
«Serial over USB 2.0» может означать использование адаптеров USB-RS232 или CDC/ACM.
Ваша последняя ссылка на "серийный" предположительно относится к RS-232.

Мой вопрос: действительно ли это число 115200 представляет собой число байтов в секунду, которое может быть максимально передано через этот порт, создавая ограничение того, что может делать порт USB 2.0?

115200 - это скорость передачи данных, которая (в данном случае) является битами в секунду (а не байтами в секунду).
Поскольку это асинхронный канал, каждый символ / байт индивидуально обрамляется одним стартовым битом и 1 / 1,5 / 2 стоп-битами. Таким образом, накладные расходы составляют 25% (при условии типичной конфигурации 8N1).

USB является шиной и может обрабатывать более одного канала данных.
Асинхронные данные RS-232 пакетируются для передачи по синхронному USB и разделяют общую пропускную способность USB 2.0 на 480 Мбит / с. (Хотя стандартный адаптер USB-RS232 использует только USB 1.1.)

Я был свидетелем четырех одновременных передач RS-232 со скоростью 115200 бод через одно соединение USB 1.1 без каких-либо сбоев.

Или это число не имеет значения, и реальная скорость передачи данных составляет около 480 Мбит / с по стандарту USB 2.0?

Число имеет значение, потому что это скорость передачи данных, настроенная для этого канала.

Какие факторы решают это?

Максимальная скорость передачи данных обычно ограничена аппаратным обеспечением и вспомогательным программным обеспечением.

Почему спрашиваешь? В настоящее время устройство использует однонаправленную последовательную связь для доставки данных, что иногда приводит к проблемам потери байтов при перегрузке компьютера.

Похоже, что потеря данных связана с переполнением системного буфера. Данные поступают быстрее, чем считываются / обрабатываются прикладной программой. В канале данных не используется управление потоком для предотвращения переполнения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .