Организация передачи данных.
Интерфейс - совокупность аппаратных и программных средств (элементы соединения и вспомогательные схемы управления, их физические, электрические и логические параметры), предназначенных для организации обмена данными и для сопряжения систем или частей системы (программ и устройств).
Под сопряжением подразумеваются следующие функции:
выдача и прием информации;
управление передачей данных;
согласование источника и приемника информации.
Важное значение имеют также следующие технические характеристики интерфейсов:
вместимость (максимально возможное количество абонентов, одновременно подключаемых к контроллеру интерфейса без расширителей);
пропускная способность или скорость передачи (длительность выполнения операций установления и разъединения связи и степень совмещения процессов передачи данных);
максимальная длина линии связи;
разрядность;
топология соединения.
По функциональному назначению можно выделить системные интерфейсы (интерфейсы, связывающие отдельные части компьютера как микропроцессорной системы) и интерфейсы периферийных устройств.
По физической реализации процесса передачи данных интерфейсы делят на:
последовательный
параллельный.
Последовательные интерфейсы
Последовательный обмен характерен для интерфейсов удаленных или медленнодействующих периферийных устройств, а также для интерфейсов распределенной обработки данных.
Единицей обмена в последовательном формате является символ, представленный в одной из систем кодирования и содержащий 5-8 бит. Примером 5-битного кода служит международный телеграфный код №2. Биты кодируются наличием тока в линии (1 или MARK) либо отсутствием тока (0 или SPACE).
Международное признание получил американский стандартный код обмена информацией ASCII (American Standard Code for Information Interchange), в котором символы кодируются 7 двоичными разрядами. Этот код позволяет передавать цифры, прописные и строчные буквы латинского алфавита, целый ряд других символов (всего 96 символов, т. к. 32 кодовые комбинации выделены для представления команд обмена). На основе этого кода построен отечественный код КОИ-7 (код обмена информацией семиразрядный). Применяется также восьмиразрядный код ДКОИ-8.
Для интерфейсов, обеспечивающих соединение «точка-точка» (в отличие от шинных интерфейсов), возможны следующие реализации режимов обмена:
симплексной (данные передаются только в одну сторону);
полудуплексной (данные передаются в обе стороны, но с разделением во времени. Важной характеристикой полудуплексного соединения является время реверсирования режима – то время, за которое производится переход от передачи сообщения к приему и наоборот);
дуплексной (данные передаются в обоих направлениях одновременно).
Важнейшее требование правильного приема — определение приемником моментов времени, в которые следует воспринять очередной бит данных. Иными словами, речь идет о синхронизации процессов в передатчике и приемнике.
На практике применяют два режима последовательного обмена:
асинхронный режим: каждый символ передается автономно по мере готовности, и передача может быть начата в любой момент времени. Приемник и передатчик данных не знают моменты начала и окончания передачи.
Синхронный режим: При синхронной передаче символы следуют один за другим слитно, поэтому можно говорить о передаче массива символов — текста. Если очередной символ не готов, передача не останавливается, передатчик посылает в линию специальные символы синхронизации, до тех пор, пока не сможет передать следующий символ данных. Синхронный обмен повышает скорость передачи данных.
Асинхронный режим.
При асинхронных передачах посылка (кадр), т. е. группа битов, отображающих символ, имеет следующий формат: начало посылки отмечается нулевым старт - битом, за ним следуют 5...8 информационных (младшим разрядом вперед), затем идет необязательный бит контроля по модулю 2 (бит четности/нечетности) и заканчивается посылка 1; 1,5 или 2 единичными стоп-битами.
_______________________________________________________________________
Контроль по модулю 2.
Контроль правильности передачи и хранения данных – важное условие корректного функционирования цифрового устройства. В этой области простейшим и широко применяемым методом является контроль по модулю 2. Приступая к ознакомлению с этим методом, следует остановиться на некоторых понятиях из теории построения помехоустойчивых кодов.
Кодовая комбинация — набор из символов принятого алфавита.
Код — совокупность кодовых комбинаций, используемых для отображения информации.
Кодовое расстояние между двумя кодовыми комбинациями — число разрядов, в которых эти комбинации отличаются друг от друга.
Минимальное кодовое расстояние — минимальное кодовое расстояние для любой пары комбинаций, входящих в данный код.
Кратностью ошибки называют число ошибок в данном слове (число неверных разрядов).
Из теории кодирования известны условия обнаружения и исправления ошибок при использовании кодов:
Существует также понятие веса комбинации, под которым понимается число единиц в данной комбинации.
Для двоичного кода минимальное кодовое расстояние равно 1, поэтому он не обладает возможностями какого-либо контроля производимых над ним действий. Чтобы получить возможность обнаруживать хотя бы ошибки единичной кратности, нужно увеличить минимальное кодовое расстояние на 1. Это и сделано для кода контроля по модулю 2 (контроля по четности/нечетности).
При этом способе контроля каждое слово дополняется контрольным разрядом, значение которого подбирается так, чтобы сделать четным (нечетным) вес каждой кодовой комбинации. При одиночной ошибке в кодовой комбинации четность (нечетность) ее веса меняется, а такая комбинация не принадлежит к данному коду, что и обнаруживается схемами контроля. При двойной ошибке четность (нечетность) комбинации не нарушается — такая ошибка не обнаруживается.
При контроле по четности вес кодовых комбинаций делают четным, при контроле по нечетности — нечетным. Логические возможности обоих вариантов абсолютно идентичны. В зависимости от технической реализации каналов передачи данных, может проявиться предпочтительность того или иного варианта, поскольку один из вариантов может позволить отличать обрыв всех линий связи от передачи нулевого слова, а другой — нет.
Значения контрольного разряда при контроле по четности ( ) и нечетности ( ) приведены для четырехразрядного информационного слова.
Из приведенного материала следует, что контроль по модулю 2 эффективен там, где вероятность единичной ошибки много больше, чем вероятность двойной (или вообще групповой).
В частности, для полупроводниковой основной памяти компьютеров такая ситуация справедлива, т. к. каждый бит слова хранится в своей собственной ячейке, и наиболее вероятны единичные ошибки. А для памяти на магнитных носителях информации (диски, ленты) дефекты таковы, что обычно затрагивают площадь, на которой размещено несколько бит данных, поэтому для этой памяти контроль по модулю 2 неэффективен.
______________________________________________________________________
В отсутствие передачи линия находится под высоким потенциалом (активная пауза), соответствующим логической единице. Появление низкого уровня означает поступление старт-бита, свидетельствующего о последующей передаче известного заранее числа информационных битов. Далее может идти контрольный бит четности (нечетности), назначение и способ выработки которого уже известны. Стоп-бит также используется для проверки правильности передачи, но уже по другому критерию. Контролируется правильность формата посылки. Отсутствие на позиции стоп-бита высокого уровня напряжения свидетельствует об ошибке формата (кадра, обрамления). Длительность стоп-бита определяет минимальный промежуток между окончанием данного символа и началом следующего. Этот промежуток составляет 1...2 интервала, соответствующих биту.
Приемник синхронизируется самим сигналом и должен считывать значения битов в серединах их интервалов, где искажения импульсов наименее влияют на величину считываемого уровня. Это требование достигается следующим образом.
Передатчик и приемник имеют свои генераторы тактовых импульсов, работающие на одинаковой частоте. При отсутствии передачи передатчик устанавливает в линии высокий уровень напряжения (марку). Появление нуля (старт-бита) отмечает начало передачи, которое, таким образом, фиксируется фронтом напряжения "1 — 0". От этого фронта начинает работать генератор приемника. Приемник выдерживает интервал в половину длительности бита, проверяет, есть ли еще нуль на входе (контролирует истинность старт-бита с целью исключить реакцию на кратковременную помеху), и затем начинает воспринимать данные с интервалом в длительность бита (если старт-бит не подтвердился, то приемник возвращается в исходное состояние). Частота генераторов передатчика и приемника реально сличаются, поэтому отсчеты постепенно "сползают" с середины битов и смещаются к тому или другому краю импульсов. Однако за время короткой посылки (не более 10...11 битов) смещение отсчетов с середины битов легко сделать пренебрежимо малым.
Выборка отсчетов в середине битов производится благодаря наличию в адаптере последовательного интерфейса частоты, более высокой, чем частота следования битов (обычно в 16 раз). После пуска генератора CLK с помощью счетчика отсчитывается 8 импульсов, что и отмечает середину старт-бита. Затем отсчеты повторяются с интервалом т, получаемым от деления частоты CLK на 16 (рис. Временные диаграммы). В конце проверяется стоп-бит, отсутствие при этой проверке высокого уровня напряжения устанавливает триггер ошибки формата. Если это запрограммировано, то проверяется и четность веса посылки с учетом контрольного разряда. Для фиксации результата этой проверки также имеется специальный триггер. Оба указанных триггера (флажка) — разряды внутреннего регистра состояния адаптера последовательного интерфейса.
Принятый символ поступает в регистр хранения, находящийся в буфере ШД, для последующей передачи в виде параллельного кода. После этого приемник ищет следующий символ и сдвигает его в регистр сдвига. В регистр хранения второе слово не идет, пока не считано первое. Может в это время пойти третий символ, тогда второй будет потерян, поскольку хранить его негде. Это ошибка пропуска (переполнения), которая тоже фиксируется установкой соответствующего триггера-флажка в регистре состояния адаптера. Ошибка пропуска не возникает, если микропроцессор обеспечивает считывание слова за интервал, меньший, чем интервал вдвигания символа в сдвигающий регистр.
Синхронный режим.
Синхронная передача начинается с одного или двух специальных символов синхронизации (синхрослов), после которых последовательно без всяких разделителей передаются 5-8 битные коды символов с необязательными символами четного или нечетного паритета.
SYN1, SYN2 – синхрослова (признак начала передачи);
Символ 1, символ N – числа для передачи (данные).
Различают две разновидности синхронных передач — с внутренней и внешней синхронизацией.
При внутренней синхронизации перед массивом данных передаются слова — сиихросимволы (одно или два). При отсутствии передачи передатчик не перестает работать, а посылает в линию символы синхронизации, пока не возобновится передача данных. Приемник при этом находится в режиме активного ожидания (в английской терминологии в режиме Нип1 — охоты). Он сравнивает каждое принятое слово с символом синхронизации. Если результат сравнения отрицательный, то обращения к данному приемнику нет (по описанному протоколу к одному передатчику можно подключить несколько приемников, имеющих индивидуальные синхросимволы). Если же опознается синхросимвол данного приемника, то это означает, что передатчик обращается к нему и первое же слово, не являющееся синхросимволом, принимается как информационное, начинающее информационный массив. После начала массива приемник считает передаваемые символы или же сопоставляет их с символами синхронизации, определяя одним ил этих способов конец передачи.
В адаптере имеются регистры, хранящие назначенные для данного приемника коды синхронизации (регистры РСС1 и РСС2).
Символы данных не разделяются старт - и стоп-битами. После символа из 5...8 битов может идти контрольный бит, возможен и контроль по модулю 2 для всего массива, в этом случае контрольный бит появляется в конце передачи данных.
При внешней синхронизации в канал связи вводится дополнительная линия, по которой передается строб-сигнал, отмечающий интервал времени, соответствующий передаче данных. Фронты строба отмечают начало и конец передачи массива, в котором символы по-прежнему передаются слитно (без старт- и стоп-битов).
1. RS-232
Для краткости мы будем использовать два специальных обозначения:
DTE (Data Terminal Equipment) — оконечное оборудование, принимающее или передающее данные. В качестве DTE может выступать компьютер, принтер, плоттер или другое периферийное оборудование;
DCE (Data Communications Equipment) — аппаратура канала данных. Функция DCE состоит в обеспечении возможности передачи информации между двумя или большим числом DТЕ. Для этого DCE должно обеспечить соединение с DTE, с одной стороны, и с каналом передачи — с другой. Роль DCE чаще всего выполняет модем,
Из-за простоты и низких аппаратных требований (в сравнении, например, с параллельным интерфейсом), последовательные интерфейсы активно используются в электронной промышленности.
Стандарт RS-232 (его официальное название "Interface between DTE and Data Circuit-termination Equipment Employing Serial Binary Data Interchange") предназначен для подключения аппаратуры, передающей или принимающей данные, к оконечной аппаратуре каналов данных. Стандарт описывает управляющие сигналы интерфейса, пересылку данных, электрический интерфейс и типы разъемов.
Конечной целью подключения является соединение двух устройств DTE, полная схема соединения приведена на рис. 1а.
Рис 1. Соединение по RS-232C. а - полная схема соединения;
б - соединение через нуль-модемный кабель.
Интерфейс RS-232 используется и во многих устройствах обычного персонального компьютера, начиная с "мыши" и модема до ключей аппаратной защиты. И хотя уже все компьютеры имеют интерфейс USB, интерфейс RS-232 еще жив и активно применяется.
Вообще говоря, стандарт RS-232 состоит из трех частей. Первая часть, стандарт RS-232С, была принята в 1969 году и содержит описание электрических цепей и сигналов несимметричной последовательной связи. Вторая часть, стандарт RS-232D, принята в 1987 году. Третья часть, RS-232Е, принята в 1991 году.
Обмен информацией между компьютером и периферийным устройством по интерфейсу RS-232 двусторонний, т.е. данные могут передаваться компьютером в периферийное устройство и приниматься компьютером от периферийного устройства.
В компьютере предусмотрен специальный разъем, называемый коммуникационным (СОМ). К разъему подключается кабель, соединяющий компьютер с периферийным устройством. В кабеле находятся несколько проводов, которые называют линиями интерфейса.
Согласно стандарту RS-232, сигнал (последовательность битов) передается напряжением. Передатчик и приемник являются несимметричными: сигнал передается относительно общего провода. Логическому нулю на входе приемника соответствует диапазон +3...+ 12 В, а логической единице — диапазон —12...—3 В. Уровни сигнала на выходах должны быть в диапазоне —12...—5В для представления логической единицы и +5...+ 12В для представления логического нуля.
Между уровнями -3...+3В имеется зона нечувствительности, обусловливающая гистерезис приемника: состояние линии будет считаться измененным только после пересечения соответствующего порога.
На рисунке показан формат данных, посылаемых по линии данных TxD интерфейса RS-232.
Как следует из рисунка, передача начинается с так называемого старт-бита, затем идут биты данных (их может быть от пяти до восьми), далее следует бит паритета или четности (который может отсутствовать) и затем следуют стоп-биты (их может быть либо один, либо два). На практике используют 8 бит данных; бит паритета (на рис. 1.1 не показан), как правило, не используется; при максимально высокой скорости передачи желательно передавать два стоп-бита.
Состояние линии RS-232 при отсутствии передачи называется MARK (отметка), состояние линии при начале передачи (старт-бит) - SPACE (пробел). Низкий уровень напряжения относительно "земли" на линии в состоянии MARK соответствует от -3 до -12 В, высокий уровень напряжения линии в состоянии SPACE — от +3 до +12 В. В интервале -3...+3 В состояние линии не определено. На практике в подавляющем большинстве случаев высокий уровень напряжения составляет около +10 В, низкий - около -10 В. В редких случаях напряжения могут быть снижены соответственно до +5 и -5 В. Это бывает, когда от интерфейса не требуется особенно высокая скорость передачи, а устройство, обменивающееся информацией с компьютером по RS-232, имеет батарейное питание (как правило, литиевую батарейку напряжением около 3 В) и критично к расходу энергии.
Наименование и назначение сигналов интерфейса RS-232C приведены в таблице.
Наименование |
Назначение |
Тип линии |
PG (Protected Ground) |
Защитная земля, соединяется с корпусом устройства и экраном кабеля |
- |
SG (Signal Ground) |
Сигнальная (схемная) земля, относительно которой действуют уровни сигналов |
- |
TxD (Transmitter Data) |
Передатчик данных (от контроллера к оконечному устройству) |
Выходная |
RxD (Receiver Data) |
Приемник данных (от оконечного устройства к контроллеру) |
Входная |
RTS (Request to Send) |
Запрос передачи данных. Сигнал готовности данных для передачи из контроллера к оконечному устройству. Состояние «включено» уведомляет модем о наличии у терминала данных для передачи. |
Выходная |
CTS (Clear to Send) |
Готовность регистра приема оконечного устройства. Состояние «выключено» аппаратно запрещает передачу данных. Сигнал используется для аппаратного управления потоками данных |
Входная |
DSR(Data Set Ready) |
Готовность оконечного устройства к обмену данными. Состояние «включено» поддерживает коммутируемый канал в состоянии соединения. |
Входная |
DTR (Data Terminal Ready) |
Готовность контроллера к обмену данными (модем в рабочем режиме подключен к каналу и закончил действия по согласованию с аппаратурой на противоположном конце канала). |
Выходная |
DCD (Data Carrier Detected) |
Готовность удаленной аппаратуры оконечного устройства к обмену данными. |
Входная |
RI (Ring Indicator) |
Прерывание от оконечного устройства. В коммутируемом канале этим сигналом модем сигнализирует о принятии вызова. |
Входная |
Рассмотрим, каким образом происходит обмен данными с помощью интерфейса RS-232С.
На рисунке 3.1 представлена последовательность управляющих сигналов интерфейса RS-232. Она имеет следующий физический смысл:
Установкой DTR контроллер указывает на желание использовать оконечное устройство.
Установкой DSR оконечное устройство сигнализирует о своей готовности к работе.
Установкой RTS контроллер запрашивает разрешение на передачу и заявляет о своей готовности принимать данные от оконечного устройства.
Установкой CTS оконечное устройство уведомляет о своей готовности к приёму данных.
Снятием CTS оконечное устройство сигнализирует о невозможности дальнейшего приёма (например, буфер приёма заполнен) — контроллер должен приостановить передачу данных.
Установкой CTS оконечное устройство разрешает компьютеру продолжить передачу (например, в буфере появилось место).
Снятием RTS контроллер информирует оконечное устройство о своей неготовности к обмену данными. Это может означать как заполнение буфера приёма контроллера, так и отсутствие данных для передачи в оконечное устройство.
Оконечное устройство подтверждает снятие RTS снятием CTS.
Контроллер повторно устанавливает RTS для возобновления обмена данными.
Оконечное устройство подтверждает готовность к обмену установкой CTS.
Снятием RTS контроллер указывает на завершение обмена.
Оконечное устройство подтверждает снятие RTS снятием CTS.
Контроллер снимает DTR для перевода оконечного устройства в автономный или «спящий» режим.
Оконечное устройство подтверждает снятие DTR снятием DSR.