Использование адаптера USB-to-COM для подключения контроллера ЭСУД к ПК
Подключение ЭБУ к ПК через USB-COM адаптер.
Подключение ЭБУ к ПК через USB-COM адаптер.
Для диагностики и перепрограммирования ЭСУД используется диагностическая линия K-Line 12 В (ISO 9141), электрически совместимая с последовательным интерфейсом RS-232 персонального компьютера. Проблема в том, что обмен с автомобильными системами идёт на скоростях 200 и 10400 бод, которых нет в стандартном компьютерном ряду скоростей (300, 600, 1200 … 115200 бод). Современные USB-to-COM адаптеры на контроллерах CP2102 и FT232 решают эту задачу переопределением (алиасингом) скоростей.
Скорость обмена последовательного интерфейса задаётся делителем из регистра Baud Rate Divisor. Препятствий для установки 200 и 10400 бод нет — их не поддерживают лишь операционные системы, драйверы и прикладные программы. Выход — переопределить одну из скоростей стандартного ряда на нужную: например, запрос режима 14400 бод начнёт включать режим 10400 бод. Интерфейс для существующего программного обеспечения сохраняется, а новая скорость фактически добавляется. Для поддержки диагностической линии обычно выполняют два переопределения:
Производитель CP2102 (Silicon Labs) предусмотрел штатную утилиту CP210xBaudRateAliasConfig.exe, поэтому дизассемблировать ничего не нужно. Порядок действий прост:
Таблица делителей хранится во внутренней энергонезависимой памяти микросхемы, поэтому изменения сохраняются при обесточивании и действуют на любом компьютере. Столбцы Application Requested Baud Rate Range задают диапазон: если запрошенная ПО скорость попадает в него, используется соответствующий режим. Фактическая скорость Actual может отличаться от идеальной, но отклонение в пределах допустимых для последовательного интерфейса ±3 %. Точность CP2102 этому требованию удовлетворяет. В разделе Advanced переопределение подключается флажком Override Recommended.
Скорость и таймаут вычисляются по формулам:
| Параметр | Формула |
|---|---|
| Baud Rate | (24 000 000 / Prescaler) / (65536 − Reload) |
| USB Receive Timeout, с | (65536 − Reload) / 500 000 |
CP2102 поддерживает до 1 000 000 бод в 7- и 8-битных режимах и 921 600 бод в 5- и 6-битных; превышение ограничений приводит к сбоям. Таймаут типово 1 ms: увеличение ускоряет реакцию диагностической программы на события, уменьшение снижает нагрузку на компьютер пустыми USB-пакетами.
Здесь придётся отредактировать файл конфигурации драйвера FTDIPORT.INF, секцию [FtdiPort232.NT.HW.AddReg], где строка ConfigData содержит пары байтов делителя для каждой скорости. Пара записывается от младшего байта: например, 10h, 27h — это 2710h = 10 000, и при тактовой частоте 3 МГц Baud Rate = 3 000 000 / 10 000 = 300 бод.
Чтобы переопределить 300 бод на 10400 бод, вычисляют Divisor = 3 000 000 / 10 400 = 288,46, то есть целая часть 288 (120h) и дробная 0,5. Дробная часть кодируется двумя старшими битами 16-битного слова (01b — 0,5), объединение с полем 13–0 даёт 4120h. В строке ConfigData соответствующая пара заменяется на 20, 41. После правки драйвер необходимо полностью удалить и установить заново из каталога с изменённым INF — обычное обновление через диспетчер устройств может не подействовать.
USB-to-COM адаптер подключает ЭСУД к современным компьютерам через переопределение нетипичных скоростей 200 и 10400 бод: на CP2102 это делается штатной утилитой с сохранением в памяти микросхемы, на FT232 — правкой делителей в FTDIPORT.INF с обязательной переустановкой драйвера.
Мы каждый день читаем, прошиваем и диагностируем моторы: подскажем по вашему блоку и сделаем работу с гарантией и хранением стоковой прошивки.