Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 800474

.pdf
Скачиваний:
4
Добавлен:
01.05.2022
Размер:
3.22 Mб
Скачать

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

Рассмотрим наиболее распространенные интерфейсы RS-232C и RS-485 подробнее.

Интерфейс RS-232C и COM-порт

Интерфейс предназначен для подключения аппаратуры, передающей или принимающей данные (ООД – оконечное оборудование данных или АПД – аппаратура передачи данных; DTE Data Terminal Equipment), к оконечной аппаратуре каналов данных (АКД; DCE

– Data Communication Equipment).

Выбор в пользу применения интерфейса RS-232C может быть сделан при наличии следующих требований:

относительная удаленность объекта обмена информацией (внешнего устройства) от компьютера (стандартом оговорена длина кабеля до 15 м при наличии общего контура заземления, однако во многих практических случаях она может быть существенно увеличена, хотя и с некоторым снижением рабочих скоростей); сравнительно (по отношению к параллельным методам и локальным вычислительным сетям) невысокая скорость обмена данными (максимально возможная скорость передачи данных стандартного последовательного порта компьютера составляет 115200 бит/сек, что ограничивает скорость обмена величиной около 10 кбайт/сек);

применение стандартного интерфейса для подключения к компьютеру без его вскрытия (применение RS-232C для подключения внешних устройств существенно упрощает процесс подключения и повышает оперативность в работе).

Стандарт описывает управляющие сигналы интерфейса, пересылку данных, электрический интерфейс и типы разъемов. В стандарте предусмотрены асинхронный и синхронный режимы обмена, но СОМ-порты поддерживают только асинхронный режим. Функционально RS-232C эквивалентен стандарту МККТТ V.24/ V.28 и отечественному интерфейсу "Стык С2», но они имеют различные названия сигналов.

Стандарт RS-232C использует несимметричные передатчики и приемники – сигнал передается относительно общего провода – схемной земли SG (симметричные дифференциальные сигналы используются в других интерфейсах – например, RS-422). Интерфейс НЕ ОБЕСПЕЧИВАЕТ ГАЛЬВАНИЧЕСКОЙ РАЗВЯЗКИ устройств. Логической единице соответствует напряжение на входе приемника в диапазоне -12...-3 В, хотя допустимый диапазон, на который рассчитан приемный каскад, –25...+25 В (рис. 3.6). Для линий управляющих сигналов это состояние называется ON («включено»), для линий последовательных данных – MARK. Логическому нулю соответствует диапазон +3...+12 В. Для линий управляющих сигналов состояние называется OFF («выключено»), а для линий последовательных данных – SPACE. Диапазон -3...+3 В – зона нечувствительности, обусловливающая гистерезис приемника: состояние линии будет считаться измененным только после пересечения порога (рис. 3.7). Уровни сигналов на выходах передатчиков должны быть в диапазонах -12 (до 15)...-5 В и +5...+12 (до 15) В для представления единицы и нуля соответственно. Разность потенциалов между схемными землями (SG) соединяемых устройств должна быть менее 2 В, при более высокой разности потенциалов возможно неверное восприятие сигналов. Интерфейс предполагает наличие ЗАЩИТНОГО ЗАЗЕМЛЕНИЯ для соединяемых устройств, если они оба питаются от сети переменного тока и имеют сетевые фильтры.

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

40

 

 

 

 

 

+25 В

 

 

 

 

 

 

 

+15 В

 

 

 

 

 

 

 

 

 

 

 

 

 

Лог.0

 

 

+ 5 В

 

 

 

 

 

 

0

 

 

 

 

+ 3 В

 

 

 

 

0

 

 

 

 

 

- 5 В

 

 

 

 

- 3 В

 

 

 

 

 

 

 

 

 

 

Лог.1

 

 

 

-15 В

 

 

 

 

-25 В

 

 

 

 

 

 

 

 

 

 

 

 

 

Передатчик

 

 

 

 

Приемник

 

 

 

 

Рис. 3.6. Уровни сигналов RS-232C на концах линии

Передача лог. 0

Порог лог. 0

Порог лог. 1

Передача лог. 1

Принятый логический сигнал

Рис. 3.7. Восприятие различных уровней входного сигнала в RS-232C c учетом порогов и гистерезиса

Для интерфейса RS-232C специально выпускаются буферные микросхемы приемников (с гистерезисом и передатчиком двуполярного сигнала). При несоблюдении правил заземления и коммутации они обычно являются первыми отказавшими элементами. Иногда их устанавливают в панельках, что облегчает замену. Часто буферные схемы входят прямо в состав интерфейсных БИС. Это удешевляет изделие, экономит место на плате, но в случае аварии оборачивается крупными финансовыми потерями. Вывести из строя интерфейсные микросхемы замыканием сигнальных цепей маловероятно: ток короткого замыкания передатчиков обычно не превосходит 20 мА.

Для связи управляющих систем на основе ЭВМ типа IBM PC последовательный интерфейс типа RS-232 используется довольно часто. Состав сигналов этого интерфейса:

RxD канал передачи данных от объекта к системе управления; TxD канал передачи данных от системы управления к объекту; SG линия сигнального заземления;

FG линия защитного заземления (экран);

RTS сигнал готовности передатчика к обмену;

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

DSR готовность данных со стороны передатчика;

DCD сигнал, инициирующий выделение несущей частоты при использовании модема; RI сигнал телефонного вызова для модема.

Четыре последних сигнала используются в модемных линиях.

41

Для управления потоком данных (Flow Control) могут использоваться два варианта протокола аппаратный и программный. Иногда управление потоком путают с квитированием, но это разные методы достижения одной цели – согласования темпа передачи и приема. Квитирование (Handshaking) подразумевает посылку уведомления о получении элемента, в то время как управление потоком предполагает посылку уведомления о невозможности последующего приема данных.

Аппаратный протокол управления потоком RTS/CTS (Hardware Flow Control) исполь-

зует сигнал CTS, который позволяет остановить передачу данных, если приемник не готов к их приему. Передатчик «выпускает» очередной байт только при включенной линии CTS. Байт, который уже начал передаваться, задержать сигналом CTS невозможно (это гарантирует целостность посылки). Аппаратный протокол обеспечивает самую быструю реакцию передатчика на состояние приемника. Микросхемы асинхронных приемопередатчиков имеют не менее двух регистров в приемной части – сдвигающий, для приема очередной посылки, и хранящий, из которого считывается принятый байт. Это позволяет реализовать обмен по аппаратному протоколу без потери данных. Аппаратный протокол удобно использовать при подключении принтеров и плоттеров, если они его поддерживают. При непосредственном (без модемов) соединении двух компьютеров аппаратный протокол требует перекрестного соединения линий RTS–CTS. Если аппаратный протокол не используется, у передающего терминала должно быть обеспечено состояние «включено» на линии CTS перемычкой RTS–CTS. В противном случае передатчик будет «молчать».

Программный протокол управления потоком XON/XOFF предполагает наличие дву-

направленного канала передачи данных. Работает протокол следующим образом: если устройство, принимающее данные, обнаруживает причины, по которым не может их дальше принимать, оно по обратному последовательному каналу посылает байт-символ XOFF (13h). Противоположное устройство, приняв этот символ, приостанавливает передачу. Когда принимающее устройство снова становится готовым к приему данных, оно посылает символ XON (11h), приняв который, противоположное устройство возобновляет передачу. Время реакции передатчика на изменение состояния приемника по сравнению с аппаратным протоколом увеличивается по крайней мере на время передачи символа (XON или XOFF) плюс время реакции программы передатчика на прием символа. Из этого следует, что данные без потерь могут приниматься только приемником, имеющим дополнительный буфер принимаемых данных и сигнализирующим о неготовности заблаговременно (имея в буфере свободное место).

Преимущество программного протокола заключается в отсутствии необходимости передачи управляющих сигналов интерфейса – минимальный кабель для двустороннего обмена может иметь только 3 провода. Недостатком, кроме требования наличия буфера и большего времени реакции (снижающего общую производительность канала из-за ожидания сигнала XON), является сложность реализации полнодуплексного режима обмена. В этом случае из потока принимаемых данных должны выделяться (и обрабатываться) символы управления потоком, что ограничивает набор передаваемых символов. Минимальный вариант кабеля для подключения принтера (плоттера) с протоколом XON/XOFF приведен на рис. 3.8. Обычно именно такое соединение и используется во многих системах управления.

Схема соответствует варианту идентичных устройств, объединенных интерфейсом. Если на приемной стороне (условно справа) используются устройства с неполным набором сигналов, его соединительный разъем распаивается в соответствии с его набором сигналов.

Каждый из каналов передачи информации совместно с сигнальным экраном образует витую пару и эти две витые пары помещаются в общий экран, предохраняющий от действия низкочастотных индуктивных помех. Рекомендуется сигнальные экраны заземлять на стороне приемника, а защитный с двух сторон (см. рис. 3.8).

42

RxD

RxD

TxD

TxD

FG

FG

SG

SG

DTR

DTR

DSR

DSR

DCD

DCD

RTS

RTS

CTS

CTS

RxD

SG

TxD

FG

Рис. 3.8

TxD

RxD

SG

FG

Обмен по RS-232C осуществляется с помощью обращений по специально выделенным для этого портам СОМ1 (адреса 3F8h...3FFh, прерывание IRQ4), COM2 (адреса 2F8h...2FFh, прерывание IRQ3), СОМ3 (адреса 3E8h...3EFh, прерывание IRQ10), COM4 (адреса 2E8h...2EFh, прерывание IRQ 11). Форматы обращений по этим адресам можно найти в /18/, в описаниях микросхем контроллеров последовательного обмена UART (Universal Asynchronous Receiver/Transmitter), например, i8250, KP580BB51, и в Интернете.

Интерфейс RS-485

Интерфейс RS-485 (другое название – EIA/TIA-485) – один из наиболее распространенных стандартов физического уровня связи. Физический уровень – это канал связи и способ передачи сигнала (1 уровень модели взаимосвязи открытых систем OSI).

Сеть, построенная на интерфейсе RS-485, представляет собой приемопередатчики, соединенные при помощи витой пары – двух скрученных проводов. В основе интерфейса RS485 лежит принцип дифференциальной (балансной) передачи данных. Суть его заключается в передаче одного сигнала по двум проводам. Причем по одному проводу (условно A) идет оригинальный сигнал, а по другому (условно B) – его инверсная копия. Другими словами, если на одном проводе "1", то на другом "0" и наоборот. Таким образом, между двумя проводами витой пары всегда есть разность потенциалов: при "1" она положительна, при "0" – отрицательна (рис. 3.9).

Рис. 3.9

Именно этой разностью потенциалов и передается сигнал. Такой способ передачи обеспечивает высокую устойчивость к синфазной помехе. Синфазной называют помеху, действующую на оба провода линии одинаково. К примеру, электромагнитная волна, проходя через участок линии связи, наводит в обоих проводах потенциал. Если сигнал передается потенциалом в одном проводе относительно общего, как в RS-232, то наводка на этот провод может исказить сигнал относительно хорошо поглощающего наводки общего провода ("земли"). Кроме того, на сопротивлении длинного общего провода будет падать разность потенциалов земель – дополнительный источник искажений. А при дифференциаль-

43

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

Аппаратная реализация интерфейса – микросхемы приемопередатчиков с дифференциальными входами/выходами (к линии) и цифровыми портами (к портам UART контроллера), функционально представленные на рис. 3.10. Существуют два варианта такого интер-

фейса: RS-422 и RS-485.

RS-422 – полнодуплексный интерфейс. Прием и передача идут по двум отдельным парам проводов. На каждой паре проводов может быть только по одному передатчику.

RS-485 – полудуплексный интерфейс. Прием и передача идут по одной паре проводов с разделением по времени. В сети может быть много передатчиков, так как они могут отключаться в режиме приема.

Рис. 3.10

Здесь D (driver) – передатчик; R (receiver) – приемник; DI (driver input) – цифровой вход передатчика; RO (receiver output) – цифровой выход приемника; DE (driver enable) – разрешение работы передатчика; RE (receiver enable) – разрешение работы приемника; A – прямой дифференциальный вход/выход; B – инверсный дифференциальный вход/выход; Y – прямой дифференциальный выход (RS-422); Z – инверсный дифференциальный выход (RS422).

Большинство электрических характеристик стандартов RS-485 и RS-422 одинаковы /19/ и отличаются лишь режимами работы и количеством подключаемых приемников. RS485 реализует двунаправленную полудуплексную передачу данных с 32 приемниками для шинных конфигураций, а RS-422 определяет двухсторонний однонаправленный драйвер с 10 приемниками. В этом смысле RS-485 является более универсальным и может работать в паре с RS-422. Конструктивно эти два интерфейса различаются тем, что в RS-422 и приемник и передатчик имеют свои витые пары, а в RS-485 приемник и передатчик делят одну витую пару. Таким образом, RS-485 – это прежде всего обновление RS-422 для многоточечной шины. Этот стандарт характеризуется улучшенными параметрами относительно RS-422 и обеспечивает до 32 драйверов и 32 приемников, связанных по одной шине.

Остановимся подробнее на приемопередатчике RS-485 (рис. 3.11). Цифровой выход приемника (RO) подключается к порту приемника UART (RX). Цифровой вход передатчика (DI) к порту передатчика UART (TX). Поскольку на дифференциальной стороне приемник и передатчик соединены, то во время приема нужно отключать передатчик, а во время передачи – приемник. Для этого служат управляющие входы – разрешение приемника (RE) и разрешение передатчика (DE). Так как вход RE инверсный, то его можно соединить с DE и переключать приемник и передатчик одним сигналом с любого порта контроллера. При уровне "0" – работа на прием, при "1" – на передачу.

44

Рис. 3.11

Приемник, получая на дифференциальных входах (AB) разность потенциалов (UAB), переводит их в цифровой сигнал на выходе RO. Чувствительность приемника может быть разной, но гарантированный пороговый диапазон распознавания сигнала производители микросхем приемопередатчиков приводят в документации. Обычно эти пороги составляют

± 200 мВ. То есть, когда UAB > +200 мВ – приемник определяет "1", когда UAB < –200 мВ – приемник определяет "0". Если разность потенциалов в линии настолько мала, что не выходит за пороговые значения – правильное распознавание сигнала не гарантируется. Кроме того, в линии могут быть и не синфазные помехи, которые исказят столь слабый сигнал.

Все устройства подключаются к одной витой паре одинаково: прямые выходы (A) к одному проводу, инверсные (B) – к другому.

Входное сопротивление приемника со стороны линии (RAB) обычно составляет 12 кОм. Так как мощность передатчика не беспредельна, это создает ограничение на количество приемников, подключенных к линии. Согласно спецификации RS-485 с учетом согласующих резисторов передатчик может вести до 32 приемников. Однако есть ряд микросхем с повышенным входным сопротивлением, что позволяет подключить к линии значительно больше 32 устройств.

Максимальная скорость связи по спецификации RS-485 может достигать 10 Мбод/сек. Максимальное расстояние – 1200 м. Если необходимо организовать связь на расстоянии большем 1200 м или подключить больше устройств, чем допускает нагрузочная способность передатчика – применяют специальные повторители (репитеры).

Стандартные параметры интерфейсов RS-422 и RS-485 приведены в табл. 3.2.

 

 

Таблица 3.2

Стандартные параметры интерфейсов

RS-422

RS-485

Допустимое число передатчиков / приемников

1 / 10

32 / 32

Максимальная длина кабеля

1200 м

1200 м

Максимальная скорость связи

10 Мбит/с

10 Мбит/с

Диапазон напряжений "1" передатчика

+2...+10 В

+1.5...+6 В

Диапазон напряжений "0" передатчика

-2...-10 В

-1.5...-6 В

Диапазон синфазного напряжения передатчика

-3...+3 В

-1...+3 В

Допустимый диапазон напряжений приемника

-7...+7 В

-7...+12 В

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

±200 мВ

±200 мВ

Максимальный ток короткого замыкания драйвера

150 мА

250 мА

Допустимое сопротивление нагрузки передатчика

100 Ом

54 Ом

Входное сопротивление приемника

4 кОм

12 кОм

Максимальное время нарастания сигнала передатчика

10% бита

30% бита

45

Теперь О ВЫБОРЕ АППАРАТНЫХ СРЕДСТВ (обычно в составе кристалла МК)

Модуль UART

Среди большого множества различных типов встроенных контроллеров последовательного обмена, которые входят в состав тех или иных 8-разрядных МК, сложился стан-

дарт «де-факто» – модуль UART (Universal Asynchronous Receiver and Transmitter) – уни-

версальный асинхронный приемопередатчик. Однако многие из модулей UART кроме асинхронного режима обмена способны также реализовать простейший режим синхронной передачи данных. Поэтому более правильным с точки зрения терминологии было бы име-

новать эти модули USART (Universal Synchronous/Asynchronous Receiver and Transmitter) –

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

Не все производители МК используют термин UART для обозначения типа модуля контроллера последовательного обмена. Так, в МК фирмы «Motorola» модуль асинхронной приемопередачи, который поддерживает те же режимы асинхронного обмена, что и UART, принято называть SCI (Serial Communication Interface). Следует отметить, что модуль типа SCI обычно реализует только режим асинхронного обмена, однако МК фирмы «Motorola» традиционно имеют в своем составе два модуля последовательного обмена: модуль SCI с возможностью реализации только протоколов асинхронной приемопередачи для интерфейсов RS-232C, RS-422A, RS-485 и модуль контроллера синхронного интерфейса в стандарте

SPI.

Модуль типа UART в максимальной конфигурации обычно реализует два типа протокола обмена в асинхронном режиме (кадр длиною в 10 бит или в 11 бит) и два типа протокола в синхронном режиме (трехпроводный полнодуплексный обмен или двухпроводный полудуплексный обмен). Упрощенная структура модуля типа UART приведена на рис. 3.12

см. также /8/.

 

 

 

TDBUF

 

 

 

MD

D7 … D0

 

 

 

 

 

 

 

Логика

 

 

 

 

управления

 

 

 

 

Биты

Регистр сдвига

TxD

 

 

режимов и

 

 

передатчика

 

 

 

состояний

 

 

 

 

 

MD

 

Регистры

Сдвиг

 

 

 

управления и

 

 

 

состояния

Сдвиг

 

 

 

 

 

 

 

 

Регистр сдвига

RxD

 

 

Генератор

приемника

 

 

 

скорости

 

 

 

 

обмена

RDBUF

 

 

 

 

 

 

f

MD

 

 

 

BUS

D0 … D7

 

 

 

 

 

 

 

 

Рис. 3.12

Модуль состоит из двух независимых подсистем: передатчика (Transmitter) и приемника (Receiver), поэтому возможен режим одновременной передачи и приема информации в последовательном коде. Основу каждой подсистемы составляют сдвиговый регистр и параллельный регистр буфера данных. Обращение к буферу данных приемника и передатчика осуществляется по одному и тому же адресу, но при выполнении операции записи данные будут помещены в буфер передатчика TDBUF, операции чтения – данные будут считаны из буфера приемника RDBUF.

В МК MCS-51 для работы с последовательным портом используются два регистра специальных функций:

46

SCON - регистр управления последовательного порта;

SBUF - регистр данных последовательного порта.

Вконтроллерах других серий, например, в МК фирмы Motorola, существует по нескольку регистров управления и контроля состояния USART.

В/2/ функционирование UART (см. рис. 3.12) описано следующим образом. Передача данных от МК к другому устройству инициируется посредством записи байта данных в регистр TDBUF. Если работа передатчика разрешена (бит ТЕ в регистре управления модулем равен 1), то аппаратные средства модуля загружают содержимое TDBUF в сдвиговый регистр и под управлением генератора скорости обмена биты из сдвигового регистра, начиная

смладшего D0, последовательно передаются на вывод TxD MK. По завершении передачи байта данных устанавливается бит TI, который информирует МК о том, что буфер передатчика пуст и в него могут быть загружены новые данные для передачи. Бит TI генерирует запрос на прерывание, если прерывания от передатчика в МК разрешены. Бит TI может также быть считан программно.

Если работа приемника разрешена (бит RE в регистре управления модулем равен 1), то после распознавания стартового бита аппаратные средства приемника преобразуют данные, которые поступают на вход RxD в последовательном коде, в параллельный код. После завершения приема последнего бита в сдвиговом регистре приемника находится принятый байт данных, который автоматически переносится в регистр RDBUF. Одновременно устанавливается в «1» флаг завершения приема RI. Бит RI может быть считан под управлением программы, а если прерывания от приемника разрешены, то генерируется запрос на прерывание. В процессе выполнения подпрограммы прерывания принятый байт данных считывается из регистра данных приемника RDBUF в память МК. Сразу после копирования байта данных из сдвигового регистра в RDBUF приемник может начать формирование следующего байта данных, отдельные биты которого продолжают поступать на вход RxD. Однако необходимо, чтобы центральный процессор МК успел считать данные из буферного регистра RDBUF до завершения формирования в сдвиговом регистре следующего принятого байта. Если этого не произошло, то возникшая аварийная ситуация в модулях UART разрешается различными путями. В модулях SCI фирмы «Motorola» запись следующего принятого байта в буферный регистр данных не производится и устанавливается флаг ошибки OR (Overrun). Этот флаг наравне с триггером RI может генерировать запрос на прерывание от приемника. В модулях МК Intel MSC-51 и ему полностью аналогичных такая защита отсутствует: следующий принятый байт затирает предыдущий в регистре RDBUF.

Для повышения достоверности приема каждого разряда аппаратные средства модуля UART считывают уровень сигнала на входе RxD три раза в течение интервала присутствия бита (рис. 3.13). Значение бита, которое будет занесено в младший разряд сдвигового регистра приемника, определяется мажоритарным способом: по принципу два из трех. Модули SCI сообщают пользователю о наличии шума на линии приема: если не все три значения при приеме любого из битов кадра совпали, то устанавливается флаг NF (Noise Error). В модулях UART MK Intel MSC-51 такая защита не предусмотрена.

Рис. 3.13

Подсистемы приемника и передатчика модуля UART не являются полностью автономными. Скорость обмена и формат кадра асинхронной приемопередачи назначаются в процессе инициализации модуля одинаковыми для приемника и для передатчика. Модули

47

UART различных МК предоставляют неодинаковые возможности по регулированию скорости обмена. В МК Intel MSC-51 допускается плавное регулирование с дискретностью, равной периоду частоты тактирования таймера. Для задания скорости обмена используется один из каналов модуля таймера. Напротив, модуль SCI МК Motorola не использует ресурсы модуля таймера для этих целей. Такой подход, с одной стороны, имеет преимущество по экономии использования ресурсов МК, однако, с другой стороны, не позволяет задать произвольное соотношение между частотой обмена и собственной частотой кварцевого резонатора генератора синхронизации МК. Последнее накладывает ограничения на выбор частоты кварцевого резонатора, если скорость обмена в разрабатываемом устройстве должна соответствовать стандартному ряду.

Все модули типа UART предусматривают два типа кадров асинхронного обмена. На рис. 3.14 представлена временная диаграмма 10-битового кадра: 8 бит данных передаются вслед за стартовым битом, начиная с младшего DO, завершает передачу стоповый бит.

Рис. 3.14

Логические уровни для передачи стартового бита (низкий) и стопового бита (высокий) формируются аппаратными средствами передатчика. Приемник распознает начало передачи нового кадра по изменению уровня сигнала на входе RxD с высокого, который может длиться сколь угодно долго, на низкий. Передаваемая в кадре полезная информация длиною в один байт может кодироваться абсолютно произвольно. Но может быть использовано и стандартное решение, при котором информация кодируется семью битами D6 – D0, старший бит D7 используется для контроля правильности приема. С этой целью передающий МК кодирует бит паритета D7 из условия четного (контроль на четность) или нечетного (контроль на нечетность) числа единиц в передаваемом слове, а принимающий МК производит проверку принятого кода в соответствии с выбранным способом кодирования. Если число единиц в байте данных соответствует выбранному способу кодирования, т. е. четное (нечетное), то передача считается успешной.

Следует заметить, что не все модули UART 8-разрядных МК имеют опции автоматического формирования бита паритета и контролируют принятое слово на четность или нечетность аппаратными средствами. Поэтому при необходимости эти операции должны быть реализованы программными средствами. Рассмотренный 10-битовый формат кадра наиболее часто используется при организации связи встраиваемой МП системы с системой управления верхнего уровня.

Временная диаграмма 11-битового кадра асинхронного обмена представлена на рис. 3.15: 9 бит данных обрамляются одним стартовым и одним стоповым битом. При формировании 9-разрядного слова для передачи сначала старший разряд D8 помещается в бит Т8 одного из регистров управления модулем, а затем младшие разряды D7 – D0 за-

писываются в обычном порядке в регистр TDBUF. При приеме 9-разрядного слова младшие биты D7 – D0 размещаются в регистре RDBUF, старший бит D8 передается в разряд R8 одного из регистров управления.

Рис. 3.15

Рассматриваемый формат представления кадра используется:

либо для передачи с контролем четности/нечетности байта (паритет),

48

либо для организации протокола обмена верхнего уровня в локальных сетях на основе нескольких МК. С этой же целью в модулях UART реализован специальный режим ожидания с механизмом пробуждения (Wake-up) – см. ниже.

Перед началом связи между двумя устройствами необходимо настроить их приемопе-

редатчики на одинаковую скорость связи и формат кадра. Скорость связи или бодрейт (baudrate) измеряется в бодах – число передаваемых бит в секунду (включая старт и стопбиты). Задается эта скорость в бодрейт-генераторе делением системной частоты на задаваемый коэффициент. Типичный диапазон скоростей: 2400 … 115200 бод. Формат кадра определяет число стоп-битов (1 или 2), число бит данных (8 или 9), а также назначение девятого бита данных. Все это зависит от типа контроллера.

Приемник и передатчик тактируются, как правило, с 16-кратной частотой относительно бодрейта. Это нужно для сэмплирования сигнала. Приемник, поймав падающий фронт старт-бита, отсчитывает несколько (6 или 7) тактов и следующие три такта считывает (семплирует) порт RX (см. рис. 3.11). Это соответствует середине старт-бита. Если большинство значений семплов – "0", старт-бит считается состоявшимся, иначе приемник принимает его за шум и ждет следующего падающего фронта. После удачного определения старт-бита приемник точно также семплирует середины битов данных и по большинству семплов считает бит "0" или "1", записывая их в сдвиговый регистр. Стоп-биты тоже семплируются, и если уровень стоп-бита не "1" – UART определяет ошибку кадра и устанавливает соответствующий флаг в управляющем регистре.

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

На рис. 3.16 приведена структура локальной сети на основе UART. Один из МК в этой сети является ведущим, все остальные – ведомыми. В каждый момент времени обмен возможен между ведущим и одним из ведомых, обмен между двумя ведомыми не реализуется. Инициатором обмена всегда является только ведущий. Обмен производится пакетами, каждый из которых включает не менее трех 11-битовых кадров. Первый кадр определяет адрес

ведомого МК, с которым будет производиться

 

обмен. Бит D8 этого кадра должен быть равен

 

«1». Следующие кадры используются для обмена

 

данными с выбранным ведомым.

 

Бит D8 этих кадров должен быть установлен

 

в «0». Последний кадр пакета обмена должен со-

 

держать 11 нулевых битов. Так как подобная по-

 

следовательность не может быть сформирована в

 

результате записи в регистр буфера передатчика

 

TDBUF нулевого слова (необходимо также об-

 

нулить стоповый бит), то для ее воспроизведения

 

предусмотрена специальная опция формирова-

 

ния сигнала «Break». В модулях SCI для ее реа-

Рис. 3.16. Структура локальной

сети микроконтроллеров

лизации необходимо установить бит SBK (Send

 

Break) в одном из регистров управления. Обмен между ведущим и ведомым происходит в следующем порядке.

•В исходном состоянии приемники всех ведомых МК находятся в состоянии ожидания

(настроить этот режим при инициализации каждого МК). В этом состоянии прием байта данных осуществляется, но принятое слово переписывается в буферный регистр RDBUF с

49