Непрерывное совершенствование промышленных последовательных интерфейсов, широкое внедрение МК в автомобильную электронику, которая предъявляет повышенные требования к надежности передачи информации между МП-системами управления разными агрегатами автомобиля (например, между контроллерами педали управления и тормозной системы), привели к созданию нового стандарта последовательной связи – CAN-интерфейса (Controller Area Network). CAN - стандарт промышленной сети, ориентированный прежде всего на объединение в единую сеть различных исполнительных устройств и датчиков, имеющий последовательный, широковещательный, пакетный режим передачи.
По организации связи интерфейсы подразделяются на магистральные, радиальные (сеть звезда), кольцевые, иерархические, радиально-магистральные (рис. 2). На уровне встраиваемых МП-систем обычно приходится иметь дело с первым или вторым вариантом, причем для локальных сетей используется преимущественно магистральная структура, а для интерфейса периферийных устройств – как первый, так и второй варианты.
По режиму обмена информацией интерфейсы подразделяют на симплексные, полудуплексные, дуплексные, мультиплексные (рис. 3). В интерфейсах с симплексным режимом обмена информацией возможна лишь однонаправленная передача информации от одного абонента к другому.
Рис. 2. Способы организации связи
Рис. 3. Структура интерфейсов с различными режимами обмена информацией
Соответственно, и буферы приемника и передатчика информации выполнены однонаправленными. В интерфейсах с полудуплексным режимом обмена в произвольный момент времени может производиться либо только прием, либо только передача данных между двумя абонентами; буферы приемопередатчика каждого из абонентов связи выполнены двунаправленными. В интерфейсах с дуплексным режимом обмена в любой произвольный момент времени может производиться одновременный прием и передача данных между двумя абонентами.
Линии приема и передачи информации физически разделены, соответственно, контроллер обмена каждого абонента имеет два вывода (приемника и передатчика) и буферы этих выводов – однонаправленные. В интерфейсах с мультиплексным режимом обмена в каждый момент времени может осуществляться прием или передача данных между парой любых абонентов сети.
Одним из определяющих моментов начальной стадии проектирования МП-системы является выбор стандарта связи, позволяющего оптимально решить требуемый объем задач контроля и управления путем установления режима гибкого обмена информацией между функциональными блоками интеллектуальной системы. Поэтому при разработке систем на основе разветвленных сетей управления особое внимание стоит уделить изучению общих принципов осуществления связи при возникновении необходимости в обмене информацией между отдельными устройствами в многоабонентской системе. Основой большинства таких систем является шинная топология (рис. 2, а). Прием и передача информации осуществляется по одним и тем же линиям связи, являющимися общими для всех абонентов системы, эти линии и представляют собственную шину данных системы. Отдельно взятое устройство взаимодействует с шиной данных посредством подключения выводов своего последовательного интерфейса к соответствующим линиям шины.
В соответствии с существующими на сегодняшний день основными протоколами связи, представляющими собой комплексы правил, положений, рекомендаций, определяющих основные принципы взаимодействия между отдельными устройствами (узлами) системы, все многообразие многоабонентских систем можно условно разделить на две основные категории. Условность деления объясняется многообразием сетевых протоколов связи последовательных интерфейсов, которые могут сочетать в себе черты обоих категорий сетей.
К первой категории можно отнести многоабонентские системы, в состав которых входят равноправные по отношению друг к другу устройства. Последовательная связь может быть инициализирована любым устройством (узлом), подключенным к последовательной шине данных, в произвольный момент времени. Прием сообщения по шине данных может производиться одновременно всеми узлами системы. Нормальное функционирование сети обеспечивается аппаратно поддерживаемыми правилами арбитража, установленными для используемой разновидности протокола связи, в совокупности с логикой обнаружения и предупреждения ошибочных состояний шины. Под арбитражем следует понимать управление доступом к шине при попытке инициализации связи более чем одним узлом с целью исключения возможных ситуаций столкновения данных на шине, а также для предотвращения "состязаний" выходных буферов устройств. Правила арбитража индивидуальны для каждого сетевого протокола. Узел, выигравший арбитраж, продолжает передачу данных по шине, остальные пытаются сделать это позже.
С целью повышения эффективности процесса передачи данных используется метод программной адресации узлов. Суть метода заключается в следующем. Любое сообщение, передаваемое по шине, имеет определяющий его содержание идентификатор или адрес, который является, как правило, первым кадром передаваемого сообщения. Узлы, получившие идентификатор, сравнивают его значение со значением собственного внутреннего адреса. Узел, которому было адресовано соответствующее послание (значения переданного и собственного адресов совпали), продолжает прием дальнейшей информации. Остальные устройства системы устанавливаются в режим ожидания, не реагируя на передаваемые данные до начала следующего цикла последовательной передачи. Многоабонентские сети, подобные вышеописанным, могут быть построены на основе протоколов последовательных интерфейсов, работающих в синхронном или в асинхронном режимах передачи данных, речь о которых пойдет ниже.
Вторая категория из числа рассматриваемых предполагает наличие в системе одного главного устройства (MASTER) и совокупности подчиненных (SLAVE). Вся связь в подобных системах, а также инициализация передач последовательных данных осуществляется главным (ведущим) устройством. Подчиненные (ведомые) устройства, как правило, работают в режиме приемников информации. Передача данных от SLAVE к MASTER может быть осуществлена по требованию ведущего, что определяется посылкой соответствующего кода в первом кадре сообщения ведущего. SLAVE, получив указанный код, производит выдачу данных в течение оставшегося времени цикла последовательной связи. Характер выводимой информации определяется содержанием предварительно посланного кода. В рассматриваемой категории сетей для организации индивидуальных связей между устройствами используется метод аппаратной адресации узлов. Выбор подчиненного устройства с целью инициализации связи между ним и ведущим производится в индивидуальном порядке посредством программной установки активного уровня сигнала на аппаратном входе выбора соответствующего ведомого устройства. Так что в цикле последовательной связи в любой момент времени могут принимать участие только два узла из общего количества входящих в сеть: MASTER и выбранный им SLAVE. Рассмотренная категория сетей характерна для интерфейсов, работающих в режиме синхронной передачи данных.
При последовательном обмене данными (бит за битом) требуется обеспечить побитную и покадровую синхронизацию. Побитная синхронизация необходима для правильного приема передаваемых битов, покадровая синхронизация – для выделения сообщения из принятой последовательности битов.
Известные в настоящее время интерфейсы периферийных устройств с последовательной передачей информации могут работать как в асинхронном, так и в синхронном режимах.
В синхронном режиме параллельно с передачей по линии данных последовательности информационных битов по линии синхросигналов передается последовательность синхроимпульсов, что позволяет, как правило, повысить скорость передачи и решить проблемы побитной синхронизации передатчика и приемника при передаче длинных информационных сообщений.
В асинхронном режиме побитная синхронизация приемника и передатчика осуществляется обычно по первому (стартовому) биту и затем поддерживается абонентами в течение времени передачи кадра стабильностью тактовых частот генераторов передатчика и приемника, частоты которых равны и, как правило, минимум в 16 раз превышают частоту передачи данных. С учетом этих обстоятельств, скорость передачи в асинхронном режиме ниже и число бит в информационной посылке (кадре) меньше.
Покадровая синхронизация в асинхронном режиме осуществляется обрамлением информации при передаче по линии стартовым и стоповым битами. Стандартный кадр для асинхронного режима передачи данных представлен на рис.4.
Рис. 4. Формат информационного кадра для асинхронного режима
Покадровая синхронизация в синхронном режиме осуществляется использованием специальных кодовых последовательностей (флагов или специальных знаков) в общем случае в начале и конце кадра. Поскольку в синхронном режиме информационные биты сообщения передаются непрерывным потоком, то для кодирования и декодирования кадров используют специальные договоренности по форматам кадров (протоколам обмена).
В случаях синхронного режима передачи данных протоколы обмена используют один из возможных общепринятых кадров:
кадр бит-ориентированного протокола типа HDLC (протокол высокоуровневого управления каналом передачи данных);
кадр бит-ориентированного протокола типа SDLC (протокол синхронного управления звеном данных);
кадр байт-ориентированного протокола типа Monosync;
кадр байт-ориентированного протокола типа Bisync.
Форматы кадров, используемых при синхронном режиме передачи данных, представлены на рис. 5.
Рис. 5. Примеры информационных кадров для синхронного режима
Для обеспечения кодовой прозрачности аппаратных средств интерфейсов при последовательной передаче информации, под которой понимается свойство последних обеспечивать обмен данными с любыми кодовыми комбинациями, в том числе и с флаговыми (01111110), применяется процедура битстаффинга. Процедура битстаффинга предусматривает вставление передающим устройством в поток передаваемых данных двоичного нуля после каждых переданных подряд пяти двоичных единиц и исключение из потока принятых данных одного нуля после каждых принятых пяти единиц приемным устройством.
Поскольку в случае бит-ориентированных протоколов процедурой битстаффинга обрабатывается вся последовательность кадра, кроме флаговых байтов, то внутри кадра (в пределах между открывающим и закрывающим флагами) не оказывается кодовых комбинаций, содержащих подряд более пяти передаваемых в линии двоичных единиц.
В байт-ориентированных протоколах покадровая синхронизация осуществляется передачей двух или одного знака СИН соответственно. Кодовая прозрачность аппаратуры в этом случае обеспечивается процедурой байтстаффинга, а именно введением в пределах информационного и контрольного полей кадра специального символа АР1 перед каждым управляющим символом СИН1 или СИН2 и перед каждым символом АР1. На приемном конце линии связи осуществляется операция удаления символов АР1, вставленных перед передачей кадра в линию связи.
В последовательных интерфейсах применяют различные методы кодирования последовательной информации. Наиболее часто используются следующие коды:
Код без возвращения к нулю (БВН) (англоязычная аббревиатура – NRZ).
Код без возвращения к нулю с инверсией (БВНИ).
Код Манчестер 2.
Код без возвращения к нулю отображает последовательность двоичных битов последовательностью уровней напряжения, постоянных на интервале каждого передаваемого двоичного разряда. В коде без возвращения к нулю с инверсией логическая единица передается отсутствием изменения уровня напряжения предшествующего бита, а логический нуль – инверсией этого уровня. Код Манчестер 2 отображает каждый бит двоичной последовательности переходом уровней: если в середине битового интервала низкий уровень сменяется высоким, то передается логический нуль, если в середине битового интервала высокий уровень сменяется низким, то передается логическая единица. Примеры представления последовательности двоичных битов 10111000011 в кодах БВН, БВНИ и Манчестер 2 приведены на рис. 6.
Рис. 6. Примеры кодирования последовательных интерфейсов
Физический уровень реализации последовательных интерфейсов определяет число линий связи, электрические уровни сигналов на линиях, скорость передачи, максимально допустимую длину линии.
На рис. 7..9 приведены структурные схемы организации физического уровня последовательных интерфейсов, наиболее часто встречающихся в системах с МК. Использованы следующие обозначения: Т (передатчик – Transmitter), R (приемник – Receiver), T/R (двунаправленный приемопередатчик) – специальные ИС приемопередатчиков и трансиверов. Надо обратить внимание, что физический уровень внутриплатных интерфейсов SPI и I2C реализуется логическими сигналами, поэтому специальные схемы формирователей уровней не требуются.
Рис. 7. Организация физического уровня интерфейса RS-232C
Рис. 8. Организация физического уровня интерфейса RS-485
Рис. 9. Организация физического уровня CAN-сети
Основные параметры рассматриваемых интерфейсов приведены в табл. 1.
Таблица 1
Параметры |
SPI |
I2С |
RS-232C |
RS-485C |
CAN |
Максимальная скорость передачи |
10 Мбод |
400 кбод |
115 кбод |
10 Мбод |
1 Мбод |
Максимальная протяженность линий связи [м] |
10 |
500 |
15 |
1200 при 100 кбод 12 при 10 Мбод |
5000 |
Число линий связи |
3 + n* |
2 |
2 |
2 |
2 |
Наименование линий связи |
MISO, MOSI, SCK |
SDA SCL |
TxD, RxD |
TxD, RxD |
CANL, CANH |
Число дву-направленных линий связи |
Нет |
2 |
Нет |
2 |
2 |
Число инф-х бит в кадре |
8 |
|
8 |
8 |
До 64 |
Число служеб-ных бит в кадре сообщения |
Нет |
3...4 |
3...4 |
3...4 |
До 64 |