Главная -> Книги

(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) (22) (23) (24) (25) (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) (36) (37) (38) (39) (40) (41) (42) (43) (44) (45) (46) (47) (48) (49) (50) (51) (52) (53) (54) (55) (56) (57) (58) (59) (60) (61) (62) (63) (64) (65) (66) ( 67 ) (68) (69) (70) (71) (72) (73) (74) (75) (76) (77) (78) (79) (80) (81) (82) (83) (84) (85) (86) (87) (88) (89) (90) (91) (92) (93) (94) (95) (96) (97) (98) (99) (100) (101) (102) (103) (104) (105) (106) (107) (108) (109) (110) (111) (112) (113) (114) (115) (116) (117) (118) (119) (120) (121) (122) (123) (124) (67)

чик достигает нуля. Иногда вместо числа байт или слов загружается конечный адрес области основной памяти, и передача завершается, когда текущий адрес достигает конечного.

Типичным примером современного КПДП служит микросхема КР580ВТ57, входящая в состав микропроцессорного семейства КР580. Как показано выше, главные функции КПДП заключаются в выдаче адресов основной памяти и необходимых управляющих сигналов, обеспечивающих непосредственную передачу данных между основной и внешней памятью. Микросхема может управлять работой четырех независимых каналов ПДП с учетом приоритетов периферийных устройств. Запрос системной шины осуществляется через вход HOLD микропроцессора, и предусмотрены сигналы, обеспечивающие регулярное завершение передач ПДП. Для микропроцессора КПДП представляет несколько параллельных 8-битных портов ввода и вывода. После программной инициализации контроллер управляет передачей блока данных до 16К байт без вмешательства процессора. , Допускается программирование любого из трех режимов работы: считывания (передача из основной памяти во внешнюю), записи (передача из внешней памяти в основную) и проверки канала ПДП. В последнем режиме физической передачи данных между основной и внешней памятью не производится.

На рис. 5-19 показана блок-схема контроллера и его программная модель. Каждый из четырех каналов ПДПКз-о имеет три регистра: 16-битный регистр адреса, 14-битный счетчик и 2-битный регистр режима канала. Последние два регистра объединяются в один 16-битный регистр, который далее ради простоты называется счетчиком. До выполнения любых операций каким-либо каналом ПДП необходимо инициализировать относящиеся к нему регистры: в регистр адреса загружается начальный адрес области основной памяти, в счетчик загружается число передаваемых байт\ а в регистр режима канала - требуемый режим его работы (00 -проверка, 01 - запись, 10 -считывание, 11-запрещенная комбинация).

Программная модель контроллера содержит 18 8-битных регистров, причем в регистр режима контроллера можно только записывать, а из регистра состояния - только считывать. Остальные регистры допускают и запись, и считывание.

При необходимости передачи N байт в счетчик загружается двоичный код числа N-1.



о) в

CLK- RESET- -

CS -

REm-

- ЯШ- MEMR"-

mvh-

AEN-

ADSTB--

TC MARK

li IS

Koladpec, счетчик, ретин).

* Ki( адрес, счетчик, режим)<

Кг{адрес, счетчин, режим) I

I".

счетчик режим) к

Управление приоритетами

DACKq

-DRQ,

•VACiC,

-DRQi ШСКз

6) г

Режим Счетчик А8рес

Dsn- 13 8 7 О 15 S 7

j I I I , , I ll I I I , I ,1 I.......I . .

0ft 13

8 7 0 15

I I I I J I I

j 15 n 13 8 7 0 15

I .UJ Lj. I I I I I I I I I I IД

rid ft 13

0 15

CD ..... .тт [

xzzz

Регистр

состояния I I I I I I I

Регистр режима

Z2 Ko\

J

33 K,\

~0~1

Zl H2\

Рис. 5-19. Структурная схема (а) и программная модель (б) микросхемы КР580ВТ57



По четырем входным линиям DRQ3-0 запросов ПДП периферийные устройства сигнализируют об их готовности к передаче данных. Инициирование цикла ПДП осуществляется установкой Н-уровня на линии DRQ и сохранением его до подтверждения ПДП. В пакетной передаче Н-уро-вень DRQ сохраняется до подтверждения передачи последнего байта. Программно запросам DRQ могут быть назначены фиксированные приоритеты (DRQo -высший, DRQ3 - низший) или может быть задан режим циклического приоритета, т. е. после обслуживания некоторого канала ПДП ему назначается низший приоритет, а приоритеты остальных каналов изменяются в круговой последовательности. Например, после обслуживания канала СНг приоритеты каналов убывают в таком порядке: СНз, СНо, CHi, СН2. Данный режим приводит к тому, что приоритеты всех четырех периферийных устройств оказываются одинаковыми и ни одно из них не может блокировать запросы других.

Установкой L-уровня на одной из четырех выходных линий ОАСКз-о подтверждения ПДП контроллер извещает периферийное устройство о начале запрошенного им цикла ПДП.

Интерфейс КПДП с системной шиной данных D7-0 осуществляется через стандартный двунаправленный триста-бильный буфер. При программировании процессор загружает через него байты в любой из 8-битных внутренних регистров, кроме регистра состояния, а при необходимости, например для контроля, считывает содержимое любого регистра, кроме регистра режима. Эти операции выполняются командами вывода OUT или ввода IN, вторым байтом которых адресуется целевой регистр, а при использовании ввода-вывода, отображенного на память, могут выполняться любыми командами с обращением к памяти.

Когда контроллер получает управление системной шиной, в начале цикла ПДП он выводит на линии Dy-o старшие 8 бит А15-8 адреса памяти из старшей половины регистра адреса работающего канала ПДП. Это действие идентифицируется Н-активным стробом адреса ADSTB, который должен загрузить байт с шины данных во внешний регистр-защелку, например в многорежимный буферный регистр К589ИР12. Выходы этого регистра подключаются к линиям А15-8 шины адреса.

Логическая схема управления считыванием и записью при программировании контроллера или при считывании содержимого внутреннего регистра (контроллер является

ведомым) воспринимает входные сигналы I/OW или I/OR,



(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) (22) (23) (24) (25) (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) (36) (37) (38) (39) (40) (41) (42) (43) (44) (45) (46) (47) (48) (49) (50) (51) (52) (53) (54) (55) (56) (57) (58) (59) (60) (61) (62) (63) (64) (65) (66) ( 67 ) (68) (69) (70) (71) (72) (73) (74) (75) (76) (77) (78) (79) (80) (81) (82) (83) (84) (85) (86) (87) (88) (89) (90) (91) (92) (93) (94) (95) (96) (97) (98) (99) (100) (101) (102) (103) (104) (105) (106) (107) (108) (109) (110) (111) (112) (113) (114) (115) (116) (117) (118) (119) (120) (121) (122) (123) (124)