Главная »  Микропроцессорное управление 

1 ... 17 18 19 20 21 22 23 ... 27

чение переменной в точке j, полученное в эксперименте /. Вместо у^, можно использовать среднее значение у..

Задача контроля заключается в проверке неравенства max А, А„, где А^,- допустимое значение абсолютной погрешности.

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

1. Вычислить

Дп,. = - Z [.Гб,-./;.(-То,)];

1 - -

Amv=- Z [v ,-./ (-v ,)]; /,= A5,.-A . ;=!

2. Образовать массивы

Av,=

Дм.> = :[.)м„.-./.,(-Чн)]=7 при =!, ;

oi,. = 2[.6.>-./ (-%)]=y при i=n+\,2n-

3. Найти maxAv,.. Контроль осуществляется сравнением тах|А;;, с допустимым значением.

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

Оценку погрешности можно получить по отношению к входному воздействию. Для этого необходимо знать обратную статическую характеристику x=f~ [у). При оценке систематической и случайной составляющих погрешностей по отношению к выходной переменной обработка результатов измерений обеспечивает нахождение среднего значения переменной и среднеквад-ратического отклонения.

Алгоритм обработки информации заключается в вычислении

Д.,=л-./ (х,); А.,=-1А ; a,(A)= /-i (Д -Д./.

Контроль осуществляется сравнением А^ и с (А) с допустимыми значениями.

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



больших и меньших значений .Vj. и комбинации полученных результатов с целью исключения вариации.

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

- 1

Дму=-1 [.1м.-./;,к„)];

1= 1

2n-l

Здесь 6 систематическая составляющая погрешности; а^.(б) срсднеквадрати-ческое отклонение случайной составляющей.

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

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

1. Устранить дрейф. Вычислить:

I ,1-1

A.>=>j-i->6j; А.-,=Д.+ 1.у-Д,> 4 =-Г S А,/; efy = Aiy = kJ.

п- \ ,= 1

2. Оценить погрешность 6 = maxGJ.

3. Вычислить систематическую составляющую погреишости 6, = - GJ.

/ 1

4. Вычислить среднеквадратическое отклонение Суф)= /- {Щ~су)~-

V -i=i

Здесь абсолютная погрешность: А коэффициент дрейфа.

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



Глава 5. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

МИКРОПРОЦЕССОРНЫХ СИСТЕМ

5.1. ОБЩИЕ ПРИНЦИПЫ ПОСТРОЕНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ МИКРОПРОЦЕССОРНЫХ СИСТЕМ

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

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

системное (СПО), или операционную систему (ОС), т. е. комплекс программных средств, обеспечивающих разработку программ и организацию вычислительного процесса;

прикладное (ППО), т. е. совокупность программ, непосредственно выполняющих управление объектом и обработку поступающей информации;

разработки, или систему автоматизации программирования (САП), т. е. совокупность программных средств, используемых на всех этапах разработки программ для МПС - от ввода программы на исходном языке до проверки функционирования программ в реальном масштабе времени;

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

Совокупность программ, реализуемых в данной МПС, называется ее резидентным ПО. Программное обеспечение, предназначенное для определенной МПС, но реализованное на других, программно не совместимых с ней вычислительных средствах, называется кроссовым ПО данной МПС. Кросс-САП позволяет разрабатывать ПО для универсальных микроЭВМ большой или средней мощности. Использование кросс-САП дает возможность создавать ПО одновременно с разработкой аппаратуры. Отладка программ при этом производится на программной модели микроэвм, являющейся частью кросс-САП. Однако для кросс-1%



САП невозможно учесть все особенности внешнего окружения микроэвм, поэтому необходима дополнительная отладка на реальной микроЭВМ с учетом реальной среды. Резидентная САП работает на той же ЭВМ, для которой создается ПО. Этот метод наиболее распространен при реализации САП на универсальных микро ВМ

Трудоемкость программирования и качество разрабатываемого ПО в значительной степени определяются используемыми разработчиком языками программирования, которые принято делить йа три класса; машинные языки, язык ассемблера и языки высокого уровня.

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

Команды на языке ассемблера имеют вид мнемонических обозначений, а адреса ячеек ЗУ и константы могут быть представлены не последовательностью битов, а символами. Напри.мер, команда пересыпки данных из регистра А в регистр В на языке ассемблера имеет вид: MOV А, В. Заметим, что для выполнения операций, которые описываются всего несколькими строками естественного языка человека, требуется использовать достаточно большое число команд языка ассемблера.

Исследования показали, что время написания и отладки программы, а также трудность ее понимания и обслуживания пропорциональны числу команд и отчасти сложности каждой команды. Поэтому большинство программ записывают на языках высокого уровня Фортран, Бейсик, PL/M, Паскаль, которые позволяют выполнять наиболее распространенные операции, такие как вычисление выражений, присваивание значений, условные действия и др., используя в каждом случае только один оператор данного языка высокого уровня. Более того, способы записи программ на языках высокого уровня, например на языке Паскаль, облегчают их разработку, понимание и обслуживание.

Рассмотрим принципы построения системного ПО (операционной системы) микроэвм.

Вначале на конкретном примере рассмотрим структуру и функции САП- важной составляющей части СПО.

Предположим, что разработанная и закодированная программа на языке Паскаль вводится в микроЭВМ Электроника-60 . В качестве устройства ввода могут быть использованы: терминал (клавиатура и дисплей), фотосчитывагель, накопитель на гибком магнитном диске и т. п. Введенная программа записывается в



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

Далее отредактированная программа подвергается автоматическому переводу (трансляции) с языка высокого уровня в последовательность машинных кодов. Существуют два вида трансляторов ~ - компилятор и интерпретатор. Компилятор транслирует каждый оператор исходной программы в последовательность машинных кодов, реализуемых позднее при прогоне программы. Интерпретатор реально вьшолняет программу по одному оператору. При использовании интерпретатора существенно облегчается отладка программы, в нее легко вносить изменения и дополнения. В микроЭВМ Электроника-60 трансляция с языка Паскаль на машинный язык осуществляется последовательно в два этапа. На первом этапе программа с языка Паскаль переводится на язык ассемблера. На втором этапе осуществляется перевод с языка ассемблера в машинные коды Электроники-60 . Результатом работы транслятора с языка Паскаль является текст программы на ассемблере, а также лисинг (распечатка), содержащий текст исходной программы на языке Паскаль, некоторую отладочную информацию и сообщения об обнаруженных ошибках. Результатами работы транслятора с языка ассемблера являются объектный код и листинг, в котором содержится информация об исходной программе, оттранслированной программе, относительных адресах размещения команд, а также информация о синтаксических ошибках.

На следующем этапе объектный модуль обрабатывается редактором связей. Используя- информацию об относительных адресах размещения, редактор связей корректирует адресные константы собираемых программ и модифицирует таблицы внешних ссылок других программ в соответствии с заданными адресами. Результатом работы редактора связей является загрузочный модуль-программа, которая готова к исполнению. При необходимости загрузочный модуль-программа вводится в микроэвм с помощью загрузчика.

На последнем этапе осуществляется тестирование загрузочного модуля-программы с помощью отладочных программ, в состав которых входят: генераторы тестов; динамические отладчики, позволяющие в ходе выполнения отлаживаемой программы наблюдать за ее работой; программы вывода содержимого памяти и трассировки, выдающие содержимое оперативной памяти, названия операторов исходной программы и содержимое регистров микроЭВМ в последовательности фактического выполнения операторов и др.



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

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

Современные операционные системы разделяются на резидентные (РОС) и дисковые ОС (ДОС). Первые целиком размещаются в ЗУ микроэвм и обеспечивают минимальное время реакции на сигналы со стороны объекта управления (для РОС требуется объем памяти от 2,5 до 20 К байт). При расширении функций ОС на некотором этапе приходится переходить от резидентных ОС к дисковым, которые размещаются на магнитном диске. С диска их соответствующие компоненты вызываются в оперативную память для выполнения. Для работы ДОС требуется область оперативной памяти, объем которой не превышает объем, необходимый для РОС. Из-за задержек, связанных с обращениями к магнитному диску, ДОС работают значительно медленнее РОС.

Для отечественных микроЭВМ создан целый ряд ОС. Наиболее распространенными из них являются фоновая основная дисковая операционная система (ФОДОС) реального времени для микроэвм типа Электроники-60 , ОС 1800 для микроЭВМ СМ-1800 . ОС ДВК для микроЭВМ Электроника НЦ-80-01Д , входящей в состав ДВК, и др.

5.2. ЯЗЫК АССЕМБЛЕРА МИКРОЭВМ

Язык ассемблера занимает промежуточное положение между машинными и языками высокого уровня, будучи при этом гораздо ближе к машинным языкам. Он позволяет гибко и полно использовать технические возможности ЭВМ, как и машинный язык, но благодаря применению символических имен является более простым и удобным для человека, чем машинный язык.

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



Язык ассемблера является машинно-зависимым языком и отражает архитектурные особенности той микроЭВМ, для которой он создан. Например, в командах ассемблера содержатся способы адресации операндов и имена программно-доступных регистров, используемых в данной микроЭВМ.

Формат операгоров в языке ассемблера. Программа, написанная на языке ассемблера, состоит из последовательности предложений или операторов. Каждый из операторов имеет следуюишй формат: метка, операция операнды, комментарии. Единственным обязательны.м элементом оператора является операция. Все остальные элементы могут отсутствовать.

Метки си.мволическое имя данного оператора, которое требуется, если, например, на оператор есть ссылка в каком-нибудь другом операторе программы. В качестве .метки .опускается применять начинакмцуюся с буквы алфавитно-цифровую послсдо-вате:п>ность знаков, причем значапшми являются первые шесть символов метки.

Вслед за меткой располагается код операции мнемоническое буквенное обозначение оператора. Код операции должен быть отделен от метки одним или несколькими пробелами (I

Tlo.ie операндов располагас гея вслед за кодом операции и отделено от него одним или несколькими пробелами. Операндами .могут быть переменные, константы, арифметические выражения, символы регистров и т. д. Операнды обычно отделяются друг от друга запятыми.

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

Примеры операторов:

Л/1: /V/0K#5,/I; пересылка числа 5 в регистр R\ ADD\ ]Л1,Л2; (R\) + (R2)(R2)

Способы адресации. Все действия над операндами в микроЭВМ осуществляются посредством команд, которые хранятся в ЗУ. Существуют три типа коман,т: безадресные, одноадресные и двухадресные. Безадресные команды содержат только код операции, который показывает, какую операцию необходимо выполнить. Одноадресные (двухадресные) команды кроме кода операции содержат информацию об операнде (операндах).

Способы задания операндов (их адресации) в командах микроЭВМ могут быть самыми различными: операнд может содержаться непосредственно в команде (непосредственная адресация); в команде может содержаться исполнительный адрес операнда, т. е. адрес ячейки памяти, в которой хранится операнд (прямая адресация); в команде может содержаться косвенный адрес операнда, т. е. адрес ячейки памяти, в которой хранится исполнительный адрес операнда (косвенная адресация), причем для оперативного хранения операндов или их адресов в микроЭВМ могут быть использованы регистры общего назначения, входящие в состав микропроцессора.

Используемый способ адресации влияет на формат команды, объем памяти, необходимый для ее хранения (более длинные команды при хранении требуют большего числа ячеек памяти, чем более короткие), быстродействие (время выборки и исполнения команд с косвенной адресацией превышает время, необходимое для выборки и исполнения команд с прямой адресацией) и надежность работы микроЭВМ. 200



Таблица 5.1. Способы задания операндов в командах микроЭВМ Электроника-60

Способ inpecaiuni

ИсполпитсчьпыП алрес (ИА) операнда

Символическая запись

Код адреса

Регистровый Непосредственный

Абсолютный Косвенно-регистровый Прямой с автоувсличеиием Прямой с автоуменыпеиисм Прямой индексный Прямой относительный Косвенный с автоувсличеиием

Косвенный с автоумень-шенисм

Косвенный индексный Косвенный относительный

Регистр с номером Л'=0 - 7 Второе слово команды - операнд

Второе-третье слово команды Содержимое регистра RN

ИА = ИА =

RN). {RN) = {RN) + 2 RN]-2

V\A = E+IRN ИА = АЧ-(СК)-1-2 ИА=((ЛЛ)), {RN)={RN) + 2

ИА = ((ЛЛ)-2)

ИА = ИА =

RN)) СК) + 2)

RN % Е

т Е

-[RN) E{RN)

(cii{RN) +

Cq.,-{RN)

(cr.E(RN) (a E

ON 27

37 \N 2N 4N 6N 67 3N

IN 77

Сформулируем требования и рекомендации по выбору способа адресации:

1) для уменьшения объема памяти и времени выборки команд необходимо использовать ко.маиды с более коротким адресом;

2) с точки зрения наиболее быстрой адресации предпочтительнее тот способ, который требует меньшего числа арифметических операций или дополнительных обращений к памяти;

3j необходимо обеспечить простой доступ к возможно большему объему памяти;

4) в некоторых случаях требуется изменять содержимое адресной части без изменения команды. Такой подход позволил бы по одной и той же программе обрабатывать массивы и таблицы любого формата;

5) так как сложные способы адресации ведут к ошибкам, следует выбирать простые способы адресации.

Наиболее полно указанным требованиям удовлетворяют способы задания операндов, используемые в командах микроЭВМ Электроиика-60 (табл. 5.1). Рассмотрим их.

Регистровый. В качестве операнда используется содержимое одного из регистров общего назначения RO...RT. где 0...7- номер регистра.

Непосредственный. Второе слово команды Е, представленное восьмеричным кодом, является операндом. Например, t 40. Операнд - 408.

Абсолютный. Исполнительный адрес (ИА) операнда содержится во втором-трстьсм слове команды. Например, (я; # 1000; ИА=10008.

Косвенно-регистровый. Исполнительный алрес операнда содержится в регистре ЛЛ, где -номер регистра общего назначения (7V=0,1,2,...,7). Например, (Л2); ИА = (Л2), где (Л2)--содержи.мое регистра R2.

Прямой с автоувеличение.м. Исполнительный адрес операнда содержится в регистре RN, причем после каждого обращения к регистру его содержимое увеличивается иа 2.

Пр.чмой с автоумеиьшеиие.и. Исполнительный адрес операнда получается путем вычитания 2 из содержимого регистра RN.



Рис. 5.1. Форматы команд микроэвм Электроника-60 :

а- двухадресных: 6 одноадресных; в -безадресных команд управления и изменения признаков;

безадресных команд ветвления

15 и 11

6 s

1 1 1

коп

1 1 1 1 1 s S

1 1 1 1-1-

и п

в

коп

коп

в

коп

Прямой индексный. Исполнительный адрес операнда получается путем сложения восьмеричного кода Е (индекса), заданного во втором слове команды, с содержимым регистра RN. Например, 1000 (Л1); ИА= 10008-Ь(Л1).

Косвенный с автоувеличепием. Исполнительный адрес операнда находится в ячейке памяти с адресом (RN), причем после каждого обращения к регистру его содержимое увеличивается на 2. Например, (qi(RO) + ; ИА = ((ЛО)), где (ДО)-содержимое регистра R0, ((RO))- содержимое ячейки памяти с адресом (ЛО).

Косвенный с автоуменыиение.н. Исполнительный адрес операнда находится в ячейке памяти с адресом (RN)-2. Например, @-(ЛО); ИА = ((ЛО)-2).

Косвенный индексный. Исполнительный адрес операнда находится в ячейке памяти с адресом E + (RN). Например, 700 (Л 1); ИА = (7008-ь(Л1)).

Косвенный относительный. Исполнительный адрес операнда находится в ячейке памяти с адресом Е+{СК) + 2. Например, Со 60. Пусть (СК)=1100. тогда ИА = (60g-I-11 OOg ч-2) = 1162.

Система команд микроЭВМ (на примере микроЭВМ Электроника-60 ). В системе команд ЭВМ Электроника-60 используются четыре формата, показанные на рис. 5.1.

В двухадресных командах (рис. 5.1,а) для кода операции (КОП) отведены четыре двоичных разряда-12...15. Из 16 комбинаций только 14 используются для указания кода операции этого формата, а комбинации 1000 и 0000 свидетельствуют о принадлежности команды к другим форматам.

Для кода адреса источника информации {SS) отведено шесть двоичных разрядов-6...11, для кода адреса приемника информации (£>£>) (он же адрес результата) - разряды 0...5. Шесть разрядов SS или DD определяют способ адресации согласно табл. 5.1.

В одноадресных командах (рис. 5.1,6) код операции занимает 6... 15 разряды, а адрес операнда £)£)- 0...5 разряды.

Безадресные команды изменения признаков N. Z, V, С и команды управления работой процессора и внешних устройств (рис. 5.1,в) содержат только код операции. 202



в командах ветвления (рис. 5.1,г) в разрядах 8...15 записан код операции, а в разрядах 0...7- код смещения Е. Смещение есть приращение счетчика команд (в пределах +2).

Система команд микроЭВМ Электроника-60 представлена в табл. 5.2. Таблица 5.2. Система команд микроЭВМ Электроника-60

Адреспост!.

Назначение

Символическая запись

Восьмеричный код

Признаки n7.VC

Содержание команды

Передача

MOV(B)

.]SSDD

V V 0-

(S)=>(£)) Передача

Логические

CMP (В) BIT В) BIC В

BIS(B)

.2SSDD 3SSDD ASSDD

.5SSDD

QIARDD

V V 0-

V V 0-

V V 0-

V vo-

V V 0-

Двухадресные

S)- £>)Сравнение чисел S\a D Проверка битов S)h D) D) Очистка разрядов S)y{D)

ЦИЯ

(£))==>(£)) Исключающее ИЛИ

>(£>) Дизъюнк-

Арифмети-ческие

Арифметические

ADD (В SUB (в MUL DIV

ASHC

06SSDD \6SSDD 010RSS 07\RSS

072 Л^-

073 RSS

WW WW VV о V WW

С ожение S) + (DU> D Вычитание Z)) - (S )=>(£> Умножение

Деление R и R\/4/(S)=> частное в R. остаток в RWl

Арифметический сдвиг Л на и разрядов; и дано в (S-)

Арифметический сдвиг Л и Л V 1 на и разрядов; и дано в (S)

Передача

SWAB CLR(B)

0003 £>£) .050 DD

WOO 0 10 1

Перестановка байтов Очистка слова (£))

Логические

СОМ (В) TST()i)

.051 Ш .057 Ш

Инвертирование (£)) Проверка (£))

Одноадресные

Арифметические

МС(В) DEC (В) NEG(B) ADC(B) SBC(B)

.052 DD .053 DD .054 DD .055 DD: .056 DD

VV V-V V V -WW WW WW

Прибавление единицы k(D)

Вычитание единицы из (D)

Изменение знака (дополнение кода) Прибавление переноса

Вычитание заема из (£))

ROR(B) ROL(B)

.060 DD .061 DD

WW WW

Циклический сдвиг вправо (D) Циклический сдвиг влево (£>)




1 ... 17 18 19 20 21 22 23 ... 27



Как выбрать диван



История мебели



Стили кухонной мебели



Публикации



Инверторы



Приемники