|
М. Еременко
Автомобильный стандарт LIN и микроконтроллеры для его реализации
как быть, если нужно построить небольшую приборную
локальную сеть с низкой скоростью передачи данных и предельно низкой ценой,
обеспечив при этом гибкость и простоту? Существенная доля рынка таких
устройств — автомобильная электроника: Электроприводы зеркал, электролюк,
климат-контроль, АБС, навигационная система, электронное управление впрыском
топлива. В статье сделана попытка ответить на этот вопрос.
Протоколы CAN и LIN:
особенности и различия
В современном автомобиле электроника выполняет множество функций. Их
можно условно разделить на две части: первая — это обеспечение надёжного
функционирования основных узлов автомобиля (например, электронное управление
двигателем) и обеспечение безопасности (АБС, подушки безопасности и так
далее). Ко второй части можно отнести различные электронные системы управления,
обеспечивающие комфорт и развлечения пассажиров. В первом случае нужен
высоконадёжный, достаточно скоростной канал связи, во втором — простой
и дешёвый. Кроме того, оба эти протокола должны быть стандартными, что
упростит производителям автомобильной электроники создание унифицированных
модулей, пригодных для использования в автомобилях разных производителей.
В качестве первого де-факто выступает скоростной промышленный высоконадёжный
протокол CAN. Он спроектирован таким образом, чтобы обеспечить надёжную
передачу данных от одного узла другому при любых обстоятельствах. Подробнее
мы расскажем о нём в одном из следующих номеров журнала. Для низкоскоростной
электроники до недавнего времени никаких стандартов не было, и каждый
производитель был вынужден придумывать свои собственные системы. И вот
совсем недавно был утверждён стандарт LIN.
Технические требования протокола LIN (Local Interconnection Network) разработаны
консорциумом европейских автопроизводителей и других известных компаний,
включая Audi AG, BMW AG, Daimler Chrysler AG, Motorola Inc., Volcano Communications
Technologies AB, Volkswagen AG и VolvoCar Corporation. Протокол LIN предназначен
для создания дешёвых локальных сетей обмена данными на коротких расстояниях.
Он служит для передачи входных воздействий, состояний переключателей на
панелях управления и так далее, а также ответных действий различных устройств,
соединённых в одну систему через LIN, происходящих в так называемом “человеческом”
временном диапазоне (порядка сотен миллисекунд). Основные задачи, возлагаемые
на LIN консорциумом европейских автомобильных производителей — объединение
автомобильных подсистем и узлов (таких как дверные замки, стеклоочистители,
стеклоподъёмники, управление магнитолой и климат-контролем, электролюк
и так далее) в единую электронную систему.
LIN-протокол утверждён Европейским Автомобильным Консорциумом как дешёвое
дополнение к сверхнадёжному протоколу CAN. LIN и CAN дополняют друг друга
и позволяют объединить все электронные автомобильные приборы в единую
многофункциональную бортовую сеть. Причём область применения CAN — участки,
где требуется сверхнадёжность и скорость; область же применения LIN —
объединение дешёвых узлов, работающих с малыми скоростями передачи информации
на коротких дистанциях и сохраняющих при этом универсальность, многофункциональность,
а также простоту разработки и отладки. Стандарт LIN включает технические
требования на протокол и на среду передачи данных. Как последовательный
протокол связи, LIN эффективно поддерживает управление электронными узлами
в автомобильных системах с шиной класса “А” (двунаправленный полудуплексный),
что подразумевает наличие в системе одного главного (master) и нескольких
подчинённых (slave) узлов.
Особенности LIN
Протокол LIN поддерживает двунаправленную передачу данных по одному проводу
длиной до 40 м, используя недорогой микроконтроллер с генератором на RC-цепочке,
без кварцевого резонатора. Основная идеология — как можно больше задач
переложить на программное обеспечение с целью уменьшения стоимости конструкции.
Контроллеры автоматически проводят самосинхронизацию при каждой посылке
данных.
В основу LIN положена концепция “single-master/multi-slave”, обеспечивающая
дешёвое исполнение, основанное на обычных последовательных интерфейсах
UART/SCI; как программная, так и аппаратная возможность реализации, самосинхронизирующаяся
тактирующая система, работающая от RC-генератора и не требующая кварцевого
резонатора для Slave-устройств; гарантированное время ожидания для передаваемого
сигнала; дешёвое однопроводное исполнение и скорость до 20 Кбит/с. Возможен
перевод шины в режим микропотребления “Sleep”, когда она выключается с
целью уменьшения потребляемого тока, но любой узел на шине при необходимости
может включить её вновь. Основное отличие протокола LIN от шины CAN заключается
в низкой стоимости за счёт пониженной эффективности.
Структура шины представляет собой нечто среднее между I2C и RS232. Шина
подтягивается вверх к источнику питания через резистор в каждом узле и
вниз через открытый коллекторный переход приёмопередатчика, как в I2C.
Но вместо стробирующей линии, каждый передаваемый байт обрамляется стартовым
и стоповым битами и передаётся асинхронно, как в RS-232.

На рис. 1 показана типовая конфигурация шины LIN. Для обмена данными
используется один сигнальный провод, в каждом узле подтянутый к источнику
питания через резистор. В качестве выходного каскада используется транзистор
с открытым коллектором. Активным состоянием является низкий уровень на
шине данных, в это состояние её может перевести любой узел. В пассивном
состоянии напряжение на шине близко к Vbat (9–18 В). Это означает,
что все узлы находятся в неактивном состоянии. Диапазон изменений напряжения
питания — в пределах 9…18 В, но все узлы должны выдерживать перегрузки
и сохранять работоспособность при увеличении напряжения на шине вплоть
до 40 В. Обычно микроконтроллер в каждом узле подключен к шине через приёмопередатчик,
который и обеспечивает защиту от перегрузок. Это позволяет использовать
обычный микроконтроллер с напряжением питания 5 В, в то время как сама
шина работает на больших напряжениях.


Шина в каждом узле подтягивается к напряжению питания (Vbat).
Для устройства-задатчика (master) значение терминального резистора составляет
1 кОм, для устройств-исполнителей (slave) — 20…47 кОм. Максимальная длина
шины составляет 40 м.
Протокол LIN подразумевает использование RC-цепочки в качестве задающего
генератора микроконтроллеров исполнителей. Поэтому каждое сообщение содержит
поле синхронизации и каждый исполнитель обязан подстроить по этому полю
частоту своего приёмопередатчика. Для того, чтобы определить время передачи
одного бита, необходимо засечь время четырёх периодов стартовой посылки,
разделить на 8 и округлить (рис. 4).

В идентификационном поле сообщается информация о том, что же, собственно,
последует дальше. Поле идентификации (рис. 5)

разделено на три части: четыре бита (0-3) содержат адрес исполнителя,
с которым будет производиться обмен информацией, два бита (4-5) указывают
количество передаваемых байт и последние два бита (6-7) используются для
контроля чётности. Четыре бита адреса могут выбирать одного из 16-ти исполнителей,
каждый из них может отвечать 2-мя, 4-мя, или 8-ю байтами, таким образом
получаем 64 типа различных сообщений на шине. Спецификация LIN не устанавливает
каких-либо жёстких рамок на передаваемую информацию (за исключением команды
“Sleep”), оставляя свободу творчества для программистов.
Задатчик может послать команду всем исполнителям перейти в микромощный
режим (Sleep), выставив в поле идентификации байт 0х80). Исполнители,
приняв его, освобождают шину и переходят в “спящий” режим с выходом из
него по изменению состояния на шине. Любой исполнитель может активизировать
шину, передав байт 0х80. После этого все узлы ожидают дальнейших опросов
задатчика в обычном режиме.
Программная реализация
Протокол LIN можно организовать программно на любом микроконтроллере,
выпускаемом фирмой Microchip (рис. 6).

Очень удобно для этих целей применять малогабаритные и дешёвые PIC16C508
и PIC16C505. На сайте компании www.microchip.com
находится пример такой конструкции и приведён исходный текст программы
микроконтроллера (Application Note AN729).
Аппаратная реализации
Для удобства проектирования встроенных систем управления для автомобильной
электроники, Microchip Technology Inc. представила семейство из двух микроконтроллеров
PIC16C432 и PIC16C433 с аппаратно-встроенным приёмопередатчиком автомобильного
протокола обмена данных LIN. Эти микроконтроллеры содержат на кристалле
аппаратный приёмопередатчик, и его не придётся создавать на отдельных
элементах.
При классической архитектуре, PIC16C432/433 имеет 2Кґ14бит слов однократно
программируемой программной памяти и 128 байт оперативной памяти данных.
Имея на одном кристалле микроконтроллер и приёмопередатчик LIN в корпусе
с 18 и 20 выводами, можно до предела сократить количество внешних навесных
деталей, повысив при этом надёжность устройства в целом. А наличие 4-канальных
8-бит АЦП позволяет обрабатывать аналоговые сигналы.
Другими встроенными модулями являются 8-разрядный счётчик/таймер реального
времени с 8-разрядным предварительным делителем, выход из “спящего” режима
по изменению сигнала на шине и встроенный приёмопередатчик LIN, для работы
которого необходимо лишь наличие напряжения питания на шине 12 В. Специальные
возможности микроконтроллеров поддерживают внутрисхемное программирование
(ICSP™), power-on reset (POR), power-up timer (PWRT), oscillator start-up
timer (OST), режим пониженного энергопотребления “Sleep”, возможность
выбора типа задающего генератора и сторожевой таймер (WDT) с отдельным
RC-генератором для повышения надёжности. PIC16C432 также имеет функцию
brown-out reset (BOR).
Средства разработки и отладки
Компания Microchip предлагает полный программно-аппаратный комплект для
разработки систем на базе микроконтроллеров и протокола LIN, призванный
уменьшить время, необходимое для разработки, повысить интенсивность труда
и таким образом снизить затраты на разработку в целом и сократить время
выхода готового изделия на рынок. Всё программное обеспечение создаётся
при помощи бесплатной среды MPLABд, доступной на сайте компании. Предлагается
стартовый комплект, содержащий демонстрационную плату с узлами-исполнителями,
и устройство-задатчик, которое может обмениваться данными с исполнителями
и выдавать принимаемую информацию через последовательный порт RS-232 на
персональный компьютер. Комплект состоит из девяти различных плат, соединяющихся
с двумя раздельными панелями:
- 1 плата управления;
- 1 плата Master устройства LIN Bus;
- 3 привода устройств LIN Bus;
- 2 макетные платы для устройств LINBus;
- 1 привод управления креслом;
- 1 плата декодера системы доступа.
В комплект также входит всё необходимое программное обеспечение, в том
числе исходные тексты программ для устройств Master/Slave на ассемблере.
|