Разработка блока управления боковыми зеркалами автомобиля

Начало

Как-то раз товарищ попросил сделать ему в машину простое устройство. С идеей, возможно, последующего выхода на его продажу. Оно должно раскладывать и складывать зеркала по нажатию кнопки. Расскажу, как это разрабатывалось и что из этого получилось.

Для начала я узнал, что именно нужно сделать и с чем нужно работать. И набросал для себя подобие ТЗ. На самом деле — это сбор хотелок и перечень возможных подводных камней.

Техническое задание:

  1. Устройство должно раскладывать и складывать боковые зеркала по нажатию кнопки.

  2. Кнопка может быть с фиксацией или без.

  3. Блок должен питаться от бортовой сети +12В в цепи после зажигания.

  4. Блок должен управлять двумя коллекторными двигателями, которые расположены внутри боковых зеркал.

  5. У зеркал разный угол открытия и это необходимо учесть.

  6. Концевиков в зеркалах нет и вообще никаких датчиков нет, желательно не дорабатывать их конструкцию.

  7. Блок должен иметь защиты,  «чтобы всё работало и не воспламенялось» (просьба друга, ну как тут отказать?).

  8. Блок должен обладать защитой от КЗ по выходу.

  9. Блок должен работать при влажности (… непонятно какой).

  10. Блок должен иметь один автомобильный разъём для подключения.

  11. Детали должны быть распространёнными и легко доставаемыми.

  12. Постараться сделать блок максимально дешёвым.

Первый этап разработки. Анализ ТЗ

После составления списка желаемого, оцениваю, не забыл ли что-то важное. Вроде нет. Теперь анализирую всё это.

  1. Устройство должно раскладывать и складывать боковые зеркала по нажатию кнопки. Это кажется совсем легко. Простой контроллер всё сделает. H-мост ему в помощь.

  2. Кнопка может быть с фиксацией или без. Также не вижу проблем.

  3. Блок должен питаться от бортовой сети +12В в цепи после зажигания. Это хорошо, так как говорит о том, что не нужно сильно заморачиваться с режимом малого энергопотребления: в разумных пределах, дабы «не кушало» много. А что ещё мы знаем про +12В машины? Наверняка, есть какое-то описание. И тут спасибо ГОСТам, если чего-то не знаешь — ищи ГОСТы, однозначно, что умные люди за тебя уже подумали и дали рекомендации и указания. После недолгих поисков нашлось: ага, есть такое — ГОСТ99331. Тут много всего интересного.

  4. Блок должен управлять двумя коллекторными двигателями, которые расположены внутри боковых зеркал. На первый взгляд нет сложности. Главное — найти даташит на них. А его нет. Становится интереснее. Но на такое исследование друг зеркало, естественно, предоставит. Вот и задачка для ресерча.

  5. У зеркал разный угол открытия. Пока не знаю, чем это обернётся, пока не составил блок- схему системы управления. Но запомним, что время открытия каждого зеркала разное.

  6. Концевиков в зеркалах нет и вообще никаких датчиков нет. Несколько вариантов  приходит в голову: управлять по времени (ну, такое себе решение), ставить какие-то сенсоры или концевики, измерять ток мотора. А как делают профессионалы — производители авто? Изучаем, читаем и узнаём, что — по измерению тока. Круто, как говорит мой товарищ: «моё почтение». Мне самому этот вариант был ближе.

  7. Блок должен иметь защиты, чтобы всё работало и не воспламенялось. Это дословно от моего товарища записано. Не могу не согласиться — пункт важный. Проработаем в процессе построения схемы Э3.

  8. Блок должен обладать защитой от КЗ по выходу. Не поспоришь, кстати, это хорошо коррелирует с отключением приводов по току.

  9. Блок должен работать при влажности … непонятно какой. Данное требование было обозначено потому, что, вроде бы, всегда для блоков принято нечто подобное указывать. Прибегнем к такому же принципу, как и в пункте 3. Изучим «матчасть». И здесь удача — «есть такая партия» — ГОСТ 15150.

  10. Блок должен иметь один автомобильный разъём для подключения. Любят так делать в автомобилестроении. Ну, пусть будет. Действительно, удобно автоэлектрикам. Да и надёжность в плане корпусирования и герметичности проще обеспечить.

  11. Детали должны быть распространёнными и легко доставаемыми. Проблема. На дворе июль 2022-го… Как говорится — импортозамещаемся и налаживаем «параллельный» импорт. Будем потом «великим и могучим» вспоминать эти годы.

  12. Постараться сделать блок максимально дешёвым. Смотри выше. Придётся поднапрячься.

Изучение зеркал

Для начала сделаю так, чтобы не оставалось тёмных пятен. А главное здесь — это нонейм зеркала с нонейм двигателями. Итак, приступим.

Зеркала имеют коллекторный двигатель, работающий от 12В (в просмотренных схемах авто это так).

Беру зеркала и запускаю их, производя измерения токов и времени открытия. Измерения тока показали, что мотор потребляет 300 мА. Ток двигателя, на работу «в упор», 1А.

Измерения сделал при помощи шунта и осциллографа. Так визуально можно было увидеть и стартовые токи, номинальные потребления и максимальные, при работе «в упор».
Зеркало не имеет концевых датчиков положений. Зеркала имеют разный угол открытия.

Выводы:

Добавлять концевики достаточно сложно и ненадёжно (я точно не смогу это сделать хорошо).

Остановку по времени не получится реализовать из-за разных углов открытия и разной скорости, зависящей от напряжения и температур. Имеет смысл останавливать по упору. Увеличению тока.

Автомобильная электроника — это занимательно

Теперь, когда вроде бы тёмных пятен не осталось, анализирую госты.

Тут реально много всего интересного. Приводить их не буду, но далее по схеме буду  ссылаться на некоторые требования из них. Для тех, кто работает с автомобильной электроникой и так всё понятно, а тем, кто с ней не работает, надеюсь, будет интересно.

Основным стандартом при создании автомобильной электроники является ГОСТ Р52230–2004 «Электрооборудование автотракторное. Общие технические условия». Он содержит основные определения, методы и типы испытаний автотракторного электрооборудования и ссылки на другие стандарты. Почти всё там интересно и многое требует изучения.

Блок-Схема

Теперь можно попробовать накидать блок-схему того, что мне нужно сделать.

Без всякой рекламы. Просто буду рассказывать, чем я тут пользуюсь.

Мне нравится рисовать блок схемы и диаграммы в онлайн редакторе diagrams.net.

Он довольно простой и классный. В итоге получилась
такая блок схема:

52431295beb5d1feebb492106ecd57c7.JPG

Если пройтись по блокам, то кнопка и двигатель — это просто. Находятся снаружи блока, где-то в машине.

Разъём, тоже всё ясно. Главное — выбрать хороший, автомобильного исполнения, дешёвый и доставаемый в России…

Далее два блока защиты. Они нужны для того, чтобы плата не просто соответствовала какому-то госту, а чтобы она выжила в машине. Дело в том, что по ГОСТ99331, а ещё лучше использовать ISO (более понятное описание), в бортовой сети машины есть куча выбросов напряжений, и это вполне нормальное и стабильное явление. Вот варианты таких выбросов:

39d140313a62b1bfc1efd22a089a08de.JPG

И на линии сигналов они могут индуцироваться.

Как защищаться — подумаю потом, а пока запомню, что защищаться надо.

Питание. Кажется тут всё просто. Управляющая схема вряд ли будет питаться от 12В. Если это контроллер или логика, то скорее всего +5 или +3.3В (бывают исключения, но почти уверен, что некий источник питания ставить придётся).

Силовой блок, измерительный и блок управления — это исполнительная часть устройства. Собственно, они и выполняют все функции устройства. Над ними ещё буду думать, но данная блок-схема должна обеспечить все требования, предъявляемые к устройству.

Выбор элементной базы

Подходим к схеме и выбору компонентов. Отдельно оговорюсь про стандарт так называемых automotive grade элементов и про некоторые заблуждения, связанные с этими элементами и их установкой в блоки.

В идеале следует выбирать компоненты, которые специально изготавливаются с квалитетом автомотив грейд. Это те элементы, которые изготавливаются специально и могут пройти испытания по стандартам AEC Q10x. Ссылочка на стандарт http://www.aecouncil.com/.
Этот тест надежности автомобильных микросхем в основном основан на спецификациях AEC-Q100 (для микросхем IC), AEC-Q101 (для дискретных компонентов), AEC-Q102(Дискретная оптоэлектроника), AEC-Q104(Мультичиповый модуль) и AEC-Q200 (для пассивных компонентов).

А сейчас, важно, о чём многие не знают. Надо обратить внимание, что стандарт делит блоки автомобиля на разные группы:

Класс 0 (от -40 до 150°C), класс 1(от -40 до 125°C), Класс 2 (от -40 до 105°C) и класс 3 (от -40 до 85°C) имеют различные стрессовые условия. В зависимости от того, где продукт используется в автомобильном применении. Например, если приложение находится под капотом, класс 0 будет предпочтителен. 
                А вот и второе заблуждение, связанное с этим стандартом. Аттестация по AEC-Q100 является добровольной. Кроме того, при создании автомобильной электроники применение компонентов, аттестованных по AEC-Q100, не является обязательным. Главное, чтобы итоговое устройство отвечало требованиям ТУ или ГОСТ, установленным требованиям таможенного союза и проходило сертификацию.

Впрочем, соответствие AEC-Q100 говорит о надежности компонента и часто это помогает пройти аттестацию или сертификацию, если где-то, что-то, не учли по климатике или вибрации.

                В данном изделии концепт легко доставаемых и дешёвых элементов не совсем соответствует применению дорогостоящих аттестованных элементов. Но при выборе стоит на них обращать внимание. Большее внимание будет уделено схемотехнике топологии и конструктиву, чтобы изделие соответствовало автомобильным стандартам. От элементов будет требоваться соответствовать температурным диапазонам и климату с вибрацией внутри корпуса изделия.

Схема электрическая-принципиальная

Опять же без рекламы, просто я работаю в Altium Designer и у меня на него куплена лицензия. Схему и топологию разрабатываю в нём. Начал с блока управления мотором. Мотор — элемент, который от нас не зависит, кстати, как и бортовое напряжение питания. От этого и оттолкнёмся. Классический H-мост — это то, что отлично подходит для решения задачи. Подобрал транзисторы из наличия и по необходимым мне параметрам. Сразу же выбрал для верхних драйверы и посчитал схемку. Не отходя далеко, посчитал шунт и сделал для него фильтр стартовых токов, усилитель и компаратор с гистерезисом.

319d260950ab1144c7a45ace06e8f57f.JPG

После этого надо подумать над защитой по питанию. H-мост питается от бортового со всеми его выбросами. В итоге, решил сделать параметрический стабилизатор в защиту от длинного импульса и супрессор и конденсатор на входе от коротких. А от переполюсовки и отрицательных импульсов защитит классический диод. Вообще говоря, от длинного импульса может защитить и супрессор, но при этом он должен рассеивать приличную мощность. И отсюда родился второй вариант. Добавил резистор и самовосстанавливающийся предохранитель по входу. В процессе отладки протестирую в железе. Возможно, получится сэкономить пару транзисторов, отказавшись от стабилизатора.

0ce214bc2c701f2dc1181d24f1f5f91c.JPG

Осталось придумать как этим управлять. Есть сигнал с внешней кнопки, которая по условию может быть с фиксацией и без, есть два входа на H-мосте для включения двигателя в ту или иную сторону, есть выход, сигнализирующий об упоре двигателя. Чего проще: поставить контроллер хоть 8-ми битный или любую stm32f0xx в самом маленьком корпусе с ценой в 1–2$? Однако задача может решиться проще: без написания ПО (хотя бы и самого элементарного), без программирования, без пропадающих в кризис полупроводников контроллера. Правда, важно, и об этом часто забывают, а вдруг устройство пойдёт в серию и тогда без операции прошивки каждого девайса не обойтись. Решение принято — делаю на логике.

 Что получилось. Схема управления, мозги устройства. На двух D триггерах и двух элементах «И» получается вполне изящное исполнение. Но и тут захотелось немного подстраховаться и предусмотреть чего-нибудь ещё (моя практика подсказывает, что заказчики обязательно захотят чего-нибудь неоговорённого в ТЗ от устройства). Благо, логические элементы стоят копейки, тут можно предусмотреть и кнопку с фиксацией, и кнопку без фиксации, и работу от нажатия на кнопку не смотря на защиту (внимание, опасно!).  Добавляю защиту по входу, светодиоды для отладки (это грязный хак и так делать не надо, поскольку ток логических элементов этой серии совсем маленький и диоды для них — это превышение нагрузки. Но они будут установлены только мною для отладки на столе — логика переживёт) и всё готово.

623ad95bab4fcba3e032798d36471650.JPG

Всё. Выбираю LDO для питания всей красотищи и к заказу компонентов.

2d5ffb76539365d519794c1ce99565ce.JPG

Заказ компонентов

Тут могу сказать только о некоторых особенностях. Есть магазины подороже, есть подешевле. Есть те, которые работают с «физиками», и те, кто только с «юриками»). Но всё разрабатывалось, глядя на ширпотреб, хотя и не плохой, поэтому купил как физик. Никакой рекламы, просто взял на Терре. Кажется, сейчас она уже не работает. Точно проверял все используемые элементы на Mouser, DigiKey и Octopart, склады были ими насыщены с избытком.

Компоновка и трассировка платы

Пока элементы собираются в магазине и едут ко мне, я занимаюсь компоновкой и трассировкой платы. Никаких ограничений нет, но для простоты монтажа решил всё сделать на небольшой (габариты определяют стоимость платы пустышки) двусторонней (стоит столько же сколько и односторонняя, но намного удобнее) платы с односторонним монтажом (дешевле для сборки).

Помимо дешевизны, одностороннее расположение элементов на плате при правильном конструировании изделия придаёт ему надёжность при вибрациях.

По компоновке особо нечего рассказывать. Расположил элементы оптимально — как увидел. Да и ограничений нет.

9c3e34d9c9a93e87115960bcc0cb0e6b.JPG

Трассировку начал с «силовой» части и измерительной, как с наиболее ответственных. Трассировка заняла мало времени. Чем лучше скомпонуешь плату — тем быстрее и лучше растрассируешь.

bcc656b42e15f2160e87c6a3f7dedcda.JPG

Разработка корпуса прибора

Когда скомпоновал плату, произвёл и прикидку корпуса. Современные технологии (всякие кады и 3d печать) позволяют не делать платы под готовые корпуса, а самому разработать корпус любой формы и конструкции. Это очень круто, я помню, когда на предприятии специально делали приборы под готовые китайские корпуса, которые нарезались из алюминиевого профиля (однотипный некрасивый бред). Сейчас можно распечатать корпус на принтере и отлить в силиконе практически любую партию, со скромными затратами, удивительными формами и поднутрениями.

Корпус нарисовал в (опять же без всякой рекламы) NX — любимый софт от Siemens. Потом распечатал прототип на принтере. Примерил, посмотрел — всё отлично подходит. Доработал формы корпуса руками и отлил несколько образцов в силиконе.

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

Заказ pcb

Где только раньше платы ни заказывал… На этот раз заказал в Китае в PCBWay. Недорого, нет добавочной стоимости на подготовку производства. Качество хорошее. Доставка —  тут каждый для себя выбирает. Долго — дёшево, быстро — дороже.

Платы были изготовлены за 3 дня (причём, не по срочному заказывал). Пришли ко мне через 2 недели.

Монтаж

Две тестовые платы смонтировал за час. Руками и без микроскопа, трафаретов и фена.

Просто паяльник, пинцет, флюс и припой. Ну и, отмывочка, конечно!

Собралось всё быстро и без проблем.

4a8827de4e181c480b30c5bbce8f887f.jpg

Жгуты собрал минут за 5.

e06d52f568de0ffdbfad899f268fdbb1.jpg

Пусконаладка

После монтажа всегда стоит проверять некоторые цепи на КЗ. Прозвонил входные питающие, питание после стабилизатора, выходные на мотор.

После этого решил проверить логику. Подал на неё питание и убедился в работоспособности. Логика взлетела сразу. Проверил несколько вариантов для кнопок — работает. На фото видно, что не все логические элементы установлены, это сделано для кнопки с фиксацией. Спасибо светодиодам, мелочь, а помогли быстро протестировать с визуальным контролем.

Далее проверил мост — работает.

Защита, она же — обратная связь, замкнув выход — работает.

Испытания

Осталось самое интересное — защита по питанию. Для этого сделал небольшой испытательный стенд. Сымитировал испытательные импульсы подобные в ГОСТ (из этого  отдельный рассказ может получиться). По питанию и по кнопке блок прошёл предварительные настольные испытания на импульсы помех.

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

Перед корпусированием плата была покрыта лаком.

665f5c80dea8cb7361c0ac1f74fd0291.jpg

Люблю использовать лак с присадкой для контроля в ультрафиолете. Это позволяет оценить — не осталось ли непокрытых участков.

c351c704120064e4b6f9b270425c5711.jpg

Про все испытания не буду рассказывать, так как это большой пласт работ. Хорошо, что есть товарищи, которые этим занимаются. Официального заключения о прохождении всех тестов не получил, так как за них и не платил. Но знаю, что устройство получилось надёжное, можно на сертификацию отдавать.

После проведения испытаний блок был установлен в машину где и выполняет свои функции.

© Habrahabr.ru