В помощь студентам БНТУ - курсовые, рефераты, лабораторные !


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

Введение

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

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

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

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

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

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

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

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

 

  • Регистры буферов приёмника и передатчика,
  • Регистры разрешения и идентификации прерываний,
  • Регистры управления и состояния линии,
  • Регистры управления и состояния модема,
  • Регистры буфера делителя генератора.

 

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

  Таблица 1.1

Адрес

Операция

Регистр

DLAB

0

W

Буфер передатчика(THR)

0

0

R

Буфер приёмника (RBR)

0

0

R\W

Младший байт буфера делителя (Division Latch MSB)

1

1

R\W

Старший байт буфера делителя (Division Latch MSB)

1

1

R\W

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

0

2

R

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

X

3

R\W

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

X

4

R\W

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

X

5

R

Регистр состояния линии (LSR)

X

6

R

Регистр состояния модема (MSR)

X

7

R\W

Неиспользуемый регистр (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 стоп-бита.

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

       00 – 5 битов;

       01 – 6 битов;

       10 – 7 битов;

       11 – 8 битов.

 

@reg

@support17

Сейчас 103 гостей онлайн

@(c)

Copyright © 2009-2011 Support17.com
Любое использование материалов, опубликованных на support17,
разрешается только в случае указания гиперссылки на Support17.com

@s

Родоначальницей всех приборостроительных специальностей явилась кафедра «Приборы точной механики», которая была открыта в 1961 г. на машиностроительном факультете.
В 1976 г. был организован оптико-механический факультет.