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

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

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 372 373 374 375 376 377 < 378 > 379 380 381 382 383 384 .. 528 >> Следующая

байтам для других SCC-каналов. ___
Ошибка потери сигнала CD возникает, если при приеме данных этот сигнал
становится пассивным (CD = 1). При возникновении этой ошибки канал
прекращает прием данных, закрывает буфер, устанавливает бит ошибки CD:=1
в слове состояния буферного дескриптора и бит RX := 1 в регистре событий
BISYNC-контроллера, вызывая запрос на прерывание. Эта ошибка имеет самый
высокий приоритет среди других ошибок приема, и при ее возникновении
другие ошибки не проверяются.
При приеме сообщений BISYNC-контроллер постоянно проверяет полученные
данные по четности/нечетности. Если возникает ошибка четности (parity),
то канал записывает последний принятый символ в буфер, прекращает
дальнейший прием данных, закрывает буфер приема, устанавливает бит ошибки
PR := 1 в его слове состояния и бит RX := 1 в регистре событий, а также
увеличивает на единицу счетчик ошибок четности/нечетности в ячейке PAREC
памяти параметров BISYNC-контроллера.
При возникновении всех вышеперечисленных ошибок приема контроллер
немедленно переходит в режим поиска новых кадров (hunt mode).
Во время приема каждого символа BISYNC-контроллер постоянно, с задержкой
в восемь периодов тактовой частоты приема RCLK обновляет значение бита CR
в слове состояния текущего буфера приема. Контроллер, получив служебный
символ окончания блока данных, завершает вычисление контрольной суммы CRC
и сравнивает ее со значением в поле CRC, которое следует сразу за
символом окончания блока. Если обнаружено несовпадение подсчитанной и
полученной контрольных сумм, то контроллер записывает полученную CRC-
сумму в буфер приема, закрывает буфер, устанавливает бит ошибки CR := 1 в
слове состояния буферного дескриптора и бит RX := 1 в регистре событий
канала, вызывая маскируемое прерывание центрального процессора.
Прием служебных символов. Существует два способа управлять приемом данных
в BISYNC-контроллере. При первом способе используются однобайтовые буферы
для приема, и прерывание назначено после приема каждого буфера, таким
образом, прерывание уведомляет центральный процессор о приеме каждого
символа. Это достаточно простой и гибкий метод управления приемом, но он
имеет существенный недостаток, так как требуется постоянная обработка
прерываний и работа основного процессора будет замедляться.
Второй способ более эффективен, так как используется при приеме данных в
многобуферную структуру. Программное обеспечение пользователя, анализируя
первые биты буфера приема, определяет, какой тип кадра или блока
принимается контроллером, и производит дополнительные настройки режима
приема. Приход контрольного символа может информировать контроллер, что
закончен прием текущего блока данных и ожидается следующий блок данных.
Например, символ ЕТВ информирует о приеме блока данных, а символ ЕТХ - о
приеме блока текста, и что контроллер ожидает приема блока контрольной
суммы BCS. Прием символа ENQ информирует, что принят блок данных, но без
поля BCS. Дальнейший прием данных будет производиться без вмешательства
центрального процессора. Для реализации этого метода бит разрешения
прерывания от события RCH
658
ПОДДЕРЖКА ПРОТОКОЛОВ В КОММУНИКАЦИОННЫХ КОНТРОЛЛЕРАХ
в регистре маски BISYNC-контроллера должен быть предварительно
установлен, разрешая прерывание при приеме каждого байта данных. Это
позволит программному обеспечению пользователя анализировать тип
принимаемого блока данных. После этой проверки, если был принят символ
DLE-STX, приемник необходимо перевести в режим "прозрачного" приема
данных, установив для этого бит RTR := 1 в регистре режима BISYNC-
контроллера. Этот бит необходимо сбросить после приема пары символов DLE-
ETX. Если же был принят символ начала блока SOH, то каналу необходимо
передать команду сброса в исходное состояние счетчиков контрольной суммы
RESET BCS CALCULATION. После выполнения этих действий прерывание от бита
RCH должно быть замаскировано.
Далее BISYNC-контроллер будет принимать данные без вмешательства
основного процессора, пока не примет контрольный символ, означающий конец
принимаемого блока. После приема символа конца текста ЕТХ-контроллер
будет ожидать прием поля контрольной суммы BCS, а затем буфер приема
будет закрыт.
Символ ENQ используется для прерывания передачи текущего блока данных.
Для приемника получение этого символа означает конец блока, после
которого не ожидается CRC-блок контрольной суммы.
После приема контрольного символа конца блока данных бит RCH в регистре
маски BISYNC-контроллера должен быть снова установлен, чтобы начать прием
нового блока данных.
Таким образом, специальные служебные символы могут быть использованы для
управления процессом передачи по сети. Обычно это рекомендуется, если
размер буфера приема данных больше 1 байта, так как при настройке работы
с однобайтовым буфером прием каждого байта данных легко контролируется, и
служебные символы не нужны. При приеме все контрольные символы
Предыдущая << 1 .. 372 373 374 375 376 377 < 378 > 379 380 381 382 383 384 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed