Здравствуйте.
С помощью libusb пытаюсь реализовать свой собственный драйвер для переходника usb-com, на примере популярного ft232.
Пытаюсь принять данные, для этого опрашиваю конечную точку, в ответ приходят данные, но перед каждой порцией идут байте 0x31 и 0x60 - они точно к данным не относятся. Отсюда я делаю вывод, что это какие-то "управляющие".
Эти байты зависят от конкретного чипа или это всё же какой-то протокол? Где о нём можно почитать?
P.S. настройки скорости, контроля потока покачто не делал, т.е. как подключается чип так и начинается опрос для входящих данных.
у ком порта обычно нет протокола, есть только стандартные вещи типа установка связи, скорости, настройка порта со стороны драйвера. А так, если ответ уже непосредственно от устройства - то вроде ничего нет.
Но если у тебя usb-com, то может что-то на стороне usb еще?
lonelymyp, прежде, чем что-то принимать по RS-232 , нужно установить: стоповые биты, размер посылки, скорость и тип хендшейка!
И да, я про драйвер. Я их написал для RS-232/485 штук 10, под штук 5 операционок.
Там наверняка эмуляция UART 16550.
Приветствую.
ft232 - у него свой драйвер и этот драйвер создаёт VCP (виртуальный ком-порт), поэтому при обмене по usb будут дополнительные байты, не как у рассово-верного CDC адаптера.
Смотрите исходники libFTDI, гугл ftdi_read_data_cb
Pavel K, тут ещё столкнулся с проблемой, что иногда посреди данных проскакивают лишние 2 байта 0x1 0x96 закономерности пока что не могу найти - как их выловить и для чего они?
Kalombyr, это всё те же статусные байты. Проверяйте USB запрос на конечную точку и за раз не получайте больше 64 байтов (или сколько там лимит у конечной точки), запамятовал уже как это реализовано в libusb.