Источник.

Организация типового микроконтроллера на базе секционированного микропроцессорного набора К1804

Микроконтроллер состоит из:

Клавиатурная группа “Тетрада” формирует трехразрядную шину AMS, которая подводится к узлу индикации и дешифраторам DC1 и DC2. После DC1 шина AMS преобразуется в 8-миразрядную шину адреса ARG (она позволяет проверять содержимое каждого из 8-ми регистров РгМК), сигнал которой по шине IMK подается на группу светодиодов “Регистр МК”. Второй дешифратор DC2 дешифрирует шину AMS в 8-миразрядный код шины РЗ (разрешения записи данных в ОЗУ). Разрешение возможно при нажатии клавиши “Загрузка”.

Группа переключателей “Адрес” формирует 4-хразрядную шину адреса AR, которая подводится на вход СУАМ. В режиме “Загрузка” информация с шины адреса AR проходит на выход СУАМ, где подключена шина адреса МК (AMK), подводимая на вход ОЗУ.

Группа переключателей “Данные” формирует 4-хразрядную шину данных Д, подводимую на вход ОЗУ.

В режиме “Работа” СУАМ формирует следующий адрес МК на шине AMK, а режим выбора этого адреса формируется 4-хразрядной шиной A2, связывающей РгМК с ППЗУ, где он дешифрируется в один из 16 возможных переходов к адресу следующей МК, и сигнал поступает по шине OR на вход СУАМ. При безусловном переходе СУАМ получает адрес из ОЗУ по шине K.

Операционный узел

Стр. схема ОЗУ показана на рисунке.

Микроинструкции и данные с РгМК по шине ДМК подаются на управляющие входы и входы данных микропроцессорной секции К1804ВС1. Мультиплексоры сдвига MSСд (К555КП12) осуществляют сдвиговые операции в сдвигателе данных перед записью информации в ЗУ и сдвигателе регистра перед записью информации в регистр Q. MSСд открыты, если на разрешающие входы WA и WD поданы сигналы, соответствующие уровню логического нуля. С помощью инвертора производится инвертирование сигнала I7, поэтому MSСд находятся в противоположных состояниях. На входы MSСд (S1 и S2 – адресные входы типа коммутации) с шины ДМК поступают два управляющих сигнала (MS1 и MS2), которые создают 4 вида сдвиговых операций, приведенных в таблице.

MS2

MS1

Сдвиг вправо

Сдвиг влево

0

0

0

1

1

0

1

1

Операционный узел содержит также регистр слова состояния РгS (флаги Z, F3, OVR, C4) и мультиплексор выбора одного из флагов состояния МП MSS.

Сигнал разрешения съема информации с РгS поступает с выхода Q7 ППЗУ, а сигналы выбора флага (S1 и S2) – с шины A2 (выбор следующего адреса). Выбранный флаг из слова состояния с выхода MSS подается на вход A0 ППЗУ. Управление выбором флага показано в таблице.

S1

S2

Выход A мультиплексора MSS

0

0

Z

0

1

F3

1

0

OVR

1

1

C4

 

Устройство управления (УУ)

УУ состоит из двух частей: первая часть формирует управляющие коды для ОУ и совокупность управляющих сигналов, обеспечивающих совместную работу узлов при выполнении текущей МК; вторая часть обеспечивает последовательность выбора команд в соответствии с алгоритмом решаемой задачи.

К первой части УУ относятся: ОЗУ и регистр МК (их структура показана на рисунке). ОЗУ предназначено для записи в него 16 32-хразрядных слов программы. Каждое слово – это МК, которая формируется с помощью данных, поступающих по шине Д. Четырехразрядный адрес МК подается с СУАМ по шине AMK (шина адреса МК) на все ОЗУ. Выбор ОЗУ осуществляется группой переключателей “Тетрада”, сигналы с которой, пройдя DC2, дешифрируются в 8миразрядный код и по шине РЗ (разрешения записи) поступают на восемь входов ОЗУ, тем самым разрешая запись части МК в то или иное ОЗУ. Обработка МК включает в себя 3 этапа: формирование ее адреса, выбор из микропрограммной памяти и выполнение операции в ОУ. 32-хразрядная МК поступает по шине DRG на входы данных регистра МК. С приходом тактового импульса T регистры МК выдают информацию на шину ДМК и дальше в операционный блок. Одновременно с RG снимаются сигналы условий перехода к следующему адресу МК, которые по шине A2 подаются на ППЗУ.

Ко второй части УУ относятся: СУАМ, ППЗУ (32 слова ´ 8 разрядов) и MSOR. По шине A2 из регистра МК на входы A1–A4 поступают сигналы выбора адреса следующей МК. Эти сигналы дешифрируются в ПЗУ и с его выходов Q0–Q6 по шине OR подаются на СУАМ, которая выполняет 16 возможных переходов к адресу следующей МК согласно таблице.

P3P2P1P0

Функция

0

0000

Переход на адрес из регистра МК, если F¹ 0

1

0001

Переход на адрес из регистра МК

2

0010

Продолжить (переход на следующий адрес)

3

0011

Переход на адрес по положению переключателей “Адрес”

4

0100

Переход к подпрограмме, если F¹ 0

5

0101

Переход к подпрограмме

6

0110

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

7

0111

Переход по стеку

8

1000

Окончить цикл и вытолкнуть из стека, F=0

9

1001

Загрузить стек (и продолжить)

10

1010

Вытолкнуть из стека (и продолжить)

11

1011

Окончить цикл и вытолкнуть из стека, C4=0

12

1100

Переход на адрес из регистра МК, если F=0

13

1101

Переход на адрес из регистра МК, если F3=1

14

1110

Переход на адрес из регистра МК, если OVR=1

15

1111

Переход на адрес из регистра МК, если C4=1

Для обеспечения 16 функций перехода к адресу следующей МК СУАМ требует набора управляющих сигналов. Эти сигналы формируются на выходе ПЗУ, которое дешифрует код P3–P0 в необходимый код управляющих сигналов, который должен быть предварительно “прошит” в ПЗУ. Мультиплексор шины OR (MSOR) видоизменяет содержимое шины OR в различных режимах работы микроконтроллера. Так в режиме “Загрузка” с ГСС поступает сигнал, соответствующий уровню логической “1”, который переключает канал B0–B3 на выход MSOR. Сигналы с выхода MSOR изменяют содержание сигналов на шине OR, которые, воздействуя на СУАМ, создают условие беспрепятственного прохождения адреса, набираемого на группе переключателей “Адрес”, через СУАМ на вход ОЗУ. Тот же MSOR подает сигнал разрешения на DC2. В режиме работы сигналы с ПЗУ, не видоизменяясь, проходят на выход MSOR и далее на шину OR; в этом же режиме MSOR выдает сигнал запрета на DC2.

СУАМ формирует адрес МК под воздействием внешних управляющих сигналов, которые подаются по 7-миразрядной шине.

Адрес, набранный на группе переключателей “Адрес”, по 4-хразрядной шине AR поступает на прямые входы адреса D0–D3 СУАМ. Адрес МК при безусловном переходе подается по шине R на входы R0–R3 регистра СУАМ. Сигналы с выходов Y0–Y3 через шину AMK поступают на ОЗУ.

Программирование микроконтроллера

Формат МК и назначение 8-ми ее 4-хразрядных полей (тетрад) приведено в таблице.

Номер тетрады

7

6

5

4

3

2

1

0

Разряд

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Назначение разряда

BR3

BR2

BR1

BR0

P3

P2

P1

P0

MS2

I8

I7

I6

MS1

I2

I1

I0

C0

I5

I4

I3

A3

A2

A1

A0

B3

B2

B1

B0

D3

D2

D1

D0

Назначение полей МК

Адрес перехода

Условие выборки следующего адреса

Управление сдвигом

Выбор приемника результата микрооперации

Управление сдвигом

Выбор источника операндов

Перенос

Задание функции АЛУ

Шина адреса РОН-А

Шина адреса РОН-B

Внешние данные АЛУ

0000

0000

0

011

0

111

0

011

0000

0010

1010

Разработать микропрограмму загрузки числа 10 во 2 РОН РгЗУ.

Загрузка числа в РгЗУ может быть произведена по шине данных D0–D3, при этом оно проходит через СИД, АЛУ, СВД, СдА. Так как загружаемое число равно 10, то нулевая тетрада = 1010. Адрес регистра равен 2, следовательно первая тетрада = 0010. Вторая тетрада не используется. Третья тетрада определяет функцию АЛУ и значение сигнала входного переноса C0. Выбираем функцию АЛУ – RVS, при этом C0=0. То есть третья тетрада = 0011. Четвертая тетрада устанавливает, какие два операнда с входов СИД подаются на входы R и S АЛУ, а MSI – определяет тип сдвига. В нашем случае на вход R должно подаваться число D=0010, на вход S – ноль. При этом сдвиговых операций не осуществляется. Таким образом, четвертая тетрада = 0111. Пятая тетрада определяет приемник результата, который задается кодом 011. Так как операции сдвига по условию нет, то пятая тетрада = 0011. Поскольку 6 и 7 тетрады, необходимые при ветвлении программы, в нашем примере не используются, то поэтому они заполняются нулями.