Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 338

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 332 333 334 335 336 337 < 338 > 339 340 341 342 343 344 .. 528 >> Следующая

последовательности BRKs в регистре событий. Далее он подсчитывает длину
последовательности в символах. При получении первого бита, равного
единице, контроллер записывает длину BREAK-последовательности в регистр
BRKLN и устанавливает бит конца последовательности BRKe в регистре
событий. Напомним, что изменение значения любого бита в регистре событий
может вызвать прерывание центрального процессора, если оно разрешено.
Если UART-контроллер работает в синхронном режиме (бит SYN = 1 в регистре
режима UART-контроллера) и установлен бит нулевых стоп-битов RZS = 1, то
BREAK-после-довательность регистрируется только после приема двух BREAK-
символов. Каждый последний принятый BREAK-символ будет сохраняться в
регистре RLBC. Пользователь может подсчитать длину (число "0") в
последнем BREAK-символе, начиная с 15-го бита в регистре RLBC и в сторону
0-го бита до бита, значение которого равно единице. Например, если в
регистре RLBC записан двоичный код 0001хххххххх, то это значит, что было
принято три нулевых бита.
Передача символов. При передаче UART-контроллер получает из буфера FIFO
только сам символ, который будет передан в поле данных. Остальные поля
кадра заполняются внутри SCC-контроллера. Во-первых, контроллер
анализирует, какой тип контроля будет применен, и вычисляет контрольную
сумму, которая записывается в бит контроля в кадре данных. Во-вторых,
надо или нет вводить бит адреса в формат кадра. В-третьих, в формат кадра
вводится необходимое число стоп-битов, при этом контролируется
использование дробных стоп-битов.
Если передается первый символ из нового буфера данных, то в слове
состояния буферного дескриптора анализируются биты А, Р, NS, CR. Бит NS =
1 определяет, что все данные из буфера должны передаваться без стоп-
битов. Еспи бит NS = 0, то все данные передаются со стоп-битами. Если
установлен бит А = 1, то все данные из буфера передаются как адреса с
установленным в "1" битом адреса в формате кадра, но только если
контроллер настроен на работу в режиме многоточечного соединения. Если
установлен бит CR = 1, то между передачами содержимого двух соседних
буферов данных в канал выводятся три бита IDLE "1". Сигнал CTS , который
должен быть активен при передаче данных, во время передачи IDLE-битов
становится пассивным, генерируется прерывание "потеря CTS сигнала" и
выставляется бит СТ = 1 (потеря CTS) в слове состояния текущего буфера.
Если бит CR = 0, то следующий буфер передается сразу за текущим без
задержек, если он был готов к передаче. При этом бит потери CTS - бит СТ
в слове состояния BD не
598
ПОДДЕРЖКА ПРОТОКОЛОВ В КОММУНИКАЦИОННЫХ КОНТРОЛЛЕРАХ
устанавливается. Если в слове состояния BD установлен бит Р = 1, то перед
передачей содержимого буфера передается символ преамбулы (все биты "1"),
и на другом конце канала обнаруживают IDLE-состояние линии связи перед
получением данных. Преамбула передается, даже если длина буфера в BD
установлена равной нулю. Преамбула представляет собой символ такой же
длины, что и передаваемые данные, только все биты в символе равны
единице.
Если UART-контроллер получил от CPU-ядра команду STOP TRANSMIT, то он
передает в сеть содержимое FIFO передачи, затем передает определенное
число символов BREAK, далее он переходит к передаче IDLE-символов, пока
не получит команду RESTART TRANSMIT. Формат BREAK-символа представляет
собой символ установленной длины, у которого все биты равны нулю и без
стоп-битов. Количество BREAK-символов, которые UART-контроллер передаст в
сеть, указывается пользователем в регистре BRKCR.
Пользователь может управлять процессом передачи данных (flow control),
вставляя в поток передаваемой информации служебные символы. Для этого в
области параметров протокола выделена специальная ячейка TOSEQ. В эту
ячейку записывается символ управления передачей, который имеет наивысший
приоритет перед передачей других символов. Перед тем как прочитать
очередной символ из буфера данных, UART-koh-троллер проверяет готовность
этого служебного символа. Если символ готов, то он помещается в FIFO
передачи, а затем в канал будет передан символ управления передачей,
например символы XON или XOFF.
Когда центральный процессор подготовил символ для передачи,
устанавливается бит REA (READY) := 1 (рис. 5.108). Коммуникационный
контроллер сбрасывает этот бит REA := 0 только после окончания передачи
служебного символа, формат которого указан в поле CHARACTER. После
передачи служебного символа, если установлен бит I (Interrupt) = 1, то
CPU уведомляется прерыванием через бит Тх-регистра событий UART -
контроллера.
Длина служебного символа CHARACTER совпадает с запрограммированной длиной
других символов, с которыми работает контроллер. Значение поля CHARACTER
может быть изменено пользователем, только когда сброшен бит готовности
REA = 0.
При передаче служебного символа контролируется состояние сигнала
разрешения передачи cts = 0. Если при передаче служебного символа был
Предыдущая << 1 .. 332 333 334 335 336 337 < 338 > 339 340 341 342 343 344 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed