Начинающим о AVR микроконтроллерах
Что такое протоколы в AVR микроконтроллерах
Протокол в микроконтроллерах это своего рода соглашение о том каким образом будет происходить обмен информацией между объектами.
Ну то есть если по-простому, то выглядит это примерно так: два человека заранее договариваются каким образом они будут поддерживать связь: через е-мэйл, через СМС- сообщения или вообще при помощи азбуки Морзе...
Соответственно, устанавливать эти соглашения можно по-разному. Например, существует сетевая модель OSI – крутая в определённых кругах, однако тут мы её рассматривать не будем, рассмотрим лучше следующие уровни, где могут формироваться протоколы:
- физический: тут определяется среда передачи сигнала. Например, для протокола разговора людей это будет воздух, для электроники - провода. Тут также учитываются физические характеристики сигнала: для разговора необходим звук с частотой 16 – 20000 Гц, а для передачи сигнала – определённый уровень напряжения в проводах (смена уровня)
- информационный уровень – тут устанавливается механизм передачи 1 единицы информации – бита, звука, слова, байта и т. д.
- логический уровень - тут происходит передача уже смысла в виде предложений, команд. Именно здесь описываются правила начала и завершения разговора, очередности реплик, сами команды и прочее, а также правила адресации и подчинённости.
Итак, протоколы бывают разными. Выделяют кучу разных группировок, но мы рассмотрим следующие разбиения» протоколов:
синхронные и асинхронные протоколы
При использовании синхронных протоколов, понятное дело, идет постоянная синхронизация приёмника передатчиком . То есть передатчик у нас – как бы дирижёр а все приёмники – остальной оркестр. Когда дирижёр скажет играть – то бишь, читать – тогда остальные и начнут действовать.
Реализацией синхронизации может быть согласование таймеров, или, например, может быть выделена отдельная линия для передачи импульсов типа «прочитай сейчас».
Вот как это примерно выглядит:
Нижняя линия связи – информационная, по ней мы и передаём наши данные, а вот верхняя – «временная», как только на ней уровень сигнала переходит с 0 в 1 – приёмнику можно считывать бит.
В асинхронных же протоколах приёмник считает, что передатчик точно работает с ним на одной и той же частоте. В том же оркестре – это как если бы каждый музыкант ориентировался по своему метроному. И понятно, что если вдруг у нас эти самые частоты не совпадают, то приёмник получает полную лабуду вместо информации...
То есть через равные промежутки времени наш приёмник будет считывать единицу информации.
Получается, что в асинхронных протоколах расстояния между тактами могут быть только одинаковыми, а вот в синхронных – совсем не обязательно.
параллельный и последовательный протокол
Последовательные протоколы передают информацию побитно, через одну линию, а параллельные занимают несколько выводов, зато могут передавать, например, байт за раз:
Дуплексный, полудуплексный и однонаправленный протокол
Дуплексные протоколы (устройства, режимы работы) позволяют одновременно и принимать, и передавать данные – через два канала связи, обычно разделённых физически.
Полудуплексные же используют один канал связи попеременно для передачи и для приёма данных. При этом одновременное использование линии связи для передачи либо невозможно физически, либо –а-та-та! – приводит к так называемой коллизии.
Так, например, разговор по телефону – это дуплексная связь, а по рации – уже полудуплексная.
Ну и особняком стоят однонаправленные, они же симплексные, протоколы – тут, понятно, есть передатчик и приёмники, и ролями они не меняются.
Источник: http://avr.ru