Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Интерфейсная шина CAN. Назначение, форматы передачи данных, основные технические характеристики



Интерфейс CAN (Controller Area Network – буквально сеть контроллеров) был разработан в конце 80-х годов фирмой Bosch для связи электронных устройств, применяемых в автомобилях. В то время не существовало единого стандарта для этой цели. До появления интерфейса CAN типичная электропроводка грузового автомобиля содержала около 5 км проводов весом свыше 100 кг, которая связывала различные электронные устройства. Интерфейс CAN был разработан, чтобы удовлетворить следующим требованиям:

1. Высокая скорость обмена (до 1 Мбит/с).

2. Нечувствительность к электромагнитным помехам.

3. Простота, небольшое количество разъемных контактов (для обеспечения механической надежности).

4. Легкость подключения и удаления устройств.

В настоящее время используются спецификации CAN версий 2.0А и 2.0В фирмы Bosch. Шина CAN получила международное признание, выразившееся в опубликовании стандарта ISO 11898. ISO (International Standard Organization) – международная организация по стандартизации. Сейчас интерфейс CAN широко применяется на транспорте, в промышленной автоматике, энергетике, медицине и бытовой технике. Таким образом, интерфейс CAN – это стандарт промышленной сети, ориентированный на объединение в единую сеть различных исполнительных устройств и датчиков.

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

Физическая среда в CAN может быть самой разной: витая пара, плоский кабель, оптоволокно, инфракрасные каналы, радиоканалы и даже линии электропередач. Однако на практике, согласно стандарту ISO 11989, шина CAN обычно представляет собой витую пару (экранированную или неэкранированную), по которой передаются сигналы дифференциальным методом.

На рис. 1 приведена структура CAN-сети. Обычно в качестве контроллера используется микроконтроллер, имеющий CAN-модуль, который имеет выход передатчика TxD последовательного кода и вход приемника RxD кода. Трансивер преобразует логические сигналы, то есть логические 0 и 1, в дифференциальное напряжение, поступающее на два провода шины, обозначенные CAN_H и CAN_L. Согласно стандарту линия должна иметь волновое сопротивление в пределах 108-132 Ом. Для уменьшения отражений сигналов на каждом конце шины должны быть подключены согласующие (по-другому, оконечные или терминальные) резисторы RС сопротивлением 120 Ом. Для повышения надежности передачи и повышения помехоустойчивости иногда используют третий провод – общий, обозначаемый как GND. Питающее напряжение UCC (или UDD) по стандарту равно +5 В относительно GND (или USS).

Для абстрагирования от физической среды передачи спецификация CAN определяет два логических состояния (то есть логические 0 и 1) как рецессивное (recessive) и доминантное (dominant). При этом предполагается, что при передаче одним узлом сети рецессивного бита, а другим доминантного, принят будет доминантный бит.

Стандарт ISO 11898 определяет дифференциальное напряжение UDIFF между линиями CAN_H и CAN_L для представления рецессивного и доминантного состояний на шине следующим образом.

В рецессивном состоянии (то есть логическая 1 на входе TxD трансивера) дифференциальное напряжение UDIFF =UCANH – UCANL меньше минимального порога (0, 5 В на входе приемника или 0, 05 В на выходе передатчика).

В доминантном состоянии (то есть логический 0 на входе TxD трансивера) дифференциальное напряжение UDIFF больше минимального порога (0, 9 В на входе приемника или 1, 5 В на выходе передатчика).

Максимальное число узлов, подключенных к шине CAN, фактически определяется нагрузочной способностью примененных трансиверов (теоретических ограничений нет). Например, при использовании трансивера PCA82C250 фирмы Philips оно равно 110.

 

 

Рис. 1. Структура CAN-сети

 

Сообщения в CAN. Интерфейс использует короткие сообщения: максимальный размер – 94 бита. В CAN-сообщении нет явного адреса. Такой тип рассылки сообщений называется «схема адресации, ориентированной на содержимое». Другими словами, содержимое данных в CAN-сообщении как бы неявно определяет адрес источника этого сообщения и адреса приемников, кому эта информация необходима. Например. один CAN-узел выдает на шину сообщение «Температура масла двигателя 80о С». Все другие узлы принимают это сообщение, но используют эту информацию только те узлы, кому она необходима.

Сообщения, передаваемые по CAN-шине, именуются кадрами или фреймами. В зависимости от инициатора передачи и ее цели существуют 4 типа кадров:

1) кадр данных (Data Frame), используется для передачи данных;

2) кадр запроса данных (Remote Frame), используется для дистанционного запроса данных от удаленного узла;

3) кадр ошибки (Error Frame), когда обнаруживаются ошибки на шине;

4) кадр перегрузки (Overload Frame), передается для задержки передачи пакетов Data Frame и Remote Frame, например, при неготовности приемника.

Каждый тип кадра используется для определенных целей. Кадры Error Frame и Overload Frame, когда это необходимо, передаются CAN-узлом автоматически. Наполнение информацией кадров Data Frame и Remote Frame осуществляет разработчик системы.

Собственно для передачи данных используется Data Frame. Он имеет поле арбитража (Arbitration Field) и информационное поле (Data Field), которое может содержать до 8 байт данных. Поле арбитража кадра включает в себя идентификатор (ID), однозначно определяющий содержание и приоритет сообщения. Стандартным форматом сообщений (CAN 2.0A) предусмотрен 11-битный идентификатор, позволяющий различать до 20348 типов сообщений. Расширенный формат (CAN 2.0B) имеет 29-битный идентификатор с теоретически возможным числом типов сообщений более 536 миллионов.

Стандартный формат сообщения Data Frame состоит из семи различных битовых полей:

· Поле начала кадра (Start of Frame – SOF) состоит из одного доминантного бита, который служит также для синхронизации генераторов приемников и передатчика.

· Поле арбитража (Arbitration Field) содержит 11-битный идентификатор ID и бит RTR – Remote Transmission Request (запрос передачи данных). Для кадра данных этот бит должен иметь доминантный уровень.

· Управляющее поле (Control Field) состоит из шести битов. Два самых старших бита в настоящее время не используются. Четырехбитный код длины данных (DLC – Data Length Code) указывает число байтов в поле данных.

· Поле данных (Data Field) содержит от нуля до восьми байтов данных.

· Поле контрольной суммы (CRC Field) включает в себя контрольную сумму сообщения (15 бит) и бит-разделитель рецессивного уровня.

· Поле подтверждения (ACK Field) состоит из двух битов. Старший бит с именем Slot выставляет передающий узел рецессивного уровня. В случае, когда передача прошла успешно, приемный узел сигнализирует об этом установкой этого бита в доминантный уровень. Второй бит в этом поле является битом-разделителем рецессивного уровня.

· Поле конца кадра (EOF – End of Frame) состоит из семи битов рецессивного уровня.

После конца кадра (EOF) следует поле промежутка (Intermission Field), состоящее из трех битов рецессивного уровня. После этого промежутка шина считается свободной. Новый цикл обмена может начаться в любой момент после промежутка Intermission Field.

Все CAN-узлы на шине синхронизируются доминантным битом поля SOF и далее восстанавливают синхронизацию в моменты перепадов битов в кадре. Для исключения потери синхронизации при передаче длинной последовательности одинаковых битов в пределах полей начала кадра, арбитража, управления, данных и контрольной суммы используется механизм бит-стаффинга – вставка дополнительного бита противоположного значения после подряд идущих пяти одинаковых, то есть последовательностей типа …00000… или …11111… При приеме производится обратная операция (дебит-стаффинг), то есть удаление дополнительного бита.

Кадр запроса данных Remote Frame также может иметь стандартный и расширенный форматы. Отличия его от кадра данных Data Frame – в отсутствии поля данных и рецессивном уровне бита RTR. При получении кадра запроса данных запрашиваемый узел отвечает передачей кадра данных.

Обнаружение и обработка ошибок. CAN протокол имеет мощные средства обнаружения ошибок. В CAN реализовано 5 механизмов проверки на наличие ошибок. Следует отметить, что все они реализованы аппаратным способом.

Ошибка контрольной суммы (CRC Error). 15-разрядное значение кода CRC рассчитывается узлом передачи во время формирования сообщения. Все узлы сети принимают это сообщение, вычисляют CRC и сравнивают его с принятым значением. При несовпадении контрольных сумм (полученных в кадре в поле CRC Field и вычисленной) сообщение считается ошибочным. Если хотя бы один узел не примет данные должным образом, будет сформировано сообщение об ошибке.

Ошибка подтверждения (Acknowledgement Error). В поле подтверждения ACK Field передающий узел проверяет наличие доминантного бита (логического 0). Если хотя бы один узел принял сообщение правильно, то доминантный бит будет сформирован в поле подтверждения. Если был получен рецессивный бит (логическая 1), значит ни одно устройство не приняло сообщение, и передающий узел регистрирует ошибку подтверждения.

Ошибка формата (Form Error). Все CAN узлы проверяют соответствие структуры принимаемого сообщения его фиксированному формату и его размеру. Если формат сообщения нарушен, то узлы генерируют ошибку формата.

Ошибка бита (Bit Error). Каждый узел во время передачи битов в сеть сравнивает значение передаваемого им бита со значением бита, которое появляется на шине. Если эти значения не совпадают, то узел генерирует ошибку бита. Естественно, что во время арбитража на шине (передачи идентификатора в шину) этот механизм проверки ошибок отключается.

Ошибка бит-стаффинга (Stuff Error). При передаче сообщения в CAN работает механизм бит-стаффинга – вставка дополнительного бита после пяти подряд идущих бит с одинаковым значением. Принимающий узел этот дополнительный бит удаляет. Если приемник обнаруживает на шине больше 5 последовательных бит с одинаковым значением, то он генерирует ошибку бит-стаффинга.

Каждый узел сети CAN во время работы пытается обнаружить одну из пяти возможных ошибок. Если ошибка обнаружена, узел передает в сеть фрейм ошибки Error Frame, разрушая тем самым весь текущий трафик сети (передачу и прием текущего сообщения). При этом передатчик, сообщение которого прервано, автоматически должен повторить передачу своего сообщения.

Скорость передачи и длина сети. Спецификация CAN исходит из предположения, что все узлы принимают сигналы с шины одновременно, то есть в одно и то же время один и тот же бит принимается всеми узлами в сети. С одной стороны такое положение вещей делает возможным побитовый арбитраж, а с другой стороны ограничивает длину сети. Каждый узел, вовлеченный в арбитраж, должен быть способен осуществлять выборку каждого бита в пределах одного и того же интервала передачи бита. Обычно выборка производится примерно в середине интервала передачи бита. При передаче и приеме сигналов по шине неизбежно появляется задержка распространения tDEL, которая определяется как сумма времени прохождения сигнала по шине tBUS, выходной задержки передатчика tTRANSM и входной задержки приемника tRECEIVE. Очевидно, что с увеличением скорости передачи интервал передачи бита сокращается, а это может привести к ошибочной выборке действительного значения бита из-за влияния задержки распространения.

Стандарт ISO 11898 определяет, что при максимальной скорости передачи 1 Мбит/с длина кабеля шины CAN не должна превышать 40 метров. При использовании гальванической развязки максимальная протяженность сети при скорости передачи 1 Мбит/с ограничена 9 метрами.

В документах промышленной CAN-группы CiA (CAN in Automation) приведены следующие практическим путем полученные соотношения «скорость – протяженность» для проводной сети без гальванической развязки:

1000 кбит/с - 30 м

500 кбит/с - 100 м

……………………………………….

50 кбит/с - 1000 м

10 кбит/с - 5000 м

5 кбит/с - 10000 м

Достоинства интерфейса CAN:

· возможность работы в режиме жесткого реального времени;

· простота реализации и минимальные затраты на использование;

· высокая устойчивость к помехам;

· надежный контроль ошибок передачи и приема;

· широкий диапазон скоростей работы;

· большое распространение технологии, наличие широкого ассортимента продукции от различных поставщиков.

Недостатки:

· максимальная длина сети обратно пропорциональна скорости передачи;

· большой размер служебных данных в пакете (по отношению к полезным данным);

· отсутствие единого общепринятого стандарта на протокол высокого уровня.

 


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-03-17; Просмотров: 3194; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.02 с.)
Главная | Случайная страница | Обратная связь