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

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

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

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

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

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

●     проверка на четность (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) устройствами. МК–сеть может иметь не­сколько ведущих устройств. В этом случае сетевой протокол требует включения схемы арбитража, которая позволит различным ведущим устройствам переда­вать данные, не нарушая других сообщений.


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



Особенности нового ГОСТа по качеству электроэнергии
июнь 16, 2014 4347

Особенности нового ГОСТа по качеству электроэнергии

С начала 2013 года вступил в действие обновлённый стандарт качества ГОСТ Р 54149, в…
рис. 1.141
окт 17, 2016 736

Влияние различных факторов на выходное напряжение операционного усилителя

При практическом использовании операционного усилителя необходимо учитывать, что…
dif1
апр 03, 2017 1914

Дифференциальная защита, диф реле, принцип работы, применение

Дифференциальная защита - одна из самых быстродействующих. Для нее не требуется выдержки…
Последовательный обмен
нояб 11, 2015 1611

Способы и методы последовательного обмена

Принципы обмена. Последовательный обмен (ввод–вывод данных), когда байт данных передается…