Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

008401 / / Сеть CAN

.doc
Скачиваний:
37
Добавлен:
10.04.2015
Размер:
222.21 Кб
Скачать

Иазработанный в середине 80-х ные сетевые протоколы для микро- вершенно неожиданные сферы — от

фирмой 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) имеет доминантный уровень для стан­дартного формата фрейма и рецессив-

ный — для расширенного. Биты гО и г1 — резервные.

В поле управления (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 сетей, можно выделить четыре типа устройств:

  1. автономные CAN контроллеры;

  2. микроконтроллеры с интегриро­ ванным CAN модулем;

  3. CAN устройства последовательно­ го ввода-вывода (CAN SLIO — Serial Link I/O);

  4. CAN трансиверы.

Устройства первого типа содержит все блоки, необходимые для работы в среде CAN (контроллер протокола, фильтр и буферы сообщений). На при­кладном уровне управление ими (че­рез имеющийся интерфейс) может осу­ществлять любой универсальный мик­роконтроллер. Второй тип устройств является результатом совмещения на одном кристалле CAN контроллера (CAN модуля) с ядром управляющего, как правило, серийного, микроконт­роллера. Трансиверы обеспечивают со­пряжение устройств первых трех типое с физической средой передачи данных SLIO компоненты — это CAN контрол­леры с жестко заданной логикой рабо­ты и управляемые с других CAN-узлов Имеют в своем составе цифровые илк аналоговые цепи ввода-вывода.

Нельзя не упомянуть также и уже появляющиеся на рынке однокрис тальные CAN узлы, представляющие собой результат интеграции устройств 2 и 4-го типов. Основная трудность е их производстве заключается пока е совмещении на одном кристалле раз нотипных полупроводниковых техно логий.

В зависимости от спецификации поддерживаемой CAN контроллерог (автономным или интегрированным) существуют следующие разновидно сти контроллеров:

  • CAN 2.0A. Поддерживают лиш1 стандартный формат фрейма. Hi рекомендуются для новых разра боток.

  1. CAN 2.0B Passive. На прием рабо тают как с расширенным, так и о стандартным форматом фрейме

                  1. ДЕКАБРЬ '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), сочетающее в себе интерактивную базу знаний по микроконтроллерам фирмы со сред­ствами генерации кода для них.

Соседние файлы в папке