Инфоурок Другое Другие методич. материалыЛекции по МДК Микропроцессорные системы

Лекции по МДК Микропроцессорные системы

Скачать материал

УЧЕБНОЕ   ПОСОБИЕ

 

Ульяновский авиационный колледж –

Межрегиональный центр компетенций

ПРОФЕССИОНАЛЬНЫЙ ЦИКЛ

 

 

МДК 02.01

Микропроцессорные системы

 

 

 

КУРС ЛЕКЦИЙ

 

 

для специальности СПО базовой подготовки

 

09.02.01 Компьютерные системы и комплексы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ульяновск

 2018


 

 

 

 

 

РАЗРАБОТЧИК: Кякшта М.А., преподаватель ОГАПОУ «УАвиаК-МЦК»

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СОДЕРЖАНИЕ

 

ВВЕДЕНИЕ ……………………………………………………………………………………...4

Раздел 1. Изучение микропроцессорных систем

Тема 1.1 Базовая функциональная схема микропроцессорной системы

1.1.1. Структура МПС………………………………………………………………..7

1.1.2. Режимы работы микропроцессора…………………………………………..11

1.1.3. Регистры микропроцессора…………………………………………………17

1.1.4. Состояние производства и использование МПС……………………………20

 

Тема 1.2 Программное обеспечение МПС

1.2.1. Система команд………………………………………………………………22

1.2.2. Способы адресации данных…………………………………………………25

1.2.3. Применение ветвлений, циклов……………………………………………27

1.2.4. Использование стека…………………………………………………………29

 

Тема 1.3  Микроконтроллеры и микроконтроллерные системы

1.3.1. Структура типовой системы управления…………………………………31

1.3.2. Таймер………………………………………………………………………35

1.3.3. Контроллер прерываний…………………………………………………...38

1.3.4. Контроллер ПДП……………………………………………………………40

 

Тема 1.4 Тестирование и отладка МПС

1.4.1. Методы тестирования МПС………………………………………………….46

1.4.2. Логические анализаторы……………………………………………………..48

1.4.3. Программная среда AVR Studio……………………………………………..50

1.4.4. Система программирования CodeVisionAVR………………………………..54

1.4.5. Программаторы………………………………………………………………56

 

Тема 1.5. Персональный компьютер (ПК) как микропроцессорная система

1.5.1. BIOS……………………………………………………………………….…59

1.5.2. Конфигурирование ПК. …………………………………………………….61

1.5.3. Причины неисправностей и сбоев………………………………………....62

 

 

ИСПОЛЬЗОВАННАЯ ЛИТЕРАТУРА……………………………………………………65

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ВВЕДЕНИЕ

 

Необходимость в вычислениях всегда была неразрывно связана с практической деятельностью человека. Понятие числа возникло задолго до появления письменности. Люди очень медленно и трудно учились считать, передовая свой опыт из поколения в поколение . По мере роста потребностей в вычислениях и развития методов вычислений возникали и развивались приспособления для счета.

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

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

Раннему развитию письменного счета препятствовала сложность арифметических действий при существовании в то время способах записи чисел. Попробуйте перемножить числа 26 и 18 , не записывая их, так как мы привыкли. Вряд ли сразу удастся даже придумать, как это сделать. Кроме того, писать умели немногие и отсутствовал учебный материал для письма, пергамент начал производится со II в. до н. э папирус был слишком дорог, а глиняные таблички неудобны в пользовании. Эти обстоятельства объясняют появление специального счетного прибора, называемого абаком. К V в до н. э он получил широкое распространение в Египте, Греции, Риме. Абак представлял собой доску с желобками, в которых по позиционному принципу размещали какие-нибудь предметы-камешки, косточки и т.п. Историки полагают, что абак был походным инструментом купцов, поскольку значения , приписываемые камешками в различных желобках, соответствовали различным денежным единицам.

В Древнем Риме абак назывался abaculi или calculi. Латинское слово calculus означает камешек, галька. От него произошло в дальнейшем слово calculator – перекладывать камешки, подсчитывать. Сегодня так называется настольное или карманное вычислительное устройство - микрокалькулятор.

Впоследствии абак был усовершенствован, доска была заменена рамкой, камешки _ шариками или дисками, нанизанными на нитки или прутики. И получились счеты, которые и в настоящее время еще используются. Русские счеты появились на рубеже XVI и XVII вв.

Примерно в VI в. н. Э в Индии сформировались весьма совершенные способы записи чисел и правила выполнения арифметических операций, называемые ныне десятичной системой счисления. В IX в. великий математик и астроном Абу Джафар Мухаммад ибн Муса аль Хуваризм написал знаменитый труд «Правила восстановления и преобразования». В нем он изложил и развил эту систему счета , которая и стала общепринятой в арабском мире .

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

С XIII в. в западной Европе не совсем мирно существует две арифметические школы – абакистов (от абака) и алгоритмиков (от аль Хорезми). Дело в том, что счет на абаке проще , ибо не требует сложения и умножения , В этом отношении способы счета алгоритмиков труднее , но зато позволяют выполнять более сложные вычисления – характерным примером являются умножение и деление. Поэтому после двух столетий соперничества в конце концов победили алгоритмики, чему способствовало помимо прочего распространение письменности и бумаги. Однако первым прибором для вычисления был абак. Но он не очень приспособлен для умножения и деления. Поэтому блестящим достижением математики явилось изобретение логарифмов Джоном Непером (1550- 1617). Это дало возможность заменить умножение и деление сложением и вычитанием и привело к созданию намного более совершенного и очень полезного инструмента – логарифмической линейки.

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

Эскиз механического суммирующего устройства был разработан еще Леонардо да Винчи (1452-1519) Первая механическая счетная машина была изготовлена в 1623 г. профессором математики Вильгельмом Шиккардом ( 1592 – 1636) . Но машина Шиккарда вскоре сгорела во время пожара, а рукописи Леонардо да Винчи были обнаружены лишь в 1967 г. Поэтому биография механических вычислительных устройств ведется от суммирующей машины. изготовленной в 1642 г. Блезом Паскалем (1623-1662), в дальнейшем великим математиком и физиком.

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

Суммирующие машины, изобретавшиеся в XVII-XVIII вв., были ненадежны, неудобны в работе и не были еще по-настоящему необходимыми. Лишь в XIX столетии рост промышленности, транспорта и расширение коммерческой деятельности банков сделали построение быстродействующих и надежных счетных машин актуальной задачей.

Первая фирма, специализировавшаяся по выпуску счетных машин, была основана в США в 1887 г. В России арифмометры начали выпускаться с 1894 г. и производились более 70 лет.

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

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

Мысль о создании автоматической вычислительной машины, которая бы работала без участия человека, впервые была высказана английским математиком Чарльзом Бэббиджем (1791 – 1864) в начале XIX в. В 1820-1822 гг. он построил машину, которая могла вычислять таблицы значений многочленов второго порядка. С 1934г. и до конца жизни Ч.Бэббидж работал над чертежами универсальной вычислительной машины, но сложность разработки чисто механического устройства и финансовые трудности не позволили ему изготовить работающий экземпляр.

Сущность идеи Бэббиджа Заключалась в том, что машина могла бы автоматически выполнить арифметические операции , если бы ей каким -либо образом было задано, какие операции , с какими числами и в какой последовательности она должна выполнить. Однако недостаточный уровень развития техники привёл к тому, что идеи Бэббиджа были осуществлены только в конце 30-х годов нашего века в машинах, работавших на электромагнитных реле. Первые вычислительные машины, у которых основными элементами были не реле, а электронные лампы были построены в Англии и США в 1943-1946 гг.

В СССР первая ЭВМ была построена в 1950 г. в Киеве под руководством академика С. А. Лебедева. Она называлась МЭСМ – малая электронно-счетная машина. Это было экспериментальное изделие, но уже в 1952 г. появилась серийно выпускаемая машина БЭСМ – быстродействующая электронно-счетная машина, последние варианты которой успешно работают и сейчас.

 

С этого времени и началось весьма энергичное развитие вычислительной техники. Ламповые машины не отличались высокой надежностью – ежедневно перегорало около 20 –30 ламп из нескольких десятков тысяч . Кроме этого они потребляли много энергии и занимали площадь примерно с баскетбольное поле.

С середины 50-х годов в Англии, Италии, Франции, ФРГ, СССР, США, Японии выпускаются машины, в которых электронные лампы заменены транзисторами, более надежными, экономичными и намного меньшими по размерам.

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

В настоящее время широко используются большие интегральные схемы (БИС). В каждой из них на кристалле площадью около 1 квадратного сантиметра располагаются сотни тысяч транзисторов . На таких микросхемах реализуется целые узлы ЭВМ . Габариты весьма мощных современных компьютеров позволяют поставить их на стол . Такие ЭВМ обычно предназначаются для индивидуального пользования на любом рабочем месте .

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

Возможности этого кроются в создании кодирования и методов обработки такой информации.

 

 



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

РАЗДЕЛ 1. ИЗУЧЕНИЕ МИКРОПРОЦЕССОРНЫХ СИСТЕМ

 

ТЕМА 1.1  БАЗОВАЯ ФУНКЦИОНАЛЬНАЯ СХЕМА МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ

1.1.1. Структура МПС

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

Задача микропроцессора— выполнять программы, находящиеся в основной памяти.

Процессор выполняет каждую команду за несколько шагов:

1. Вызывает очередную команду из памяти и заносит ее в регистр команд.

2. Меняет содержимое счетчика команд, который после этого указывает на следующую команду.

3. Определяет тип вызванной команды.

4. Если команда использует данные из памяти, определяет, где находятся эти данные.

5. При необходимости переносит данные в регистр процессора.

6. Выполняет команду.

7. Переходит к шагу 1, чтобы начать выполнение следующей команды.

 

Такая последовательность  "выборка — декодирование — исполнение"  является основой работы всех компьютеров. Режим работы процессора определяет поведение  и свойства доступных ресурсов процессора. Перевод процессора из одного режима в другой осуществляется специальными программными и аппаратными методами.

Существует несколько режимов работы процессора:

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

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

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

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

В состав микропроцессора входят следующие устройства:

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

2. Устройство управления координирует взаимодействие различных частей компьютера.

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

4. Интерфейсная система микропроцессора предназначена для связи с другими устройствами компьютера и включает в себя:

·        внутренний интерфейс микропроцессора;

·        буферные запоминающие регистры;

·        схемы управления портами ввода-вывода и системной шиной.

 

В состав микропроцессора входят следующие устройства:

 

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

2. Устройство управления координирует взаимодействие различных частей компьютера.

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

4. Интерфейсная система микропроцессора предназначена для связи с другими устройствами компьютера и включает в себя:

·                    внутренний интерфейс микропроцессора;

·                    буферные запоминающие регистры;

·                    схемы управления портами ввода-вывода и системной шиной.

 

Рассмотрим схему  8-разрядного МП.

 

Микропроцессор состоит из трех основных блоков:

·                    АЛУ,

·                    регистров,

·                    устройства управления.

 

Для передачи данных между ними используется внутренняя шина данных.

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

Аккумулятор – главный регистр МП. Большинство логических и арифметических операций осуществляется путем использования АЛУ и аккумулятора. Любая из таких операций над двумя операндами предполагает размещение одного из них в аккумуляторе, а другого – в памяти или еще каком-либо регистре.

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

Регистр команд предназначен только для хранения текущей команды.

Согласно структурной схеме МП, этот регистр соединен с внутренней шиной данных, однако он только принимает данные – посылать данные на шину он не может.

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

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

Буферные регистры АЛУ предназначены для временного хранения одного байта данных. Один из этих регистров (ближайший к аккумулятору на схеме) называется буфером аккумулятора АЛУ. Во второй регистр на временное хранение поступают данные с внутренней шины МП. Необходимость в таком регистре вызвана отсутствием в АЛУ своего запоминающего устройства.

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

Все  МП располагают регистрами общего назначения. Это регистры BL,CLи DL.

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

На схеме МП линии управления изображены красным цветом. Эти линии соединяют схемы управления со всеми узлами МП, а также с внешними блоками: памяти и ввода-вывода.

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

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

Рассмотрим по шагам работу МП при сложении двух чисел:

1. В аккумуляторе находится двоичное число 11011010, в регистре – число 11011110, причем ни один из этих регистров не соединен ни с каким другим функциональным узлом МП. В регистре команд содержится код команды ADD (сложение).

2. Содержимое аккумулятора загружается в буферный регистр. Данные, размещенные в регистре BL, подаются на внутреннюю шину данных МП. Затем буферный регистр, подключенный к этой шине загружается копией данных из регистра BL. (Буфер аккумулятора  - 11011110, регистр состояния 0Z0N0C, регистр команд ADD).

3. Осуществляется работа АЛУ по сложению данных, поступивших на его входы. Через выходной порт результат сложения помещается в аккумулятор. Следует обратить внимание, что в результате сложения указанных чисел два разряда состояния принимают единичное значение – переноса и знаковый:

4. Вход аккумулятора и выходной порт АЛУ отключается от внутренней шины данных. Результат операции – искомая сумма – находится в аккумуляторе. Шина свободна для других операций.

 

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

 

1.1.2. Режимы работы микропроцессора

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

Выделяют два уровня организации:

●     физическую организацию в виде принципиальной схемы;

●     логическую организацию в виде структурно–функциональной схемы.

 

Архитектура процессора - это совокупность его программно–аппаратных средств, обеспечивающих обработку цифровой инфор­мации (выполнение программы), т. е. совокупность всех средств, доступных про­грамме (или пользователю).

Микроархитектура процессора - это аппаратная организация и логическая структура микропроцессора, регистры, управляющие схемы, арифметико-логические устройства, запоминающие устройства и связывающие их информационные магистрали.

Макроархитектура процессора - это система команд, типы обрабатываемых данных, режимы адресации и принципы работы микропроцессора.

По форматам используемых команд существуют несколько видов архитектур процессоров:

●     CISC–архитектура относится к процессорам (компьютерам) с полным набором команд. Она реализова­на во многих типах микропроцессоров (напримерPentium), выполняющих большой набор разноформатных команд с использованием многочисленных способов адресации.

Система команд процессоров с CISC–архитектурой может содержать не­сколько сотен команд разного формата (от 1 до 15 байт), или степени слож­ности, и использовать более 10 различных способов адресации, что позволя­ет программисту реализовать наиболее эффективные алгоритмы решения различных задач.

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

 

●     RISC–архитектура относится к процессорам (компьютерам) с сокра­щенным набором команд (ReducedinstructionSetComputerRISC). Появле­ние RISC–архитектуры продиктовано тем, что многие CISC–команды и спо­собы адресации используются достаточно редко. Основная особенность RISC–архитектуры проявляется в том, что система команд состоит из неболь­шого количества часто используемых команд одинакового формата, которые могут быть выполнены за один командный цикл (такт) центрального процес­сора. Более сложные, редко используемые команды реализуются на про­граммном уровне. Однако за счет значительного повышения скорости испол­нения команд средняя производительность RISC–процессоров может оказать­ся выше, чем у процессоров с CISC–архитектурой.

Большинство команд RISC–процессоров связано с операцией регистр–регистр. Для обращения к памяти оставлены наиболее простые с точки зре­ния временных затрат операции загрузки в регистры и записи в память.

Современные RISC–процессоры реализуют около 100 команд, имеющих фиксированный формат длиной 4 байта, и используют небольшое число наи­более простых способов адресации (регистровую, индексную и некоторые другие).

Для сокращения количества обращений к внешней оперативной памяти RISC–процессоры содержат десятки–сотни регистров общего назначения (РОН), тогда как в CISC–процессорах всего 8–16 регистров. Обращение к внешней памяти в RISC–процессорах используется только в операциях за­грузки данных в РОН или пересылки результатов из РОН в память. За счет со­кращения аппаратных средств, необходимых для декодирования и выполне­ния сложных команд, достигается существенное упрощение интегральных схем RISC–процессоров и снижение их стоимости. Кроме того, значительно повышается производительность. Благодаря указанным достоинствам во многих современных CISC–процессорах (последние модели Pentium и К7) ис­пользуется RISC–ядро. При этом сложные CISC–команды предварительно преобразуются в последовательность простых RISC–операций и быстро вы­полняются RISC–ядром;

●     VLIW–архитектура относится к микропроцессорам с использованием очень длинных команд (VeryLargeInstructionWordVLIW). Отдельные поля команды содержат коды, обеспечивающие выполнение различных операций. Одна VLIW–команда может выполнить сразу несколько операций одновремен­но в различных узлах микропроцессора. Формирование «длинных» VLIWko­манд производит соответствующий компилятор при трансляции программ, написанных на языке высокого уровня. VLIW–архитектура реализована в неко­торых типах современных микропроцессоров и является весьма перспектив­ной для создания нового поколения сверхвысокопроизводительных процес­соров.

 

По способу организации выборки команд и данных различа­ют два вида архитектур:

●     принстонская архитектура, или архитектура фон–Неймана, особенностью которой является (рис. 2.1.1) использование:

•      общей основной (оперативной) памяти для хранения программ и данных, что позволяет оперативно и эффективно перераспределять ее объем в за­висимости от решаемых задач в каждом конкретном случае применении микропроцессора;

•      общей шины, по которой в процессор поступают команды и данные, а в опе­ративную память записываются результаты, что значительно упрощает отладку, тестирование и текущий контроль функционирования системы, повышает ее надежность. Чтобы отделить команду от данных, первым из памяти всегда поступает код выполняемой операции, а затем следуют данные. По умолчанию код операции загружается в регистр команд, а дан­ные — в блок регистров. Из–за ограниченного числа внешних выводов противоположные направления обмена данными между микропроцессором, памятью или другими внешними устройствами по общей шине разде­лены во времени.

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

●     гарвардская архитектура (создатель ГовардАйкен), особенностью которой является физическое разделение памяти команд (программ) и памяти данных. Это обстоятельство вызвано постоянно возрастающими требова­ниями к производительности микропроцессорных систем. Память команд и память данных соединяются с процессором отдельными шинами. Благодаря разделению потоков команд и данных, а также совмещению операций их вы­борки (и записи результатов обработки) обеспечивается более высокая про­изводительность, чем при использовании принстонской архитектуры.

 

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

Процессор выполняет каждую команду за несколько шагов:

1. Вызывает очередную команду из памяти и заносит ее в регистр команд.

2. Меняет содержимое счетчика команд, который после этого указывает на следующую команду.

3. Определяет тип вызванной команды.

4. Если команда использует данные из памяти, определяет, где находятся эти данные.

5. При необходимости переносит данные в регистр процессора.

6. Выполняет команду.

7. Переходит к шагу 1, чтобы начать выполнение следующей команды.

 

Такая последовательность   является основой работы всех компьютеров.

Физическая память, к которой процессор имеет доступ по шине адреса, называется оперативной памятью (или оперативным запоминающим устройством — ОЗУ).  ОЗУ организовано как последовательность байтов. Каждому байту соответствует свой уникальный физический адрес (его номер).

Процессор поддерживает две модели использования оперативной памяти: сегментированную и страничную.

Страничную модель можно рассматривать как надстройку над сегментированной моделью. В случае ее использования оперативная память рассматривается как совокупность блоков фиксированного размера.

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

Основные сегменты:

·                     Сегмент  кодов– содержит машинные команды для выполнения. Обычно первая выполняемая команда находится в начале этого сегмента, и операционная система передает управление по адресу данного сегмента  для начала выполнения программы. Регистр сегмента кода CS  и указатель IP определяют адрес памяти, откуда надо прочитать следующую команду.

·                     Сегмент данных– содержит определенные данные, константы и рабочие  области, необходимые программе. Сегментные регистры DS, ES, GS и FS используются для адресации данных в памяти, индексный регистр SI служит для указания смещения.

·                     Сегмент стека. Стек содержит адреса возврата для программы для возврата в операционную систему и для  вызовов подпрограмм для возврата в главную программу. Регистр сегмента стека SS и указатель SP указывают на вершину стека.

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

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

 

Формирование физического адреса в реальном режиме


Для хранения адресов памяти используются не отдельные регистры, а пары регистров:

·        сегментный регистр определяет адрес начала сегмента (то есть положение сегмента в памяти);

·        регистр указателя (регистр смещения) определяет положение рабочего адреса внутри сегмента.

При этом физический 20-разрядный адрес памяти образуется путем  сложения смещения и адреса сегмента со сдвигом на 4 бита. Положение этого адреса в памяти показано на рисунке.

 

http://arxitektura-pk.26320-004georg.edusite.ru/images/fizicheskiyadrespamyati.jpg 

 

Например, сегмент в шестнадцатеричном виде равен 1200, а смещение — 3CDЕ.

 

Сегмент (1200)

0

0

0

1

0

0

1

0

0

0

0

0

0

0

0

0

 

Смещение (3CDЕ)

 

0

0

1

1

1

1

0

0

1

1

0

1

1

1

1

0

Адрес (15CDЕ)

0

0

0

1

0

1

0

1

1

1

0

0

1

1

0

1

1

1

1

0

 

 

 

 

Защищённый режим – это режим, при котором обращение к памяти происходит по виртуальным адресам с использованием механизмов защиты памяти. Набор доступных операций определяется уровнем привилегий.

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

Формирование физического адреса в защищенном режиме


Любой сегмент памяти в защищенном режиме имеет следующие атрибуты:
-расположение сегмента в памяти;
-размер сегмента;

-уровень привилегий (определяет права данного сегмента относительно других сегментов);
-тип доступа (определяет назначение сегмента).

 

В отличие от реального режима, в защищенном режиме программа уже не может запросто обратиться по любому физическому адресу памяти. Для этого она должна иметь определенные полномочия и удовлетворять ряду требований.
Ключевым объектом защищенного режима является специальная структура —
дескриптор сегмента, , который представляет собой 8-байтовый дескриптор (краткое описание) непрерывной области памяти, содержащий перечисленные ранее атрибуты.

http://arxitektura-pk.26320-004georg.edusite.ru/images/adresaciyapamyati.jpg

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

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

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

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

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

Коэффициент мультипрограммирования (КМ) - это количество программ, обрабатываемых одновременно в мультипрограммном режиме.

 

1.1.3. Регистры микропроцессора

Начиная с модели 80386 процессоры Intel предоставляют 16 основных регистров для пользовательских программ и ещё 11 регистров для работы с мультимедийными приложениями (MMX) и числами с плавающей точкой (FPU/NPX). Все команды так или иначе изменяют содержимое регистров. Как уже говорилось, обращаться к регистрам быстрее и удобнее, чем к памяти. Поэтому при программировании на языке Ассемблера регистры используются очень широко.

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

Название

Разрядность

Основное назначение

EAX

32

Аккумулятор

EBX

32

База

ECX

32

Счётчик

EDX

32

Регистр данных

EBP

32

Указатель базы

ESP

32

Указатель стека

ESI

32

Индекс источника

EDI

32

Индекс приёмника

EFLAGS

32

Регистр флагов

EIP

32

Указатель инструкции (команды)

CS

16

Сегментный регистр

DS

16

Сегментный регистр

ES

16

Сегментный регистр

FS

16

Сегментный регистр

GS

16

Сегментный регистр

SS

16

Сегментный регистр

Регистры EAX, EBX, ECX, EDX – это регистры общего назначения. Они имеют определённое назначение (так уж сложилось исторически), однако в них можно хранить любую информацию.

Регистры EBP, ESP, ESI, EDI – это также регистры общего назначения. Они имеют уже более конкретное назначение. В них также можно хранить пользовательские данные, но делать это нужно уже более осторожно, чтобы не получить «неожиданный» результат.

Регистр флагов и сегментные регистры требуют отдельного описания и будут более подробно рассмотрены далее.

Когда-то процессоры были 16-разрядными, и, соответственно, все их регистры были также 16-разрядными. Для совместимости со старыми программами, а также для удобства программирования некоторые регистры разделены на 2 или 4 «маленьких» регистра, у каждого из которых есть свои имена. В таблице 2.2 перечислены такие регистры.

Вот пример такого регистра.

Структура регистра EAX

Из этого следует, что вы можете написать в своей программе, например, такие команды:

MOV         AX,  1

MOV         EAX, 1

Обе команды поместят в регистр AX число 1. Разница будет заключаться только в том, что вторая команда обнулит старшие разряды регистра EAX, то есть после выполнения второй команды в регистре EAX будет число 1. А первая команда оставит в старших разрядах регистра EAX старые данные. И если там были данные, отличные от нуля, то после выполнения первой команды в регистре EAX будет какое-то число, но не 1. А вот в регистре AX будет число 1.

Нулевой разряд (бит) – это младший бит. Он крайний справа. Старший бит – крайний слева. Номер старшего бита зависит от разрядности числа/регистра. Например, в 32-разрядном регистре старшим битом является 31-й бит (потому что отсчёт начинается с 0, а не с 1).

Ниже приведён список регистров общего назначения, которые можно поделить описанным выше способом и при этом к «половинкам» и «четвертинкам» этих регистров можно обращаться в программе как к отдельному регистру.

Регистр

Старшие разряды

Имена 16-ти и 8-ми битных регистров

31…16

15…8

7…0

EAX

...

AX

AH

AL

EBX

...

BX

BH

BL

ECX

...

CX

CH

CL

EDX

...

DX

DH

DL

ESI

...

SI

EDI

...

DI

EBP

...

BP

ESP

...

SP

EIP

...

IP

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

Ещё можно использовать регистры в качестве базы, т.е. хранилища адреса оперативной памяти. В качестве регистров базы можно использовать любые регистры, но желательно использовать регистры EBX, ESI, EDI или EBP. В этом случае размер машинной команды обычно бывает меньше.

Регистр EIP (указатель команд) содержит смещение следующей подлежащей выполнению команды. Этот регистр непосредственно недоступен программисту.

Флаг – это бит, принимающий значение 1 («флаг установлен»), если выполнено некоторое условие, и значение 0 («флаг сброшен») в противном случае. Процессор имеет регистр флагов, содержащий набор флагов, отражающий текущее состояние процессора.

·               ZF - признак нуля результата ( ZF = 1, если все разряды результата равны 0);

·               SF - знак результата ( SF = 1, если результат отрицательный);

·               OF - признак переполнения ( OF = 1, если при выполнении арифметических операций над числами со знаком происходит переполнение разрядной сетки);

·               CF - флаг переноса ( CF = 1, если выполнение операции сложения приводит к переносу за пределы разрядной сетки), устанавливается также в некоторых других операциях;

 

1.1.4. Состояние производства и использование МПС

Технически современный микропроцессор выполнен в виде одной сверхбольшой интегральной схемы, состоящей из нескольких миллиардов элементов — это одна из самых сложных конструкций, созданных человеком. Ключевыми элементами любого микропроцессора являются дискретные переключатели – транзисторы. Блокируя и пропуская электрический ток (включение-выключение), они дают возможность логическим схемам компьютера работать в двух состояниях, то есть в двоичной системе. Размеры транзисторов измеряются в нанометрах. Один нанометр (нм) – это одна миллиардная (10−9) часть метра.

На срезе одного человеческого волоса можно разместить более 2000 транзисторных затворов, выполненных по 45-нм производственной технологии. Если говорить о нанотехнологиях более предметно, то в 2008 году более 227 миллиардов долларов выпущенных полупроводниковых чипов составили почти весь «нано»-рынок, в то время как магнитные диски, оптоэлектроника и т.д. до сих пор составляет не более 15%.

Основную часть работы при создании процессоров делают вовсе не люди, а роботизированные механизмы – именно они туда-сюда таскают кремниевые пластины. Цикл производства каждой пластины может доходить до 2-3 месяцев.

Пластины действительно делаются из песка – по распространённости в земной коре кремний занимает второе место после кислорода. Путем химических реакций оксид кремния (SiO2) тщательно очищают, делая из «грязного» чистый. Для микроэлектроники нужен монокристалличский кремний – его получают из расплава. Все начинается с небольшого кристалла (который и опускают в расплав) – позже он превращается в специальный монокристаллический «буль» ростом с человека. Далее убираются основные дефекты и специальными нитями (с алмазным порошком) буль нарезается на диски – каждый диск тщательно обрабатывается до абсолютно ровной и гладкой (на атомарном уровне) поверхности. Толщина каждой пластины около 1мм – исключительно для того, чтобы она не ломалась и не прогибалась, то есть, чтобы с ней было можно комфортно работать.

Диаметр каждой пластины составляет ровно 300мм – чуть позже на этой площади «вырастут» сотни, а то и тысячи процессоров. К слову, компании Intel, Samsung, Toshiba и TSMC уже сообщили о том, что занимаются разработкой оборудования, способного работать с 450мм-пластинами (на большей площади поместится больше процессоров, а значит и цена каждого будет ниже) – переход на них планируется уже к 2012 году.
Вот изображение поперечного сечения процессора:

image

 

Сверху находится защитная металлическая крышка, которая помимо защитной функции, так же выполняет роль теплораспределителя – именно ее мы обильно мажем термопастой, когда устанавливаем кулер. Под теплораспределителем находится тот самый кусочек кремния, который выполняет все пользовательские задачи. Еще ниже – специальная подложка, которая нужна для разводки контактов (и увеличения площади «ножек»), чтобы процессор можно было установить в сокет материнской платы.

Сам чип состоит из кремния, на котором находится до 9 слоев металлизации (из меди) – именно столько уровней нужно, чтобы по определенному закону можно было соединить транзисторы, находящиеся на поверхности кремния (так как сделать все это на одном уровне просто невозможно). По сути, эти слои выполняют роль соединительных проводов, только в гораздо меньшем масштабе; чтобы «провода» не закорачивали друг друга, их разделяют слоем оксида (с низкой диэлектрической проницаемостью).
image

Как я уже писал выше, элементарной ячейкой процессора является полевой транзистор. Первые полупроводниковые изделия были из германия и первые транзисторы изготавливались из него же. Но как только начали делать полевые транзисторы (под затвором которого находится специальный изолирующий слой — тонкая диэлектрическая пленка, управляющая «включением» и «выключением» транзистора), германий тут же «вымер», уступив дорогу кремнию. Последние 40 лет в качестве основного материала для диэлектрика затвора использовался диоксид кремния (SiO2), что было обусловлено его технологичностью и возможностью систематического улучшения характеристик транзисторов по мере уменьшения их размеров.

Правило масштабирования простое – уменьшая размеры транзистора, толщина диэлектрика должна уменьшаться пропорционально. Так, например, в чипах с техпроцессом в 65нм толщина слоя диэлектрика затвора из SiO2 составляла порядка 1.2 нм, что эквивалентно пяти атомарным слоям. Фактически, это физический предел для данного материала, поскольку в результате дальнейшего уменьшения самого транзистора (а значит и уменьшения слоя диоксида кремния), ток утечки через диэлектрик затвора значительно возрастает, что приводит к существенным потерям тока и избыточному тепловыделению.

Процесс миниатюризации транзисторов не пошел вопреки законам физики, но и компьютерный прогресс, как мы видим, не остановился. Это значит, что проблему с диэлектриком каким-то образом решили. При переходе на 45нм компания Intel стала использовать новый материал, так называемый high-k диэлектрик, который заменил бесперспективно тонкий слой диоксида кремния. Слой на базе окиси редкоземельного металла гафния с высоким (20 против 4 у SiO2) показателем диэлектрической проницаемости k (high-k) стал более толстым, но это позволило сократить ток утечки более чем в десять раз, сохранив при этом возможность корректно и стабильно управлять работой транзистора. Новый диэлектрик оказался плохо совместим с затвором из поликремния, но и это не стало препятствием — для повышения быстродействия затвор в новых транзисторах был выполнен из металла.

image
   Га́фний (лат. Hafnium, Hf) — тяжёлый тугоплавкий серебристо-белый металл, 72 элемент периодической системы, открыт в 1923 году. В мире в год в среднем добывается около 70 тонн гафния. Несмотря на то, что металл является редкоземельным и добывается его относительно немного, повода для беспокойства нет. Во-первых, используется оксид, во-вторых, толщина оксидной плёнки со временем будет только уменьшаться. Ну и в третьих – если взять один кубический сантиметр гафния и распределить его по поверхности слоем такой толщины, которая используется в чипах, то пленкой из гафния будет покрыта площадь, равная 10 футбольным полям.

 

ТЕМА 1.2. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ МПС

 

1.2.1. Система команд

В общем случае система команд процессора включает в себя следующие четыре основные группы команд:

·                             команды пересылки данных;

·                             арифметические команды ;

·                             логические команды ;

·                             команды переходов.

Команды пересылки данных не требуют выполнения никаких операций над операндами. Операнды просто пересылаются (точнее, копируются) из источника (Source) в приемник (Destination). Источником и приемником могут быть внутренние регистры процессора, ячейки памяти или устройства ввода/вывода. АЛУ в данном случае не используется.

Арифметические команды выполняют операции сложения, вычитания, умножения, деления, увеличения на единицу (инкрементирования), уменьшения на единицу (декрементирования) и т.д. Этим командам требуется один или два входных операнда. Формируют команды один выходной операнд.

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

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

В соответствии с результатом каждой выполненной команды устанавливаются или очищаются биты регистра состояния процессора ( PSW ). Но надо помнить, что не все команды изменяют все имеющиеся в PSW флаги. Это определяется особенностями каждого конкретного процессора.

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

процессора МС68000 всего 61 команда, а у процессора 8086 — 133 команды. У современных мощных процессоров количество команд достигает нескольких сотен. В то же время существуют процессоры с сокращенным набором команд (так называемые RISC-процессоры), в которых за счет максимального сокращения количества команд достигается увеличение эффективности и скорости их выполнения.

Рассмотрим теперь особенности четырех выделенных групп команд процессора более подробно.

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

·                             загрузка (запись) содержимого во внутренние регистры процессора;

·                             сохранение в памяти содержимого внутренних регистров процессора;

·                             копирование содержимого из одной области памяти в другую;

·                             запись в устройства ввода/вывода и чтение из устройств ввода/вывода.

В некоторых процессорах (например, Т-11) все эти функции выполняются одной единственной командой MOV (для байтовых пересылок — MOVB ) но с различными методами адресации операндов.

В других процессорах помимо команды MOV имеется еще несколько команд для выполнения перечисленных функций. Например, для загрузки регистров могут использоваться команды загрузки, причем для разных регистров — разные команды (их обозначения обычно строятся с использованием слова LOAD — загрузка). Часто выделяются специальные команды для сохранения в стеке и для извлечения из стека ( PUSH — сохранить в стеке, POP — извлечь из стека). Эти команды выполняют пересылку с автоинкрементной и с автодекрементной адресацией (даже если эти режимы адресации не предусмотрены в процессоре в явном виде).

Арифметические команды рассматривают коды операндов как числовые двоичные или двоично-десятичные коды. Эти команды могут быть разделены на пять основных групп:

ü  команды операций с фиксированной запятой (сложение, вычитание, умножение, деление);

ü  команды операций с плавающей запятой (сложение, вычитание, умножение, деление);

ü  команды очистки;

ü  команды инкремента и декремента;

ü  команда сравнения.

Команды операций с фиксированной запятой работают с кодами в регистрах процессора или в памяти как с обычными двоичными кодами. Команда сложения ( ADD ) вычисляет сумму двух кодов. Команда вычитания ( SUB ) вычисляет разность двух кодов. Команда умножения ( MUL ) вычисляет произведение двух кодов (разрядность результата вдвое больше разрядности сомножителей). Команда деления ( DIV ) вычисляет частное от деления одного кода на другой. Причем все эти команды могут работать как с числами со знаком, так и с числами без знака.

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

Команды очистки ( CLR ) предназначены для записи нулевого кода в регистр или ячейку памяти. Эти команды могут быть заменены командами пересылки нулевого кода, но специальные команды очистки обычно выполняются быстрее, чем команды пересылки. Команды очистки иногда относят к группе логических команд, но суть их от этого не меняется.

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

Логические команды выполняют над операндами логические (побитовые) операции, то есть они рассматривают коды операндов не как единое число, а как набор отдельных битов. Этим они отличаются от арифметических команд. Логические команды выполняют следующие основные операции:

ü  логическое И, логическое ИЛИ, сложение по модулю 2 (Исключающее ИЛИ);

ü  логические, арифметические и циклические сдвиги;

ü  проверка битов и операндов;

ü  установка и очистка битов (флагов) регистра состояния процессора ( PSW ).

Команды логических операций позволяют побитно вычислять основные логические функции от двух входных операндов. Кроме того, операция И ( AND ) используется для принудительной очистки заданных битов (в качестве одного из операндов при этом используется код маски, в котором разряды, требующие очистки, установлены в нуль). Операция ИЛИ ( OR ) применяется для принудительной установки заданных битов (в качестве одного из операндов при этом используется код маски, в котором разряды, требующие установки в единицу, равны единице). Операция "Исключающее ИЛИ" ( XOR ) используется для инверсии заданных битов (в качестве одного из операндов при этом применяется код маски, в котором биты, подлежащие инверсии, установлены в единицу). Команды требуют двух входных операндов и формируют один выходной операнд.

Команды сдвигов позволяют побитно сдвигать код операнда вправо (в сторону младших разрядов) или влево (в сторону старших разрядов). Тип сдвига (логический, арифметический или циклический) определяет, каково будет новое значение старшего бита (при сдвиге вправо) или младшего бита (при сдвиге влево), а также определяет, будет ли где-то сохранено прежнее значение старшего бита (при сдвиге влево) или младшего бита (при сдвиге вправо). Например, при логическом сдвиге вправо в старшем разряде кода операнда устанавливается нуль, а младший разряд записывается в качестве флага переноса в регистр состояния процессора. А при арифметическом сдвиге вправо значение старшего разряда сохраняется прежним (нулем или единицей), младший разряд также записывается в качестве флага переноса.

 

1.2.2. Способы адресации данных

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

Непосредственная адресация предполагает, что операнд (входной) находится в памяти непосредственно за кодом команды.

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

Прямая (она же абсолютная) адресация предполагает, что операнд (входной или выходной) находится в памяти по адресу, код которого находится внутри программы сразу же за кодом команды. Например, команда может состоять в том, чтобы очистить (сделать нулевым) содержимое ячейки памяти с адресом 1000000. Код этого адреса 1000000 будет располагаться в памяти, внутри программы в следующем адресе за кодом данной команды очистки.

  

http://arxitektura-pk.26320-004georg.edusite.ru/images/pryamayaadresaciya.jpg 

 

 

  

 

Регистровая адресация предполагает, что операнд (входной или выходной) находится во внутреннем регистре процессора.

  

http://arxitektura-pk.26320-004georg.edusite.ru/images/registrovayaadresaciya.jpg 

 

 

  

 

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

Косвенно-регистровая (она же косвенная) адресация предполагает, что во внутреннем регистре процессора находится не сам операнд, а его адрес в памяти.

  

http://arxitektura-pk.26320-004georg.edusite.ru/images/image007.gif

 

 

 

 

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

Реже встречаются еще два метода адресации.

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

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

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

 

1.2.3. Применение ветвлений, циклов

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

Команды переходов без возврата делятся на две группы:

ü  команды безусловных переходов;

ü  команды условных переходов.

В обозначениях этих команд используются слова Branch ( ветвление ) и Jump (прыжок).

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

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

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

ü  переход, если равно нулю;

ü  переход, если не равно нулю;

ü  переход, если есть переполнение;

ü  переход, если нет переполнения;

ü  переход, если больше нуля;

ü  переход, если меньше или равно нулю.

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

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

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

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

Реализация разветвления на две ветки.


Реализация разветвления на три ветки.



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

Для обратного возврата в точку вызова подпрограммы (точку перехода) используется специальная команда возврата ( RET или RTS ). Эта команда извлекает из стека значение адреса команды перехода и записывает его в регистр-счетчик команд.

Особое место среди команд перехода с возвратом занимают команды прерываний (распространенное название — INT ). Эти команды в качестве входного операнда требуют номер прерывания (адрес вектора). Обслуживание таких переходов осуществляется точно так же, как и аппаратных прерываний. То есть для выполнения данного перехода процессор обращается к таблице векторов прерываний и получает из нее по номеру прерывания адрес памяти, в который ему необходимо перейти. Адрес вызова прерывания и содержимое регистра состояния процессора (PSW) сохраняются в стеке. Сохранение PSW — важное отличие команд прерывания от команд переходов с возвратом.

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

Для возврата из подпрограммы, вызванной командой прерывания, используется команда возврата из прерывания (IRET или RTI). Эта команда извлекает из стека сохраненное там значение счетчика команд и регистра состояния процессора ( PSW ).

Отметим, что у некоторых процессоров предусмотрены также команды условных прерываний, например, команда прерывания при переполнении.

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

 

 

 

 

1.2.4. Использование стека

Стеком называется структура данных, организованная по принципу LIFO («Last In — First Out» или «последним пришёл — первым ушёл»). Стек является неотъемлемой частью архитектуры процессора и поддерживается на аппаратном уровне: в процессоре есть специальные регистры (SS, BP, SP) и команды для работы со стеком.

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

Схема организации стека в процессоре 8086 показана на рисунке:

http://asmworld.ru/content/course/020/img00.png

Стек располагается в оперативной памяти в сегменте стека, и поэтому адресуется относительно сегментного регистра SS. Шириной стека называется размер элементов, которые можно помещать в него или извлекать. В нашем случае ширина стека равна двум байтам или 16 битам. Регистр SP (указатель стека) содержит адрес последнего добавленного элемента. Этот адрес также называется вершиной стека. Противоположный конец стека называется дном

Дно стека находится в верхних адресах памяти. При добавлении новых элементов в стек значение регистра SP уменьшается, то есть стек растёт в сторону младших адресов. Как вы помните, для COM-программ данные, код и стек находятся в одном и том же сегменте, поэтому если постараться, стек может разрастись и затереть часть данных и кода (надеюсь, с вами такой беды не случится :)).

Для стека существуют всего две основные операции:

         добавление элемента на вершину стека (PUSH);

         извлечение элемента с вершины стека (POP);

Добавление элемента в стек

Выполняется командой PUSH. У этой команды один операнд, который может быть непосредственным значением, 16-битным регистром (в том числе сегментым) или 16-битной переменной в памяти. Команда работает следующим образом:

  1. значение в регистре SP уменьшается на 2 (так как ширина стека — 16 бит или 2 байта);
  2. операнд помещается в память по адресу в SP.

http://asmworld.ru/content/course/020/img01.png

Примеры:

push -5           ;Поместить -5 в стек

pushax;Поместить AX в стек

pushds;Поместить DS в стек

push [x]          ;Поместить x в стек (x объявлен как слово)

pushword [bx]    ;Поместить в стек слово по адресу в BX

Существуют ещё 2 команды для добавления в стек. Команда PUSHF помещает в стек содержимое регистра флагов. Команда PUSHA помещает в стек содержимое всех регистров общего назначения в следующем порядке: АХ, СХ, DX, ВХ, SP, BP, SI, DI (значение DI будет на вершине стека). Значение SP помещается то, которое было до выполнения команды. Обе эти команды не имеют операндов.

Извлечение элемента из стека

Выполняется командой POP. У этой команды также один операнд, который может быть 16-битным регистром (в том числе сегментым, но кроме CS) или 16-битной переменной в памяти. Команда работает следующим образом:

  1. операнд читается из памяти по адресу в SP;
  2. значение в регистре SP увеличивается на 2.

Обратите внимание, что извлеченный из стека элемент не обнуляется и не затирается в памяти, а просто остаётся как мусор. Он будет перезаписан при помещении нового значения в стек.

http://asmworld.ru/content/course/020/img02.png

Примеры:

popcx;Поместить значение из стека в CX

popes;Поместить значение из стека в ES

pop [x]           ;Поместить значение из стека в переменную x

popword [di]     ;Поместить значение из стека в слово по адресу в DI

Соответственно, есть ещё 2 команды. POPF помещает значение с вершины стека в регистр флагов. POPA восстанавливает из стека все регистры общего назначения (но при этом значение для SP игнорируется).

 

ТЕМА 1.3.  МИКРОКОНТРОЛЛЕРЫ И МИКРОКОНТРОЛЛЕРНЫЕ СИСТЕМЫ

 

1.3.1. Структура типовой системы управления

Микроконтроллер – это такая микросхема, которая представляет собой мини-компьютер, предназначенный для выполнения различных функций. Данная микросхема работает в соответствии с заложенной в нее программой, которую создает программист. Микроконтроллер может в себе содержать различное количество так называемых периферийных модулей, которые определяю его возможности, а также стоимость. К периферии микроконтроллера относятся, например: АЦП (аналого-цифровой преобразователь), различные таймеры, аналоговый компаратор, UART (по простому говоря COM-порт), USB, CANи т.д. Но, как правило, любой микроконтроллер содержит следующие основные узлы:

ü  Арифметико-логическое устройство (АЛУ или ALU);

ü  Оперативная память (ОЗУ);

ü  Постоянная память (ПЗУ);

ü  Генератор тактовой частоты;

ü  Порты ввода/вывода;

ü  Таймеры;

Вот так выглядит упрощенная структурная схема микроконтроллера:

http://hamlab.net/uploads/images/mcu/image147.gif

 Сердцем микроконтроллера является арифметико-логическое устройство (АЛУ). АЛУ производит все арифметические и логические операции с двоичными данными. Бывают АЛУ различной разрядности: 8-, 16- или 32-разрядные. Например, если АЛУ 8-разрядное, то оно может провести операцию над двумя восьмиразрядными числами и выдать восьмиразрядный результат операции.

К арифметическим операциям относятся: сложение, вычитание, сравнение и т.д.

К логическим операциям относятся: операция умножения «И», сложения «ИЛИ», отрицания «НЕ», «исключающее ИЛИ», сдвиг вправо, сдвиг влево и т.д. Есть также операции, которые не относятся ни к логическим, ни к арифметическим, например сброс в «0» или установка в «1».

Как было сказано выше, АЛУ производит операции над числами и возвращает результат операции в виде числа. Данные числа помещаются в регистры общего назначения – своеобразную временную память. У каждого микроконтроллера количество регистров может быть разным. На структурной схеме приведен пример контроллера, у которого 32 регистра общего назначения.

Однако, для нормальной работы микроконтроллера регистров общего назначения недостаточно, т.к., например, 32 байта – очень маленький объем памяти. Для того, чтобы можно было хранить больше информации, используется оперативно-запоминающее устройство (ОЗУ). Регистры общего назначения содержат данные, с которыми АЛУ работает в данный момент, а ОЗУ – остальные.

Команды, а точнее последовательность команд, которые выполняет АЛУ, хранятся в постоянно-запоминающем устройстве (ПЗУ). Обычно это Flash-память. Данная последовательность команд является ничем иным, как программой микроконтроллера, которую создает программист. Все команды находятся в ПЗУ по определенным адресам.

Для того, чтобы достать какую-то команду из ПЗУ, необходимо обратиться к ее адресу, чем занимается программный счетчик или счетчик команд.

Данные из ПЗУ попадают в регистр команд. АЛУ постоянно «смотрит» содержимое регистра команд и если в нем появляется команда, то АЛУ сразу же начинает ее выполнять.

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

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

Так же, как и в любой микропроцессорной системе, набор команд процессора МК включает в себя четыре основные группы команд:

ü  команды пересылки данных;

ü  арифметические команды ;

ü  логические команды ;

ü  команды переходов.

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

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

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

Схема синхронизации МК обеспечивает формирование сигналов синхронизации, необходимых для выполнения командных циклов центрального процессора, а также обмена информацией по внутренней магистрали. В зависимости от исполнения центрального процессора командный цикл может включать в себя от одного до нескольких (4 — 6) тактов синхронизации. Схема синхронизации формирует также метки времени, необходимые для работы таймеров МК. Память программ и данных МК

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

 

В настоящее время выпускается целый ряд типов МК. Все эти приборы можно условно разделить на три основных класса:

ü  8-разрядные МК для встраиваемых приложений;

ü  16- и 32-разрядные МК ;

ü  цифровые сигнальные процессоры (DSP).

 

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

Росту популярности 8-разрядных МК способствует постоянное расширение номенклатуры изделий, выпускаемых такими известными фирмами, как Motorola, Microchip, Intel, Zilog, Atmel и многими другими. Современные 8-разрядные МК обладают, как правило, рядом отличительных признаков.

Перечислим основные из них:

ü  модульная организация, при которой на базе одного процессорного ядра (центрального процессора) проектируется ряд (линейка) МК, различающихся объемом и типом памяти программ, объемом памяти данных, набором периферийных модулей, частотой синхронизации;

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

ü  использование типовых функциональных периферийных модулей (таймеры, процессоры событий, контроллеры последовательных интерфейсов, аналого-цифровые преобразователи и др.), имеющих незначительные отличия в алгоритмах работы в МК различных производителей;

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

 

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

Процессорное ядро включает в себя:

ü  центральный процессор;

ü  внутреннюю контроллерную магистраль (ВКМ) в составе шин адреса, данных и управления;

ü  схему синхронизации МК ;

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

Изменяемый функциональный блок включает в себя модули памяти различного типа и объема, порты ввода/вывода, модули тактовых генераторов (Г), таймеры. В относительно простых МКмодуль обработки прерываний входит в состав процессорного ядра. В более сложных МК он представляет собой отдельный модуль с развитыми возможностями. В состав изменяемого функционального блока могут входить и такие дополнительные модули как компараторы напряжения, аналого-цифровые преобразователи (АЦП) и другие. Каждый модуль проектируется для работы в составе МК с учетом протокола ВКМ. Данный подход позволяет создавать разнообразные по структуре МК в пределах одного семейства.

Модульная организация МК.


1.3.2. Таймер

В микроконтроллерах может быть до 4х таймеров/счетчиков (ТС). Разрядность этих таймеров 8 или 16 бит (т.е. они могут считать до 28=256 или до 216=65536). Обычно их используют для точного формирования временных интервалов, подсчета импульсов на выводах микроконтроллера, формирования последовательности импульсов. Таймеры способны вырабатывать запросы на прерывания, при  этом освобождая процессор от необходимости опроса состояния таймеров. В данной статье мы разберем работу таймеров и прерываний, которые они могут вырабатывать, на примере 16-ти битного таймера/счетчика1 (TС1) микроконтроллера ATmega8. Всего у этого МК три таймера - два 8ми битных (TС0, TС2) и один 16 битный (TС1). Взглянем на таблицу векторов прерываний МК mega8 - 7 прерываний связаны с таймерами микроконтроллера, из них 4 связаны с таймером/счетчиком1 (TС1). Давайте разберемся, что же может этот таймер, какие регистры им управляют и что в них нужно записать, чтобы настроить таймер как нам нужно. Для начала рассмотрим все регистры ТС1 и за что какой бит отвечает, а потом рассмотрим какие-нибудь простые примеры по настройке таймера. Начнем с регистров управления таймером.

 

TCCR1A - регистр управления A

http://samou4ka.net/uploads/images/avr/tccr1a.gif

Биты 7:6 - COM1A 1:0: контролируют поведение выхода OC1A (см. Таблицу 1).

Биты 5:4 - COM1B 1:0: контролируют поведение выхода OC1B (см. Таблицу 1).

http://samou4ka.net/uploads/images/avr/timer_table1.png

Биты 3:2 - FOC1A, FOC1B: служат для принудительного изменения состояния выходов OC1A и OC1B.

Биты 1:0 - WGM11, WGM10: служат для настройки ТС1 для работы в качестве широтно-импульсного модулятора (ШИМ). В режиме ШИМ состояние выходов OC1A и OC1B будет отличаться. В этой статье не буду ничего писать про режим ШИМа, а то будет куча информации, которую трудно переварить. Что такое ШИМ опишу как-нибудь в другой раз.


 

 

TCCR1B - регистр управления В

http://samou4ka.net/uploads/images/avr/tccr1b.gif

Бит 7 - ICNC1: подавление дребезга на входе ICP1. Если бит установлен, то определение события на входе ICP1 происходит с задержкой в 4 машинных цикла (см. дальше по тексту).

Бит 6 - ICES1: выбор фронта срабатывания прерывания по захвату. Если установлен - на растущем фронте, если сброшен - на падающем фронте.

Бит 5 - не используется

Биты 4:3 - WGM1 3:2: для настройки ШИМа.

Биты 2:0 - CS1 2:0: выбор тактирования ТС1 (Таблица 2).

http://samou4ka.net/uploads/images/avr/timer_table2.png


Ну, настроили мы таймер и что? А дальше с частотой, которую мы выбрали в регистре TCCR1B счетчик таймера начинает считать и записывать значение счетчика в регистры TCNT1H и TCNT1L - старший и младший байт счетного регистра. При достижении TCNT1 значения 216 счетчик переполняется и сбрасывается, и начинает счет заново. В этот регистр мы также можем записать какое-нибудь значение, с которого мы хотим, чтобы наш счетчик стартовал. Для 16-битной операции записи, старший байт должен быть записан первым. Младший - вторым. Для операции 16-битного чтения, младший байт должен быть прочитан первым, а содержимое старшего байта считывается вторым. Если мы настроили изменение состояния входа OC1A или OC1B, тогда значение счетного регистра сравнивается каждый раз со значением регистров OCR1A и OCR1B - регистры сравнения. Каждый из этих регистров состоит из двух байт (например, OCR1AH и OCR1AL). Мы можем записать в эти регистры нужное нам значение и по совпадению значения регистра счетчика с регистром сравнения будет происходить нужное нам изменение на выходах OC1A и OC1B. Также есть регистр захвата входа - ICR1 (ICR1H и ICR1L). Значение TCNT1 в этот регистр записывается при наступлении события на входе ICP1.

Счет и изменение состояния ножек МК это уже хорошо, но также этот таймер может при определенных событиях генерить прерывания. Как мы уже видели из таблицы векторов прерываний у ТС1 есть 4 вектора прерывания - прерывание по захвату, прерывание по совпадению А, прерывание по совпадению В, прерывание по переполнению (указаны в порядке уменьшения приоритета). Рассмотрим регистры, настраивая которые можно управлять прерываниями ТС1.


TIMSK - регистр маски прерываний таймеров/счетчиков

http://samou4ka.net/uploads/images/avr/timsk.png

Бит 7 - OCIE2: прерывание по совпадению ТС2

Бит 6 - TOIE2: прерывание по переполнению ТС2

Бит 5 - TICIE1: прерывание по захвату ТС1

Бит 4 - OCIE1A: прерывание по совпадению A ТС1

Бит 3 - OCIE1B: прерывание по совпадению В ТС1

Бит 2 - TOIE1: прерывание по переполнению ТС1

Бит 1 - не используется

Бит 0 - TOIE0: прерывание по переполнению ТС0

Если соответствующий бит установлен в "1" и бит I (7-й бит) регистра состояний  SREG установлен в "1", тогда соответствующее прерывание будет срабатывать.


TIFR - регистр флагов прерываний таймеров/счетчиков

 

http://samou4ka.net/uploads/images/avr/tifr.png

Флаги соответствуют прерываниям в регистре TIMSK. Устанавливаются в "1" при выполнении условий соответствующего прерывания.

Вот и вся теория связанная с ТС1. Остальные таймеры настраиваются аналогичным образом. Теперь мы можем обобщить и записать какими возможностями обладает этот таймер:

  • Счетчик 16-ти битный (16 битный ШИМ)
  • Два независимых выхода, срабатывающих по совпадению
  • Один вход по захвату события (растущий или падающий фронт)  и подавление дребезга на этом входе
  • Тактирование от встроенного тактового генератора или внешний источник тактирования таймера (T1)
  • 4 независимых прерывания

Есть и другие возможности, но о них не в этот раз. На рисунке отметил ножки связанные с таймерами/счетчиками МК.

http://samou4ka.net/uploads/images/avr/pdip_timer.png

 

1.3.3. Контроллер прерываний

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

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

Так и в компьютерной системе, возможна такая ситуация, когда несколько переферийных устройств послали сигнал прерывания или запрос на прерывание. В компьютерной литературе этот сигнал обозначается IRQ(Interrupt Request).

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

 

Вот эти устройства:

IRQ 0, системный таймер;

IRQ 1, клавиатура;

IRQ 2, исползуется для запросов устройств, подключенных каскадом;

IRQ 8, часы реального времени;

IRQ 9, зарезервировано;

IRQ 10, зарезервировано;

IRQ 11, зарезервировано;

IRQ 12, ps/2‐мышь;

IRQ 13, сопроцессор;

IRQ 14, контроллер «жёсткого» диска;

IRQ 15, зарезервировано;

IRQ 3, портыCOM2,COM4;

IRQ 4, портыCOM1,COM3;

IRQ 5, порт LPT2;

IRQ 6, контроллер дисковода;

IRQ 7, порт LPT1,принтер;

 

Здесь сигналы приведены в порядке убывания приоритетов. Можно заметить, что после IRQ 2, следует IRQ 8. Дело в том, что в своё время контроллер прерываний состоял из двух микросхем, одна была подключена к другой. Вот эта вторая микросхема и подключается к линии IRQ 2, образуя каскад. Она обслуживает линии IRQ8‐IRQ 15. А затем следуют линии первой микросхемы.

Работу контроллера прерывания мы рассмотрим на основе микросхем фирмы Intel 8259A, которые применялись в теперь уже очень старых компьютерах с процессорами до 386 серии. В этих компьютерах обычно было 2 микросхемы 8259A, подключенных каскадно, то‐есть одна к другой. Одна из микросхем, подключенная по линии запроса на прерывание непосредственно к процессору является ведущей или мастером. Остальные, подключаются к

контроллер прерываний

ведущей через аналогичные выводы, называются ведомыми.

На рисунке изображена схема подключения контроллеров прерываний и их взаимодействие с центральным процессором. Сигналы на прерывание от переферийных устройств или ведомых контроллеров поступают на входы IR0‐IR7 ведущего контроллера. Внутренняя логика ведущего контроллера обрабатывает поступившие запросы с точки зрения приоритета. Если приоритет запроса устройства достаточен, то на выходе INT контроллера вырабатывается сигнал, поступающий на вход INTR процессора. В противном случае, запрос блокируется.

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

Разрешение на прерывание процессор передаёт контроллеру прерываний через контроллер шины. Сигнал RD предназначен для того, чтобы контроллер прерываний поместил на шину данных содержимое внутренних регистров. По сигналу WR контроллер прерываний, наоборот, принимает данные с одноимённой шины и записывает их во внутренние регистры. Соответственно, это влияет на режим работы контроллера прерываний.

Вход CS подключается к шине адреса и по этому сигналу происходит идентификация конкретного контролллера прерываний. Вход A0 указывает на порт контроллера прерываний в пространстве ввода-вывода. Входы IR0‐IR7 предназначены для приёма запросов на прерывание от переферийных устройств и ведомых контроллеров. Выходы CAS0‐CAS2 предназначены для идентификации конкретного ведомого контроллера.

Мы рассмотрели устройство функции работу контроллера прерываний. Полностью вопрос работы контроллера прерываний в данной статье рассматривать не будем. Но добавить можно следующее. Данный контроллер прерываний появился ещё в первых PC-совместимых компьютерах. С тех пор, и процессоры, и сам компьютер во многом изменились, хотя некоторые моменты остались. Поэтому, для того, чтобы было понятней и была рассмотрена организация контроллера прерываний 8295A.

На приведенной выше схеме показаны сигналов приходящие не только на ведомый и ведущий контроллеры прерываний, но и на остальные ведомые. Однако на вашем компьютере или ноутбуке на самом деле 2 контроллера прерываний, как выше указывалось: ведущий и ведомый. Но можно создавать свои компьютерные системы, используя таким образом до 64 ведомых контроллеров прерываний.

В современных компьютерах уже давно функции контроллера прерываний выполняют не микросхемы 8259A, а «южный» мост. Однако, для всех программ и устройств всё остаётся по-прежнему. Более того, контроллер прерываний можно программировать, и обращаться к внутренним регистрам и портам необходимо точно также, как и к контроллеру 8259A.

 

1.3.4. Контроллер ПДП

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

Обмен данными между процессором и устройствами ввода-вывода осуществляется по системной шине, "хозяином" которой является процессор. При использовании контроллера DMA на время обмена данными он должен получить управление системной шиной, т.е. стать ее "хозяином". По окончании обмена подсистема DMA возвращает процессору право управления шиной.

Архитектура компьютера PC AT включает в себя подсистему DMA, состоящую из двух контроллеров DMA Intel 8237, регистра старшего адреса DMA и регистров страниц DMA. Эти контроллеры обеспечивают 7 каналов DMA.

Система обеспечивает передачу данных по каналам DMA как по одному байту за цикл DMA, так и по два байта за цикл, исходя из возможностей архитектуры процессора (двухбайтной шины данных). Чтобы сохранить преемственность подсистемы DMA в PC AT с аналогичной подсистемой в PC XT каскадирование "байтного" контроллера DMA с распределением каналов XT осуществляется через "словный" контроллер DMA.

Для осуществления прямого доступа к памяти контроллер должен выполнить ряд последовательных операций:

ü  принять запрос (DREQ) от устройства ввода-вывода;

ü  сформировать запрос (HRQ) в процессор на захват шины;

ü  принять сигнал (HLDA), подтверждающий захват шины;

ü  сформировать сигнал (DACK), сообщающий устройству о начале обмена данными;

ü  выдать адрес ячейки памяти, предназначенной для обмена;

ü  выработать сигналы (MEMR, IOW или MEMW, IOR), обеспечивающие управление обменом;

ü  по окончании цикла DMA либо повторить цикл DMA, изменив адрес, либо прекратить цикл.

 

Контроллеры DMA обеспечивают формирование только 16 младших разрядов адреса памяти. Причем старшая часть адреса (А15-А8 для DMA1 или А16-А9 для DMA2) во время цикла DMA по шине данных поступает в регистр старшего адреса DMA и далее на шину адреса, а младшая часть адреса (А7-А0 для DMA1 или А8-А1 для DMA2) выдается на шину адреса непосредственно из контроллера. Восемь старших разрядов адреса памяти содержатся в регистре страниц DMA. Разряд А16 из регистра страниц DMA запрещается, когда выбран DMA2. Разряд A0 не связан с DMA2 и всегда содержит нуль при передаче слова.

Это означает, что:

ü  размер блока данных, который может быть передан или адресован, измеряется не байтами (8 бит), а словами (16 бит);

ü  слова всегда должны быть расположены на четной границе.

Таким образом, контроллер DMA и регистр страниц определяют 24-разрядный адрес, что обеспечивает передачу данных в пределах адресного пространства 16 М байт.

Регистры страниц.

Регистр страниц вместе с контроллерами DMA он определяет полный (24-разрядный) адрес для каналов DMA.

Адреса портов регистров страниц:

Канал DMA

Адрес порта регистра страниц

0

087h

1

083h

2

081h

3

082h

4

-

5

08Вh

6

089h

7

08Ah

Регенерация

08Fh

* Содержимое регистра страниц в целях регенерации должно быть равно 00h.

 

Адресация портов.

В таблице приведены адреса портов - регистров адреса ОП и управления/состояния контроллеров DMA, а также форматы регистров:

Функции регистров

Формат

Адреса портов

Чтение/запись

DMA1

DMA2

Регистрсостояния (STAT)
Read Status Register)

8

008h

0D0h

Чтение

Регистркоманд (CR)
(Write Command Register)

Запись

Регистррежима (MOD)
(Write Mode Register)

6

00Bh

0D6h

Запись

Регистррежима (MOD)***
(Read Mode Register)

Чтение

Запись одиночных разрядов регистра маск
(Write Single Mask Register)

4

00Ah

0D4h

Запись

Регистркоманд (CR)***
(Read Command Register)

8

Чтение

Запись всех разрядов маски
(Write Mask Register)

4

00Fh

0DEh

Запись

Регистрмаски (MASK)***
(Read Mask Register)

Чтение

Программный регистр запросов (REQ)**
Write Request Register)

4

009h

0D2h

Запись

Регистрзапросов ***
(Read Request Register)

Чтение

Базовый и текущий регистры адреса - канал 0

16

000h

0C0h

Запись

Текущий регистр адреса канал 0

16

000h

0C0h

Чтение

Базовый и текущий регистры cчетчика - канал 0

16

001h

0C2h

Запись

Текущий регистр счетчика - канал 0

16

001h

0C2h

Чтение

Базовый и текущий регистры адреса - канал 1

16

002h

0C4h

Запись

Текущий регистр адреса - канал 1

16

002h

0C4h

Чтение

Базовый и текущий регистры cчетчика - канал 1

16

003h

0C6h

Запись

Текущий регистр счетчика - канал 1

16

003h

0C6h

Чтение

Базовый и текущий регистры адреса - канал 2

16

004h

0C8h

Запись

Текущий регистр адреса - канал 2

16

004h

0C8h

Чтение

Базовый и текущий регистры cчетчика - канал 2

16

005h

0CAh

Запись

Текущий регистр счетчика - канал 2

16

005h

0CAh

Чтение

Базовый и текущий регистры адреса - канал 3

16

006h

0CCh

Запись

Текущий регистр адреса - канал 3

16

006h

0CCh

Чтение

Базовый и текущий регистры cчетчика - канал 3

16

007h

0CEh

Запись

Текущий регистр счетчика - канал 3

16

007h

0CEh

Чтение

Временныйрегистрданных(TR)**
Read Temporary Register)¦

16

00Dh

0DAh

Чтение

Общий сброс
(Master Clear)

*

Запись

Сброс F/F(Clear Byte Pointer Flip-Flop)

*

00Ch

0D8h

Запись

Установка F/F ***
(Set Byte Pointer Flip-Flop)

Чтение

Сброс регистра маски
(Clear Mask Register)

*

00Eh

0DCh

Запись

Сброссчетчика MODE ***
(Clear Mode Counter)

Чтение

·         * Это не регистры, а непосредственные команды для контроллера DMA.

·         ** Эти регистры используются только в режиме ПАМЯТЬ-ПАМЯТЬ.

·         *** Эти регистры и команды контроллера DMA не реализованы в контроллере 8237А и в "Периферийном контроллере" STC62C008, но реализованы в большинстве современных комплектов процессорных БИС.

 

Режимы обслуживания.

В активном цикле обслуживание подсистемы DMA возможно в одном из четырех режимов. Окончание обслуживания распознается по переходу регистра счетчика слов из 0000Н в FFFFН. При этом возникает сигнал окончания счета (TC), который может вызвать автоинициализацию, если она запрограммирована, или маскирование канала при ее отсутствии.

Одновременно с TC вырабатывается выходной сигнал -EOP. Во время автоинициализации первоначальные значения регистров текущего адреса и счетчика восстанавливаются из соответствующих базовых регистров. После автоинициализации канал готов выполнять другое обслуживание подсистемы DMA без вмешательства CPU, как только обнаружится достоверный DREQ.

Режим одиночной передачи (Single Transfer Mode)

В этом режиме контроллер DMA выполняет только одну передачу. Адрес и счетчик слов будут изменяться при каждой передаче. DREQ должен быть активным, пока не активизируется соответствующий DACK. Если DREQ активен на протяжении одиночной передачи, HRQ переходит в неактивное состояние по выполнении одной передачи и освобождает шину системе. HRQ снова станет активным (при активном DREQ) и по получении нового HLDA будет выполняться следующий цикл одиночной передачи. Это гарантирует CPU в системе выполнение одного полного машинного цикла между передачами DMA.

Режим передачи блока (Blok Transfer Mode)

В этом режиме передается блок информации во время обслуживания подсистемы DMA. DREQ должен быть активным, пока не появиться активный DACK.

Режим передачи по требованию (Demand Transfer Mode)

В этом режиме передача данных выполняется до тех пор, пока не появится TC или внешний -EOP, либо когда DREQ станет неактивным. Таким образом, передачи могут продолжаться до тех пор, пока периферийное устройство не исчерпает объем данных.

Каскадный режим (Cascade Mode)

Этот режим использует объединение нескольких контроллеров DMA для расширения числа подключаемых каналов. Выходы HRQ и входы HLDA от дополнительных контроллеров соединяются соответственно со входами DREQ и выходами DACK первичного контроллера DMA . Это дает возможность запросам от дополнительного устройства распространяться через сеть приоритетных цепей предшествующего устройства.

Таким образом, канал первичного контроллера DMA, к которому подключен дополнительный контроллер, программируется на выполнение каскадного режима и служит только для определения приоритета дополнительного устройства и транзита сигналов HRQ в CPU и HLDA из CPU. Все другие сигналы каскадного канала первичного контроллера DMA в формировании циклов подсистемы DMA не участвуют.

Режим память-память

Этот режим предназначен для передачи блоков данных из одного адресного пространства памяти в другое с минимальными программными и временными затратами, но в PC AT не используется. В данном режиме могут работать только нулевой и 1-й каналы контроллера. Эта передача инициируется программной установкой REQ для канала 0. Адрес ячейки памяти-источника данных задают в CAR0, а ячейки-приемника - в CAR1. Байт данных, считанный из памяти, заносится во временный регистр (TR) и затем из TR считывается в ячейку-приемник. Когда значение счетчика слов канала 1 станет равным FFFFh, обслуживание заканчивается.

Типы передач.

Каждый из трех активных режимов предполагает выполнение трех различных передач. Это ЧТЕНИЕ, ЗАПИСЬ и ПРОВЕРКА. Передача ЧТЕНИЕ пересылает данные из памяти в периферийное устройство при активизации -MEMR и -IOW. Передача ЗАПИСЬ пересылает данные из периферийного устройства в память при активизации -MEMW и -IOR. ПРОВЕРКА - это псевдопередача.

Подсистема DMA осуществляет передачи ЧТЕНИЯ или ЗАПИСИ, генерируя адреса и реагируя на -EOP, но сигналы управления памятью и периферийными устройствами остаются не активными. Вход READY игнорируется в ПРОВЕРКЕ.

Приоритеты.

Подсистема DMA имеет два типа приоритета, которые можно установить программно. Первый из них - фиксированный приоритет, который фиксирует каналы в последовательности, соответствующей убыванию их номеров.

Низший приоритет имеет канал номер 3, а высший приоритет имеет канал 0.

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

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

http://elancev.narod.ru/texno/dma/dma_72.gif

 

ТЕМА 1.4. ТЕСТИРОВАНИЕ И ОТЛАДКА МПС

 

1.4.1. Методы тестирования МПС

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

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

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

Рассмотрим в первую очередь особенности МП БИС и микропроцессорной системы в целом как объекта контроля, которые затрудняют процедуру контроля и поиска неисправностей.

1.    Высокая сложность БИС. Полная проверка схемы должна обеспечивать проверку ее работоспособности при всех возможных состояниях.

Число возможных состояний определяется количеством внутренних элементов памяти. Взяв для примера только регистровую память однокристального микроконтроллера (32 регистра по 8 разрядов), получим 2256 состояний. Для полного их перебора с частотой 100 МГц потребуется время порядка 1067 лет! Очевидно, что такой вариант неприемлем и никогда на практике не реализуется. Следовательно, любая МП БИС может содержать неисправности. Самое неприятное в этой ситуации то, что эти неисправности носят характер сбоев, то есть проявляются только при определенном сочетании данных внутри БИС, и поэтому весьма трудно поддаются выявлению.

Самой известной ошибкой этого рода является, безусловно, ошибка в процессоре обработки чисел с плавающей точкой микропроцессора Pentium, выпущенного в 1993 году. Она проявлялась в неточном выполнении операции деления (погрешность в 8-м десятичном знаке после запятой) для некоторых операндов. Ошибка проявлялась, только если делитель содержал шесть последовательных бит, с 5-го по 10-й, установленныхв единицу. Она была вызвана дефектами в микрокоде реализации алгоритма деления. Вероятность обнаружения ошибки оценивалась как один к девяти миллионам, а вероятность встречи с ней - 1 раз в 27 000 лет. Однако несмотря на это, фирма Intel пошла на то, чтобы заменить по требованию все дефектные процессоры, понеся при этом, естественно, значительные убытки.

Аналогичная ошибка была выявлена в конце 2007 года в четырехъядерных серверных процессорах Barcelona, а также в чипах Phenom для настольных компьютеров компании AMD. Она была связана с особенностями реализации буфера быстрого преобразования адреса ( TLB ) кэш-памяти третьего уровня. Ошибка в отдельных ситуациях приводила к зависанию системы.

Иногда отдельные неисправности проявляют себя только на высоких частотах работы БИС. Поэтому некоторые производители схем, определив в ходе тестирования, что отдельные БИС из некоторой партии схем дают сбои на начальной, самой высокой частоте, проверяют ее работоспособность на более низких частотах, где схемы этой партии могут оказаться вполне работоспособными. Именно с указанием такой частоты работы эти БИС и поступают на рынок. Такой подход служит одной из основ "разгона" схем.

2.    Малое количество контрольных точек схем. Несмотря на то что корпуса современных микропроцессорных БИС имеют до 1,5 тыс. выводов, сложность микропроцессоров такова, что непосредственно подать тестовое воздействие на любую точку схемы невозможно. Также невозможно напрямую проверить состояние какого-либо узла БИС. Это требует подачи сложных последовательностей сигналов на доступные для воздействия точки схемы и синхронного анализа длинных последовательностей состояний в точках, доступных для прямого контроля. Поэтому воздействия и представления результатов носят косвенный, опосредованный характер, что может привести к неверной интерпретации получаемых при тестировании данных.

3.    Неразделимость аппаратуры и программного обеспечения. Аппаратура и программное обеспечение МПС представляют собой единый комплекс. Свои функции микропроцессорная система выполняет под воздействием программ, часть из которых к тому же хранится в постоянной памяти БИС и системы. Ошибки в работе системы могут быть обусловлены как неисправностями аппаратной части, так и ошибками, допущенными при разработке ПО.

4.    Сложность и неразделимость аппаратуры, составляющей микропроцессорную систему. МПС, особенно на этапе ее эксплуатации, невозможно разделить на функциональные узлы для их автономной проверки. Это объясняется конструктивными и схемотехническими особенностями микропроцессорных средств. Во-первых, чисто конструктивно подключить тестирующую аппаратуру к отдельным БИС, составляющим систему, весьма сложно. Во-вторых, разделение микропроцессорной системы на отдельные функциональные узлы при современном уровне интеграции элементов на кристалле невозможно. Сам микропроцессор содержит широкий набор функционально различных устройств от целочисленного АЛУ до запоминающих устройств различного вида и назначения. В то же время одни и те же функции распределяются по различным БИС. Например, обработкой прерываний занимается как сам микропроцессор, так и контроллер приоритетных прерываний, входящий в состав схем чипсета, которые, в свою очередь, выполняют множество других функций. Поэтому проверка выполнения той или иной функции в микропроцессорной системе затрагивает работу всех составляющих ее схем и предъявляет высокие требования к квалификации обслуживаемого персонала.

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

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

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

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

 

1.4.2. Логические анализаторы

Отладка современных микропроцессорных систем требует от инструментальных средств следующих возможностей:

ü  синхронный контроль состояния многоразрядных шин;

ü  регистрация последовательностей состояний в связи с редкими и однократными событиями;

ü  высокая частота работы.

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

Для этих целей разработаны специальные устройства - логические анализаторы (ЛА).

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

Основу логического анализатора составляет память логических последовательностей (ПЛП ). Тактовые сигналы записи в ПЛП могут вырабатываться внутренним генератором ЛА или поступать от контролируемой схемы. В последнем случае тактовые сигналы могут стробироваться другими внешними сигналами или их комбинацией. В случае заполнения всего объема ПЛП запись в нее продолжается циклически с нулевого адреса. Таким образом, в памяти всегда хранятся N последних принятых слов, где N - емкость ПЛП.

Структура памяти логических последовательностей

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

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

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

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

В настоящее время в связи со все возрастающей интеллектуализацией устройств сигнатурные анализаторы постепенно утрачивают свои позиции.

 

1.4.3. Программная среда AVR Studio

Фирма Atmel – разработчик микроконтроллеров AVR, позаботилась о сопровождении своей продукции. Для написания программ, их отладки, трансляции и прошивки в память микроконтроллера фирма разработала и бесплатно распространяет специализированный программный инструмент разработчика под названием «AVR Studio». Установочный пакет этой инструментальной программы можно скачать с сайта фирмы http://www.atmel.com. Программная среда «AVR Studio» — это современный программный продукт, позволяющий производить все этапы разработки программ для многих микроконтроллеров серии AVR. Пакет включает в себя специализированный текстовый редактор для написания программ, программный отладчик. Кроме того, «AVR Studio» позволяет управлять целым рядом подключаемых к компьютеру внешних устройств, позволяющих выполнять аппаратную отладку, а также программирование («прошивку») микросхем AVR. Программная среда «AVR Studio» работает не просто с программами, а с проектами. Проект в терминах AVR Studio – это совокупность файлов исходных текстов программ(ы) и служебных файлов AVR Studio. Исходные тексты разработчик создает сам, реализуя логику работы микроконтроллера в рамках поставленой задачи. Служебные файлы проекта создаются самим AVR Studio для хранения в них информации о проектных файлах и о настройках среды. Это текстовые файлы с расширениями aps и aws.  Для каждого проекта должен быть отведен свой отдельный каталог на жестком диске. В AVR Studio одновременно может быть загружен только один проект. При загрузке нового проекта предыдущий проект автоматически выгружается. Головным файлом проекта является файл с расширением aps. Он содержит сведения о типе процессора, используемого в проекте, частоте тактового генератора и т. д. Он также содержит описание всех остальных файлов, входящих в проект. Все эти сведения используются при отладке и трансляции программы. Кроме файла aps, проект должен содержать хотя бы один файл с текстом программы. Такой файл имеет расширение asm. Недостаточно просто поместить asm-файл в директорию проекта. Его нужно еще включить в проект. Как это делается, будет показано позже. Проект может содержать несколько asm-файлов. При этом один из них является главным (он указывается при создании проекта). Остальные могут подключасться главным файлом при помощи директивы препроцессора .include.

На рисунке 1 показано, как внешне выглядит «AVR Studio». На самом деле «AVR Studio» имеет очень гибкий интерфейс, и внешний вид (рисунок 1) может сильно отличаться от варианта, показанного на рисунке. Но далее будет рассмотрен случай, когда выбраны установки по умолчанию.

Рисунок 1 – Внешний вид AVR Studio

 

Главная панель программы AVR Studio разделена на три основных окна. На рисунке 1 они обозначены цифрами 1, 2, 3 и 6.Окно 6 предоставляет информацию о текущем проекте. 

Окно 6 «Project» содержит информацию по текущему загруженному проекту. Информация представлена в виде дерева. Разные ветви этого дерева описывают все исходные и результирующие файлы проекта, все метки, процедуры и присоединяемые файлы. Окно 1 отображает архитектурный состав сомпонентов выбранного для проекра микроконтроллера: регистры управления и состояния устройств (таймеры, порты, АЦП и т.д.), их прерывания и значения их регистрой данных. В этом окне во время отладки программы в режиме симулятора можно будет наблюдать за изменением состояний устройств, прерываний и регистров с которыми работает отлаживаемая программа. В пошаговом пежиме можно будет также «на лету» подменять значения нужных регистров и отдельно взятых управляющих битов с целью более оптимальной проверки работы алгоритмов программы. Элементы, появляющиеся в результате раскрытия ветви, в свою очередь также могут быть раскрыты, если они имеют свое содержимое. На рисунке 2 в увеличенном виде показано дерево ресурсов микроконтроллера АТinу2313. На рисунке несколько ветвей специально раскрыты, чтобы можно было увидеть их состав. Если какая-либо ветвь может быть раскрыта, то в своем основании она имеет квадратик с плюсиком внутри. Двойной щелчок на этом плюсике раскрывает ветвь. В раскрытой ветви плюсик превращается в минус. Повторный двойной щелчок по квадратику закрывает раскрытую ветвь. На рисунке 2 для наглядности раскрыты ветви портов ввода/вывода и можно видеть: -  полный состав управляющих регистров для каждого из устройств; - их названия и адреса; -  состав и название каждого бита (если биты имеют свои названия).

Рисунок 2 – Окно ресурсов микроконтроллера

 

В процессе отладки в этом окне можно увидеть не только название и состав всех ресурсов, но и их содержимое. Содержимое будет отображаться как в шестнадцатиричном виде, так и путем затемнения квадратиков, отображающих отдельные биты конкретных регистров. Затемненный квадратик означает, что бит равен единице. Светлый квадратик говорит о том, что бит равен нулю. Вы также можете оперативно менять это содержимое прямо в этом окне. Для изменения значения бита достаточно двойного щелчка мышки в соответствующем квадратике. Существуют и другие способы изменения содержимого различных регистров и ячеек памяти в процессе отладки. В нижней части главной панели находится второе вспомогательное окно (окно 2 на рисунке 1). Это окно служит, в основном, для вывода различных сообщений. Оно также содержит ряд вкладок. По умолчанию их четыре. Первая вкладка называется «Build». На вкладке «Build» отражается процесс трансляции. На эту вкладку выводятся сообщения об различных этапах трансляции, сообщения о синтаксических ошибках и различные предупреждения (Warnings). Если трансляция заканчивается нормально (отсутствуют ошибки компиляции), то сюда же выводятся статистические данные о полученном результирующем коде. Эти данные показывают размеры и процент использования всех видов памяти микроконтроллера:

 Сообщение означает, что в программном сегменте исполняемый код занимает 72 ячейки. Константы в памяти программ занимают 257 16-битных слов. Размер программной памяти для этого микроконтроллера составляет 513 слов (16-битных ячеек). Последняя строка содержит сообщения об ошибках. В данном случае сообщение переводится так: «Ассемблирование прошло без ошибок». Следующая вкладка второго окна называется «Message». Здесь выводятся разные системные сообщения о загрузке модулей программы и т. п. Третья вкладка второго окна называется «Find in Files» (поиск в файлах). В этом окне отражаются результаты выполнения команды «Поиск в Файлах». Эта команда позволяет производить поиск заданной последовательности символов сразу во всех файлах проекта. По окончании поиска во вкладке «Find in Files» отражаются все найденные вхождения с указанием имени файла и строки, где найдена искомая последовательность. Последняя вкладка называется «Breakpoints and Tracepoints» (Точки останова и точки трассировки). Эти точки проставляются в тексте программы перед началом процесса отладки и дублируются в данном окне. Как проставлять точки останова, беднт описано позже.

 Точки останова (breakpoints) используются для того, чтобы приостановить выполнение программы в том или ином месте программы для того, чтобы убедиться, что программа выполняется правильно. Точки останова ставятся/убираются в окне текста программы нажатием <F9> на строке предполагаемого останова программы. 

Рисунок 3 – точки останова в тексте

 

При установке точки останова в тексте программы строка помечается маркером в форме точки большого диаметра, а информация о ней автоматически появляется во вкладке «Breakpoints and Tracepoints» (рисунок 4):

Вкладка позволяет увидеть все точки останова программы в одном списке. Кроме того, на вкладке против каждой записи, описывающей точку останова, автоматически появляется «Check box» (поле выбора), при помощи которого можно в любой момент временно отключить любую точку останова. В окне 3 можно открывать не только все тексты ассемблерных программ текущего проекта, но и тексты программ других проектов, а также тексты программ, написанных на других языках программирования. Такой прием очень удобен, если нужно переделать программу, написанную для старого микроконтроллера на старой версии Ассемблера на новый лад. Все открытые текстовые окна запоминаются и затем открываются автоматически при открытии проекта.

Рисунок 4 – Break points and tracepoints

 

Любое текстовое окно имеет подсветку синтаксиса. Разные части помещенного туда текста программы подсвечиваются разными цветами. Так, все операторы Ассемблера высвечиваются голубым цветом. Комментарии выделяются зеленым. Остальной текст (параметры команд, псевдооператоры, метки, переменные и константы) остается черным. Это очень удобно. Если написанный вами оператор окрасился в голубой цвет, то это значит, что вы не ошиблись в синтаксисе. Если вы написали комментарий, но перед текстом комментария забыли поставить точку с запятой, то этот комментарий не окрасится в зеленый цвет. Таким образом, многие ошибки видны уже в процессе написания программы. Кроме двух вспомогательных и одного основного окна, главная панель программы имеет строку меню (отмечена цифрой 4 на рисунке 1), а также несколько инструментальных панелей (отмечены цифрой 5). Как и в любой другой программе под Windows, при помощи меню вызываются все функции программы AVR Studio и переключаются все ее режимы. Панели инструментов дублируют часто используемые функции меню.

 

СОЗДАНИЕ ПРОЕКТА НА АССЕМБЛЕРЕ После запуска программы открывается мастер нового проекта, который также можно вызвать через меню ―Project –> New project‖

В открывшемся окне надо выбрать тип проекта - Atmel AVR Assembler

1.4.4. Система программирования CodeVisionAVR

 

CodeVisionAVR - это среда разработки, которая поддерживает все операции с МК AVR. В ней мы можем написать заготовку кода, скомпилировать ее и с помощью программатора "залить" в нужный нам МК. И не надо отдельно качать программку-прошиватель, компилятор и другие ненужные программы. А зачем, если все это есть в КодВижне? Также КодВижн поддерживает почти все известные программаторы для AVR, будь это китайские клоны или оригинальные программаторы. Большой плюс КодВижена в том, что он сам создает готовый шаблон программы, из которого нам нужно удалить все лишнее, что является несомненным плюсом для новичков.

 Вот так выглядит программа после ее установки (кликните по картинике, чтобы увеличить изображение)

http://files.freks.webnode.com/200007372-ab8f9ad840/скрин%20кодвижн.png

 

Для того, чтобы создать новый проект, кликаем по значку "шестеренка":

  После появится вот такое окошко. Ставим маркер-точку на AT90, Atiny, FPSLIC и нажимаем "ОК".

 Выбираем наш МК. В данном случае я использую МК Atiny2313, поэтому из всего списка МК, которая предлагает нам программа, выбираю именно его.

 

  КодВижен для нас приготовил шаблон. Здесь явно много лишнего. Первым делом убираем шапку

 

Выделяем, нажимаем Del.

Текст, который находится после двух косых черточек "// любой текст "   или  /* любой текст */ называется комментарием. Они нужны для удобного восприятия и никак не сказываются на работу МК.

 PORTB=0b00000000

0b - это бинарная система счисления. Настраивать в бинарной системе удобно тем, что  каждый бит - это одна ножка МК. Поэтому счет идет справа-налево. Присмотритесь к рисунку выше. Здесь мы видим PORTB и нули при двоичной ситеме исчисления. Что это означает? А означает это то, что эти выводы при неиспользовании их в программе будут притянуты к нулю, то есть на них будет низкий потенциал или ноль Вольт. В случае, если мы видим единички установленные на каком-либо из битов, то это значит, что на этом порту при неипользовании в программе у нас будет высокий потенциал или плюс 5 вольт, или, говоря другими словами, этот вывод у нас будет принят к плюсу питания.

 DDRB=0b00000111

Это означает, что PB0, PB1, PB2 настроены на выход. Считаем справа-налево, если вы не забыли. А если ноль, то значит настроены на вход.

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

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

 

 Программа находится между фигурными скобками. Эти скобки принадлежат while (1). То есть этот кусок программы будет повторяться бесконечное число раз.

 Давайте разберем саму программу...

PORTB.0=1; Это означает, что при подачи питания на МК, у нас ножка PB0 будет иметь  логическую единицу , то есть на выходе этой ножки будет 5 Вольт, которые зажгут светодиод.

delay_ms(1000);  Ждем 1000 миллисекунд, то есть 1 секунду.

 PORTB.1=1; Через одну секунду на ножке PB1 появляется логическая единица, то есть 5 вольт, которые и зажгут второй светодиод

 delay_ms(1000); Ждем еще одну секунду.

  PORTB.2=1; Как только прошла секунда, у нас на ножке PB2 появляется логическая единичка, и, следовательно, зажигается третий светодиод.

 delay_ms(2000); Ждем 2  секунды...Итого у нас горят все разом три светодиода в течение двух секунд.

  PORTB.2=0;  На ножке PB2 появляется логический ноль, то есть напряжение исчезает. Третий светодиод  тухнет.

delay_ms(1000); Ждем секунду

  PORTB.1=0; Исчезает напряжение на ножке PB1. Светодиод второй тоже перестает источать свет.

delay_ms(1000); Ждем секунду.

  PORTB.0=0; И  на ножке PB0 напряжение тоже стает равно нулю. Первый светодиод тухнет тоже.

 delay_ms(2000);  Ждем две секунды и возвращаемся на начало программы, то есть  к 

 PORTB.0=1;

delay_ms(1000);

 Вот так выглядит полностью сама программа. Ее можно даже  скопировать и скомпилировать.

#include <tiny2313.h>

#include <delay.h>
void main(void)
{
PORTB=0b00000000;                                                 
DDRB=0b00000111;                                                 
while (1)                                             
      {
          PORTB.0=1;
          delay_ms(1000);       
                    PORTB.1=1;
          delay_ms(1000);   
                     PORTB.2=1;
          delay_ms(2000);  
                      PORTB.2=0;
          delay_ms(1000);
                   PORTB.1=0;
          delay_ms(1000);
                          PORTB.0=0;
          delay_ms(2000);
      }     
}

1.4.5. Программаторы

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

Можно считать, что программирующее устройство поддерживает микросхему, если:

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

Для выполнения своих функций, хороший программатор, как минимум должен содержать:

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

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

Существуют некоторые классификации программирующих устройств по следующим параметрам.

По типу программируемых микросхем

Узкоспециализированные программаторы. Программаторы, поддерживающие мс только заданного типа, или мс только заданного производителя.

Условно универсальные программаторы. Устройства, программирующие мс многих типов и/или мс различных производителей.

Универсальные программаторы. Программирующие устройства, поддерживающие микросхемы всех типов, и мс всех фирм.

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

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

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

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

Как правило, чем более универсальны драйвера, и чем их больше - тем более универсален программатор.

По способу программирования мс.

Параллельные программаторы. Обработка микросхем осуществляется в колодке (сокетке) программатора.

ISP программаторы. Поддержка мс. происходит непосредственно в устройстве (ISP mode).

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

Колодка программатора призвана обеспечивать надлежащий электрический контакт между ножками мс и аппаратнымидрайверами программатора. Обычно, универсальный программатор снабжается колодкой под DIP корпус мс. Самыми надежными и удобными для пользователя являются специальные сокетки с нулевым усилием - (ZIF socket).

Для поддержки микросхем с корпусами, отличными от DIP, нужно использовать специальные переходные адаптеры.

Программатор внутрисхемный. ISP программирование возможно только тех микросхем, которые предполагают данный режим.

Обычно, подобные микросхемы содержат встроенные устройства, которые:

  • из внешнего напряженияпитания генерируют напряжения необходимые для программирования;
  • обеспечивают стыковку с внутрисхемным программатором по последовательному интерфейсу (вариации протокола JTAG, SPI, UART).

Для реализации режима ISP Mode, стенд разработчика должен поддерживать:

  1. сответствующую стыковку выводов микросхемы с выходами ISP программатора;
  2. заданные режимы по нагрузке и питанию на соответствующих выводах микросхемы в режиме программирования.

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

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

По подключению к PC

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

По возможному количеству параллельно записываемых мс.

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

В качестве образца, программатор ChipProg-G4 снабжен четырьмя ZIF сокетками, и способен в асинхронном режиме программировать до 4 микросхем параллельно. Другой возможностью заметно увеличить скорость тиражирования – воспользоваться функциональными возможностями некоторых программаторов. В частности, профессиональные программаторы семейства ChipProg-XX с USB интерфейсом предоставляют возможность мультипрограммирования. Имеющееся число подобных программаторов может быть подключено к одному PC через USB порты, либо через USB HUB. Данные программаторы, объединенные в мультипрограмматорный режим, функционируют асинхронно и совершенно независимо друг от друга.

По специальным возможностям

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

Для иллюстрации представим вспомогательные способности, предлагаемые программаторами фирмы Фитон

         Автотестирование;

         контроль всех выводов обслуживаемой микросхемы на наличие контакта перед программированием;

         Аппаратные схемы защиты. Защита ошибочно подключенных микросхем;

         Экстремально большая скорость программирования;

         Защита от электростатического разряда;

         Кнопка, запускающая выполнение любой необходимой операции или последовательности операций;

         Обеспечение записи микросхем в устройстве пользователя;

         синтезатор частоты;

         Режим программирования серийного номера;

         Возможность подсчета контрольных сумм;

         Режим записи сигнатуры;

         Режим поддержки проекта;

         Поддерка автоматического контроля присутствия микросхемы;

         Многофункциональный двоичный редактор;

         Встроенный язык сценариев;

 

 

ТЕМА 1.5. ПЕРСОНАЛЬНЫЙ КОМПЬЮТЕР (ПК) КАК МИКРОПРОЦЕССОРНАЯ СИСТЕМА

1.5.1. BIOS

BIOS – это собрание микропрограмм, которые позволяют произвести настройку отдельных комплектующих системного блока, а также загрузчику операционной системы и прочую настройку важных параметров. Дословно BIOS можно назвать базовой системой ввода-вывода. Многие пользователи-новички спрашивают о том, где находится BIOS? BIOS находится в материнской плате и это неспроста, так как именно материнская плата отвечает за взаимодействие и работу всех комплектующих компьютера.

На фотографии выше вы можете посмотреть, как выглядит BIOS. Многие с нами согласятся, что вид BIOS несколько староват, а если быть до конца честными - «деревянный». Тем не менее, последние модели материнских плат фирмы Asus имеют достаточно красивый и современный дизайн, более того он русифицирован. В данной же статье настройку BIOS мы произведём на примере старого вида, так как это сложнее, да и главное, чтобы вы поняли суть BIOS. Если вы поймёте суть, как работать в BIOS со старым дизайном, то вам не составит труда разобраться в новом.

 С помощью BIOS можно:

·         Выставить системное время;

·         Установить приоритет загрузки;

·         Выставить параметры питания некоторых устройств;

·         Включить или отключить некоторые устройства и т.д.

Для того чтобы попасть в BIOS - нужно при перезагрузке или запуске компьютера зажать на клавиатуре клавишу «Delete» или «F1», в зависимости от материнской платы, после чего вы попадаете в BIOS.

Управлять в BIOS можно с помощью 5 кнопок:

·         Стрелочки – помогают перемешаться по разделам и выбирать нужные параметры в настройках;

·         Enter – открывает выбранный раздел или настройку;

·         ESC – выход.

Кроме того, вы можете установить заводские настройки BIOS, нажав на клавишу «F9», а нажав клавишу «F10» - вы сохраните внесённые настройки и выйдете из меню.

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

Иногда нужно произвести сброс настроек BIOS. Это делается для того, чтобы вернуть настройки BIOS до заводских, в случае если внесённые ими изменения привели к проблемам в работе всего компьютера или отдельных устройств. Найдите в материнской плате контакты, которые подписаны как: CCMOS, Clear CMOS или же Clear RTC. У каждого производителя, а может быть даже и в каждой разной модели материнской платы могут быть свои варианты сброса настроек BIOS. Важно отметить, что любые работы по сбросу настроек BIOS нужно проводить при выключенном компьютере, а также при выключенном от питания системном блоке и других подключённых к нему устройств.

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

ü  Второй вариант – замыкание контактов. Существуют модели материнских плат, в которых для сброса BIOS нужно металлическим предметом замкнуть 2 контакта. Таким предметом может стать маленькая отвёртка. То есть при выключенном компьютере замкните на 15 секунд оба контакта, после чего уберите предмет замыкания и запустите компьютер, настройки BIOS будут сброшены.

ü  Третий вариант – с помощью батарейки. Для этого нужно найти батарейку, питающую материнскую плату. Опять-таки при полностью отключенном питании подденьте защёлку батарейки и извлеките её на 15 минут. После чего вставьте батарейку на место и запустите компьютер.

ü  Четвёртый вариант – нажать на кнопку сброса настроек BIOS. В некоторых моделях материнских плат сброс настроек BIOS происходит очень просто, для этого на материнской плате нужно нажать на соответствующую кнопку.

После того, как сбросили BIOS - рекомендуется проверить настройки времени и приоритет загрузки.

Как правильно настроить BIOS

Находясь в главном меню BIOS, стрелочками переведите курсор на часы и установите правильное время с помощью клавиш «PageUp» и «PageDown». Затем перейдите в настройки даты и с помощью тех же кнопок выставьте сегодняшние число, месяц и год. Это очень важно, так как на основе данной даты и времени работает как сама операционная система, так и большинство программ. Стоит отметить, что в BIOS установлен американский формат даты, поэтому сначала идёт месяц, день и год. Чтобы перейти в следующий раздел настроек – нажмите стрелочку вправо.

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

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

В разделе Boot вы можете настроить приоритет загрузки операционной системы. Мастера сайта Masterservis24.ru настоятельно рекомендуют произвести настройку загрузки, для того чтобы сократить время загрузки операционной системы. Если в качестве первичного устройства для загрузки ОС установлен CD-ROM, то перед тем как загрузить систему с жёсткого диска загрузчик проверит CD-ROM, а через несколько секунд, ничего не обнаружив, начнёт загрузку операционной системы с винчестера. В зависимости от модели материнской платы настройки приоритета загрузки будут иметь разные надписи. Первичный источник загрузки может называться: «1st Boot Device» или «First Boot Device». Установите курсор напротив данного параметра и нажмите «Enter». В появившемся меню стрелочками выберете пункт «Hard Disk» и опять нажмите «Enter». Затем перейдите к параметру «2nd Boot Device» или «Second Boot Device» и установите значение «CDROM». В параметре «3rd Boot Device» или «Third Boot Device» рекомендуем установить значение «Disabled».

Для того чтобы сохранить внесённые настройки, переходим в раздел «Exit» и выбираем пункт «Exit Saving Changes» и нажимаем «Enter». Если же вы хотите только сохранить настройки, не выходя из BIOS, то выберете пункт «Save Changes». Кроме того, вы можете загрузить из меню Биос настройки по умолчанию, выбрав «Load Setup Defaults» или выйти из BIOS без сохранения, выбрав «Exit Discarding Changes».

 

1.5.2. Конфигурирование ПК

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

Конфигурирование СВТ выполняется с помощью программы BIOS

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

BIOS (basic input/output system) - базовая система ввода-вывода - это встроенное в компьютер программное обеспечение, которое ему доступно без обращения к диску. На PC BIOS содержит код, необходимый для управления клавиатурой, видеокартой, дисками, портами и другими устройствами. При работе под DOS, Windows 95/98, BIOS управляет основными устройствами, при работе под OS/2, UNIX, WinNT, Win2k,XP BIOS практически не используется, выполняя лишь начальную проверку и настройку.

Итак, базовая система ввода-вывода — это комбинация всех типов BIOS, а также загружаемые драйверы устройств.

BIOS представляет собой интерфейс между аппаратным обеспечением и операционной системой.

BIOS в большинстве PC-совместимых компьютеров выполняет четыре основные функции.

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

2.    Программа установки параметров BIOS (Setup BIOS) — конфигурирование параметров системы. Эта программа запускается при нажатии определенной клавиши (или комбинации клавиш) во время выполнения процедуры POST.

3.    Начальный загрузчик системы — выполнение поиска главного загрузочного сектора на дисковых устройствах. Если два последних байта этого сектора (его сигнатура) равны 55AAh, данный код выполняется.

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

Составная часть BIOS программа установки параметров BIOS - Setup не зависимо от производителя BIOS содержит следующие основные разделы, которые могут быть использованы для настройки и конфигурирования ПК:

Bios Features Setup (настройка BIOS)

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

Chipset Features Setup (Настройка чипсета)

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

PnP/PCI Configuration Setup (Настройка конфигурации PCI и PnP)

В этом разделе производится настройка поддержки стандарта Plug&Play (установка прерываний, приоритетов оборудования и т.п.).

Power Management Setup (Настройка управления питанием)

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

Frequency/Voltage control (Контроль частот и напряжений) Устанавливаются частоты работы процессора, памяти, шины PCI, и напряжения питания процессора, памяти.

 

1.5.3. Причины неисправностей и сбоев

Существует два типа неисправностей аппаратных компонентов:

Окончательный выход из строя - выход из строя какого-либо устройства, которое уже никогда не сможет работать нормально;

Сбои - временные нарушения работы компонентов.

Проявление аппаратных неисправностей

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

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

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

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

Повреждение контроллеров портов ввода-вывода. Перестают работать устройства, подключаемые к этим портам.

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

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

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

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

 

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

Неисправности внешних устройств (монитор, клавиатура, мышь и т.д.). Проявляются просто - перестают выполнять свойственные им функции.

Причины аппаратных неисправностей

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

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

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

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ИСПОЛЬЗОВАННАЯ  ЛИТЕРАТУРА

 

ОСНОВНЫЕ ИСТОЧНИКИ:

  1. Браммер Ю.А. Импульсные и цифровые устройства. - М.: Высшая школа. 2003
  2. И. Янсен. Курс цифровой электроники. В 4-х томах. - М.: Мир, 1987
  3. Р.Токхейм. Основы цифровой электроники. - М.: Мир, 1988
  4. Григорьев В.Л. Программирование однокристальных микропроцессоров. - М.:Энергоатомиздат, 1987

ДОПОЛНИТЕЛЬНЫЕ ИСТОЧНИКИ:

  1. Аванесян Г.Р., Левшин В.П. Интегральные микросхемы ТТЛ, ТТЛШ: Справочник. -
    М.: Машиностроение, 1993
  2. Большие интегральные схемы запоминающих устройств: Справочник. Под ред. А.Ю.
    Гордонова. - М.: Радио и связь, 1990
  3. Карлащук В.И. Электронная лаборатория на IBM РС. Программа «ElectronicsWorkbench» и ее применение. - М.: Солон, 2001
  4. Платан: Электронные компоненты. Каталог 2003г.
  5. Шило В.Л. Популярные цифровые микросхемы. - М.: Металлургия, 1988
  6. Электротехника и электроника в экспериментах и упражнениях. Практикум на «ElectronicsWorkbench». В 2-х томах. Под общ. ред. Д.И. Панфилова. - М.: ДОДЭКА.2000
  7. Журнал «Мир ПК»
  8. Журнал «Компьютер - Пресс»
  9. Журнал «Радио»
  10. Каталог «Платан - Электронные компоненты»

 

 

 

 

 

 

 

 

 

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Лекции по МДК Микропроцессорные системы"

Методические разработки к Вашему уроку:

Получите новую специальность за 2 месяца

Психолог-консультант

Получите профессию

Менеджер по туризму

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 663 020 материалов в базе

Скачать материал

Другие материалы

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 06.06.2018 7829
    • DOCX 946.9 кбайт
    • 242 скачивания
    • Рейтинг: 5 из 5
    • Оцените материал:
  • Настоящий материал опубликован пользователем Кякшта Мария Александровна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Кякшта Мария Александровна
    Кякшта Мария Александровна
    • На сайте: 7 лет и 3 месяца
    • Подписчики: 1
    • Всего просмотров: 86587
    • Всего материалов: 44

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Интернет-маркетолог

Интернет-маркетолог

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Организация деятельности библиотекаря в профессиональном образовании

Библиотекарь

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 284 человека из 66 регионов
  • Этот курс уже прошли 849 человек

Курс повышения квалификации

Специалист в области охраны труда

72/180 ч.

от 1750 руб. от 1050 руб.
Подать заявку О курсе
  • Сейчас обучается 35 человек из 22 регионов
  • Этот курс уже прошли 153 человека

Курс профессиональной переподготовки

Библиотечно-библиографические и информационные знания в педагогическом процессе

Педагог-библиотекарь

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 487 человек из 71 региона
  • Этот курс уже прошли 2 326 человек

Мини-курс

Уникальный образ как педагога: основные принципы позиционирования

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Этот курс уже прошли 21 человек

Мини-курс

Специальная реабилитация: помощь детям с особыми потребностями

4 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Эффективные стратегии текстовых коммуникаций в бизнесе

6 ч.

780 руб. 390 руб.
Подать заявку О курсе