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


Последовательный обменПринципы обмена.

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

Асинхронный последовательный обмен.

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

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

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

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

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

● проверка на четность (

Even

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

● проверка на нечетность (

Odd

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

XOR

) над всеми битами принимаемого байта дан­ных

Char

=

D

7

D

6

D

5

D

4

D

3

D

2

D

1

D

0

. Значение бита четности можно определить про­граммно.

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

mov

R

(

NNN

), #

date

8

; Загрузка числа 8 в регистр

R

(

NNN

)

mov

A

, #

date

0

; Очистка регистра

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 =

D

0.

На шаге 2 алгоритма после выполнения операции

XOR

над битами 1 аккумуля­тора и операнда с последующим сдвигом влево на один разряд содержимого А получаем значение бита 2 аккумулятора, равное Х2 =

D

0

D

1.

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

D

0

Dl

D

2 и т. д.

После восьмого сдвига в триггере переноса С оказывается бит контроля четности С = Х8 =

D

0

D

1


D

2

D

3

D

4

D

5

D

6

D

7 (рис. 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

Select

CS

) не активен, то это устройство отключено от линии данных и синхронизации. На рис.

4.5.4, б

показана реализация протоколов

Microwire

или

SPI

с одной линией связи для обмена данными.

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

R

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

Контроллеры последовательного ввода/вывода.

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

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

SPI, PC

и нестандартные протоколы обмена;

● микроконтроллера с локальной сетью в мультимикропроцессорных системах.

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

PC,

RS–232C,

RS–485

с собственными сетевыми протоколами верхнего уровня; в более сложных системах — протокол

CAN

;

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

RS–232C и

RS

–485,

USB

.

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

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

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

● временными параметрами сигналов

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

● числом используемых линий

для передачи данных в последовательном коде (две линии для интерфейсов

I

2

С, 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

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


Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: