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

Размер синхросимволов

Бит SYNL

Тип синхронизации

00 01 10

11

Внешними сигналами 4-битные синхросимволы 8-битные синхросимволы 1 6-битные синхросимволы

Формат 4/8/16-битных синхросигналов задается в регистре синхронизации DSR. На­пример, если для синхронизации приемника выбран режим SYNL = 01, то прием кадра начинается после приема четырех бит синхросигнала.

Внешние сигналы CTS и со могут быть использованы для синхронизации передат­чика и приемника. Бит CTSP в регистре GSMR определяет вид сигнала CTS и способ синхронизации передатчика, а бит СОР — вид сигнала CD и способ синхронизации приемника. Если биты CTSP и СОР равны единице, то соответствующие сигналы выс­тавляются в виде импульсов, которые отмечают момент начала обмена. В дальнейшем при обмене изменение состояния этих сигналов игнорируется. Этот режим удобен, ког­да пользователь желает передавать все данные без прерывания при передаче отдель­ных кадров. Если же биты CTSP или СОР равны нулю, то эти сигналы выставляются (становятся активными) только во время передачи кадра данных, во время промежутка между отдельными кадрами эти сигналы пассивны. Этот режим рекомендуется исполь­зовать, когда необходимо через прерывание отслеживать моменты передачи отдель­ных кадров в потоке данных.

Сигналы cts и cd могут быть или асинхронными к передаваемым данным, и тогда контроллер будет производить внутреннюю синхронизацию, или синхронизиро­ванными с кадрами данных, что используется для ускорения обработки данных. Биты CDS и CTSS при значении «О» определяют асинхронный режим работы, а значение «1» определяет синхронизированный режим работы данных и сигналов со и CTS соответственно (рис. 5.109).

Синхронизированный режим работы часто используется для соединения нескольких коммуникационных контроллеров (рис. 5.110), когда выход RTS одного контроллера со­единяется со входом CD другого. При такой конфигурации сигнал CTS не используется, а начало передачи данных отмечается активным сигналом RTS = 0.

Таким образом, синхронизация передатчика может быть выполнена или при помощи внешнего сигнала CTS , или приемником после того, как он сам синхронизируется.

Если в регистре GSMR установлен бит TXSY = 1, то работа приемника и передатчика синхронизирована. Если дополнительно установлен бит RSYN = 1, то передатчик будет син­хронизирован только после получения активного сигнала CTS = 0 и после того, как будет синхронизирован приемник. Если сигнал cts = 0, то передача начнется через восемь периодов тактовой частоты передатчика после того, как приемник начнет получать данные.

BRGOx

JU

RTS

TXD

Первый бит

Кадр данных

Последний бит

Рис. 5.109. Синхронизация передачи кадра данных

601

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

QUICC

TXD

RTS BRGO RXD CD CLK

МС68302

RXD CD CLK TXD RTS BRG

Рис. 5.110. Пример соединения двух контроллеров, работающих с Transparent-протоколом

Передача сообщений. После включения в работу (бит ENT = 1 в регистре GSMR) передатчик начинает передавать в сеть символы IDLE и опрашивает готовность к пере­даче данных из первого буфера таблицы TxBD. Если данные готовы (бит R = 1 в слове состояния буфера), то они по каналам SDMA загружаются в буфер FIFO передатчика, и контроллер ожидает синхронизации для начала передач.

После того как передатчик будет синхронизирован, он начнет передачу данных из FIFO-буфера.

После передачи каждого буфера данных контроллер проверяет бит последнего буфе­ра кадра (L = 1) в слове состояния буфера. Если бит L = 1, то контроллер записывает в слово состояния буфера биты статуса переданного кадра, сбрасывает бит R := 0 и начинает передавать символы IDLE, пока следующие данные не будут подготовлены. Если же бит L = 0, то контроллер сбрасывает бит готовности буфера к передаче R := 0 и переходит к передаче следующего буфера данных текущего кадра без разрывов на лини­ях связи при передаче соседних буферов. Если очередной буфер данных еще не готов (его бит R = 0), то регистрируется ошибка underrun и устанавливается бит ТХЕ в регистре событий Transparent-контроллера.

Если в слове состояния буфера был установлен бит I = 1, то генерируется прерыва­ние к центральному процессору по окончании передачи этого буфера.

При передаче может быть передано любое количество байт данных. Если в регистре GSMR бит REVD = 1, то Transparent-контроллер дополнительно будет менять порядок бит в байте. По умолчанию LSB-бит передается первым.

Пользователь может управлять размером буфера FIFO передатчика, программируя значение бита TFL в регистре GSMR. Если бит TFL = 0, то размер буфера равен 32 байт для SCCI-канала и 16 байт для других SCC-каналов. Если же бит TFL = 1, то размер буфера FIFO передатчика равен 1 байт. Этот режим используется для низкоскоростных каналов связи, так как при высоких скоростях возрастает вероятность возникновения ошибки underrun, когда центральный процессор не будет успевать заполнять FIFO-бу­фер по SDMA-каналам.

Пользователь может управлять работой передатчика с помощью команд STOP TRANSMIT, GRACEFUL STOP TRANSMIT, RESTART TRANSMIT, INITTX PARAMETERS.

При передаче регистрируется два типа ошибок.

1. Незаполнение (underrun), когда RISC-контроллер не успевает заполнять ячейки буфера FIFO при передаче кадра данных. При возникновении этой ошибки контроллер прекращает передачу, закрывает буфер и устанавливает бит ошибки UN := 1 в слове состояния буфера и бит ТХЕ := 1 в регистре событий, вызывая прерывание процессора. Эта ошибка регистрируется только между передачей соседних кадров. Если ошибка про­изошла при передаче последнего буфера кадра (бит L = 1 в слове состояния), то уста­навливается только бит ТХЕ := 1 в регистре событий канала.

602

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

2. Ошибка потери сигнала стз • Если во время передачи данных будет сброшен активный сигнал, и стз = 1, то регистрируется ошибка, контроллер прекращает переда­чу, закрывает буфер, устанавливает бит ошибки СТ := 1 в слове состояния буфера и бит ТХЕ := 1 в регистре событий, вызывая прерывание процессора.

Прием сообщений. Для начала приема данных приемник SCC-канала должен прой­ти процедуру синхронизации. Синхронизация достигается или при приходе внешнего сиг­нала, или при приходе SYNC-последовательностей. По окончании синхронизации при­емник начинает прием символов.

Когда текущий буфер приема полностью заполняется, SCC-контроллер сбрасывает бит пустого буфера Е := 0 в слове состояния и генерирует прерывание, если установлен бит 1 = 1. Далее контроллер переходит к заполнению следующего буфера. Если этот буфер еще не подготовлен центральным процессором, то регистрируется ошибка заня­тости и устанавливается бит BSY := 1 в регистре события Transparent-контроллера.

Если в регистре GSMR установлен бит REVD=1, то контроллер при записи данных в буфер меняет порядок битов в байтах.

Пользователь может управлять размером буфера FIFO приемника, программируя зна­чение бита RFW в регистре GSMR. Если бит RFW = 0, то канал SCC1 имеет буфер FIFO 32 байта и 16 байт для других SCC-каналов. Размер каждой ячейки буфера - 32 бита. Этот режим используется для высокоскоростных сетей. Для низкоскоростных сетей ис­пользуется установка бита RFW = 1. Канал SCC1 имеет буфер FIFO размером 8 байт и 4-байтный FIFO для других SCC-каналов, а размер каждой ячейки 8 бит. Но использование режима с битом RFW = 1 может привести к возникновению ошибки overrun (переполне­ния), если скорость работы сети выше скорости обработки данных в коммуникационном контроллере.

Приемник всегда проверяет и производит подсчет контрольной суммы CRC в прини­маемом кадре. Тип контрольной суммы задается в бите TCRC регистра GSMR. Если контроль CRC не требуется, то результат проверки игнорируется.

Для управления работой приемника предназначены команды ENTER HUNT MODE, CLOSE RX BD, INIT RX PARAMETERS. Приемник переходит в режим поиска нового кадра (hunt mode) или когда получит команду ENTER HUNT MODE, или будет обнаружена ошибка при приеме.

При приеме обнаруживаются два вида ошибок.

  1. Переполнение (overrun), когда RISC-контроллер не успевает освобождать ячейки буфера FIFO для приема новых данных, и они вынуждены записываться поверх старых данных, что приводит к потере информации. При возникновении этой ошибки текущий бу­ фер закрывается, устанавливается бит OV := 1 в слове состояния буфера и бит RX := 1 в регистре событий Transparent-контроллера. __

  2. Ошибка потери сигнала СР. Если во время приема кадра данных сигнал CD устанавливается пассивным CD := 1, то контроллер прекращает прием данных, закры­ вает буфер, устанавливает бит ошибки CD := 1 в слове состояния буфера и бит RX := 1 в регистре событий, вызывая прерывание центрального процессора.

При возникновении этих ошибок канал немедленно переходит в режим поиска новых кадров (hunt mode).

5.3.4. ДОСТУП К СЕТЯМ С ПАКЕТНОЙ ПЕРЕДАЧЕЙ (С ПРОТОКОЛАМИ Х.25)

Описание HDLC-протокола. Протокол канального уровня HDLC (Higher-level Data Link Control) принят международной организацией по стандартизации ISO. Различные промышленные фирмы пользуются своими производными этого протокола, среди кото-

603

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]