Файл: Микропроцессорные устройства систем управления (Ю.И. Иванов, 2005).pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 16.06.2025

Просмотров: 1553

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Символьный формат данных в основном предназначен для текстовых сообщений. Специальных команд обработки символьных данных нет, они могут преобразоваться как числовые или логические переменные. Так как для ввода текстов или их отображения используются компьютерные сред­ ства, кодирование в символьном формате обычно производят стандартны­ ми компьютерными кодами. Таким стандартным символьным кодом одно­ байтового формата является, например, код ASCII. ASCII предназначен для кодирования всех символов, используемых на клавиатуре персонального компьютера. Например, символьной переменной 'А1 соответствует одно­ байтовый ASCII-код 0x41, символьной переменной 'к' - ASCII-код 0x6b, символьной переменной '2* - ASCII-код 0x32 и т.п. Полную таблицу кода ASCII можно найти в любой литературе, описывающей форматы компью­ терного кодирования данных.

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

В целом, система команд и форматы данных микропроцессора являются универсальными средствами преобразования. Очевидно, что эффектив­ ность работы микропроцессорной системы в силу ограниченного набора команд различна для различных форматов данных. Поэтому применяемые форматы данных - весьма важный компонент реализуемых алгоритмов преобразования. Следующий важный элемент в организации работы мик­ ропроцессорной системы - процедуры адресации данных, именно адреса­ ция обеспечивает доступ к данным для алгоритмов преобразования.

1.3. Организация памяти и адресация данных

Запоминающие устройства (память) микропроцессорной системы по вы­ полняемым функциям и свойствам можно разделить на две области: опера­ тивное запоминающее устройство (RAM) и постоянное запоминающее уст­ ройство (ROM). В рассматриваемой структуре (рис. 2) эти области образу­ ют единое адресное пространство, и для них используется общая система адресации с 16 битами ША. В других вариантах микропроцессорных сис­ тем разные области памяти могут иметь самостоятельные системы адреса­ ции.

Для единого адресного пространства нет какого-либо начального разде­ ления функционального назначения областей памяти. Так называемая клас­ сическая архитектура компьютера предполагает возможность хранения и кодов программ, и данных для преобразования по любым адресам запоми­ нающих устройств. Запоминающие устройства в этом случае могут рас-

23


сматриваться как набор типовых ячеек памяти, каждая из которых позволя­ ет хранить один байт данных и имеет уникальный 16-битовый адрес, пере­ даваемый в микропроцессорной системе по ША. Уникальный адрес позво­ ляет выбрать для обмена данными одну ячейку памяти из всего множества ячеек запоминающих устройств и обеспечить доступ только к выбранному байту данных. Максимальный объем адресного пространства 216 ячеек па­ мяти (64 кбайт).

Оперативное запоминающее устройство (RAM) позволяет записывать однобайтовые данные для хранения и считывать записанные ранее данные. Направление передачи данных (микропроцессор —* RAM или RAM —> микропроцессор) определяется микропроцессором с помощью сигналов ШУ. Вместе с сигналами управления микропроцессор должен передать ад­ рес выбранной ячейки памяти по ША. Ячейки RAM должны обеспечивать запись данных, хранение данных и считывание хранящихся данных.

При работе микропроцессорной системы RAM позволяет выполнять все необходимые функции по хранению информации и, следовательно, являет­ ся обязательным элементом. Однако RAM производит хранение данных только при включенном питающем напряжении. При выключении питания все записанные данные будут потеряны и не могут быть восстановлены по­ вторным включением питания, т.е. RAM - память энергозависимая.

Как было показано ранее, в микропроцессорной системе все операции, в том числе и загрузка данных в память, выполняются программно. При от­ сутствии программы в памяти реализация каких-либо функций невозмож­ на. Эта особенность работы микропроцессорной системы требует постоян­ ного наличия программы в памяти, даже при отключении питания. RAM, как известно, такую возможность не обеспечивает, поэтому микропроцес­ сорная система обязательно содержит и постоянное запоминающее устрой­ ство - ROM.

ROM - память энергонезависимая, т.е. сохраняет записанные данные и при отключении питания. Другой ее особенностью является возможность только считывать данные при работе микропроцессорной системы. Стан­ дартные процедуры и сигналы управления не позволяют выполнять запись новых данных в ROM. Запись данных ROM выполняется специальными средствами и обычно называется программированием. Существуют ROM с однократным программированием данных, позволяющие выполнять запись только один раз, и репрограммируемые ROM, с возможностью многократ­ ной перезаписи данных (обычно с ограниченным количеством циклов пе­ резаписи).

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

24


коды программы, и константы - данные, которые не изменяются в процессе выполнения программы микропроцессорной системы.

Соотношение между объемами RAM и ROM в адресном пространстве памяти зависит от назначения микропроцессорной системы. В универсаль­ ных средствах таких, как персональный компьютер, объем ROM относи­ тельно небольшой. Из программ, необходимых для работы, в ROM персо­ нального компьютера постоянно хранится только BIOS - комплекс про­ грамм, обеспечивающих загрузку в RAM других программ с внешних но­ сителей информации (например, с hard-диска). Набор задач жестко не огра­ ничен и для решаемых задач выбираются и загружаются в RAM с помощью BIOS требуемые компоненты программного обеспечения.

Для специализированных микропроцессорных систем, к которым отно­ сятся и средства автоматизации, обычно и круг задач, и программы, тре­ буемые для их решения, неизменны и могут постоянно храниться в памяти. Поэтому в таких средствах удельный вес ROM в адресном пространстве практически всегда существенно превышает удельный вес RAM. В даль­ нейшем будем рассматривать вопросы организации работы микропроцес­ сорной системы, полагая, что все программы хранятся в ROM и имеется RAM относительно небольшого объема только для хранения данных.

Задание определенных физических адресов для областей RAM и ROM в общем случае может быть произвольным. Однако необходимо учитывать следующую особенность работы микропроцессора: процедура начального сброса (reset), с которой обязательно должна начинаться работа, как прави­ ло, задает в программном счетчике нулевой начальный адрес программы. По начальному адресу памяти должно размещаться начало рабочей про­ граммы микропроцессора, которая обеспечивает корректный старт работы микропроцессорной системы. Область памяти с этими начальными адреса­ ми, следовательно, должна принадлежать области ROM. Чтобы адресные пространства сделать непрерывными, обычно адреса ROM задают, начиная с наименьших адресов, а адреса RAM - в оставшемся диапазоне наиболь­ ших физических адресов.

Ранее было показано, что адресация кодов программы производится программным счетчиком микропроцессора. Адресация всех остальных данных должна производиться командами программы. Организация работы микропроцессорной системы предполагает использование нескольких спо­ собов адресации данных. Если память микропроцессорной системы образу­ ет единое адресное пространство, способы адресации не зависят от того, с какой областью памяти мы работаем.

Применяемые в микропроцессорной системе алгоритмы адресации дан­ ных можно привести к одному из четырех видов: непосредственная адреса­ ция, прямая адресация, регистровая адресация, стековая адресация. Осо­ бенности адресации связаны с разным форматом данных и адресов: данные - один байт, адреса - два байта.

25


Самый простой вид - непосредственная адресация. В этом случае байт данных помещается непосредственно в коде команды. Примеры: команда mvi By D8 производит загрузку в регистр В байта данных D8 (38=08), со­ держащегося в коде команды; команда sui D8 производит вычитание из байта аккумулятора байта данных D8 (A8=A8-D8). Команды с непосред­ ственной адресацией часто называют операциями с константами. Так как данные при непосредственной адресации являются элементами кодов про­ граммы, эти данные не могут быть изменены. Неизменность данных явля­ ется свойством и основным ограничением этого вида адресации, который в действительности применяется только для операций с константами.

Для прямой адресации физический адрес ячейки памяти (ША) указыва­ ется в коде команды: например, команда sta A16 производит запись байта данных из аккумулятора в ячейку памяти с двухбайтовым адресом А16 (А8-М(А16)). При такой адресации передаваемые байты данных являются обычными переменными и могут принимать любые допустимые значения. Существенное ограничение - обмен данными по командам с прямой адре­ сации всегда происходит с одной и той же ячейкой памяти, адрес которой указан в команде. Из-за этого ограничения и громоздкого формата команд, содержащих в своем коде двухбайтовый адрес, прямая адресация также имеет ограниченное применение. В алгоритмах обработки данных доста­ точно часто требуется адрес сделать переменным, чтобы можно было им программно управлять.

Более универсальна регистровая адресация, называемая также косвенной адресацией. При регистровой адресации в качестве кода адреса использует­ ся содержимое регистровой пары (два байта). Примеры: команда Шах DE производит загрузку в аккумулятор байта данных из ячейки памяти с адресом, указанным в регистровой паре DE (A8=M(DE)); команда ana M вы­ полняет конъюнкцию байтов аккумулятора и ячейки памяти с адресом, указанным в регистровой паре HL (A8=(A8)&M(HL)). В большинстве ко­ манд с регистровой адресацией микропроцессора Intel 8080 код адреса хра­ нится в регистровой паре HL (H - старший байт адреса, L - младший байт адреса). Регистровая адресация, во-первых, упрощает формат команд - в явном виде код команды не содержит двухбайтового адреса; и, во-вторых, адрес можно изменять, выполняя с байтами адреса любые операции из на­ бора команд микропроцессора. Возможность преобразования адреса при работе программы является важнейшим свойством этого вида адресации и широко используется в различных алгоритмах.

Очевидно, что регистровая адресация требует предварительной подго­ товки (загрузки или преобразования) кода адреса в регистровой паре. Для преобразования адресов в регистровых парах система команд содержит специальные операции с двухбайтовыми данными.

26


Например, команда Ixi HL, DLDH производит загрузку двух байт (DJ3 и DH8) в регистры L и Н (L8 = DL8, H8 = Он8), используя непосредственную адресацию, а команда inx HL выполняет инкремент содержимого реги­ стровой пары HL, как двухбайтовой переменной (HL=HL+1).

Четвертый вид - стековая адресация, в первую очередь, предназначена для работы с подпрограммами. Более подробно процедуры с подпрограм­ мами будут рассмотрены в следующем разделе. Следует помнить, что стек в микропроцессорной системе - не отдельное запоминающее устройство, а способ адресации RAM с особым алгоритмом формирования адреса. Адрес RAM для операций со стеком всегда определяется специальным адресным регистром - указателем стека (SP) микропроцессора (рис. 2).

В командах, использующих стековую адресацию, адрес в явном виде ни­ когда не указывается и определяется следующим алгоритмом доступа к данным: "последний вошел - первый вышел". Обычно этот алгоритм реа­ лизуется преобразованием содержимого указателя стека: при записи дан­ ных указатель стека (SP) автоматически декрементируется, а при чтении данных указатель стека (SP) автоматически инкрементируется. Такое пре­ образование адреса в указателе стека обеспечивает в командах чтения сле­ дующий порядок доступа: первым считывается байт данных, записанный последним, вторым - записанный предпоследним, и т.д. Следовательно, порядок записи данных в стек однозначно определяет порядок поступления данных при чтении, а стековая адресация не позволяет производить незави­ симый доступ к любым данным, как другие виды адресации.

Стековая адресация применяется из-за упрощенного формата команд и процедур обмена данными в алгоритмах, требующих однократной записи в память и затем однократного считывания данных из памяти в строго задан­ ной последовательности. Команды со стековой адресацией микропроцессо­ ра Intel 8080 производят обмен двухбайтовыми данными.

Рассмотрим пример применения стека для хранения данных:

ml: push

ВС

; B8-+RAM(SP-1), C8-+RAM(SP~2),

SP=SP-2

m2: push

DE

; D8-*RAM(SP~3), E8-+RAM(SP-4),

SP^SP-4

;команды программы, изменяющие данные в

;регистрах В, С, D, Е

; однако данные в этих регистрах должны быть восста-

; новлены для дальнейшего использования в программе.

тЗ: pop

DE

; RAM(SP-4)-+E8, RAM(SP-3)->D8,

SP=SP-2

m4: pop

ВС

; RAM(SP-2)-+C8, RAM(SP-1)-+B8,

SP^SP

Комментарии в каждой строке примера поясняют характер выполняемых операций.

27