Интерфейс CAN-bus (ISO-11898)
Controller Area Network (CAN) - стандарт сетей, объединяющих контроллеры, датчики, исполнительные и другие устройства.
CAN BUS представляет из себя стандарт, который был разработан компанией Robert Bosch GmbH в 1983г. для применения в области автомобильной электроники и автоматики. Стандарт CAN2.0 описывает канальный уровень передачи данных на шине с типом доступа CSMA/CD+AMP (Carrier-Sense, Multiple-Access protocol with Collision Detection and Arbitration on Message Priority).
CSMA означает, что каждый абонент сети прежде чем начать передачу, ожидает определённый период неактивности на шине. CD+AMP означает, что коллизии на шине разрешаются посредством арбитража, основанном на приоритете сообщения. При этом абонент, передающий сообщение с наибольшим приоритетом, продолжает передачу. Такое решение позволяет максимально эффективно использовать пропускную способность CAN шины.
Передача данных в CAN интерфейсе
Информация передаётся сообщениями (кадрами). Кадр содержит:
- Идентификатор данных (11бит - CAN2.0A, 29бит - CAN2.0B). Это не адрес абонента, как во многих других сетях, а идентификатор данных, определяющий приоритет сообщения. Идентификатор может содержать тип передаваемых данных, уникальный номер, прочую информацию (определяется протоколами более высокого уровня). Как правило, каждый абонент имеет на входе фильтр сообщений и принимает только нужные ему сообщения.
- Данные (0-8 байт). Содержимое определяется протоколом более высокого уровня (уникальный или один из стандартных: ARINC 825, CANopen, CAN Kingdom, DeviceNet, SAE J1939 и других). Не содержит данных только кадр запроса. В ответ на запрос абоненты, имеющие данные на передачу с таким же идентификатором, что и запрос, должны начать отправку данных.
- Контрольная сумма (2 байта), вычисляемая по алгоритму CRC-16. Каждый абонент проводит проверку контрольной суммы всех сообщений, передаваемых через сеть. Независимо от того, принимает ли он данное сообщение (прошло оно входной фильтр) или нет.
- Подтверждение. Каждый абонент, принявший сообщение без ошибок, выставляет бит подтверждение приёма.
- Служебные биты и межкадровый интервал.
Специфика топологии CAN шины
Стандартный алгоритм обнаружения и обработки ошибок, который должен быть реализован каждым абонентом сети, позволяет исключать из обмена аварийных абонентов (неправильно подключенных или сконфигурированных) и продолжать работу.
Физический уровень каждого абонента сети содержит ФАПЧ, используемый для подстройки разницы тактовых генераторов скоростей передачи абонентами, времени распространения сигнала. При работе на несбалансированных, зашумлённых линиях дополнительно может применяться ФНЧ.
CAN интерфейс приобрёл популярность благодаря своей надёжности, простоте и гибкости. На основе CAN можно организовать простую в реализации, не дорогую сеть датчиков, исполнительных механизмов и контроллеров, обладающую всеми достоинствами стандарта. С использованием протоколов более высокого уровня можно построить системы реального времени для связи блоков управления, реализовать алгоритмы управления сетью с большим числом абонентов, шлюзы с другими сетями CAN.
Стандарт получил широкое распространение и применение в автомобильной, железнодорожной, промышленной автоматике, а также в военной технике. Контроллер CAN интерфейса "on-chip" имеют многие микроконтроллеры и микропроцессоры для встраиваемых систем.
ISO 11898
В 1993г. Международной Организацией по Стандартизации был принят стандарт ISO 11898, содержащий в своей основе CAN 2.0. Впоследствии ISO 11898 был дополнен и разделён на части, которые описывают уровни протокола CAN для различных применений.
ISO 11898-1:2003 определяет канальный и физический уровни передачи данных сети CAN контроллеров. Документ описывает архитектуру сетей на основе модели Открытых Систем (OSI - Open System Interconnection), описывает механизмы обмена информацией между CAN модулями, реализующими канальный уровень с детальным описанием подуровней: управления логической связью (LLC - Logical Link Control) и управления доступом к среде (MAC - Media Access Control).
ISO 11898-2:2003 определяет физический уровень высокоскоростных (до 1Мбит/с) сетей контроллеров при передаче информации по дифференциальной сбалансированной линии (витая пара). Данный тип сетей CAN является самым распространенным.
ISO 11898-3:2006 определяет определяет физический уровень низкоскоростных (от 40Кбит/с до 125Кбит/с) отказоустойчивых сетей контроллеров в автомобильной автоматике. Стандарт допускает не только линейную топологию сети (шина, как в ISO 11898-2), но и соединение типа "звезда" или комбинацию типов.
ISO 11898-4:2004 определяет сети контроллеров can интерфейса, синхронизированных по времени (TTCAN - Time Triggered CAN). Документ описывает компоненты такой сети и организацию работы (циклы, суперциклы синхронизации). Стандарт широко используется для построения сетей реального времени.
Платы с интерфейсом CAN Bus для шины PCI Express компании "Новомар"
Модули mPCIe-CAN в формате Mini PCI Express полностью удовлетворяют требованиям стандартов CAN2.0A, CAN2.0B, ISO 11898-1, ISO 11898-2, ISO 11898-3. Контроллеры CAN шины имеют средства реализации для прикладного ПО стандарта ISO 11898-4 и других промышленных стандартов на основе CAN.
Компании "Новомар" удалось обеспечить ряд уникальных особенностей, сохранив при этом стандартные габариты плат формата mini PCIe:
- два независимых интерфейса CAN-Bus;
- гальваническая изоляция каждого интерфейса;
- многоуровневая защита от аварий на линии;
- опциональный фильтр ФНЧ;
- опциональное терминирование каждой CAN сети резистором 100 Ом.