legal note
IC Book © 2001

hardware
software

support
buy

Home page
   




Press

K-Line и адаптеры USB-to-COM

 


Как известно, для диагностики и перепрограммирования автомобильных сис­тем, в частности ЭСУД, используется диагностическая линия K–Line 12V, элек­три­че­ски совместимая с последовательным интерфейсом RS232, применяемым в пер­сональных компьютерах. Но, при сопряжении авто и компьютера возникает про­бле­ма, связанная с тем, что обмен с автомобильными системами вы­пол­ня­ет­ся на скоростях 200 и 10400 бод, которые нетипичны для компьютеров. В пред­ла­га­е­мой статье рассматривается простое решение данной проблемы для адап­те­ров USB–to–COM с помощью программного обеспечения, штатно по­ста­в­ля­е­мо­го разработчиками.

Как обеспечить поддержку скоростей обмена, которые поддерживают контроллеры FT232 и CP2102, но не поддерживает классическое программное обеспечение? Управление скоростью обмена

Скорость обмена для последовательного интерфейса зависит от ус­та­нов­лен­но­го делителя. Значение делителя определяется содержимым регистра Baud Ra­te Divisor. Анализ архитектуры контроллера и несложные расчеты показывают, что нет препятствий для использования скоростей в 200 и 10400 бод. Так в чем же проблема?

При написании операционных систем, драйверов и различных прикладных про­грамм обслуживания последовательного интерфейса, в целях упрощения, ис­поль­зо­вал­ся стандартный, ставший традиционным для персональных ком­пью­те­ров, ряд скоростей: 300, 600, 1200, …, 115200 бод. Скорости 200 и 10400 бод, ко­то­рые использует диагностическая линия автомобиля, не входят в этот ряд.

Наша задача — обеспечить поддержку скоростей обмена, которые под­дер­жи­ва­ют контроллеры FT232 и CP2102, но не поддерживает классическое про­грам­мное обеспечение. Идея заключается в том, чтобы переопределить скорости из стандартного ряда новыми значениями, например, заменить 14400 бод на 10400 бод. После такого переопределения, запрос на включение режима 14400 бод бу­дет приводить к включению режима 10400 бод. Смысл в том, что мы до­бав­ля­ем но­вую скорость, сохранив интерфейс, совместимый с имеющимся программным обес­пе­че­ни­ем. В общем случае для подстановки можно использовать любую ско­рость из заданного ряда.




Переопределение скоростей для контроллера CP2102 Контроллер CP2102 производства Silicon Labs

Рассмотрим реализацию выше описанной идеи для обеспечения сов­мес­ти­мос­ти контроллера USB-to-COM CP2102 с контроллером электронной системы уп­рав­ле­ния двигателем автомобиля. Как было сказано выше, для ди­а­гнос­ти­че­ской линии K-Line 12V типичны скорости в 200 и 10400 бод.

К счастью, производитель контроллера CP2102 предусмотрел возможность гиб­кого управления режимами работы и снабдил свое устройство утилитой для пе­ре­назначения скоростей обмена, поэтому сегодня нам не понадобятся диз­ас­семб­лер и отладчик, наши действия будут очень простыми и сведутся к ис­поль­зо­ва­нию штатной утилиты CP210xBaudRateAliasConfig.exe поставляемой ком­па­ни­ей Silicon Labs. Также отметим, что результатом наших действий будет из­ме­не­ние содержимого таблицы, хранящей значения делителей частоты для под­дер­жи­ва­е­мых скоростей. Эта таблица находится во внутренней энергонезависимой па­мя­ти микросхемы CP2102, поэтому изменения сохранятся при выключении пи­та­ния или переносе перепрограммированного устройства на другой ком­пью­тер. Для большинства применений, такой вариант удобнее, чем, например, внесение из­ме­не­ний в драйвер. Для обеспечения совместимости с диагностической ли­ни­ей автомобиля и программным обеспечением, используемым для контроля со­сто­я­ния ЭСУД, нам необходимо осуществить следующие переопределения: на­зна­чить 14400 на 10400 и 300 на 200 бод.

Итак, запускаем утилиту CP210xBaudRateAliasConfig.exe.

Появляется окно CP210x Baud Rate Configuration. Если подключено не­сколь­ко устройств CP2102, в верхней строке Connected Devices необходимо выбрать ус­трой­ство, которое мы будем перепрограммировать. Если устройства под­клю­ча­лись уже после того, как утилита была запущена, следует использовать кнопку Re­fresh для обновления списка задействованных адаптеров.

Нажимаем кнопку Get Configuration и получаем список поддерживаемых ско­ро­стей обмена для выбранного устройства.

Если используется один USB-to-COM адаптер, список формируется ав­то­ма­ти­че­ски, если несколько, то после выбора устройства обязательно следует на­жать кнопку Get Configuration, иначе будет визуализироваться таблица, со­от­вет­ству­ю­щая не текущему, а ранее выбранному адаптеру!





about
press


вверх