www.diagram.com.ua
www.diagram.com.ua

Русский: Русская версия English: English version

Translate it!

+ Поиск по всему сайту
+ Поиск по журналам
+ Поиск по статьям сайта
+ Поиск по каталогу схем
+ Поиск по схемам СССР
+ Поиск по Библиотеке

ВСЕ СТАТЬИ А-Я

БЕСПЛАТНАЯ БИБЛИОТЕКА
ЭНЦИКЛОПЕДИЯ РАДИОЭЛЕКТРОНИКИ И ЭЛЕКТРОТЕХНИКИ
СПРАВОЧНИК
АРХИВ СТАТЕЙ

НОВОСТИ НАУКИ И ТЕХНИКИ, НОВИНКИ ЭЛЕКТРОНИКИ

ФОРУМЫ
ВАШИ ИСТОРИИ ИЗ ЖИЗНИ
ОБРАТНАЯ СВЯЗЬ
ОТЗЫВЫ О САЙТЕ

КАРТА САЙТА

Бесплатная техническая библиотека РАЗДЕЛЫ БЕСПЛАТНОЙ ТЕХНИЧЕСКОЙ БИБЛИОТЕКИ:
Архив и лента новостей
Книги и сборники
Технические журналы
Архив статей и поиск
Схемы и сервис-мануалы
Электронные справочники
Русские инструкции
Радиоэлектронные и электротехнические устройства

СКАЧАЙТЕ БЕСПЛАТНО:

ЭНЦИКЛОПЕДИЯ РАДИОЭЛЕКТРОНИКИ И ЭЛЕКТРОТЕХНИКИ БЕСПЛАТНО:
Автомобиль
Автомобильные электронные устройства
Аккумуляторы, зарядные устройства
Акустические системы
Альтернативные источники энергии
Антенны
Антенны КВ
Антенны телевизионные
Антенны УКВ
Антенные усилители
Аудио и видеонаблюдение
Аудиотехника
Блоки питания
Бытовая электроника
Бытовые электроприборы
Видеотехника
ВЧ усилители мощности
Галогенные лампы
Генераторы, гетеродины
Гирлянды
Гражданская радиосвязь
Детекторы напряженности поля
Дозиметры
Дом, приусадебное хозяйство, хобби
Зажигание автомобиля
Заземление и зануление
Зарядные устройства, аккумуляторы, батарейки
Защита электроаппаратуры
Звонки и аудио-имитаторы
Измерения, настройка, согласование антенн
Измерительная техника
Индикаторы, датчики, детекторы
Инструмент электрика
Инфракрасная техника
Кварцевые фильтры
Компьютерные интерфейсы
Компьютерные устройства
Компьютерный модинг
Компьютеры
Личная безопасность
Люминесцентные лампы
Медицина
Металлоискатели
Микроконтроллеры
Микрофоны, радиомикрофоны
Мобильная связь
Модернизация радиостанций
Модуляторы
Молниезащита
Музыканту
Начинающему радиолюбителю
Ограничители сигнала, компрессоры
Освещение
Освещение. Схемы управления
Охрана и безопасность
Охрана и сигнализация автомобиля
Охрана и сигнализация через мобильную связь
Охранные устройства и сигнализация объектов
Переговорные устройства
Передатчики
Передача данных
Предварительные усилители
Преобразователи напряжения, выпрямители, инверторы
Применение микросхем
Пускорегулирующие аппараты люминесцентных ламп
Работа с CAD-программами
Радиолюбительские расчеты
Радиолюбителю-конструктору
Радиоприем
Радиостанции портативные
Радиостанции, трансиверы
Радиоуправление
Разная бытовая электроника
Разные компьютерные устройства
Разные узлы радиолюбительской техники
Разные устройства гражданской радиосвязи
Разные электронные устройства
Разные электроустройства
Регуляторы мощности, термометры, термостабилизаторы
Регуляторы тембра, громкости
Регуляторы тока, напряжения, мощности
Сварочное оборудование
Светодиоды
Синтезаторы частоты
Смесители, преобразователи частоты
Спидометры и тахометры
Справочник электрика
Справочные материалы
Стабилизаторы напряжения
Студенту на заметку
Телевидение
Телефония
Теория антенн
Техника QRP
Технологии радиолюбителя
Технология антенн
Трансвертеры
Узлы радиолюбительской техники
Усилители мощности
Усилители мощности автомобильные
Усилители мощности ламповые
Усилители мощности транзисторные
Усилители низкой частоты
Устройства защитного отключения
Фильтры и согласующие устройства
Цветомузыкальные установки
Цифровая техника
Часы, таймеры, реле, коммутаторы нагрузки
Электрику
Электрику. ПТЭ
Электрику. ПУЭ
Электрические схемы автомобилей
Электрические счетчики
Электричество для начинающих
Электробезопасность, пожаробезопасность
Электродвигатели
Электромонтажные работы
Электронный впрыск топлива
Электропитание
Электроснабжение
Электротехнические материалы

СТАТЬИ БЕСПЛАТНО:
Батарейки и аккумуляторы
Большая энциклопедия для детей и взрослых
Биографии великих ученых
Важнейшие научные открытия
Детская научная лаборатория
Должностные инструкции
Домашняя мастерская
Жизнь замечательных физиков
Заводские технологии на дому - простые рецепты
Инструменты и механизмы для сельского хозяйства
Искусство аудио
Искусство видео
История техники, технологии, предметов вокруг нас
И тут появился изобретатель
Конспекты лекций, шпаргалки
Личный транспорт: наземный, водный, воздушный
Любителям путешествовать - советы туристу
Мобильные телефоны
Моделирование
Опыты по физике
Опыты по химии
Нормативная документация по охране труда
Основы безопасной жизнедеятельности (ОБЖД)
Основы первой медицинской помощи (ОПМП)
Охрана труда
Параметры, аналоги, маркировка радиодеталей
Радио - начинающим
Секреты ремонта
Советы радиолюбителям
Строителю, домашнему мастеру
Справочная информация
Типовые инструкции по охране труда (ТОИ)
Функциональный состав импортных ТВ
Функциональный состав, пульты, шасси, эквиваленты импортных телевизоров
Чудеса природы. Увлекательное путешествие вокруг земного шара
Шпионские штучки
Электрик в доме
Эффектные фокусы и их разгадки

ЖУРНАЛЫ БЕСПЛАТНО:
Блокнот Радиоаматора
Домашний компьютер
Домашний ПК
КВ журнал
КВ и УКВ
Квант
Компьютерра
Конструктор
Левша
Моделист-конструктор
М-Хобби
Наука и жизнь
Новости электроники
Новый Радиоежегодник
Популярная механика
Радио
Радио Телевизия Електроника
Радиоаматор
Радиодело
Радиодизайн
Радиокомпоненты
Радиоконструктор
Радиолюбитель
Радиомир
Радиосхема
Радиохобби
Ремонт и сервис
Ремонт электронной техники
Сам
Сервисный центр
Силовые машины
Схемотехника
Техника - молодежи
Химия и жизнь
ЭКиС
Электрик
Электроника
Юный техник
Юный техник для умелых рук
Я - электрик
A Radio. Prakticka Elektronika
Amaterske Radio
Chip
Circuit Cellar
Electronique et Loisirs
Electronique Pratique
Elektor Electronics
Elektronika dla Wszystkich
Elektronika Praktyczna
Everyday Practical Electronics
Evil Genius
Funkamateur
Nuts And Volts
QEX
QST
Radiotechnika Evkonyve
Servo
Stereophile

КНИГИ СЕРИЙНЫЕ БЕСПЛАТНО:
Библиотека по автоматике
Библиотека электромонтера
Библиотечка Квант
Библиотечка электротехника
Знай и умей
Массовая радиобиблиотека

КНИГИ ПО РАДИОТЕХНИКЕ И ЭЛЕКТРОНИКЕ БЕСПЛАТНО:
Автомобиль
Аппаратура СВЧ
Запись и воспроизведение звука
Ламповая аппаратура
Начинающему радиолюбителю
Охрана и безопасность
Радиолокация, навигация
Радиотехнические технологии
Радиоуправление, моделизм
Робототехника
Схемотехника
Теоретическая электроника, радиотехника
Усилители
Цифровая обработка сигналов
Электроника в быту
Электроника в медицине
Электроника в науке
Электроника для музыканта

КНИГИ ПО РЕМОНТУ БЕСПЛАТНО:
Ремонт аудиотехники
Ремонт бытовая техники
Ремонт видеотехники
Ремонт телевизоров ламповых
Ремонт телевизоров полупроводниковых
Ремонт мониторов
Ремонт оргтехники
Ремонт радиоприемников
Ремонт телефонов и факсов
Спутниковое телевидение
Теория телевидения
Теория ремонта электроники

КНИГИ ПО ИЗМЕРЕНИЯМ БЕСПЛАТНО:
Измерения и метрология
Измерительная аппаратура
Измерительная техника. Схемы и описания

КНИГИ ПО СВЯЗИ БЕСПЛАТНО:
Антенны
Аппаратура любительской радиосвязи
Линии связи, передача данных
Мобильные телефоны
Теория и практика радиосвязи

КНИГИ ПО ЭЛЕКТРИКЕ БЕСПЛАТНО:
Автоматика, автоматизация, управление
Аккумуляторы, элементы питания, зарядные устройства
Альтернативные источники энергии
Источники питания, стабилизаторы, преобразователи
Молниезащита
Осветительная аппаратура
Охрана труда, электробезопасность, пожаробезопасность
Релейная защита
Сварка, сварочное оборудование
Теория электротехники
Устройства телемеханики
Электрику, электромонтажнику, электромеханику
Электрические сети, воздушные и кабельные линии
Электродвигатели
Электрооборудование
Электропривод
Электростанции, подстанции
Электротехнические справочники
Энергетика, электроснабжение

СБОРНИКИ БЕСПЛАТНО:
В помощь радиолюбителю
Радиоаматор-лучшее
Радиоежегодник

СПРАВОЧНИКИ БЕСПЛАТНО:
Зарубежные микросхемы и транзисторы
Измерительная техника. Схемы и описания
Медицинская аппаратура
Механизмы импортной аудио и видеоаппаратуры
Прошивки зарубежной аппаратуры
Пульты ДУ импортных телевизоров
Радиокомпоненты Atmel
Радиокомпоненты Cirrus Logic
Радиокомпоненты Maxim
Радиокомпоненты Microchip
Радиокомпоненты Mitsubishi
Радиокомпоненты Motorola
Радиокомпоненты National Semiconductor
Радиокомпоненты Panasonic
Радиокомпоненты Philips
Радиокомпоненты Rohm
Радиокомпоненты Samsung
Радиокомпоненты Sharp
Радиокомпоненты Sony
Радиокомпоненты Toshiba
Соответствие моделей и шасси телевизоров
Строчные трансформаторы HR
Строчные трансформаторы Konig

СХЕМЫ И СЕРВИС-МАНУАЛЫ БЕСПЛАТНО:
Бытовая техника Beko
Бытовая техника Braun
Бытовая техника Candy
Бытовая техника Elenberg
Бытовая техника Elica
Бытовая техника Gorenje
Бытовая техника Hansa
Бытовая техника Merloni
Бытовая техника SEB
Бытовая техника Snaige
Бытовая техника Stinol
Бытовая техника Universal
Бытовая техника Whirpool

Зарубежные DVD-плееры
Зарубежные автомагнитолы
Зарубежная аудиоаппаратура
Зарубежные видеокамеры
Зарубежные видеомагнитофоны и видеоплееры
Зарубежные мониторы
Зарубежные моноблоки
Зарубежные телевизоры
Зарубежные телефоны
Зарубежные факсы

Мобильники Benq-Siemens
Мобильники Eastcom
Мобильники Ericsson
Мобильники Fly Bird
Мобильники LG
Мобильники Maxon
Мобильники Mitsubishi
Мобильники Motorola
Мобильники Nokia
Мобильники Panasonic
Мобильники Pantech
Мобильники Samsung
Мобильники Sharp
Мобильники Siemens
Мобильники Sony-Ericsson
Мобильники TCL
Мобильники Voxtel

Отечественные телевизоры
Отечественная аудиоаппаратура

Справочники по вхождению в режим сервиса

Схемы блоков питания импортных телевизоров и видеотехники

Телевизоры Avest
Телевизоры Beko
Телевизоры, аудио, видеотехника Elenberg, Cameron, Cortland
Телевизоры Erisson
Телевизоры Rainford
Телевизоры Roadstar
Телевизоры Rolsen
Телевизоры Vestel
Телевизоры Витязь
Телевизоры Горизонт
Телевизоры Рекорд
Телевизоры Рубин

Станки металлообрабатывающие
Электроинструмент Bocsh
Электроинструмент Makita

БЕСПЛАТНЫЙ АРХИВ СТАТЕЙ
(150000 статей в Архиве)

АЛФАВИТНЫЙ УКАЗАТЕЛЬ СТАТЕЙ:
Библиотечка Квант указатель
Библиотека по автоматике указатель
Библиотека электромонтера указатель
Библиотечка электротехника указатель
Блокнот Радиоаматора указатель
В помощь радиолюбителю указатель
Знай и умей указатель
Массовая радиобиблиотека указатель
КВ и УКВ указатель
КВ журнал указатель
Квант указатель
Конструктор указатель
Моделист-конструктор указатель
Наука и жизнь указатель
Новости электроники указатель
Новый Радиоежегодник указатель
Популярная механика указатель
Радио указатель
Радиоаматор указатель
Радиоаматор-лучшее указатель
Радиоежегодник указатель
Радиодело указатель
Радиодизайн указатель
Радиокомпоненты указатель
Радиоконструктор указатель
Радиолюбитель указатель
Радиомир указатель
Радиосхема указатель
Радиохобби указатель
Ремонт и сервис указатель
Ремонт электронной техники указатель
Сам указатель
Сервисный центр указатель
Силовая электроника указатель
Схемотехника указатель
Техника - молодежи указатель
Химия и жизнь указатель
ЭКиС (Электронные компоненты и системы) указатель
Электрик указатель
Электроника указатель
Юный техник указатель
Я - электрик указатель

СПРАВОЧНИК БЕСПЛАТНО

ПАРАМЕТРЫ РАДИОДЕТАЛЕЙ БЕСПЛАТНО

ДАТАШИТЫ БЕСПЛАТНО

ПРОШИВКИ БЕСПЛАТНО

РУССКИЕ ИНСТРУКЦИИ БЕСПЛАТНО


Стол заказов СТОЛ ЗАКАЗОВ:

СХЕМЫ ПОД ЗАКАЗ:
Импортные DVD
Импортные автоаудио
Импортные аудио
Импортные видеокамеры
Импортные видеомагнитофоны
Импортные кондиционеры
Импортные мониторы
Импортные моноблоки
Импортные проекторы
Импортные СВЧ-печи
Импортная спутниковая аппаратура
Импортные стиральные машины
Импортные телевизоры
Импортные телефоны
Импортные факсы
Импортные фотоаппараты
Импортные холодильники

Отечественные автоаудио
Отечественные видеомагнитофоны
Отечественные магнитофоны
Отечественные мониторы
Отечественные приборы
Отечественные радиолы
Отечественные радиоприемники
Отечественные усилители
Отечественные цветные телевизоры
Отечественные черно-белые телевизоры
Отечественные электрофоны


Бонусы БОНУСЫ:

НА ДОСУГЕ:
Интерактивные флеш-игры
Игры он-лайн
Ваши истории
Знаете ли Вы, что...
Зрительные иллюзии
Веселые задачки
Каталог Вивасан
Палиндромы

ИСТОРИИ ИЗ ЖИЗНИ

ССЫЛКИ

ДОБАВИТЬ В ЗАКЛАДКИ

Оставить отзыв о сайте

ДИАГРАММА
© 2000-2017

Дизайн и поддержка:
Александр Кузнецов

Техническое обеспечение:
Михаил Булах

Программирование:
Данил Мончукин

Маркетинг:
Татьяна Анастасьева

Перевод:
Наталья Кузнецова

Контакты

При использовании материалов сайта обязательна ссылка на http://www.diagram.com.ua

сделано в Украине
сделано в Украине

Диаграмма. Бесплатная техническая библиотека

Бесплатная техническая библиотека Бесплатная техническая библиотека Как скачивать файлы с сайта? Как скачивать файлы с сайта? Добавить в закладки, оставить отзывДобавить в закладки, оставить отзыв

Энциклопедия радиоэлектроники и электротехники. Большая подборка статей со схемами, иллюстрациями, комментариями Энциклопедия радиоэлектроники и электротехники

Бесплатная библиотека / Схемы радиоэлектронных и электротехнических устройств

Расчет битовой синхронизации сети CAN

Энциклопедия радиоэлектроники и электротехники / Автомобиль. Электронные устройства

Комментарии к статье Комментарии к статье

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

Свое начало интерфейс CAN (controller area network - локальная сеть контроллера) получил в середине 80-х годов прошлого века от немецкой компании Robert Bosch Gmbh, которая создавала его в качестве экономичного средства для объединения в информационную сеть контроллеров, управляющих системами автомобиля. Дело в том, что по мере совершенствования автомобильной техники развивалась и электроника, управляющая двигателем, коробкой передач и другими механизмами. Это привело к тому, что к каждому электронному блоку в автомобиле стали тянуться десятки проводов от датчиков и исполнительных устройств, а также провода, связывающие между собой разные блоки. Все это не только утяжеляло машину, но и сказывалось на ее надежности, безопасности, ремонтопригодности.

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

В основе идеологии CAN лежит семиуровневая модель OSI/ISO (если говорить упрощенно, то это виртуальное разделение процессов передачи и приема информации на семь уровней). Углубляться в эту область нет смысла, так как она широко освещена во многих источниках, например в [1]. В настоящее время стандартизованы два уровня: физический (частично) и канальный.

Физическая среда передачи информации в спецификации CAN фирмы Bosch не определена, но обычно подразумевается, что это сеть типа "шина" с физическим уровнем в виде пары проводов согласно стандарту ISO 11898. Типы соединений и скорость передачи в настоящее время не стандартизированы, но обычно их задают в спецификациях вышележащих слоев.

Все узлы сети присоединяются к двум проводам связывающей их линии (CAN_H и CAN_L) параллельно. На концах линии связи обязательно должны быть установлены терминаторы - резисторы сопротивлением 120 Ом. В отсутствие передачи напряжение на обоих проводах относительно корпуса автомобиля или общего провода технологической установки - 2,5 В. Логической единице (по принятой в CAN терминологии бит с таким значением называется рецессивным) соответствует состояние шины, при котором уровень напряжения на проводе CaN_H выше, чем на CAN_L. Логическому нулю (бит с таким значением называется доминантным) - наоборот. При одновременной работе нескольких передатчиков рецессивный бит в линии подавляется доминантным.

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

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

Кодирование информации для передачи по шине происходит методом NRZ (Non Return to Zero - без возврата к нулю). Он имеет существенный недостаток: при передаче длинной последовательности единиц получается, что пауз между ними нет. Это приводит к тому, что приемник не может отличить такую последовательность от паузы между сообщениями. Для решения этой проблемы используется так называемый битстаффинг (Bit Stuffing - вставка битов). Он заключается в том, что после пяти переданных подряд одинаковых битов в их поток вставляется дополнительный бит с противоположным значением. Приемник, обнаружив пять одинаковых битов подряд, удаляет тот, который следует за ними, вставленный при передаче.

На канальном уровне определены два типа идентификаторов: Standard CAN (длиной 11 бит) и Extended CAN (29 бит). Они задают формат сообщений.

Среди высших уровней можно отметить спецификации CAL/CANopen, CAN Kingdom, DeviceNet и SDS (Smart Distributed System), подробнее можно посмотреть в Интернете [2].

По определению сеть CAN объединяет ограниченное число контроллеров, локально размещенных внутри одной установки, помещения или нескольких близкорасположенных помещений. Она не выходит за границы технологического объекта. Идеология сети построена на нескольких моментах. Во-первых, контроллер, осуществляющий передачу, непрерывно слушает свои же, передаваемые по сети сигналы. Это дает возможность выполнять побитную проверку правильности передаваемой информации (check bit monitoring) несколькими узлами в отличие, например, от сетей Ethernet. Если принятый контроллером бит отличается от им же переданного, то передача останавливается и генерируется ошибка Bit Error.

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

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

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

 Информация передается сообщениями стандартного формата - кадрами Data Frame (передача информации), Remote Transmission Request Frame или просто Remote Frame (запрос информации), Error Frame (сообщение об ошибке), Overload Frame (сообщение о перегрузке контроллера).

Чаще всего используются кадры передачи информации. Их формат и содержимое показаны в табл. 1 для стандартного, а в табл. 2 для расширенного кадров. Кадр запроса информации отличается от информационного (стандартного или расширенного формата) только тем, что бит RTR всегда рецессивный, а поле информации отсутствует.

Таблица 1

Поле Длина, бит (байт) Значение
Начало кадра 1 Должно быть доминантным (0)
Идентификатор 11  
Запрос передачи (RTR) 1 Должно быть доминантным (0)
Признак расширения идентификатора (IDE) 1 Должно быть доминантным (0)
Зарезервировано (rО) 1  
Длина поля информа­ции (DLC) 4 Задается в байтах
Поле информации (0 - 8) Передаваемая информация
Контрольная сумма (CRC) 15 Вычисляется по всему кадру
Разграничитель контрольной суммы 1 Должно быть рецессивным (1)
Промежуток подтвер­ждения (АСК) 1 Передатчик шлет рецессивный (1), приемник вставляет доминанту (0)
Разграничитель подтверждения 1 Должно быть рецессивным (1)
Конец кадра (EOF) 7 Должно быть рецессивным (1)

Таблица 2

Поле Длина, бит (байт) Значение
Начало кадра 1 Должно быть доминантным (0)
Идентификатор А 11 Первая часть идентификатора
Подмена запроса передачи (SRR) 1 Должно быть рецессивным (1)
Признак расширения идентификатора (IDE) 1 Должно быть рецессивным (1)
Идентификатор В 18 Вторая часть идентификатора
Запрос на передачу (RTR) 1 Должно быть доминантным (0)
Зарезервировано (r1 и r0) 2  
Длина поля информа­ции (DLC) 4 Задается в байтах
Поле информации (0 - 8) Передаваемая информация
Контрольная сумма (СПС) всего кадра 15 Вычисляется по всему кадру
Разграничитель контрольной суммы 1 Должно быть рецессивным (1)
Подтверждение (АСК) 1 Передатчик шлет рецессивный, приемник вставляет доминанту
Разграничитель подтверждения 1 Должно быть рецессивным (1)
Конец кадра (EOF) 7 Должно быть рецессивным (1)

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

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

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

Синхронизация в CAN тесно связана с самим способом передачи информации по сети. Пользователю предоставляется возможность программировать скорость передачи информации (от 1 Кбит/с до 1 Мбит/с), положение точки (момента) выборки бита в интервале его передачи и число выборок каждого бита. Благодаря этому сеть можно оптимизировать под конкретное приложение. Но это же создает и некоторые проблемы.

Любую передаваемую по последовательной шине информацию можно разбить на элементарные биты, от длительности передачи этого элементарного битаNBT (Nominal Bit Time) зависит скорость передачи информации NBR (Nominal Bit Rate) - число битов, передаваемых за секунду идеальным передатчиком без восстановления тактовых интервалов:

NBR = 1/NBT           (1)

Как показано на рис. 1, интервал NBT разделен на несколько не перекрывающихся сегментов, каждый из которых состоит из целого числа временных отрезков, называемых квантами времени (Time Quanta - TQ).


Рис. 1

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

NBT = TSyncSeg + TPropSeg + TPS1 + TPS2,         (2)

где TSyncSeg - длительность сегмента синхронизации; TPropSeg - длительность сегмента распространения; TPS1 - длительность сегмента фазы 1; TPS2 - длительность сегмента фазы 2.

Сегмент синхронизации (SyncSeg) - первый по порядку, используется для синхронизации узлов на шине. Приход начального перепада уровня будет ожидаться именно в пределах этого сегмента. Длительность его фиксирована и всегда равна 1TQ.

Сегмент распространения (PropSeg) служит для компенсации физических задержек сигнала между узлами. Его длительность зависит от времени распространения сигнала от передающего узла до принимающего и обратно, включая задержки, связанные с драйвером шины. Она может принимать значения от 1TQ до 8TQ.

Сегменты фаз 1 и 2 (PS1 и PS2) служат для компенсации искажений фазы перепадов на шине. Во время синхронизации с восстановлением тактовых интервалов приемником может либо удлиняться PS1, либо укорачиваться PS2. Согласно первоначальной спецификации фирмы Bosch, длительность PS1 и PS2 может лежать в пределах от 1TQ до 8TQ, но для некоторых CAN-модулей эти значения могут быть другими.

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

Какуже говорилось выше, номинальное время передачи бита состоит из целого числа квантов времени TQ. Длительность кванта зависит от частоты тактового генератора модуля Fosc и коэффициента ее деления предварительным делителем BRP. Соотношения между TQ, Fosc и BRP различны для микроконтроллеров разных типов. Например, для МСР2510 справедлива формула

TQ = 2 · (BRP + 1)/Fosc .      (3)

Для микроконтроллеров STM32F и LPC23xx формула выглядит так:

TQ = (BRP + 1)/Fosc .       (4)

При подборе длительности сегментов удобнее пользоваться квантами времени TQ, а не стандартными единицами времени. Здесь и далее мы будем обозначать именем сегмента (например, PropSeg) и его длительность в квантах. Существуют несколько требований, которые необходимо соблюдать:

PropSeg +PS1 ≥ PS2;      (5)

PropSeg +PS1 ≥ Tprop;     (6)

PS2 > SJW.       (7)

Tprop в неравенстве (6) - задержка распространения сигнала в сети. Если предположить, что все узлы в сети имеют сходные внутренние задержки, то вычислить задержку распространения можно по формуле

Tprop = 2 · (Tbus + Tcmp + Tdrv),         (8)

где Tbus - время прохождения сигнала туда и обратно в физической среде шины; Tcmp - задержка во входном компараторе; Tdrv - задержка в выходном драйвере.

SJW (Synchronization Jump Width - ширина скачка синхронизации) в неравенстве (7) - длительность сегмента перехода синхронизации, дополнительно вводимого для корректировки длительности приема бита по мере необходимости. Используется для синхронизации приема с передаваемыми сообщениями. Кроме того, внешние помехи создают ситуации, когда номинальная скорость передачи, запланированная в сети, не соответствует реальной скорости. Для компенсации этого различия также используется этот дополнительный сегмент. Длительность SJW лежит в пределах 1TQ-4TQ.

Сегменты PS1 и PS2 вместе с SJW используются для компенсации ухода частоты тактового генератора узла. PS1 и PS2 могут удлиняться или укорачиваться в зависимости от необходимости. Синхронизация происходит по переходу от рецессивного (1) к доминантному (0) состоянию шины и управляет интервалом времени между этим переходом и точкой выборки бита. Переход синхронизирован, если он происходит в сегменте SyncSeg, иначе существует фазовая ошибка - интервал времени между переходом и окончанием SyncSeg, измеряемый во временных квантах TQ.

Существуют два типа синхронизации: аппаратная и повторная. Аппаратная выполняется только один раз при первом переходе от рецессивного состояния к доминантному, завершающем период покоя шины. Этот перепад указывает на начало кадра (SOF - Start of Frame). Аппаратная синхронизация устанавливает счетчик синхронизации в исходное состояние, заставляя перепад расположиться в пределах сегмента SyncSeg. В этот момент все приемники синхронизированы с передатчиком.

Повторная синхронизация с восстановлением тактовых интервалов производится для того, чтобы поддержать начальную синхронизацию, которая была установлена аппаратно. Без восстановления тактовых интервалов приемники могут выйти из синхронизма из-за ухода частоты тактовых генераторов в узлах сети. Эта синхронизация работает на основе цифровой фазовой автоподстройки (DPLL - Digital Phase Locked Loop), которая сравнивает фактическую позицию перехода рецессивного состояния в доминантное на шине с позицией ожидаемого перехода внутри SyncSeg и при необходимости корректирует время передачи бита.

Фазовая ошибка е определяется позицией перепада относительно сегмента SyncSeg, измеренной в TQ:

e = 0 - переход находится внутри сегмента SyncSeg;

e > 0 - переход находится перед точкой выборки, к PS1 прибавляются временные кванты TQ;

e < 0 - переход находится после точки выборки предыдущего бита, из PS2 вычитаются временные кванты TQ.

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

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

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

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

Имеются несколько правил синхронизации:

- используются только переходы из рецессивного в доминантное состояние (из единицы в ноль);

- в пределах передачи бита разрешается только одна синхронизация;

- переход используется для синхронизации при условии, что логический уровень сигнала, прочитанный в предыдущей точке выборки, отличается от уровня, установленного на шине сразу после перехода;

- передающий узел не выполняет восстановление тактовых интервалов при положительной фазовой ошибке (е > 0), т. е. не подстраивается под свое же сообщение. Но приемники выполняют синхронизацию как обычно;

- если абсолютное значение фазовой ошибки больше, чем скачок фазы SJW, то длительность соответствующего сегмента фазы (PS1 или PS2) изменяется до значения, равного SJW.

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

Рассмотрим, как производится настройка контроллера CAN в конкретных микроконтроллерах.

В микроконтроллерах семейства LPC (например, серии LPC23xx) для установки скорости передачи по шине CAN предназначены регистры CANxBTR, где х - номер контроллера CAN (их может быть 1 или 2, в некоторых случаях - 4). Здесь задают следующие параметры (в квадратных скобках указаны интервалы номеров занятых ими разрядов регистра):

BRP (CANxBTR[9:0]) - значение коэффициента предварительного деления частоты шины APB для дальнейшего ее использования контроллером CAN. От этого параметра зависит длительность временного кванта TQ, определяемая по формуле (4) при подстановке в нее Fosc=1/TAPB, где TAPB - период следования импульсов на системной шине APB микроконтроллера.

SJW (CANxBTR[15:14]) - ширина скачка синхронизации в квантах TQ на единицу больше указанного здесь значения.

TSEG1 (CANxBTR[19:16]) и TSEG2 (CANxBTR[20:22]) - длительность сегментов (соответственно PS1 и PS2) в квантах TQ на единицу больше указанных здесь значений.

SAM (CANxBTR[23]) - задает число считываний значения каждого бита: 0 - однократно, 1 - трехкратно. Последний вариант используется, как правило, в низкоскоростных сетях.

При выборе этих параметров надо руководствоваться следующими правилами:

TPS2 ≥ 2 · TQ        (9)

TPS2 ≥ TSJW         (10)

TPS1 ≥ TPS2         (11)

В микроконтроллерах серии STM32F имеется аналогичный регистр и называется он CAN_BTR. В нем предусмотрены следующие поля:

BRP (CAN_BTR[9:0]), TS1 (CAN_ BTR[19:16]) и TS2 (CAN_BTR[22:20]) - совпадают по назначению и расположению в регистре с рассмотренными выше полями BPR, TSEG1 и TSEG2 регистра CANxBTR. При вычислении значения TQ в формулу (4) следует подставлять Fosc=1/TPCLK, где TPCLK - период повторения импульсов на шине VPB микроконтроллера.

SJW (CAN_BTR[25:24]) - отличается от одноименного поля регистра CANxBTR лишь занимаемыми в регистре разрядами.

LBKM (CAN_BTR[30]) - единица в этом регистре устанавливает режим шлейфа, в котором передаваемое сообщение принимается собственным приемником, но не отправляется в сеть.

SILM (CAN_BTR[31]) - единица в этом регистре устанавливает режим молчания, в котором контроллер принимает поступающие из сети сообщения, но ничего не передает.

Оба упомянутых режима используются для отладки.

Для рассматриваемых микроконтроллеров формула (2) упрощается за счет отсутствия сегментов SyncSeg и PropSeg. Они заменены одним сегментом длительностью 1TQ. Формула для них выглядит так:

NBT = TQ + TPS1 + TPS2          (12)

Скорость передачи по шине CAN в битах в секунду рассчитывается в программе по формуле

NBR = (F/(BRP + 1)) · (1/(PS1 +PS2 +3))             (13)

где F - частота системной шины APB или VPB соответственно для STM32F или LPC23xx. Если параметр SJW не равен нулю, вычисляются максимальное

BRmax = (F/(BRP + 1)) · (1/(PS1 +PS2 - SJW + 2))         (14)

и минимальное

BRmin = (F/(BRP + 1)) · (1/(PS1 +PS2 + SJW + 4))        (15)

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

Окно программы CANTools показано на рис. 2. Исходными данными для нее служат тип микроконтроллера, требуемая скорость передачи информации и частота системной шины, от которой производится тактирование CAN-контроллера. Приступая к расчету, следует, прежде всего, выбрать тип микроконтроллера. В рассматриваемой программе вариантов всего два - LPC23xx или STM32F103. Далее задают требуемую скорость передачи по шине CAN в килобитах в секунду. После этого можно задать частоту системной шины в мегагерцах. Остается только нажать на экранную кнопку "Расчет" и получить результат.


Рис. 2

Работает программа следующим образом: в цикле от 0 до 512 изменяется значение BRP Вычисляются частота следования квантов времени и их число, содержащееся в интервале NBT при заданных частоте системной шины, значении BRP и скорости передачи. Число квантов должно быть целым и меньше 23 - максимального значения, которое может быть записано в регистры микроконтроллера. Потом выполняется перебор значений TSEG2 от 2 до 7 с соответствующим уменьшением значения TSEG1. Их сумма остается постоянной.

На экран выводятся частота следования квантов Fsc=1/TQ, через дробную черту - длительность кванта TQ, затем значение поля BRP соответствующего регистра. После этого каждая пара строк описывает результат одного из вариантов расчета.

Параметры TSEG1 и TSEG2 в первой из строк пары соответствуют одноименным полям регистра CANxBTR микроконтроллеров серии LPC23xx или полям TS1, TS2 регистра CAN_BTR микроконтроллера STM32F103. Приводятся их сумма, значение каждого из полей, а также значение поля SJW, если оно не нулевое. Последним в строке выводится шестнадцатеричное значение CANBTR, которое следует записать в регистр CANxBTR или CAN_BTR (соответственно типу микроконтроллера) для реализации рассчитанного варианта.

Во второй строке пары выводятся значения максимальной и минимальной скорости передачи информации по шине CAN (если SJW > 0) и положение точки выборки (sample point) битаотносительно начала его передачи в процентах от длительности интервала передачи.

Для некоторых значений BRP результаты расчета не выводятся. Это означает, что частота следования квантов времени или скорость передачи по шине CAN, вычисленная по формуле (13), оказалась выражена дробным числом. Расчет в таких случаях не производится.

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

Программу CANTools можно скачать с ftp://ftp.radio.ru/pub/2014/01/can.zip.

Литература

  1. Сетевая модель OSI.
  2. Controller Area Network.

Автор: А. Абрамович

Смотрите другие статьи раздела Автомобиль. Электронные устройства.

Читайте и пишите полезные комментарии к этой статье.

Рекомендуем скачать в нашей Бесплатной технической библиотеке:

журналы Funkamateur 2017 (архив за год)

журналы Левша 1992 (архив за год)

книга Электромагнитные процессы в быстродействующем реверсивном ионном преобразователе. Шипилло В.П., Сирица В.В., Булатов О.Г., 1963

книга Селекторы телевизионных каналов на транзисторах. Шор К.Б., 1973

статья Нормы испытаний электрооборудования и аппаратов электроустановок потребителей. Наименьшие допустимые сопротивления изоляции R60 обмоток трансформаторов

статья Простой логический пробник

справочник Сервисные меню зарубежных телевизоров. Книга №17

Оставьте свой комментарий к этой статье:

Имя:

E-mail (не обязательно):

Комментарий:

[lol][;)][roll][oops][cry][up][down][!][?]



Комментарии к статье:

Петрович2015
Схемка хорошая, но вызывает сомнения диаметр провода вторичной обмотки трансформатора при таких мощных транзисторах