Мне нужно передать данные с микроконтроллерной системы с голым железом на ПК с Linux со скоростью 2 МБод. В настоящее время на компьютере с Linux установлена 32-битная версия Kubuntu14.04.
Чтобы заархивировать это, я попытался использовать адаптер USB-UART на базе FT232R, но иногда наблюдал потерю данных.
Пока компьютер с Linux в основном простаивает, кажется, что он работает большую часть времени; однако я вижу редкую потерю данных.
Но когда я принудительно загружаю процессор (например, перестраиваю свой проект), потеря данных значительно увеличивается.
После некоторого исследования я прочитал здесь, что FT232R состоит из приемный буфер объемом всего 384 байта. Это означает, что FT232R должен считываться (USB-опрос) как минимум каждые 1,9 мс. Что ж, FTDI рекомендует использовать управление потоком, но из-за используемой системы микроконтроллера я не могу использовать какое-либо управление потоком.
Я могу смириться с тем фактом, что нет абсолютной гарантии отсутствия потери данных. Но наблюдаемый объем потери данных слишком велик для моих нужд.
Поэтому я попытался найти способ повысить приоритет «драйвера FT232» в моем Linux, но не могу найти, как это сделать. Это не описано в Руководстве по установке драйверов AN220 FTDI для Linux и в документе AN107 FTDI Advanced Driver Options есть заголовок «Смена драйвера Приоритет », но только для windows.
Итак, кто-нибудь знает, как повысить приоритет драйвера FT232R в Linux?
Есть ли другие идеи для решения этой проблемы?
Кстати: когда я читал таблицу данных FT232H, мне показалось, что это поставляется с буфером приема 1 КБ. Я бы заказал его прямо сейчас и посмотрел, как он себя ведет. Изменить: без значительных улучшений.
drivers/usb/serial/ftdi_sio.c
и связаться с автором этого драйвера по поводу вашей проблемы. - person fghj   schedule 09.11.2015