
Смотри ниже
CAN - локальная сеть контроллеров
Почему выбирают can?
В середине 80-х Robert Bosch GmbH и Intel начали совместные работы над спецификацией и проектированием микросхем для блока, который бы обеспечивал последовательный протокол связи и поддерживал прикладные задачи с распределенным управлением в реальном масштабе времени. Основная цель этого проекта - разработка высокоскоростной сети с простым подключением узлов и блоков к шине для автомобилей. Первоначально CAN (Controller Area Network - локальная сеть контроллеров) предназначался для управления трансмиссией в реальном масштабе времени, системы анти-заноса и замены всей радиальной проводки автомобиля.
Впоследствии CAN, подобно урагану, ворвался во все сферы промышленного управления. Протокол CAN обладает великой скрытой мощью, которая не очевидна до тех пор, пока Вы не проникли в проблемы вокруг проектирования встроенных распределенных систем управления, где различные модули, блоки, узлы и датчики должны быть объединены в единую систему.
В настоящее время используется спецификации CAN версий 2.0А и 2.0В от Robert Bosch GmbH, которые открыты и доступны через Internet. Шина CAN получила международное признание, выразившееся в опубликовании стандарта ISO 11898 (1993). CAN поддерживается практически всеми ведущими производителями интегральных микросхем, причем доступны как автономные CAN-контрол-леры (Stand-alone CAN controller), так и CAN-контроллеры, интегрированные с микроконтроллерами (Microcontroller with CAN) типа
8051, 68H05 и др. Приведем перечень производителей IC, которые имеют CAN в своей производственной линейке: Fujitsu Motorola
Philips-Segnetics Intel
Hitachi NEC Mitsubishi Electric
National Semiconductor
Infineon Technologies AG Temic Telefunken
ST Microelectronics Toshiba Micronas Intermetall LSI Logic/Inicore
Texas Instr ument Alcatel-Mietec Microchip
AMP Inc Sican
OKi Electric Industry
AB Automative Electronics FH BS/WF
Таким образом, CAN - это международная стандартизированная последовательная шина системы (ISO 11898), обеспечивающая функциональные возможности уровня канала данных и физического канала согласно модели соединения открытых систем (ISO/OSI 7498). В настоящее время CAN очень интенсивно (буквально лавинообразно) внедряется за рубежом во всех сферах промышленной автоматики, движущемся транспорте, военной технике, космосе.
Что такое can?
CAN - это протокол связи (краткие технические характеристики CAN смотрите в таблице) с высоконадежной передачей данных по последовательному каналу (шине) в широковещательном режиме. Это означает, что все CAN-узлы могут «слышать» все сообщения (кадры), находящиеся на шине. Мы не сможем послать сообщение только одному CAN-узлу; неизменно все CAN-узлы на шине примут сообщение. Однако, CAN-контролле-ры обеспечивают локальную фильтрацию так, чтобы каждый узел мог реагировать только на нужные ему сообщения.
При передаче данных CAN протокол аппа-ратно обеспечивает формирование сообщения, выполняет передачу данных, осуществляет побитную синхронизацию, выполняет идентификацию сообщения, проводит бит-стаффинг, подтверждает правильность приема всеми, обнаруживает и исправляет ошибки.
Сообщение, используемое CAN-узлом, имеет поле арбитража (Arbitration Field) и информационное поле (Data Field), которое может содержать до 8 байтов данных. Кроме того, кадр содержит поле начало кадра (Start of Frame) и конца кадра (End of Frame), управляющее поле (Control Field), поля контрольной суммы (CRC Field) и поля подтверждения (ACK Field). Все CAN-узлы на шине синхронизируются первым битом поля Start of Frame и далее восстанавливают синхронизацию перепадами битов в кадре (при длинных
последовательностях типа …000000… или …111111… используется механизм битстаф-финга).
CAN использует короткие сообщения - максимальная сервисная нагрузка - 94 бита. В CAN сообщении нет явного адреса. Такой тип рассылки сообщений называется «схема адресации, ориентированной на содержимое». Другими словами, содержимое данных в CAN сообщении как бы неявно определяет адрес источника этого сообщения и адреса приемников, кому эта информация необходима (например, один CAN-узел выдает на шину «Температура масла двигателя - 800С»; все другие CAN-узлы принимают это сообщение, но используют эту информацию только те узлы, кому она необходима).
На CAN шине могут передаваться только четыре типа кадров:
-
DATA Frame - кадр данных; используется для передачи данных;
-
REMOTE Frame - кадр, используемый для дистанционного запроса данных от удаленного CAN-узла;
-
ERROR Frame - кадр ошибки; передается, когда обнаруживаются ошибки на шине;
-
OVERLOAD Frame - кадр переполнения; передается для задержки передачи пакетов DATA Frame и REMOTE Frame.
Каждый тип кадра используется для определенных целей. Кадры ERROR Frame и OVERLOAD Frame, когда это необходимо, передаются CAN-узлом автоматически. Напол-
KHUJP.980926.doc-01
\
Топология
Длина
шины
Тип
шины
Скорость
передачи
Режим
передачи Доступ
к шине
Стандартизованная
- максимум 1 Мбит/сек. на длине 40 метров;
возможно - 1,6 Мбит/сек. на длине 10 метров
Таблица 1. Краткие технические характеристики CAN
Шина (моноканал) c терминаторами на концах
Типовое - 40 метров при скорости передачи 1 Мбит/сек., до 10000 метров при уменьшении скорости передачи до 5 Кбит/сек.
Витая пара, силовая сеть, радиоканал, оптоволокно, ИК-канал
Последовательная асинхронная передача данных, возможность multiMaster, групповая передача (multiсast), NRZ кодирование с битстаффингом
CSMA/CA (Carrier Sense Multiple Access/Collision Arbitration), захват шины через приоритет кадра, встроенный арбитраж на битовом уровне, неразрушающий алгоритм
Тип выхода перед. В соответствии с ISO/IS 11898
Число
возможных узлов
Высокая
надежность
Возможность
Real-Time
-
Обнаружение ошибки
автоматический доступ к шине; -
Обработка ошибки
приоритетное разрешение конфликтной ситуации при обращении к шине; -
Локализация ошибки
передачу данных; -
обнаружение ошибок;
-
Протокол 7 уровня:
автоматическую ретрансляцию пакетов, ранее переданных с ошибкой; -
Протокол 2-1 уровня:
Область применения
подтверждение доставки пакетов; -
автоматическое отключение неисправных узлов.
Аппаратная
поддержка
Неограниченно (теоретически), до 127 на сегменте (практически), просто подключаются и отключаются (plug & play)
Зависит от максимально допустимой задержки для сообщения с высоким приоритетом, реально < 120 цсек для 1 Мбит/с.
у
Каждый CAN контроллер выполняет мониторинг своего передатчика и всех приемников, 15 битовая CRC, все участвуют в проверке выполнения битстаффинга и целостности фрейма
ьного
Различает ситуации между фиксированными ошибками и временной ошибкой (помеха). Фиксированная ошибка автоматически отключает CAN-узел. Возможно автоматическое подключение.
CAL, CANopen, DeviceNet, SDS, CAN Kingdom, SeleCAN, SAE J1939
ISO 11898, ISO 11519-2, SAE J2284, SAE J2411
Транспорт, промышленная автоматика, робототехника, медицина, авиация, морской транспорт, военная техника, космические станции и спутники.
Motorola, Philips, Siemens, NEC, Microchip, Mitsubishi, Intel, Fujitsu, Toshiba, ST Microelectronics, Thomson, Texas Instruments, Hitachi, National Semiconductor, Temic, …
ется в том, что любой CAN-узел, определив что шина свободна, может начать передачу своего сообщения.
Различие между CAN и Ethernet происходит, когда два или более узлов одновремен-
но определяют, что шина свободна и начинают передавать свои кадры. Это ведет к конфликтной ситуации (коллизии) на шине. В Ethernet при столкновении передающие узлы обнаруживают эту ситуацию (Collision Detected) и прекращают передавать кадры, чтобы позже попытаться снова передать свои сообщения. Это ведет к потере времени и уменьшении пропускной способности сети. В принципе возможна такая ситуация, когда никто из узлов не уступает дорогу - сеть Ethernet повисает.
CAN такую ситуацию решает по другому. Когда происходит конфликтная ситуация при обращении к шине, CAN определяет победителя на основе побитного арбитража содержимого поля Arbitration Field всех принимающих в конфликте сообщений. Побеждает узел с наивысшим приоритетом и продолжает передавать свой кадр. Другие CAN-узлы с более низкими приоритетами сообщений попытаются передать свои кадры позже. Такой метод определения победителя называется Collision Arbitration (арбитраж столкновения).
Поэтому говорят, что Ethernet работает в режиме доступа к шине по алгоритму CSMA/ CD, а CAN - CSMA/CA (в литературе иногда встречается CSMA/CD+CA).
Данный режим CAN обеспечивается тем, что все CAN узлы подключены к шине по схеме «монтажное И», где узел, передающий «0» доминирует над всеми узлами, передающие «1». CAN выполняет данный побитный арбитраж только над содержимым поля Arbitration Field. Поэтому при проектировании необходимо, чтобы содержимое этого поля - идентификатор - было уникально для каждого
кадра. Никакая пара CAN-узлов не может послать сообщение с одинаковыми идентификаторами. Аналогичным образом, никакой CAN-узел не может принять сообщения разных типов, но с одинаковыми идентификаторами.