Смекни!
smekni.com

Программное обеспечение встроенных систем управления на базе однокристальных микропроцессоров (МП) (стр. 1 из 4)

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ВСТРОЕННЫХ СИСТЕМ УПРАВЛЕНИЯ НА БАЗЕ ОДНОКРИСТАЛЬНЫХ МИКРОПРОЦЕССОРОВ (МП)


1. Программная модель МП с регистр-аккумуляторной архитектурой

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

Программная модель МПС, построенной на базе однокристального 8-разрядного МП состоит из программно доступных регистров, восьмиразрядных ячеек ОЗУ и восьмиразрядных портов ввода/вывода. Разряды регистров нумеруются справа налево целыми числами начиная с нуля. Программно-доступными регистрами такого МП являются регистры специальных функций (РСФ) и регистры общего назначения (РОН). К регистрам специальных функций относятся: аккумулятор (А), регистр признаков (F), регистр указателя стека (SP), регистр счетчика команд (PC).

Регистр А предназначен для временного хранения одного из операндов, участвующих в арифметических или логических операциях, и полученного результата после ее выполнения. Кроме того, А используется для программно управляемого обмена с внешними устройствами через порты ввода/вывода.

Регистр признаков (F) – это восьмиразрядный регистр, содержащий признаки результата выполнения команд (рис.1.1).

Для большинства команд признаки устанавливаются следующим образом:

признак S – единица, если седьмой разряд результата равен единице, в противном случае – нуль;

признак нуля Z – единица, если во всех разрядах результата нули, в противном случае – нуль;

признак дополнительного переноса AC – единица при переносе из третьего разряда или при займе в третий разряд результата, в противном случае – нуль;

признак четности P – единица, если результат в двоичном коде содержит четное количество единиц, в противном случае – нуль;

признак переноса CY – единица при переносе из седьмого разряда или при займе в седьмой разряд результата, в противном случае – нуль.

Регистр указатель стека (SP) – это шестнадцатиразрядный регистр, который содержит адрес вершины стека. Стек – это динамическая последовательная структура данных в ОЗУ, организованная таким образом, что очередная запись данных всегда осуществляется в вершину (начало) стека. Максимальный размер стека равен адресуемой емкости памяти. В вершину стека могут записываться только шестнадцатибитные данные.

При записи данных в стек содержимое регистра указателя уменьшается на 2, а при считывании – увеличивается на 2.

Регистр счетчика команд (PC) – это шестнадцатиразрядный регистр, указывающий адрес следующей команды, которая должна быть выполнена микропроцессором.

Регистры общего назначения, как правило, обозначаются буквами B, C, D, E, H, L, А. Регистры В и С, D и E, H и L в некоторых командах рассматриваются как шестнадцатиразрядные регистры, называемые регистровыми парами. Регистры B, D, и H образуют старшие восемь разрядов регистровых пар, а регистры C, E, и L – младшие.

Программно-доступные восьмиразрядные ячейки ОЗУ используются в качестве памяти МПС. Разряды ячейки ОЗУ нумеруются справа налево целыми числами, начиная с нуля. Максимальная емкость памяти, реализуемой запоминающим устройством, равна 65 536 байт.

Программно-доступные восьмиразрядные порты используются для ввода и вывода. Максимальное число регистров для ввода данных составляет 256, для вывода данных – столько же.

Программная модель 16-разрядного МП отличается увеличением как количества программно-доступных регистров, так и их разрядностью [16]. По своему назначению они разделяются на три группы.

Регистры общего назначения AX, BX, CX, DX используются для хранения промежуточных результатов и могут без ограничения участвовать в выполнении арифметических и логических операций. При выполнении операций над цепочками байтов и слов этим регистрам предписываются специальные функции.

Указательные и индексные регистры (SP, BP, SI, DI) предназначены для хранения 16-разрядных адресов (внутрисегментных смещений) и обеспечивают при этом косвенную адресацию и динамическое вычисление эффективного адреса памяти.

Сегментные регистры (CS, DS, SS, ES) хранят начальные адреса четырех сегментов памяти, используемых в текущей программе: команд, стека, и двух сегментов данных.

Имеется программно доступный регистр признаков (флаговый) (рис.1.2), младший байт которого FL полностью соответствует регистру флагов рассмотренного выше МП и называются арифметическими флагами, а старший байт FH содержит четыре дополнительных флага (TF, IF, DF, OF), три первых из которых относятся к флагам управления МП.

TF – флаг трассировки (прослеживания). При TF=1 МП переходит в покомандный (пошаговый) режим работы, применяемый при отладке программ, когда автоматически генерируется сигнал внутреннего прерывания после выполнения каждой команды. При этом выполняется переход на соответствующую подпрограмму, которая обычно обеспечивает индикацию содержимого внутренних регистров МП.

IF – флаг разрешения прерываний, управляемый с помощью команды CLI и STI: при IF=1 МП воспринимает и реагирует на запрос прерывания по входу INTR; при IF=0 прерывания по этому входу запрещаются (маскируются) и МП игнорирует поступающие запросы прерываний.

DF – флаг направления, управляемый командами CLD и STD, определяет порядок обработки цепочек в соответствующих командах (при DF=0 от меньших адресов к большим и наоборот при DF=1).

OF – флаг переполнения, сигнализирующий о потере старшего бита результата сложения или вычитания в связи с переполнением разрядной сетки при работе со знаковыми числами.

При выполнении команд операнды могут храниться в программно-доступных регистрах микропроцессора или в памяти МПС. Для указания операнда в регистре используется: регистровая адресация и регистровая неявная адресация.

ПРИМЕР:

MOVA,B

ADCB

CMA

Для указания операнда в памяти используются адресации: непосредственная, прямая, косвенно-регистровая и стековая.

ПРИМЕР:

LDA 8324H;прямая

IN FA;прямая

ADC M;косвенно-регистровая

PUSH PSW;стековая

Таким образом, для большинства МП наиболее общими являются пять способов адресации операндов. В 16-разрядном МП и выше допускаются дополнительные способы адресации, такие как базовая, индексная, базовая индексная, относительная, страничная и др. Выбор того или иного определяется минимальным объемом памяти для хранения программ и наименьшее время их исполнения.

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

Группа команд пересылки данных:

команды пересылки данных общего назначения (MOV, MVI, LDA, STA, LHLD, SHLD, LXI, LDAX, SPHL, STAX, XCHG, XTHL);

команды обращения к стеку (PUSH и POP);

команды ввода (IN) и вывода (OUT).

Группа арифметических команд:

команды сложения (ADD, ADI, ADC, ACI, INR, INX, DAD);

команды вычитания (SUB, SUI, SBB, SBI, DCR, DCX);

команды умножения (MUL);

команды деления (DIV);

команда десятичной коррекции содержимого аккумулятора (DAA).

Группа команд логических операций:

логические команды (ANA, ANI, ORA, ORI, XRA, XRI);

команды сравнения (CMP, CPI);

команды сдвига (RLC, RRC, RAL, RAR);

команды инверсии содержимого аккумулятора (CMA).

Группа команд передачи управления:

команды безусловного перехода (JMP);

команды условного перехода (JNC, JC, JNZ, JZ, JPO, JPE, JP, JM);

команды безусловного вызова подпрограмм (CALL, RST);

команды условного вызова подпрограмм (CNZ, CZ, CNC, CC, CPO, CPE);

команда безусловного возврата из подпрограммы (RET);

команда условного возврата из подпрограмм (RNZ, RZ, RNC, RC, RC, RPO, RPE, RP, RM).

Группа команд управления микропроцессором:

команды управления признаком переноса (CMC, STC, CLC);

команды флагами (EI, DI, CLI, STI);

команда "нет операции" (NOP);

команда останова микропроцессора (HLT).

Число базовых команд МП составляет несколько десятков, а с учетом их модификаций достигает нескольких сотен.

Время выполнения команды, оцениваемое числом тактов МП. Зная частоту генератора тактовых импульсов (FГТИ), можно определить длительность одного такта; T (мкс) =1/FГТИ (МГц), а значит и время выполнения команды, что имеет существенное значение при программной генерации временных интервалов.

Для подавляющего числа команд время выполнения команды (число тактов) есть величина постоянная, однако существуют команды, для которых это время может меняться. Такими командами являются команды условного вызова и возврата из подпрограмм. Время выполнения команды зависит от того, выполняется условие или нет. Как правило, если условие выполняется, время выполнения команды существенно увеличивается.


2. Язык проектирования МПС, встроенной в ЭА

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

Проектирование программного обеспечения лучше всего может быть выполнено с использованием языка проектирования, подобного естественному языку. Программное обеспечение строится путем преобразования конструкций языка проектирования в язык программирования микрокомпьютера (МКП). Оно тестируется и одновременно с аппаратурой объединяется в единое целое.

Схемы языка проектирования можно рассмотреть с помощью простого примера. Пусть имеем систему из микрокомпьютера с двумя выходами (рис.1.3), которая должна реализовывать функцию преобразования, представленную на рис.1.1.