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

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

    старт–бит, который передается первым и фиксирует начало передачи данных (начало пакета). Этот бит используется приемником для синхронизации про­цесса чтения последующих бит данных;

●     бит четности, который следуют за битами данных, предназначен для провер­ки правильности полученных данных;

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

Возможны два вида проверки правильности принятых данных:

●     проверка на четность (Even), при которой общее количество единичных бит в посылке должно быть четным. Например, при передаче байта 1001 0110 ус­танавливается бит четности, равный 0;

●     проверка на нечетность (Odd) означает, что число единиц в пакете данных, включая бит четности, должно быть нечетным. Например, при передаче того же байта устанавливается бит четности, равный 1, что делает общее количе­ство единичных бит в посылке нечетным числом, равным пяти. Контроль на четность реализуется с помощью логического элемента ИСКЛЮ­ЧАЮЩЕЕ ИЛИ (или операции XOR) над всеми битами принимаемого байта дан­ных Char = D7D6D5D4D3D2D1D0. Значение бита четности можно определить про­граммно.

Для микроконтроллера 8051 такая процедура выполнятся с помощью сле­дующей программы:

movR(NNN), #date8           ; Загрузка числа 8 в регистр R(NNN)

movA, #date0                       ; Очистка регистра A

P_Loop:                                            ; Адрес возврата после обработки каждого бита

xrl    A, Char                        ; Операция XOR на содержимым аккумулятора

; и операндом Char

rlc    А                                    ; Сдвиг влево А, чтобы перейти к следующему биту

djnz R(NNN), P_Loop         ; Уменьшение регистра на 1; если не нуль,

; то переход по адресу метки P_Loop

Программная реализация операции XOR над всеми битами байта Char показана на рис. 4.5.1. На каждом шаге алгоритма выполняется:

●     операция XOR над текущим содержимым аккумулятора А и операндом Char с сохранением результата в аккумуляторе, т. е. А Char —> А;

●     сдвиг содержимого аккумулятора А на один разряд влево через триггер переноса С.

На шаге 1 алгоритма после выполнения операции 0 Char = Char с сохранени­ем результата в аккумуляторе А и сдвига содержимого А на один разряд влево через триггер переноса С получаем значение бита 1 аккумулятора, равное X1 = D0.

На шаге 2 алгоритма после выполнения операции XOR над битами 1 аккумуля­тора и операнда с последующим сдвигом влево на один разряд содержимого А получаем значение бита 2 аккумулятора, равное Х2 = D0 D1.

После шага 3 получим значение бита 3 аккумулятора ХЗ = D0 Dl D2 и т. д.

После восьмого сдвига в триггере переноса С оказывается бит контроля четности С = Х8 = D0 D1 D2 D3 D4 D5 D6 D7 (рис. 4.5.1). В результате проверки количество единичных битов вместе с битом четности должно быть четным.

рис. 4.5.1

При проверке на нечетность полученный результат необходимо инверти­ровать.

Формат асинхронного пакета данных показан на рис. 4.5.2. Во многих случаях для асинхронного обмена используется формат 8–N–1, что означает передачу 8 бит данных, отсутствие бита четности и дополнительного стоп–бита.

рис. 4.5.2

При асинхронной последовательной связи широкое распространение получил протокол RS–232, который является международным стандартом, применяемым для связи компьютеров.

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

На рис. 4.5.3 показан другой распространенный способ асинхронной последо­вательной передачи данных с использованием манчестерского кода (Manchester), при котором:

●     передача каждого бита данных сопровождается (синхронизируется) импульсом;

●     значение (0 или 1) бита определяется промежутком времени до следующего импульса и отличается от старт–бита.

рис. 4.5.3

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

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

табл. 4.5.1

Для синхронной последовательной передачи данных используются приведенные в табл. 4.5.1 протоколы Microwire и SPI. Согласно этим протоколам каждое устройство адресуется индивидуально, хотя линии передачи данных и синхрони­зации могут быть общими для многих устройств (рис. 4.5.4, а). В каждый момент времени только одно из подключенных к шине устройств может задавать режим работы шины, т. е. быть ведущим (Master). Если сигнал разрешения выборки уст­ройства (Chip SelectCS) не активен, то это устройство отключено от линии данных и синхронизации. На рис. 4.5.4, б  показана реализация протоколов Microwire или SPI с одной линией связи для обмена данными. В этом случае микроконтрол­лер по завершении передачи данных отключает свой выходной каскад, после чего начинает принимать данные, поступающие от другого устройства (в другом на­правлении). Резистор R между выводами данных выполняет защитные функции: он ограничивает ток, если микроконтроллер и периферийное устройство одно­временно перейдут в режим передачи данных.

рис. 4.5.4

Контроллеры последовательного ввода/вывода. В состав современных 8–разрядных микроконтроллеров входят от одного до трех модулей контроллеров последовательного ввода/вывода. Функции такого модуля состоят в обеспечении интерфейса (связи):

●     микроконтроллера с внешними по отношению к нему периферийными узлами (интегральными схемами) встраиваемой системы. Для этого используются интерфейсы SPI, PC и нестандартные протоколы обмена;

●     микроконтроллера с локальной сетью в мультимикропроцессорных системах. В простых системах (с числом микроконтроллеров до пяти) обычно используют сети на основе интерфейсов PC, RS–232C, RS–485 с собственными сетевыми протоколами верхнего уровня; в более сложных системах — протокол CAN;

●     всей встраиваемой микропроцессорной системы с системой управления верх­него уровня (промышленным или офисным компьютером, программируемым контроллером и др.). Для реализации этих функций наиболее часто исполь­зуются интерфейсы RS–232C и RS–485, USB.

Последовательные интерфейсы отличаются:

    способом синхронизации при передаче данных (синхронный или асинхрон­ный способ, или режим);

    количеством бит в посылке при передаче байта полезной информации, или форматом кадра;

●     временными параметрами сигналов на линиях, к которым относятся уровни сигналов, положение фронтов при переключениях и др.;

●     числом используемых линий для передачи данных в последовательном коде (две линии для интерфейсов I2С, RS–232C, RS–485, CAN или три — для SPI и некоторых нестандартных синхронных протоколов). Использование трех ли­ний позволяет спроектировать контроллеры последовательного обмена, реа­лизующие на аппаратном уровне несколько типов последовательных интер­фейсов. При этом режим передачи и формат кадра поддерживаются на уровне логических сигналов, а требуемые уровни сигналов для каждого типа интер­фейса получают с помощью специальных интегральных схем (приемопере­датчиков, конверторов, трансиверов);

●     режимом обмена информацией:

•      симплексный режим, в котором возможна лишь однонаправленная пе­редача информации от одного абонента к другому (используется однона­правленный буфер приемника или передатчика информации);

•      полудуплексный режим, в котором возможен только прием или только пе­редача данных между двумя абонентами (используются двунаправленные буферы с переключением на прием и передачу);

•      дуплексный режим, в котором возможен одновременный прием и переда­ча данных между двумя абонентами (используются два канала с однона­правленными буферами приемника и передатчика информации);

•      мультиплексный режим, в котором возможен прием или передача данных между парой любых абонентов сети.

Модули контроллеров последовательных интерфейсов, входящие в состав 8–разрядных МК различных фирм производителей, приведены в табл. 4.5.2.

табл. 4.5.2

Микроконтроллер как ведомое устройство. Один из наиболее интересных и полезных режимов работы микроконтроллера — функционирование в качестве ведомого (Slave), когда микроконтроллер подключается к другому процессору как периферийное устройство.

Микроконтроллер при подключении к другому контроллеру (или процессору) в качестве периферийного устройства переходит в режим ведомого МК. При этом некоторые выводы микроконтроллера выделяется для связи с шиной ведущего устройства (рис. 4.5.5). В этом режиме ведомый микроконтроллер представляет собой интеллектуальную специализированную схему (Application Specific Integ­rated Circuit ASIC), которая управляется ведущим устройством. Примером та­кого технического решения является персональный компьютер, в котором микро­контроллер Intel 8042 используется в качестве интерфейса клавиатуры и выпол­няет некоторые другие функции (например, чтения–записи). Это позволяет веду­щему процессору считывать и записывать данные, не прибегая к протоколу последовательного обмена с клавиатурой, который обеспечивается микроконт­роллером.

рис. 4.5.5

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

 

МК–сеть. Под микроконтроллерной сетью понимают отдельную линию связи с множеством подключенных к ней устройств, которые могут инициировать передачу сообщений и посылать соответствующий отклик на полученное сообщение. В МК–сетях имеется ведущее (Master) устройство, которое может инициировать передачу данных. Устройства, которые отвечают на запросы, но не могут их иниции­ровать, называются ведомыми (Slaves) устройствами. МК–сеть может иметь не­сколько ведущих устройств. В этом случае сетевой протокол требует включения схемы арбитража, которая позволит различным ведущим устройствам переда­вать данные, не нарушая других сообщений.


Рекомендуйте эту статью другим!



прерываний в микропроцессорных
нояб 04, 2015 2811

Организация прерываний в микропроцессорных системах

Прерывание в микропроцессорах (interruption) — это событие, вызывающее прекращение…
нояб 17, 2012 9763

Режимы глухого заземления нейтрали в сетях низшего напряжения (0,4 кВ)

Полная реконструкция технологических установок промышленных предприятий, включающая…
Вихревые токи 1
авг 04, 2014 5935

Вихревые токи

В электрических устройствах, приборах, машинах металлические детали способны иногда…
Реклоузеры 4
авг 30, 2015 10482

Реклоузеры - применение, достоинства и недостатки, разновидности

Реклоузер - устройство автоматического управления и защиты воздушных ЛЭП на основе…
Элегазовые высоковольтные выключатели
дек 22, 2013 3140

Элегазовые высоковольтные выключатели

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