Введение
Многие сетевые протоколы описываются с помощью семиуровневой модели взаимодействия открытых систем OSI (Open System Interconnection), как показано на Рис. 1. Протокол CAN (Controller Area Network - контроллерная локальная сеть) определяет канальный уровень (Data Link Layer) и часть физического уровня (Physical Layer).
Оставшаяся часть физического уровня и все остальные вышележащие уровни
не входят в спецификацию CAN и могут либо определяться разработчиком
системы, либо реализовываться с помощью существующих высокоуровневых
протоколов (Higher Layer Protocols - HLPs) и физических уровней.
Как сказано выше, канальный уровень определяется спецификацией CAN. Подуровень управления логической связью (Logical Link Control - LLC)
обеспечивает управление перегрузкой и уведомление о ней, фильтрацию
сообщений и функции управления восстановлением. Подуровень управления
доступом к среде (Medium Access Control - MAC) выполняет
инкапсуляцию/декапсуляцию (расформирование) данных, обнаружение ошибок и
защиту от них, битстаффинг/дестаффинг (битовое наполнение/удаление
наполняющего бита), функции преобразования в последовательную форму и
обратно.
Подуровни соединения с физической средой (Physical Medium Attachment - PMA) и среда-зависимого интерфейса (Medium Dependent Interface - MDI) - две части физического уровня, не определённые в CAN. Подуровень физической сигнализации (Physical Signaling - PS),
наоборот, определён в спецификации CAN. Разработчик может выбрать любой
драйвер/приёмник и среду передачи, если они соответствуют требованиям
PS-подуровня.
Международная организация по стандартизации (International Standards Organization - ISO)
определила стандарт, который включает спецификацию CAN в качестве
физического уровня. Стандарт ISO-11898 изначально был создан для
высокоскоростной связи в транспортных средствах, использующей CAN.
ISO-11898 определяет физический уровень для обеспечения совместимости
между приёмопередатчиками CAN.
Контроллер CAN обычно реализует всю спецификацию CAN аппаратно, как показано на Рис. 1.
PMA-подуровень не определяется CAN, однако, он определён в ISO-11898.
Данный пример применения рассматривает приёмопередатчик CAN MCP2551 и
то, насколько он удовлетворяет требованиям спецификации ISO-11898.
Рис. 1. CAN и модель OSI
Краткий обзор ISO11898-2
ISO11898 - международный стандарт для высокоскоростной связи CAN,
применяемой в транспортных средствах. ISO-11898-2 определяет PMA и MDI
подуровни физического уровня. Общее представления узлов и шины CAN,
описанное в ISO-11898 приведено на Рис. 3.
Уровни шины
CAN определяет два логических состояния: рецессивное (recessive) и доминантное (dominant).
ISO-11898 определяет дифференциальное напряжение для представления
рецессивного и доминантного состояний (или битов), как показано на Рис. 2.
В рецессивном состоянии (то есть логическая "1" на входе TXD
MCP2551) дифференциальное напряжение на CANH и CANL меньше минимального
порог (<0.5 В на входе приёмника или <1.5 В выходе передатчика)
(см. Рис. 4).
В доминантном состоянии (то есть логический "0" на входе TXD
MCP2551) дифференциальное напряжение на CANH и CANL больше минимального
порога. Доминантный бит перекрывает рецессивный бит на шине для
достижения неразрушающего поразрядного арбитража.
Рис. 2. Дифференциальная шина
Разъёмы и провода
В ISO-11898-2 не определены механические провода и разъёмы. Однако
спецификация требует, чтобы провода и разъёмы соответствовали
электротехническим требованиям.
Спецификация также требует наличие резисторов-терминаторов номиналом 120 Ом на каждом конце шины. На Рис. 3 показан пример шины CAN, основанной на ISO-11898.
Рис. 3. Шина CAN
Рис. 4. Номинальные уровни шины по ISO-11898
Помехоустойчивость
Спецификация ISO11898-2 требует, чтобы приёмопередатчик,
соответствующий спецификации или совместимый с ней, соответствовал ряду
электротехнических требований. Некоторые из этих требований
предусмотрены, чтобы гарантировать, что приёмопередатчик сможет
выдержать жёсткие электрические условия, таким образом защищая узел CAN.
Входы приёмопередатчика должны выдерживать напряжение от -3 В до +32 В и
кратковременное воздействие напряжения от -150 В до +100 В. Таблица 1 показывает главные электрические требования ISO11898-2 в сравнении со спецификацией MCP2551.
Таблица 1. Сравнение спецификаций MCP2551 и ISO11898-2.
Параметр | ISO-11898-4 | MCP2551 | Единица измерения | Комментарии |
минимум | максимум | минимум | максимум |
Постоянное напряжение на CANH и CANL | -3 | +32 | -40 | +40 | В | Превышает ISO-11898 |
Кратковременное воздействие напряжений на CANH и CANL | -150 | +100 | -250 | +250 | В | Превышает ISO-11898 |
Напряжение синфазного сигнала шины | -2.0 | +7.0 | -12 | +12 | В | Превышает ISO-11898 |
Выходное напряжение шины в рецессивном состоянии | +2.0 | +3.0 | +2.0 | +3.0 | В | Соответствует ISO-11898 |
Дифференциальное выходное напряжение рецессивного состояния | -500 | +50 | -500 | +50 | мВ | Соответствует ISO-11898 |
Внутреннее сопротивление | 10 | 100 | 20 | 100 | кОм | Соответствует ISO-11898 |
Входное сопротивление | 5.0 | 50 | 5.0 | 50 | кОм | Соответствует ISO-11898 |
Дифференциальное выходное напряжение доминантного состояния | +1.5 | +3.0 | +1.5 | +3.0 | В | Соответствует ISO-11898 |
Выходное напряжение доминантного состояния на CANH | +2.75 | +4.50 | +2.75 | +4.50 | В | Соответствует ISO-11898 |
Выходное напряжение доминантного состояния на CANL | +0.50 | +2.25 | +0.50 | +2.25 | В | Соответствует ISO-11898 |
Обнаружение постоянного доминанта (драйвер) | Не требуется | 1.25 | - | мс | |
Сброс при включении питания (POR) и обнаружение кратковременного падения напряжения (BOD) | Не требуется | Да | - | |
Длина шины
ISO11898 определяет, что приёмопередатчик должен быть способен
управлять шиной длиной 40 м на скорости 1 Мбит/с. Большая длина шины
достигается при уменьшении скорости передачи данных. Самое большое
ограничение на длину шины накладывает задержка распространения
приёмопередатчика.
Задержка распространения
Протокол CAN определяет рецессивное (логическая "1") и доминантное
(логический "0") состояния для реализации схемы поразрядного
неразрушающего арбитража. Именно на эту методологию арбитража больше
всего воздействуют задержки распространения. Каждый узел, вовлечённый в
арбитраж, должен быть способен осуществлять выборку уровня каждого бита в
пределах одного и того же времени передачи бита. Например, если два
узла на противоположных концах шины начали передавать сообщения в одно и
то же время, они должны выполнить арбитраж для захвата управления
шиной. Арбитраж будет эффективен, только если оба узла способны сделать
выборку в течение одного и того же времени передачи бита. На Рис. 5
показана односторонняя задержка распространения между двумя узлами.
Чрезмерные задержки распространения (вне точки выборки) приведут к
ошибочному арбитражу. Это означает, что длина шины ограничена для
заданной скорости передачи данных.
Задержка распространения в системе CAN вычисляется как удвоенная
сумма времени прохождения сигнала по физической шине туда и обратно (tBUS), выходной задержки драйвера (tDRV) и входной задержки компаратора (tCMP). Приняв, что все узлы в системе имеют одинаковые задержки компонентов, получим задержку распространения:
tPROP = 2·(tBUS + tCMP + tDRV).
Рис. 5. Односторонняя задержка распространения
MCP2551 - приёмопередатчик CAN
Микросхема MCP2551 - приёмопередатчик CAN, который реализует
физический уровень, описанный в спецификации ISO-11898-2. Он
поддерживает скорость передачи данных до 1 Мбит/с и подходит для систем с
напряжениями питания 12 В и 24 В. MCP2551 обеспечивает защиту от
короткого замыкания до ±40 В и защиту от кратковременных напряжений до
±250 В.
Дополнительно, будучи совместим с ISO-11898-2, MCP2551 обеспечивает сброс при включении питания (power-on reset - POR) и защиту от кратковременного падения напряжения (brown-out protection), а также обнаружение постоянного доминанта (permanent dominant detection),
чтобы гарантировать, что обесточенный или неисправный узел не будет
мешать работе шины. Устройство реализует настраиваемую наклонную
регулировку усиления (slope control) на выводах шины для уменьшения излучения радиопомех (RFI). На Рис. 6 представлена блок-схема MCP2551.
Рис. 6. Блок-схема MCP2551
Основная работа MCP2551
Передача
Контроллер протокола CAN выдаёт поток последовательных данных на
логический вход TXD MCP2551. Соответствующее рецессивное или доминантное
состояние выдаётся на выводы CANH и CANL.
Приём
MCP2551 принимает доминантное или рецессивное состояния на те же
выводы CANH и CANL, с которых осуществляется передача. Эти состояния
выдаются в виде соответствующих логических уровней на вывод RXD, чтобы
контроллер протокола CAN принял кадр CAN.
Рецессивное состояние
Логическая "1" на входе TXD отключает драйверы от вводов CANH и CANL,
и выводы "подтягиваются" к номиналу 2.5 В через резисторы смещения.
Доминантное состояние
Логический "0" на входе TXD включает драйверы выводов CANH и CANL. На
CANH подаётся на ~1 В больше, чем номинал рецессивного состояния 2.5 В,
таким образом увеличивая напряжение до ~3.5 В. На CANL подаётся на ~1 В
меньше, чем номинал рецессивного состояния, таким образом уменьшая
напряжение до ~1.5 В.
Режимы работы
Существует три режима работы, которые управляются извне через вывод RS:
1. Высокоскоростной режим.
2. Режим наклонной регулировки усиления.
3. Режим ожидания (Standby)
Высокоскоростной режим
Высокоскоростной режим выбирается подключением вывода RS к VSS.
В этом режиме выходные драйверы имеют быстрое время нарастания и спада,
что обеспечивает наивысшие скорости передачи до 1 Мбита/с и/или
максимальную длину шины, а также обеспечивая минимальные циклические
задержки приёмопередатчика.
Режим наклонной регулировки усиления
Если требуется уменьшить излучаемые драйвером электромагнитные
помехи, MCP2551 можно установить в режим наклонной регулировки усиления
подключением резистора (REXT) от вывода RS на общий минус. В
режиме наклонной регулировки усиления скорость нарастания выходного
напряжения на одном проводе (на CANH или CANL) в основном
пропорциональна выходному току на выводе RS. Ток должен быть в диапазоне
от 10 мкА < IRS < 200 мкА, который соответствует напряжению на выводе в диапазоне 0.4·VDD < VRS < 0.6·VDD соответственно (или обычно 0.5·VDD ).
Уменьшение скорости нарастания выходного напряжения приводит к
уменьшению скорости передачи данных CAN при заданной длине шины, либо к
сокращению длины шины при заданной скорости передачи данных.
Режим ожидания
Режим ожидания (или спящий режим (sleep)) устанавливается подключением вывода RS к VDD.
В спящем режиме передатчик отключен, а приёмник работает в режиме
пониженного энергопотребления. Принимающий вывод (RXD) по-прежнему
функционирует, но на более низкой скорости.
Режим ожидания можно использовать для установки устройства в
режим низкого энергопотребления и выключения передатчика в случае, если
контроллер CAN неисправен и выдаёт на шину непредсказуемые данные.
Обнаружение постоянного доминанта на передатчике
Если на передатчике обнаруживается состояние постоянного доминанта,
MCP2551 отключает передатчик от CANH и CANL. Эта возможность
предотвращает постоянное разрушение шины CAN неисправным узлом
(контроллером CAN или самим MCP2551).
Драйверы отключаются, если низкий уровень присутствует на TXD в течение более чем ~1.25 мс (минимум) (см. Рис. 7).
Драйверы остаются отключенными всё время, пока на TXD остаётся
низкий уровень. Появление нарастающего фронта на TXD сбросит логику
таймера и включит драйвер.
Рис. 7. Обнаружение постоянного доминанта на TXD
Сброс при включении питания и защита от кратковременного снижения питания
MCP2551 имеет способность сброса при включении питания (Power-On Reset - POR) и обнаружения кратковременного снижения напряжения питания (Brown-Out Detection - BOD) (см. Рис. 8).
Сброс при включении питания (POR)
Когда на MCP2551 подаётся питание, выводы CANH и CANL остаются в
высокоимпедансном состоянии до тех пор, пока VDD не достигнет высокого
напряжения POR (POR high voltage - VPORH). Кроме того, если при
включении питания на выводе TXD низкий уровень, выводы CANH и CANL
остаются в высокоимпедансном состоянии до тех пор, пока на TXD не
установится высокий уровень. После чего драйвер будет функционировать
нормально.
Обнаружение кратковременного снижения напряжения питания (BOD)
BOD происходит, когда VDD опускается ниже низкого напряжения сброса при включении питания (power-on reset low voltage - VPORL).
В этой точке выводы CANH и CANL входят в высокоимпедансное состояние и
остаются в нем, пока не будет достигнуто напряжение VPORH.
Рис. 8. Сброс при включении питания и обнаружение кратковременного снижения напряжения питания
Смещения земли
Поскольку не требуется обеспечивать общую землю между узлами, то
возможно возникновение смещений земли между ними. То есть каждый узел
может наблюдать разные однопроводные напряжения шины (напряжения
синфазного сигнала шины), в то же время поддерживая одинаковое
дифференциальное напряжение. В то время как MCP2551 предусмотрен для
управления смещениями земли от -12 В до +12 В, спецификация ISO-11898
требует только от -2 В до +7 В. На Рис. 9 и 10 показано, как между узлами возникают смещения земли.
Рис. 9 показывает передающий узел с положительным
смещением земли относительно принимающего узла. Приёмник MCP2551 может
работать с CANH = +12 В. Максимальное выходное напряжение доминанта CAN
(VO(CANH)) от передающего узла составляет 4.5 В. Вычитание
этого максимума даёт смещение земли (относительно принимающего узла) в
7.5 В для передающего узла. В рецессивном состоянии каждый узел пытается
притянуть выводы CANH и CANL к их основным уровням (обычно 2.5 В).
Однако результирующее напряжение синфазного сигнала в рецессивном
состоянии принимает значение 6.25 В для принимающего узла и -1.25 В для
передающего.
Рис. 10 показывает передающий узел с отрицательным
смещением земли относительно принимающего узла. Приёмник MCP2551 может
работать с CANL = -12 В. Минимальное выходное напряжение доминанта CAN
(VO(CANL)) из передающего узла составляет 0.5 В. Вычитание
этого минимума даёт фактическое смещение земли относительно принимающего
узла в -12.5 В. Напряжение синфазного сигнала для рецессивного
состояния составляет -6.25 В для принимающего узла и 6.25 В для
передающего.
Поскольку все узлы работают как передатчики для части каждого
сообщения (то есть каждый приёмник должен подтверждать (ACK) правильные
сообщения в течение временного интервала ACK), наибольшее смещение
земли, допускаемое между узлами составляет 7.5 В, как показано на Рис. 9.
Работа системы CAN с большим смещением земли может привести к
увеличению электромагнитных излучений. Если система чувствительна к
излучениям, нужно предпринять меры для устранения смещений земли.
Рис. 9. Земля принимающего узла ниже земли передающего
Рис. 10. Земля принимающего узла выше земли передающего
Оконечная нагрузка шины
Оконечная нагрузка шины (bus termination) используется для
минимизации отражения сигнала в шине. ISO-11898 требует, чтобы шина CAN
имела номинальную характеристику входного полного сопротивления линии
передачи в 120 Ом. Поэтому обычное значение согласующего резистора для
каждого конца шины составляет 120 Ом. Есть несколько различных способов
реализации оконечной нагрузки, используемых для увеличения
электромагнитной совместимости (EMC) (см. Рис. 11):
1. Стандартная оконечная нагрузка.
2. Разделённая оконечная нагрузка.
3. Смещённая разделённая оконечная нагрузка.
Примечание: электромагнитная совместимость определяется не
только передатчиком и методом оконечной нагрузки, но также и тщательным
анализом всех компонентов и топологии системы.
Стандартная оконечная нагрузка
Как подразумевает название, эта оконечная нагрузка состоит из
одинарных резисторов номиналом в 120 Ом на каждом конце шины. Этот метод
приемлем во многих системах CAN.
Разделённая оконечная нагрузка
Разделённая оконечная нагрузка приобретает всё большую популярность,
так как позволяет легко добиваться снижения излучения. Разделённая
оконечная нагрузка - модификация стандартной оконечной нагрузки, в
которой один резистор номиналом 120 Ом на каждом конце шины разделяется
на два резистора по 60 Ом с развязывающим конденсатором, присоединенным
между резисторами и подключенным к земле. Номиналы этих резисторов
должны как можно меньше отличаться друг от друга.
Смещённая разделённая оконечная нагрузка
Этот метод оконечной нагрузки используется для поддержания синфазного
напряжения рецессивного сигнала на постоянном значении, таким образом
увеличивая EMC. Эта схема аналогична схеме разделённой оконечной
нагрузки, но добавлена дополнительная схема делителя напряжения для
достижения напряжения VDD/2 между двумя резисторами по 60 Ом (см. Рис. 11).
Примечание: Номиналы резисторов смещения на Рис. 11, также как и резисторов разделённой оконечной нагрузки, должны как можно меньше отличаться друг от друга.
Рис. 11. Схемы оконечной нагрузки
© PIClist-RUS (piclist.ru), 2007 г.
|