ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.06.2025
Просмотров: 937
Скачиваний: 1
из памяти данных в УВВ и установление индикатора переноса (табл. 6.5). Почти все команды передачи не влияют на индикаторы МП. Эта группа содержит множество команд, данные могут быть переданы из любой ячейки памяти в любой регистр или наоборот. Каждая команда передачи содержит адреса источника и назначения данных. Команды передачи данных не меняют содержимого источника данных.
Табл. 6.5 Состав команд передачи данных типового микропроцессора
Команда ввода идентична команде загрузки. Источник данных передачи является портом ввода, идентифицированным двоичным 8-разрядным числом (0—255ю), назначение этих данных — аккумулятор МП. Данные порта ввода 0000 1111, на который указывает второй байт команды, передаются в аккумулятор, исходя из порта ввода, идентифицированного LOC.
6.6. Состав команд операций ветвления
Команды ветвления составляют четвертую группу команд, которой снабжен типовой МП. Они приведены в табл. 6.6. Термины ветвление и переход в данном случае синонимы. Некоторые разработчики усматривают разницу между ними. Эти команды называют иногда командами передачи управления.
Обычно микро-ЭВМ выполняет команды последовательно. Шестнадцатиразрядный счетчик команд типового микропроцессора хранит всегда адрес следующей извлекаемой из памяти команды до ее выполнения. Содержимое его обычно повышается в каждом счете. Команды ветвления или перехода являются средством изменения значения содержимого счетчика команд и, следовательно, изменения нормальной последовательности выполнения программы.
Эти команды разделены на две группы: безусловного перехода и условного перехода. Первая команда в табл. 6.6 является командой безусловного перехода. Команда ПЕРЕЙТИ непосредственной адресации является трехбайтовой, используемой для изменения специфического адреса в счетчике команд МП. Можно рассматривать команду ветвления или безусловного перехода как способ загрузки новой информации об адресе в счетчик команд.
Табл. 6.6 Состав команд ветвления и перехода типового микропроцессора
Четыре последние команды ветвления в табл. 6.6 являются командами условного перехода. Эти команды повлекут за собой непосредственно загрузку адреса, только если будут выполнены специальные условия. В противном случае счетчик команд будет инкрементирован нормально.
Команды перехода или ветвления существуют практически во всех программах МП. Они очень эффективны как средство принятия решений и удобны для формирования циклов программы. Микропроцессоры особенно эффективны в случае выполнения повторяющихся задач. Циклы в программе являются очень эффективным методом ее сокращения. При написании программы с использованием циклов на ассемблере используются символические адреса в поле «метка». Они заменяются физическими адресами при транслировании программы в машинный код.
6.7. Состав команд вызова подпрограмм и возврата в основную программу
Эти команды составляют пятую категорию состава команд типового МП. Их только две, и они приведены в табл. 6.7. Команды вызова (CALL) и возврата (RЕТ) всегда используются парами. При их выполнении индикаторы не изменяются.
Табл. 6.7 Состав команд вызова подпрограмм и возврата в основную программу
Трехбайтовая команда CALL используется основной программой для перехода МП (или ветвления) к подпрограмме. Когда МП передает первую команду CALL, он находит адрес перехода в двух следующих байтах программы. Адрес следующей команды за CALL отправляется в стек, и МП переходит тогда в начало подпрограммы. Команды подпрограммы выполняются пока МП не передаст команду возврата (RET). Сохраняющийся в стеке адрес отыскивается счетчиком команд, и МП продолжает выполнение основной программы, принимая ее там, где он ее покинул. Подпрограмма может быть использована много раз в ходе выполнения одной и той же основной программы. Подпрограмма может быть расположена в ОЗУ или ПЗУ.
6.8. Состав команд прочих опреаций
Эти команды составляют последнюю категорию, которыми наделен типовой микропроцессор. Они сведены в табл. 6.8 и содержат команды помещения в стек, извлечения из стека, отсутствия операции и команду остановки. При их выполнении индикаторы не изменяются.
Команда PUSH PSW - помещает в стек А и индикаторы. Эта команда является однобайтовой, содержимое аккумулятора помещается первым, а регистра состояния - вторым.
Команда NOP (no operation - нет операций) соответствует отсутствию всякого выполнения операций в течение 1 или 2 мкс. Это однобайтовая команда, единственным эффектом которой является инкремент
счетчика команд. Никакой другой регистр не затрагивается. Эта команда используется как дополнение (когда одна или две команды отменены в ходе наладки) и связывает две части программы так, чтобы МП мог обратиться от одной к другой. Она может также служить для ввода интервала времени в цикл временной задержки.
Табл. 6.8 Прочие команды типового микропроцессора
Команда HLT (останов) используется в конце программы для остановки микропроцессора. В этом случае только СБРОС или команда вызова прерывания может позволить новый запуск типового микропроцессора.
6.9. Способы адресации
Способы адресации нашего типового МП следующие: 1) неявный; 2) регистровый; 3) непосредственный; 4) прямой; 5) косвенный регистровый.
Два первых (регистровый и неявный) касаются операндов, расположенных в самом МП. Три последних (непосредственная, прямая и косвенная регистровая) — операндов, расположенных вне МП, т. е. в ячейках памяти или портах УВВ. Эти способы адресации присущи МП Intel 8080/8085.
Команды с неявной адресацией – те, которые не требуют операндов. Например, команда STC (восстановить индикатор переноса) не затрагивает другие регистры или индикаторы.
Вслучае регистровой адресации операнд отыскивается в одном из внутренних регистров МП. Оба эти типа команд всегда однобайтовые.
Вслучае непосредственной адресации операнд поступает в программную память из следующего байта (двух следующих байтов) за КОП. Такие команды занимают 2 или 3 байта.
Вслучае прямой адресации 2-й и 3-й байт команды прямо указывают на адрес операнда. Они являются адресами в прямом способе адресации, тогда как при непосредственной адресации эти же байты были операндами. Такие команды занимают 2 или 3 байта.
Вслучае косвенной регистровой адресации пара регистров HL указывает на адрес операнда в памяти. Рассмотрим пример: загрузить LOC (Н и L) в А с мнемоникой MOV А, М. Этот тип команд всегда однобайтовый.
Другие МП снабжены иногда иными способами прямой адресации, а именно: нулевой или основной страницы; абсолютной; адресации действующей страницы или ожидаемой.
7.Проектирование микропроцессорных систем
7.1 Уровни представления микропроцессорной системы
Микропроцессорная система может быть описана на различных уровнях абстрактного представления.
Существующую микропроцессорную систему можно описать на любом известном уровне представления, но в начальной стадии проектирования ее можно описать только на концептуальном уровне.
В процессе разработки системы происходит переход от одного уровня ее представления к другому, более детальному. Каждая абстракция несет в себе только информацию, которая соответствует данному уровню, и не содержит каких-либо сведений относительно более низких уровней. Микропроцессорная система может быть описана, например, на одном из следующих уровней абстрактного представления:
1)"черный ящик";
2)структурный;
3)программный;
4)логический;
5)схемный .
На уровне "черного ящика" микропроцессорная система описывается внешними спецификациями; перечисляются внешние характеристики.
Структурный уровень создается компонентами микропроцессорной системы: микропроцессорами, запоминающими устройствами, устройствами ввода/вывода, внешними запоминающими устройствами, каналами связи. Микропроцессорная система описывается функциями отдельных устройств и их взаимосвязью, информационными потоками.
Программный уровень разделяется на два подуровня: команд процессора и языковой. Микропроцессорная система интерпретируется как последовательность операторов или команд, вызывающих то или иное действие над некоторой структурой данных.
Логический уровень присущ исключительно дискретным системам. На этом уровне выделяются два подуровня: переключательных схем и регистровых пересылок. Подуровень переключательных схем образуется вентилями и построенными на их основе операторами обработки данных. Переключательные схемы подразделяются на комбинационные и последовательностные; первые в отличие от последних не содержат запоминающих элементов. Поведение системы на этом уровне описывается алгеброй логики, моделью конечного автомата, входными/выходными последовательностями 1 и 0. Комбинационные схемы представляются таблицей истинности, в которой каждому входному набору значений сигналов ставится в соответствие набор значений сигналов на выходах. Последовательностные схемы могут описываться диаграммами или таблицами входов/выходов, в которых определены взаимно однозначные соответствия между входами схемы, внутренними состояниями (комбинациями значений элементов памяти) и выходами. Подуровень регистровых пересылок характеризуется более высокой степенью абстрагирования и представляет собой описание регистров и передачу данных между ними. Он включает в себя две части: информационную и управляющую. Информационная часть образуется регистрами, операторами и путями передачи данных. Управляющая часть определяет зависящие от времени сигналы, инициирующие пересылку данных между регистрами.
Сxемный уровень образуется резисторами и конденсаторами. Показателями поведения системы на этом уровне служат напряжение и ток, представляемые в функции времени или частоты. Этот уровень описания дискретной системы широко используется в описаниях аналоговых систем и не является ни наинизшим из возможных, ни достаточным для полной характеристики системы.
7.2Ошибки, неисправности, дефекты
Вжизненном цикле микропроцессорной системы, как любой дискретной системы, выделяются три стадии: проектирование, изготовление и эксплуатация. Каждая из стадий подразделяется на несколько фаз, для которых существуют вероятности возникновения конструктивных или физических неисправностей, приводящих систему в неработоспособное состояние. Поэтому на каждой фазе необходимы процедуры тестового контроля, направленные на обнаружение и локализацию неисправностей. Процедура тестового контроля может быть определена как проведение экспериментов с "черным ящиком". Дискретная система любой сложности или часть такой системы может рассматриваться как "черный ящик" с множеством входов
ивыходов. Правильность функционирования этого "черного ящика" должна устанавливаться путем подачи входных сигналов и наблюдения ответных выходных сигналов системы. В тех случаях, когда поведение "черного ящика" отличается от нормального, характеризуемого его спецификацией или представлениями человека, говорят о наличии ошибки. Ошибка вызывается некоторой неисправностью, представляющей собой некорректное состояние внутри "черного ящика". Неисправности классифицируют в соответствии с их причинами: физическая, если причиной ее служат либо дефекты элементов, либо физическое воздействие окружающей среды; субъективная (внесенная, нефизическая), если ее причиной служат ошибки проектирования, неправильный монтаж элементов, грубые ошибки оператора. Физические неисправности - непредусмотренные, нежелательные изменения значения одной или нескольких логических переменных в системе. Субъективные неисправности - конкретные проявления недостатков программного и аппаратного обеспечения и неправильных действий оператора, имеющих место при выполнении дискретной системой предписанных спецификацией действий .
Под субъективными неисправностями подразумеваются неисправности нефизические, вызванные недостатками различных схем, конструкций, программ, средств эксплуатации - компиляторов, ассемблеров, программ автоматизации проектирования, инструкции по эксплуатации, процедур и средств контроля и т.д. Субъективные неисправности делят на проектные и интерактивные.
Проектные неисправности вызваны недостатками, вносимыми в систему на различных стадиях реализации исходного задания при структурном проектировании, разработке алгоритмов, написании программ, трансляции в машинный код, детальном логическом и техническом проектировании, а также при последующих модификациях аппаратного и программного обеспечения. Интерактивные неисправности возникают, когда в процессе работы, технического обслуживания или отработки системы оператор вводит в
нее через интерфейс человек-машина ложную информацию, не соответствующую текущему состоянию системы. Как правило, это происходит в результате непонимания инструкции для оператора или вследствие неточностей ввода информации.
Ошибка - проявление неисправности (физической или субъективной). В зависимости от уровня иерархической структуры системы термин "ошибка" может иметь различный смысл. Так, для дискретного устройства он означает появление неверных двоичных сигналов ("0" вместо "1" и "1" вместо "0"); для программы ошибка означает отклонение поведения программы от заданного, приводящее к выдаче неверных результатов.
Следует четко разграничивать понятия "ошибка" и "неисправность". Неисправность может приводить или не приводить к ошибке в зависимости от состояния системы. В то же время возникновение ошибки обязательно говорит о существовании какой-то неисправности. Одна и та же ошибка может быть вызвана множеством неисправностей, а одна неисправность может служить причиной целого ряда ошибок. Например, если триггер, предназначенный для хранения кода переполнения разрядной сетки ЭВМ, вследствие неисправности все время находится в состоянии "0", то ошибки из-за неисправности не будет до тех пор, пока в процессе вычислений реально не возникнет арифметическое перепол-нение, при котором триггер останется в состоянии "0" вместо перехода в состояние "1". Однако даже и в этом случае такая ошибка процессора не обязательно приведет к ошибке на программном уровне, если в программе условие переполнения не проверяется и, следовательно, ни с какой стороны не влияет на ее дальнейшее поведение.
Дефекты - физические изменения параметров компонентов системы, выходящие за допустимые пределы. Их называют сбоями, если они носят временный характер, и отказами, если они постоянны.
Существует такая причинноследственная связь:
1)дефект, представляющий собой изменение в значениях параметров компонентов, вызывает неисправность, т.е. отклонение от заданного значения (значений) логической переменной (переменных) в точке дефекта;
2)неисправность приводит к подаче неверных логических значений на вход (входы) остальной части системы и может вызывать ошибки, проявляющиеся при последующей работе других исправных логических схем;
3)ошибки приводят к появлению неправильных результатов или к отклонению от нормального хода исполнения программы.
7.3Отладка
Оправильности функционирования микропроцессорной системы на уровне "черного ящика" с полностью неизвестной внутренней структурой можно говорить лишь тогда, когда произведены ее испытания, в ходе которых реализованы все возможные комбинации входных воздействий, и в каждом случае проверена корректность ответных реакций. Однако исчерпывающее тестирование имеет практический смысл лишь для простейших элементов систем. Следствием этого является тот факт, что ошибки проектирования встречаются при эксплуатации, и для достаточно сложных систем нельзя утверждать об их отсутствии на любой стадии жизни системы. В основе почти всех методов испытаний лежит та или иная гипотетическая модель неисправностей, первоисточником которой служат неисправности, встречающиеся в практике. В соответствии с моделью в рамках каждого метода предпринимаются попытки создания тестовых наборов, которые могли бы обеспечить удовлетворительное выявление моделируемых неисправностей. Любой метод тестирования хорош ровно настолько, насколько правильна лежащая в его основе модель неисправности.
Важным моментом является правильный выбор соотношения между степенью общности модели, стоимостью и степенью сложности формирования и прогона тестов, ориентированных на моделируемые неисправности. Чем конкретнее модель, тем легче создать для нее систему тестов, но тем выше вероятность того, что неисправность останется незамеченной. Если же модель неисправностей излишне общая, то из-за комбинаторного возрастания числа необходимых тестовых наборов и/или времени вычислений, требуемого для работы алгоритмов формирования тестов, она станет непрактичной и пригодной только для несложных систем.
7.4 Обнаружение ошибки и диагностика неисправности
Дефект не может быть обнаружен до тех пор, пока не будут созданы условия для возникновения изза него неисправности, результат которой должен быть, в свою очередь, передан на выход испытуемого объекта, для того чтобы сделать неисправность наблюдаемой. Метод испытаний должен позволить генерировать тесты, ставящие испытуемый объект в условия, при которых моделируемые неисправности проявляли бы себя в виде обнаруживаемых ошибок. Если испытуемый объект предназначен для