Это наиболее простой и надежный вид связи. Преимущество - min количество линий связи.
Последовательный интерфейс для передачи данных использует одну сигнальную линию, по которой информационные биты передаются друг за другом последовательно. Это позволяет сократить количество сигнальных линий и увеличить дальность связи, за счет применена не ТТЛ сигналов. Иногда применяется гальваническая развязка внешних сигналов от схемной земли, это позволяет соединять устройства находящиеся под различным потенциалом.
Наибольшее распространение получили интерфейсы RS-232C, RS-422A, RS-423A, RS-485, токовая петля, MIDI, COM-порт.
При последовательном интерфейсе возможны два способа передачи данных асинхронный и синхронный.
При асинхронной передаче каждому байту предшествует старт-байт, сигнализирующий приемнику о начале посылки. Завершает посылку стоп-бит, гарантирующий паузу между посылками.
Старт-бит следующего байта может подаваться в любой момент после стоп-бита, то есть пауза между байтами может быть произвольной. По сигналу старт-бита (лог 0) осуществляется синхронизация приемника, при этом основным условием является равенство скоростей (частот) обмена приемника и передатчика. Счетчик делитель опорной частоты приемника запускаемый сигналом старт-бита генерирует внутренние стробы, по которым приемник фиксирует последующие принимаемые биты. Идеальный вариант, когда стробы расположенные посредине битовых интервалов.
Старт-бит логическая «1» указывает на начало передачи данных. Наиболее распространенный 8 битовый набор данных байт, но возможно и меньшее количество бит (5 бит в телетайпе). За посылкой данных может следовать бит четности (контрольный бит) применяемый бит проверки правильности полученных данных.
Существует два типа проверки данных:
- На нечетность odd (число «1» включает бит четности - нечетно)
- На четность even (число «1» включает бит четности - четно) В некоторых контроллерах эта операция осуществляется программно, и затем
весь пакет помещается в регистр. Алгоритм работы
Первый метод - асинхронный приемник ждет прихода старт-бита. С момента передачи, через 0,5 времени передачи одного бита линия опрашивается на предмет достоверности старт-бита. Если подтверждается достоверность старт-бита, приемник начинает считывание данных синхронизируясь импульсами внутреннего генератора.
Второй метод - асинхронной передачи данных использует код типа "Manchester". При этом методе передачи каждого бита данных синхронизируется импульсом, а значение бита («0» или «1») определяются промежутком времени до следующего импульса.
Формат асинхронной посылки позволяет выявлять следующие ошибки передачи:
- Если принять перепад, сигнализирующий о начале посылки, а по стробу старт-бита зафиксирован уровень логической 1 - старт-бит считается ложным.
- Если во время, отведенное под стоп-бит, обнаружен уровень логический 0, фиксируется ошибка стоп-бита.
- Если применяется контроль четности, то после посылки бит данных передается бит данных, передается контрольный бит который, дополняет количество единичных бит до четного или нечетного (в зависимости от принятого соглашения). Прием байта с неверным значением контрольного бита приводит к фиксации ошибки.
- При обрыве линии, логический ноль воспринимается, как старт-бит и нулевые биты и по стоп-биту фиксируется ошибка.
Для асинхронного режима принят ряд стандартных скоростей обмена: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 (бит/с). Количество бит данных может составлять 5, 6, 7, 8.
Количество стоп-бит 1, 1.5, 2.
Асинхронный метод в РС реализуется с помощью СОМ-порта по протоколу RS-
232C.
Синхронный режим обеспечивается постоянной активностью канала связи. Посылка начинается с синхробайта, за которым сразу же следует поток информационных бит. Если у передатчика нет данных для передачи, он заполняет паузу непрерывной посылкой байтов синхронизации.
В связи с жесткими требованиями к синхронизации (даже малое отклонение частоты приводит к искажению принимаемой информации) применяют:
- Внешнюю синхронизацию с отдельной линией для передачи сигнала синхронизации.
- Внешняя синхронизация с использованием синхронизирующегося кодирования данных.
Синхронный последовательный обмен
Для реализации синхронного обмена в месте с данными посылают синхронизирующий сигнал.
- Microwire
- SPI
В этих протоколах каждое устройство адресуется индивидуально, а линии передачи данных и синхронизация могут быть общими для нескольких устройств. В каждый момент времени только одно из подключенных устройств может работать с МК. 1.4. Методы кодирования цифровой информации
Передача цифровой информации между удаленными устройствами, как правило, осуществляется последовательным способом передачи данных.
Физической основной, такой системы является линия связи в виде витой пары проводников, коаксиального кабеля, либо оптического световода.
В зависимости от расстояния линии, данные могут многократно подвергаться ретрансляции с целью восстановления амплитуды и временных характеристик.
Работа ретранслятора, передатчика и приемника определяется выбранным кодом:
^ Простейшим линейным кодом (а) является униполярный код типа NRZ (non return to zero) в этом коде нули представлены отсутствием импульса (напряжение ~ 0), а единицы наличием импульса (некоторое положительное напряжение)
> Биполярный сигнал NRZ (b) обладает лучшими энергетическими
P = ТТ2/4R
характеристиками ' , остальные недостатки сохраняются, их
ликвидация осуществляется введением избыточности одним из двух методов:
— скорость передачи сигналов выбирается больше скорости передачи информации без дополнительных уровней сигнала
— скорость передачи сигналов и скорость передачи информации выбираются равными с введением дополнительных электрических уровней сигнала.
> Код Манчестер - II выполнен на базе первого метода, при этом единица кодируется отрицательным перепадом сигнала в перепаде битового интервала, ноль - положительным перепадом. На границах битовых интервалов сигнал имеет значение, если это необходимо. Критерием ошибки может служить задержка сигнала на одном из уровней на время превышающее время передачи одного информационного бита.
> Код AMI (2) (alternate mark inversion) использует второй метод избыточности введением третьего нулевого уровня. Постоянная составляющая отсутствует, но остается одна проблема - потеря синхронизации как в коде NRZ.
> Код BNZS (d) /(bipolar with N repoes substitu tion) усовершенствованный код AMI в котором пауза заполняется определенной заставкой, каждые три последовательные нуля поднимаются комбинациями BOV или OOV. В коде (2) B6ZS - заменяется каждая шестая последовательность нулей, на комбинацию OVBOVB
^ Код HDB3 (ж) - очень похож на BNZS, каждые четыре нуля подменяются на последовательность OOOV или BOOOV.
Линия связи - кабель, содержащий две витые пары в общей или в отдельных экранных оплетках. Первая пара используется для передачи данных в коде NRZ, вторая для передачи синхронизирующих импульсов. По положительному перепаду подтверждается истинность очередного информационного бита.
Согласующие блоки подключаются на конце кабеля, и служит для гашения отраженных импульсов с помощью резисторов, величина которых выбирается равной волновому сопротивлению витой пары.
При обмене информацией процессора с контроллерами содержит стартовый байт, код страницы и байт данных.
В магистрали определяет четыре типа обменов:
> Выбор контроллера КОП = 001; в разрядах данных процессор выставляет адрес контроллера, с которым необходимо связаться.
^ Запись данных в выбранный контроллер КОП = 111, в разрядах данных выставляется необходимые данные. Данные могут записываться:
a) в информационный регистр контроллера
b) в регистр состояния
c) в один из служебных регистров
> Чтение данных из контроллера выбранного первой командой КОП = 110. стартовый и три командных бита посылаются в магистраль из процессора, после чего он переключается на прием данных, которые выставляет выбранный ранее контроллер.
> Приглашение к присваиванию КОП = 000. Стартовый и три командных бита поступают в магистраль из процессора, после чего он переключается на прием, считываемые процессором данные, представляют собой адрес из наиболее приоритетного контроллера, из числа требующих обслуживания, с одновременной адресацией программы обслуживания данного контроллера.
Процессор периодически, например каждые 0,5 мс выдает в магистраль приглашение КОП = 000.
- Если претендентов нет, то в данных окажутся нули, этот код не используется, поэтому процессор не узнает, что ни один контроллеров не требует обслуживания.
- Если есть один претендент, то считываемые данные принимаются и обрабатываются.
- Если претендентов несколько, то побеждает контроллер с большим собственным адресом.
Предположим несколько претендентов (контроллеров) решили воспользоваться приглашением по команде КОП 000, с собственными адресами:
В нулевом разряде выдают единицы первые два контроллера. Третий, увидев единицу и зная, что его старший разряд нулевой - выбивает из конкурса.
До четвертого разряда данные совпадают, поэтому ничего не происходит.
В четвертом разряде первый контроллер выставляет 1, а второй контроллер 0, вследствие чего выбивает из борьбы, оставшиеся данные выдаются из первого контроллера. Процессор принимает данные и переходит к соответствующей программе обслуживания, после выполнения, которой возвращается к прерванной задаче.
При наличии в линии NRZ кода коп = 000 и наличие собственного запроса срабатывает логический элемент И1, в результате триггер Т выставляет 1 на вход логического элемента И2, разрешая передачу собственного адреса через И2 и тризистор VT1 в линию NRZ.
Если разряд собственного адреса равен нулю, а в линию кто либо из конкурентов выдал 1, то отрабатывая логический элемент из на R входе триггера, на выходе которого устанавливается 0 запрещая дальнейшую передачу собственного адреса в линию логический элемент И2.
Повышение скорости обмена
Линия NRZ
Информация осуществляется переводом контроллеров в ждущий режим.
При работе с периодическим прерыванием приглашение осуществляется, например, через каждые 0,5мс контроллер может опаздывать к моменту приглашения и ему придется ждать следующего текстового приглашения, что не всегда допустимо.
Увеличение частоты следований прерываний не решает проблемы, т.к. в этом случае большая часть машинного времени будет тратиться в холостую.
Представленная схема позволяет по двухпроводной линии передавать запрос на прерывание, а также информацию.
В исходном состоянии ЦП работает по своей программе не связанной с обменом. Триггер Т1 установлен в 1 (разрешающее) состояние, триггер Т2 выдающий команду на прерывание сброшен. В линии связи установлен низкий уровень, который поддерживается инвертором D1 с открытым коллектором на выходе, находящиеся в открытом состоянии.
После выполнения каждой команды из устройства управления процессора на один из выходов элемента D2 поступает импульс, опрашивающий состояние линии связи. Так как в исходном состоянии в линии установлен низкий уровень, логический элемент D1 выключается и в линии благодаря резистору R устанавливается высокий уровень 1. После выполнения очередной команды процессор формирует импульс опроса, на элементе D2 три единицы разрешающие установку триггера Т1 в 1 состоянии которые для процессора является командой перехода к прерывающей программе. Одновременно сигнал с триггера Т1 пройдя линию задержки открывает тризистор VT, формируя в линии сигнал низкого уровня «0».
На выходе элемента DS вырабатывается ответный сигнал высокого уровня, сообщающий контроллеру, о том, что его запрос принят и процессор готовится к обслуживанию.
Далее процессор выключает триггеры Т и Т2, тризистор VT закрывается, в линии устанавливается сигнал высокого уровня, ответный сигнал высокого уровня на выходе элемента D3 снимается и контроллер готов принять информацию по линии связи, а процессор готов к обмену.
По окончании обмена запрос снимается, на выходе элемента D1 по команде контроллера формируется «1» соответственно на выходе «0», триггер Т1 по команде процессора устанавливается в исходное состояние, а процессор возвращается к фоновой задаче.
Каналы использующие код Манчестер II
Сигнал в коде Манчестер II может быть получен суммированием по модулю
0 коммент.:
Отправить комментарий