Распиновка разъема дисплея парктроника
Вопрос как проверить датчик парктроника, возникает у автовладельцев в случае отказа системы помощи парковки. Самостоятельная проверка датчика парктроника осуществляется с помощью тактильного осмотра, мультиметра или смартфона. Как узнать работоспособность парктроника рассмотрим в статье.
Какой параметр датчика проверяется | Что нужно для проверки |
---|---|
Вибрация | Тактильная проверка |
Другой датчик парктроника с припаянными к нему светодиодами | |
Звуковые щелчки | Проверка на слух |
Приложение диктофон на смартфоне с возможностью построения диаграммы звуковых волн | |
Сопротивление обмотки | Электронный мультиметр в режиме омметра |
Как работает датчик парктроника
Принцип работы датчиков парктроника
Прежде чем перейти к рассмотрению вопроса о том, как проверить датчик парковки, нужно разобраться, как вообще он работает, поскольку датчики системы парктроника бывают двух типов — ультразвуковые и электромагнитные. Первые более распространены. Принцип их работы основан на том, что они излучают ультразвуковые волны и улавливают их отражение от препятствия. Расстояние между датчиком и помехой вычисляет основной блок по разнице во времени излучения.
Электромагнитные датчики — представляют собой ленту, излучающую электромагнитное поле. Лента устанавливается на внутренней стороне переднего и заднего бампера. Такие датчики более современные и надежные, но достаточно дорогие, поэтому встречаются редко и лишь на автомобилях премиум класса.
Неисправности датчика парктроника
По статистике датчики парктроника достаточно редко выходят из строя, обычно это происходит из-за их повреждения, либо некорректной работы в теплую погоду. Самыми частыми неисправностями датчика парковки являются:
Датчик парктроника с проводкой и разъемом подключения
- коррозия контактов, попадание влаги в корпус через трещины в корпусе;
- поломка электронной составляющей датчика;
- загрязнение рабочей поверхности датчика парктроника;
- механическое повреждение датчика в результате аварии, удара;
- повреждение проводки (особенно характерно для передних датчиков из-за попадания на них грязи и химических реагентов);
- производственный брак датчика, либо его низкое качество (чаще всего подделка).
В результате повреждения одного или нескольких датчиков система парктроника может либо не работать вовсе, либо же, наоборот, постоянно пищать, срабатывая ложно. А при замыкании проводов датчика в дождливую погоду часто выскакивает “Ошибка датчика парковки”.
Также иногда автовладельцы думают что неисправность возникла вследствие попадания грязи на рабочую поверхность датчика либо того, что его закрасили под цвет бампера. Следовательно возникает логический вопрос: “Можно ли красить датчики парковки?”. Ответ — да, можно, однако есть несколько условий. В частности:
Процесс покраски датчиков
- Красить датчики лучше еще до установки на машину. Если они уже установлены, то нужно вытянуть их немного из бампера (примерно на сантиметр), а бампер за ними оклеить малярным скотчем.
- Перед покраской поверхность датчиков нужно зачистить с помощью наждачной бумаги (400-ой или 360-ой). Особенно это актуально, если на датчике имеются механические повреждения или царапины.
- После зачистки поверхность датчиков нужно обезжирить.
- Загрунтовать акриловым грунтом.
- Если датчики новые и пластмассовые, то можно зачистить поверхность мелкой наждачной бумагой или серым скотч брайтом и нанести грунт по пластику.
- После описанных процедур датчики можно красить.
Стоит отметить, что те системы парковки, которые устанавливаются на автомобиль с конвейера являются более сложными. И чаще всего при выходе из строя даже одного датчика система полностью теряет работоспособность. Те же системы парковки, которые были установлены дополнительно являются более простыми. У них при выходе одного из датчиков парктроника из строя работоспособность частично сохраняется.
Проверка датчика парктроника
Проверить ультразвуковой датчик парктроника можно одним из четырех способов — тактильно, с помощью смартфона, используя электронный тестер, а также при помощи электронного сканера ошибок.
Тактильная проверка на работоспособность
Тактильная проверка поверхности датчика
Начать проверку датчика парктроника имеет смысл с обычного визуального осмотра. Однако перед этим необходимо запустить двигатель и включить передачу, но не ехать. Для работы вам понадобится напарник, который будет выполнять указанные действия в машине, в то время, как вы будете осматривать датчики. Для проверки задних датчиков парктроника необходимо включить заднюю передачу. Для проверки же передних датчиков необходимо включить первую передачу на механической трансмиссии, либо установить режим «Драйв» на автоматической коробке передач.
Когда датчик исправен и активирован, то непосредственном приближении к нему какого-либо предмета (проще всего проверить пальцем) он издает едва различимые щелчки (примерно по 5…10 щелчков в секунду). Если приложить к нему палец — поверхность датчика должна немного вибрировать. Для лучшего ощущения вибрации пальцем нужно немного поводить по нему.
Таким образом нужно проверять каждый парковочный датчик поочередно. При этом напарник в салоне должен следить, как реагирует система на прикосновение к датчикам в целом. Это позволит определить, какой именно датчик вышел из строя. Если не работают все датчики — скорее всего, проблемы с модулем парктроника, либо с проводкой.
Как проверить датчик парктроника на исправность смартфоном
Запись звуковых волн и диаграмма на смартфоне
Существуют такие датчики парктроника, которые вибрируют очень слабо и звук, исходящий от них, практически не улавливается на слух. В этом случае для диагностики имеет смысл воспользоваться диктофоном на смартфоне. Однако нужен не простой диктофон, а приложение, позволяющее строить диаграмму поступающего звука. Операционная система и само приложение в данном случае неважно.
Для диагностики нужно активировать приложение и поднести улавливающий микрофон к диагностируемому датчику парктроника. Желательно не устанавливать микрофон в одной точке, а немного покачивать им около датчика с амплитудой 2…3 сантиметра. Запись сигнала должна составлять около 30 секунд. По окончании нужно прослушать запись. Во-первых, если сигналы есть — они будут видны на диаграмме. А во-вторых, на записи от исправного датчика будут явно различимые на слух щелчки.
Как проверить датчик парктроника мультиметром
Проверка датчика мультиметром
Самый надежный метод проверки датчика парктроника на исправность заключается в использовании мультиметра. Для этого тестер нужно установить в режим измерения электрического сопротивления. А датчики нужно демонтировать с автомобиля.
Значение сопротивления у разных датчиков будет разным, однако важно проверить отсутствие обрыва и короткого замыкания в его цепи. У трехконтактных датчиков парктроника распиновка обычно следующая: первый контакт — это «плюс», второй контакт — это сигнальный, а третий контакт — это «минус».
У исправного датчика между «плюсом» и «минусом» сопротивление должно быть более 0,5 МОм (чем выше — тем лучше). Между «минусом» и сигнальным контактом должно быть сопротивление порядка 2…40 кОм (зависит от датчика). Между сигнальным контактом и «плюсом» будет аналогичное сопротивление, около 2…40 кОм.
В некоторых случаях даже у неисправных датчиков значение измеренных сопротивлений будут в норме, поэтому если это так, то нужно выполнять дополнительную диагностику.
Проверка с помощью пьезоэлемента
Датчик с припаянными к нему светодиодами
Датчики парктроника, по сути, являются пьезоэлементами. Они изменяют свою форму (вибрируют) от подаваемого на них напряжения. Но есть и обратный эффект — при вибрации пьезоэлемент вырабатывает напряжение. Этот эффект можно использовать для проверки. Для этого вам понадобится другой датчик парктроника (только не штатный) с экранированным проводом и два светодиода.
Указанные светодиоды нужно припаять к выходному проводу датчика по встречно-параллельной схеме. Это позволит светодиодам светиться поочередно по своей полярности. Далее нужно протереть мембрану датчика и приложить ее к тестируемому датчику на автомобиле. Если он вибрирует, то светодиоды будут мигать. Этот метод хорошо подходит для проверки тех датчиков парктроника, вибрация которых не ощущается пальцами.
Программа для диагностики датчика парктроника
Диагностировать парктроник в автомобиле можно также с помощью программных средств. Для этого нужно иметь электронный сканер (проще всего портативный на чипе ELM327) и установленную на смартфон диагностическую программу (одна из наиболее популярных — ELM Config).
Программа позволяет считывать ошибки с различных систем автомобиля, в том числе парктроника. Раздел, в котором необходимо смотреть наличие ошибок датчика парктроника так и называется, на английском языке — PAM. После нажатия на кнопку считывания ошибок программа предоставит соответствующую информацию.
Заключение
Датчик парктроника ломается нечасто, и если выходит из строя, то это происходит из-за механических повреждений, загрязнения, повреждения проводки либо попадания влаги сквозь трещину в корпусе. В случае неисправности датчики нужно просто очистить осмотреть визуально и попытаться определить на слух срабатывание. Если это не помогло — нужно их демонтировать и проверить сопротивление с помощью мультиметра.
Принцип действия парковочных систем основан на излучении сигналов, которые принимаются после отражения от препятствия и обрабатываются управляющим устройством (например, микроконтроллером). Исходя из параметров принятого сигнала рассчитывается расстояние до препятствия, после чего соответствующая информация выводится на блок индикации. Особенности конкретной принципиальной электрической схемы парктроника могут отличаться в зависимости от типа используемых датчиков, количества дополнительных функций, стоимости парковочной системы и пр. Основной принцип работы при этом остаётся неизменным.
В качестве излучателей и приёмников обычно используются одни и те же датчики. Наиболее распространенный вариант — ультразвуковые сонары, но применяются также инфракрасные и электромагнитные сенсоры.
Функциональная схема парктроника
Рассмотрим принцип действия парковочного ассистента на примере одного из вариантов функциональной схемы устройства.
Управление работой данной схемы осуществляется микроконтроллером (МК на рис. 1). Микроконтроллер в заданные моменты времени подаёт управляющие сигналы на передатчик (Прд), который включает сенсоры (УЗИ) на передачу. При приближении к препятствию отраженные от него сигналы поступают на схему приемника (Прм), затем усиливаются усилителем (У) и поступают на микроконтроллер.
Микросхема МК анализирует параметры принятых сигналов (в случае ультразвуковых сенсоров — величину временной задержки), после чего управляет дальнейшей работой передатчика и блока сигнализации (БСИ).
Функциональные схемы разных парктроников имеют определенные отличия. Например, более простые могут обходиться вообще без микроконтроллеров. Управление в таком случае осуществляется посредством других электронных микросхем.
Принципиальная схема парктроника на счетчике-делителе
Рассмотрим пример принципиальной электрической схемы парктроника, собранной на десятичном счетчике-делителе. В нашем случае это МС К561ИЕ8.
В качестве датчиков используются два разных устройства — ультразвуковой излучатель (TX, MA40S4S) и приёмник (RX, MA40S4R). Генератор ультразвуковых импульсов собран на МС К561ТЛ. Здесь DD1.5 играет роль выходного буфера, DD1.6 – усилителя выходного сигнала, а DD1.4 – непосредственно генератора. Генерируемая частота составляет примерно 40 кГц, причём этот показатель можно подстроить посредством резистора R14.
Парктроник запитывается от сети 12 В (желательно брать питание от лампы заднего хода либо использовать альтернативные варианты при подключении передних датчиков). Стабилизатор входного напряжения выполнен на элементе DA1.
В момент сброса десятичного счётчика на выходе Q0 формируется управляющий электрический импульс, запускающий работу излучателя TX на передачу. Остальные выходы К561ИЕ8 задействованы для индикации расстояния от препятствия.
Отраженный сигнал после детектирования на RX усиливается каскадом VT1–VT4 и переключает триггер (DD1.1 и DD1.2). Тем самым работа счетчика временно останавливается. Включается один из светодиодов, сигнализирующий о расстоянии до препятствия. Включение диода HL9 говорит о максимальной дистанции до преграды, а HL1 – о минимальной. Одновременно с диодом HL1 включается звуковая сигнализация на зуммере BF.
Описанная принципиальная схема предусматривает возможность ручного регулирования ряда параметров. Потенциометром R14 настраивается чувствительность устройства. Посредством R15 задаётся диапазон срабатывания между светодиодами. Например, можно установить промежуток 10 см для каждого из диодов, тогда парктроник будет срабатывать при расстоянии в 90 см от препятствия.
Отметим, что приведённая электрическая схема парктроника позволяет подключить его всего с одной парой датчиков. Это очень простой и недорогой вариант организации парковочной системы.
Принципиальная электрическая схема на микроконтроллере
Эта принципиальная электрическая схема парктроника соответствует приведенной на рис. 1 функциональной.
Принципиальная схема собрана на 8-битном микроконтроллере Z86E0208PSC марки ZiLOG (DD1). DA1 – это стабилизатор напряжения 7805, обеспечивающий питание +5 В. На транзисторах VT1–VT3 собран резонансный усилитель. Применяются по четыре ультразвуковых излучателя и приёмника (BQ).
В качестве времязадающей цепи используется схема на кварцевом генераторе ZQ (8 МГц) и конденсаторах C3, C4. Ультразвуковые излучатели подключены на выводы 15—18 порта 2 контроллера. На входы излучателей подаются пакеты импульсов длительностью 1 мс с возбуждающим напряжением размахом 10 В.
Отраженные ультразвуковые волны принимаются приёмниками BQ1, BQ5—7, включенными во входную цепь трехкаскадного усилителя на транзисторах КТ3102. С выхода усилителя сигнал подаётся на вход P32 контроллера — неинвертирующий вход компаратора. С делителя R1–R3 на инвертирующий вход P33 подаётся эталонное напряжение +2,7 В. Дополнительную защиту от помех обеспечивает ограничительный диод VD1 с конденсатором C1. Для ограничения мгновенных значений принятого импульса уровнями 0 и 5 В используются диоды VD2 и VD3.
Принципиальная электрическая схема данного парковочного радара подразумевает подключение питания к лампе заднего хода автомобиля, левому и правому поворотникам. Это обеспечивает запуск системы в случае включения задней передачи или начале перестроения/поворота.
Микросхема DA1 преобразует 12 В в питающее напряжение МС Z86E02 + 5 В и стабилизирует его. На резисторе R6 и конденсаторах C2, C8 и C13 собран фильтр для подавления помех. На резисторах R1 и R5 реализован делитель напряжения 2,7 В.
Принцип действия
После включения парковочного радара управляющая микросхема запускает работу излучателей. При появлении в зоне действия системы препятствия происходит отражение ультразвука и возврат его к приёмнику. Микроконтроллер по времени задержки рассчитывает расстояние до преграды и формирует соответствующие предупреждающие сигналы: частые при расстоянии до препятствия менее 1 метра и редкие на дистанциях 1—2 метра.
После излучения пакета длительностью 1 мс контроллер переводит схему в режим ожидания, работа передатчиков подавляется. Если через 60 мс приемниками не была принята отраженная волна, радар опять запускается на передачу.
Схема датчика парктроника на инфракрасном излучении
В завершение приведем простейшую принципиальную электрическую схему датчика парктроника, собранную на инфракрасных излучателях.
Работа этой электрической схемы парктроника основана на взаимодействии операционного усилителя LM324 и таймера NE555. Используются два ИК-диода — передатчик и приёмник. В качестве индикаторов задействованы три светодиода — красный, зеленый, жёлтый.
Принципиальная схема парктроника настроена таким образом, что обеспечивает трёхступенчатую сигнализацию о приближающемся объекте. На дистанции 30 см включается желтый светодиод, на 20 см — жёлтый и зелёный, на 10 см горят все три индикатора.
При своей простоте эта схема представляет определенный интерес, поскольку монтажную плату со всеми необходимыми деталями можно купить в любом магазине радиодеталей.
При желании можно самостоятельно собрать парктроник своими руками с помощью этой электрической схемы. Правда, потребуется вынести индикаторы за пределы монтажной платы датчика и разместить их где-нибудь в районе приборной панели.
Самостоятельная установка парктроника Данное устройство позволяет упростить парковку автомашины. Сегодня эта операция в крупных городах является непростой, учитывая возросшее число автомобилей. Особенно тяжело приходиться на парковке молодым водителям, не имеющим большого опыта. Однако часть автолюбителей, не говоря уже о профессионалах, относятся к парктронику скептически. Правда, водители, установившие этот прибор на автомашину, не жалеют об этом.
Многие задаются вопросом, а можно ли монтировать оборудование самому или стоит это доверить профессионалам из автосервиса? Если ссылаться на производителей парктроников, то ответ однозначный: надо обращаться к специалистам, потому что разные парковочные радары обладают различными нюансами, поэтому обычному автолюбителю трудно разобраться в них.
Однако если автовладелец неплохо разбирается в технике, то он в состоянии самостоятельно выполнить установку оборудования. Попытаемся разобраться в этом вопросе.
Предназначение парктроника
Основной задачей прибора является обнаружение препятствий, находящихся в зоне невидимости водителя, которая называется «мертвой». Водитель предупреждается, при приближении к препятствию, сигналами (звук, свет). Возможно соединение парковочного радара и с видеокамерами. В этом случае можно будет получить на мониторе изображение.
Комплектация парктроника
В состав парковочного радара входят:
Блок управления, отвечающий за обработку полученной информации; Дисплей, куда выводится обработанная информация; Датчики. В простых системах имеется, как правило, два датчика, а в дорогих и серьезных – до восьми.
Есть модели, оснащенные видеокамерами, выпускаются изделия, использующие беспроводные соединения, производятся радары и с дополнительными мониторами. Однако процесс монтажа всех парктроников, практически, идентичен.
Самостоятельный монтаж парктроника
Установка парктроника выполняется в три этапа.
Установка парктроника - снятие бампера
На первом этапе выполняются подготовительные работы. Сняв бампер, следует его вымыть. Когда он высохнет, выполняется разметка (желательно использовать хорошо смываемый маркер) мест, где будут размещены датчики. Предварительно заклеев предположительное место установки датчиков малярным скотчем, это позволит не повредить лакокрасочное покрытие. Установку датчиков необходимо выполнять, следуя прилагаемой инструкции, в которой указываются требования к высоте (стандартная высота от земли - 50 см) расположения устройств (как правило, горизонтальная линия) и дистанции между ними. Разметив места установки датчиков, просверливают отверстия, воспользовавшись дрелью и фрезой поставляемой как правило в комплекте.
Установка парктроника - монтаж датчиков
Второй этап – это установка датчиков. Они маркируются, к примеру, буквами (А, B, С, D), поэтому их монтаж должен осуществляться в соответствии с маркировкой. Поэтому левый край бампера автомобиля обязан соответствовать расположению устройства, обозначенного буквой А, а правый – маркировкой D. Заканчивается установка датчиков на бампере монтажом на них (с обратной стороны) стопорного кольца и монтированием самого бампера в исходное положение.
Что касается блока управления, то его монтаж можно выполнить в багажнике, закрепив двустороннем скотчем. Важный момент - соблюдение полярности. Например, плюс неоходимо подключить на лампочку, которая сигнализирует при движении автомашины назад. В принципе, схема подключения парктроников стандартная, но бывают и случаи, когда надо применить диоды или использовать электрические цепи, которые идут к указателям поворотов. Одним словом, ориентироваться надо на схему конкретного парктроника, который устанавливается на машину.
Установка парктроника - монтаж дисплея
Третий этап включает монтаж в салоне дисплея и тестирование оборудования. Рекомендуется проводить тестирование с различными препятствиями и в разнообразных условиях.
В попытках свести все жизненные рабочие показатели своего автомобиля на один экран головного устройства дошла очередь и до подключения парктроника. Многие возразят — ведь даже у дешевых парктроников есть свой экранчик, зачем выводить данные куда-то ещё? Да просто лишний экранчик в салоне ставить не хочется, и покопаться в железе повод есть…
В статье постараюсь описать приёмы и инструменты для реверс-инжиниринга недокументированного протокола обмена двух железок между собой.
Из содержания некоторых публикаций, создаётся впечатление, что, во-первых, стоит выбирать парктроник с радиоканалом между основным блоком и экраном, и во-вторых, ничего сложного в протоколах обмена не ожидается. Хм… ну да. Правдой это оказалось наполовину.
Наличие радиоканала между основным блоком и «блоком индикации» позволяет предположить, что протокол обмена между ними будет простым и последовательным с передачей измеренных расстояний в явном виде. Если бы экран цеплялся напрямую, то, скорее всего, вся логика была бы реализована в одном чипе и на экран шли бы уже команды типа «зажги вот этот пиксель/сегмент и погаси вон тот», без возможности получить непосредственно измеренные расстояния. Окей. Воодушевлённые, идём в «крупнейший кибермаркет» и покупаем там самый дешевый комплект парктроника с самолётами в логотипе. Купили, и тут началось…
Шаг первый. Вскрытие и считывание посылаемых данных
Для начала определимся со способом передачи данных по радиоканалу. Вскрыв основной блок, находим там кругленький чип R433A с совершенно стандартной обвязкой. Приёмника в основном блоке нет, следовательно, канал передачи данных односторонний, с единственно возможной для R433 OOK-модуляцией. Т.е. при наличии высокого уровня цифрового сигнала (логической «единицы») передатчик передаёт в эфир несущую на частоте 433,92 МГц. При отсутствии высокого уровня — передатчик молчит. Со стороны приёмника в блоке индикации аналогичным образом происходит декодирование: если приёмник видит несущую, выдаёт высокий уровень, если не видит — выдаёт низкий. Да, все помехи от парктроника соседа приёмник так же прекрасно ловит, поэтому его чувствительность сильно занижается. И к передаваемым данным, как правило, добавляется контрольная сумма (этот факт нам ещё пригодится ниже).
Нам понадобится цифровой осциллограф-самописец (удобны простые USB-осциллографы, типа DiSco). Находим дорожку, которая идёт от главного микроконтроллера «мозгов» к передатчику в основном блоке или от приёмника к микроконтроллеру в блоке индикации, находим любую «минусовую» дорожку, подпаиваем к ним проводочки, подключаем осциллограф, смотрим:
Вот такую повторяющуюся посылку шлёт основной блок сразу при подаче питания. При внимательном её рассмотрении можно сделать крайне неочевидный вывод о том, что посылка состоит из трёх частей:
- Первая часть — очевидно, некая синхронизация, чтобы «разбудить» приёмник и чип в блоке индикации. Состоит из пяти импульсов по 0.4 мс с паузами по 0.4 мс и следом одного импульса длительностью 1 мс с паузой 2 мс. Запомним информацию о длительности, она пригодится для реализации собственного декодера.
- Вторая и третьи части — это непосредственно данные, закодированные в 16 импульсах разной ширины в каждой части (плюс ещё один 0.4 мс импульс в самом конце).
Шаг второй. Декодирование ручками
Итак, у нас есть 32 бита данных и 4 датчика. Логично предположить, что на каждый датчик отводится «чуть менее» 8 бит, плюс, вероятно, контрольная сумма (мы ещё помним про контрольную сумму!). И нам нужно понять, каким образом в этих битах кодируются расстояния до препятствий и всё такое. Для начала отключим все датчики и вручную с показаний осциллографа запишем полученную последовательность бит:
10011100 10011100 10011101 01000100
хм… понятно, что ничего не понятно. В отсутствие датчиков логично бы получать все единицы или все нули. Здесь ничего похожего. Подключим датчик A, направив его в пустоту (показания — «бесконечность»):
10011100 10011100 10010011 01001100
изменились последние два байта. В 4-м байте поменялся 1 бит. Видимо, именно он показывает «наличие датчика A»? А в 3-м байте поменялось 3 бита. Причём, если рассматривать их как отдельное 3-битное число, записанное от младшего к старшему биту, можно заметить, что оно увеличилось на единицу: 011+1=100. А единица эта — добавилась к 4-му байту. Отсюда два предварительных вывода:
- в 3-м байте есть биты, относящиеся к контрольной сумме,
- контрольная сумма — это простая арифметическая сумма чего-то с чем-то, никаких там CRC и прочих сложностей,
- данные в целом кодируются не байтами, а 4-битными «нибблами».
10011100 10011110 01011101 01000100
изменились 2-й и 3-й байты. Шестой бит второго байта (считая от нуля), похоже, «наличие датчика B». Младшие 4 бита третьего байта — тоже контрольная сумма, тоже увеличилась на единицу, появившуюся во втором байте. Но появилась она там не в нулевом и не в четвёртом, а в шестом бите! Уже становится интересно. Пробуем одновременно датчики A и B в «бесконечность»:
10011100 10011110 01010011 01001100
да, кое-что прояснилось. Имеем второй байт, как в посылке «только датчик B» и четвёртый байт из посылки «только датчик A». А вот в третьем байте две 4-битных части из двух предыдущих посылок. Предположение про 4-битные контрольные суммы начинает подтверждаться? Непривычно только то, что контрольная сумма засунута в середину посылки.
Попробуем теперь выставить перед датчиком A (отключив B) препятствие на расстоянии, скажем, 90 см:
10011100 10011100 10011111 01000110
о как, бит «наличие датчика A» больше не показывает нам наличие датчика A. Но в последних 4 битах появился бит в другом месте. И разительно поменялась контрольная сумма. Хотя если сравнить с исходной посылкой без датчиков: 1111-1011 = 100, а последние 4 бита: 0110-0010 = 100. Ура! Совпало!
Тем не менее, дальше становится понятно, что вручную с показаний осциллографа срисовывать эти биты тяжело и велика вероятность ошибиться. Поэтому…
Шаг третий. Декодирование ножками в микроконтроллере
У нас есть микроконтроллер. Ардуино или просто AVR на макетке, неважно. Он у нас есть, кому как не ему собирать все данные для головного устройства. Поэтому самое время написать программку для декодирования посылки от парктроника и передачи этой посылки через терминалку в компьютер для упрощения дальнейшего процесса реверсинга.
Поскольку уровень сигналов от парктроника составляет стандартные 5 вольт, то подключение к AVRке для отладки очень простое — проводом на любую неспециализированную ножку (хмм… может я зря зачеркнул в заголовке?).
Исходник программы доступен на гитхабе. Декодированием занимается функция-обработчик прерывания PCINT3_vect в строке 119 и далее. Остальная часть программы делает много других интересных штук, может быть когда-нибудь я и про это напишу статью. А пока опишу вкратце алгоритм декодирования посылки от парктроника.
У нынешних AVRок почти на каждую ногу можно повесить прерывание, которое будет срабатывать каждый раз при изменении уровня на входе. Т.е. каждый раз при переходе от 0 до 5 вольт и каждый раз при переходе обратно от 5 до 0. Таким образом, достаточно при помощи таймера засекать время между срабатываниями прерывания и фиксировать внутреннее состояние. Состояний может быть несколько: ожидание первых 5 импульсов, ожидание широкого импульса, ожидание паузы, ожидание первых 16 бит (с последующим декодированием в зависимости от длительности импульса), ожидание паузы, ожидание вторых 16 бит, ожидание финального импульса, переход в начальное состояние. Причём всё это реализовано в обработчике прерывания, отнимает каждый раз буквально считанные такты и совсем не занимает главный цикл (правда, занимает отдельный таймер, но это исправимо).
Получившееся устройство по UART выдаёт в терминалку компьютера декодированные значения непосредственно в виде 4х байт. Для упрощения последующего анализа открываем Excel и пишем макрос:
генерирующий из 4 шестнадцатеричных байт вот такое (разноцветие и подписи, конечно, я уже добавил сам):
очень наглядно стало видно, что биты «наличие датчика» действительно имеются по всем 4-м датчикам и влияют на контрольные суммы соответственно. А пропадание бита датчика A при некоторых показаниях обусловлено чем-то ещё.
Обладая всем вышеописанным инструментарием, опытным путём получаем таблицу по датчику A:
- Последние 4 бита — десятки сантиметров датчика A. Причём если промоделировать расстояния вплоть до нуля, получится, что нулю десятков сантиметров соответствует 1111 и далее по убывающей, 10+ см = 1110, 20+ см = 1101, 30+ см = 1100 и т.д. вплоть до 0011, соответствующего 130+ см.
- Отмеченные бледно-розовым два столбца по 2 бита соответствуют единицам сантиметров (заметьте, что для 105, 95 и 85 см биты одинаковы). Причём в первом столбце более старшие биты 4-битного значения. Принцип кодирования тот же: 0 см = 1111, 1 см = 1110 и т.д. вплоть до 9 см = 0110
- Первая контрольная сумма остаётся неизменной, а вот вторая меняется хитро. Столбец десятков сантиметров влияет на сумму непосредственно, а вот оба столбца единиц сантиметров — влияют только на старшие два бита контрольной суммы.
- Два столбца по два бита, кодирующие единицы сантиметров, остаются на своих местах (отмечены светлозеленым). Получается, что, скорее всего, единицы сантиметров выводятся каждый раз для ближайшего к препятствию датчика, а десятки сантиметров — отдельно по каждому датчику. Таким образом, на штатном экранчике выводится расстояние до ближайшего к препятствию датчика с точностью до сантиметра и, грубо, расстояние до остальных датчиков в виде полосочек перед бампером.
- Десятки сантиметров для датчика B получаются также разбитыми на два столбца по два бита (отмечены «среднезеленым»).
- Обратившись к инструкции к парктронику, выясняем, что заявленное максимальное фиксируемое расстояние до препятствия — 2.5 метра. А в 4 битах можно закодировать только 1.6 метра. Значит где-то есть пятый бит? И действительно, промоделировав расстояния 1.7 метра и дальше, выясняем, что это второй бит первого байта (отмечен тёмнозеленым). Таким образом, десятки сантиметров датчика B кодируются битами в следующем порядке (от старшего к младшему): 2,1,0,16,15.
- Меняются значения обоих 4-битных контрольных сумм. Следовательно, биты, связанные с показаниями датчика B, влияют на обе суммы.
- Первая контрольная сумма чётко изменяется на единицу вместе с изменениями на единицу значения десятков сантиметров. Видимо остальные столбцы, которые тоже включены в эту сумму — среди неизменяющихся по датчику B.
Очередь датчика C:
гоньфень джи рёнран суньзаой, то есть единицы сантиметров по-прежнему на своих местах.- Десятки сантиметров для датчика C закодированы в пяти битах, которые на этот раз вместе, хоть и принадлежат разным байтам (сиреневый и тёмносиреневый). Принцип кодирования аналогичен предыдущим датчикам.
- Первая контрольная сумма (первые 4 бита) чётко изменяется на единицу вместе с изменениями на единицу значения десятков сантиметров. Аналогично датчику B. Следовательно, предварительный вывод: в первую контрольную сумму входят значение десятков сантиметров датчика B и датчика C (вероятно, без пятого бита) и что-то ещё. Интуиция подсказывает, что это младшие 4 бита последнего байта. Проверим ниже.
По датчику D собирать подробную таблицу стало лениво, поэтому так:
что ж, все гипотезы подтвердились. Первые 4 бита последнего байта кодируют десятки сантиметров датчика D.
Для проверки промоделируем несколько сочетаний датчиков A и B:
да, всё совпадает.
На данном этапе мы можем полностью декодировать расстояния по каждому датчику, включая единицы сантиметров. И наличие/отсутствие датчиков. Может быть, этого достаточно? Хм. Кажется что-то ещё недораскопано…
Шаг четвёртый. Расчёт CRC (Chinese Redundancy Check)
- Их две, по 4 бита, находятся почему-то не в последнем, а в третьем байте.
- Каждая из них является простой арифметической суммой данных из других столбцов.
- Предположительно известна принадлежность некоторых бит к конкретным контрольным суммам.
Отметим известную на данный момент принадлежность на выборке каких-нибудь произвольных показаний:
попробуем просуммировать по первой строке, возьмём столбцы десятков сантиметров датчиков B, C и D:
1110 + 0111 + 0011 = 11000
хм, а контрольная сумма в третьем байте 0111. А что если минус один?
1110 + 0111 + 0011 — 1 = 10111
совпадает, если отбросить лишний бит. Проверим по другим строкам:
1110 + 0111 + 0011 — 1 = 10111 (ой, тут всё повторилось)
0101 + 0111 + 0011 — 1 = 0111 (тут без отбрасывания)
1111 + 1100 + 1100 — 1 = 100110 (тут аж два бита переполнилось)
0001 + 0101 + 0011 — 1 = 1000 (без отбрасывания)
ура, всё совпало!
У нас остались не отмеченные столбцы. Вероятно, они относятся ко второй контрольной сумме, поэтому попробуем просуммировать:
1010 + 1011 + 0011 = 11000
1110 + 0111 + 0101 = 11010
1110 + 0011 + 1000 = 11001
1111 + 1111 + 0111 = 100101
1111 + 1011 + 0111 = 100001
мда, маловато общего с второй контрольной суммой. Посмотрим, сколько нужно вычесть, чтобы совпало:
1010 + 1011 + 0011 — 10 = 10110
1110 + 0111 + 0101 — 10 = 11000
1110 + 0011 + 1000 — 11 = 10110
1111 + 1111 + 0111 — 01 = 100100
1111 + 1011 + 0111 — 11 = 11110
где-то я это уже видел… а, ну да, у первой контрольной суммы! Зависимость простая — от второй КС нужно отнять то, что мы отбросили как переполнение при расчёте первой КС, только xor'енное с 11. Т.е. отбрасывая 00 (ничего) от первой КС, от второй отнимаем 11 и т.д.
Уфф, вроде всё. Осталось два незадействованных бита, но они, похоже, всегда единицы.
Шаг пятый. Чистка радиоэфира
А вообще я не сторонник применения радиоканалов где попало. Эфир и так прилично загажен, так что работать это всё будет местами (географическими) довольно нестабильно. Поэтому займёмся тем, что выкинем из парктроника приёмник и передатчик, соединив базовый блок, блок индикации и наш микроконтроллер по проводам. Почему я упоминаю блок индикации, хотя не собирался его ставить? А из-за пищалки. Всё-таки передача от базового блока парктроника в наш микроконтроллер, там декодирование, затем пересылка в головное устройство, там снова декодирование и отрисовка внесёт некритичный, но заметный лаг в отображение расстояний. Поэтому блок индикации останется в недрах приборки и будет пищать заведомо быстрее (хотя в будущем, может быть, заставлю пищать свой микроконтроллер).
Можно было бы не париться и соединить все блоки проводочками прямо как в отладочном режиме, напрямую. Однако прокидывать через всю машину жалкие 5 вольт TTL, поверьте мне, не лучшая идея. Поэтому впаяем во все три устройства микросхемы MAX485, реализующие передачу по куда более надёжному интерфейсу RS-485. В общем как-то так (простите за неотмытый флюс). Базовый блок:
на месте белого кружка в правом верхнему углу платы стоял чип R433A, из его обвязки также удалён транзистор Q11 и резистор, вместо которого припаян проводок. А в свободном месте удалось расположить микросхемку так, что ножки попали на минусовой контакт и несколько других подходящих контактов. Поскольку базовый блок всегда является передатчиком, ножки DE и RE можно постоянно замкнуть на +5 вольт. Линии A и B интерфейса RS485 выведены на дополнительную клемму.
ну здесь вообще красота, MAX485 впаялась практически как родная вместо стоявшей микросхемы приёмника RF83C. Совпали ножки выхода данных DO и минусовая GND, ножки DE и RE, поскольку эта часть всегда приёмник, посажены на землю. Остальное потребовало всего одной перемычки.
Работает, как и прежде:
фотку собственного микроконтроллера, пожалуй, опубликую в статье про остальную часть функционала KMENevoBT с гитхаба.
Напоследок, код полного декодирования посылки от парктроника из отладочной программки на Delphi:
Шаг шестой. Выводы
Возможно, в какой-то момент стоило отказаться от дальнейших раскопок и заказать с Ebay тот же парктроник, который расковырял итальянец с форума по первой ссылке, но мне понравился сам парктроник. Он весьма быстро и точно работает. Пришлось добить, уже из принципа.
Что курили китайцы, разрабатывая такой вот протокол, непонятно.
Кстати, зная протокол обмена, можно применить этот парктроник не только на автомобиле, а, к примеру, на самодельном роботе. Да, для роботов есть отдельные ультразвуковые датчики, но тут их сразу четыре и читаются они одной ножкой ардуины, хоть и с задержкой в несколько миллисекунд.
Выпала мне возможность взять на обзор датчик парковки.На 2 бампера не захотел брать, так как не вижу смысла крепить датчики на передний бампер, да и лень.Взял с 4 датчиками которые установил на задний бампер.
Посылка пришла на удивление в хорошем состоянии, я имею в виду, что внешне коробка была не помята
С боку на коробке есть краткая информация и какие есть цвета датчиков, хотя на сайте продавца был белый и чёрный цвет.
Рабочее напряжение: DC 12V ± 2V
Рабочая температура: -20 ℃
+ 70 ℃
Рабочий ток: 200 мА ±
50 мА Диапазон детектирования: спереди: 0,3-0,8 м назад: 0,3-2,0 м.
Угол детектирования: H> 80 ° V> 70 °
Ну и начну сразу что идёт в наборе.
4 датчика парковки
Длина провода составила 2.4 метра, мне хватило с запасом.
Размеры датчика такие:
С обратной стороны датчика нарисована стрелка, показывает направления датчика при установке.Стрелка должна смотреть строго вверх!
Штекер и сам датчик по качеству сделан хорошо, тут недостатков я не вижу
Далее переходим к блоку управления.Размеры его такие
На боковой части блока управления имеем 4 входа для датчиков, питание и монитор
Так же по бокам есть проушины для крепления блока саморезами.
Сам блок очень лёгкий 51 грамм.
Так же на схеме блока есть 4 регулятора для настройки датчика, которые как то не аккуратно залиты клеем
На следующей очереди у нас монитор.
Размеры его такие:
Монитор имеет цветные шкалы деления, они загораются в зависимости от приближения к препятствию и с какой они стороны.
В верхней части есть динамик который очень неприятно пищит.Бывает хорошо работает и иногда так пищит как будто скоро выйдет из строя, при чем это было сразу после установки.Думаю вскоре я его заменю
Штекер держится хорошо не вылетает.Провод у меня получился с запасом, а его там 5 м.
Ещё в наборе был двухсторонний скотч для блока управления и монитора.На их я всё и прилепил.
Огромным плюсом я считаю, что в наборе была фреза под размер датчика.Мой 4мм бампер просверлила без проблемм
Ну и последнее что было в наборе это провод питания.Качество провода просто ужасное, очень тонкий, не медный и вылетал со штекера.Провод сразу под замену
Как видите один конец провода был плохо припаян, решил его заменить
Установка парктроника
Для начала это обязательно читайте инструкцию, иначе при неправильной установке он у вас будет показывать не точно.Первое что нужно знать, так это то, что датчики должны находиться от земли минимум от 50 см до 60 см.Учитывайте на сколько у вас просядет авто при загруженном багажнике.Если к примеру датчики будут находиться 30 см от земли, то при движении задним ходом они будут срабатывать на ровную землю.В моём случае расстояние 52-53 см.
После того как отметил высоту я, прилепил строительный скотч на всю длину бампера
Далее отметил место для датчиков
Несколько раз перепроверил, после чего начинал сверлить шуроповёртом на минимальной скорости под прямым углом.После этого лишний пластик можно удалить лезвием или канцелярским ножом.
Самым волнительным и тяжёлым для меня моментом было именно разметка бампера, так как права на ошибку нет, как просверлишь так и будет работать, но всё получилось удачно.Датчики стали как родные, под нужным углом.Напомню что их нужно ставить стрелкой вверх
В итоге расстояние между ними у меня получилось 34 см
Провода датчиков я протянул в штатные отверстия по бокам авто, видимо они предназначены для слива воды или вентиляции.Блок управления я закрепил под обшивкой с помощью двухстороннего скотча который был в комплекте.Приклеил на кузов авто, предварительно обезжирив металл керосинном (что было под рукой)
Датчики нужно подсоединять к блоку по порядку A.B.C.D по этому провода я пометил
Ставлю минус за то, что не штекерах нет меток A.B.C.D как это есть в других парктрониках.Питание блока я кинул от лампочки заднего хода.
Последний шаг это подключение монитора.Провод я протянул под обшивкой потолка, так как его быстрее разбирать чем тянуть по полу.
Монитор закрепил на скотч с набора на зеркало, так как я считаю что это самое оптимальное для него место, что бы все было перед глазами.
Из недостатков данного парктроника могу сказать то, что динамик на экране не очень качественный и неприятный на звук.Силовой кабель очень плохого качества.Ну и последний минус для меня это то, что на штекерах проводов датчика нет маркировки A.B.C.D, можно при подключении перепутать.
Не ожидал что данный китайский товар будет точно показывать расстояние до препятствия, думаю своих денег он стоит.
В своём видеоролике я замерял расстояние которое показывает датчик и замерил это рулеткой.
Товар предоставлен для написания обзора магазином. Обзор опубликован в соответствии с п.18 Правил сайта.
Читайте также: