Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мпс с 524 по 631.doc
Скачиваний:
6
Добавлен:
16.04.2019
Размер:
2.54 Mб
Скачать

Коммуникационные микроконтроллеры и системы на их основе

При работе с UART-контроллером пользователю предоставлена возможность вре­менно остановить передачу и возобновить ее с точки останова через некоторое время. Остановкой передачи управляет бит FRZ. Если бит FRZ = 0, то передатчик работает в нормальном режиме. Если бит FRZ = 1, то передатчик передает все данные из FIFO канала и останавливает передачу. После сброса бита FRZ = 0 передача будет продолже­на со следующего символа. Значение бита FRZ не влияет на работу приемника.

При работе с UART-протоколом пользователь может также управлять работой сигна­лов управления CTS и rts и сигналами тактовой частоты.

При значении бита FLC = 1 производится контроль сигнала «разрешение переда-чи» ;5т^ при передаче символов. Если во время передачи символа сигнал cts = 1, то передатчик передает текущий символ до конца и останавливает передачу. Генериру­ется ошибка «потеря cts -сигнала», признак этой ошибки отмечается в бите CTS в слове состояния BD. Передача возобновляется после установки сигнала CTS = 0. Если сиг­нал CTS = 1, то возможна передача только IDLE-символов. Если бит FLC = 0, то UART-контроллер не анализирует состояние сигнала CTS при передаче.

При значении бита DRT = 1 пользователь может запретить совместную одновремен­ную работу приемника и передатчика. Этот режим часто применяется в многоточечной конфигурации, когда пользователь не желает принимать данные, которые он сам пере­дает. Для этого он на время работы своего передатчика запрещает работу приемника. При значении DRT = 0 обеспечивается совместная работа приемника и передатчика.

Пользователь может при работе настраивать работу UART-контроллера или в асинх­ронном режиме, если бит SYN = 0, или в синхронном режиме, если бит SYN - 1. При работе в асинхронном режиме коэффициент внутреннего увеличения тактовой частоты в 8х, 16х или 32х раза устанавливается при программировании соответствующих битов в регистре GSMR модуля СРМ.

Если канал работает с синхронным UART-протоколом и требуется увеличение скоро­сти передачи (например, при работе с V.14 устройствами), то при программировании бита RZS = 1 может быть включен режим прием кадра данных без стоп-битов. На практи­ке это реализуется как передача нулевого стоп-бита. Для ускорения работы канала нуле­вой стоп-бит может рассматриваться и как старт-бит следующего кадра данных. Получив кадр данных с нулевым стоп-битом, приемник продолжает свою работу, регистрирует ошибку кадра (так как кадр принят без стоп-бита), но генерирует прерывание по ошибке, только когда примет два BREAK-символа без стоп-битов.

Работа UART-контроллера. При передаче данные выставляются на TXDx-контакт, при приеме данные читаются с RXDx-контакта. При передаче LSB-биты в поле данных передаются первыми.

Данные для передачи и данные, которые приняты из сети, хранятся в буфере памяти. В буферах хранится только содержимое поля данных. Старт-бит, стоп-бит, бит контроля и бит адреса добавляются при передаче и удаляются при приеме самим SCO-каналом и в памяти не хранятся. При работе в многоточечном соединении допускается хранение в памяти адреса, принятого в кадре данных. Данные одного кадра могут занимать не­сколько буферов. Если при приеме или передаче символа произошли ошибки, то будет установлен соответствующий бит ошибки в слове состояния BD.

Размер FIFO SCC-канала при работе с UART-протоколом равен 32 байтам для при­ема и 32 байтам для передачи, если используется канал SCC1, и по 16 байт, если ис­пользуются другие SCC-каналы. Размер ячейки буфера FIFO устанавливается равным 8 битам при программировании регистра GSMR. В СРМ пользователь может ускорить пе­редачу данных из FIFO-буфера передачи, сократив число ячеек FIFO до одной, устано­вив соответствующее значение в бите TFL в регистре GSMR.

594

ПОДДЕРЖКА ПРОТОКОЛОВ В КОММУНИКАЦИОННЫХ КОНТРОЛЛЕРАХ

Если SCO-канал настроен на работу с UART-протоколом, то параметры конкретного протокола хранятся в протокол-ориентированной области parameter RAM (табл. 5.72).

Таблица 5.72 Память параметров UART-контроллера в микроконтроллере МРС&60

Адрес

Название

Размер, бит

Описание

SCC base+30

-

32

Зарезервировано

SCC base+34

-

32

Зарезервировано

SCC base+38

MAXJDL

16

Максимальное число I OLE-символов

SCC base+3A

IDLC

16

Счетчик IDLE-символов

SCC base+3C

BRKCR

16

Регистр передаваемого BREAK-символа

SCC base+3E

PAREC

16

Счетчик ошибок четности

SCC base+40

FRMEC

16

Счетчик ошибок формата кадра

SCC base+42

NOSEC

16

Счетчик ошибок шума

SCC base+44

BRKEC

16

Счетчик полученных BREAK-символов

SCC base+46

BRKLN

16

Длина принятой BREAK-последовательности

SCC base+48

UADDR1

16

Первый адрес

SCC base+4A

UADDR2

16

Второй адрес

SCC base+4C

RTEMP

16

Временная память приемника

SCC base+4E

TOSEQ

16

Передаваемый служебный символ

SCC base+50

CHAR1

16

Контрольный символ 1

SCC base+52

CHAR2

16

Контрольный символ 2

SCC base+54

CHAR3

16

Контрольный символ 3

SCC base+56

CHAR4

16

Контрольный символ 4

SCC base+58

CHAR5

16

Контрольный символ 5

SCC base+5A

CHAR6

16

Контрольный символ 6

SCC base+5C

CHAR7

16

Контрольный символ 7

SCC base+5E

CHAR8

16

Контрольный символ 8

SCC base+60

RCCM

16

Маска контрольных символов

SCC base+62

RCCR

16

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

SCC base+64

RLBC

16

Регистр принятого BREAK-символа

Примечание. Все переменные в табл. 5.72, кроме ячеек IDLC, BRKLN, RTEMP, RCCR и

RLBC, инициализируются пользователем до начала работы с UART-контроллером.

Прием данных UART-контроллером. В UART-протоколе в отсутствие передачи по сети передаются IDLE-символы, которые состоят из 9-13 единиц «1». Размер IDLE-noc-ледовательности зависит от размера кадра данных, на работу с которым настроен ка­нал. Размер IDLE-символа равен: 1 старт-бит + 5, 6, 7, 8 битов данных + 1 бит контроля (если он используется) + 1,2 стоп-бита. Приемник канала постоянно подсчитывает число полученных IDLE-символов в счетчике IDLE-символов IDLC. Если начинается прием но­вого кадра данных, то содержимое счетчика IDLC сбрасывается. Таким образом, IDLC-счетчик подсчитывает число IDLE-символов, полученных между приемом двух кадров данных. Пользователь может в ячейке MAXJDL определить максимально допустимое число IDLE-символов между кадрами данных .IDLC - это вычитающий счетчик, и при

595