Добавил:
kostikboritski@gmail.com Выполнение курсовых, РГР технических предметов Механического факультета. Так же чертежи по инженерной графике для МФ, УПП. Писать на почту. Дипломы по кафедре Вагоны Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

литература / Пухальский Проектирование микропроцессорных систем 2001

.pdf
Скачиваний:
333
Добавлен:
12.11.2017
Размер:
21.12 Mб
Скачать

250

Глава 3. Интерфейсные БИС

D5 -

EW (Extended Write) — задание расширенной длительности активных уровней (0)

системных сигналов управления MEMW и I/O W в активном режиме работы DMAC (длитель­ ность этих сигналов при значении EW = 1 показана на рис. 3.66 штриховой линией);

D6 = TCS (Terminal Count Stop) — разрешение автоматического сброса в 0 разряда СН„, по окончании пересылки всего блока данных по каналу т при TCS = 1, что предотвращает про­ должение дальнейших DMA-операций по этому каналу, если внешнее устройство I/O,,, не сняло запрос DRQm= 1. Если разряд TCS = 0, то прекращение DMA-операций возлагается на внешнее устройство 1/От, информируемое о конце пересылок значением сигнала ТС = 1;

D7 = AL (Auto Load) — разрешение автоматической загрузки значений ARG3 и TCRG3 кана­ ла 3 в соответствующие регистры канала 2 после его обслуживания. Если разряд AL = 1, то при загрузке параметров АВ2 и АА2 в регистры ARG2 и TCRG2 они автоматически дублируются

врегистрах ARG3 и TCRG3 канала 3. Затем эти параметры используются для автоматического восстановления исходных значений ARG2 и TCRG2 (цикл обновления) после передачи блока данных без непосредственного программного вмешательства между блоками. Такой режим работы DMAC используется, например, при регенерации изображения на дисплее (блок данных

впамяти содержит экранную информацию). Разряд СН2 не сбрасывается автоматически в 0 после обслуживания канала 2 при значении разрядов AL = 1 и TCS = 1.

До установки значения разряда СНт = 1 следует произвести загрузку регистров ARGm и TCRGm канала т значениями базового адреса АВтсистемной памяти и размером пересылаемого

блока данных ДАШдля предотвращения разрушения хранящихся в памяти данных при случай­ ном запросе ПДП внешним устройством 1/От.

Инициатором ПДП может быть как I/O, так и МП. Если значение сигнала DRQm = 1, то ПДП вызывает МП подачей команды установки режима, в которой разряд СНт= 1. Перед по­ дачей этой команды должен быть запрограммирован начальный адрес ARGm = АВт и размер блока TCRGm= ДА,„.

Регистр состояния DM AC 8257. Формат слова состояния SW показан на рис. 3.69. Разря­ ды ТСт устанавливаются в 1 при обнулении терминального счетчика (ТС,„ = 1 означает, что канал m обслужен). Разряд UP (флаг обновления) устанавливается в 1 при автозагрузке (при значении разряда A L = 1). При чтении слова состояния SW все разряды ТСт сбрасываются в 0, при этом флаг UP не сбрасывается. Сброс этого флага производится при подаче сигнала сис­ темного сброса или при сбросе режима автозагрузки (разряд AL в команде установки режима сбрасывается в 0), а также при окончании цикла обновления.

D7

D6

D5

D4

D3

D2

D1

D0

Status Register

0

0

0

UP

ТСЪ

тс2

тсх

ТСо

(,SRG)

 

 

 

 

т

 

 

 

 

 

Update F lag ----

Terminal Count Status Bits

 

Рис. 3.69. Формат слова состояния DMAC

У правление электронны м диском. Объем системной памяти МП-систем, построенных на основе МП 8080А/8085А, равен всего 64 Кбайта. Это иногда вызывает необходимость ис­ пользовать внешнюю память для хранения больших объемов оперативных данных или загру­ жаемых в системную память прикладных программ. Внешнюю память можно реализовать как на магнитных дисках (требуется некоторая дисковая операционная система), так и на БИС по­ стоянной и оперативной памяти (на электронном диске). Принципиальная схема контроллера прямого доступа к памяти, управляющего обменом данными между системной памятью и электронным диском была приведена на рис. 2.23.

3.6. Контроллеры прямого доступа к памяти 8257 и 8237А

251

Пересылка блоков размером до 256 байт из электронного диска в системную память (DMA-запись) инициируется программой:

 

 

Инициализация счетчика адресов электронного диска (см. рис. 2.23)

MVI

A, A led

А

Aled — младший байт адреса электронного диска

OUT

90h

1533ИЕ7 <- Aled

MVI

A, Ahed

А <— Ahed — старший байт адреса электронного диска

OUT

0A0h

1533ИЕ7 <- Ahed

MVI

A, Aim

А

Aim — младший байт базового адреса системной памяти Ав0

OUT

80h

ARG0 ^— Aim

MVI

A, Ahm

А <— А /mi — старший байт базового адреса системной памяти Ав0

OUT

80ft

ARGq tAhm

MVI

A, Vw

А <— Vm — младший байт размера пересылаемого блока АА0

OUT

81ft

TCRGo <— Vm

MVI

A, 40ft

А <- RdW rCl3Cn C n C i0C9Cs = 0100 0000 (RdWr = 01 — DMA-запись)

OUT

81ft

TCRG0 RdW rCl3C i2C u C 10C9Cs

MVI

A, 41ft

A <- C W = 0100 0001 (D6 = TCS = 1 , D0= CH0= 1)

OUT

88ft

MSRG CW — передача управления шинами контроллеру DMA

Пересылка блоков размером до 256 байт из системной памяти в электронный диск (DMA-чтение) инициируется такой же программой при задании значения TCRG0 = 80/г вместо 4Oh в старшем байте регистра TCRG0. Для пересылок блоков большего размера следует задать значения старших шести разрядов размера блока С 13С 12С ц С 10С 9С я Ф 000000.

С труктурная схема контроллера ПДП 8237А. Этот контроллер (рис. 3.70) обладает зна­ чительно большими возможностями, чем рассмотренный выше. В частности, в контроллере ПДП 8237А предусмотрены независимая автоинициализация всех четырех приоритетных кана­ лов ПДП, передачи типа “память-память”, инкремент и декремент адреса, каскадирование для увеличения числа каналов ПДП и независимое управление полярностью сигналов DREQm и DACKm (значением активного уровня сигналов). В контроллере ПДП 8237А введены три базо­ вых режима передачи данных и значительно расширены возможности программного управле­ ния, что позволяет увеличить производительность МП-системы при передаче данных и произ­ водить системную оптимизацию [12, 13]. Кроме того, допускается динамическая реконфигура­ ция под управлением программного обеспечения. Каждый канал может управлять пересылкой блоков данных размером от одного байта до 64 Кбайт.

Принцип работы DMAC 8237А такой же, что и DMAC 8257 (см. выше). Передачи типа “Memory-1/O” и “1/О-Метогу” выполняются за четыре такта сигнала синхронизации CLK, а передачи типа “М етогу-М етогу” — за восемь тактов (первые четыре такта на чтение памяти с сохранением байта данных во внутреннем регистре и следующие четыре такта на запись бай­ та данных в память по новому адресу).

На структурной схеме DMAC 8237А, изображенной на рис. 3.71, многие управляющие сигналы между блоками не показаны. Контроллер содержит 27 регистров памяти (всего 344 триггера). Основные узлы контроллера имеют назначение:

Timing and Control — устройство синхронизации и управления, генерирующее внутренние и внешние сигналы управления;

Priority Encoder and Rotating Priority Logic — приоритетная решающая схема с цикличе­ ским изменением приоритетов, выбирающая один из четырех каналов ПДП, имеющий наи­ больший приоритет (при одновременном запросе ПДП сигналами DREQm от нескольких //0,„,

где m = 0, 1, 2, 3);

252

8237А, 1810ВТ37

 

Uo r L l

40

] a 7

 

uowL 2

39

]A6

 

MEMR С 3

38

]A5

 

M E M w Z 4

37

] a4

 

NC С 5

36

JE o p

 

READY [

6

35

1 а з

 

HLDA [

7

34

] a 2

 

ADSTB С 8

33 3 a i

 

AEN [ 9

32 ]A0

Корпус

HRQ С 10

31

I]Vcc

типа

cs С 11

30 I d b o

P D IP

c l k L 12

29 I d b i

 

RESET С 13

28 1 d B2

 

DACK2 С 14

27 1 d b 3

 

D A C K 3 [ 15

26 ]D B 4

 

D R E Q 3 [

16

25

] da cxo

 

DREQ2 С 17

24

] d a c k \

 

DREQ\ С 18

23

1 d B5

 

DREQO[ 19

22 1DB6

 

GND [ 20

21

]DB7

Глава 3. Интерфейсные БИС

JO.

й о о Г - ч о >П Tfr О

^ ^ ^

/U U U U U U D U U U U

NC

3 7

NC

8

HLDA

9

ADSTB

10

AEN

11

HRQ

12

CS

13

CLK

14

RESET

15

DACK2

16

NC

17

6 5 4 3 2 I 44 43 42 41 40

82С37А-5

Корпус типа PLC C

18 19 20 21 22 23 24 25 26 27 28

п п п п п п п п п п п

errors —O O r - ' O v n —Ip ^ 0 ) 0 ) 0 ) 0 ) g 5 a c Q ^ * < k

39

С

А З

38

С

А2

37

С

А1

36

С АО

35

С Vcc

34

С DB0

33

С DB 1

32

С DB2

31

С DB3

30

С DB4

29

С NC

й£ Oi

^ ^

Ci Ci C} Q Q

С Q

Контакт 5 — рекомендуется подключать к Vcc, хотя и есть внутренний нагрузочный резистор, подключенный к питанию

Рис. 3.70. Контроллеры ПДП 8237А

 

 

Decrementor

 

Inc/Decrementor

 

*3-0

 

 

Temp Word

 

Temp Address

 

Е0Р<— *т>

 

 

 

Ю Buffer

 

Count Reg (16)

 

Reg (16)

 

n r

RESET

 

 

 

 

 

 

 

 

4 5 - 3

CS---- К5

 

T

 

 

16

T

 

 

 

 

 

Output

READY-

Timing

 

 

 

 

16

 

 

 

 

 

 

 

 

 

 

Buffer

CLOCK-

 

Г

~...

I

 

 

 

and

 

 

 

 

 

AEN

Control

Read Buffer

 

Read/Write Buffer

 

 

ADSTB

 

Base

;

Ba™

 

Current

:

Current

 

 

MEMR

 

 

 

 

 

Address

i,

 

 

Address

!

5 ord

 

 

 

 

Count

 

 

Command

 

 

(1б)* 4

;

ae) x 4

 

j

0 « " 4

 

 

 

 

 

Control

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Write Buffer

Read Buffer

 

Di-o

DRSQ^-q

Priority

 

 

 

znz

 

Ж

SL

^7-0

Encoder

Command (8) <^T

 

 

 

S/0 Buffer

HLDA-----

and

 

 

 

 

 

 

 

TV

 

 

HRQ*—

Rotating

 

 

 

 

 

 

 

 

 

A ,

Priority

 

 

 

 

 

 

 

 

 

Logic

 

 

 

Read/Write

 

 

v

 

DACKyX

 

 

 

 

 

Mode

 

.Stefas

 

 

 

Request (4)

< J_

 

 

Temporary

 

 

 

(6) *4

 

(8)

(8)

 

Рис. 3.71. Структурная схема контроллера ПДП 8237А

Base Address — четыре 16-разрядных регистра хранения базовых адресов АВт, в которые МП при инициализации каждого канала записывает 16-разрядный начальный адрес системной памяти;

Base Word Count — четыре 16-разрядных регистра хранения размеров ДАт пересылаемых блоков данных (число циклов DMA)',

3.6. Контроллеры прямого доступа к памяти 8257 и 8237А

253

Inc/Decrementor, Temp Address Reg (инкрементор/декрементор и регистр временного хра­ нения текущего значения адреса системной памяти) — устройство, вычисляющее значение АВт+ 1 или АВт - 1 в каждом DMA-цикле;

Decrementor, Temp Word Count Reg (декрементор и регистр временного хранения текущего значения числа оставшихся DMA-циклов) — устройство, в каждом DMA-цикле, вычисляющее значение ААт - 1;

Current Address — четыре 16-разрядных регистра хранения текущих значений адресов Ат системной памяти;

Current Word Count — четыре 16-разрядных регистра хранения текущих значений числа оставшихся DMA-циклов;

Command — 8-разрядный регистр хранения команд;

Mask — 4-разрядный регистр хранения маски запросов DMA от внешних устройств;

Request 4-разрядный регистр хранения запросов DMA по требованию МП;

Mode — четыре 6-разрядных регистра хранения режимов работы каналов DMA;

Command Control — устройство управления, декодирующее различные команды, полу­ ченные от МП до обслуживания запроса DMA, а также декодирующее слово управления режи­ мами, задающее тип передач DMA при обслуживании;

Status — 8-разрядный регистр слова состояния;

Temporary — 8-разрядный регистр временного хранения байта данных при передачах типа “память-память”.

Назначение сигналов DM AC 8237А. Обозначения и назначение большинства сигналов DMAC 8257 и 8237А совпадают, поэтому нет смысла описывать их заново (сигналы DREQ3_0 соответствуют сигналам DRQ3_0 DMA Request). Отличительные особенности некоторых сиг­ налов DMAC 8257:

DREQi^o (DMA Request) — сигналы запросов DMA от внешних устройств I/Om (m = 0 ... 3). Если не используется циклический сдвиг приоритетов, то вход DRQ0 имеет наибольший, а вход DRQi наименьший приоритет. Полярность (значение активного уровня) сигналов DREQ,,, про­ граммируется пользователем — можно задать прямые DREQm или инверсные DREQm сигналы (активные уровни 1 и 0 соответственно). Значение сигнала сброса RESET = 1 задает прямые сигналы DREQm. Значение DREQm = 1 должно удерживаться до тех пор, пока соответствующий сигнал подтверждения DACKmне перейдет в активное состояние;

DACK3 (DMA Acknowledge) — сигнал подтверждения DMA для внешнего устройства I/Om(m = 0 ... 3). Полярность сигналов DACKm программируется пользователем. Значение сиг­ нала сброса RESET = 1 задает инверсные сигналы DACK,,,. Пары сигналов DREQm и DACKm (или DACKm) являются сигналами квитирования ввода-вывода по прямому доступу к памяти для DMАС и I/Om;

ЕОР (End o f Process) — двунаправленная линия, по которой передается сигнал, активный уровень которого (0) указывает окончание процесса передачи данных (завершение обслужива­ ния по прямому доступу к памяти). Контакт ЕОР (вход) можно использовать для подачи внеш­ него сигнала ЕОР = 0, требующего окончания процесса. Если контакт ЕОР не используется для подачи внешнего сигнала, то его следует подключить к источнику напряжения питания +5 В через нагрузочный резистор, чтобы предотвратить ошибочное окончание процесса помехами. Значение выходного сигнала ЕОР = 0 генерируется при достижении конца счета DMA-циклов,

когда текущее значение ДАШстанет равным 0. Длительность низкого уровня сигнала ЕОР равна одному такту сигнала CLK в момент пересылки последнего байта данных, т. е. в этом случае сигнал ЕОР выполняет функцию сигнала ТС контроллера 8257 (см. рис. 3.66). Значение сигна­ ла ЕОР ~ 0 (внутреннее или внешнее) заставляет контроллер прекратить обслуживание внеш­ него устройства, сбрасывает запрос и если разрешена автоинициализация, содержимое базовых (Base) регистров (АНт и ААт) перезаписывается в текущие (Current) регистры обслуженного

Рис. 3.72. Каскадирование БИС 8237А

254 Глава 3. Интерфейсные БИС

канала. Если же автоинициализация не разрешена, то устанавливается в 1 разряд обслуженного канала в регистре маски и соответствующий разряд ТС„, в регистре слова состояния;

R E SE T — сигнал сброса DM AC в исходное состояние. Значение сигнала RESET = 1 сбра­ сывает в 0 триггеры регистра команды (Command), регистра состояния (Status), регистра запро­ сов DMA (Request) и регистра временного хранения (Temporary), а также сбрасывает в 0 триг­ гер First/Last Flip-Flop (триггер F/L в DMAC 8257 — см. рис. 3.67) и устанавливает в 1 тригге­ ры регистра маски запросов DMA (Mask).

Подключается контроллер прямого доступа к памяти 8237А к системным шинам точно так же, как и контроллер 8257 (см. рис. 3.65). На рис. 3.72 показано каскадирование контроллеров

8237Л:

 

 

 

 

DRSQq

 

 

 

 

DACICq

 

Уровень 1

8237A *

 

 

DREQо

HRQ

DRSQ3

 

 

B A C K tf— » HLDA

DACKj<’— ►

C P U

8237Л >

Уровень 2

HOLD

HRQ

DRSQ3

 

 

HLDA

HLDA

DACK3 O— »

 

 

DMAC уровня 1 командой задания режимов работы устанавливается в режим каскадирования; запросы DMA контроллеров уровня 2 прохо­ дят через приоритетную решающую схему DMAC

уровня 1, что обеспечивает назначение приорите­ тов всем 16 каналам DMA уровня 2 в соответствии

сназначенными приоритетами DMAC уровня 1;

вактивном режиме работы DMAC уровня 2 сигналы DMAC уровня 1, связанные с системны­ ми шинами адреса, данных и управления, блоки­ руются, так как его назначением является только обслуживание DMAC уровня 2;

вход готовности DMAC уровня 1 игнориру­

ется;

при необходимости можно добавить третий уровень DMАС.

П рограммирование D M AC 8237А. Операции ввода-вывода, которые может производить МП в пассивном режиме работы DMAC, представлены в табл. 3.13. Для адресации двухбайто­ вых регистров Base Address и Base Word Count дополнительно используется внутренний триг­ гер First/Last Flip-Flop для указания записи/чтения младшего и старшего байт. Первым записы­ вается младший байт, и триггер First/Last Flip-Flop из состояния 0 переходит в состояние 1, которое адресует старший байт при неизменных значениях адресных сигналов Л3_оДанный триггер сбрасывается в 0 значением сигнала RESET = 1, а также командами M aster Clear и

Clear First/Last Flip-Flop.

Отличие табл 3.13 от табл 3.12 вызвано в основном расширением возможностей управле­ ния контроллером 8237А с помощью программного обеспечения — добавлено семь команд управления и одна команда чтения. Команды Clear First/Last Flip-Flop (port = xCh), Master Clear (port = xDh) и Clear Mask Register (port = xEh) для выполнения операций не используют значения разрядов шины данных (D70 = х).

Слово управления регистра команд. Данное слово управления (рис. 3.73) задает пара­ метры всех четырех каналов DMA (port = х8К). Все разряды регистра команд устанавливаются в 0 значением сигнала RESET = 1 и командой Master Clear. Некоторые разряды слова управле­ ния требуют дополнительных пояснений:

D0 — значение D0 = 1 задает использование для передач данных двух каналов DMA: кана­ ла 0 для чтения памяти с сохранением байта данных в регистре Temporary и канала 1 для запи­ си байта данных из регистра Temporary по новому адресу. При этом пересылки типа “памятьпамять” инициируются микропроцессором подачей слова управления в регистр запросов DMA при значении разрядов D2DjDo = 100 (см. рис. 3.75) — программный запрос в отличие от аппа­ ратного запроса сигналами DREQm, поступающими от внешних устройств. Пересылки типа

3.6. Контроллеры прямого доступа к памяти 8257 и 8237А

255

“память-память” в режиме блоковой передачи (Block mode transfer— см. рис. 3.74), выполняе­ мые с помощью DMAC, позволяют сократить программное обеспечение и увеличить произво­ дительность МП-системы. Пересылки типа “память-память” можно использовать для быстрого поиска в памяти заданного кода байта с помощью аппаратного цифрового компаратора [5], подающего значение сигнала ЕОР = 0 на вход контроллера ЕОР для завершения поиска (за­ вершения передач данных);

D 1 — значение D t = 1 отключает операцию инкремента/декремента текущего адреса сис­ темной памяти канала 0, что позволит заполнять константами блоки памяти, адресуемые ка­ налом 1;

D3 — значение D3 = 1 задает : жлючение из DMA-циклов такта Si (фиксация старшего байта адреса памяти во внешнем ре истре) и такта 53, задающего нормальную длительность активных уровней сигналов MEMR v UOR (см. рис. 3.66). Такт 51, вводится только при измене­ нии старшего байта адреса памяти А|5_8, т. е. один раз за 256 DMA-циклов. Возможность ис­ пользования режима Compressed timing зависит от быстродействия системы.

Таблица 3.13. Операции ввода-вывода

CS Аъ Аг Ai

 

I/O W

I/OR

0

0

0

0

0

0

1

0

0

0

0

1

0

1

0

0

0

1

0

0

1

0

0

0

1

1

0

1

0

0

1

0

0

0

1

0

0

1

0

1

0

1

0

0

1

1

0

0

1

0

0

1

1

1

0

1

0

0

0

0

0

1

0

0

0

0

0

1

1

0

0

0

0

1

0

1

0

0

0

0

1

1

1

0

0

0

1

0

0

1

0

0

0

1

0

1

1

0

0

0

1

1

0

1

0

0

0

1

1

1

1

0

0

1

0

0

0

0

1

0

1

0

0

1

0

1

0

1

0

1

0

0

1

0

1

0

1

1

0

1

0

1

1

0

0

0

1

0

1

1

0

1

0

1

0

1

1

1

0

0

1

0

1

1

1

1

0

1

0

1

0

0

0

1

0

0

1

1

0

1

1

0

0

X X X X

1

1

1

X X X X

X

X

 

Операция

D7_0D7_0

= Ада —» Base and Current Address Channel 0

D7_oD7-o

= ДА0 —» Base and Current Word Count Channel 0

D7^)D7_o

= A bi —» Base and Current Address Channel 1

D7_qD7^o

= ДАi —» Base and Current Word Count Channel 1

D7^0D7_0

= Ад2 > Base and Current Address Channel 2

D7_oD7_o

= ДА2 —> Base and Current Word Count Channel 2

D7_oD7_o

= Afl3 —> Base and Current Address Channel 3

D7_oD-m)

= ДА3 —> Base and Current Word Count Channel 3

D7_oD7_o

Current Address Channel 0

D7_0D7_(i Current Word Count Channel 0

D7_0D7_о <r- Current Address Channel 1

Di (]D7 0

<— Current Word Count Channel 1

D7^)D7_o

<— Current Address Channel 2

Di ijDi (,

<—Current Word Count Channel 2

D7_0D7_о

<— Current Address Channel 3

Di (|D7_f| <— Current Word Count Channel 3

D-j о —>Command Register (управление параметрами DMAC) xD2_о —> Request Register (запрос DMA по требованию МП)

xD2_о —> Single Mask Register Bit (поразрядное управление маской) D7_о —> Mode Register (управление режимами работы DMAC)

x => Clear First/Last Flip-Flop (команда очистки триггера F/L) x => Master Clear (команда программного сброса)

x => Clear Mask Register (команда очистки маски)

xD3_о —> All Mask Register Bits (управление разрядами маски)

D 7_o <—Read Status Register (чтение слова состояния) D7_„ <h- Read Temporary Register (чтение байта данных)

Нет операции (D7. (J в Z-состоянии) Нет операции (D7_« в Z-состоянии)

256

 

 

 

 

 

Глава 3. Интерфейсные БИС

о 7 D6 Ds

d 4

Оз

d 2

D\

D0

Control Word Command Register

0 0 0

0

0

0

0

0

<= RESET = 1 и команда M aster Clear

0 — Memory-to-memory disable (запрет передач “память-память”) 1 — Memory-to-memory enable (разрешение передач)

0 — Channel 0 address hold disable (запрет удержания адреса кан. 0)

1Channel 0 address hold enable (разрешение удержания адреса)

х— если значение разряда D0 = О

0Controller enable (разрешение DMA-передач)

1Controller disable (запрет DMA-передач для всех каналов DMAC)

0 — Normal timing (выполнение передач за четыре такта)

1Compressed timing (выполнение передач за два такта)

х— если значение разряда D0 = 1 (режим Compressed нельзя использовать)

0 — Fixed priority (фиксированные приоритеты)

1 — Rotating priority (циклические приоритеты)

0 — Late write selection (активные уровни MEMW и HOW нормальн. длительности) 1 — Extended write selection (активные уровни MEMW и HOW расширенной

х — если значение разряда D3 = 1 длительности; см. рис. 3.66)

0 — DREQ sense active high (задание прямого сигнала DREQ — активный уровень 1)

1 — DREQ sense active low (задание инверсного сигнала DREQ — активный уровень 0)

0 — DACK sense active low (задание инверсного сигнала DACK — активный уровень 0) 1 — DACK sense active high (задание прямого сигнала DACK — активный уровень 1)

Рис. 3.73. Формат слова управления регистра команд

Слово управления регистра режимов. Данное слово управления (рис. 3.74) задает инди­ видуальные режимы работы для каждого канала DMA (port = хВй) — шесть разрядов слова управления D7 2 записываются в выбранный разрядами DiD0 = т регистр режима канала т. Назначение разрядов слова управления:

D[D0 = т — выбор регистра режима канала ш;

D3D2 — выбор режима работы канала т. Эти разряды по назначению эквивалентны разря­ дам RdWr для контроллера 8257 (см. рис. 3.67);

D4 — запрет (D4 = 0) и разрешение (D4 = 1) автоинициализации канала т. Если значение разряда D4 = 1, то после передачи текущего блока данных содержимое АВт регистра хранения базового адреса Base Address и содержимое ААт регистра хранения размеров пересылаемых блоков Base Word Count автоматически переписываются в регистры хранения текущих значе­ ний этих величин Current Address и Current Word Count (см. рис. 3.71);

D5 — выбор направления передачи данных памяти для канала /и; D7D6 — выбор режима передачи данных для канала т.

В реж име одиночной передачи (D7D 6 = 01) после каждого DMA-цикла контроллер осво­ бождает шины микропроцессору минимум на один цикл шины данных (снимается запрос за­ хвата шин HRQ = 1), но сразу же начинает проверку входов DREQm, и как только обнаруживает активный уровень, инициирует следующий DMA-цикл (подается новый запрос захвата шин HRQ = 1). Так продолжается до тех пор, пока не будут пересланы все ДАт байт данных и не будет получено значение ЕОР = 0. Значение активного уровня сигнала DREQmдолжно поддер­ живаться до получения активного уровня сигнала DACKm.

3.6. Контроллеры прямого доступа к памяти 8257 и 8237А

257

Врегистр режима -

 

 

 

Di Di; Dj ZX| D3 D 2 D 1 D0 Control Word Mode Register

 

00

Select Channel 0

(селекция канала 0)

 

01

Select Channel 1 (селекция канала 1)

 

10 — Select Channel 2

(селекция канала 2)

 

11

Select Channel 3

(селекция канала 3)

 

00 — Verify transfer (верификация передач дакчых)

01 Write transfer (передача данных из внешнего устройства в память) 10 — Read transfer (передача данных из памяти во внешнее устройство) 11 — Illegal (запрещено)

хх — если разряды D1D6 = 11

0 — Autoinitialization disable (автоинициализация запрещена)

1 — Autoinitialization enable (автоинициализация разрешена)

0 — Address increment select (инкремент адреса системной памяти после DAM-цикла) 1 — Address decrement select (декремент адреса системной памяти после DА/А-цикла)

00 — Demand mode select (задание режима передач по требованию)

01 — Single mode select (задание режима передач отдельными байтами с “прореживанием”) 10 — Block mode select (задание режима блоковых передач)

11 — Cascade mode select (задание режима каскадирования; см. рис. 3.72)

Рис. 3.74. Формат слова управления регистра режимов

В реж име блоковой передачи (DnDb = 1 0 ) активный уровень сигнала DREQm должен со­ храняться только до получения активного уровня сигнала DACKm, после чего шины не освобо­ ждаются до завершения передачи всего блока. Передача может быть прервана внешним сигна­ лом ЕОР = 0.

Режим передачи по требованию [D-Db = 00) аналогичен режиму блоковой передачи, но после каждого DMA-цикла проверяется значение сигнала DREQm — если значение сигнала DREQm неактивное, то передачи приостанавливаются до тех пор, пока не будет получено ак­ тивное значение сигнала DREQm. После этого передача продолжается с того адреса памяти, на котором она была приостановлена. Данный режим позволяет внешнему устройству остановить передачу, если оно не может продолжить ее.

В любом режиме при достижении значения АА,„ = 0 выдается значение сигнала ЕОР - 0, передача данных прекращается и выполняется автоинициализация, если разряд £>4 = 1 в реги­ стре режима.

х х х X х D 2 D\ А> Control Word Request Register (D\D 0 = m)

1__ l

00 — Select Channel 0 (селекция канала 0)

01 — Select Channel 1 (селекция канала 1)

10 — Select Channel 2 (селекция канала 2)

11 — Select Channel 3 (селекция канала 3)

0 — Re set request bit (сброс в 0 разряда запроса DMA канала т)

1 — Set request bit (установка в 1 разряда запроса DMA канала т)

Рис. 3.75. Формат слова управления регистра запросов и регистра маски

17 Г. И. Пухальский

258

Глава 3. Интерфейсные БИС

Слово управления регистра запросов. Операция, выполняемая при подаче этого слова управления (рис. 3.75), аналогична операции поразрядной установки/сброса в БИС 8255А (см. рис. 3.3) — производится запись значения 0 или 1 только в один из разрядов 4-разрядного регистра программных запросов DMA (port = х9h).

Установка в 1 разряда запроса DMA какого-либо канала т эквивалентна подачи активного уровня сигнала DREQm от внешнего устройства, т. е. прямым доступом к памяти можно управ­ лять программным способом. Этот разряд автоматически сбрасывается в 0 при завершении передачи значением сигнала ЕОР - 0.

Слово управления регистра маски. Операция, выполняемая при подаче этого слова управления (рис. 3.76), аналогична операции поразрядной установки/сброса в БИС 8255А (см. рис. 3.3) — производится запись значения 0 или 1 только в один из разрядов 4-разрядного регистра маски DMA (port - xAh).

X X X X X d 2 D , Do Control Word Mask Register (D , Df) = m)

00 — Select Channel 0 (селекция канала 0)

01 — Select Channel 1 (селекция канала 1)

10 — Select Channel 2 (селекция канала 2)

11 — Select Channel 3 (селекция канала 3)

0 — Clear mask bit (сброс в 0 разряда маскирования DMA канала m) 1 — Set mask bit (установка в 1 разряда маскирования DMA канала т)

Рис. 3.76. Формат слов управления регистра запросов и регистра маски

Установка в 1 разряда маски DMA какого-либо канала т блокирует аппаратные запросы DMA этого канала DREQm (программные запросы не блокируются). Разряд маски обслуживае­ мого канала т автоматически устанавливается в 1 при завершении передачи значением сигнала ЕОР = 0, если канал т не запрограммирован на автоинициализацию.

Слово управления установки маски. Это слово управления (рис. 3.77) используется для установки маски DMA сразу для всех четырех каналов т (port = xFh). Установку в 0 всех раз­ рядов маски можно выполнить командой Clear Mask Register (см. табл. 3.13).

X X X X D 3 d 2 о , D0 Control Word All Mask Register Bits

0 — Clear channel 0 mask bit (запросы DMA кан. 0 обслуживаются) 1 — Set channel 0 mask bit (запросы DMA канала 0 блокируются)

0 — Clear channel 1 mask bit (запросы DMA канала 1 обслуживаются) 1 — Set channel 1 mask bit (запросы DMA канала 1 блокируются)

0 — Clear channel 2 mask bit (запросы DMA канала 2 обслуживаются) 1 — Set channel 2 mask bit (запросы DMA канала 2 блокируются)

0 — Clear channel 3 mask bit (запросы DMA канала 3 обслуживаются) 1 — Set channel 3 mask bit (запросы DMA канала 3 блокируются)

Рис. 3.77. Формат слова управления установки маски

 

 

3.7. Программируемый связной интерфейс 8251А

259

D7

О б о 5 D4 О з

d 2 о , D0 Status Register

 

О

о

<= RESET = 1

 

1 — Channel 0 has reached TC (достигнут конец счета в канале 0) 1 — Channel 1 has reached TC (достигнут конец счета в канале 1)

1 — Channel 2 has reached ТС (достигнут конец счета в канале 2) 1 — Channel 3 has reached ТС (достигнут конец счета в канале 3)

1 — Channel 0 request (есть запрос DMA в канале 0) 1 — Channel 1 request (есть запрос DMA в канале 1)

1 — Channel 2 request (есть запрос DMA в канале 2) 1 — Channel 3 request (есть запрос DMA в канале 3)

Рис. 3.78. Формат слова состояния SW

Регистр состояния. Содержимое этого регистра (рис. 3.78) доступно для чтения микро­ процессором командой IN port (port = х8h). Значение разряда Dm = 1 (т = 0, 1, 2, 3) указывает, что обслуживание канала т завершено, а значения старших четырех разрядов Dm + 4 = 1 сигна­ лизируют о наличии не обслуженных запросов DMA от каналов т.

3.7. Программируемый связной интерфейс 8251А

Программируемые связные интерфейсы 8251/825(Programmable Communication Inter­ face РСГ) фирмы Intel используются для передачи данных по последовательным каналам связи. Эти интерфейсы представляют собою универсальные синхронные/асинхронные приемо­ передатчики — USART (Universal Synchronous/Asynchronous Receiver/Transmitter). БИС 825

является усовершенствованным вариантом БИС 8251 (отечественные аналоги 580ВВ51 и 580ВВ51А). Данные БИС предназначены для организации последовательного канала связи при проектировании МП-систем на основе микропроцессорных семейств фирмы Intel M SC-48, 80, 85 и iAPX -86, 88 (1816ВЕ48, 580ВМ80А, 1821ВМ85А и 1810ВМ86, 1810ВМ88).

Изготавливаются БИС по и-МОП технологии, причем входы и выходы совместимы с ТТЛ ИС. Кристалл БИС 8251 содержит 3350 транзисторов. Допустимые значения частоты тактового сигнала CLK равны: F CLk = 0,74 -н 2,4 МГц (БИС 8251) и F CLK = 0,74 н- 3,1 МГц (БИС 8251А).

Максимальные значения токов потребления: Ice max = 80 мА (БИС 8251) и /ССии = 100 мА (БИС 8251А). Максимальная рассеиваемая мощность составляет 1 Вт. Выходные сигналы МП харак­ теризуются параметрами:

VoLmax = 0,45 В при I0L = 1,6 мА, V0н тт= 2,2 В при 10Н = -100 мкА для БИС 8251;

VoLmax = 0,45 В при I0L = 2,2 мА, V0H min = 2,4 В при 10Н = -400 мкА для БИС 8251А.

Классификация последовательных каналов связи. От МП на USART символы данных передаются в параллельном формате (байтами), a USART преобразует их в непрерывный по­ следовательный поток бит для передачи по линии связи. Независимо от передачи USART мо­ жет получать последовательные потоки бит по линии связи и преобразовывать их в параллель­ ные коды данных для МП. USART сообщает МП всякий раз, когда он может принять новый символ для передачи или когда он принял символ для МП по линии связи. В качестве данных по каналу связи могут приниматься и передаваться 5-, 6-, 7- и 8-разрядные символы.

17*