Мне нужно большое количество последовательных операций ввода-вывода с настольного компьютера в приложении для робототехники. Я рассматривал возможность использования всех готовых компонентов с большим набором концентраторов USB и адаптеров USB-последовательный порт, но стандартные решения были слишком велики.
Мне нужно около 26, может быть, больше каналов со скоростью от 9600 до 115200 бод. Чтобы поместиться в ограниченном пространстве, я подумал о приобретении нескольких контроллеров USB-концентраторов и размещении их на печатной плате с USB-последовательными ASIC.
Хост-компьютер представляет собой мини-машину на базе Intel ITX.
Моя текущая концепция включает в себя этот 4-канальный контроллер концентратора USB 3: 4-портовый концентратор USB 3 и несколько микросхем 7-портового концентратора USB 2: 7-портовый концентратор USB 2. 7-портовые концентраторы будут подключены к сверхскоростным 4-портовым концентраторам, таким образом конечные точки USB, которые мне нужны. USB-последовательные ASIC (FTDI или аналогичный продукт) будут напрямую подключены к каждому 7-портовому порту контроллера-концентратора. Я знаю, что FTDI, например, предлагает многоканальный USB для последовательных устройств, но я не знаю, перечисляется ли каждый USB-канал как отдельное устройство в Linux (как в отдельном устройстве /dev/usbttyx)
У меня вопросы: насколько сложно реализовать это оборудование? Раньше я уже делал дизайн дифференциального сигнала, но никогда не работал с быстрой скоростью USB. Я также рассматривал возможность отдельного управления питанием каждого контроллера-концентратора, чтобы при необходимости их можно было сбросить отдельно.
Есть ли какие-то ловушки, на которые мне нужно обратить внимание при работе с этими USB-чипами? Это будет моя первая плата, на которой есть USB.
Спасибо!
Не совсем ответ, я просто не могу комментировать...
Оценивали ли вы вариант использования простого Arduino/AVR? С Atmega128 TQFP64 вы сможете получить 26 серийных номеров программного обеспечения, аппаратные UART могут работать со скоростью до 2 Мбит/с (для подключения к хосту ПК), Atmega128 имеет 2.
Существует также ARM серии STM32F103 с тактовой частотой 72 МГц.
На стороне хоста ПК, если вам действительно нужны 26 отдельных COM-портов, есть возможность использовать виртуальные COM-порты ... потребуется некоторое программное обеспечение для «агрегирования» данных этих 26 портов в реальный 1. Или отредактируйте программное обеспечение вашего ПК. Создание специального протокола (похожего на Modbus) для адресации каждого последовательного порта не должно быть сложным. То же самое со стороны MCU.
сумасшедший
ДоксиЛовер
сумасшедший
альфасьерра
сумасшедший
uint128_t
ДоксиЛовер
альфасьерра
альфасьерра
альфасьерра
uint128_t
ДоксиЛовер
Питер Смит