Смекни!
smekni.com

Разработка программы на Ассемблере (стр. 8 из 11)

Когда C зарядится и сигнал ~RESстанет "1", на входе RESET микропроцессора сигнал снизится допассивного уровня. Начинается основной цикл работы. МП извлекает из ячейкипамяти с адресом FFFF:0000 первый байт команды, который чаще всего являетсякодом безусловного перехода к тому месту в памяти, где находится началопрограммы. В процессе работы можно перезапустить МП с помощью кнопки SW.Конденсатор C разряжается до нуля и процесс запуска повторяется. МП можетработать в двух режимах в максимальном и минимальном. Минимальный режимограничивает адресуемый объем памяти до 64Kb. В большинстве приложений вприборостроении такого объема достаточно, поэтому сигнал ~MX/MN = 1.Формирователи сигналов ШУ,ША и ШД (шины управления адреса и данных), выполненына элементах ИЛИ, регистрах и шинных формирователях и служат также дляувеличения мощности этих сигналов.

Генератор G формируетпоследовательность импульсов CLK, называемых тактовыми. Выполнение командыпроизводится в течение интервалов времени, называемых циклами. Если в циклеесть обращение к памяти или к внешним устройствам, то он называется цикломшины. Цикл шины содержит 4 обязательных такта T1 ... T4.

В такте T1 микропроцессорпередает по совмещенной шине адрес/данные адрес ячейки памяти или внешнегоустройства (ВУ), подключенного к шинам ШУ,ША и ШД. В такте T2производится выбор направления обмена данными с памятью или ВУ, а в тактахT3,T4 - передача данных. Если ЗУ (запоминающее устройство) или ВУ медленные, тона вход готовности RDY посылается   сигнал RDY = 0, по которому МПвставляет циклы ожидания TW, до тех пор, пока не будет установлена готовностьВУ или ЗУ (RDY = 1). Если в цикле нет обращения к шине, то МП формируетхолостые циклы TI.

Для разделения сигналов совмещеннойшины адрес/данные ШАД(AD15..0) их необходимо"демультиплексировать" с помощью регистра защелки адреса RG идвунаправленного буфера BD. При обращении к памяти (в том числе при выборкекоманды) микропроцессор передает по ШАД адрес ячейки памяти. Этот адресзаписывается в D-триггеры регистра RG сигналом ALE генерируемым микрпроцессоромв этот момент и поступающим на синхровходы D-триггеров. Адрес в регистресохраняется на время последующей передачи данных. Следом по ШАД передаются,либо данные от микропроцессора к ВУ или ЗУ, либо в обратном направлении. МПдолжен, во-первых, обеспечить правильное направление передачи буфера BD и ,во-вторых, открыть (разрешить) тристабильные элементы буфера для передачиданных. Первую задачу решает сигнал МП ~DT/R (~DT/R=0 передача данных от МП -Transmit, ~DT/R=1 прием данных МП - Receive).

Вторая задача решается генерациейМП сигнала ~DEN (Data Enable). Чтение или ввод данных в один из регистров МПосуществляется с помощью инверсных сигналов шины управления (ШУ):  ~MEMR(чтение из памяти),~IOR (ввод из ВУ), называемыми еще стробамичтения. Запись или вывод данных из МП по шине данных сопровождается стробамизаписи ~MEMW (запись в память (ЗУ)), или ~IOW (вывод во внешнееустройство (ВУ)). Четверка стробов, которые являются основными сигналами шиныуправления, формируется из сигналов чтения, записи (~RD,~WR) и сигнала M/~IO,определяющего к чему производится обращение : к ЗУ или ВУ. Формирование этихсигналов производится с помощью простой комбинационной схемы, содержащей 4элемента ИЛИ и один инвертор.

8.5 МИКРОПРОЦЕССОРНАЯ СИСТЕМА С ТРЕМЯ ШИНАМИ

Работой всех устройствподключаемых к процессорному блоку управляет дешифратор DC, к входам которогоподводятся линии шины адреса. Обычно дешифраторов бывает несколько. Еслииспользуется не все адресное пространство для памяти и ВУ, то на дешифраторзаводятся не все линии адреса, чаще всего несколько старших разрядов ША.Например, если на DC завести 4 линии A19..A16, то все адресное пространствобудет разбито на неперекрывающиеся блоки по 2^20 / 2^4 = 64Кб, принадлежащиекаждому из 16-ти (2^4 = 16) устройств ЗУ или ВУ, подключенных к шинам (на рис.4показаны 7 устройств). Часть из них могут использовать все отводимое имадресное пространство, например ПЗУ и ОЗУ, другие только несколько адресов.

cpu4bus.gif (10483 bytes)

Типовая МПС, показанная на схемесодержит:

микросхему программируемогопериферийного интерфейса ППИ (PPI или IOP), к которой через три8-битовых независимых канала PA,PB и PC можно подключать периферийныеустройства, например принтер, клавиатуру, 8-ми сегментный дисплей или ЦАП и АЦП.Через ППИ может производиться обмен данными с другими МПС или ЭВМ.

Ввод с клавиатуры и вывод надисплей могут производиться специальными микросхемами.

Связь с удаленными устройствамиили абонентами сетей может осуществляться с помощью универсальногоасинхронного последовательного приемо-передатчика УАПП-UART (программируемыйсвязной интерфейс ПСИ-PCI или IOS). К выводам RxD - приемник и TxD -передатчик через линию связи подключаются передатчик и приемник другого абонентаили устройства. Если связь производится через модем, то доступны любые сети.

Для формирования точных,различных по частоте и длительности сигналов, в т.ч. и звукового диапазонаиспользуется программируемый интервальный таймер ПИТ-PIT,имеющий три независимых 16-ти разрядных двоичных счетчика. Задержка,длительность или частота выходного сигнала каждого счетчика кратна 3..65535периодам входного сигнала.

Если в системе используется режимпрерывания выполнения основной программы внешними устройствами, требующимибезотлагательного вмешательства микропроцессора, то может применяться программируемыйконтроллер прерываний ПКП - PIC (устройство собирающее заявки наобслуживание от ВУ с входов IRi). Подробно прерывания будут рассмотрены ниже.

Обмен данными между МП и ЗУ илиодним из ВУ возможен только при появлении на выходе дешифратора DCединственного сигнала ~CS = 0, поступающего на то устройство с которым будетпроизводиться запись или чтение байта данных. Остальные (невыбранные)устройства будут в пассивном состоянии, т.к. их сигналы ~CS = 1. Байтинформации на ШД считывается ВУ, ЗУ или МП в строго ограниченном интервалевремени во время действия одного из управляющих сигналов чтения/записи (~MEMR,~MEMW) из памяти или в память, или во время действия одного из сигналовуправления вводом/выводом (~IOR, ~IOW) в/из ВУ.

Быстрый обмен данными можетпроизводиться с помощью устройства прямого доступа к памяти ПДП(DMA).

8.6 СТЕК

Область памяти с упрощеннойсхемой адресации, к которой МП обращается по принципу "последним вошел -первым вышел" (LIFO). Байты программы в оперативной памяти располагаютсяпоследовательно по нарастающим адресам. Стек заполняется по последовательноубывающим адресам. Во избежание перекрытия этих двух областей памяти стек обычнорасполагается в старших адресах. Начальный адрес стека, называемый дном(bottom) записывается в регистр SP командой MOV SP,0fffeh. Вместо 0fffeh -адрес предпоследнего байта сегмента, может быть другое значение, но выравненноепо двухбайтовым, т. е. четным адресам. Текущее значение содержимого SPназывается, также адресом вершины стека (top). Если адрес вершины совпадает садресом дна - стек считается пустым. Рассмотрим механизм помещения в стек иизвлечения из него данных на примере команд PUSH AX и POP BX. Пусть начальноезначение аккумулятора AX равно 874c.

cpu7stck.gif (4944 bytes)

Команда PUSH выполняется в четыреэтапа:

  • Адрес в SP уменьшается на 1: (SP) <-- (SP) - 1.
  • По этому адресу помещается старший байт 87: ((SP)) <-- (AH).
  • Содержимое SP снова уменьшается на 1: (SP) <-- (SP) - 1.
  • По полученному адресу загружается младший байт 4c: ((SP)) <-- (AL). 

Действие команды POP аналогичноописанному процессу, но в происходит в обратном порядке:

  • (BL) <- ((SP)),
  • (SP) <- (SP) + 1,
  • (BH) <- ((SP)),
  • (SP) <- (SP) + 1.

Байты в стек помещаются поправилу "старший байт по старшему адресу" . На рис.7 показан пустойстек до выполнения команды PUSH AX и после ее выполнения, а на рис.8 послевыполнения команды POP BX.

Преимущество стека в том, чтопрограммисту не нужно заботиться об абсолютных значениях адресов переменных, нов этом таится и опасность, если текущее содержимое указателя стека будетпотеряно, при неаккуратных действиях программиста, то работа компъютера станетнепредсказуемой и он, как говорят в таких случаях, "зависнет". Впрограммах стек используется для:

1) сохранения и извлечения адресавозврата из подпрограмм командами ассемблера CALL и RET (IRET),

2) хранения локальных переменных,

3) передачи фактическихпараметров подпрограммам (трансляторами с языков высокого уровня),

4) временного хранениясодержимого регистров фоновой программы при ее прерывании.

8.7 СПОСОБЫ ВВОДА-ВЫВОДА

Обмен данными между ЭВМ иВУ или ЗУ называется вводом-выводом (ВВ). Существует четыре основных способа ВВ.

  • Программный ВВ
  • ВВ по прерываниям
  • Прямой доступ к памяти (ПДП) или DMA
  • Транзакции (MCS-96)

В первых двух случаях в обменеданными участвует микропроцессор. В режиме ПДП функции управления обменом беретна себя специальное устройство - контроллер ПДП, причем МП в это время в обменеданными не участвует. В 4-ом способе пересылки производятся параллельно сработой МП периферийным сервером транзакций.

8.7.1 ПРОГРАММНЫЙ ВВОД-ВЫВОД

Для внешних устрйств выделяесяадресное пространство, либо не входящее в состав ЗУ, либо являющееся егочастью. Следовательно программный ВВ может быть двух типов: