в начало
В случае последовательных компьютерных интерфейсов взаимосвязь устройств по этому интерфейсу осуществляется по принципу «точка-точка» или по схеме многоуровневой звезды, подобным сетевым структурам.
В связи с этим протоколы последовательных интерфейсов используют те же принципы построения, что и сетевые протоколы. Если использовать термины модели взаимодействия открытых систем (OSI), то последовательный интерфейс можно представить в виде трехуровневой модели, содержащей прикладной, канальный и физический уровни.
Последовательный интерфейс, как правило, соединяет главный контроллер (хост-контроллер) или просто контроллер системного блока компьютера с контроллером или адаптером периферийного устройства. Главный контроллер или просто контроллер взаимодействует с центральным процессором посредством интерфейса ввода/вывода (шина расширения, например, PCI).
Прикладной уровень на стороне центрального процессора представляет из себя программное обеспечение, которое управляет работой ПУ, реализуя ту или иную функцию. На стороне ПУ этот уровень соответствует тому функциональному назначению, которое имеет данное ПУ (вывод на печать, ввод с клавиатуры, указатель типа «мыши» и т.п.).
Канальный уровень реализует протокол передачи данных между главным контроллером и ПУ. В общем случае между задатчиком и исполнителем.
Канальный уровень функционирует с блоками (кадрами или пакетами) данных и обеспечивает синхронизацию между приемником и передатчиком на уровне блоков. При такой синхронизации приемник должен распознать начало первого байта блока, распознавать границы полей блока и распознавать признаки конца блока.
Физический уровень представляет аппаратные и программные средства подключения ПУ к главному контроллеру или просто контроллеру, который находится в системном блоке компьютера через соответствующие порты ввода/вывода.
На физическом уровне в последовательном интерфейсе единицей информации является бит, поэтому средства физического уровня всегда поддерживают побитовую синхронизацию между приемником и передатчиком.
В данном параграфе рассматриваются протоколы канального уровня, принципы их построения и функционирования.
Основными режимами передачи информации по последовательному интерфейсу являются асинхронная и синхронная передача данных, которым соответствует асинхронные и синхронные протоколы. Данные передаются последовательно бит за битом, биты образуют байты (определенные символы), а байты образуют блоки передаваемых данных.
Тип протокола (асинхронный, синхронный) определяется по принципу синхронизации байта (символа) и блока. Асинхронный протокол: асинхронная передача байт (символов) и синхронный байт в байте. Синхронный протокол: синхронная передача байт, асинхронный – блоков.
Асинхронные протоколы представляют собой наиболее старый способ связи типа «точка-точка». Эти протоколы оперируют не с блоками, а с отдельными символами, которые представлены байтами и старт-стопными битами. Примером асинхронного последовательного интерфейса может служить интерфейс RS-232C. По таким интерфейсам подключаются низкоскоростные ПУ.
Такой режим работы называют асинхронным или старт-стопным.
В старт-стопным (асинхронном) режиме каждый байт данных сопровождается специальными сигналами «старт» (начало байта) и «стоп» (конец байта). Назначение этих сигналов состоит в том, чтобы известить приемник о начале и конце передачи байта, а также для того, чтобы дать приемнику достаточно времени для выполнения некоторых функций, связанных с синхронизацией, до поступления следующего байта. Сигнал «старт» имеет длительность в один такт, сигнал «стоп» может длиться один, полтора или два такта (см. §1.7, рисунок 1.15).
В синхронных протоколах обмен данными осуществляется блоками (кадрами, пакетами), которые имеют в общем случае заголовок, поле данных и концевик. Все биты блока передаются непрерывным синхронным потоком, что значительно ускоряет передачу данных.
При синхронном режиме передачи старт-стопные биты между байтами отсутствуют, Пользовательские данные собираются в блоки, которые предваряются байтами синхронизации. Байт синхронизации содержит заранее известный код, например, 01111110, который оповещает приемник о приходе блока данных. При его получении приемник должен войти в байтовый синхронизм с передатчиком, т.е. правильно понимать начало очередного байта блока.
Байты в этих протоколах не отделяются друг от друга служебными сигналами. Поэтому приемник должен распознавать границы байт, далее он должен найти начало и конец блока, а также определить границы каждого поля блока- адреса назначения, поля данных, контрольной суммы и т. п.
Синхронные протоколы канального уровня бывают двух типов: символьно-ориентированные (байт-ориентированные) и бит-ориентированные.
Для обоих используются одни и те же методы синхронизации бит. Главное различие заключаются в методе синхронизации символов и блоков.
Символьно-ориентированный протокол использует для синхронизации специальные служебные символы. Символ SYN передатчик добавляет перед каждым блоком данных, а затем для обозначения начала и конца данных вставляет символ STX (Start of Text) и ЕТХ (End of Text) соответственно.
Этот способ неудобен тем, что требует добавление много избыточных данных для реализации синхронизации.
В настоящее время наиболее широко используются бит-ориентированные протоколы, которые являются более универсальными.
В этом случае (см. рисунок 1.25) при не занятом канале по нему не передается никаких символов.
Перед началом передачи кадра передатчик начинает передавать последовательность бит (101010...10) для того, чтобы приемник вошел в битовую синхронизацию. Эту последовательность называют преамбулой. Войдя в битовую синхронизацию приемник исследует входной поток на побитовой основе, пока не обнаружит байт начала кадра (10101011). За этим байтом следует заголовок кадра, затем идут поле данных и концевик. В качестве концевика используется либо специальный байт, либо определенное физическое состояние линии передачи данных
Протоколы последовательной передачи данных используют две процедуры организации взаимодействия передатчика и приемника: без установления соединения и с предварительным установлением логического соединения.
Передача кадра без установления соединения называется дейтаграммной процедурой. В этом случае передатчик никакой ответственности за утерю передаваемого кадра не несет.
Дейтаграммный метод работает быстро, но он не гарантирует доставки пакета.
Передача с установлением соединения более надежна, но требует большего времени для передачи данных и вычислительных затрат от конечных узлов.
В случае метода с установлением соединения передача данных состоит из трех основных этапов, на каждом этапе передаются соответствующие пакеты информации (см. рисунок 1.26).
Сначала идет служебный пакет (маркерный пакет), посредством которого начинается процесс установки логического соединения. Затем в рамках установленного соединения передается пакет данных. После передачи данных инициируется разрыв данного логического соединения и передается пакет, сообщающий о том успешно или нет проведена передача данных.
Протокол дейтаграммного типа поддерживает только один тип кадра – информационный. Протокол с установлением соединений должен поддерживать несколько типов кадров (пакетов) – служебные и информационные.