8-900-374-94-44
[email protected]
Slide Image
Меню

Разъем can – Краткий обзор протокола CAN. Часть II

Содержание

Краткий обзор протокола CAN. Часть II

Вернуться к статьям

По материалам компании Kvaser

Продолжение статьи I части.

Эта статья не претендует на полноту и абсолютную точность сведений, указанных в ней, и предназначена для ознакомления с протоколом CAN.

Содержание статьи

• Шина CAN – Введение.

• Сообщения CAN.

• Физические уровни CAN.

• Разъемы CAN.

• Тактовая синхронизация CAN.

• Обработка ошибок CAN.

Разъемы CAN

Для разъемов CAN стандартов не существует! Обычно, каждый (!) протокол более высокого уровня (Higher Layer Protocol) описывает один или несколько предпочтительных типов разъемов. Основные типы:

• 9–контактный DSUB, предложен CiA;

• 5–контактный Mini–C и/или Micro–C, используется DeviceNet и SDS;

• 6–контактный Deutsch разъем, предложенный CANHUG для транспортных гидравлических систем.

Разъемы CAN

Данное назначение контактов разъема рекомендовано CiA и фактически является промышленным стандартом.

1 - Резерв
2 CAN_L Линия шины CAN_L (доминантная низкая)
3 CAN_GND Заземление CAN
4 - Резерв
5 (CAN_SHLD) Опционально: экран CAN
6 (GND) Опционально: заземление CAN
7 CAN_H Линия шины CAN_H (доминантная высокая)
8 - Резерв (линия ошибок)
9 CAN_V+ Опционально: питание

Для пользователей продукции KVASER: Пожалуйста заметьте, что специфическое употребление этих контактов в кабелях KVASER DRVcan описано в документе LAPcan Hardware Guide, который можно скачать на сайте компании.

Если питание подается, оно должно быть в диапазоне +7..+13 В, 100 мA. Модули оснащены разъемом типа «папа» и должны соединять внутри контакты 3 и 6. 

Нумерация контактов действительна для разъема типа «папа„, при взгляде со стороны разъема, или для разъема типа “мама», при взгляде со стороны распайки. – Чтобы запомнить расположение контактов, заметьте, что контакт CAN_LOW имеет МЕНЬШИЙ (LOW) номер, а CAN_HIGH – БОЛЬШИЙ (HIGH).

5-контактный Mini–C

Используется как DeviceNet , так и SDS , и является совместимым для этих двух протоколов.

Контакт Функция Цвет DeviceNet
1 Экран Неизолированный
2 V+ Красный
3 V- Черный
4 CAN_H Белый
5 CAN_L Синий

 

Модули оснащены разъемами типа «папа». Подаваемое напряжение 24 В ±1%

6-контактный Deutsch DT04-6P

Рекомендован CANHUG для использования в транспортных гидравлических системах

Разъемы на модулях типа «папа», разъемы шины – «мама». На данный момент нет никаких рекомендаций по вопросу подачи питания.

 

Контакт
Функция
Рекомендованный цвет кабеля
1 «Минус» питания

Черный

2 CAN_H Белый
3 Опционально: заземление сигнала Желтый
4 Опционально: запуск Серый
5 «Плюс» питания Красный
6 CAN_L Синий

Тактовая синхронизация CAN

Схема бита

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

• сегмент синхронизации

• сегмент воспроизведения

• сегмент фазы 1

• сегмент фазы 2

Схема бита данных шины CAN:

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

Сегмент воспроизведения нужен для компенсации задержки на линиях шины.

Сегменты фазы могут быть сокращены (сегмент фазы 1) или удлинены (сегмент фазы 2), если это потребуется для сохранения синхронизованности тактовых частот.

Уровни шины замеряются на границе между сегментом фазы 1 и сегментом фазы 2.

Большинство контроллеров CAN также обеспечивают возможность трехкратного замера на протяжении одного бита. В таком случае, замер происходит на границах двух квантов, предшествующих точке замера и результат зависит от мажоритарного декодирования (это верно как минимум в случае 82527).

Тактовая синхронизация

Для того, чтобы регулировать встроенный в чип генератор тактовых частот шины, контроллер CAN может сократить или удлинить бит на целое число квантов. Максимальное количество таких временных поправок бита определяется параметром «ширина скачка синхронизации» (Synchronization Jump Width, SJW).

Жесткая синхронизация происходит при переходе стартового бита от рецессивного к доминантному. Отсчет времени прохождения бита начинается заново с этой границы.

Повторная синхронизация происходит когда край бита не попадает в сегмент синхронизации сообщения. Один из сегментов фазы укорачивается или удлиняется на некоторое количество квантов, зависящее от ошибки фазы сигнала; максимальное количество используемых квантов определяется параметром «ширина скачка синхронизации» (Synchronization Jump Width, SJW).

Вычисление регистра тактовой синхронизации

Большинство контроллеров CAN позволяют программисту осуществлять настройку тактовой синхронизации используя следующие параметры:

• Значение предварительного делителя тактовой частоты

• Количество квантов перед точкой замера

• Количество квантов после точки замера

• Количество квантов в «ширина скачка синхронизации» (Synchronization Jump Width, SJW)

Обычно для этих целей выделяется два регистра: btr0 и btr1. Однако они могут слегка различаться у разных контроллеров, поэтому внимательно читайте инструкцию.

В контроллерах 82c200 и SJA1000, производства NXP (ранее Philips), раскладка регистра выглядит приблизительно так:


7






btr0 SJW1 SJW0 BRP5 BRP4 BRP3 BRP2 BRP1 BRP0
btr1 SAM TSEG22 TSEG21 TSEG20 TSEG13 TSEG12 TSEG11 TSEG10 

• BRP0..BRP5 устанавливают значение предварительного делителя тактовой частоты

• SJW0..SJW1 устанавливают длину SJW

• TSEG10..TSEG13 устанавливают количество квантов перед точкой замера (стартовый бит не включен)

• TSEG20..TSEG22 устанавливают количество квантов после точки замера

• SAM при установке значения 1 производится три замера, при установке значения 0 – один замер

Примечание: реальные значения этих параметров несколько отличаются от значений, вписанных в регистр.

Пример: если сигнал генератора, подаваемый на SJA1000, имеет частоту 16 МГц, и мы желаем получить скорость передачи 250 кбит/с, с точкой замера в районе 62% всего бита, и SJW равным 2 квантам, мы можем установить –
BRP = 4, что дает продолжительность кванта 2 × 4 / 16000000 с = 500 нс, и

TSEG1 = 5, что дает 5 квантов перед точкой замера, и

TSEG2 = 3, что дает 3 кванта после точки замера.

Каждый бит будет содержать 5 + 3 = 8 квантов, что даст нам желаемую скорость передачи 1 / (8 × 500 нс) = 250 кбит/с. Значения регистра должны быть следующими:


btr0=
(SJW – 1) * 64 + (BRP -1) =
(2-1)*64 + (4-1) =
67 =
0×43
btr1= SAM * 128 + (TSEG2 – 1)* 16 + (TSEG1 – 1) =
0×128 + (3-1)*16 + (4-1) = («4» потому, что стартовый бит не включен)
35 =
0×23

Точка замера в районе 5/8 = 62.5% бита.

Обработка ошибок CAN

Как CAN обрабатывает ошибки

Обработка ошибок встроена в протокол CAN и очень важна для производительности системы CAN. Обработка ошибок нацелена на обнаружение ошибок в сообщениях, передающихся по шине CAN, чтобы передатчик мог повторно выслать неверно принятое сообщение. Каждый CAN–контроллер на шине будет пытаться обнаружить ошибку в сообщении. Если ошибка найдётся, обнаруживший её узел будет передавать флаг ошибки, таким образом разрушая трафик шины. Другие узлы обнаружат ошибку, вызванную флагом ошибки (если еще не обнаружили оригинальную ошибку) и предпримут соответствующие действия, т.е. отбракуют текущее сообщение.

Каждый узел обслуживается двумя счетчиками ошибок: счетчиком ошибок передачи (Transmit Error Counter) и счетчиком ошибок приёма (Receive Error Counter). Существуют правила, регламентирующие повышение и/или понижение значения этих счетчиков. По существу, передатчик определяет повышение числа сбоев в счетчике ошибок передачи быстрее, нежели слушающие узлы увеличат значения своих счетчиков ошибок передачи. Это потому, что есть немалая вероятность, что сбой именно в передатчике! Когда значение любого счетчика ошибок превышает определенную величину, узел сначала становится Error Passive – это значит, что он не будет активно разрушать трафик шины при обнаружении ошибки; а затем Bus Off – это значит, что узел вообще не будет принимать участия в передаче данных по шине.

При помощи счетчиков ошибок узел CAN может не только обнаруживать сбои, но и ограничивать ошибки.

Механизмы обнаружения ошибок

Протокол CAN описывает не менее пяти различных способов обнаружения ошибок. Два из них работают на уровне бита, а остальные три – на уровне сообщения.

1.Мониторинг битов (Bit Monitoring).

2.Вставка битов (Bit Stuffing).

3.Проверка кадра (Frame Check).

4.Проверка распознавания (Acknowledgement Check).

5.Проверка циклической избыточности (Cyclic Redundancy Check).

Мониторинг бита

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

После того как узел передаст пять непрерывно следующих друг за другом битов одного уровня, он добавит к исходящему потоку битов шестой бит, противоположного уровня. Получатели будут удалять этот дополнительный бит. Это делается для предупреждения появления излишнего количества компонентов DC на шине, но также дает получателям дополнительную возможность обнаружения ошибок: если по шине передается более пяти непрерывно следующих друг за другом битов одного уровня, подается сигнал ошибки вставки.

Проверка кадра

Некоторые части сообщения CAN имеют фиксированный формат, т.е. стандарт четко определяет, какие уровни должны произойти и когда. (Эти части – ограничитель CRC (CRC Delimiter), ограничитель ACK (ACK Delimiter), конец кадра (End of Frame), а также пауза (Intermission), однако для них существуют дополнительные специализированные правила проверки на ошибки.) Если контроллер CAN обнаружит неверное значение в одном из этих полей, он подаст сигнал ошибки формы (Form Error).

Проверка распознавания

Ожидается, что все узлы шины, которые получили сообщение корректно (независимо от того, было ему это сообщение «интересно» или нет), отправят доминантный уровень в так называемой области распознавания (Acknowledgement Slot) кадра. Передатчик будет передавать рецессивный уровень. Если передатчик не сможет обнаружить доминантный уровень в области распознавания, он подаст сигнал ошибки распознавания (Acknowledgement Error).

Проверка циклической избыточности

Каждое сообщение содержит 15–битную контрольную сумму циклической избыточности (Cyclic Redundancy Checksum, CRC), и любой узел, обнаруживший что CRC в сообщении отличается от посчитанного им, подаст сигнал ошибки CRC (CRC Error).

Механизмы ограничения ошибок

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

Каждый узел обслуживают два счетчика ошибок: счетчик ошибок передачи и счетчик ошибок приема. Существуют правила, описывающие условия повышения и/или понижения значений этих счетчиков. По существу, передатчик, обнаруживший сбой, повышает значение своего счетчика ошибок передачи быстрее, чем слушающие узлы повысят значения своих счетчиков ошибок приема. Это потому, что есть большая вероятность, что сбоит сам передатчик!

Узел начинает работу в режиме Error Active. Когда значение любого из двух счетчиков ошибок превысит 127, узел перейдет в состояние Error Passive, а когда значение счетчика ошибок передачи превысит 255, узел перейдёт в состояние Bus Off.

• Узел в режиме Error Active при обнаружении ошибки будет передавать флаги активной ошибки (Active Error Flags).

• Узел в режиме Error Passive при обнаружении ошибки будет передавать флаги пассивной ошибки (Passive Error Flags).

• Узел в режиме Bus Off не будет передавать ничего.

Правила повышения и понижения значений счетчиков ошибок довольно сложные, но принцип прост: ошибка передачи добавляет 8 пунктов, а ошибка прием – 1 пункт. Правильно переданные и/или принятые сообщения вызывают понижение значения счетчика(ов).

Пример (слегка упрощенный): Представим, что у узла A плохой день. Всякий раз, когда A пытается передать сообщение, происходит сбой (не важно, по какой причине). При каждом сбое значение счетчика ошибок передач увеличивается на 8 пунктов и передается флаг активной ошибки. Затем он пытается послать сообщение ещё раз.. и всё повторяется.

Когда значение счетчика ошибок передачи превысит 127 пунктов (т.е. после 16 попыток), узел A перейдёт в режим Error Passive. Разница в том, что теперь он будет передавать флаги пассивной ошибки. Флаг пассивной ошибки содержит 6 рецессивных битов и не будет нарушать передачу других данных по шине – поэтому другие узлы не услышат жалобы A на ошибки шины. Однако A продолжит повышать значение счетчика ошибок передачи. Когда он превысит 255 пунктов, узел A окончательно сдастся и перейдет в режим Bus Off.

Что другие узлы думают об узле A? – После каждого флага активной ошибки, переданного узлом A, остальные узлы повышают значения своих счетчиков пассивной ошибки на 1 пункт. За всё то время, что потребуется узлу A для перехода в режим Bus Off, значения счетчиков ошибок получения остальных узлов не превысят границы Error Passive, т.е. 127. Это значение будет уменьшаться на 1 пункт при каждом корректном получении сообщения. Однако узел А будет оставаться в режиме Bus Off.

Большинство контроллеров CAN будут предоставлять биты статуса (и соответствующие прерывания) для двух состояний:

• «Предупреждение об ошибке» (Error Warning) – значение одного или обеих счетчиков ошибок превысило 96 пунктов

• Bus Off, как описано выше.

Некотрые, но не все (!), контроллеры также предоставляют бит для состояния Error Passive. Немногие контроллеры также предоставляют прямой доступ к счетчикам ошибок.

Привычка контроллеров CAN автоматически переотправлять сообщения при возникновении ошибок иногда может раздражать. На рынке имеется как минимум один контроллер (SJA1000 от Philips), поддерживающий полное ручное управление обработкой ошибок.

Режимы сбоев шины

Стандарт ISO 11898 перечисляет несколько режимов сбоев кабеля шины CAN:

1.CAN_H прерван

2.CAN_L прерван

3.CAN_H короткозамкнутый на напряжение батаре

4.CAN_L короткозамкнутый на землю

5.CAN_H короткозамкнутый на землю

6.CAN_L короткозамкнутый на напряжение батареи

7.CAN_L короткозамкнутый на провод

8.CAN_H и CAN_L прерваны в одном и том же месте

9.Потеря соединения с оконечной нагрузкой сети

Для сбоев 1–6 и 9 «рекомендовано», чтобы шина сохраняла работоспособность путём снижения соотношения сигнал/шум (S/N), а в случае сбоя 8 – чтобы исходная подсистема сохранила работоспособность. Для сбоя 7 существует «опциональная» возможность сохранения работоспособности путём снижения соотношения сигнал/шум (S/N).

 

На практике система CAN, построенная на приемопередатчиках типа 82C250, не сохранит работоспособность при сбоях 1–7, а при сбоях 8–9 может как сохранить, так и не сохранить.

Существуют «устойчивые к сбоям» драйверы, такие как TJA1053, способные обрабатывать все сбои. Обычно за эту устойчивость приходится платить ограничением максимальной скорости; для TJA1053 она составляет 125 кбит/с.

По материалам компании Kvaser . С оригинальными текстами на английском языке можно ознакомиться на сайте компании Kvaser , перейдя по этой ссылке .

www.micromax.ru

подключение сигнализации своими руками с автозапуском по кан устройству и видео о принципе работы

Для того чтобы упорядочить работу всех контроллеров, которые облегчают управление и повышают контроль вождения автомобилем, используется CAN-шина. Подключить такое устройство к сигнализации машины можно своими руками.

Содержание

Открытьполное содержание

[ Скрыть]

Что такое CAN-шина и принцип ее работы

КАН-шина представляет собой сеть контроллеров. Устройство используется для объединения всех управляющих модулей автомобиля в одну рабочую сеть с общим проводом. Этот девайс состоит из одной пары кабелей, которая называется CAN. Информация, передающаяся по каналам из одного модуля на другой, отправляется в закодированном виде.

Схема подключения устройств к CAN-шине в Мерседесе

Какие функции может выполнять CAN-шина:

  • подключение к автомобильной бортовой сети любых девайсов и устройств;
  • упрощение алгоритма подсоединения и функционирования вспомогательных систем машины;
  • блок может одновременно получать и передавать цифровые данные из разных источников;
  • использование шины снижает воздействие внешних электромагнитных полей на функционирование основных и вспомогательных систем машины;
  • CAN-шина позволяет ускорить процедуру передачи информации к определенным устройствам и узлам автомобиля.

Эта система работает в нескольких режимах:

  1. Фоновый. Все устройства отключены, но на шину подается питание. Величина напряжения слишком мала, поэтому разрядить аккумуляторную батарею шина не сможет.
  2. Режим запуска. Когда автолюбитель вставляет ключ в замок и проворачивает его либо жмет кнопку Старта, происходит активация устройства. Включается опция стабилизации питания, которое подается на контроллеры и датчики.
  3. Активный режим. В этом случае между всеми контроллерами и датчиками происходит обмен данными. При работе в активном режиме параметр потребления энергии может быть увеличен до 85 мА.
  4. Режим засыпания или отключения. При глушении силового агрегата контроллеры КАН перестают функционировать. При включении режима засыпания все узлы машины отключаются от бортовой сети.

Канал Виалон СУшка в своем видео рассказал о КАН-шине и что надо знать про ее эксплуатацию.

Плюсы и минусы

Какими преимуществами обладает КАН-шина:

  1. Простота установки устройства в автомобиль. Владельцу машины не придется тратиться на монтаж, поскольку выполнить эту задачу можно самостоятельно.
  2. Быстродействие устройства. Девайс позволяет быстро обмениваться информацией между системами.
  3. Устойчивость к воздействию помех.
  4. Все шины обладают многоуровневой системой контроля. Ее использование дает возможность предотвратить появление ошибок при передаче и приеме данных.
  5. В процессе функционирования шина автоматически разбрасывает скорость по разным каналам. Это позволяет обеспечить оптимальную работу всех систем.
  6. Высокая безопасность устройства, при надобности система блокирует несанкционированный доступ.
  7. Большой выбор устройств различных типов от разных производителей. Можно подобрать вариант, предназначенный для конкретной модели авто.

Какие недостатки характерны для устройства:

  1. В девайсах бывают ограничения по объему передаваемых данных. В современных автомобилях используется множество электронных девайсов. Их большое количество приводит к высокой загруженности канала передачи информации. Это становится причиной увеличения времени отклика.
  2. Большая часть отправляющихся по шине данных обладает конкретным назначением. На полезную информацию отводится маленькая часть трафика.
  3. При использовании протокола высшего уровня автовладелец может столкнуться с проблемой отсутствия стандартизации.

Виды и маркировки

Самым популярным типом шин являются устройства, разработанные Робертом Бошем. Девайс может функционировать последовательно, то есть сигнал передается за сигналом. Такие устройства называются Serial BUS. В продаже можно встретить и параллельные шины Parallel BUS. В них передача данных осуществляется по нескольким каналам связи.

О разновидностях, принципе действия, а также возможностях КАН-шины можно узнать из видео, снятого каналом DIYorDIE.

С учетом разных типов идентификаторов можно выделить несколько видов устройств:

  1. КАН2, 0А Актив. Так маркируются устройства, которые поддерживают 11-битный формат обмена данными. Эти узлы не обозначают ошибки на импульсы 29-битного узла.
  2. КАН2, 0В Актив. Так маркируются девайсы, функционирующие в 11-битном формате. Основное отличие заключается в том, что при обнаружении идентификатора на 29 бит в системе они будут передавать на управляющий модуль сообщение об ошибке.

Надо учесть, что в современных машинах такие типы устройств не применяются. Это связано с тем, что работа системы должна быть согласованной и логичной. А в данном случае она может функционировать при нескольких скоростях передачи импульсов — на 125 либо 250 кбит/с. Более низкая скорость используется для управления дополнительных устройств, таких как осветительные приборы в салоне, электрические стеклоподъемники, стеклоочистители и т. д. Высокая скорость нужна для обеспечения рабочего состояния трансмиссии, силового агрегата, системы ABS и т. д.

Разновидность функций шин

Рассмотрим, какие существуют функции у различных девайсов.

Девайс для автомобильного двигателя

При соединении устройства обеспечивается быстрый канал передачи данных, по которому информация распространяется со скоростью 500 кбит/с. Основное предназначение шины заключается в синхронизации работы управляющего модуля, к примеру, коробки передач и мотора.

Устройство типа Комфорт

Скорость передачи данных по этому каналу более низкая и составляет 100 кбит/с. Функция такой шины заключается в соединении всех устройств, относящихся к данному классу.

Информационно-командный девайс

Скорость передачи данных такая же, как и в случае с устройствами типа Комфорт. Главная задача шины заключается в обеспечении связи между обслуживающимися узлами, к примеру, мобильным девайсом и системой навигации.

Шины от разных производителей приведены на фото.

1. Устройство для автомобильного ДВС
2. Интерфейсный анализатор

Могут ли быть проблемы в работе CAN-шин?

В современном авто цифровая шина используется постоянно. Она работает одновременно с несколькими системами, причем по ее каналам связи постоянно передается информация. Со временем в работе устройства могут возникнуть неполадки. В результате анализатор данных будет функционировать неверно. При обнаружении неполадок автовладелец должен найти причину.

По каким причинам возникают сбои в работе:

  • повреждение или обрыв электроцепей устройства;
  • произошло замыкание в системе на аккумулятор либо массу;
  • могли замкнуть системы КАН-Хай или КАН-Лоу;
  • произошло повреждение прорезиненых перемычек;
  • разряд аккумуляторной батареи или снижение напряжения в бортовой сети, вызванное некорректной работой генераторного устройства;
  • произошла поломка катушки зажигания.

При поиске причин учитывайте, что неисправность может заключаться в некорректной работе вспомогательных устройств, устанавливающихся дополнительно. К примеру, причина может заключаться в неправильном функционировании противоугонной системы, контроллеров и девайсов.

О ремонте CAN-шины приборной панели в автомобиле Форд Фокус 2 можно узнать из ролика, снятого пользователем Brock — Video Corporation.

Процесс поиска неисправности осуществляется так:

  1. Сначала автовладелец производит диагностику состояния системы. Целесообразно осуществить компьютерную проверку, чтобы выявить все неполадки.
  2. На следующем этапе производится диагностика уровня напряжения и сопротивления электрических цепей.
  3. Если все в порядке, то проверяется параметр сопротивления прорезиненых перемычек.

Диагностика работоспособности КАН-шины требует определенных навыков и опыта, поэтому процедуру поиска неисправностей лучше доверить специалистам.

Как подключить сигнализацию по CAN-шине

Для подключения КАН-шины своими руками к автосигнализации машины с автозапуском либо без него надо знать, где находится блок управления противоугонной системой. Если установка сигнализации осуществлялась самостоятельно, то процесс поиска не вызовет сложностей у автовладельца. Управляющий модуль обычно ставится под приборной панелью в районе рулевого колеса либо за контрольным щитком.

Как произвести процедуру подключения:

  1. Противоугонная система должна быть установлена и подключена ко всем узлам и элементам.
  2. Найдите толстый кабель оранжевого цвета, он подключается к цифровой шине.
  3. Адаптер противоугонной системы подсоединяется к контакту найденной шины.
  4. Производится монтаж устройства в надежном и удобном месте, девайс фиксируется. Надо заизолировать все электрические цепи, чтобы не допустить их перетирания и утечки тока. Производится диагностика правильности выполненной задачи.
  5. На завершающем этапе настраиваются все каналы для обеспечения рабочего состояния системы. Также надо задать функциональный ряд устройству.
 Загрузка …

Видео «Пример подключения КАН-шины»

Пользователь Alexander Bast в видеоролике показал на примере автомобиля Фольксваген Поло, как производится процедура подключения шины к бортовой сети автомобиля.

avtobez.com

Последовательная шина передачи данных CAN. Введение.

Необходимость последовательного соединения в автомобилях

Это следующая наша переводная статья из цикла посвященного шине CAN, которая еще чуть более подробно раскрывает то, как устроена и функционирует шина КАН. Англоязычный оригинал.

Предыдущую читайте здесь.

Многие автомобили уже имеют большое количество электронных систем управления. Рост автомобильной электроники является результатом отчасти стремления потребителя к большей безопасности и комфорту, а также отчасти требований правительства по улучшению контроля за выбросами и снижению расхода топлива. Управляющие устройства, отвечающие этим требованиям уже используются в течение некоторого времени в области управления двигателем, коробкой передач и дроссельной заслонкой, а также в антиблокировочных системах (ABS) и системе управления ускорением (ASC) .

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

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

Если мы также рассмотрим будущие разработки, направленные на общую оптимизацию транспортных средств, то необходимо преодолеть ограничения, существующие в связи с обычными устройствами управления. Это можно сделать только путем объединения в сеть компонентов системы с использованием последовательной шины данных. Bosch разработал для этой цели систему «Controller Area Network» (CAN), которая с тех пор была стандартизирована на международном уровне (ISO 11898) и была «отлита в камне (в кремнии)» несколькими производителями полупроводников.

Используя CAN, одноранговые (одноуровневые) станции (контроллеры, датчики и исполнительные механизмы) подключаются через последовательную шину. Сама шина является симметричной или асимметричной двухпроводной цепью, которая может быть экранированной или неэкранированной. Электрические параметры физической передачи также указаны в стандарте ISO 11898. Подходящие чипы драйвера шины доступны от большого ряда производителей

Протокол CAN, соответствующий уровню канала передачи данных в эталонной модели ISO / OSI, удовлетворяет требованиям автомобильных для применения в автомобилях настоящего времени. В отличие от кабельных древовидных структур, сетевой протокол обнаруживает и исправляет ошибки передачи, вызванные электромагнитными помехами. Дополнительными преимуществами такой сети являются простота конфигурирования всей системы и возможность центральной диагностики.

Цель использования CAN в транспортных средствах заключается в том, чтобы любая станция могла взаимодействовать с любым другим, не налагая слишком большую нагрузку на компьютер контроллера.

Использование CAN сети в автомобилях

Существует четыре основных приложения для последовательной связи в транспортных средствах, каждое из которых имеет разные требования и цели.

• Сетевые контроллеры для синхронизации двигателя, трансмиссии, шасси и тормозов. Скорости передачи данных находятся в диапазоне — типичном для систем реального времени от 200 кбит /с до 1 Мбит /с. • Сетевые компоненты общей электроники и электроники шасси, которые делают автомобиль более комфортным. Примерами таких мультиплексных применений являются управление освещением, кондиционирование воздуха и центральный замок, а также регулировка сиденья и зеркала. Особое значение здесь должно быть уделено стоимости компонентов и требованиям к проводке. Типичная скорость передачи данных составляет около 50 кбит / с. • В ближайшем будущем последовательная связь также будет использоваться в области мобильной связи, чтобы связать такие компоненты, как автомобильные радиоприемники, автомобильные телефоны, навигационные средства и т. д., с центральной более эргономичной панелью управления. Функции, определенные в проекте «Прометей», такие как связь между транспортным средством и транспортным средством, будут в большой степени зависеть от последовательной связи. • В настоящее время CAN используется для первых трех приложений, но для диагностики предпочтительным решением является интерфейс в соответствии со стандартом ISO 9141.

Промышленные применения сети CAN

Сравнение требований к шинным системам транспортных средств и системам промышленных полевых шин показывает удивительные сходства: низкая стоимость, работоспособность в жесткой электрической среде, высокие возможности в реальном времени и простота использования одинаково желательны в обоих секторах.

Стандартное использование CAN в «S-классе» Mercedes-Benz и принятие CAN коммерческими автопроизводителями США для быстрой передачи (до 1 Мбит / с) заставляли промышленных пользователей навострить уши. Не только производители мобильных и стационарных сельскохозяйственных и морских машин и оборудования выбрали CAN, но и выбор производителей медицинской аппаратуры, текстильных машин, а также специальной техники и элементов управления лифтами. Система последовательной шины особенно хорошо подходит для сетевых «интеллектуальных» устройств ввода-вывода, а также датчиков и исполнительных механизмов внутри машины или завода.

Промышленность текстильного машиностроения является одним из пионеров CAN. Один производитель оснастил свои ткацкие станки модульными системами управления, сообщающимися в режиме реального времени через сети CAN еще в 1990 году. Тем временем несколько производителей текстильных машин объединились в группу «CAN Textile Users Group», которая, в свою очередь, является членом международной группы пользователей и производителей «CAN in Automation». Аналогичные требования к текстильному оборудованию имеются в упаковочных машинах и машинах для производства и обработки бумаги.

В США ряд предприятий используют CAN в производственных линиях и станках в качестве внутренней системы шин для сетевых датчиков и исполнительных механизмов внутри линии или непосредственно машины. Некоторые пользователи, такие как сектор медицинской инженерии, решили в пользу CAN, поскольку у них были особенно строгие требования безопасности. С аналогичными проблемами сталкиваются и другие производители машин и оборудования с особыми требованиями в отношении безопасности (например, роботы и транспортные системы).

Помимо высокой надежности передачи, низкие затраты на соединение на станцию являются еще одним решающим аргументом для CAN. В приложениях, где цена имеет решающее значение, очень важно, чтобы чипы CAN были доступны от различных производителей. Компактность других чипов контроллера также является важным аргументом, например, в области низковольтных распределительных устройств.

Как функционируют CAN-сети

Принципы обмена данными

Когда данные передаются по CAN, никакие станции не адресуются, но вместо этого содержание сообщения (например, скорость вращения или температура двигателя) обозначается идентификатором, который является уникальным во всей сети. Идентификатор определяет не только содержимое, но и приоритет сообщения. Это важно для распределения шины, когда несколько станций конкурируют за доступ к шине. Если ЦПУ данной станции желает отправить сообщение одной или нескольким станциям, он передает данные и их идентификаторы в назначенный CAN-чип (стостояние «Готово»). Это все, что должен сделать ЦП, чтобы инициировать обмен данными. Сообщение формируется и передается с помощью CAN-чипа. Как только CAN-чип получает выделение шины (состояние «Send Message»), все остальные станции в сети CAN становятся получателями этого сообщения (состояние «Receive Message»). Каждая станция в сети CAN, правильно приняв сообщение, выполняет приемный тест (тест получения), чтобы определить, относятся ли полученные данные к этой станции (состояние «Выбор»). Если данные имеют значение для соответствующей станции, они обрабатываются (состояние «Принято»), в противном случае они игнорируются. Высокая степень гибкости системы и конфигурации достигается благодаря схеме адресации, ориентированной на содержание. Очень просто добавлять станции в существующую сеть CAN без внесения каких-либо изменений в аппаратные или программные средства для существующих станций при условии, что новые станции являются чисто приемниками. Поскольку протокол передачи данных не требует физических адресов назначения для отдельных компонентов, он поддерживает концепцию модульной электроники, а также допускает множественный прием (широковещательный, многоадресный) и синхронизацию распределенных процессов: могут быть переданы измерения, необходимые в качестве информации несколькими контроллерами через сеть таким образом, что для каждого контроллера не требуется иметь свой собственный датчик.


1. Передача вещания и входная фильтрация узлами CAN на предмет того подходящие ли данные для того или иного узла

Неразрушающая побитовая проверка:

Для того, чтобы данные обрабатывались в режиме реального времени, они должны передаваться быстро. Это требует не только физического канала передачи данных со скоростью до 1 Мбит/с, но также требует быстрого распределения шины, когда несколько станций хотят отправлять сообщения одновременно.


2. Принцип неразрушающего побитового проверки(оценки, считывания)

В режиме реального времени безотлагательность (очередность) обмена сообщениями по сети может сильно различаться: быстро изменяющийся размер (например, нагрузка на двигатель) должен передаваться чаще и, следовательно, с меньшими задержками, чем другие измерения (например, температура двигателя), которые изменяются относительно медленно. Приоритет, при котором сообщение передается по сравнению с другим менее срочным сообщением, определяется идентификатором соответствующего сообщения. Приоритеты закладываются при проектировании системы в виде соответствующих двоичных значений и динамически не могут быть изменены. Идентификатор с наименьшим двоичным числом имеет самый высокий приоритет.

Конфликты доступа к шине разрешаются путем побитной проверки каждой из участвующих станций получаемых идентификаторов через наблюдение (считывание) уровня шины бит за битом. В соответствии с «проводным и» механизмом, посредством которого доминирующее состояние (логический 0) перезаписывает рецессивное состояние (логический 1), конкуренция за распределение шины теряется всеми этими станциями с рецессивной передачей и доминирующим наблюдением (ожиданием 0 для получения). Все «проигравшие» автоматически становятся получателями сообщения с наивысшим приоритетом и не передают повторную передачу до тех пор, пока шина не будет доступна снова.

Эффективность распределения шины: 

 Эффективность системы распределения шины определяется в основном возможным применением для этой системы последовательной шины. Чтобы судить о том, какие шинные системы подходят, для каких приложений литература включает метод классификации процедур распределения шины. Обычно мы различаем следующие классы:

• Распределение по фиксированному графику. Распределение производится последовательно каждому участнику для максимальной продолжительности независимо от того, нужена ли этому участнику шина в данный момент или нет (примеры: маркерная ячейка или передача маркера). • Распределение шины на основе необходимости. Шина назначается одному участнику на основании невыполненных запросов на передачу, то есть система распределения учитывает только участников, желающих передать (примеры: CSMA, CSMA / CD, управляющий полет, циклическая или побитовая проверка). Для CAN распределение шины согласовано исключительно между сообщениями, ожидающими передачи. Это означает, что процедура, определенная CAN, классифицируется как распределение на основе необходимости.

Еще одним средством оценки эффективности систем проверки(оценки) шины является метод доступа к шине:

• Неразрушающий доступ к шине. С помощью методов этого типа шина назначается одной и только одной станции либо немедленно, либо в течение определенного времени после одного доступа к шине (одной или несколькими станциями). Это гарантирует, что каждый доступ к шине одной или несколькими станциями приводит к однозначному распределению шины (примеры: : маркерная ячейка, передача маркера, циклическая обработка, побитовая проверка. • Разрушающее распределение шины. Одновременный доступ к шине более чем одной станцией приводит к прерыванию всех попыток передачи и, следовательно, успешное распределение шины отсутствует. Для распределения шины может потребоваться более одного доступа к шине, количество попыток до успешного распределения шины является чисто статистической величиной (примеры: CSMA / CD, Ethernet). Чтобы обрабатывать все запросы на передачу сети CAN, соблюдая ограничения времени ожидания при как можно более низкой скорости передачи данных, CAN-протокол должен реализовывать метод распределения шины, который гарантирует, что всегда имеется однозначное распределение шины, даже если есть одновременныё доступ к шине с разных станций.

Метод поразрядной проверки с использованием идентификатора сообщений, которые должны передаваться, однозначно разрешает любое столкновение между несколькими станциями, которые хотят передавать, и он делает это самое позднее в течение 13 (стандартного формата) или 33 (расширенного формата) битовых периодов для любого периода доступа к шине. В отличие от проверки по сообщениям, используемого методом CSMA / CD, этот неразрушающий метод разрешения конфликтов гарантирует, что пропускная способность шины не используется без передачи полезной информации.

Даже в ситуациях, когда шина перегружена, связь приоритета доступа к шине с содержимым сообщения оказывается полезным атрибутом системы по сравнению с существующими протоколами CSMA / CD или токенными(маркерными) протоколами: несмотря на недостаточную пропускную способность шины, все невыполненные запросы на передачу обрабатываются в порядке их важности для всей системы (как определено приоритетом сообщения).

Имеющаяся пропускная способность эффективно используется для передачи полезных данных, так как «пробелы» в распределении шины остаются очень маленькими. Падение всей системы передачи из-за перегрузки, что может произойти с протоколом CSMA / CD, невозможен при CAN. Таким образом, CAN позволяет реализовать быстрый, трафик-определенный доступ к шине, который является неразрушающим из-за побитовой проверке на основе используемого приоритета сообщения.

Неразрушающий доступ к шине можно разделить на:

• Централизованное управление доступом к шине и • Децентрализованное управление доступом к шине

В зависимости от того, присутствуют ли механизмы управления в системе только один раз (централизованный) или более одного раза (децентрализованный).

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

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

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

Эти запросы обрабатываются в порядке важности сообщений для системы в целом. Это особенно выгодно в случае перегрузки. Так как доступ к шине имеет приоритет на основе сообщений, можно гарантировать низкие индивидуальные задержки в системах реального времени.


3. Кадр сообщения для стандартного формата (CAN Specification 2.0A)

Форматы сообщений.

Протокол CAN поддерживает два формата фреймов (кадров) сообщения, единственное существенное отличие заключается в длине идентификатора (ID). В стандартном формате длина идентификатора равна 11 битам, а в расширенном формате длина равна 29 битам. Кадр сообщения для передачи по шине содержит семь основных полей.

Сообщение в стандартном формате начинается с стартового бита «начало кадра», за ним следует «поле проверки», которое содержит идентификатор и бит «RTR» (запрос удаленной передачи), который указывает, является ли это кадр с данными или кадр запроса без каких-либо байтов данных (кадр удаленного запроса).

«Поле управления» содержит бит расширения IDE (идентификатор расширения), который указывает либо стандартный формат, либо расширенный формат, бит зарезервирован для будущих расширений и — в последних 4 битах — счет байтов данных в поле данных.

«Поле данных» находится в диапазоне от 0 до 8 байтов в длину и сопровождается полем «CRC», которое используется в качестве проверки безопасности кадра для обнаружения битовых ошибок.

Поле «ACK» содержит слот ACK (1 бит) и разделитель ACK (один рецессивный бит). Бит в слоте ACK отправляется как рецессивный бит и перезаписывается в качестве доминантного бита теми приемниками, которые на этот момент времени приема данных приняли их корректно(правильно) (положительное подтверждение). Правильные сообщения подтверждаются приемниками независимо от результата приемочной проверки. Конец сообщения обозначается «конец кадра». «Перерыв» — это минимальное количество периодов битов, разделяющих последовательные сообщения. Если какой-либо станции нет следующего доступа к шине, шина остается бездействующей («bus idle»).

Обнаружение и сигнализация об ошибках.

В отличие от других систем шины CAN-протокол не использует сообщения подтверждения, а вместо этого сигнализирует о любых возникающих ошибках. Для обнаружения ошибок в протоколе CAN реализованы три механизма на уровне сообщения:

• Циклическая проверка избыточности (CRC) CRC защищает информацию в кадре путем добавления избыточных проверочных битов на конце передачи. На конце приемника эти биты повторно вычисляются и проверяются на соответствие принятым битам. Если они не согласны, произошла ошибка CRC. • Проверка кадра — этот механизм проверяет структуру передаваемого кадра, проверяя битовые поля на фиксированный формат и размер фрейма. Ошибки, обнаруженные при проверке кадров, обозначаются как «ошибки формата». • Ошибки ACK. Как уже упоминалось выше, полученные кадры подтверждаются всеми получателями посредством «положительного подтверждения». Если не получено подтверждение передатчиком сообщения (ошибка ACK), это может означать, что есть ошибка передачи, которая была обнаружена только получателями, что поле ACK было повреждено или что нет приемников.

Протокол CAN также реализует два механизма обнаружения ошибок на уровне битов.

• Мониторинг. Способность передатчика обнаруживать ошибки основана на контроле сигналов шины: каждый узел, который передает, также наблюдает за уровнем шины и, таким образом, обнаруживает различия между отправленным битом и полученным битом. Это обеспечивает надежное обнаружение всех глобальных ошибок и ошибок, локальных для передатчика. • Набивка бит — кодирование отдельных битов проверяется на уровне битов. Битовое представление, используемое CAN, — это кодирование NRZ (non-return-to-zero), которое гарантирует максимальную эффективность в кодировании битов. Края синхронизации генерируются посредством заполнения битов, то есть после пяти последовательных равных битов отправитель вставляет в поток битов бит информации с дополнительным значением, которое удаляется приемниками. Проверка кода ограничивается проверкой соблюдения правила заполнения. Если одна или несколько ошибок обнаруживаются по меньшей мере одной станцией (любой станцией) с использованием указанных выше механизмов, текущая передача прерывается отправкой «флага ошибки». Это предотвращает прием другими станциями сообщений и, таким образом, обеспечивает согласованность данных на протяжении всей сети.

После прекращения передачи ошибочного сообщения отправитель автоматически повторяет попытку передачи (автоматический запрос повторения). Может снова возникнуть конкуренция за распределение шины. Как правило, повторная передача начинается в течение 23-битных периодов после обнаружения ошибки; В особых случаях время восстановления системы составляет 31 бит.

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

Надежность данных протокола CAN:

Внедрение в автомобилях систем, связанных с безопасностью, связано с высокими требованиями к надежности передачи данных. Цель часто формулируется так, чтобы не допускать возникновения опасных ситуаций для водителя в результате обмена данными в течение всего срока службы транспортного средства.

Эта цель достигается, если надежность данных достаточно высока или вероятность остаточной ошибки достаточно низкая. В контексте данных шинных систем под надежностью понимается способность идентифицировать данные, искаженные ошибками передачи. Остаточная вероятность ошибки является статистической мерой ухудшения надежности данных: она определяет вероятность искажения данных и того, что это повреждение будет оставаться незамеченным. Вероятность остаточной ошибки должна быть настолько мала, что в среднем никакие поврежденные данные не останутся незамеченными на протяжении всего срока службы системы.


4. Вероятность остаточной ошибки как функция вероятности ошибки бита

Вычисление вероятности остаточной ошибки требует классификации ошибок и того, что весь путь передачи описывается моделью. Если мы определим вероятность остаточной ошибки CAN как функцию вероятности ошибки в битах для длин сообщений от 80 до 90 бит, для системных конфигураций, например, пяти или десяти узлов и с частотой ошибок 1/1000 (ошибка в одном сообщении из каждой тысячи), то максимальная вероятность ошибки в битах составляет приблизительно от 0,02 – до порядка 10^-13. Исходя из этого, можно рассчитать максимальное количество необнаруживаемых ошибок для данной сети CAN.

Например, если сеть CAN работает со скоростью передачи данных 1 Мбит/с, при среднем использовании пропускной способности шины 50%, при общем сроке службы 4000 часов и при средней длине сообщения 80 бит, то общее число Передаваемых сообщений составляет 9×10^10. Статистическое число необнаруженных ошибок передачи в течение срока эксплуатации, таким образом, составляет менее чем порядка 10^-2. Или, иначе говоря, с продолжительностью работы восемь часов в день на 365 дней в году и частотой ошибок каждые 0,7 с, одна необнаруженная ошибка происходит раз в тысячу лет (статистическое среднее значение).

Сообщения CAN расширенного формата

Подкомитет SAE «Грузовые автомобили и автобусы» стандартизовал сигналы и сообщения, а также протоколы передачи данных для различных скоростей передачи данных. Стало очевидно, что стандартизацию такого рода легче реализовать, когда доступно более длинное поле идентификации.

Чтобы поддержать эти усилия, протокол CAN был расширен за счет введения 29-битного идентификатора. Этот идентификатор состоит из существующего 11-битного идентификатора (базового ID) и 18-битного расширения (ID-расширения). Таким образом, протокол CAN позволяет использовать два формата сообщений: StandardCAN (Версия 2.0A) и ExtendedCAN (Версия 2.0B). Поскольку два формата должны сосуществовать на одной шине, устанавливается, какое сообщение имеет более высокий приоритет на шине в случае коллизий доступа к шине с форматами сглаживания и одним и тем же базовым идентификатором: стандартное сообщение всегда имеет приоритет над сообщением в расширенном формате.

CAN-контроллеры, которые поддерживают сообщения в расширенном формате, могут также отправлять и получать сообщения в стандартном формате. Только сообщения в стандартном формате могут передаваться по всей сети, если в этой сети используются CAN-контроллеры, которые поддерживают только стандартный формат (Версия 2.0A). Сообщения в расширенном формате будут неправильно поняты. Однако есть CAN-контроллеры, которые поддерживают только стандартный формат, но распознают сообщения в расширенном формате и игнорируют их (версия 2.0B пассивная).

Различие между стандартным форматом и расширенным форматом осуществляется с использованием бита IDE (бит расширения идентификатора), который передается как доминирующий в случае кадра в стандартном формате. Для кадров в расширенном формате это рецессивно. Бит RTR передается доминантно или рецессивно в зависимости от того, передаются ли данные или запрашивается конкретное сообщение от станции. Вместо бита RTR в стандартном формате бит SRR (замена удаленного запроса) передается для кадров с расширенным идентификатором. Бит SRR всегда передается как рецессивный, чтобы гарантировать, что в случае проверки стандартный кадр всегда имел приоритетное распределение шины к расширенному кадру, когда оба сообщения имеют одинаковый базовый идентификатор.

В отличие от стандартного формата, в расширенном формате за битом IDE следует 18-битный ID-номер, бит RTR и зарезервированный бит (r1).

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


5. Кадр сообщения для расширенного формата (CAN Specification 2.0A)

Реализации протокола CAN

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

CAN-контроллер с промежуточным буфером

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

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

Контроллеры CAN с промежуточным буфером могут перенести большую нагрузку на микроконтроллер с фильтрацией приёма, но они требуют только небольшой площади кристалла и поэтому могут быть изготовлены с меньшими затратами. В принципе, они могут принимать все объекты в сети CAN.

CAN-контроллер с хранилищем объектов.

Объекты CAN состоят в основном из трех компонентов: идентификатора, кода длины данных и фактических полезных данных.

CAN-контроллеры с хранилищем объектов (ранее называемые fullCAN) функционируют как CAN-контроллеры с промежуточными буферами, но также управляют определенными объектами. Там, где есть несколько одновременных запросов, они определяют, например, какой объект должен быть передан первым. Они также выполняют фильтрацию принятия для входящих объектов. Интерфейс к следующему микроконтроллеру соответствует ОЗУ. Данные, подлежащие передаче, записываются в соответствующую область ОЗУ, полученные данные считываются из области ОЗУ, соответственно. Микроконтроллер должен управлять только несколькими битами (например, запросом передачи).

Контроллеры CAN с хранилищем объектов рассчитаны на максимальную нагрузку от локального микроконтроллера. Однако эти CAN-контроллеры требуют большей площади кристалла и, следовательно, более дороги. В дополнение к этому, они могут администрировать только ограниченное количество чипов(микроконтроллеров).

На сегодняшний день доступны контроллеры CAN, которые сочетают в себе оба принципа реализации. Они имеют хранилище объектов, по крайней мере одно из которых спроектировано как промежуточный буфер. По этой причине больше нет смысла дифференцировать basicCAN и fullCAN.

CAN подчиненные контроллеры для функций ввода / вывода.

Также как CAN-контроллеры, которые поддерживают все функции CAN-протокола, есть CAN-чипы, для которых не требуется следующий за ним микроконтроллер. Эти CAN-чипы называются SLIO (последовательное соединение ввода / вывода). CAN-чипы являются подчиненными и должны управляться CAN-мастером(центральный, основной микроконтроллер в сети).

Физическое соединение CAN

Скорости передачи данных (до 1 Мбит / с) требуют достаточно крутого наклона импульса, который может быть реализован только с использованием силовых элементов. В принципе возможно несколько физических соединений. Тем не менее, пользователи и производители группы «CAN in Automation» рекомендуют использовать схемы драйверов в соответствии с ISO 11898.

Встроенные микросхемы драйверов в соответствии с ISO 11898 доступны от нескольких компаний (Bosch, Philips, Siliconix и Texas Instruments). Международная группа пользователей и производителей (CiA) также определяет несколько механических соединений (кабель и разъемы).


6. Physical CAN Connection according to ISO 11898

С уважением, перевод предоставлен коллективом мастерской Works-Garage.

Works-Project.ru

www.beworks.ru

Получение данных с CAN-шины автомобиля


Инновации или уже реальность?
 

Задача: Получить доступ к показаниям штатных датчиков автомобиля без установки дополнительных.
Решение: Считывание данных с CAN-шины автомобиля.

 

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

Если же необходим доступ к такой информации, как обороты двигателя, пробег,  температура охлаждающей жидкости и другим данным с бортового компьютера  – эта задача уже больше похожа на творческую.
 

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

Вопрос состоит только в том, как получить доступ к этой информации. Долгое время эта задача оставалась нерешенной. Но сейчас на рынке спутникового мониторинга работает все больше высококвалифицированных инженеров, которым все-таки под силу найти решение задачи корректного получения таких данных, как:

  • обороты двигателя;
  • уровень топлива в баке;
  • пробег автомобиля;
  • температура охлаждающей жидкости двигателя ТС;
  • и т.д.

Решение, о котором мы будем говорить в данной статье, состоит в считывании данных с CAN-шины автомобиля.
 

• Что такое CAN-шина?

 

CAN (англ. Controller Area Network — сеть контроллеров) — популярный стандарт промышленной сети, ориентированный на объединение в единую сеть различных исполнительных устройств и датчиков, широко используемый в автомобильной автоматике. На сегодняшний день практически все современные автомобили  оснащены так называемой цифровой проводкой – автомобильной CAN-шиной.


• Откуда появилась задача считывания данных с CAN-шины?

Задача считывания данных с CAN-шины появилась как следствие задачи оптимизации расходов на эксплуатацию автотранспорта.

В соответствии с типовыми запросами заказчиков, автомобили и спецтехника оснащаются системой спутникового ГЛОНАСС или GPS мониторинга и системой контроля оборота топлива (на базе погружных либо ультразвуковых датчиков уровня топлива).

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

Именно таким решением стало получение информации с CAN-шины. Ведь оно имеет целый ряд преимуществ:

1. Экономия на дополнительных устройствах

Не нужно нести значительных расходов на приобретение и установку различных датчиков и устройств.

2. Сохранение гарантии на автомобиль

Обнаружение производителем стороннего вмешательства в конструкцию либо электрику автомобиля грозит практически гарантированным снятием транспортного средства с гарантии. А это явно не входит в сферу интересов автовладельцев.

3. Получение доступа к информации со штатно установленных электронных устройств и датчиков.


В зависимости от электронной системы в автомобиле может быть штатно реализован определенный набор функций. Ко всем этим функциям, теоретически, мы можем получить доступ через CAN-шину. Это может быть пробег, уровень топлива в бензобаке, датчики открытия/закрытия дверей, температура за бортом и в салоне, обороты двигателя, скорость движения, и т.д.
 

Технические специалисты компании Скайсим выбрали для тестирования данного решения прибор Galileo Глонасс. Он имеет встроенный дешифратор FMS и может считывать информацию напрямую с CAN-шины автомобиля.
 
• Какие достоинства и недостатки влечет за собой решение со считыванием данных с CAN-шины?

Достоинства:

• Возможность работы в режиме жёсткого реального времени.
• Простота реализации и минимальные затраты на использование.
• Высокая устойчивость к помехам.
• Надёжный контроль ошибок передачи и приёма.
• Широкий диапазон скоростей работы.
• Большое распространение технологии, наличие широкого ассортимента продуктов от различных поставщиков.

Недостатки:

• Максимальная длина сети обратно пропорциональна скорости передачи.
• Большой размер служебных данных в пакете (по отношению к полезным данным).
• Отсутствие единого общепринятого стандарта на протокол высокого уровня.

Стандарт сети предоставляет широкие возможности для практически безошибочной передачи данных между узлами, оставляя разработчику возможность вложить в этот стандарт всё, что туда сможет поместиться. В этом отношении CAN-шина подобна простому электрическому проводу. Туда можно «затолкать» любой поток информации, который сможет выдержать пропускная способность шины.

Известны примеры передачи звука и изображения по шине CAN. Известен случай создания системы аварийной связи вдоль автодороги длиной несколько десятков километров (Германия). (В первом случае нужна была большая скорость передачи и небольшая длина линии, во втором случае — наоборот).
 

Изготовители, как правило, не афишируют, как именно они используют полезные байты в пакете. Поэтому FMS прибор не всегда может расшифровать данные, которые «отдает» CAN-шина. Кроме того, не все марки автомобилей имеют CAN-шину. И даже не все автомобили одной марки и модели могут выдавать одинаковую информацию.


Пример реализации решения:

Не так давно компанией Скайсим совместно с партнером был реализован большой проект по мониторингу автотранспорта. В парке были различные грузовые автомобили иностранного производства. В частности, грузовые автомобили Scania p340.

 

Для того, чтобы проанализировать процесс получения данных с CAN-шины мы, по солгасованию с заказчиком, провели соответствующие исследования на трех автомобилях Scania p340: один 2008 года выпуска, второй начала 2009 и третий конца 2009 года.


Результаты оказались следующими:

  • с первого данные получены так и не были;
  • со второго был получен только пробег;
  • с третьего были получены все интересующие данные (уровень топлива, температура охлаждающей жидкости, обороты двигателя, общий расход, общий пробег).

На рисунке отображен фрагмент сообщения из информационной системы Wialon, где:
Fuel_level – уровень топлива в баке в %;
Temp_aqua – Температура охлаждающей жидкости в градусах Цельсия;
Taho  — Данные с тахометра (об/мин).

 

Регламент реализации решения был следующий:
 

 

1.  Навигационный прибор Galileo ГЛОНАСС/GPS был подключен к CAN-шине грузовиков.
Данная модель автотрекера была выбрана из-за оптимального сочетания функционала, надежности и стоимости. Кроме того, она поддерживает FMS (Fuel Monitoring System) — систему, которая позволяет регистрировать и контролировать основные параметры использования транспортного средства, т.е. подходит для подключения к CAN-шине.

 

Схему подключения к CAN-шине со стороны прибора Galileo можно найти в руководстве пользователя.  Для подключения со стороны автомобиля необходимо, в первую очередь, найти свитую пару проводов, подходящую к диагностическому разъёму. Диагностический разъем всегда в доступности и располагается вблизи от рулевой колонки. В 16 контактном разъёме по стандарту OBD II это 6-CAN high, 14-CAN low. Обратите внимание, что у проводов High напряжение примерно 2,6-2,7В, у проводов Low оно, как правило на 0,2В меньше.

_________________________________________________________________________

 

Еще одним уникальным решением, которое было использовано для снятия данных с CAN-шины, стал бесконтактный считыватель данных CAN Crocodile (производство СП Технотон, г. Минск). Он отлично подходит для работы с приборами Galileo.


Преимущества технологии CAN Crocodile:
 

• CAN Crocodile позволяет получать данные о работе автомобиля из шины CAN без вмешательства в целостность самой шины.

• Считывание данных происходит без механического и электрического контакта с проводами.

• CAN Crocodile применяется для подключения к шине CAN систем GPS/ГЛОНАСС мониторинга, которые получают информацию о режимах работы двигателя, состоянии датчиков, наличии неисправностей и т.д.

• CAN Crocodile не нарушает изоляцию проводов CAN и «слушает» обмен по шине с помощью специального беспроводного приемника.

• Применение CAN Crocodile абсолютно безопасно для автомобиля, незаметно для работы бортового компьютера, диагностического сканера и других электронных систем. Особенно актуально применение CAN Crocodile для гарантийных автомобилей, в которых подключение каких-либо электронных устройств к шине CAN часто служит поводом для снятия с гарантии.
 


 

2. Если провода обнаружены и идентифицированы верно, можно приступать к запуску CAN-сканера в приборе Galileo.

3. Выбирается стандарт FMS, скорость для большинства автомобилей 250 000.

4. Запускается сканирование.

5. После окончания сканирования совершается переход на главную страницу конфигуратора. Если сканирование завершено успешно, мы получаем доступ к расшифрованным данным.
 

6. Если ничего, кроме «end scan» Вы не увидели, тут есть несколько вариантов. Либо было неправильно осуществлено подключение, либо автомобиль по каким-то причинам не выдает данные, либо прибору неизвестен шифр данной CAN-шины. Как уже было сказано, такое случается довольно часто, поскольку пока не существует единого стандарта для передачи данных и их обработки по CAN. К сожалению, как показывает практика, получить полные данные с CAN-шины не всегда удается.


Именно поэтому не каждый запрос на считывание данных с CAN-шины может быть в полной мере реализован. Мы рекомендуем своим партнерам-интеграторам предупреждать об этом заказчиков заранее, для того чтобы в дальнейшем избежать неоправданных ожиданий.



Но есть еще один момент, который важно затронуть.

Чаще всего основной целью клиентов является контроль уровня и расхода топлива.

  •  Даже если данные со штатных датчиков будут успешно получены с CAN-шины, какова их практическая ценность?

Дело в том, что основное назначение штатных  датчиков уровня топлива – дать оценку с той степенью точности, которая кажется правильной производителю ТС. Эта точность не может быть ставнима с точностью, которую дает погружной датчик уровня топлива (ДУТ) производства Омникомм или, например, Технотон.

Одна из главных задач, которую решает штатный ДУТ, это чтобы топливо внезапно не закончилось, и водитель понимал общую ситуацию с уровнем топлива в баке. От простого по своему устройству штатного поплавкового датчика сложно ожидать большой точности. Кроме того, бывают случаи, когда штатный датчик искажает данные (например, когда транспорт располагается на склоне).
 

Выводы


По ряду вышеназванных причин, мы рекомендуем не полагаться полносьтю на показания штатных датчиков уровня топлива, а рассматривать каждую ситуацию индивидуально. Как правило, подходящее решение может быть найдено только совместно с техническими специалистами. У разных производителей ТС разная точность показаний. У всех заказчиков также разные задачи. И только под конкретную задачу целесообразно подбирать средства решения. Кому-то вполне подойдет решение с получением данных с CAN-шины, так как оно в разы дешевле и не требует никаких изменений топливной системы ТС. А вот заказчикам с высокими требованиями по точности разумно рассматривать вариант с погружным ДУТом.

 

skysim.ru

общее описание и основные параметры, виды и форматы сообщений в can.

Интерфейс CAN был разработан в конце 80-х годов фирмой Bosch для связи электронных устройств, применяемых в автомобилях.

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

На практике, согласно стандарту шина CAN обычно представляет собой витую пару, по которой передаются сигналы дифференциальным методом.

На рис. приведена структура CAN-сети. Обычно в качестве контроллера используется микроконтроллер, имеющий CAN-модуль, который имеет выход передатчика TxD последовательного кода и вход приемника RxD кода. Трансивер преобразует логические сигналы, то есть логические 0 и 1, в дифференциальное напряжение, поступающее на два провода шины, обозначенные CAN_H и CAN_L.

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

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

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

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

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

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

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

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

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

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

4) кадр перегрузки, передается для задержки передачи пакетов кадр данных и кадр запроса, например, при неготовности приемника.

Вид стандартного формата сообщения кадр данных приведен на рис. Он состоит из семи различных битовых полей:

  • Поле начала кадра состоит из одного доминантного бита, который служит также для синхронизации генераторов приемников и передатчика.

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

  • Управляющее поле состоит из шести битов. Два самых старших бита в настоящее время не используются. Четырехбитный код длины данных указывает число байтов в поле данных.

  • Поле данных содержит от нуля до восьми байтов данных.

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

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

  • Поле конца кадра состоит из семи битов рецессивного уровня.

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

studfiles.net

CAN шина. Часть 2

Валюта магазина рублиу.е.

04.02.2014


Количество узлов
CAN не требуется физическая адресация и номер узла. Это является важным свойством CAN, так как модули не должны иметь сведений о системе, в которой функционируют. Но во время конфигурирования системы и во время технического обслуживания сети, специфические узлы должны быть адресованы. Для этих целей, по крайней мере, один CAN приоритет/идентификатор должен быть зарезервирован и каждому модулю присвоен номер узла. CAN Kingdom, DeviceNet и SDS используют подобную технологию.


Некоторые способы присвоения номера узла:
DIP переключатель.
o Свойства: Повышенная возможность возникновения ошибок допущенных человеком, и ошибок по причине неисправностей соединения. Обычно отсутствуют ошибки, которые возможно проверить чексуммой. Зачастую переключатель должен быть изолирован от окружающей среды, поэтому требуется использование отвертки или подобного инструмента для доступа к переключателю. Установки открытого переключателя могут быть случайно изменены.
o Рекомендации: Номер узла должен быть доступен без применения, какого либо сервисного инструмента.


Кодирование контактами разъема.
o Свойства: Повышенная возможность возникновения ошибок допущенных человеком, и ошибок по причине неисправностей соединения. Обычно отсутствуют ошибки, которые возможно проверить чексуммой. Установки разъема могут быть доступны или в открытом состоянии. либо посредством смотрового окна в корпусе. Требует документации по изменению установок разъема. Ограниченное количество комбинаций. Высокая стоимость контактов разъема.
o рекомендации: Номер узла должен быть доступен без применения, какого либо сервисного инструмента.


Хранение во внутренней памяти.
o Свойства: Номер узла должен быть установлен в модуль до подключения к системе.
o Рекомендации: Обычно номер узла сохраняется с чексуммой в энергонезависимой памяти. Низкая стоимость и наличие нескольких бит памяти. В памяти так же можно сохранить дополнительную информацию. Такой способ более защищен от сбоев и ошибок в отличие от контактов и переключателей.


Хранение номера в памяти разъема.
o Свойства: Отсутствие в продаже разъемов со встроенной памятью. Потребуются дополнительные контакты для считывания информации из памяти.
o Рекомендации: Тоже, что для внутренней памяти. Если номер узла сохраняется и в памяти разъема и в энергонезависимой внутренней памяти, достигается высокий уровень защиты от замены и перемещения модулей. Не требуется применение сервисных инструментов.
Ни в одном из HLP протоколов не специфицирован метод установки номера узла. SDS и DeviceNet описывают применение переключателей с применением каких либо разновидностей инструментов.


Скорость обмена данными
В CAN сети важно чтобы все модули были установлены для обмена данными на одной скорости. Следующим, после короткого замыкания CAN шины, наипростейшим способом разрушить коммуникации является установка модуля с некорректной или очень низкой скоростью обмена данными. Обычные последствия заключаются в том, что остальные модули отключаются. CAN Kingdom и DeviceNet рекомендуют различные способы, чтобы избежать подобные последствия.
SDS описывает рекомендованную методику автоматической настройки скорости обмена данными. Скорость обмена устанавливается главным устройством, которому присвоен наименьший адрес. Другие модули проверяют своевременность обмена по шине и устанавливают собственную скорость соответственно. Рекомендованные значения 125к, 250к, 500к и 1 М.
DeviceNet определяет три значения скорости 125к, 250к и 500к, но не обеспечивает защиту от сбоев установки скорости обмена данными. Если не определено, некоторые DeviceNet устройства используют автоматическую настройку скорости.
CAN Kingdom не определяет скорость обмена или автоматическую настройку. Модуль после включения питания в течение первых 200 ms должен «слушать» пассив на скорости 125 kbit с фиксированными и определенными установками. Во время этой процедуры неправильно настроенный модуль может быть всегда доступен при таких условиях. Пассивная коммуникация означает, что модуль только «слушает» CAN сеть, но не предоставляется возможность передачи доминантных битов по шине.


Использование приоритета
Приоритет доступа к CAN шине дается первыми 11 или 29 битами сообщения, и называется «Поле идентификатора» или более корректное название «Поле приоритета». 11 бит ID называется Standard ID и 29 бит Extended ID. SDS и DeviceNet используют Std. IDs. CAN Kingdom использует и Std и Ext. IDs.
SDS позволяет подключение 125 модулей к сети, и каждому модулю присваивается набор IDs относительно каждого номера узла.


Приложения
И SDS и Device Net определяют профили, для большого количества различных устройств, включая поведение и структуру данных принимающих и передающих модулей. Необходимо что бы модуль, не принадлежащий системе, соответствовал протоколу системы.
В CAN Kingdom всегда присутствует модуль, который отвечает за систему, по крайней мере, при запуске системы первый раз. Определяется возможности модуля приспосабливаться к конкретным условиям, т. е. профилированием системных данных, таких как скорость обмена, номер узла и приоритеты.

Сравнительная таблица HLP протоколов of SDS, DeviceNet и CAN Kingdom.

Скорость передачи данных

 

SDSDeviceNetCAN Kingdom
Возможная скорость передачи данных125k, 250k, 500k, 1M125k, 250k, 500kЛюбая, при обслуживании 125k
Защита от устройств с некорректной скоростью передачиДаНетДа
Автоматическая настройка скоростиДа, специфицированаВозможно,но не специфицированоВозможно, но не специфицировано
Возможность изменения протоколом HLPНет. Только автоматическая настройкаДа. Нет, если установлен переключательДа

 

Количество узлов

SDSDeviceNetCAN Kingdom
Возможное количество устройств0-125
0-63(0) 1-255
Рекомендованное количество устройств12563Не определено. Устанавливается в сервисном режиме или определяется коннектором
Защита от дублирования номеровНет/ Да HLP поддерживает проверку контролирующим устройствомДа с помощью Duplicate MAC ID CheckНет/ Да HLP поддерживает проверку главным контроллером
Возможность изменения протоколом HLPДаДа. Нет если установлен переключательДа

 

Базовые данные приоритетов и идентификаторов

SDSDeviceNetCAN Kingdom
Приоритеты присваемые модулю при запуске8 + (8)31 + (63)0/1 + (2)
Приоритеты открытые для общего пользованияНет26 для каждого модуляЛюбые, которые еще не используются
CAN Запрос дистанционной передачиНетНетДа
Extended CANНетНетДа
Системный контроль приоритетовНет, предоставляется выбором номера узла3 группы содержат 16, 5 и 5 данных приоритетов из которых можно выбратьДа, Определятеся дизайном системы
Свободные приоритетыНетНетВсе
Старт с предопределенными установкамиФиксированы HLP, всегда предопределенныНе поддерживается HLP. Каждый модуль свободно оперирует присвоенными 27 приоретатами/IDsKing может отдать команду с установками из энергонезависимой памяти
Автоматический запуск при включении питанияДа, после автоматической настройки скорости обменаКаждый модуль свободно оперирует присвоенными 27 приоретатами/IDsДа, если предварительно разрешено King
Предопределенный приоритет/IDs при запуске и зарезервированные для модуляПри запуске:
8Tx, 8 Rx
От основного устройства:
N*8-N*8+7
К основному устройству:
1024+
N*8-N*8+7
При запуске:2 Tx, 3 Rx
Grp1:N+M*64
M=0-15Grp2:N*8+1024+M M=0-7
Grp3:N+1536+M*64M=0-6
При запуске: Во время первых 200 ms: 0 Tx, 2Rx0 and 2031.
Далее любой номер предварительно установленный главным узлом.

N= Номер узла, где N любой номер узла используемый модулем в системе
M= ID сообщения определенный в DeviceNet спецификации


Управление системой

SDSDeviceNetCAN Kingdom
Восстановление исходных настроек модуляНетДа, в период установленной связиДа
Организация модуля в группуДа, 1 группаНетДа, 255 минус количество модулей в системе
Установка CAN маски приемаНетНетДа

 

Результаты

SDS
• Компактный и эффективный способ соединить небольшие устройства к основному контроллеру
• Главное устройство имеет полный контроль над остальными модулями
• Отсутствует поддержка соединения между модулями без основного PLC
• Поддерживается только Std. CAN


DeviceNet
• Открытая система где каждый модуль является локально главным
• Разработчик системы не имеет возможности контроля над модулями
• Поддержка модели производительности и потребления при передаче от модуля к модулю
• Ограниченное количество 27 свободно используемых приоритетов в одном модуле
• Компактное ядро в предопределенной коммуникационной установке главный/подчиненный
• Поддерживается только Std. CAN

 

CAN Kingdom
• Разработчик системы имеет полный контроль над всеми модулями посредством главного контроллера
• Поддержка модели производительности и потребления при передаче от модуля к модулю
• Возможности контроля в режиме реального времени за состоянием CAN шины
• Полная утилизация функции приоритета в CAN протоколе
• Любое количество приоритетов может быть включено в модуль
• Поддержка формирования преобразования структуры данных в HLP
• Компактное ядро, обычно 500-1500 byte кода и 24-48 byte RAM
• Поддерживается только Std. CAN


Порядок физического слоя CAN


CAN шина
CAN шина использует NRZ (Non-Return To Zero) с bit-stuffing. Применяется два состояния сигнала: доминантный (логический 0) и рецессивный (логическая 1).

Максимальная скорость шины
Максимальная скорость CAN шины, соответственно стандарту 1Mbit/second. Некоторые CAN контроллеры могут быть приспособлены для специальных приложений, и не поддерживают скорость выше 1 Mbit/s.Низкоскоростная шина ISO 11898-3 до 125 Kbit/s.Однопроводная шина функционирует на скорости около 50 Kbit/s в стандартном режиме, и использует высокоскоростной режим при программировании контроллера, до 100 Kbit/s.
Минимальная скорость шины
Некоторые приемопередатчики не позволяют использование скорости ниже определенной. Например: применяя 82С250 или 82С251 возможно свободно снизить скорость до 10 kbit/s, но если применить TJA1050 не представляется возможным понизить скорость менее 50 kbit/s.
Максимальная длинна кабеля.
При скорости 1 Mbit/s, максимальная протяженность около 40 метров. Потому что арбитражная схема требует, чтобы фронтальная волна сигнала могла достигнуть удаленные устройства и вернуться обратно, прежде чем будут переданы данные.
Приближенная протяженность
• 100 метров (330 ft) при 500 kbit/s
• 200 метров (650 ft) при 250 kbit/s
• 500 метров (1600 ft) при 125 kbit/s
• 6 километров (20000 ft) при 10 kbit/s


Соединение шины
CAN шина ISO 11898 должна быть соединена. Реализуется включением резистора 120 Ом на каждой оконеченности шины.
Причины:
1. Исключение отражения сигнала на конце шины.
2. Подтвержение корректного DC уровня.
Соединительный кабель
ISO 118898 использует кабель сопротивлением 120 Ом, допустимы отклонения в интервале 108…132 Ом. ISO 11898 определяет витую пару, экранированную или неэкранированную. Ведутся работы над стандартом SAE J2411, который использует однопроводную схему.

CAN разъемы
Не существует стандарта для CAN разъемов. Обычно это определяется HLP протоколом. Ниже приведены распространенные соединительные разъемы:
• 9-pin DSUB, продвигается CiA.
• 5-pin Mini-C и/или Micro-C, используется DeviceNet и SDS.
• 6-pin Deutch разъем, продвигается CANHUG для мобильной гидравлики.


3. OBD -II
Системы бортовой диагностики применяются на большинстве легковых и легких грузовых автомобилях. В 70 и начале 80 производители автомобилей начинают использовать функции электронного управления двигателем и диагностику неисправностей двигателя. Это мероприятия призваны достигнуть соответствия требованиям EPA по выбросам. OBD-II новый стандарт введенный в середине 90, обеспечивает почти полное управление двигателем, а так же частично шасси, кузовом и дополнительным оборудованием, с поддержкой диагностических функций сети управления автомобилем.
Предыстория
Для решения проблем выбросов в США в штате Калифорния были установлены требования по применению систем управления выбросами на автомобилях 1966 модельного года. И с 1968 года распространены по всей территории США.
Конгресс принял the Clean Air Act в 1970 году, и затем было основано EPA (Environmental Protection Agency) Агентство по охране окружающей среды. Началась серия поэтапных стандартов по выбросам и требованиям к обслуживанию автомобилей. Для соответствия стандартам, производители обратились к применению электронных систем контроля подачей топлива и систем зажигания. По данным от различных датчиков режимы работы двигателя регулируются с учетом минимального загрязнения. Датчики были так же доступны для проведения диагностики на первичном этапе.
Первоначально существовало небольшое количество стандартов, и каждый производитель применял собственные системы и сигналы. В 1988 году SAE установило стандарт соединительного разъема для приема диагностических сигналов. EPA привело большинство стандартов в соответствие с SAE программами для бортовой диагностики и рекомендациям. OBD-II расширенный пакет стандартов и условий разработанных SAE и принятых EPA и CARB (California Air Resources Board) для выполнения с 1 января 1996 года.

Применение OBD-II
Агентство по охране окружающей среды обусловило снижение выбросов легковыми и грузовыми автомобилями. Для соответствия стандартам, производители начали выпуск автомобилей соответствующих новым условиям выбросов. OBD-II предоставляет универсальный метод диагностики для проверки соответствия OEM стандартам.
Все автомобили, выпущенные после 1 января 1996 года, оборудованы OBD-II системами. Некоторые производители начали применение OBD-II на многих моделях с 1994 года, но не все.
Существуют три основных OBD-II протокола, с небольшими различиями систем, в способах соединения бортовых диагностических устройств и диагностических устройств и инструментов. С начала производства были внесены незначительные изменения. В настоящее время Chrysler, все Европейские и большинство Азиатских импортеров используют ISO 9141. GM и легкие грузовики используют SAE J1850 VPW (Variable Pulse Width Modulation), и Ford SAE J1850 PWM (Pulse Width Modulation) коммуникационные приложения.
Можно определить какой протокол использует автомобиль, по коммутации разъема. Если разъем имеет контакт в №7 и отсутствуют контакты №2 и №10, тогда автомобиль оборудован по ISO 9141 протоколу. Если нет контакта в №7, тогда применяется SAE протокол, Если используются контакты №7 и №2 и/или №10, автомобиль может использовать ISO протокол. Все три OBD-II протокола, используют набор команд согласно SAE J1979 стандарту.


Диагностический разъем OBD-II
Автомобили, выпущенные до введения OBD-II, имеют разъемы в различных местах под приборной панелью. Все OBD-II имеют разъемы, расположены в местах, досягаемых с места водителя. Кабель от диагностического инструмента подключается в OBD-II J1962 разъем. Существуют различные виды диагностических инструментов от сканеров и карманных компьютеров для считывания кодов ошибок до сложных диагностических устройств и компьютеров.


Индикатор наличия неисправностей
На многих автомобилях применяется индикатор наличия неисправности «Check Engine light» или MIL Индикатор наличия неисправности. Индикатор может представлять три типа сигналов. Мгновенная индикация указывает на незначительный характер неисправности. Если остается включенным, неисправность имеет опасный характер, который может отразиться на состоянии выбросов или безопасности. Постоянно переменяющийся сигнал индикатора, является признаком серьезной неисправности, которая может стать причиной значительного повреждения, и требует немедленной остановки двигателя. Во всех случаях a «freeze frame» данные всех датчиков записываются в память центрального компьютера автомобиля.
Ели имеются критические неисправности, MIL индикатор будет включен постоянно при каждом включении двигателя, до устранения неисправности и установки MIL в исходное состояние. Ошибки переменного характера будут отражаться MIL моментальным включением, до обнаружения и устранения неисправности. Данные, записанные в центральном компьютере автомобиля, будут источником ценной диагностической информации, в некоторых случаях, если неисправность прекратит появление, freeze frame данные будут удалены из памяти.
Оборудование и инструменты для диагностики
По причине высоких затрат на диагностическое оборудование, в большинстве ремонтных мастерских требуют оплату услуг по диагностике, иногда несколько завышенную, за подключение диагностического оборудования для считывания кодов неисправностей системы и сигналов OBD-II. В настоящее время доступно большое количество различных сканнеров с невысокой стоимостью, что предоставляет возможность владельцу автомобиля обнаружить и устранить неисправности собственными силами. Сканеры действительно мощный инструмент, позволяющий с применением соответствующего программного обеспечения, установить быстро и устойчиво связь с бортовым устройством, и автоматически получить информацию. Возможно так же подключившись к диагностическому разъему, получать данные во время движения автомобиля. Подключение к ноутбуку или настольному компьютеру предоставляет возможность использовать дополнительную память и получать и обрабатывать информацию с использованием различных графических приложений.


Диагностирование различных систем автомобиля
Данные от других устройств и датчиков автомобиля, которые не являются частью OBD-II стандарта, возможно получить с использованием различных дилерских автосканеров, которые так же подключаются к OBD-II разъему. Например: данные датчика детонации, напряжение зажигания, пропуски зажигания в цилиндре, состояние ABS и др. Насчитывается более 300 различных источников данных, в зависимости от изготовителя и модели автомобили. Некоторые сканеры отражают только OBD и OBD-II сигналы, другие предоставляют расширенные возможности и по другим системам автомобиля.

 

Читать далее


← все новости

s-tool.ru

Введение в протокол CAN | CAN — технологии

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

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

Рис. 1. Топология сети CAN.

CAN контроллеры соединяются с помощью дифференциальной шины, которая имеет две линии — CAN_H (can-high) и CAN_L (can-low), по которым передаются сигналы. Логический ноль регистрируется, когда на линии CAN_H сигнал выше, чем на линии CAN_L. Логическая единица — в случае когда сигналы CAN_H и CAN_L одинаковы (отличаются менее чем на 0.5 В). Использование такой дифференциальной схемы передачи делает возможным работу CAN сети в очень сложных внешних условиях. Логический ноль — называется доминантным битом, а логическая единица — рецессивным. Эти названия отражают приоритет логической единицы и нуля на шине CAN. При одновременной передаче в шину лог. нуля и единицы, на шине будет зарегестрирован только логический ноль (доминантный сигнал), а логическая единица будет подавлена (рецессивный сигнал).

Типы сообщений сети CAN.

Данные в CAN передаются короткими сообщениями-кадрами стандартного формата. В CAN существуют четыре типа сообщений:

  • Data Frame
  • Remote Frame
  • Error Frame
  • Overload Frame

Data Frame — это наиболее часто используемый тип сообщения. Он состоит из следующих основных частей:

  • поле арбитража (arbitration field) определяет приоритет сообщения в случае, когда два или более узлов одновременно пытаются передать данные в сеть. Поле арбитража состоит в свою очередь из:
    • для стандарта CAN-2.0A, 11-битного идентификатора + 1 бит RTR (retransmit)
    • для стандарта CAN-2.0B, 29-битного идентификатора + 1 бит RTR (retransmit)

    Следует отметить, что поле идентификатора, несмотря на свое название никак не идентифицирует само по себе ни узел в сети, ни содержимое поля данных. Для Data кадра бит RTR всегда выставлен в логический ноль (доминантный сигнал).

  • поле данных (data field) содержит от 0 до 8 байт данных
  • поле CRC (CRC field) содержит 15-битную контрольную сумму сообщения, которая используется для обнаружения ошибок
  • слот подтверждения (Acknowledgement Slot) (1 бит), каждый CAN-контроллер, который правильно принял сообщение посылает бит подтверждения в сеть. Узел, который послал сообщение слушает этот бит, и в случае если подтверждение не пришло, повторяет передачу. В случае приема слота подтверждения передающий узел может быть уверен лишь в том, что хотя бы один из узлов в сети правльно принял его сообщение.
Рис. 2. Data frame стандарта CAN 2.0A.

 

Remote Frame — это Data Frame без поля данных и с выставленным битом RTR (1 — рецессивные бит). Основное предназначение Remote кадра — это инициация одним из узлов сети передачи в сеть данных другим узлом. Такая схема позволяет уменьшить суммарный трафик сети. Однако, на практике Remote Frame сейчас используется редко (например, в DeviceNet Remote Frame вовсе не используется).

Error Frame — это сообщение которое явно нарушает формат солобщения CAN. Передача такого сообщения приводит к тому, что все узлы сети регистрируют ошибку формата CAN-кадра, и в свою очередь автоматически передают в сеть Error Frame. Результатом этого процесса является автоматическая повторная передача данных в сеть передающим узлом. Error Frame состоит из поля Error Flag, которое состоит из 6 бит одинакового значения (и таким образом Error frame нарушает проверку Bit Stuffing, см. ниже), и поля Error Delimiter, состоящее из 8 рецессивных битов. Error Delimiter дает возможность другим узлам сети обнаружив Error Frame послать в сеть свой Error Flag.

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

Контроль доступа к среде передачи (побитовый арбитраж).

Поле арбитража CAN-кадра используется в CAN для разрешения коллизий доступа к шине методом не деструктивного арбитража. Суть метода не деструктивного арбитража заключается в следующем. В случае, когда несколько контроллеров начинают одновременную передачу CAN кадра в сеть, каждый из них сравнивает, бит, который собирается передать на шину с битом, который пытается передать на шину конкурирующий контроллер. Если значения этих битов равны, оба контроллера передают следующий бит. И так происходит до тех пор, пока значения передаваемых битов не окажутся различными. Теперь контроллер, который передавал логический ноль (более приоритетный сигнал) будет продолжать передачу, а другой (другие) контроллер прервёт свою передачу до того времени, пока шина вновь не освободится. Конечно, если шина в данный момент занята, то контроллер не начнет передачу до момента её освобождения.

Рис. 3. Побитовый арбитраж на шине CAN.

 

Методы обнаружения ошибок.

CAN протокол определяет пять способов обнаружения ошибок в сети:

  • Bit monitoring
  • Bit stuffing
  • Frame check
  • ACKnowledgement Check
  • CRC Check

 

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

Bit stuffing — когда узел передает последовательно в шину 5 бит с одинаковым значением, то он добавляет шестой бит с противоположным значением. Принимающие узлы этот дополнительный бит удаляют. Если узел обнаруживает на шине больше 5 последовательных бит с одинаковым значением, то он генерирует ошибку Stuff Error.

Frame Check — некоторые части CAN-сообщения имеют одинаковое значение во всех типах сообщений. Т.е. протокол CAN точно определяет какие уровни напряжения и когда должны появляться на шине. Если формат сообщений нарушается, то узлы генерируют ошибку Form Error.

ACKnowledgement Check — каждый узел получив правильное сообщение по сети посылает в сеть доминантный (0) бит. Если же этого не происходит, то передающий узел регистрирует ошибку Acknowledgement Error.

CRC Check — каждое сообщение CAN содержит CRC сумму, и каждый принимающий узел подсчитывает значение CRC для каждого полученного сообщения. Если подсчитанное значение CRC суммы, не совпадает со значением CRC в теле сообщения, принимающий узел генерирует ошибку CRC Error.

Механизм ограничения ошибок (Error confinement).

Каждый узел сети CAN, во время работы пытается обнаружить одну из пяти возможных ошибок. Если ошибка обнаружена, узел передает в сеть Error Frame, разрушая тем самым весь текущий трафик сети (передачу и прием текущего сообщения). Все остальные узлы обнаруживают Error Frame и принимают соответствующие действия (сбрасывают принятое сообщение). Кроме того, каждый узел ведет два счетчика ошибок: Transmit Error Counter (счетчик ошибок передачи) и Receive Error Counter (счетчик ошибок приема). Эти счетчики увеличиваются или уменьшаются в соответствие с несколькими правилами. Сами правила управления счетчиками ошибок достаточно сложны, но сводятся к простому принципу, ошибка передачи приводит к увеличению Transmit Error счетчика на 8, ошибка приема увеличивает счетчик Receive Error на 1, любая корректная передача/прием сообщения уменшают соответствующий счетчик на 1. Эти правила приводят к тому, что счетчик ошибок передачи передающего узла увеличивается быстрее, чем счетчик ошибок приема принимающих узлов. Это правило соответствует предположению о большой вероятности того, что источником ошибок является передающий узел.

Каждый узел CAN сети может находится в одном из трех состояний. Когда узел стартует он находится в состоянии Error Active. Когда, значение хотя бы одного из двух счетчиков ошибок превышает предел 127, узел переходит в состояние Error Passive. Когда значение хотя бы одного из двух счетчиков превышает предел 255, узел переходит в состояние Bus Off.

Узел находящийся в состоянии Error Active в случае обнаружения ошибки на шине передает в сеть Active Error Flags. Active Error Flags сотстоит из 6 доминантных бит, поэтому все узлы его регистрируют. Узел в состоянии Passive Error передает в сеть Passive Error Flags при обнаружении ошибки в сети. Passive Error Flags состоит из 6 рецессивных бит, поэтому остальные узлы сети его не замечают, и Passive Error Flags лишь приводит к увеличению Error счетчика узла. Узел в состоянии Bus Off ничего не передает в сеть (не только Error кадры, но вообще никакие другие).

Адресация и протоколы высокого уровня

В CAN не существует явной адресации сообщений и узлов. Протокол CAN нигде не указывает что поле арбитража (Identification field + RTR) должно использоваться как идентификатор сообщения или узла. Таким образом, идентификаторы сообщений и адреса узлов могут находится в любом поле сообщения (в поле арбитража или в поле данных, или присутствовать и там, и там). Точно также протокол не запрещает использовать поле арбитража для передачи данных.

Утилизация поля арбитража и поля данных, и распределение адресов узлов, идентификаторов сообщений и приоритетов в сети является предметом рассмотрений так называемых протоколов высокого уровня (HLP — Higher Layer Protocols). Название HLP отражает тот факт, что протокол CAN описывает только два нижних уровня эталонной сетевой модели ISO/OSI, а остальные уровни описываются протоколами HLP.

Рис. 4. Логическая структура протокола CAN.

Существует множество таких высокоуровневых протоколов. Наиболее распространенные из них это:

  • DeviceNet
  • CAL/CANopen
  • SDS
  • CanKingdom

 

Физичекий уровень протокола CAN

Физический уровень (Physical Layer) протокола CAN определяет сопротивление кабеля, уровень электрических сигналов в сети и т.п. Существует несколько физических уровней протокола CAN (ISO 11898, ISO 11519, SAE J2411).

В подавляющем большинстве случаев используется физический уровень CAN определенный в стандарте ISO 11898. ISO 11898 в качестве среды передачи определяет двухпроводную дифференциальную линию с импедансом (терминаторы) 120 Ом (допускается колебание импеданса в пределах от 108 Ом до 132 Ом. Физический уровень CAN реализован в специальных чипах — CAN приемо-передатчиках (transceivers), которые преобразуют обычные TTL уровни сигналов используемых CAN-контроллерами в уровни сигналов на шине CAN. Наиболее распространенный CAN приемо-передатчик — Phillips 82C250, который полностью соответствует стандарту ISO 11898.

Махимальная скорость сети CAN в соответствие с протоколом равна 1 Mbit/sec. При скорости в 1 Mbit/sec максимальная длина кабеля равна примерно 40 метрам. Ограничение на длину кабеля связано с конечной скоростью света и механизмом побитового арбитража (во время арбитража все узлы сети должны получать текущий бит передачи одновременно, те сигнал должен успеть распространится по всему кабелю за единичный отсчет времени в сети. Соотношение между скоростью передачи и максимальной длиной кабеля приведено в таблице:

скорость передачимаксимальная длина сети
1000 Кбит/сек40 метров
500 Кбит/сек100 метров
250 Кбит/сек200 метров
125 Кбит/сек500 метров
10 Кбит/сек6 километров

 

Разъемы для сети CAN до сих пор НЕ СТАНДАРТИЗОВАНЫ. Каждый протокол высокого уровня обычно определяет свой тип разъемов для CAN-сети.

can.marathon.ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *