
В автомобильной электронике есть отдельный класс устройств, которые называются кузовная электроника. Задача таких плат это управление нагрузками. В качестве нагрузки выступают фары, насосы, бензонасосы, нагреватели, клапаны и прочие маломощные исполнительные механизмы.
В данном тексте я покажу как электронные блоки кузовной электроники могут самостоятельно определить подключенную нагрузку и даже регистрировать короткие замыкания.
Определения
Hi‑side ключ — это когда ключ коммутируется на питание.
low‑side ключ — это когда ключ коммутируется на GND.
подтяжка к GND— соединение пина и GND через резистор
подтяжка к VCC— соединение пина и VCC через резистор
Аппаратная часть
В идеале у каждого ключа должна быть своя собственная отдельная подтяжка к питанию. Однако можно сделать и одну подтяжку для всех ключей. Подтяжки можно задавать не только ключом c резистором. Существуют даже отдельные микросхемы многоканальные источники «смачивающих токов» для установки подтяжек к питанию или заземлению. Например микросхема tic12400. Однако тут для простоты я указал, что подтяжка просто задается ключом и резистором.

Какие могут быть проблемы при hi‑side подключении?
Нагрузка может отвалиться
Может произойти короткое замыкание выходного пина на GND
Может произойти короткое замыкание выходного пина на VBAT
Может произойти короткое замыкание выходного пина на выходной пин другого канала
Однако в этом тексте я покажу, как можно зарегистрировать отвалившуюся нагрузку. Данный алгоритм работает только в случае, когда ключи отключены. Если ключи включены, то подтяжка к питанию не окажет существенного влияния.
Программная часть
Данная задача решается при помощи конечного автомата (KA). Он настолько прост, что я привожу этапы его проектирования.
Фаза 1: Перечислить состояние конечного автомата:
Load‑detect для hi‑side ключа строится из конечного автомата всего из двух состояний.
Подтяжка к питанию подключена (PULL_UP_ON)
Подтяжка к питанию отключена (PULL_UP_OFF)
Фаза 2: Перечислить входы конечного автомата:
Со входами тоже все просто. У нашего автомата всего один внешний стимул:
Прошел TimeOut переходного процесса
Фаза 3: Перечислить действия конечного автомата:
Установить на выходе подтяжку к питанию.
Отключить на выходе подтяжку к питанию.
Прочитать напряжение на обратной связи.
Исполнить алгоритм определения нагрузки.
Фаза 4: Заполнить таблицу переходов
Таблица переходов показывает как меняется состояние автомата в зависимости от входного воздействия и текущего состояния автомата.
Состояние | Вход |
TimeOut | |
PULL_UP_ON | PULL_UP_OFF |
PULL_UP_OFF | PULL_UP_ON |
Фаза 5: Заполнить таблицу выходов
Таблица выходов показывает, что делает конечный автомат в зависимости от входного воздействия и текущего состяния.
Состояние | Вход |
TimeOut | |
PULL_UP_ON | Прочитать напряжение, |
PULL_UP_OFF | Прочитать напряжение, |
Фаза 6: Нарисовать граф конечного автомата
Всё сказанное выше можно изобразить на одной единственной картинке, показать на графе.

Когда конечный автомат сделает один оборот можно запустить алгоритм вычисления статуса подключения нагрузки. Для определения состояния достаточно просто обратиться к LookUp таблице. То есть извлечь из массива константу: код ошибки.
FeedBack voltage | Состояние нагрузки | |
Pull Up | Pull Down | |
низкое | низкое | Исправная нагрузка ( или короткое замыкание на GND) |
низкое | высокое | нереальная ситуация (Error) |
высокое | низкое | нет нагрузки (open load) |
высокое | высокое | Короткое замыкание на VBAT |
Регулируя длительность таймаута можно задавать частоту дискретизации измерений состояний нагрузки. Стоит заметить, что для определения оторванной нагрузки Вам даже не нужен датчик тока. Всё необходимое делается на резистивных подтяжках и измерении напряжения.
Итоги
Вот так просто и незатейливо удалось разработать алгоритм определения неисправностей в Hi‑side ключах.
Источники
Название | URL |
Load‑Detect для Проверки Качества Пайки | |
H‑мост: Load Detect (или как выявлять вандализм) | |
Cross‑Detect для Проверки Качества Пайки в Электронных Цепях | |
Разработка блока управления боковыми зеркалами автомобиля @RV3EFE |
Вопросы:
Как прошивка может отличить в hi‑side ключе исправную нагрузку от короткого замыкания на GND? Никак. Надо ставить датчик тока в нагрузке. Измерять сопротивление по закону Ома.

