Лекция 4. Обмен данными в микроконтроллерных системах 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Лекция 4. Обмен данными в микроконтроллерных системах



ЛЕКЦИЯ 4. ОБМЕН ДАННЫМИ В МИКРОКОНТРОЛЛЕРНЫХ СИСТЕМАХ

Интерфейсы передачи информации

Параллельные и последовательные интерфейсы

Допустим нам нужно переслать 1 байт (8 бит) информации. Как это сделать? Можно выделить под каждый бит по одной ножке МК (линии), тогда для передачи потребуется 8 ножек, плюс одна, которая будет говорить принимающей стороне что передача закончена и нужно считать входной сигнал. Такой интерфейс называется параллельным (англ. parallel): группа битов передаётся одновременно за один квант времени. К таким интерфейсам относится PCI (32 линии) и её можно встретить в LCD знакогенерирующих индикаторах (например, WINSATR).

Можно поступить по другому и передавать данные по одной линии, кодируя, например, 1 как высокий уровень сигнала (3,3 В), а 0 как низкий (0 В). В таком случае потребует всего одна ножка МК для передачи и одна, что бы сообщать когда этот сигнал считывать. Такие интерфейсы называют последовательными (англ. serial): N битов передаётся по одному за N-квантов времени. Примером последовательного интерфейса — USART.

Параллельный интерфейс, как не сложно догадаться, быстрее в N-раз, однако требует в N-раз больше линий. В микроконтроллерах чаще всего присутствуют только последовательные интерфейсы (периферийные блоки, которые делают всё автоматически), к ним относятся SPI, I2C, I2S, CAN, USART и USB. Некоторые из них мы рассмотрим подробнее в этом курсе.

 

Дифференциальные интерфейсы

USB является дифференциальным последовательным интерфейсом. При этом он довольно требователен к стабильности частоты и именно по этой причине в нашем устройстве не реализована на физическом уровне возможность подключения часов к компьютеру; требуется внешний высокочастотный кварцевый резонатор 1.

Дифференциальным он называется потому, что сигнал передаётся сразу по двум линиям, причём если на одной линии выставлена 1, то на второй должен быть выставлен 0 и наоборот.

 

 

Опять же вопрос, зачем два провода, когда можно использовать один? UART вроде хорошо работал на одной линии... На самом деле нет. UART хорошо работает на низких скоростях. При повышении частоты передачи начинают влиять паразитные ёмкости и индуктивности и сигнал просто теряется. Дифф-пара позволяет понизить напряжение, уменьшить электромагнитное излучение, уменьшить потребление и повысить устойчивость приёма сигнала.

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

Режимы работы интерфейсов

Некоторые интерфейсы могут поддерживать несколько режимов работы, другие напротив способны работать только в одном определённом.

Если устройство использует два канала, один для приёма и второй для передачи, и при этом обмен данными может происходить одновременно, то такой режим работы называют полным дуплексом (англ. full duplex). Ваш мобильный телефон работает в таком режиме: вы можете слушать человека и говорить ему что-либо одновременно. Если используется два канала, но передача и приём может производится только одним устройством в один момент времени, то такой режим работы называется полудуплексным (англ. half-duplex). И наконец, если используется один канал, следовательно, общение может проходить только разделённое во времени, то такой режим называется симплексным (англ. simplex).

Шины данных интерфейсов

Каждый интерфейс предъявляет свои требования к шине данных. В таких интерфейсах как UART может быть только два устройства (принимающее и отправляющее). При этом с точки зрения иерархии нет никакой разницы, оба устройства равнозначны. В интерфейсе SPI устройств может быть несколько, но только одно (на самом деле не всегда, но это исключение) является главным, т.е. ведущим или мастером. Все остальные устройства являются ведомыми или подчинёнными. При этом SPI требует подводить к каждому устройству линию выбора (англ. chip select). Общение ведётся только с тем устройством, на линии которого присутствует сигнал активации.

Все ножки вышеописанных интерфейсов настраиваются как двухтактный выход. Но не все интерфейсы можно использовать подобным образом. Интерфейсы 1-Wire и I2C вместо линии выбора используют специальную команду с адресом устройства.

CAN BUS

CAN (Control Area Network) — последовательная магистраль, обеспечивающая увязку в сеть "интеллектуальных" устройств ввода/вывода, датчиков и исполнительных устройств некоторого механизма или даже предприятия. Характеризуется протоколом, обеспечивающим возможность нахождения на магистрали нескольких ведущих устройств, обеспечивающим передачу данных в реальном масштабе времени и коррекцию ошибок, высокой помехоустойчивостью. Система CAN обеспечена большим количеством микросхем, обеспечивающих работу подключенных к магистрали устройств, разработку которых начинала фирма BOSH для использования в автомобилях, и в настоящее время широко используемых в автоматизации промышленности.
Предназначен для организации высоконадежных недорогих каналов связи в распределенных системах управления. Интерфейс широко применяется в промышленности, энергетике и на транспорте. Позволяет строить как дешевые мультиплексные каналы, так и высокоскоростные сети. Скорость передачи задается программно и может быть до 1 Мбит/с. Пользователь выбирает скорость, исходя из расстояний, числа абонентов и емкости линий передачи. Максимальное число абонентов, подключенных к данному интерфейсу фактически определяется нагрузочной способностью примененных приемопередатчиков. Например, при использовании трансивера фирмы PHILIPS PCA82C250 она равна 110. Протокол CAN использует оригинальную систему адресации сообщений. Каждое сообщение снабжается идентификатором, который определяет назначение передаваемых данных, но не адрес приемника. Любой приемник может реагировать как на один идентификатор, так и на несколько. На один идентификатор могут реагировать несколько приемников. Протокол CAN обладает развитой системой обнаружения и сигнализации ошибок. Для этих целей используется поразрядный контроль, прямое заполнение битового потока, проверка пакета сообщения CRC-полиномом, контроль формы пакета сообщений, подтверждение правильного приема пакета данных. Хемминговый интервал d=6. Общая вероятность необнаруженной ошибки 4.7x10-11. Система арбитража протокола CAN исключает потерю информации и времени при "столкновениях" на шине. Интерфейс с применением протокола CAN легко адаптируется к физической среде передачи информации. Это может быть дифференциальный сигнал, оптоволокно, просто открытый коллектор и т.п. Несложно делается гальваническая развязка. Элементная база, поддерживающая CAN, широко выпускается в индустриальном исполнении. Полная спецификация СAN приведена здесь — www.gaw.ru/data/Interface/CAN_BUS.PDF.

 

Описание интерфейса CAN

Интерфейс CAN предназначен для организации последовательных, высоконадёжных и недорогих каналов связи в распределённых системах управления. Он позволяет организовывать как мультиплексные каналы, так и высокоскоростные сети. Данный интерфейс имеет протокол, поддерживающий возможность нахождения на магистрали нескольких ведущих устройств и обеспечивает передачу данных в реальном масштабе времени. Интерфейс обладает высокой помехоустойчивостью благодаря коррекции ошибок. Передача данных осуществляется кадрами, которые принимаются всеми устройствами сети. Кадр состоит из идентификатора длиной 11 бит для стандартного формата или 29 бит для расширенного формата и блока данных, содержащего от 0 до 8 байт. Идентификатор описывает содержимое пакета данных и служит для определения приоритета при попытке одновременной передачи несколькими устройствами. Скорость передачи данных выбирается исходя из расстояния, числа абонентов в сети и ёмкости линии связи. Она задаётся программно и может составлять от десятка Кбод до единиц Мбод. Стандарт интерфейса CAN определяет передачу данных независимо от физического уровня, т.е. канал связи может быть каким угодно, например, радиоканалом или оптоволокном. Однако на практике под CAN-интерфейсом обычно подразумевается сеть с физическим каналом связи в виде дифференциальной пары проводов, определённым в стандарте ISO 11898. На рисунке 11 приведена схема подключения устройств к интерфейсу CAN.

 

 

Рис. 11. Схема подключения устройств к интерфейсу CAN

 

Стандартное назначение выводов для широко распространённого 9-контактного разъёма интерфейса CAN приведено на рисунке 12.

 

 

Рис. 12. Стандартное назначение выводов для 9-контактного разъёма CAN-интерфейса

 

Интерфейс CAN относится к типу сетей CR (Collision Resolution, разрешение коллизий), в отличие от сетей типа CD (Collision Detect, обнаружение коллизий), например, Ethernet. Тип сетей CR обеспечивает приоритетный доступ к передаче сообщения, что необходимо для промышленных устройств. Приоритетный доступ к передаче сообщений в стандарте ISO-11898 реализуют так называемые рецессивные и доминантные биты. В зависимости от типа шины, объединяющей устройства CAN, эти биты могут принимать значение лог. 0 либо лог. 1. В таблице приведены два примера организации шин, поясняющие образование управляющих битов.

 

 

Спецификация интерфейса CAN избегает описания двоичных значений сигналов, как лог. 0 либо лог. 1, с целью абстрагирования от среды передачи. Именно поэтому вместо них применяются термины «рецессивный» и «доминантный» биты. При этом подразумевается, что при передаче одним устройством сети рецессивного бита, а другим доминантного, принят будет доминантный бит. Например, при реализации физического уровня с помощью радиоканала отсутствие сигнала означает рецессивный бит, а наличие сигнала — доминантный. Стандарт сети требует от физического уровня передачи, чтобы доминантный бит мог подавить рецессивный, но не наоборот. Например, в оптическом волокне доминантному биту должен соответствовать свет, а рецессивному — его отсутствие. В электрическом проводе рецессивное состояние соответствует высокому потенциалу на линии связи, а доминантное — низкому потенциалу, т.е. когда устройство подключает линию связи к нулевому потенциалу. Если линия находится в рецессивном состоянии, перевести её в доминантное состояние может любое устройство сети, например, включив свет в оптоволокне.

Кадры и их форматы

Кроме рецессивного и доминантного битов, стандарт интерфейса CAN оперирует таким понятием, как кадр, который используется в протоколе обмена информацией между устройствами. Каждый кадр представляет собой единый набор нескольких служебных битов и байтов. Существуют следующие виды кадров: • кадр данных (data frame) служит для передачи данных; • кадр запроса передачи (remote frame) служит для запроса на передачу кадра данных с тем же идентификатором; • кадр перегрузки (overload frame) обеспечивает промежуток между кадрами данных или кадрами запросов; • кадр ошибки (error frame) передаётся узлом, обнаружившим ошибку. В таблицах ниже представлены базовый формат и расширенный формат кадра данных.

Графическое представление данных кадров, с пояснениями и порядком следования бит, приведено на рисунках 13 и 14 соответственно. Межкадровый интервал служит для разделения кадров между собой и состоит как минимум из трёх рецессивных бит. Он необходим передающему устройству для подготовки очередного кадра.

 

 

Рис. 13. Стандартный кадр данных

 

 

Рис. 14. Расширенный кадр данных

 

Арбитраж доступа к шине

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

Защита информации от ошибок

Интерфейс CAN имеет несколько механизмов контроля и предотвращения ошибок. Благодаря арбитражу доступа к шине, производится контроль передачи информации, поскольку при передаче битовые уровни в сети сравниваются с передаваемыми битами
Кроме того, интерфейс CAN использует для защиты информации от ошибок контрольную сумму. Каждый раз при передаче информации, передающее устройство вычисляет контрольную сумму пакета данных и добавляет её в передаваемый кадр. Устройство, принимающее информацию, вычисляет контрольную сумму принимаемого кадра и сравнивает её с контрольной суммой принятого кадра. В случае совпадения контрольных сумм устройство передаёт доминантный бит в промежутке подтверждения. После передачи пяти одинаковых битов подряд передаётся дополнительный бит противоположного значения — так называемый бит-вставка (bit stuffing), который позволяет защититься от сбоя синхронизации устройств при передаче данных, состоящих из одного и того же двоичного кода. Упомянутые выше механизмы позволяют обеспечить передачу информации с вероятностью пропуска ошибки 4,7 х 10^-11.

Технические характеристики шины

Все устройства в сети CAN должны работать с одинаковой скоростью. Стандарт CAN не определяет скорость работы, но большинство как самостоятельных, так и встроенных в МК контроллеров CAN позволяют плавно изменять скорость в диапазоне от 20 Кбит/с до 1 Мбит/с. Существуют также решения, выходящие далеко за рамки данного диапазона. Приведённые выше методы защиты информации от ошибок требуют, чтобы изменение бита при передаче успело распространиться по всей сети к моменту контроля его состояния передатчиком. Это приводит к обратной зависимости длины шины от скорости передачи: чем больше скорость передачи информации, тем меньше должна быть длина шины. Соотношения скорости передачи и длины шины для сетей стандарта ISO 11898 приведены в таблице.

 

 

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

Несомненно, последний тип интерфейса получает все большее распространение в автомобилях и поэтому является самым интересным и лакомым для авто-радиолюбителей, но он применяется только на специализированных версиях микроконтроллеров (список их есть в интернете и поэтому приводится не будет). Если купить такой МК нет возможности можно купить переходник на другой стандарт, например SPI — www.mikroe.com/add-on-boards/communication/canspi/или сделать ограничен, скорее всего тоже потребуется отдельная микросхема.

Контрольные вопросы

1. Перечислите уровни обмена данными в МП - системах.

2. Каково назначение сигналов готовности?

3. Что такое стробирование данных?

4.  Сущность концепции master- slave.

5.  Для чего в МПС используется квитирование?

6. Назначение старт и стоп - битов.

7. Как организуется синхронный обмен данными?

8. Достоинства асинхронного обмена.

9. Отличие последовательного и параллельного интерфейсов.

10. К какому виду интерфейсов относятся SPI и USART?

11. Почему интерфейсы называются дифференциальными?

12. Достоинства дифференциальных интерфейсов.

13. Чем дуплексный режим обмена отличается от симплексного и полудуплексного?

14. Приведите технические характеристики основных интерфейсов МК.

ЛЕКЦИЯ 4. ОБМЕН ДАННЫМИ В МИКРОКОНТРОЛЛЕРНЫХ СИСТЕМАХ



Поделиться:


Последнее изменение этой страницы: 2021-11-27; просмотров: 131; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.119.139.50 (0.044 с.)