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

(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) (39)

М выполняет передачу из ячейки памяти, адресуемой 16-битной регистровой парой (Н, L), в аккумулятор или любой регистр общего назначения, кодируемый в поле г. Команда MOV М, г выполняет передачу из регистра МП в ячейку памяти. Максимальная емкость адресуемой памяти при такой организации обмена для 16-битной шины адреса составляет 64К байт.

Недостатками организации интерфейса с изолированной шиной являются следующие:

1. Обмен выполняется только через аккумулятор МП, и для передачи данного в регистр общего назначения, если аккумулятор занят, требуется выполнение четырех команд. Рассмотрим пример ввода кода из периферийного устройства 1 на регистр В.

Метка

Операнд

Комментарий

С, А

; Временное запоминание содержимо-

го аккумулятора в регистре С

001 Q

; Ввод кода из периферийного уст-

В, А

ройства в аккумулятор

; Передача содержимого аккумулято-

ра в регистр В

А, С

; Восстановление аккумулятора

Аналогичная по числу команд программа будет иметь место при выводе кода из регистра МП.

2. Число подключаемых периферийных устройств ввода или вывода информации не более 256.

3. Для обработки содержимого буферного регистра периферийного устройства, например для анализа готовности к обмену, его необходимо передать в МП.

Рассмотрим пример организации интерфейса с изолированной шиной между аналого-цифровым преобразователем (АЦП) с 10-битным выходом и МП КР580 (рис. 4-3). АЦП выполняет преобразование напряжения с аналогового датчика в цифровой код. Современные АЦП обеспечивают выход, совместимый с ТТЛ-схемами, в цифровой двоичной форме. Типичный АЦП имеет аналоговый вход, цифровой выход, вход запуска преобразования информации, после завершения которого формируется признак готовности (ПГ). Так как 10-битный код не может быть в параллельной форме введен в 8-битный МП, то ввод осуществляется последовательно-параллельно из многоцелевых буферных регистров (МБР) типа К589ИР12, имеющих трехстабильный выход. Сигнал на входе АЦП «Запуск» инициирует преобразование;



Вход

Запуск


IN 002

005 OUT

Рис. 4-3. Интерфейс микропроцессора с АЦП

ТГРГ

он может быть сформирован при выполнении команды-вывода по адресу, присвоенному данному входу (в рассматриваемом примере 003).

ПГ принимает значение 1, когда преобразование завершено, и может анализироваться МП или использоваться в качестве сигнала прерывания.

Подпрограмма в системе команд МП КР580 имеет вид:

Метка Код Операнд

Комментарий

TEST

PUSH

OUT IN ADI JNC MOV IN

MOV POP

003 Q 002 Q 200 Q TEST

B, A 001 Q

C, A PSW

Временное запоминание содержимого аккумулятора и флажков в стеке

Запуск преобразования

Ввод ПГ и двух старших бит кода

Формирование ПГ на триггере С

Если ПГ=0, переход к TEST.

Передача 2-битного кода в регистр В

Ввод в аккумулятор восьми младших бит кода

Передача 8-битного кода в регистр С Восстановление аккумулятора и флажков

Возврат из подпрограммы

Таким образом, 10-битный код с АЦП после вьшолнения данной программы передается в регистровую пару В, С. Как видно из рис. 4-3, для подключения АЦП к МП требуется три кода адреса. При рассмотренной организации ввода МП может много времени проводить в цикле ожидания



пг и поэтому целесообразно использовать режим ввода с прерыванием. В этом случае ПГ будет использоваться в качестве сигнала прерывания работы МП.

Команда CALL CONV из основной программы обеспечивает запуск АЦП в соответствии с подпрограммой CONV:

Метка Код Операнд

Комментарий

CONV:

EI OUT RET

003 Q

Разрешить прерывание

Запустить АЦП

Возврат из подпрограммы

После завершения преобразования формируется ПГ=1 и вызывает прерывание основной программы для обращения к подпрограмме INP, которая обеспечивает ввод 10-битного кода в память ЭВМ по адресу, хранящемуся в ячейке памяти POINT:

Комментарий

Запоминание аккумулятора в стеке Запоминание (Н, L) в стеке Загрузка в Н, L адреса памяти Ввод в МП 2-битного кода Передача кода в память Увеличение адреса Н, L Ввод в МП 8-битного кода Передача кода в память Увеличение адреса Н, L Запоминание адреса в ячейке POINT Восстановление слова состоянии я (Н, L)

Возврат из подпрограммы

Метка

Операнд

INP:

PUSH

PUSH

LHLD

POINT

002 Q

M, A

001 Q

M, A

SHLD

POINT

t

Таким образом, 10-битный код после реализации подпрограммы INP загружается в две последовательные ячейки памяти.

Интерфейс с общей шиной. При данной организации интерфейса часть общего адресного пространства отводится для периферийных устройств, регистры которых адресуются так же, как и ячейки памяти (рис. 4-4,а). Обращение к периферийным устройствам осуществляется посредством набора команд, используемых для передачи данных с памятью. При этом команды ввода и вывода не используются, а в некоторых МП и процессорах вовсе отсутствуют. Такой принцип построения интерфейса реализуется в МП КР580 путем выделения, например, старшего разряда шнны адре-



(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)