Для расчёта необходим стартовый адрес В и ёмкость С. Конечный адрес определяется по формуле:
Е=В+С-1
Необходим указатель шкалы р который определяется по формуле:
р=2(4i+j)
где i - младший значащий 16-ричный разряд
j - младший двоичный значащий разряд внутри i-го 16-ричного
Далее определим количество бит адреса G необходимых для адресации модуля памяти по формуле:
G=16 – log2р
L - количество разрядов адресующих ячейки внутри БИС ЗУ.
Определяется по формуле: L=log2C
Н - количество разрядов адресующих кристалл, определяется по формуле:
H=16-L
В результате получается следующая диаграмма распределения разрядов адресной шины представленная на Рисунке 1.6:
Рисунок 1.6 Диаграмма распределения разрядов шины адреса
Из диаграммы мы можем видеть следующее. Если указатель G больше Н то для однозначной адресации необходимо ещё к G добавить N разрядов адресной шины. Если G=5 т.е. р=С, а это идеальный случай, то дополнительные разрядов не нужно. И наконец третий случай, если G меньше Н то необходимо дополнительном разрядов адресной магистрали, ввиду того что ёмкость чипа памяти 2кВ и минимальное количество разрядов необходимых для однозначном адресации Н=5. Количество недостающих разрядов:
М=16-L-G
Количество вспомогательных разрядов:
N=G+L-16
Рассмотрим конкретный случай. Необходимо разместить модуль памяти ПЗУ ёмкостью 2кВ с адреса 1F00Н, и модуль ОЗУ ёмкостью 2кВ с адреса 2E00Н. Расчёт ведём отдельно для ОЗУ и отдельно для ПЗУ. Полученные результаты сведены в таблицу 1.1.
Таблица 1.1
N | В | Е | Р | G | М | N |
1 | 1F00Н | 26FFH | 0100Н | 8 | 0 | 3 |
2 | 2E00H | 35FFH | 0100Н | 8 | 0 | 3 |
По полученным результатам строим карты адресации модулей памяти. Они представлены на рисунке 1.7 и рисунке 1.8.
Рисунок 1.7 Карта адресации ОЗУ
Рисунок 1.8 Карта адресации ПЗУ
В таблице 1.2 отмечены адреса памяти селектора PТ4, по которым записаны соответствующие константы. Так, например, стартовому адресу ROM 1F00Н соответствует ячейка памяти с адресом 1FН. По этому адресу должна быть записана константа ЕН, т.к. CS (ROM) равно значению Q0 и равно 0. Схема электрическая принципиальная приведена в графической части проекта (Лист 1).
Таблица 1.2
Адрес ПЗУ | Состояние |
80Н - 00Н | 0FH |
88Н - 81Н | 0ЕН |
90H - 89Н | 0DH |
А0Н - 91Н | 0FH |
A8H – A1H | 0ВН |
FFH - A9H | 0FH |
В случае если G будет скажем не 8, а б то тогда для упрощения можно уменьшить количество задействованных линий адреса подключаемых к БИС селектора РТ4 до б.
1.2.2 Проектирование модуля параллельного адаптера
Программируемый параллельный адаптер, обычно строится на БИС программируемого периферийного адаптера PPI (Programmable Peripheral Interface) KP580BB55. В структуре микросистемы PPI представляет достаточно мощные "руки". Три восьмибитных двунаправленных порта могут поддерживать связь микро-ЭВМ с внешней средой по 24-м линиям. Аппаратно интерфейс показан на рисунке 1.9. Из рисунка следует, что проектирование схемы сопряжения заключается в разработке адресного дешифратора AD (Addres decoder ). Предполагается, что адресное пространство ввода - вывода изолировано от пространства памяти микросистемы. Последний фактор упрощает интерфейс, Поскольку адресация портов адаптера со стороны микроЭВМ производится 8-битным адресом А7 – А0, либо А15 - А8. Старшая половина адресной шины в этом случае дублирует младшую часть. В более сложных микроконтроллерных системах, где процессор окружен множеством периферийных адаптеров, вместо адресного дешифратора, применяют программируемую БИС ПЗУ. Для проектирования адресного дешифратора требуется начальный адрес PPI, являющийся адресом порта А. Адресами портов В и С служат символические адреса PPI + 1 и PPI + 2, соответственно. Адресом регистра управления CR (Control Register ) есть мнемоника PPI+3. Таким образом в адресном пространстве в 256 байт ввода - вывода адаптер занимает четыре места.
Рисунок 1.9 Интерфейс адаптера с системной магистралью
Адресация адаптера выполняется старшей частью адресов А7 - А2, адресация портов, включая регистр управления, происходит по младшим линиям А1, А0. Учитывая это обстоятельство, можно составить карту адресов памяти адаптера. Карта адресов представляет многоуровневую вложенную структуру. На самом верхнем уровне должны быть физические адреса портов адаптера. Количество уровней вложений определяется выбранной структурой дешифратора.) Карта адресации адаптера с начальным физическим адресом 98Н и представлена на рисунке 1.10.
Рисунок 1.10. Карта адресации ППИ
Нижним уровнем карты есть все адресное пространство в 256 байт. Три старших адресных разряда А7 - А5 делят пространство на 8 равных частей по 32 байта. В пространство адресов ВСН – А0Н вложен второй уровень адресов. Этот уровень разделён адресами А4 - А2 также на 8 частей, но уже по 4 байта. На этом уровне просто выделяются адреса адаптера. Третьим верхним вложенным уровнем адресов, являются физические адреса четырех адресуемых объектов адаптера. Сигнал CS адаптера выделяется двумя нижними уровнями карты, а логика его порождения совсем простая.
В соответствии с последним уравнением схема включения адресного дешифратора представлена на рисунке 1.11.
Оставшиеся свободные выводы выходов дешифратора могут использоваться для выборки других чипов ( Chip Select).
Рисунок 1.11 Схема включения адресного дешифратора
Ниже приводится пример простейшей микроконтроллерной системы управления с использованием PPI по рассчитанным адресам.
Рисунок 1.12 Микроконтроллерная система Рисунок 1.13 Алгоритм работы микроконтроллерной системы
Порт В должен быть запрограммирован на ввод, а младшая половина порта С - на вывод. При готовности объекта RDY=1 программно формируется строб STB, а затем пауза. После таких действий микроконтроллер снова сканирует готовность объекта.
Процедура управления достаточно проста. Директива РРI equ 098Н указывает программе на начальный адрес адаптера. В программе MS (Mode Select), BSR ( Bit Set Reset) - команды получаемые PPI со стороны микроконтроллера.
ORG 800H
OBJECT: MVI A, CW1 ; инициализация адаптера
OUT PPI+3
WAIT: IN PPI+1
ANI RDY :
JZ WAIT ; проверка готовности объекта
MVI A, CW2
OUT PPI+3 ; установка строба
CALL DELAY ; задержка
MVI A, CW3
OUT PPT+3 ; сбросстроба
CALL DELAY ; выдержкапаузы
JMP WAIT ; вернуться в начало
DELAY: PUSH PSW ; сохранить состояние
MVI A, TIME ; загрузить величину задержки
CYCL: DCR А ;уменьшить счётчик
JNZ CYCL ;если не 0 то повторить
POP PSW ; восстановить состояние
RET ; возврат
PPI equ 098H ; заданный физический адрес RDY equ 080Н ; маска готовности CW1 DB 82H ; MS = 82H – инициализация CW2 DB 01 Н ; ВSR = 01Н - установка РС0 CW3 DB 00Н ; BSR= 00Н - сброс РС0
1.3 Разработка алгоритма функционирования проектируемой системы
Алгоритм функционирования системы представлен на рисунке 1.14
Рисунок 1.14 Алгоритм работы микросистемы
1.4 Проектирование прикладного программного обеспечения проектируемой системы
На основании алгоритма функционирования проектируемой системы составляется программа управления устройством. Программа написана на языке низкого уровня Assembler. Листинг программы с комментариями и пояснениями приведен ниже.
masm
model small
.stack 100h ; Глубинастека 256 байт
.data ; Сегмент данных
cwd equ 82h ; Управляющее слово
portA equ 98h ; Aдрес порта А
portB equ 99h ; Адрес порта В
portC equ 9Ah ; Адрес порта С
ppiCR equ 9Bh ; Адрес регистра управления
start_1 equ 01h ; Управляющий уровень START_1
start_0 equ 00h ; Управляющий уровень START_0
; Основная программа
.code ; Сегмент кода программы
mov bx, 2E00h ; Загрузка начального адреса RAM в регистр BX
mov sp, 0F00h ; Загрузка указателя стека SP
mov cx, 00FFh ; Загрузка в регистр CX количества циклов
mov dx, ppiCR ; Формирование адреса РУС ППИ
mov al, cwd ; Формирование управляющего слова
out dx, al ; Загрузить в PPI управляющее слово
mov dx, portC ; Формирование адреса порта С
mov al, 00h ; AL-00h
out dx, al ; Обнуление порта С
start: mov al, start_0 ; AL-START_0
out dx, al ; Формирование START=0
call delay ; Вызов подпрограммы DELAY
wait: in al, portB ; Проверка готовности
cmp al, 00h ; Сравнение al с числом 00h