Основы последовательной передачи данных

Программирование последовательного порта

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

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

Первичная скорость изменения электрических характеристик сигнала в канале связи выражается в бодах(по фамилии французского изобретателя телеграфного аппарата Emile Baudot – Э.Бодо). Скорость передачи в бодах есть число потенциально реализуемых переходов между различными состояниями каналами за единицу времени независимо от числа состояний и их интерпретации.

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

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

Сигнал на линии может быть высокого или низкого уровня, что соответствует логическим нулю и единице, и говорят, что линия отмечена (MARK), когда уровень высокий, и пустая (SPACE), когда уро­вень низкий. В отсутствии передачи данных линия поддерживается в состоянии MARK.

В начале передачи байта данных сигнал на линии переходит в 0, отмечая стартовый бит. Затем следуют восемь (или меньше) битов данных в виде набора высоких и низких уровней. Последний бит данных может сопровождаться битом четности, используемым для обнаружения ошибок, а затем в последователь­ность включаются один или более стоповых битов, которым соответствует высокий уровень.

Стоповые битыначинают отмеченное состояние, которое будет сохраняться до тех пор, пока не начнется передача следующего байта данных: число стоповых битов существенно, пос­кольку они устанавливают минимальное время, которое должно пройти до следующего стартового бита.

Таким образом, информационный кадрвключает стартовый бит, слово (5-8 бит), бит четности и стоповый бит (рис. 48). Длина слова образует основную единицу данных. Хотя привычно работать с пакетами по 8 бит, для стандартных файлов ASCII (в которых все символы имеют коды, не превышающие 128) достаточно 7 бит.

 

 

 

 


Рис. 48. Формирование информационного кадра.

 

 

В отличие от асинхронного режима передачи данных синхронный режимпредполагает постоянную активность канала связи. Посылка начинается с передачи синхробайта, за которым вплотную следует последовательность передаваемых бит. Если у передатчика нет данных, то он заполняет паузу непрерывной передачей старт-бит. При синхронном обмене можно добиться больших скоростей обмена, т.к. не требуется предавать старт-стопные биты и бит четности (в асинхронном режиме на каждые 8 бит данных приходится по 3-4 служебных бита).

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

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

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