Парктроник схема электрическая принципиальная
Парковочный радар автовладельцы чаще называют парктроником. Это электронное устройство работает по принципу эхолокатора и помогает водителям парковаться без инцидентов. Если вы планируете оснастить автомобиль столь нужным помощником, но ехать на СТО не хочется, узнайте, как выполняется установка парктроника своими руками без специальных инструментов. Чтобы применить полученные знания на практике потребуется всего несколько часов. В результате вы повысите безопасность вождения при плохой видимости и на ограниченной территории.
Схема подключения парктроника
В стандартную комплектацию парктроника входит 2-8 ультразвуковых сенсора (датчика), блок управления, LED-дисплей, провода с коннекторами. Некоторые модели дисплеев не имеют и оснащаются только звуковыми зуммерами. Все перечисленные компоненты проверяются производителем на совместимость и при монтаже не требуются использовать какие-либо дополнительные переходники.
Сенсоры задних парктроников монтируются в задний бампер. Чтобы подключить передние парктроники, сенсоры соответственно устанавливаются в передний бампер. 4-зонные модели имеют по 6-8 датчиков, которые устанавливаются на оба бампера.
Последовательность подключения компонентов радара (на 4 и на 8 датчиков) вы можете видеть на фото ниже.
Блок управления парктроника размещается в защищенном от влаги месте, обычно в салоне или багажнике. Месторасположение дисплея – зеркало заднего вида, торпедо иди лобовое стекло. Подробное руководство по самостоятельной установке парктроника приводится далее.
Расстояние между датчиками парктроника
Куда ставить датчики, зависит от конструктивных особенностей вашей машины, в частности от её ширины. При установке на бампер 4-х сенсоров, интервал между ними варьируется в пределах 30-40 см. Если устанавливается 2 прибора, расстояние – от 60 до 80 см.
Расстояние от мест установки сенсоров до поверхности дорожного полотна составляет 50-80 сантиметров. Точное значение обычно указано в инструкции производителя. Важно установить сенсоры строго вертикально по отношению к дорожному полотну.
Из-за слишком низкого расположения они будут воспринимать землю как препятствие, что приведёт к ложным срабатываниям. При более высоком расположении увеличатся слепые зоны и при парковке можно зацепить бордюр или подобное препятствие.
Инструкция по подключению парковочного радара
Для установки 4-зонного парктроника (8 сенсоров) своими руками потребуются следующие инструменты:
• набор отвёрток;
• электродрель;
• маркер;
• рулетка;
• изолента;
• двусторонний скотч;
• силиконовый герметик.
Освободите карман багажника для установки в него блока управления. Для фиксации используйте двусторонний скотч.
В комплект парктроника обычно входит фреза – насадка на дрель. С её помощью просверливают отверстия в багажнике для прокладки кабеля и в бамперах для установки датчиков. Диаметр фрезы соответствует размерам датчиков.
Своими руками демонтируйте бампер, удалите с него загрязнения. Используя рулетку и маркер сделайте разметку. Задачу можно облегчить, если на очищенный бампер закрепить малярную ленту и уже на ней отмечать места установки сенсоров.
Первые две отметки поставьте на участках боковых закруглений бампера (слева и справа). Разделите расстояние между проставленными точками на три равных отрезка. На границах между ними проставьте ещё две точки. Таким образом вы разметили бампер под установку четырех сенсоров, между которыми будут равные интервалы.
После разметки оснастите электродрель фрезой и при умеренных оборотах просверлите отверстия в отмеченных местах. У фрезы края остро заточены – работая с ней, будьте осторожны.
Протяните провода в полученные отверстия. Нанесите на каждое полученное посадочное гнездо тонкий слой силиконового герметика и выполните установку датчиков. Если на их корпуса производителем нанесены стрелки, проследите, чтобы они указывали вверх. Действуйте аккуратно: не давите слишком сильно на устройство, вставляя его в отверстие, не тяните за провода.
Провода сгруппируйте в жгут с помощью хомута или изоляционной ленты. Протяните получившийся жгут в штатное отверстие, через которое проходят провода фары, предварительно сняв уплотнитель.
Таким же образом своими руками выполняется установка сенсоров парктроника на передний бампер. Провода передних сенсоров также должны быть проложены в багажник. Проводка проходит через моторный отсек и салон авто.
Кабель по салону прокладывается между крышей и обшивкой потолка. Можно сделать несколько зазоров в обшивке и с помощью веревки протягивать провод через них поэтапно.
Для прокладки кабеля к блоку управления, расположенному в багажнике, запрокиньте задние кресла и снимите напольное покрытие, панель задней стенки и левую боковую панель багажника.
В багажнике провод каждого датчика подсоединяется к соответствующему разъёму блока управления. Для облегчения этой задачи производители парктроников помечают разъёмы латинскими буквами.
К блоку управления подсоединяются и провода дисплея. Выбрав место установки дисплея своими руками зафиксируйте его с помощью двустороннего скотча.
Все компоненты парктроника должны быть закреплены надёжно, чтобы во время движения машины не произошло самопроизвольного отсоединения разъёмов. Важно, не только, как крепится оборудование, но и как проложена проводка. Проследите, чтобы провода не передавливались, не перекручивались и не были сильно натянуты.
Для питания парктроника, подключите блок управления к проводке фонарей заднего хода, чтобы напряжение подавалось только после включения задней передачи. Используйте электросхему своего автомобиля и не забудьте перед началом монтажа отключить его от питания.
Завершающий этап: регулировка и тестирование
Вы узнали, как правильно установить датчики парктроника и другие его компоненты самому, теперь очередь за настройками и тестированием.
Нужные кнопки располагаются на блоке управления или/и на дисплее. Порядок регулировки зависит от модели парктроника. Как включить режим настроек указывается в сопроводительной документации.
Обычно, для этого требуется длительное нажатие на кнопку управления. После этого путём коротких или длительных нажатий перебираете параметры, которые отображаются на дисплее и выбираете нужное значение.
Настройки производятся при включенной задней передаче. Таким образом вы сможете своими руками настроить чувствительность и расстояние срабатывания датчиков, яркость дисплея, громкость аудиосигнала.
Для тестирования выезжайте на ровную, безопасную площадку или дорогу. Используйте в качестве препятствия лист картона, длина и ширина которого не меньше 50 см. Других предметов в зоне действия датчиков не должно быть.
После включения зажигания и задней передачи проверьте, насколько корректно функционирует парктроник, как он определяет расстояние до препятствия и выводит информацию на дисплей, как работает звуковое оповещение.
При дальнейшей эксплуатации учитывайте, что после установки сенсоры корректно реагируют на препятствия при скорости движения задним ходом до 4 километров в час.
Принцип действия парковочных систем основан на излучении сигналов, которые принимаются после отражения от препятствия и обрабатываются управляющим устройством (например, микроконтроллером). Исходя из параметров принятого сигнала рассчитывается расстояние до препятствия, после чего соответствующая информация выводится на блок индикации. Особенности конкретной принципиальной электрической схемы парктроника могут отличаться в зависимости от типа используемых датчиков, количества дополнительных функций, стоимости парковочной системы и пр. Основной принцип работы при этом остаётся неизменным.
В качестве излучателей и приёмников обычно используются одни и те же датчики. Наиболее распространенный вариант — ультразвуковые сонары, но применяются также инфракрасные и электромагнитные сенсоры.
Функциональная схема парктроника
Рассмотрим принцип действия парковочного ассистента на примере одного из вариантов функциональной схемы устройства.
Управление работой данной схемы осуществляется микроконтроллером (МК на рис. 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 функциональной.
В качестве времязадающей цепи используется схема на кварцевом генераторе 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 см горят все три индикатора.
При своей простоте эта схема представляет определенный интерес, поскольку монтажную плату со всеми необходимыми деталями можно купить в любом магазине радиодеталей.
При желании можно самостоятельно собрать парктроник своими руками с помощью этой электрической схемы. Правда, потребуется вынести индикаторы за пределы монтажной платы датчика и разместить их где-нибудь в районе приборной панели.
Вскроем и посмотрим содержимое датчика парктроника, на примере оригинального сенсора от KIA Sportage.
По сути, все системы "парктроников" разделить на два лагеря, на ультрозвуковые и индукционные.
Первый тип конечно наиболее распространен, индукционные распространены меньше, но их принцип действия лег в основу контроля слепых зон многих автопроизводителей.
Принцип действия ультразвукового датчика давно не секрет и описан.
"Датчик генерирует короткий ультразвуковой (порядка 40 кГц) импульс, а затем воспринимает отражённый окружающими объектами сигнал. Электронный блок измеряет время, прошедшее между излучением и приёмом отражённого сигнала, и, принимая скорость звука в воздухе за константу, вычисляет расстояние до объекта."
Что удивительно, датчики не являются конструктивно надежными.
Но что еще более удивительно, у некоторых автопроизводителей мрут гораздо чаще чем у других.
А вот личный опыт вообще заставляет улыбнуться…китайские системы от Sho-Me, не смотря на дешевизну, не разу не менял (согласен, повезло), а вот оригиналы от VOLVO, KIA, BMW приходилось менять часто.
Валялись у меня оригинальные датчики KIA…и не то что бы хотелось глянуть что внутри, больше интересно было почему мрут.
Забегая вперед скажу, что вероятнее всего, отказ в работе датчиков связан с "потерей" массы на колпачке излучателя.
При прозвонке, колпачок не прозванивается…а должен.
Если по нему стукнуть…контакт появляется.
Связано это с окислением алюминия или термическим изменением зазора не ясно…но это объясняет, почему обычно возвращается работоспособность датчика, после физического воздействия на него.
Сам датчик, можно назвать герметичным.
Лишь крышка излучателя изготовлена из алюминия и посажена просто "в натяг"…
Электроника залита компаундом.
Причем в процессе заливки все наверняка вакуумировалось, так как компауд затек абсолютно везде, даже туда, куда не затекла бы вода из за поверхностного натяжения.
Потратив время на растворение и выковыривание компаунда, получаем содержимое устройства.
Плата с излучателем/приемником.
Сама плата со стороны "улицы".
Плата со стороны излучателя.
Колпачок, корпус излучателя, плата.
На внутренней стороне колпачка приклеен пъезоизлучатель.
Контакт на точке пайки.
Смотришь на все это, и не понимаешь, почему одно и тоже устройство по внутреннему содержанию у одного производителя будет стоить $20…а у другого $120.
Причем чем дороже, тем не надежнее )
Парковочная система автомобиля обычно состоит из нескольких основных узлов: блока управления, датчиков, проводки. При использовании беспроводного соединения провода к датчикам отсутствуют. Существуют также системы без ультразвуковых сонаров, вместо которых в бампере прокладывается играющая роль антенны металлизированная лента. Причинами неисправностей парктроника могут стать неполадки в работе всех перечисленных компонентов.
Причины неисправностей парктроника
Рассмотрим основные причины сбоев в работе различных узлов парковочных радаров.
Датчики
Если в автомобиле не работает парктроник, причины чаще всего связаны с некорректной работой датчиков.
- Загрязнения, налипания льда, снега. Это очень распространенные причины неисправности датчика парктроника. Ультразвуковой сонар включает и передатчик, и приёмник. Поэтому налипание льда или грязи способно привести как к снижению чувствительности (система не будет видеть препятствие вообще либо неправильно определять расстояние до него), так и к ложным срабатываниям из-за отражения сигнала от помехи на внешней поверхности прибора. Загрязнения приводят к неполадкам и в случае использования вместо сонаров металлизированной ленты.
- Попадание влаги. Обычно сенсоры изготавливаются во влагозащитных корпусах. Однако попадание внутрь жидкости все-таки возможно, особенно под сильным напором воды на мойке. Влага способна вызвать как кратковременные неполадки, так и полный выход устройства из строя. Если датчик парктроника постоянно пищит, одна из возможных причин — именно попадание влаги.
- Механические повреждения, перекос. Сонар может повредиться в результате удара. Возможен также перекос, из-за которого сигнал будет излучаться в неправильном направлении, и даже проваливание прибора внутрь бампера.
- Плохое крепление. При некачественном монтаже возможна потеря контакта с соединительными проводами. Корпус устройства иногда болтается, что становится причиной нестабильной работы.
- Заводской брак, выход из строя. Если парктроник не работает изначально, весьма вероятен заводской брак. Сенсор может выйти из строя и в процессе эксплуатации. В таком случае его нужно просто заменить (как вариант — отремонтировать, что зачастую экономически нецелесообразно).
Блок управления
Неисправность блока управления зачастую выявить достаточно просто: он сам сообщит о возникшей неполадке. Однако это происходит не всегда. Возможны следующие основные проблемы с блоками управления парктроника.
- Загрязнения, попадания пыли, влаги. Можно разобрать модуль и аккуратно его почистить. Нередко это помогает устранить неисправность.
- Неправильные настройки. Если у вас постоянно пищит парктроник при включении задней передачи, причина может заключаться и в завышенной чувствительности. Настройка прибора поможет устранить эту неисправность. Нередко из-за сбоя настроек плохо работают беспроводные системы. В этом случае восстановить работоспособность помогает сброс параметров с помощью соответствующей кнопки на роутере.
- Неисправности радиоэлектронных цепей. Самая большая неприятность с парктроником — это выход из строя электронной начинки блока управления. Самостоятельно тут лучше ничего не трогать. Если аппарат гарантийный, то вам повезло. Если нет, и простая очистка от пыли не помогла — ремонт может оказаться весьма дорогостоящим.
Проводка
Если перестал работать парктроник, причины нередко связаны с проводкой. Провода могут быть перебиты или передавлены. Возможен плохой контакт с сенсором, окисление, короткое замыкание. Иногда бывает сорвана изоляция кабеля.
Конкретные неисправности парктроника и их вероятные причины
Опишем наиболее характерные неполадки парковочных радаров и почему они возникают.
- Парктроникпищит без препятствия. Вероятные причины: попадание влаги внутрь сенсора, налипание грязи или снега, неправильные настройки прибора (завышенная чувствительность). Зачастую это проявляется при включении задней скорости — устройство сразу же начинает подавать сигнал. Возможно также короткое замыкание проводки, неисправность управляющего модуля, проваливание датчика внутрь бампера.
- Постоянно глючит парктроник, неустойчиво работает без особой системы. Здесь тоже может быть проблема в попадании влаги, загрязнении, реже — неправильных настройках. Возможно, плохие контакты на сенсорах или передавлены соединительные кабеля. Ещё одна вероятная причина — механический перекос сонара или проседание кузова автомобиля, из-за которого излучение может отражаться от неровностей на дороге. Иногда помогает сброс параметров.
- Радар неправильно определяет расстояние. Наиболее вероятны загрязнения датчиков, неправильная настройка параметров.
- Парковочная система некорректно работает с одной стороны машины, проявляются значительные мертвые зоны. Проблема — в выходе из строя конкретных сенсоров (либо проводки к ним).
- Парктроник плохо работает, не определяет препятствия при приближении к ним. Возможны загрязнения сенсоров, проблемы с проводкой, загрубление настроек. Может помочь заводской сброс параметров.
- Парковочная система вообще не работает, не подаёт сигнал при включении или при заднем ходе. Проблема может быть в отсутствии питания, неисправном модуле управления. Стоит проверить напряжение питания и заземление, разобрать блок и почистить его от пыли и влаги. Если устройство не работало изначально — возможен заводской брак или некорректная установка.
Несколько советов в заключение
Периодически проверяйте состояние датчиков и проводки. Очищайте поверхность сенсоров и места соединений от пыли, грязи, влаги. Если в сонары попала вода — высушите их. Следите также за состоянием управляющего модуля.
В попытках свести все жизненные рабочие показатели своего автомобиля на один экран головного устройства дошла очередь и до подключения парктроника. Многие возразят — ведь даже у дешевых парктроников есть свой экранчик, зачем выводить данные куда-то ещё? Да просто лишний экранчик в салоне ставить не хочется, и покопаться в железе повод есть…
В статье постараюсь описать приёмы и инструменты для реверс-инжиниринга недокументированного протокола обмена двух железок между собой.
Из содержания некоторых публикаций, создаётся впечатление, что, во-первых, стоит выбирать парктроник с радиоканалом между основным блоком и экраном, и во-вторых, ничего сложного в протоколах обмена не ожидается. Хм… ну да. Правдой это оказалось наполовину.
Шаг первый. Вскрытие и считывание посылаемых данных
Вот такую повторяющуюся посылку шлёт основной блок сразу при подаче питания. При внимательном её рассмотрении можно сделать крайне неочевидный вывод о том, что посылка состоит из трёх частей:
Шаг второй. Декодирование ручками
10011100 10011100 10011101 01000100
10011100 10011100 10010011 01001100
10011100 10011110 01011101 01000100
10011100 10011110 01010011 01001100
Попробуем теперь выставить перед датчиком A (отключив B) препятствие на расстоянии, скажем, 90 см:
10011100 10011100 10011111 01000110
Тем не менее, дальше становится понятно, что вручную с показаний осциллографа срисовывать эти биты тяжело и велика вероятность ошибиться. Поэтому…
Шаг третий. Декодирование ножками в микроконтроллере
У нас есть микроконтроллер. Ардуино или просто AVR на макетке, неважно. Он у нас есть, кому как не ему собирать все данные для головного устройства. Поэтому самое время написать программку для декодирования посылки от парктроника и передачи этой посылки через терминалку в компьютер для упрощения дальнейшего процесса реверсинга.
Поскольку уровень сигналов от парктроника составляет стандартные 5 вольт, то подключение к AVRке для отладки очень простое — проводом на любую неспециализированную ножку (хмм… может я зря зачеркнул в заголовке?).
Исходник программы доступен на гитхабе. Декодированием занимается функция-обработчик прерывания PCINT3_vect в строке 119 и далее. Остальная часть программы делает много других интересных штук, может быть когда-нибудь я и про это напишу статью. А пока опишу вкратце алгоритм декодирования посылки от парктроника.
У нынешних AVRок почти на каждую ногу можно повесить прерывание, которое будет срабатывать каждый раз при изменении уровня на входе. Т.е. каждый раз при переходе от 0 до 5 вольт и каждый раз при переходе обратно от 5 до 0. Таким образом, достаточно при помощи таймера засекать время между срабатываниями прерывания и фиксировать внутреннее состояние. Состояний может быть несколько: ожидание первых 5 импульсов, ожидание широкого импульса, ожидание паузы, ожидание первых 16 бит (с последующим декодированием в зависимости от длительности импульса), ожидание паузы, ожидание вторых 16 бит, ожидание финального импульса, переход в начальное состояние. Причём всё это реализовано в обработчике прерывания, отнимает каждый раз буквально считанные такты и совсем не занимает главный цикл (правда, занимает отдельный таймер, но это исправимо).
Получившееся устройство по UART выдаёт в терминалку компьютера декодированные значения непосредственно в виде 4х байт. Для упрощения последующего анализа открываем Excel и пишем макрос:
генерирующий из 4 шестнадцатеричных байт вот такое (разноцветие и подписи, конечно, я уже добавил сам):
Обладая всем вышеописанным инструментарием, опытным путём получаем таблицу по датчику A:
- Последние 4 бита — десятки сантиметров датчика A. Причём если промоделировать расстояния вплоть до нуля, получится, что нулю десятков сантиметров соответствует 1111 и далее по убывающей, 10+ см = 1110, 20+ см = 1101, 30+ см = 1100 и т.д. вплоть до 0011, соответствующего 130+ см.
- Отмеченные бледно-розовым два столбца по 2 бита соответствуют единицам сантиметров (заметьте, что для 105, 95 и 85 см биты одинаковы). Причём в первом столбце более старшие биты 4-битного значения. Принцип кодирования тот же: 0 см = 1111, 1 см = 1110 и т.д. вплоть до 9 см = 0110
- Первая контрольная сумма остаётся неизменной, а вот вторая меняется хитро. Столбец десятков сантиметров влияет на сумму непосредственно, а вот оба столбца единиц сантиметров — влияют только на старшие два бита контрольной суммы.
Очередь датчика 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 тот же парктроник, который расковырял итальянец с форума по первой ссылке, но мне понравился сам парктроник. Он весьма быстро и точно работает. Пришлось добить, уже из принципа.
Что курили китайцы, разрабатывая такой вот протокол, непонятно.
Кстати, зная протокол обмена, можно применить этот парктроник не только на автомобиле, а, к примеру, на самодельном роботе. Да, для роботов есть отдельные ультразвуковые датчики, но тут их сразу четыре и читаются они одной ножкой ардуины, хоть и с задержкой в несколько миллисекунд.
Всем дочитавшим всего наилучшего!
Читайте также: