Канал последовательной связи на основе МС 8251

Рефераты по схемотехнике » Канал последовательной связи на основе МС 8251

Министерство образования Российской Федерации

Институт переподготовки кадров

Уральского государственного технического

университета

Кафедра микропроцессорной техники
Курсовой проект

ТЕМА: Канал последовательной связи на основе МС 8251

Пояснительная записка

Руководитель доц. к.т.н.                               И.Е. Мясников

Слушатель гр. СП-923                                    А.С.

2001г.

Содержание

1. Введение (постановка задачи)

2. Состав контроллера последовательного интерфейса

·    Регистр буфера передатчика (THR).

·    Регистр буфера приёмки (RBR).

·     Регистр буфера младшего байта делителя (Divisor Latch LSB).

·     Регистр буфера старшего байта делителя (Divisor Latch MSB).

·     Регистр разрешения прерываний (IER).

·     Регистр идентификации прерывания (IIR).

·     Регистр управления линией (LCR).

·     Регистр управления модемом (MCR).

·     Не используемый регистр (Scratch Register).

3.Последовательная передача данных

4. Протокол последовательной связи.

5. Общие сведения о интерфейсе RS–232С

6. Таблица 1.5 Функции сигнальных линий интерфейса RS–232C.

7. Таблица 1.6 Основные линии интерфейса RS–232C.

8. Виды сигналов

9. Усовершенствования

10. Тестирование канала RS–232C

11. Использованная литература

Введение

    Контроллер последовательного интерфейса предназначен для обеспечения связи по протоколу RS232C.

    В настоящее время известны и другие реализации этого контроллера как совместимые с рассматриваемым адаптером так и не совместимые.

Реализация контроллера RS-232C выполнена на основе МС 8251.

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


Постановка задачи

 

 Составить структурную схему RS-232C; описать состав контроллера  последовательного интерфейса и протокол последовательной связи устройства для тестирования RS-232C.

Состав контроллера

последовательного интерфейса.

          В состав контроллера последовательного интерфейса входят следующие регистры:

·     Регистры буферов приёмника и передатчика

·     Регистры разрешения и идентификации прерываний

·     Регистры управления и состояния линии

·     Регистры управления и состояния модема

·     Регистры буфера делителя генератора.

В таблице 1.1 приведены адреса всех программно доступных регистров. Адреса в этой таблице даны относительно базового адреса контроллера[1].

  Таблица 1.1

Адрес Операция Регистр DLAB
0 W Буфер передатчика(THR) 0
0 R Буфер приёмника (RBR) 0
0 RW Младший байт буфера делителя (Division Latch MSB) 1
1 RW Старший байт буфера делителя (Division Latch MSB) 1
1 RW Регистр разрешения прерывания (IER) 0
2 R Регистр идентификации прерывания(IIR) X
3 RW Регистр управления линией (LCR) X
4 RW Регистр управления модемом (MCR) X
5 R Регистр состояния линии (LSR) X
6 R Регистр состояния модема (MSR) X
7 RW Неиспользуемый регистр (Scratch Register) X

          Базовый адрес контроллера в зависимости от номера контроллера располагается в сегменте данных BIOS и приведён в таблице 1.2

                                                                                                Таблица 1.2

Номер контроллера Адрес в сегменте BIOS Номер прерывания
COM1 0040:0000 IRQ4 (INT 0Ch)
COM2 0040:0002 IRQ3 (INT 0Bh)
COM3 0040:0004 Не фиксирован
COM4 0040:0006 Не фиксирован

          Таблица 1.2 содержит адреса полей в области данных BIOS в которых расположены базовые адреса контроллеров последовательного интерфейса. Базовые адреса контроллеров заносятся в сегмент данных BIOS программой POST (Power On Self Testing) при проверке после включения электропитания. Программа POST  помещает базовые адреса контроллеров последовательно один за другим. Это означает что между значащими полями не может быть нулевого поля.

          Рассмотрим подробно назначение и содержимое регистров контроллера последовательного интерфейса.

          Регистр буфера передатчика (THR). Имеет адрес 0 относительно базового адреса контроллера. Данный регистр доступен только по записи и при значении бита разрешения доступа к делителю (DLAB) в регистре управления линией (LCR) равном 0. Регистр THR содержит восемь битов данных (бит 0 является младшим значащим разрядом и посылается первым в канал передачи).

          Регистр буфера приёмки (RBR). Имеет адрес 0 относительно базового адреса контроллера. Этот регистр доступен по чтению(IN) и при значении бита разрешения доступа к делителю(DLAB) в регистре управления линией (LCR) равном 0. Регистр RBR содержит восемь битов данных (бит 0 является младшим значащим разрядом и принимается первым из канал передачи).

 

Регистр буфера младшего байта делителя (Divisor Latch LSB).

Регистр имеет адрес 0 относительно базового адреса контроллера. Этот регистр доступен по чтению и записи только при значении бита разрешения доступа к делителю (DLAB) в регистре управления линией (LCR) равном 1. При записи в этот регистр нового значения делитель перезагружается немедленно.

Регистр буфера старшего байта делителя (Divisor Latch MSB).

Регистр имеет адрес 1 относительно базового адреса контроллера. Этот регистр доступен по чтению и записи только при значении бита разрешения доступа к делителю (DLAB) в регистре управления линией (LCR) равном 1. При записи в этот регистр нового значения делитель перезагружается сразу.

          Регистр разрешения прерываний (IER). Имеет адрес 1 относительно базового адреса контроллера. Этот регистр доступен по чтению и записи но только при значении бита разрешения доступа к делителю (DLAB) в регистре управления линией (LCR) равном 0. Этот регистр позволяет управлять четырьмя типами прерываний порождаемыми контроллером последовательного интерфейса. Формат регистра приведён ниже.

7 6 5 4 3 2 1 0
0 0 0 0 ICM ICL IFB IDA

ICM  задаёт прерывание при изменении состояния модем:

          1 – прерывание вырабатывается;

          0 – прерывание запрещено;

ICL определяет прерывание при изменении состояния линии приёмника:

          1 – прерывание вырабатывается;

          0 – прерывание запрещено;

IFB  задаст прерывание при освобождении регистра буфера принимаемых данных:

          1 – прерывание вырабатывается;

          0 – прерывание запрещено;

IDA  определяет прерывание при доступности принимаемых данных:

          1 – прерывание вырабатывается;

          0 – прерывание запрещено;

Биты  7-4 не используются и должны принимать значение 0.

          Регистр идентификации прерывания (IIR). Регистр имеет адрес 2 относительно базового адреса контроллера. Этот регистр доступен только по чтению и позволяет получить информацию от контроллера о ждущем прерывании. Значение битов регистра приведено ниже.

7 6 5 4 3 2 1 0
0 0 0 0 0 I Type II

          Биты  I Type определяют тип ждущего прерывания если оно хранится контроллером (что определяется битом II):

          11 – изменилось состояние линии приёмника;

          10 – принимаемые данные доступны;

01 – освобождён регистр буфера;

00 – изменилось состояние модема.

Более подробная информация о приоритетах прерываний условиях появления и условии сброса состояния прерывания приведена ниже в таблице 1.3

                 Информация о ждущем прерывании              Таблица 1.3

I Type Приоритет Тип Условие появления Условия сброса
11 1 Состояние линии приёмника Ошибка переполнения, чётности, посылки или пауза Операция чтения LSR
10 2 Доступность принимаемых данных Доступность принимаемых данных Операция чтения RBR
01 3 Освобождение регистра буфера передатчика Освобождение THR Операция чтения IIR или запись в THR
00 4 Состояние модема Clear To Send, Data Set Ready, Ring Indicator или Data Carrier Detect Операция чтения MSR

Бит II является индикатором ждущего прерывания:

0 – контроллер последовательного интерфейса хранит прерывание;

          1 – нет прерываний ожидающих обработки

Биты 7 – 3 регистра не используются и должны принимать

значение 0.

          Регистр управления линией (LCR). Регистр имеет адрес 3 относительно базового адреса контроллера. Этот регистр доступен по чтению и по записи.

          Значение данного регистра определяет формат передаваемых данных в линию передачи данных контроллером последовательного интерфейса. Описание битов регистра приводятся далее.

7 6 5 4 3 2 1 0
DLAB SB SP EPS PA NSB WLS

          DLAB управляет доступом к регистрам буфера делителя. Если бит равен 1 операция чтение и запись по адресам – и1 относительно базового адреса выполняются с регистрами буфера делителя программируемого генератора. Для доступа к регистрам RBR THR и IER бит должен иметь нулевое значение.

 

SB устанавливает состояние «пауза» когда равен 1. В этом остоянии на выходе контроллера последовательного интерфейса устанавливается значение 0 которое не может быть изменино никакими другими действиями кроме как переустановка бита в 0.

 

SP управляет установкой режима неизменимого бита контроля чётности. Значение бита 1 задаёт режим а значение 0 – отменяет. При установки бита SP в 1 должен устанавливаться в 1 и бит PA е.е. эти два бита связаны. Когда значение бита EPS равно 0 посылается и контролируется значение бита контроля чётности равное 1 (Mark Parity). При единичном значении бита EPS посылается и контролируется значение бита контроля чётности равное 0 (Space Parity).

EPS задаёт выбор режима контроля чётности. Если бит устанговлен в 0 и бит PA установлен в 1 генерируется и проверяется чётное количество единичных битов символа посылки и бита контроля чётности. Если бит установлен в 1 и бит PA установлен в 1 генерируется и проверяется нечётное количество единичных битов символа посылки и бита контроля чётности.

PA является битом разрешения контроля чётности. Если бит установлен в 1 то генерируется бит контроля четности между последним битом передаваемого символа и стоп-битом.

NSB определят количество стоп-битов в каждом символе передаваемом контроллером последовательного интерфейса и связан с длинной слова обмена (биты WLS). Если этот бит установлен в 0 то генерируется и проверяется один стоп-бит при любой длине слова обмена. Если этот бит установлен в 1 то при длине слова обмена в 5 бит генерируется и проверяется 1.5 стоп-бита а при любой другой длине слова обмена генерируется и проверяется 2 стоп-бита[2].

          Биты WLS определяют длину слова обмена:

          00 – 5 битов;

          01 – 6 битов;

          10 – 7 битов;

          11 – 8 битов.

          Регистр управления модемом (MCR). Регистр управления модемом имеет адрес 4 относительно базового адреса контроллера. Этот регистр доступен по чтению и записи. С помощью регистра можно управлять работой модема.

7 6 5 4 3 2 1 0
0 0 0 LB Out2 Out1 RTS DTR

LB задаёт режим «шлейфа» (Loopback) для диагностических целей. При единичной значении этого бита происходит следующее:

·     Выход передатчика (SOUT) устанавливается в активное состоние;

·     Вход приёмника (SIN)  отсоединяется;

·     Выход сдвигового регистра передатчика подсоединяется к сдвиговому регистру приёмника;

·     Четыре входных управляющих сигналов модема (CTS DSR DCD и RI) отсоединяется;

·     Черыре выходных управляющих сигнала модема (DTR RTS Out1 иOut2) подсоединяются к четырём управляющим вхолдам модема;

·     Управляющие цепи модема принудительно устанавливаются в неоктивное состояние.

В диагностическом режиме передаваемые данные сразу же принимаются. При этом полностью обеспечивается прерывание приёмника и передатчика. Управление прерываниями так же управляется регистром IER однако источниками прерываний в этом случае является четыре младших бита регистра MCR в место четырёх управляющих входов модема. Система управления прерываниями может быть проверена в режиме «шлейф» записью в младшие 6 бит регистра LSR и младшие 4 бита регистра MSR. При установке любого из этих битов в один вырабатывается соответствующие прерывания (если оно разрешено в регистре IER). Условия сброса состояния прерывание полностью соответствуют нормальному режиму работы.

Для возврата к нормальному режиму работы необходимо сначала перепрограммировать регистры для этого режима работы а затем установить бит LB регистра MCR в значение 0.

Out2 управляет сигналом Out2. При единичном значении бита сигнал Out2 устанавливается равным 1. Сигнал Out2  управляет генерацией прерываний контроллера последовательного интерфейса. При единичном знании сигнал контроллер генерирует прерывание в соответствии  со значением регистра IER. При нулевом значении сигнала Out2 контроллер не генерирует прерываний независимо от значение регистра IER.

Out1  управляет сигналом Out1. Если бит установлен в 1 сигнал Out1  устанавливается 1. При задании значения 0 сигнал устанавливается в нулевой уровень.

RTS управляет сигналом «запрос на передачу» (Request to Send). При значении этого бита равном 1 сигнал «запрос на передачу» устанавливается равным 1. При задании значения 0 сигнал устанавливается в нулевой уровень.

DTR задаёт уровень сигнала «готовность терминала» (Data Terminal Ready).  Если бит установлен в 1 сигнал «готовность терминала» устанавливается равным 1. При задании значения 0 сигнал устанавливаться в нулевой уровень.

Биты 7-5 не используются и всегда устанавливаются в 0.

Регистр состояния линии (LSR). Регистр состояние линии имеет адрес 5 относительно базового адреса контроллера и доступен только по чтению. Регистр LSR предоставляет информацию о состоянии обмена данных.

7 6 5 4 3 2 1 0
0 TEMT THRE BI FE PE OR DR

TEMT является индикатором освобождения передатчика .

Установка этого бита в 1 обозначает что как регистр THR так и регистр TSR свободный. Этот бит устанавливается в значение 0 если любой из регистров THR и TSR содержит символ.

THRE является индикатором освобождения регистра THR.

Установка этого бита 1 означает что из регистра THR символ передан в сдвиговый регистр передатчика (TSR) и регистра THR готов принять следующий байт. Если в регистре IER разрешено прерывание по освобождению регистра THR то при установке этого бита в значении 1 происходит также прерывание по освобождению регистра THR.

          BI является индикатором состояния «пауза» (Break Interrupt). Состояние «пауза» фиксируется в том случае если  уровень принимаемого сигнала установлен в 0 на время приёма полной посылке т.е. общее время стартового бита битов данных бита контроля чётности и стоп-бита. Этот бит принимает значение 0 после операции чтении регистра LSR. Биты с 4-1 являются индикаторами ошибки и установка любого из этих битов в значение 1 проводит к порождению прерывания по состоянию линий приёмника.

          FE является индикатором «ошибки стоп-битов» (Framing Error).

Ошибка стоп-бита фиксируется в том случае когда в принятом символе не обнаружена корректного стоп-бита т.е. бит следующий за последним битом данных или за битом контроля четности (в случае контроля чётности) имеет значение 0. Этот бит принимает значение 0 после операции чтения регистра LSR.

          PE является индикатором «ошибки четности» (Parity Error).

Ошибка четности фиксируется если в принятом символе обнаружено некорректное значение бита контроля чётности. Этот бит принимает значение 0 после чтении регистра LSR.

          OR является индикатором «ошибки переполнения» (Overrun Error). Ошибка переполнения фиксируется в том случае если при помешении очередного символа в регистр RBR обнаружено что предедущее содержимое этого регистра не считано и таким образом оно потеряно. Этот бит принимает значение 0 после операции чтение регистра LSR.

          DR индикатор доступности принимаемых данных. Этот бит всегда устанавливается в 1 когда приёмником полностью принят символ и помещён в регистр RBR. Бит принимает значение 0 после операцией чтения из регистра RBR.

          Бит 7 всегда устанавливается в значение 0.

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

7 6 5 4 3 2 1 0
DCD RI DSR CTS DDCD TERI DDSR DCTS

          DCD является инвертированным сигналом Data Carrier Detect (DCD). При установленном режиме «шлейфа» (бит LB регистра MCR имеет значение 1) этот бит эквивалентен биту Out2 регистра MCR.

          RI является инвертированным сигналом Ring Indicator (RI). При установленном режиме «шлейфа» (бит LB регистра MCR имеет значение 1) эквивалентен биту Out1 регистра MCR.

          DSR является инвертированным сигналом Data Set Ready (DSR). В режиме  «шлейфа» (бит LB регистра MCR имеет значение 1) эквивалентен биту DTR регистра MCR.

CTS – инвертированный сигнал Clear to Send (CTS). При установленном режиме «шлейфа» (бит LB регистра MCR имеет значение 1) этот бит эквивалентен биту RTS регистра MCR.

Биты  DDCD TERI DDSR и DCTS являются индикаторами изменения состояния модема и установка любого из этих битов в значение 1 приводит к порождению прерывания по состоянию модема если оно разрешено в регистре IER.

DDCD является индикатором изменения сигнала Data Carrier Detect (DCD). Этот бит принимет значение 1 при изменении сигнала DCD после последней операции чтения регистра MSR.

TERI является индикатором заднего фронта сигнала RI. Этот бит принимает значение 1 при изменении сигнала RI с уровня логической 1 на уровень логического нуля.

DDSR  является индикатором изменения сигнала Data Set Ready (DSR). Этот бит принимает значение 1 при изменении сигнала DSR после последней операции чтение регистра MSR.

DTCS является индикатором изменения сигналаClear to Send (CTS). Этот бит принимает значение 1 при изменении сигнала CTS после последней операции чтения регистра MSR.

Не используемый регистр (Scratch Register). Имеет адрес 7 относительно базового адреса контроллера и доступен по чтения и записи. Регистр не управляет контроллерам и может быть использован в качестве рабочего регистра для хранения каких либо данных.

Страницы: 1 2