
фирмой ROBERT BOSCH GmbH контроллеров (типа 12С фирмы бытовой техники до физики высоких
для систем управления узлами PHILIPS или MicroLAN фирмы энергий,
автомобиля, протокол CAN (Controller DALLAS SEMICONDUCTOR) не обла-
Area Network — сеть контроллеров) дают достаточными надежностью и
в последнее время привлекает все быстродействием. ~________________^___
большее внимание производителей В то же время протокол CAN как : •
электроники для самых разных об- нельзя лучше подходит именно для ^^^^^^^^^^^^^^^^^^^^^Ш
ластей применения. Удачное сочета- разрешения проблем "общения"
ние низкой стоимости подключения, "интеллектуальных" модулей систем 3 ели попытаться дать сжатое опре-
простоты и надежности с проверкой управления. Немалую долю сего- 3 деление тому, что скрывается за
временем (более десятка лет при- дняшней популярности обеспечила U столь короткой и звучной аббре-
менения — внедорожники, грузови- CAN также изначальная поддержка виатурой, можно сказать, что CAN —
ки, морские суда, изобилующие по- со стороны ведущих производителей это последовательный протокол вы-
мехами цеха предприятий) и широ- микросхем. Недорогие контроллеры, сокоскоростной и высоконадежной
кой доступностью элементной базы позволившие строить сети с исполь- передачи данных в широковещатель-
и инструментальных средств разра- зованием универсальных микроконт- ном (broadcast) режиме и мультимас-
ботки — основные (но далеко не роллеров, стали доступны на рынке терной среде.
единственные!) козыри CAN-техно- уже с 1989 года, задолго до приня- Положения стандарта, закреплен- логий. тия международного стандарта ISO ные в используемой на сегодня спе- Главной причиной усиления вни- 11898. На сегодня CAN протокол и цификации 2.0А/В фирмы BOSCH и мания разработчиков к сетям мик- основанные на нем протоколы более международном стандарте ISO 11898, роконтроллеров стала значительно высокого уровня являются промыш- соответствуют двум начальным уров- возросшая в последнее время слож- ленными стандартами в европей- ням (физическому и канальному) 7-уров- ность систем управления — возрос- ском автомобилестроении. В связи невой модели взаимодействия откры ла степень "интеллекта" датчиков, с этим следует отметить и еще одно тых систем ISO/OSI. приводов, наряду с повышением тре- весьма важное для разработки и про- Ряд оригинальных технических ре- бований к безопасности, удобству и изводства положительное обстоя- шений, реализованных при разработ- т.п. Так, автомобиль среднего клас- тельство — гарантию доступности ке протокола, наилучшим образом по- са содержит сегодня уже около 1,6 км элементной базы CAN в течение не зволили сориентировать его на реше- кабелей и более чем 800 соедините- менее 10 лет. ние задач контроля и управления, лей! Дальнейшее увеличение числа CAN сегодня — это и автомоби- Так, шинная топология, являющая- его электронных блоков (например, ли Renault, Audi, Mercedez-Benz, ся основой CAN, обычно требует на- добавление системы навигации, свя- Volvo, и телескопы Carl Zeiss, и сие- личия механизма адресации узлов, зи и т.п.) без простых и надежных тема освещения Bank of Portugal, и однако в CAN нет адресов как тако- средств их общения между собой аттракционы американской фирмы вых: сообщение принимается всеми могло бы привести к лавинообразно- PARAMOUNT, и упаковщики TetraPak. узлами. Вместо них любое передава- му росту дерева проводов. Но при- Несмотря на то, что автомобиле- емое сообщение имеет определяю- менение в данной ситуации стандар- строение (до 80% всех установлен- щий его содержание уникальный иден- тных протоколов и средств, исполь- ных узлов) и производство систем тификатор (ID), на основании которо- зуемых в компьютерных сетях (на- управления в промышленности (боль- го каждый узел фильтрует "свои" со- пример, Ethernet), является не толь- шая часть оставшихся 20%) являют- общения (рис. 1) и "решает" — реаги- ко дорогим, но и зачастую малоэф- ся главными отраслями-потребите- ровать (узлы 1,4) или нет (узел 3) на фективным решением (ввиду отли- лями CAN компонентов и технологий, сообщение, транслируемое в данный чия специфики вычислительных за- CAN-электроника все активнее про- момент. К примеру, системе навигации дач от задач управления). А извест- никает во многие, казалось бы, со- автомобиля важна его скорость, но "не
Несколько необычно решается и проблема коллизий (столкновений в сети), также присущая шинной топологии. В этом случае снова используется идентификатор сообщения в сочетании со схемой подключения к шине типа "монтажное И", где узел, выставляющий на шину "О" — доминантный уровень (рис. 2), подавляет "1" — ре-
цессивный уровень, выставленный другим узлом. Победителем в арбитраже является узел, имеющий идентификатор с наименьшим численным значением и, как следствие, наивысший приоритет. Только победивший узел продолжает передачу данных, остальные попытаются это сделать позже. Распределение приоритетов между разными типами сообщений задается разработчиком на стадии проектирования сети. Подобный режим доступа к шине известен как CSMA/CD+AMP (Carrier Sense Multiple Access with Collision Detection and Arbitration on Message Priority) — множественный доступ с контролем несущей, обнаружением коллизий и арбитражем на основе приоритета сообщений. И в отличие, например, от
Ethernet CSMA/CD, где присутствует лишь контроль несущей, этот режим не позволяет поспорившим узлам устраивать столпотворение на шине, а сразу выявляет победителя. Он также естественным образом соответствует специфике задач контроля и управления не только узлами автомобиля, но и в области поомышленного управления, гле
разная информация требует разной частоты обновления (к примеру, температура двигателя меняется медленнее, чем его обороты), и в сочетании с высокой максимальной скоростью передачи данных в сети (до 1 Мбит/с) позволяет без затруднений обеспечивать реальный режим работы для большинства процессов управления.
Физическая среда передачи данных в CAN может быть самой разной — витая пара, плоский или коаксиальный кабель, оптоволокно, а также радио и ИК каналы и лаже линии элект-
ропередач. Основным ограничением протяженности шины CAN является лишь предельно допустимая суммарная задержка распространения сигнала (в кабеле, трансиверах, входных цепях контроллеров и т.д.) для заданной скорости передачи. Так, в соответствии с рекомендациями ISO 11898 при использовании стандартных трансиверов и быстродействующих оптопар (для
гальванической развязки) максимальная протяженность сети при скорости передачи 1 Мбит/с ограничена девятью метрами. Предельная рекомендуемая протяженность сети 1 км в соответствии с тем же стандартом достигается при снижении скорости передачи до 50 кбит/с. А в документах промышленной CAN группы CiA (CAN in Automation) приведены следующие полученные практическим путем соотношения скорость-протяженность для проводной сети без гальванической развязки:
1 Мбит/с — 30 м
500 кбит/с — 100 м
125 кбит/с — 500 м
20 кбит/с — 2500 м
10 кбит/с — 5000 м
Йообщения, передаваемые по CAN именуются фреймами (рис. 3). В зависимости от инициатора передачи ее цели, существуют четыре типа фреймов:
-
Data Frame — фрейм данных
-
Remote Frame — фрейм запроса данных
-
Error Frame — фрейм ошибки
-
Overload Frame — фрейм пере грузки
Собственно для передачи данных используется Data Frame, в поле данных которого (Data Field) могут находится от 0 до 8 байтов данных. Поле арбитража (Arbitration Field) фрейма включает в себя идентификатор (ID), однозначно определяющий содержание и приоритет сообщения. Стандартным (рис. 4) форматом сообщений (CAN Specification 2.0A) предусмотрен 11-битный идентификатор, позволяющий различать до 2048 типов сообщений (на практике обычно до 2032), а расширенным (CAN Specification 2.0B) — 29-битный (стандартный 11-битный с 18-битным расширением) с теоретически возможным числом типов сообщений более 536 миллионов. Бит RTR (Remote Transmission Request — запрос передачи данных) для фрейма данных должен иметь доминантный уровень. В расширенном формате фрейма бит SRR (Substitute Remote Request) с рецессивным уровнем заменяет следующий (в стандартном формате) за 11-разрядным идентификатором бит RTR. Бит распознавания формата фрейма IDE (ID Extension) имеет доминантный уровень для стандартного формата фрейма и рецессив-
В поле управления (Control Field) содержится 4-х разрядный код, задающий длину поля данных (0...8 байт) — DLC — Data Lenght Code. Поле контрольной суммы CRC Field включает в себя контрольную сумму сообщения (15 бит) и бит-разделитель. В поле подтверждения АСК (Acknowledgement) передающий узел всегда выставляет рецессивный уровень. В случае, если передача прошла успешно, приемный узел сигнализирует об этом установкой в этом поле доминантного уровня.
Начинается фрейм доминантным битом SOF (Start Of Frame), служащим также для синхронизации битового потока, а заканчивается семью битами рецессивного уровня поля EOF (End Of Frame) и 3-х битным того же уровня промежутком между фреймами. Для исключения потери синхронизации при передаче длинной последовательности одинаковых битов в пределах полей начала фрейма, арбитража, управления, данных и контрольной
суммы используется битстаф-финг — вставка дополнительного бита противоположного значения после подряд идущих 5-ти одинаковых (например, последовательность 111111 преобразуется в 1111101 и т.п.). При приеме производится обратная (де-битстаффинг) операция.
Для запроса данных от удаленного узла служит фрейм за-
проса данных Remote Frame, также имеющий стандартный и расширенный форматы. Отличия фрейма запроса данных от фрейма данных — в отсутствии поля данных и рецессивном уровне бита RTR. При получении фрейма запроса данных запрашиваемый узел отвечает передачей фрейма данных.
Сигнализация об ошибках происходит посредством передачи фрейма ошибки Error Frame (рис. 5). Он инициируется любым узлом (в CAN правильность передачи контролируется каждым узлом), обнаружившим ошибку. Шесть доминантных бит флага ошибки (активный флаг ошибки) перекрывают остаток ошибочно переданного фрейма и создают глобальную ошибку в сети — ошибку битстаффинга, которая воспринимается остальными узлами, если им не удалось обнаружить первоначальную (локальную) ошибку. Далее они выставляют свои флаги ошибки. Ввиду этого обстоятельства последовательность доминантных бит (суперпозиция флагов ошибки) может иметь длину от 6 до 12 бит. Ненадеж-
ным или частично поврежденным узлам (см. ниже) при обнаружении ошибки разрешено посылать лишь пассивный флаг ошибки — последовательность шести рецессивных бит.
Для задержки передачи данных или посылки фрейма запроса данных (при неготовности приемника или наличии доминантных бит в промежутке между фреймами)служит фрейм перегрузки Overload Frame. В отличие от фрейма ошибки он не влияет на счетчики ошибок (см. ниже) и не вызывает повторную передачу сообщения.
Для удовлетворения требований специализированных задач и приложений на базе CAN стандарта разработан ряд протоколов более высокого (прикладного) уровня — CANopen (системы реального времени, управление датчиками), CAN Kingdom (промышленная автоматика, управление роботами), DeviceNet (подключение устройств автоматики к сети) и Smart Distributed System (скоростной обмен данными между узлами) и др.
0AN протокол, изначально разработанный специально для систем управления жизненно важными узлами автомобилей (трансмиссия, двигатель, антиблокировка тормозов, антизанос и т.п.), критичных к уровню безопасности и степени достоверности передаваемых данных, обладает эффективными средствами обнаружения ошибок. Это привлекает к нему внимание все большего числа производителей и разработчиков систем управления с высокими требованиями к надежности и безопасности (медицина, авиация, военная техника и т.п.).
В отличие от других сетевых протоколов, в CAN не используются подтверждающие сообщения, а при обнаружении одной или более ошибок хотя бы одним узлом (в CAN все узлы принимают все сообщения и участвуют в проверке сообщения на наличие ошибок — вычисляют контрольную сумму и т.п.), текущая передача прерывается(при условии,что ошибку обнаружил как минимум один узел со статусом Error Active) генерацией фрейма ошибки с флагом ошибки. Передатчик, сообщение которого было прервано, повторяет передачу.
В CAN обнаруживаются три разновидности ошибок на уровне сообщений:
-
CRC Error. Ошибка контрольной суммы — несовпадение вычислен ной и приведенной в поле CRC кон трольной суммы сообщения.
-
Frame Error. Ошибка формата
ИНЖЕНЕРНАЯ МИКРОЭЛЕКТРОНИКА
фрейма
— несоответствие форматов
и размеров полей фрейма стандартным.
• Аск Error. Ошибка подтверждения — неполучение передатчиком под тверждения приема(доминантный уровень) в поле АСК.
а также два типа ошибок на битовом уровне:
-
Bit Error. Передающий узел обна руживает (в любых полях кроме по лей арбитража и подтверждения) расхождение, например, из-за за мыкания шины, между посланным в шину логическим уровнем и фак тически на ней установленным (в CAN каждый передатчик имеет возможность контролировать свой собственный сигнал, см. рис. 1).
-
Stuff Error. Нарушение правил бит- стаффинга в сообщении — нали чие в поле сообщения, подлежаще го битстаффингу, последователь ности из шести бит с одинаковым значением.
Благодаря развитым средствам обнаружения ошибок так называемая вероятность остаточной ошибки (Residual error) — вероятность того, что ошибка не будет обнаружена — для CAN чрезвычайно мала. К примеру, при передаче сообщений длиной 80 бит в CAN со скоростью 500 кбит/с, средней частотой появления ошибок — одна битовая ошибка в 0,7 сек и ежедневной 8-часовой эксплуатацией сети, останется незамеченной лишь одна ошибка за тысячу лет.
В целях предотвращения блокирования сети неисправными узлами и повышения ее "живучести", "права доступа" к шине любого узла могут меняться в зависимости от числа зарегистрированных им ошибок. Каждый узел сети содержит два внутренних счетчика: ошибок приема и ошибок передачи, значения которых по сложному алгоритму увеличиваются или уменьшаются при приеме или передаче как корректных, так и ошибочных сообщений. В зависимости от текущих значений этих счетчиков, узел будет переключать себя в одно из следующих состояний:
Error Active — узел принимает полноправное участие в обмене данными и при обнаружении ошибки вы-
ставит активный флаг ошибки, прервав любое ошибочное сообщение.
Error Passive — узел участвует в обмене данными, но в случае обнаружения ошибки выставляет лишь пассивный флаг ошибки и не может, таким образом, прервать любое ошибочное сообщение, за исключением своего собственного. Кроме этого, такой узел между своими последовательными передачами будет выдерживать паузу не менее 11 рецессивных бит (Suspend Transmission).
Bus Off — узел не принимает участие в обмене данными и не оказывает никакого влияния на сеть (выходные драйверы отключены).
В процессе работы узел может переходить из состояния Error Active в состояние Error Passive и обратно (например, при изменении помеховой обстановки). Выход из состояния Bus off (при переходе в него из состояния Error Passive) возможен только после программного или аппаратного сброса контроллера.
CAN интегральные компоненты
3 ольшинство из вышеописанных Л уникальных (и не столь простых) LJ механизмов CAN протокола уже реализованы на аппаратном уровне в сотнях серийно выпускаемых недорогих и доступных интегральных компонентах — их разработкой и производством занимается, не один десяток крупнейших фирм-производителей. Далеко не полный их перечень включает следующие компании:
-
ALCATEL/MITEC
-
BOSCH
-
FUJITSU
-
HITACHI
-
IAM
-
INICORE
-
INTEL
-
INTERMETALL
-
MICROCHIP
-
MITSUBISHI
-
MOTOROLA
-
NATIONAL SEMICONDUCTOR
-
NEC
-
PHILIPS
-
ST MICROELECTRONICS/SGS- THOMSON
-
SIEMENS
-
TEMIC
-
TEXAS INSTRUMENTS
-
TOSHIBA
-
UNITRODE
Среди многообразия представленных на рынке ИМС для построения CAN сетей, можно выделить четыре типа устройств:
-
автономные CAN контроллеры;
-
микроконтроллеры с интегриро ванным CAN модулем;
-
CAN устройства последовательно го ввода-вывода (CAN SLIO — Serial Link I/O);
-
CAN трансиверы.
Устройства первого типа содержит все блоки, необходимые для работы в среде CAN (контроллер протокола, фильтр и буферы сообщений). На прикладном уровне управление ими (через имеющийся интерфейс) может осуществлять любой универсальный микроконтроллер. Второй тип устройств является результатом совмещения на одном кристалле CAN контроллера (CAN модуля) с ядром управляющего, как правило, серийного, микроконтроллера. Трансиверы обеспечивают сопряжение устройств первых трех типое с физической средой передачи данных SLIO компоненты — это CAN контроллеры с жестко заданной логикой работы и управляемые с других CAN-узлов Имеют в своем составе цифровые илк аналоговые цепи ввода-вывода.
Нельзя не упомянуть также и уже появляющиеся на рынке однокрис тальные CAN узлы, представляющие собой результат интеграции устройств 2 и 4-го типов. Основная трудность е их производстве заключается пока е совмещении на одном кристалле раз нотипных полупроводниковых техно логий.
В зависимости от спецификации поддерживаемой CAN контроллерог (автономным или интегрированным) существуют следующие разновидно сти контроллеров:
-
CAN 2.0A. Поддерживают лиш1 стандартный формат фрейма. Hi рекомендуются для новых разра боток.
-
CAN 2.0B Passive. На прием рабо тают как с расширенным, так и о стандартным форматом фрейме
-
ДЕКАБРЬ '98
На
передачу — только со стандартным.
• CAN 2.0В Active (или просто 2.0В). Работают на прием и передачу как с расширенным, так и со стандартным форматом фрейма.
Деление контроллеров на BasicCAN (содержат промежуточные буферы сообщений) и FullCAN (используют объектный принцип хранения сообщений на основе двухпортовой RAM) в последнее время теряет свою актуальность в связи с тем, что в современных разработках часто используются оба принципа хранения сообщений.
Для выполнения межсетевых гейтов (шлюзов) ряд производителей (MOTOROLA, FUJITSU) предлагают также компоненты со сдвоенными (Dual-CAN) контроллерами.
Остановимся несколько подробнее на продукции некоторых, широко известных в России производителей (табл. 1).
MOTOROLA (wwvy.mcu.motsps.com)
Шризнанный лидер в производстве микроконтроллеров практически для всех областей применений — MOTOROLA — предлагает широкий их спектр и с интегрированным CAN модулем — от самых дешевых моделей 8-разрядного семейства 68НС05Ххх до мощных 32-разрядных.
Простейший CAN модуль MCAN, используемый в семействе 68НС05Ххх, по утверждению фирмы, является одной из самых дешевых реализаций CAN-модуля на рынке. Более продвинутый модуль, совместимый с MCAN, — msCAN08 (два приемных и три буфера передачи) с масштабируемым фильтром сообщений интегрирован в семейство MC68HC08AZ. А для 16-разрядного ядра МС68НС12 разработан msCAN12, отличающийся от msCAN08 более широкими возможностями по фильтрации сообщений. TouCAN модуль, предназначенный для высокопроизводительных 16 и 32-разрядных микроконтроллеров, содержит 16 буферов для приема и передачи с от-
дельными векторами прерывания, поддержку нестандартных функций (временные метки, сортировка сообщений) и требует минимального вмешательства со стороны процессора.
В ноябре 98 года фирма объявила о начале производства сдвоенного CAN микроконтроллера M68HC912DG128 на основе 16-разрядного ядра НС12, содержащего 128 кбайт флэш-памяти, специально предназначенного для работы в качестве межсетевого гейта в автомобилях. В разработке — строенный и счетверенный CAN модули, которые позволят естественным образом объединить четыре CAN подсети автомобиля (управление трансмиссией, диагностика, управление элементами салона —двери, кресла и т.п., система связи и навигации). MOTOROLA оценивает рынок CAN гейтов как весьма перспективный, с прогнозируемой емкостью в 4млн. гейтов на 1999г и в более чем 14млн. к 2003 году.
Начало производства 32-разрядного МРС555, сочетающего в себе мощь ядра PowerPC с развитой периферией, имеющий сдвоенный CAN модуль TouCAN, намечено на конец 98 года.
PHILIPS (www.semiconductors.philips.com)
Ие менее известный (и в России тоже) голландский концерн является одним из первых производителей CAN компонентов, вышедшим на рынок с собственными решениями в области CAN задолго до принятия международного стандарта ISO 11898. Автономный CAN контроллер SJA1000, работающий как со стандартным, так и с расширенным форматом сообщений (CAN 2.0B), пришел на смену устаревшему РСА82С200 и полностью с ним совместим (программно, по выводам и электрическим параметрам). Его интерфейс позволяет подключать к нему разные управляющие микроконтроллеры (рекомендуется 16-разрядный XA-G3), а поддержка ряда новых функций (режим PeliCAN) — чтение/запись счетчиков ошибок, программирование лимитов ошибок и др. — значи-
тельно расширяют возможности по управлению CAN протоколом. Результатом объединение SJA1000 с ядром XA-G3 явилось создание 16-разрядного микроконтроллера ХА-СЗ с интегрированным CAN интерфейсом.
Линейка трансиверов, 82С25х, а также TJA1053 удовлетворяет требованиям большинства возможных реализаций CAN (с максимальными скоростями передачи данных от 125 кбит/с до 1 Мбит/с) на автомобильном транспорте и в промышленности.
SIEMENS AG (www.smi.siemens.com)
Иодина CAN-технологий, Германия является и одной из первых стран, где они начали активно внедряться (Mercedez-Benz впервые применил CAN в автомобильной электронике). И поэтому не удивительно, что производство CAN компонентов занимает далеко не последнее место в производственной программе концерна SIEMENS (который и сам активно использует их при разработке и производстве медицинского оборудования). Представителями микроконтроллеров с CAN модулями являются как наиболее простые, но, тем не менее, соответствующие спецификации CAN 2.0B active, 8-разрядные варианты из семейства С500 (оба варианта содержат одинаковый CAN модуль, который интегрирован, также и в 16-разрядный C167CR, но С515С отличается от С505С усовершенствованным процессором и более развитой периферией), так и более производительные (до 10 MIPS) 16-разрядные из семейства С166 (C164CI и C167CR).
Пара автономных CAN контроллеров SAE81C90/91, отличающихся между собой лишь числом портов ввода-вывода, предназначены для работы совместно с любыми универсальными микроконтроллерами.
В помощь разработчикам SIEMENS предлагает, помимо традиционных инструментальных средств, также уникальное средство поддержки разработок— DavE (на CD-ROM), сочетающее в себе интерактивную базу знаний по микроконтроллерам фирмы со средствами генерации кода для них.