Самые глубокие тайны вашего автомобиля спрятаны в путанице из проводов и микросхем.
Cпинной мозг автомобиля: Тайна автомобиля
Система управления на принципе шины CAN массово применяется с 1995 года. Благодаря этой шине из автомобиля удалось выкинуть львиную долю проводки, повысить надежность и переложить на сам автомобиль задачи диагностики. Удобство и надежность системы объясняется тем, что шина CAN обеспечивает оперативный обмен данными между компьютерными блоками и датчиками, распиханными по всему автомобилю.

Современный автомобиль похож на катающийся по улицам вычислительный центр, нашпигованный множеством компьютеров. Попробуем обсудить эти малопонятные аспекты в работе вашей машины, разобраться в ее компьютерной сети. В прошлом мы бы назвали ее «бортовой электросетью», однако функции этого организма уже давно вышли за рамки тупого перекачивания электронов из одного проводка в другой. Вся автомобильная электроника называется в своей совокупности «локальной контроллерной сетью» (CAN, Controller Area Network), но есть для этого и более точный термин. Система проводов и протоколов связи, выполняющая функции соединительной ткани между всеми компьютерами и датчиками, называется, строго говоря, шиной CAN. Благодаря шине CAN машины стали дешевле, мощнее, удобнее и научились выделывать такие фокусы, которые без нее были бы просто невозможны.

Шоссе и развязки

Обо всех тонкостях шины CAN мы решили поговорить с Эриком Патоном, специалистом из компании Ford. Патон сказал: «Садясь за баранку, вы должны понимать — все в машине, что на первый взгляд кажется вам простым, скрывает на поверку фантастически сложные взаимодействия изощренных процессов и механизмов». Принципиальная схема шины CAN напоминает переплетение шоссейных дорог. Данные, подобно автомобилям, летят вдоль многополосных хайвеев, а потом сворачивают на какие-то узкие местные дороги, используя в определенных местах специально устроенные для этого въезды и съезды. Тысячи пакетов данных несутся в любой момент по этим дорожкам. Вы можете засечь их на любом перегоне и принять на любом выезде с магистрали.

В самых разных местах вашего автомобиля понатыканы разнообразные компьютеры, которые принято называть электронными блоками управления (ECU). Продолжая развивать шоссейную аналогию, их можно было бы представить себе в виде светофоров и других регулируемых развязок. Каждый ECU выполняет свои задачи: один управляет работой двигателя или трансмиссии, другой поднимает оконные стекла, третий запирает двери и т. д. На эти компьютеры заведены жилы от различных датчиков и переключателей, подающих информацию о тех или иных переменных величинах типа температуры, давления, напряжения, ускорения под различными углами, торможения, угла поворота колес и многих других параметрах. Допустим, ECU запрашивает информацию от какого-то датчика, подключенного к другому ECU, спрятанному в противоположном конце автомобиля, — вот тут-то и вступает в действие шина CAN.

Вернемся к образу автомагистрали. Шина CAN позволяет данным от всех датчиков и процессоров свободно циркулировать по автомобилю в любой момент времени. Каждый из компьютеров непрерывно передает в сеть информацию от своих датчиков и результаты собственных вычислений. В сети одновременно носится пара тысяч сообщений, дожидаясь, когда кто-то пожелает их прочитать. С другой стороны, каждый ECU непрерывно «прослушивает» сеть, выдергивая из нее те «кусочки» информации, которые могут потребоваться ему для выполнения собственных задач. Эта система не предполагает существования какого-либо центрального «хаба» или маршрутизатора — это просто непрерывный поток информации, которая всегда доступна каждому из контроллеров.

Дверь, а не гильотина

Рассмотрим, к примеру, работу электропривода сдвижных дверей — атрибута, типичного для современных минивэнов. Движением этих дверей управляет особый ECU, который называют «модулем кузовных функций». Несколько датчиков постоянно отслеживают, закрыта дверь или нет. Вот водитель нажимает кнопку закрытия двери. Сигнал от этого переключателя передается в сеть. Соответствующий ECU принимает сигнал, но это не значит, что он сразу же берется за работу. Первым делом он просматривает поток данных, идущий по шине, чтобы убедиться, что машина не движется и пребывает в запаркованном состоянии. Если по этой части все в порядке, он дает команду на электропривод. Включаются моторчики, и дверь съезжает на положенное место. Но этого еще мало — попутно ECU отслеживает напряжение, которое подается на клеммы моторов. Если напряжение на каком-то моторе вдруг скакнет, это будет означать, что дверь уперлась в оставленную в проеме сумку или кто-то выставил в проем ногу. Тогда ECU, чтобы не вызвать каких-либо повреждений, сразу же начнет сдвигать дверь в противоположную сторону. Если же двери ничто не помешает, она встанет в проем, и тут же включится электрическая защелка.

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

Принцип «шины CAN» был разработан в середине 1980-х, а до этого, если автопроизводитель хотел добавить в машину какую-нибудь новую электрическую примочку, скажем, подогрев сидений, от них нужно было тянуть через машину провода прямо до кнопки, красующейся в панели приборов. Шли годы, электрических наворотов становилось все больше, провода становились все длиннее, и наконец вся машина оказывалась опутанной многими километрами проводов, уложенных жгутами толщиной в руку. Когда была реализована идея шины CAN, нагреватели сидений и управляющий ими выключатель уже не нуждались в связи между собой посредством какого-то отдельного провода. Теперь они могут просто «переговариваться» через единую автомобильную шину CAN, не преумножая электрических хитросплетений.

Что на самом деле потребуется — так это добавочные усилия программистов, которые организуют взаимодействие всех устройств. В том-то и состоит вся революция: сложность физико-механическая уступила место сложности идейной и программной. Внедрение шины CAN поставило перед программированием новые масштабные задачи, но вместе с ней в автопром пришло множество новых позитивных сдвигов. Потребитель заметно выиграл в деньгах, машины стали намного легче, снизилась зависимость от поставщиков меди и резины, а главное, вся система стала существенно более надежной, потому что чем меньше проводов, тем меньше вероятность обрывов. Все перечисленные преимущества — это прогресс в чисто техническом плане, но самый глубокий эффект от этого нововведения оказался сугубо идейным. Это совершенно новый подход к диагностике автомобиля и обновлению программного обеспечения.

Машина, излечись!

Однако главным основанием для разработки шины CAN была вовсе не экономия на километрах проводки. Дело в другом. К концу 1970-х годов были, наконец, окончательно сформулированы технические требования, связанные с охраной окружающей среды. Национальная администрация безопасности движения на шоссейных дорогах (NTHSA) совместно с Комитетом по воздушным ресурсам штата Калифорния разработали методики для проверки эффективности автомобильных систем снижения вредных выбросов в атмосферу. Эти директивные документы повлекли за собой стандартизацию протокола «бортовой диагностики» — OBD. Сейчас мы имеем дело с этим же протоколом, но уже второго поколения, обозначаемым OBD-II.

Согласно этим требованиям в целях самодиагностики все датчики двигателя должны быть связаны между собой посредством шины CAN. При наличии такой связи специально выделенный ECU может постоянно следить за информационным потоком, вылавливая из шины аварийные сообщения в форме кодов OBD-II. Получив сообщение о какой-либо проблеме, этот ECU переформулирует его в алфавитно-цифровом коде и включает на торпеде лампочку «Check engine». На современных машинах подобная самопроверка выполняется непрерывно в течение всего времени, пока работает двигатель. Если у вас имеется портативный считыватель кодов (см. врезку «Цифровая диагностика»), вы можете залезть под торпеду со стороны водителя, подключиться к 16-контактному разъему вывода данных и прочитать все коды неисправностей. После этого загляните в интернет, где легко найдете расшифровку этим кодам или по крайней мере подсказку, что делать дальше.

Тот же самый разъем окажется очень кстати, если вдруг производитель обнаружит какой-то глюк в софте вашего автомобиля или придумает, как еще можно оптимизировать его работу. Допустим, разработали новый алгоритм, обеспечивающий более мягкое переключение передач. Теперь задача модернизации всех уже проданных автомобилей вашей серии решается очень просто — механик из дилерского центра подключает свой компьютер к тому же самому разъему и скачивает в вашу сеть новые программы. А ведь в прежние эпохи, до внедрения шины CAN, это означало бы физическую замену соответствующих контроллеров.

Статья «» опубликована в журнале «Популярная механика» (№3, Март 2012).