Как настроить com порт для диагностики автомобиля

COM порт глазами ремонтника. Ремонт, настройка, диагностика. Часть 2, диагностика на компьютере.

Статья вторая «COM порт – глазами ремонтника. Ремонт, настройка, диагностика».

Рассматриваем вопросы диагностики COM порта со стороны компьютера.

Начнем с самого простого, найдем на компьютере COM порт визуально.

Рис. 1. Пример расположения COM порта на задней планке материнской платы.

Однако на привычном месте может не оказаться разъема COM порта, это не беда. Заходим в диспетчер устройств, и смотрим в нем наличие COM порта.

Рис.2 Проверяем наличие COM порта на компьютере при помощи диспетчера устройств.

В данном примере всего один COM порт, на самом деле их может быть два или вообще не быть. Этот факт не является дефектом, просто стандарт на обязательное присутствие COM порта был отменен в далеком 1999г. Однако это повод задуматься при выборе материнской платы для нового компьютера — если Вы собираетесь активно эксплуатировать COM порт, то желательно остановить свой выбор на материнской плате в которой есть хотя бы один COM порт. Отсутствие COM порта на компьютере не является серьезной проблемой. На рынке достаточно устройств при помощи которых, эту проблему можно решить, но об этом чуть попозже.

Итак COM порт обнаружен программно, а физически его не видно, он расположен на материнской плате и для его физической реализации нужна планка (посмотреть), которую придется либо сделать самостоятельно, либо купить в магазине.

Рис. 3 Вид разъемов COM порта для реализации под планку. На фото, материнская плата с двумя COM портами.

После подключения планки COM порта остается только проверить работоспособность COM порта.

С планками все не так просто, на самом деле планок существует два типа. Оба имеют место быть, но предназанечены для работы на разных материнских платах.

Рис. 4 Внешний планок для работы на разных материнских платах.

Планки не взаимонезаменяемые, чаще всего встречался вариант I.

Рис. 5 Вариант I распайки кабеля планки COM порта Рис.6 Вариант II распайки кабеля планки COM порта

Нет связи компьютера с подключаемым устройством.

Для большинства современных устройств требуется только три провода для нормальной работы. Это RxD, TxD и земля. На разъемах DE9 и DB25 RxD, TxD всегда находятся на 2 и 3 контакте. Но если для компьютера все однозначно, на DE9 2-RxD 3-TxD, то для устройств подключаемых к компьютеру такой однозначности нет, но как правило это все те же контакты 2 и 3. А вот что однозначно, так это тот факт, что RxD компьютера должен прийти на TxD устройства и наоборот RxD устройства должен соединиться с с TxD компьютера. В принципе если перепутать контакты и подать неправильно сигналы — то ничего страшного не произойдет, COM порты не сгорят, просто устройство не будет общаться с компьютером.

Следует учесть тот фактор, что даже правильное соединение не гарантирует работоспособность связи. Причин может быть много, неправильно установлена скорость, несоблюдение протокола, неисправен COM порт и т.п.

Что бы исключить лишние факторы удостоверимся, что COM порт на компьютере рабочий.

Самое простое, это использовать программу Сommtest (скачать) и заглушку для проверки.

Одним из эффективных способов проверки — отправить данные в порт и самому же порту получить их обратно. Если данные вернулись в полном объеме — то порт можно считать исправным

Рис.7 Заглушка для проверки COM порта, сигналов Rx-Tx.

Заглушка представляет собой разъем DE9F, у которого контакты 2 и 3 соединены перемычкой. Суть теста заключается в том, что все отправленные данные должны вернутся обратно. При такой проверке не важно на какой скорости проходит тестирование, данные все равно будут приниматься на такой же скорости. Несомотря на то, что такой способ имеет серьезный недостаток — проверяется только канал Rx-Tx, все же есть и плюсы. Такой заглушкой можно лекго определить номер COM порта не разбирая системный блок, в случае если таких портов несколько.

Рассмотрим, как это делается.

Запускаем программу Сommtest (скачать)

Рис. 8 Рабочее окно программы Commtest

Рис. 9 Настройка программы Commtest

  1. Выбираем COM порт.
  2. Нажимаем клавишу Open для активизации клавиши Put.
  3. Выбираем байт для отправки. Желательно отправлять цифры, в нашем примере байт для отправки цифра «5» (Byte 53DEC или 35 HEX) во всех кодовых таблицах цифры читаются однозначно. Буквы и управляющие символы отправлять нежелательно.
  4. Выбираем количество байт для отправки. В нашем примере 1000, что означает, что при нажатии клавишу Put в порт будет отправлено 1000 байт, в нашем случае 1000 штук цифер «5».

Рис. 10 Программа Commtest готова к использованию.

Рис. 11 Программа Commtest обнаружила технологическую перемычку на COM порту. Рис. 12 Программа Commtest не обнаружила технологическую перемычку на COM порту. Порт COM1 неисправен, либо заглушка установлена на другом порту

Если COM портов несколько, то необходимо перебрать все COM порты которые присутствуют в диспетчере устройств, есть вероятность, что при открытии другого порта — связь появится. Таким образом Вы получаете номер порта на который установлена заглушка.

Внимание! Данная проверка проверяет только канал Rx-Tx и не является 100% гарантией того, что порт исправен, однако хотелось бы обратить внимание что 90% устройств работают именно только по этим проводам.
Внимание! Проверка на другом компьютере связь есть, проверка на проверяемом компьютере связи нет. Не является гарантией того, что COM порт неисправен. Пример кабель от ККМ Fprint-03К

Комплексная проверка COM порта на стороне компьютера.

Принцип такой проверки очень похож на рассмотренную выше проверку по каналу Rx-Tx, суть та же, с передатчика сигнал должен прийти в приемник, если сигнал прошел, то можно считать, что пара исправна. Из оставшихся 7 контактов,1 контакт это земля его мы не проверяем.
Остается 6 контактов, из них два передатчики (DTR, RTS) и четыре приемники (DCD, DSR, CTS, RI). Правило тут простое — передатчик должен прийти на приемник, логично предположить, что на один передатчик следует нагрузить по два приемника. Хотя можно и на один передатчик повесить три приемника, а на второй предатчик посадить только один приемник, как делать дело Ваше . Самое удобное, в плане изготовления это 4->1,9 и 7->6,8 проводов получается по минимуму.

Рис. 13 Технологическая заглушка для проверки COM порта, вид со стороны контактов. Рис. 14 Технологическая заглушка для проверки COM порта, вид со стороны пайки.

На рисунке для удобства синим цветом выделены передатчики.

Все в той же программе CommTest, но уже в другой части окна взводим флажок передатчика DTR и(или) RTS и смотрим, как изменяются соответствующие флажки приемника.

При изменении флажка DTR — должны взвестись флажки DCD и Ring, при сбросе флажка DTR – должны сбросится флажки DCD и Ring.

Рис. 15 Флажок DTR сброшен Рис. 16 Флажок DTR взведен, в примере не смотря на перемычку флажок Ring не взвелся, можно судить о не исправности приемника Ring

При изменении флажка RTS — должны взвестись флажки DSR и CTS, при сбросе флажка RTS – должны сбросится флажки DSR и CTS.

Рис. 17 Флажок DSR сброшен Рис. 18 Флажок DSR взведен
Рис. 19 Флажок DSR и DTR взведен

Как проверить передатчик – приемник Tx-Rx рассмотрено немного ранее.

Если данные события происходят можно считать, что COM порт стандарта RS232 со стороны компьютера полностью исправен.

Источник статьи: http://zipstore.ru/blog/com-port-glazami-remontnika-remont-nastroika-diagnostika-chast-2-diagnostika-na-kompyutere/

Как настроить com порт для диагностики автомобиля

Использование адаптера USB – to – COM для подключения
контроллера ЭСУД автомобиля к PC

Данный материал публикуется впервые, любезно предоставлен для публикации на нашем сайте компанией IC Book Labs и является эксклюзивной собственностью данной компании. Перепечатка без письменного разрешения правообладателя запрещена.

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

Управление скоростью обмена

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

Наша задача — обеспечить поддержку скоростей обмена, которые поддерживают контроллеры FT 232 и CP 2102 , но не поддерживает “классическое” программное обеспечение. Идея заключается в том, чтобы переопределить скорости из стандартного ряда новыми значениями, например, заменить 14400 бод на 10400 бод. После такого переопределения, запрос на включение режима 14400 бод будет приводить к включению режима 10400 бод. Смысл в том, что мы добавляем новую скорость, сохранив интерфейс, совместимый с имеющимся программным обеспечением. В принципе, для подстановки можно использовать любую скорость из заданного ряда.

Переопределение скоростей для контроллера CP 2102

Рассмотрим реал изацию описанной выше идеи для обеспечения совместимости контроллера USB – to – COM CP 2102 с контроллером электронной системы управления двигателем (ЭСУД) автомобиля. Как было сказано выше, для диагностической линии K – Line 12 V типичны скорости в 200 и 10400 бод.

К счастью, производитель контроллера CP 2102 предусмотрел возможность гибкого управления режимами работы и снабдил свое устройство утилитой для переназначения скоростей обмена, поэтому сегодня нам не понадобятся дизассемблер и отладчик, наши действия будут очень простыми и сведутся к использованию штатной утилиты CP 210 xBaudRateAliasConfig.exe поставляемой компанией Silicon Labs.

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

Итак, запускаем утилиту CP 210 xBaudRateAliasConfig.exe. Появляется окно CP 210 x Baud Rate Configuration. Если подключено несколько устройств CP 2102 , в верхней строке Connected Devices необходимо выбрать устройство, которое мы будем перепрограммировать. Если устройства подключались уже после того, как утилита была запущена, следует использовать кнопку Refresh для обновления списка задействованных адаптеров.

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

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

Левый столбец под символом # означает условный номер скоростного режима. Столбцы High и Low в графе Application Requested Baud Rate Range содержат верхнюю и нижнюю границу диапазона скоростей, ассоциированного с данным режимом. Если запрашиваемый программным обеспечением параметр попадает в этот диапазон, он используется в текущем режиме. Для поддержки скорости, запрашиваемой программным обеспечением, используется режим, в диапазон которого попадает эта скорость. Столбцы Desired и Actual в графе UART Baud Rate показывают скорость обмена, запрограммированную для данного режима. Desired — идеальное значение (обычно из стандартного ряда скоростей). Actual – фактическое значение, которое в силу особенностей схем тактирования контроллера, не всегда равно идеальному.

Дважды щелкаем мышью на строке, соответствующей редактируемому режиму. Вводим требуемое значение скорости обмена — Desired Baud Rate. При этом автоматически обновляется фактическое значение скорости Actual Baud Rate. С точки зрения стандарта последовательного интерфейса, допустимым является отклонение ± 3 %. Точность установки скорости для контроллера CP 2102 удовлетворяет этому требованию. Редактируем строку 19 . Исходное значение скорости обмена 14400 бод.

Вводим новое значение – 10400 бод, нажимаем OK и переопределение задано!


Редактируем строку 28 . Исходное значение скорости обмена 300 бод.


Вводим новое значение – 200 бод, нажимаем OK и переопределение задано.

После того, как все изменения внесены, не забываем нажать кнопку Set Configuration в окне CP 210 x Baud Rate Configuration и проверить, что значения Desired и Actual в редактируемых строках изменились.

Воспользовавшись утилитами диагностики последовательных портов, можно проверить результаты выполненных действий, устанавливая скорости обмена, соответствующие переопределенным и сравнивая установленные и измеренные скорости.

Дополнительно отметим, что кнопка Advanced позволяет выполнить более тонкую настройку параметров. Для переопределения необходимо установить флажок Override Recommended.

Параметры Prescaler (коэффициент деления для предварительного делителя частоты) и Reload (значение для загрузки в счетчик основного делителя частоты) определяют скорость обмена Baud Rate в бодах в соответствии со следующей формулой:

Baud Rate = ( 24 . 000 . 000 /Prescaler) / ( 65536 — Reload)

Отметим, что контроллер CP 2102 поддерживает скорости до 1 . 000 . 000 бод в режиме 7 и 8 – битных данных и 921 . 600 бод в режиме 5 и 6 – битных данных, для полнодуплексного обмена. При установке скорости, превышающей указанные ограничения, возможны сбои в работе контроллера.

Управление таймаутом при обмене данными по USB осуществляется редактированием параметра USB Receive Timeout. Значение таймаута в секундах определяется по формуле:

Timeout = ( 65536 – Reload) / 500 . 000

Указанный таймаут используется при передаче по USB в компьютер данных, принятых по последовательному интерфейсу. Он определяет промежуток времени, в течение которого контроллер ожидает входных данных. Если в течение заданного промежутка данные не поступают, контроллер завершает передачу по USB. Типовое значение таймаута – 1 ms. Управление таймаутом позволяет устанавливать компромисс при достижении двух взаимно противоречащих критериев:

1 . Минимизация задержки обслуживания USB устройства компьютером, что в данном случае дает увеличение скорости реакции диагностической программы на события в диагностируемом объекте.

2 . Минимизация загрузки компьютера операциями передачи пустых пакетов данных по USB, имеющими место при отсутствии поступления данных по последовательному интерфейсу. От этого зависит общая производительность.
Чем больше таймаут, тем дольше устройство “не засыпает” при отсутствии данных, то есть для улучшения первого критерия, таймаут следует увеличивать, а для второго — уменьшать.

Рассмотрим решение подобной задачи для одного из конкурирующих продуктов – контроллера FT 232 компании FTDI. В отличие от выше приведенного примера, здесь нам придется редактировать файл конфигурации драйвера последовательного порта FTDIPORT.INF . Структура этого файла описана в [ 3 ], процедура редактирования полей, устанавливающих скорость обмена для последовательного порта, описана в [ 4 ]. Поэтому, в целях компактности изложения, в нашем описании внимание акцентировано только на тех параметрах, которые необходимо изменять. Также отметим, что данный пример соответствует одному из нескольких вариантов представления параметров, все возможные варианты перечислены в [ 3 ], [ 4 ].

Находим в файле FTDIPORT.INF следующую запись:

[FtdiPort 232 .NT.HW.AddReg]
HKR„«ConfigData», 1 , 01 , 00 , 3 F, 3 F, 10 , 27 , 88 , 13 ,C 4 , 09 ,E 2 , 04 , 71 , 02 , 38 , 41 , 9 c, 80 , 4 E,C 0 , 34 , 00 , 1 A, 00 , 0 D, 00 , 06 , 40 , 03 , 80 , 00 , 00 ,d 0 , 80

Последовательность, начиная с шестого по счету параметра, содержит пары байтов, каждая из которых задает коэффициент деления частоты для делителя, определяющего скорость обмена по последовательному интерфейсу. Каждая пара соответствует определенной скорости. Рассмотрим первую пару параметров 10 h, 27 h.

1 . Так как два смежных байта 16 – битного слова записаны начиная с младшего байта, для получения 16 – битного числа, их нужно обменять местами: 10 , 27 соответствует 2710 h, h — означает, что число записано в шестнадцатеричной системе счисления.

2 . Переводим 16 – ричное число 2710 h в двоичную систему.

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0
2 7 1 0

3 . Интерпретируем полученное двоичное значение. Два старших бита 16 – битного числа, а именно биты 15 , 14 определяют дробную часть коэффициента деления частоты согласно следующей таблице:

Бит 15 Бит 14 Дробн ая часть делителя
0 0 0
0 1 0 . 5
1 0 0 . 25
1 1 0 . 125

В нашем случае дробная часть делителя равна нулю. Битовое поле 13 – 0 16 – битного числа численно равно целой части делителя, переведем из шестнадцатеричной системы в десятичную 2710 h = 10 . 000 .

4 . Тактовая частота на входе делителя равна 3 MHz = 3 . 000 . 000 Hz. Скорость обмена в бодах (Baud Rate) будет равна входной частоте делителя, разделенной на коэффициент деления.

Baud Rate = 3 . 000 . 000 / 10 . 000 = 300 бод.

Таким образом, первая пара значений задает скорость 300 бод. Пусть нам необходимо переопределить эту скорость на 10400 бод. Вычислим требуемый коэффициент деления (Divisor):

Divisor = 3 . 000 . 000 / 10 . 400 = 288 , 46

Ближайшее доступное значение 288 , 5 . Нам требуется задать целую часть делителя равной 288 , дробную равной 0 , 5 . Согласно таблице 2 , биты 15 , 14 будут равны 01 b, b — означает, что число записано в двоичной системе счисления. Переведем 288 в шестнадцатеричную систему: 288 = 120 h. Это значение необходимо поместить в битовое поле 13 – 0 . Объединяем биты 15 – 14 и 13 – 0 , получим 4120 h.

Для переопределения скорости 300 бод на 10400 бод запись должна иметь вид:

[FtdiPort 232 .NT.HW.AddReg]
HKR„«ConfigData», 1 , 01 , 00 , 3 F, 3 F, 20 , 41 , 88 , 13 ,C 4 , 09 ,E 2 , 04 , 71 , 02 , 38 , 41 , 9 c, 80 , 4 E,C 0 , 34 , 00 , 1 A, 00 , 0 D, 00 , 06 , 40 , 03 , 80 , 00 , 00 ,d 0 , 80

Напомним, что если драйвер устройства FT 232 уже установлен, для вступления изменений в силу, программное обеспечение устройства необходимо полностью деинсталлировать и установить повторно из каталога, в котором находится отредактированный INF файл. В силу особенностей операционной системы, функция обновления драйвера или удаление устройства в диспетчере устройств может не дать результата.

Источники информации.

5 . М. Гук. Аппаратные средства IBM PC. Энциклопедия. Санкт – Петербург, издательство “Питер” 2006 .

Источник статьи: http://chiptuner.ru/content/pub_20/

Читайте также:  Кран для снятия двигателя с автомобиля своими руками
Оцените статью