МИКРОПРОЦЕССОРНЫЕ СИСТЕМЫ ЭЛЕКТРОННЫЙ КУРС ЛЕКЦИЙ АВТОР: БУРЬКОВА Е.В.

Презентация:



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

Микроконтроллеры AVR семейства Mega. Отличительные особенности FLASH-память программ объемом от 8 до 256 Кбайт (число циклов стирания/записи не менее.
Лекция 10. Контроллеры параллельной передачи данных. Параллельный интерфейс.
Общая структура и состав персонального компьютера.
1 Микропроцессорная система. 2 Особенности микропроцессорных систем Гибкая логика работы меняется в зависимости от задачи; Универсальность может решать.
Лекция 6. Способы адресации в микропроцессорных системах.
Микропроцессоры Лекция 6. СТРУКТУРА ЭЛЕМЕНТАРНОГО МИКРОПРОЦЕССОРА (ЭМП) Основным устройством всех цифровых систем (ЦС) является центральный процессор.
Учебный курс Введение в цифровую электронику Лекция 5 Обмен информацией в микропроцессорной системе кандидат технических наук, доцент Новиков Юрий Витальевич.
Тема 2. Способы адресации и система команд МП. Непосредственная адресация Суть способа. Требуемые данные (#data ̶ непосредственный операнд, константа)
Архитектура вычислительной машины (Архитектура ЭВМ) концептуальная структура вычислительной машины, определяющая проведение обработки информации и включающая.
Учебный курс Принципы построения и функционирования ЭВМ Лекция 11 Микрокоманды и микрооперации профессор ГУ-ВШЭ, доктор технических наук Геннадий Михайлович.
Микропроцессоры Архитектура ЭМП Лекция 9. Архитектура ЭМП В предыдущем параграфе мы изучили схему выводов и их назначение у типового микропроцессора.
Архитектура современных персональных компьютеров Подготовил студент группы 11ИнфБ122 Зайцев Д.
Лекция 4. Режимы работы микропроцессора. Взаимодействие микропроцессора с остальными устройствами Взаимодействие МП с остальными устройствами МПС происходит.
Магитстрально- модульное построение компьютера. архитектурой ЭВМ называется описание структуры и принципов работы компьютера без подробностей технической.
План урока Память и её видыПамять и её виды Оперативная память и её видыОперативная память и её виды Характеристика ОПХарактеристика ОП 1.Тип, 2.Частота,
Компьютер – универсальная техническая система обработки информации Информатика. 10 класс.
Тема урока: ТРИГГЕР. или не не Разнообразие современных компьютеров очень велико. Но их структуры основаны на общих логических принципах, позволяющих.
Тема 1. Общие вопросы организации микропроцессорных систем.
Архитектура ЭВМ (лекция 7) проф. Петрова И.Ю. Курс Информатики.
Транксрипт:

МИКРОПРОЦЕССОРНЫЕ СИСТЕМЫ ЭЛЕКТРОННЫЙ КУРС ЛЕКЦИЙ АВТОР: БУРЬКОВА Е.В.

Содержание Лекция 1. Классификация микропроцессоров Лекция 2. Организация памяти МП-систем Лекция 3. Виды статических ОЗУ Лекция 4. Классификация динамических ОЗУ Лекция 5. Структура ассоциативной памяти Лекция 6. Структура системы с основной и кэш-памятью Лекция 7. Алгоритмы замещения информации в кэш-памяти Лекция 8. Системы ввода/вывода Лекция 9. Структура внешнего устройства и модуля ввода-вывода Лекция 10. Архитектура микроконтроллеров Лекция 11. Типы памяти микроконтроллеров Лекция 12. Базовая архитектура микроконтроллера 8051 Лекция 13. Питание микроконтроллеров Лекция 14. Система команд микроконтроллера семейства 8051 Лекция 15. Связь микроконтроллера с внешней средой и временем Лекция 16. Система прерываний микроконтроллера 8051

Содержание Лекция 17. Основные типы интерфейсов микроконтроллеров Лекция 18. Подключение клавиатуры и дисплея Лекция 19. Конвейеризация в микропроцессорных системах Лекция 20. Мультипроцессоры Лекция 21. Классификация компьютеров параллельного действия Лекция 22. Транспьютеры. Архитектура Лекция 23. Программирование транспьютеров Лекция 24. Обработка параллельных процессов в транспьютерах Лекция 25. Структура связи транспьютеров по внешнему каналу Лекция 26. Учебный лабораторный комплекс SDK-1.1 Лекция 27. Карта портов ввода-вывода Лекция 28. Прерывания ADuC812 Лекция 29. Основные этапы программирования стенда Лекция 30. Компилятор языка Си фирмы Keil Software Лекция 31. Инструментальная система для Win 9x/NT Лекция 32. Резидентный загрузчик НЕХ202

Список необходимой литературы для изучения курса 1.Бурькова Е.В. Освоение микропроцессорной техники в формировании информационной компетентности студентов университета. – Челябинск, Бурькова Е.В. Моделирование микропроцессорных систем: методические указания к лабораторному практикуму – Оренбург, ГОУ ОГУ, Бурькова Е.В. Проектирование микропроцессорных систем: методические указания к курсовому проектированию – Оренбург, ГОУ ОГУ, Новиков Ю.В., Скоробогатов П.К. Основы микропроцессорной техники. – Москва Предко М. Руководство по микроконтроллерам. - Москва, Таненбаум Э. Архитектура компьютера.– Санкт-Петербург: ПИТЕР, Цилькер Б.Я., Орлов С.А. Организация ЭВМ и систем.– Санкт- Петербург: ПИТЕР, 2006.

По технологии изготовления: 1.PMOS - P – Channel Metal Oxide Semiconductor – i4004, 8008; 2. NMOS - N – Channel Metal Oxide Semiconductor – i8080, i8085; 3. HMOS (N – Channel high-performance Metal Oxide Semiconductor) , 80186, 80286, 80386, 80486, Pentium; 4. CMOS (КМОП) – сигнальные и медийные МП - семейство TMS320C2X, cyrix6x86, Athlon, Pentium и т.д. По типу архитектуры: 1.однокристальные МП; 2.однокристальные микроконтроллеры; 3.разрядно – модульные МП; 4.CISC и RISC процессоры; 5.Транспьютеры. Лекция 1. Классификация микропроцессоров

По разрядности данных: 1.2- разрядные – К589; 2.4-разрядные – К145ИК18, КМ1804, I4004; 3.8- разрядные – i8008, i8080, К580, К1816, i8051; разрядные – i8086, i8088, 80186, 80286; разрядные –i80386, i80486,Pentium; разрядные – AMD Opteron, PowerPC 970, Intel Xeon MP. По назначению: 1.универсальные; 2.специализированные МП. По виду обрабатываемой информации: 1.цифровые; 2.аналоговые МП. По виду временной организации работы: 1. синхронные; 2. асинхронные. Классификация микропроцессоров (продолжение)

Структура микропроцессорной системы

Процессор RESET U СLK GND Сброс Такт питание Буфер Системная магистраль Схема включения процессора

Основные функции процессора: 1.выборка (чтение) выполняемых команд; 2.ввод (чтение) данных из памяти или УВВ; 3.вывод (запись) данных в память или УВВ; 4.обработка данных (операндов), в том числе арифметические операции над ними; 5.адресация памяти, т. е. задание адреса памяти, с которым будет производиться обмен; 6.обработка прерываний и режима прямого доступа к памяти (ПДП).

Внутренняя структура микропроцессора Арифметико-логическое устройство (АЛУ) Процессор Схема управления выборкой команд Схема управления прерываниями Схема управления ПДП Логика управления Регистр признаков PSW PC SP RG Шина данных Шина адреса Шина управления Шина питания Тактовый сигнал Сброс

Лекция 2. Организация памяти МП-систем Память является необходимым компонентом микропроцессорной системы. Память используется как для хранения команд, так и данных. Функции памяти обеспечиваются запоминающими устройствами (ЗУ), предназначенными для фиксации, хранения и выдачи информации в процессе работы микропроцессорной системы. При рассмотрении запоминающих устройств учитывают следующие характеристики: 1. место расположения; 2. емкость; 3. единица пересылки; 4. метод доступа; 5. быстродействие; 6. физический тип; 7. стоимость.

Быстродействие ЗУ определяется параметрами: 1.время доступа; 2.длительность цикла памяти или период обращения; 3.скорость передачи. - среднее время считывания или записи N битов; - среднее время доступа; Основные методы доступа к памяти: 1.последовательный, 2.прямой, 3.произвольный, 4.ассоциативный. R – скорость пересылки в битах в секунду. где

Иерархическая архитектура памяти

Увеличение разрядности памяти

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

Блочная память с чередованием адресов по циклической схеме

Блочно-циклическая схема расслоения памяти

Структура микросхемы памяти

Запоминающий элемент статического ОЗУ

Лекция 3. Виды статических ОЗУ

Асинхронные статические ОЗУ: время доступа составляло нс (в лучшем случае 12 нс) Синхронные статические ОЗУ: SSRAM обеспечивает работу в пакетном режиме с формулой , но лишь до определенных значений тактовой частоты шины. При более высоких частотах формула изменяется на РВ SRAM. Начиная с Pentium II, взамен SSRAM оснащаются статической оперативной памятью с пакетным конвейерным доступом (РВ SRAM Pipelined Burst SRAM). Время доступа к РВ SRAM составляет от 4,5 до 8 нс, при этом формула Компания IDT (Integrated Device Technology) предложила новую технологию, получившую название ZBT SRAM (Zero Bus Turnaround) нулевое время переключения шины.

Структура двухпортового ОЗУ

Энергонезависимые оперативные запоминающие устройства 1. NVRAM Non-Volatile RAM, разработана компанией Simtec; 2. BBSRAM - Battery-Back SRAM; 3. FRAM - Ferroelectric RAM ферроэлектрическая память, разработана компанией Ramtron. Количество циклов перезаписи для FRAM обычно составляет 10 млрд.; 4. Магнитная нанопамять; 5. Память на основе фазовых состояний PCM; 6. Магниторезистивная память МRAM.

Сравнительные характеристики основных типов оперативной памяти

Лекция 4. Классификация динамических ОЗУ

Микросхемы DRAM - формула Микросхемы данного типа могли работать на частотах до 40 МГц и из-за низкого быстродействия (время доступа составляло около 120 нс) просуществовали недолго. Микросхемы FPMDRAM. Микросхемы динамического ОЗУ, реализующие режим FPM, также относятся к ранним типам DRAM. Схема чтения для FPM DRAM описывается формулой (всего 14 тактов). Время доступа до 60 нс. Микросхемы EDO DRAM. с гиперстраничным режимом доступа (НРМ, Hyper Page Mode), более известные как EDO (Extended Data Output расширенное время удержания данных на выходе) формула , что на 20% быстрее, чем у FPM. Время доступа составляет порядка нс. Максимальная частота системной шины для микросхем EDO DRAM не превышает 66 МГц. Микросхемы BEDО DRAM. Технология EDO была усовершенствована компанией VIA Technologies. Новая модификация EDO известна как BEDO (Burst EDO пакетная EDO). Формула Микросхемы EDRAM. Более быстрая версия DRAM была разработана подразделением фирмы Ramtron компанией Enhanced Memory Systems. Технология реализована в вариантах FPM, EDO и BEDO. Асинхронная динамическая память

Синхронные динамические ОЗУ Микросхемы SDRAM. Аббревиатура SDRAM (Synchronous DRAM синхронная DRAM) используется для обозначения микросхем «обычных» синхронных динамических ОЗУ. Кардинальные отличия SDRAM от рассмотренных выше асинхронных динамических ОЗУ можно свести к четырем положениям: - синхронный метод передачи данных на шину; - конвейерный механизм пересылки пакета; - применение нескольких внутренних банков памяти; - передача части функций контроллера памяти логике микросхемы. Несмотря на то, что формула для этого типа динамической памяти такая же, что и у BEDO, способность работать на более высоких частотах приводит к тому, что SDRAM с двумя банками при тактовой частоте шины 100 МГц по производительности может почти вдвое превосходить память типа BEDO.

Микросхемы DDR SDRAM. Важным этапом в дальнейшем развитии технологии SDRAM стала DDR SDRAM (Double Data Rate SDRAM - SDRAM с удвоенной скоростью передачи данных). Существует несколько спецификаций DDR SDRAM, в зависимости от тактовой частоты системной шины: DDR266, DDR333, DDR400, DDR533. Пиковая пропускная способность микросхемы памяти спецификации DDR333 составляет 2,7 Гбайт/с, а для DDR400 3,2 Гбайт/с. Микросхемы RDRAM, DRDRAM. (Rambus Direct RAM). Существует несколько разновидностей этой технологии: Base, Concurrent и Direct. Во всех тактирование ведется по обоим фронтам синхросигналов (как в DDR), благодаря чему результирующая частота составляет соответственно , и 800 МГц. Микросхемы SLDRAM (Sync Link DRAM). Микросхемы ESDRAM. Микросхемы CDRAM. Синхронные динамические ОЗУ

Лекция 5. Структура ассоциативной памяти

Классификация ассоциативных ЗУ по виду поиска

Классификация ассоциативных ЗУ по способу опроса

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

Лекция 6. Структура системы с основной и кэш-памятью

Прямое отображение основной памяти При прямом отображении адрес строки i кэш-памяти, на которую может быть отображен блок из ОП, определяется выражением: i =j mod m, где m общее число строк в кэш-памяти. В нашем примере i =j mod 128, где i может принимать значения от 0 до 127, а адрес блока j от 0 до Иными словами, на строку кэша с номером i отображается каждый 128-й блок ОП, если отсчет начинать с блока, номер которого i.

При реализации такого отображения 14-разрядный адрес блока основной памяти условно разбивается на два поля. Логика кэш-памяти интерпретирует эти 14 бит как 7-разрядный тег и 7-разрядное поле строки. Поле строки указывает на одну из 128 = 2 строк кэш-памяти, а именно на ту, куда может быть отображен блок с заданным адресом. 7 Полностью ассоциативное отображение

Множественно-ассоциативное отображение Кэш-память разбивается на v подмножеств (в дальнейшем будем называть их модулями), каждое из которых содержит k строк. Зависимость между модулем и блоками основной памяти такая же, как и при прямом отображении: на строки, входящие в модуль i, могут быть отображены только вполне определенные блоки основной памяти, в соответствии с соотношение i =j mod v, где j адрес блока основной памяти. Пример четырехвходовой кэш-памяти

Блоки 0, 32, 64, 96 и т. д. основной памяти отображаются на модуль с номером 0; блоки 1, 33, 65, 97 и т. д. отображаются на модуль 1 и т. д. Любой из блоков в последовательности может быть загружен в любую из четырех строк соответствующего модуля. При такой постановке роль тега выполняют 9 старших разрядов адреса блока основной памяти, в которых содержится порядковый номер блока в последовательности блоков, отображаемых на один и тот же модуль кэш-памяти. В предельных случаях, когда v = т, k = 1, множественно- ассоциативное отображение сводится к прямому, а при v = 1,k = m к ассоциативному. Наиболее общий вид организации множественно- ассоциативного отображения использование двух строк на модуль (v = т/2, k = 2). Четырехвходовая множественно-ассоциативная кэш-память (v = т/4, k = 4) дает дополнительное улучшение за сравнительно небольшую дополнительную цену. Дальнейшее увеличения числа строк в модуле не дает существенного эффекта. Множественно-ассоциативное отображение

Отображение секторов Здесь сектор состоит из 16 = 2 блоков по 16 слов, и основная память содержит 1024 = 2 сектора. В 14-разрядном адресе блока основной памяти старшие 10 разрядов показывают номер сектора, а младшие 4 номер блока внутри сектора. В свою очередь, кэш-память состоит из 8 = 2 секторов, и 7-разрядный адрес строки в кэш включает в себя адрес сектора кэш (3 старших разряда) и номер блока внутри сектора (4 младших разряда)

1.Алгоритм замещения на основе наиболее давнего использования (LRU Least Recently Used). Замещается та строка кэш-памяти, к которой дольше всего не было обращения. Проводившиеся исследования показали, что алгоритм LRU работает достаточно хорошо в сравнении с оптимальным алгоритмом. 2. Алгоритм, работающий по принципу «первый вошел, первый вышел» (FIFO First In First Out). Заменяется строка, дольше всего находившаяся в кэш-памяти. 3. Замена наименее часто использовавшейся строки (LFU Least Frequently Used). Заменяется строка в кэш-памяти, к которой было меньше всего обращений. Связывают каждую строку со счетчиком обращений, к содержимому которого после каждого обращения добавляется единица. Главным претендентом на замещение является строка, счетчик которой содержит наименьшее число. 4. Произвольный выбор строки для замены. Замещаемая строка выбирается случайно. Реализовано с помощью счетчика, содержимое которого увеличивается на единицу с каждым тактовым импульсом, независимо от того, имело место попадание или промах. Значение в счетчике определяет заменяемую строку. Лекция 7. Алгоритмы замещения информации в кэш-памяти

Уровни КЭШ-памяти Система с тремя уровнями КЭШ-памяти

КЭШ-память прямого отображения ТЕГ строкиСмещениеБайт Представление адреса

Динамическое прогнозирование ветвлений Таблица условных переходов

Таблица с битами прогнозирования

Таблица соответствия между адресом перехода и целевым адресом

Две основные функции МВВ : - обеспечение интерфейса с ЦП и памятью («большой» интерфейс); - обеспечение интерфейса с одним или несколькими периферийными устройствами («малый» интерфейс). Технически система ввода/вывода в рамках микропроцессорной системы реализуется комплексом модулей ввода/вывода (МВВ). Модуль ввода/вывода выполняет сопряжение ВУ с ядром микропроцессорной системы и различные коммуникационные операции между ними. Лекция 8. Системы ввода/вывода

Способы подключения СВВ к процессору

Распределение совмещенного адресного пространства Совмещенное адресное пространство используется в вычислительных машинах MIPS и SPARC.

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

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

Все множество ПУ можно свести к трем категориям: - для общения с пользователем; - для общения с ВМ; - для связи с удаленными устройствами. Лекция 9. Структура внешнего устройства и модуля ввода-вывода Структура внешнего устройства

Структура модуля ввода/вывода

Программно-управляемый ввод данных

Ввод данных по прерыванию

Организация прямого доступа к памяти

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

Микроконтроллер – это самостоятельная компьютерная система, которая содержит процессор, вспомогательные схемы и устройства ввода/ вывода данных, размещенные в общем корпусе. Основные типы: 1.Встраиваемые 8-разрядные МК; и 32-разрядные МК с внешней памятью; 3.Цифровые сигнальные процессоры (DSP). Лекция 10. Архитектура микроконтроллеров Типичные значения max частоты тактовых сигналов составляют для различных микроконтроллеров МГц. Главным фактором, ограничивающим их скорость, является время доступа к памяти, применяемой в МК.

Структура встраиваемых микроконтроллеров

Микроконтроллеры с внешней памятью

Модульная организация микроконтроллеров

Принстонская архитектура микроконтроллера

Гарвардская архитектура микроконтроллера

1.Память программ (ПЗУ); 2.Память данных (ОЗУ); 3.Регистры МК. Память программ 1.ROM - (масочно-программируемое ПЗУ); 2.PROM (однократно-программируемое ПЗУ); 3.EPROM (электрически программируемое ПЗУ с ультрафиолетовым стиранием); 4.EEPROM (ПЗУ с электрической записью и стиранием; 5.Flash-разновидность EEPROM. Лекция 11. Типы памяти микроконтроллеров Подсистема памяти микроконтроллеров содержит:

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

Регистры микроконтроллеров 1.Регистры процессора: аккумулятор, регистры состояния, индексные регистры, 2.Регистры управления: регистры управления прерываниями, таймером, 3.Регистры, обеспечивающие ввод/вывод данных: регистры данных портов, регистры управления параллельным, последовательным или аналоговым вводом/ выводом. Одним из важных вопросов является размещение регистров в адресном пространстве МК. В некоторых МК все регистры и память данных располагаются в одном адресном пространстве. Это означает, что память данных совмещена с регистрами. Такой подход называется «отображением ресурсов МК на память». В других МК адресное пространство устройств ввода/вывода отделено от общего пространства памяти. Отдельное пространство ввода/вывода дает не­которое преимущество процессорам с гарвардской архитектурой, обеспечивая возможность считывать команду во время обращения к регистру ввода/вывода.

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

Лекция 12. Базовая архитектура микроконтроллера 8051

Характеристики микроконтроллеров семейства тактовая частота 24 МГц; - командный цикл 12 тактов; - объем памяти программ 4 Кб; - объем памяти данных 128 байт; - число линий ввода/вывода – 32; - два 8/16-разрядных таймера; - множество внутренних и внешних источников прерываний; - программируемый последовательный порт; - интерфейс с внешней памятью объемом до 128 Кб. МК 8051 имеет Гарвардскую архитектуру, то есть память программ и память данных являются самостоятельными и независимыми друг от друга устройствами. К адресному пространству памяти данных примыкает адресное пространство регистров специальных функций SFR (Special Function Register).

АдресСимволНаименование 0E0H*АССАккумулятор (Accumulator) 0F0H*В Регистр расширитель аккумулятора (Multiplication Register) 0D0H*PSWСлово состояния программы (Program Status Word) 080Н*P0Порт 0 (SFR P0) 090H*Р1Порт 1 (SFR P1) 0A0H*P2Порт 2 (SFR P2) 0B0H*P3Порт 3 (SFR РЗ) 081HSPРегистр указатель стека (Stack Pointer) 083HDPH Старший байт регистра указателя данных DPTR (Data Pointer High) 082HDPL Младший байт регистра указателя данных DPTR (Data Pointer Low) 08CHTH0Старший байт таймера 0 () 08AHTL0Младший байт таймера 0 () Адресное пространство регистров специальных функций

Базовая архитектура микроконтроллера 8051

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

Во многих приложениях используется батарейное питание микроконтроллеров, а в некоторых случаях применяются конденсаторы большой емкости, которые обеспечивают сохранение работоспособности при кратковременных отключениях питания. Поэтому проблема снижения энергопотреблении весьма актуальна для микроконтроллеров. Потребляемая мощность Имеются три значения мощности, потребляемой микроконтроллером в различных рабочих условиях: 1.Собственная мощность, необходимая для нормальной работы микроконтроллера; 2.Мощность, потребляемая устройствами ввода-вывода, которую требуется учитывать, когда микроконтроллер производит обмен данными с внешними устройствами; 3.Мощность, потребляемая в «спящем» режиме. Лекция 13. Питание микроконтроллеров

Схема запуска микроконтроллера (сброс в начальное состояние)

Тактирование системы Существует три способа задания тактовой частоты микроконтроллера 1.Использование кварцевого резонатора

2. Использование RC-генератора 3. Использование внешней микросхемы тактового генератора

Микро-ЭВМ рассматриваемого семейства являются типичными микропроцессорными устройствами с архитектурой SISC - со стандартным набором команд. Поэтому их система команд довольно обширна и включает в себя 111 основных команд. Их длина – один, два или три байта, причем большинство из них (94%) – одно- или двухбайтные. Все команды выполняются за один или два машинных цикла (соответственно 1 или 2 мкс при тактовой частоте 12 МГц), исключение – команды умножения и деления, которые выполняются за четыре машинных цикла (4 мкс). Микро-ЭВМ семейства 8051 используют прямую, непосредственную, косвенную и неявную, адресацию данных. Лекция 14. Система команд микроконтроллера семейства 8051

Типы команд Тип команды Первый байт D7...D0 Второй байт D7...D0 Третий байт D7...D0 тип 1коп тип 2коп#d тип 3копad тип 4копbit тип 5копrel тип 6копа7...a0 тип 7копad#d тип 8копadrel тип 9копadsadd тип 10коп#drel тип 11копbitrel тип 12копad16h тип 13коп#d16h

Группы команд 1.пересылки данных; 2.арифметических операций; 3.логических операций; 4.операций над битами; 5.передачи управления. Способы адресации 1. Непосредственная адресация ADD A, # 77. Значение непосредственного операнда обозначается символом #. 2. Регистровая адресация MOV A, Rn. 3. Прямая адресация MOV А, 0D0h. 4. Косвенно-регистровая адресация MOV 5. Индексная адресация MOVC

Название командыМнемокод Пример Пересылка в аккумулятор из регистра (n=0÷7)MOV A, Rn MOV A, R1 MOV A, P2 MOV A, PSW Пересылка в аккумулятор прямоадресуемого байтаMOV A, ad MOV A, 21A3 Пересылка в аккумулятор байта из РПД (i=0,1)MOV MOV Загрузка в аккумулятор константыMOV A, #d MOV A, #45 MOV A, #013h Пересылка в регистр из аккумулятораMOV Rn, A MOV R3, A MOV P0, A Пересылка в регистр прямоадресуемого байтаMOV Rn, ad MOV R2, 0121 Загрузка в регистр константыMOV Rn, #d MOV R7, #0ABh MOV TMOD,# b MOV P3,# b Пересылка по прямому адресу аккумулятораMOV ad, A MOV 0021, A Пересылка по прямому адресу регистраMOV ad, Rn MOV 0100,R5 Загрузка в стекPUSH ad Извлечение из стекаPOP ad Обмен аккумулятора с регистромXCH A, Rn Обмен аккумулятора с прямоадресуемым байтомXCH A, ad Обмен аккумулятора с байтом из РПДXCH Обмен младших тетрад аккумулятора и байта РПДXCHD Команды пересылки данных микроконтроллера 8051

Функциональная схема подключения ресурсов

РесурсРазряд порта Семисегментный индикатор 1 A1P0.1 B1P0.2 C1P0.3 D1P0.4 E1P0.5 F1P0.6 G1P0.7 Семисегментный индикатор 2 A2P1.1 B2P1.2 C2P1.3 D2P1.4 E2P1.5 F2P1.6 G2P1.7 Таблица распределения подключаемых ресурсов к разрядам портов

Типовая схема двунаправленного порта ввода/вывода МК Лекция 15. Связь микроконтроллера с внешней средой и временем

Организация портов ввода вывода Вывод портаАльтернативная функция РЗ.0RXD - вход последовательного порта Р3.1TXD - выход последовательного порта РЗ.2INT0 - внешнее прерывание 0 Р3.3INT1 - внешнее прерывание 1 РЗ.4Т0 - вход таймера-счетчика 0 РЗ.5Т1 - вход таймера-счетчика 1 РЗ.6WR - строб записи во внешнюю память данных РЗ.7RD - строб чтения из внешней памяти данных

Структура модуля таймера-счетчика

Логика работы T/C0 и Т/C1в режимах 0, 1

Логика работы T/C0 и Т/C1в режиме 2

Логика работы T/C0 и Т/C1в режиме 3

Лекция 16. Система прерываний микроконтроллера 8051

– Регистр масок прерывания (IE) Симв.Позиц.Имя и назначение EAIE.7 Снятие блокировки прерывания. Сбрасывается, программно для запрета всех прерываний независимо от состояний IE.4 - IE.0 IE.6Не используется lE.5Не используется ESIE.4 Бит разрешения прерывания, от приемопередатчика Установка/сброс программой для разрешения/запрета прерываний от флагов TI или RI. ET1IE.3 Бит разрешения прерывания от таймера. Установка/сброс программой для разрешения/запрета прерываний от таймера 1 EX1IE.2 Бит разрешения внешнего прерывания 1. Установка/сброс программой для разрешения/запрета прерывания 1 ET0IE.1 Бит разрешения прерывания от таймера 0. Установка/сброс программой для разрешения/запрета прерываний от таймера 0 EX0IE.0 Бит разрешения внешнего прерывания 0. Установка/сброс программой для разрешения/запрета прерывания 0 Регистр масок прерывания (IE)

Регистр приоритетов прерываний (IP) Симв.Поз.Имя и назначение PSIP.4 Бит приоритета приемопередатчика. Установка/сброс программой для присваивания прерыванию от приемопередатчика высшего/низшего приоритета. РТ1IP.3 Бит приоритета таймера 1. Установка/сброс программой для присваивания прерыванию от таймера 1 высшего/низшего приоритета. РХ1IP.2 Бит приоритета внешнего прерывания 1. Установка/сброс программой для присваивания приоритета внешнему прерыванию INT1. РТ0IP.1 Бит приоритета таймера 0. Установка/сброс программой для присваивания прерыванию от таймера 0 высшего/низшего приоритета. РХ0IP.0 Бит приоритета внешнего прерывания 0. Установка/сброс программой для присваивания приоритета внешнему прерыванию INT0.

org 0h jmp vkl org 03h ; Внешнее прерывание0 mov P3,#1 call Signal reti org 0Bh ; Прерывание таймера0 cpl P3.0 cpl P3.1 reti org 013h ; Внешнее прерывание1 call Voditel reti org 01Bh ; Прерывание таймера1 call Schet reti org 020h Signal: mov TMOD,# b; Таймеры - Режим0 mov TCON,# b; Включаем таймер0 mov IE,# b; Разрешение прерывания только от таймера 0 ret Пример организации прерываний

Лекция 17. Основные типы интерфейсов микроконтроллеров Подавление звона контактов Дребезг контактов При замыкании и размыкании переключателей в цепи возникают импульсные помехи, вызванные дребезгом контактов. Это явление часто возникает и системах на базе микроконтроллеров, где для ввода данных используется клавиатура, и «звон» может восприниматься как многократное нажатие клавиши.

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

Подключение светодиодов и 7-сегментных индикаторов Каждый светодиод в индикаторе имеет свой буквенный идентификатор ( А, В, С, D, E, F или G), и одна из ножек светодиода подключена к соответствующему внешнему выводу. Вторые ножки всех светодиодов соединены вместе и подключены к общему выводу. Этот общий вывод определяет тип индикатора: с общим катодом или с общим анодом. Выводы сегментов индикатора Порты МК

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

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

Существуют специальные микросхемы, которые выполняют опрос клавиатуры и посылают сигнал, когда данные готовы для считывания. На схеме показано использование микросхемы типа 74С922 в качестве интерфейса между клавиатурой с матрицей 4x4 ключа и микроконтроллером BASIC Stamp.

Управление жидкокристаллическим индикатором Большинство алфавитно-цифровых ЖКИ используют для управления контроллер Hitachi и реализуют общий интерфейс подключения. Благодаря этому ЖКИ, обеспечивающие вывод от 8 до 80 символов (организованных в виде 2 строк по 40 символов или 4 строк по 20 символов), являются полностью взаимозаменяемыми, так как их применение не требует какого-либо изменения программного обеспечения или аппаратных средств. Выводы ЖКИ имеют следующее назначение: 1. вывод 1 «Земля»; 2. вывод 2 напряжение питания Vcc; 3. вывод 3 вход регулировки контрастности изображения; 4. вывод 4 сигнал выбора регистра данных или команд (R/S); 5. вывод 5 сигнал выбора режима «чтение/запись» (R/W); 6. вывод 6 синхросигнал Е; 7. выводы линии передачи данных.

Временные диаграммы сигналов при выводе символа на ЖКИ Каждая посылка сопровождается синхросигналом Е, который инициирует прием данных в ЖКИ. Чтобы подсоединить микроконтроллер к ЖКИ при четырехбитном режиме используются только 4 старших разряда линии данных DB7-4

Дальнейшее сокращение числа требуемых линий ввода-вывода может быть обеспечено путем использования сдвигового регистра: в этом случае потребуется всего 3 линии. В качестве сдвигового регистра обычно используется микросхема 74x174 (где «х» или НС, или LS). Восьмибитный режим также можно реализовать с помощью сдвигового регистра, но требуется передавать девятый бит, который используется, чтобы обеспечить выдачу сигнала R/S. Бит R/S указывает, какая информация передается - команда или данные. Управление жидкокристаллическим индикатором

Имеется восемь программируемых символов, которые выводятся с помощью кодов с 0x000 по 0x007. Эти символы программируются с помощью команд, устанавливающих курсор ЖКИ на область памяти генератора символов («CGRAM»), и задают восемь значений адреса для построчной записи изображения символа. Следующие восемь байтов, записанные в память, представляют собой изображение каждой строки программируемого символа, начиная сверху. Набор команд, реализуемых ЖКИ: - очистить индикатор; - вернуть курсор в начальную позицию; - установить направление движения курсора; - разрешить экран/курсор; - переместить курсор/сдвинуть экран; - установить размерность интерфейса; - переместить курсор на область сgram; - переместить курсор на экран; - прочесть флаг «занято»; - вывести asci-символ на экран; - прочесть asci-символ с экрана. Управление жидкокристаллическим индикатором

В большинстве применений линию «R/W» подсоединяют к земле, так как чтение состояния ЖКИ не требуется. Это значительно упрощает приложе­ние, поскольку для считывания данных необходимо менять режим работы выводов с записи на чтение. В некоторых случаях возможность чтения со­стояния ЖКИ бывает полезна, например, при прокручивании данных на экране. Подключение линии «R/W» к земле также освобождает один вывод микроконтроллера. ЖКИ с размером символов 5x10 точек практически не выпускаются, по­этому бит «F» в команде «Установка размерности интерфейса» должен всегда быть равен 0. Управление жидкокристаллическим индикатором

Перед тем, как вводить в ЖКИ команды или данные, его надо инициализировать. Для 8-битного режима: 1.Подождать более 15 мс после подачи питания. 2.Записать 0x30 в ЖКИ и ждать 5мс до завершения выполнения команды. 3.Записать 0x30 в ЖКИ и ждать 160мкс до завершения выполнения команды. 4.Снова записать 0x30 в ЖКИ и ждать 160мкс до завершения выполнения команды или опрашивать флаг «Занято». 5.Установить рабочие характеристики ЖКИ: Ввести «Установка размерности интерфейса» Ввести 0x10, чтобы выключить экран. Ввести 0x01, чтобы очистить экран. Ввести «Установка направления движения курсора», чтобы установить поведение курсора. Ввести «Включение экрана/курсора», чтобы включить экран и, если требуется, курсор. Управление жидкокристаллическим индикатором (продолжение)

Блок выборки команд С1С1 С2С2 С3С3 С5С5 Блок декодиро- вания Блок выборки операндов Блок выполнения команд Блок возврата С4С С1С1 С2С2 С3С3 С4С4 С5С Конвейер с пятью стадиями Лекция 19. Конвейеризация в микропроцессорных системах

Блок-схема архитектуры Pentium

пятиступенчатый конвейер для обработки команд: PF (Prefetch) - предвыборка команд; D1 (Instruction Decode) - декодирование команды; D2 (Address Generate) - формирование адреса; EX (Execute) - выполнение команды в АЛУ и доступ к кэш-памяти; WB (Write Back) - обратная запись.

Микропроцессор с разнесенной архитектурой

Микропроцессор с разнесенной архитектурой

Структурная схема МП с параллельной архитектурой

Мультипроцессор, содержащий 16 процессов, которые разделяют общую память (а); изображение, разбитое на 16 секций, каждую из которых анализирует отдельный процессор (б). а) б) Лекция 20. Мультипроцессоры

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

На основе числа потоков команд и потоков данных Флинн выделяет четыре класса архитектур: SISD, MISD, SIMD, MIMD. 1) SISD (single instruction stream / single data stream) – одиночный поток команд и одиночный поток данных; 2) SIMD (single instruction stream / multiple data stream) – одиночный поток команд и множественный поток данных. 3) MISD (multiple instruction stream / single data stream) – множественный поток команд и одиночный поток данных. 4) MIMD (multiple instruction stream / multiple data stream) – множественный поток команд и множественный поток данных. Лекция 21. Классификация компьютеров параллельного действия (классификация Флинна)

Классификация компьютеров параллельного действия (классификация Флинна) Потоки команд Потоки данных Назва- ния Примеры 11SISDКлассическая машина фон Неймана 1МногоSIMDВекторный процессор, массивно параллельный процессор Много1MISDНе существует Много MIMDМультипроцессор

Расширенная классификация Флинна

1.UMA - Uniform Memory Access – архитектура с однородным доступом к памяти; 2.NUMA - Non Uniform Memory Access – архитектура с неоднородным доступом к памяти; 3. COMA - Cashe Only Memory Access – архитектура с доступом только к кэш-памяти. Так как мультикомпьютеры не имеют прямого доступа к отдельным модулям памяти, они иногда называются машинами NORMA - NO (Remote Memory Access) – без доступа к отдаленным модулям памяти. Мультикомпьютеры можно разделить на две категории. Первая категория содержит процессоры MPP (Massively Parallel Processors – процессоры с массивным параллелизмом). Вторая категория мультикомпьютеров включает рабочие станции, которые связываются с помощью уже имеющихся технологий соединений. Эти примитивные машины называются NOW (Network of Workstations – сеть рабочих станций) и COW (Cluster of Workstattions – кластер рабочих станций). Расширенная классификация Флинна

32 битный транспьютерный чип IMST414B Транспьютер (transputer) элемент построения многопроцессорных систем, выполненный на одном кристалле сверхбольшой интегральной схемы, продукт английской компании INMOS Ltd (ныне - подразделение STMicroelectronics). Другая интерпретация - транспьютер = передатчик (transfer) + вычислитель (computer) - указывает на присутствие встроенных скоростных устройств ввода/вывода для обмена данными с соседними. STMicroelectronics Лекция 22. Транспьютеры. Архитектура

Структура транспьютера и систем на его основе

В зависимости от модели транспьютер включает: - ЦП, 32- или 16-разрядный; - интерфейс внешней памяти; линка- двунаправленных канала; - программируемый блок событий (Event); - таймер; - внутреннее ОЗУ ёмкостью 2 или 4 Кбайта; - блок режимов работы Линков; - блок системных функций. Некоторые модели могут содержать 64-разрядное устройство операций с плавающей точкой и интерфейсные схемы внешних устройств. Состав транспьютера

Структура транспьютера Т800

Язык программирования Оккам это процедурный язык параллельного программирования высокого уровня, разработанный в начале 80-х годов группой учёных из Оксфорда под руководством Дэвида Мэя в рамках работ по созданию транспьютеров. Назван в честь английского философа XIV века Уильяма Оккамского, а его сентенция, известная как бритва Оккама, является девизом проекта. « Бритва (лезвие) О́ккама» методологический принцип, получивший название по имени английского монаха-францисканца, философа Уильяма Оккамского (Ockham, Ockam, Occam; ок ). В упрощенном виде он гласит: «Не следует множить сущее без необходимости» (либо «Не следует привлекать новые сущности без самой крайней на то необходимости»). Этот принцип формирует базис методологического редукционизма, также называемый принципом бережливости, или законом экономии. Лекция 23. Программирование транспьютеров

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

В языке определено несколько простых процессов: процесс присваивания, процессы ввода и вывода через канал (обозначаются символами ? и !), формальные процессы SKIP и STOP, процессы чтения таймера и таймерной задержки. Конструкция сама является процессом и может использоваться как компонента другой конструкции; другими словами, Оккам является иерархическим языком с блочной структурой. Последовательные программы могут быть представлены переменными и операциями присваивания, объединенными последовательными, условными конструкциями и конструкциями цикла. Параллельные программы используют каналы, операции ввода и вывода, объединенные параллельными и альтернативными конструкциями. Оккам - программы состоят из трех примитивных процессов: 1.v := е присвоение значения выражения е переменной v; 2.с ! е вывести значение выражения е в канал с; 3.с ? v ввести из канала с в переменную v. Примитивные процессы объединяются и формируют конструкции: - SЕQ - последовательное выполнение; - IF - условное выполнение; - WHILE – цикл; - PAR - параллельное выполнение; - ALT - альтернативное выполнение.

Все остальные процессы могут быть получены иерархическим построением (через ранее определённые). Для этой цели Occam предоставляет набор конструкторов процессов: SEQ, PAR, а также конструктор условного процесса IF, циклического процесса WHILE, процесса выбора процессов ALT. При этом действует правило, согласно которому составной процесс типа SEQ или PAR считается выполненным, когда завершены все составляющие его процессы. Процессы могут быть поименованы и вызваны по имени с передачей параметров. Процессы SEQ, PAR, IF и ALT могут быть реплицированы (размножены) при помощи репликатора FOR. Процесс ALT (как и PAR) привносит в язык индетерминизм, так как считается, что при одновременном выполнении нескольких условий точно предсказать дальнейший ход событий невозможно. Конструкция сама является процессом и может использоваться как компонента другой конструкции; другими словами, Оккам является иерархическим языком с блочной структурой. Язык программирования Оккам

Официально, в составе TDS (Transputer Development System), компанией INMOS Ltd. были выпущены реализации Occam 1.0, Occam 2.0 и Occam 2.1. После покупки компании и сворачивания разработок по транспьютерному проекту, разработчиками Occam в частном порядке была опубликована спецификация Occam 3. Позже группа энтузиастов осуществила реализацию языка Occam 2.5, представлявшего собой Occam 2.1 c некоторыми нововведениями из Occam 3. Последний же в полном объёме реализован не был. Развитие языка Occam шло в сторону добавления новых типов данных, высокоуровневых понятий и средств, облегчающих программирование. При этом философия языка не пересматривалась. Существуют реализации Occam для других, не-транспьютерных архитектур, в основном, любительские. Известны также библиотеки, реализующие примитивы базовой для Occam концепции CSP, что позволяет программировать в стиле Occam на других языках. Язык программирования Оккам

Каждый канал транспьютера физически состоит из двух одноразрядных каналов, один для работы в прямом, другой - для работы в обратном направлении, обозначаемые как link.in и link.out. Лекция 24. Обработка параллельных процессов в транспьютерах

В транспьютере, кроме вычислительного стека ЦП для целочисленной арифметики, имеется стек для работы над данными с плавающей запятой с регистрами AF, BF, CF. Список команд транспьютера включает 110 команд. Они делятся на две группы: с прямой адресацией (один байт) и с косвенной адресацией (два или более байтов). В ситуации, изображенной на рисунке 2, имеется четыре активных процесса, причем процесс S выполняется, а процессы P, Q и R ожидают выполнения в планировочном списке. Команда транспьютера start process создает новый активный процесс, добавляя его в конец планировочного списка. Команда end process завершает текущий процесс, убирая его из планировочного списка. В Оккаме конструкция PAR - параллельного запуска процессов может закончиться только тогда, когда завершатся все ее компоненты параллельного процесса. Каждая команда start process увеличивает их число, а end process уменьшает.

Связь транспьютеров В процессоре реализован ряд операций для поддержки обмена сообщениями, наиболее важными из которых являются: Input message; Output message Коммуникация по внутренним каналам В каждый момент времени внутренний канал (одно слово памяти) содержит или идентификатор процесса, или специальное значение empty. До использования канал инициализируется значением empty. Процесс Р выполняет инструкцию вывода в "свободный" канал С. Оценочный стек содержит указатель на сообщение, адрес канала С и число байтов в сообщении.

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

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

Процессы Р и Q выполняются на разных транспьютерах и взаимодействуют через канал С, реализованный с помощью линии связи между транспьютерами. Лекция 25. Структура связи транспьютеров по внешнему каналу

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

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

Характеристики транспьютеров Транспьютеры выпускаются фирмой INMOS, начиная с 1985 года. За исключением транспьютера Т212, который имеет только две связи и 16- разрядные АЛУ, все остальные типы транспьютеров имеют 4 связи и 32 или 64-разрядные АЛУ. Система команд транспьютеров относится к классу CISC. Т9000 является суперскалярным, то есть может выполнять более 1 команды за такт. Тип трансп., год Состав АЛУ, объем внутренней памяти Частота синхр., МГц Быстро - действие Число транз /, млн Т414 (1985) АЛУ-I-32 разр. 2 Кбайт ,1 МФлопс0,2 Т800 АЛУ-I-32 разр. АЛУ-F-64 разр. 4 Кбайт ,2 МФлопс0,3 Т9000 (1995) АЛУ-I-32 разр. АЛУ-F-64 разр. 16 Кбайт Мипс 25 МФлопс 3,3

Лекция 26. Учебный лабораторный комплекс SDK-1.1 Основу лабораторного комплекса составляет контроллер- конструктор SDK-1.1 на базе ОКЭВМ фирмы Analog Devices ADuC812. Сам лабораторный комплекс представляет собой совокупность контроллера-конструктора, подключенного к персональному компьютеру, и программного обеспечения для ПК и SDK-1.1. Подключение осуществляется к СОМ-порту ПК через кабель RS232, комплекс инструментальных программ обеспечивает весь процесс программирования SDK-1.1: компиляцию, доставку и запуск программ в SDK-1.1. Основными областями использования комплекса являются: 1) обучение основам вычислительной и микропроцессорной техники, систем управления; 2) автоматизация простых технологических процессов и лабораторных исследований; 3) макетирование микропроцессорных систем, отладка программного обеспечения для систем на базе широко распространенного ядра Intel MCS-51; 4) радиолюбительство, управление бытовой техникой.

Структура аппаратной части

В состав учебного стенда SDK-1.1 входят: 1. микроконтроллер ADUC812BS; 2. внешняя E2PROM объемом 256 байт; к внешней памяти sram с возможностью расширения до 512к; 4. клавиатура АК1604A-WWB фирмы ACCORD; 5. жидкокристаллический индикатор (ЖКИ) WH1602B-YGK-CP; 6. часы реального времени PCF8583; 7. сторожевой таймер (watchdog); 8. гальванически изолированный порт rs232c для связи с ПК; 9. набор сигнальных светодиодов (8 шт.). 10. порт дискретного ввода-вывода (8, 16, 20-ти разрядный); 11. аналоговый порт вывода на основе двух 12-рарядных ЦАП; 12. акустический пьезокерамический излучатель; 13. переключатели-стимуляторы 10 линий параллельного порта, сигналов от внешних источников прерываний.

Процессор ADuC812 является клоном Intel 8051 со встроенной периферией. Основные характеристики: - рабочая частота мгц; - 8-канальный 12-битный АЦП со скоростью выборок 200 К/с (в режиме ПДП); - два 12-битных ПАП (код-напряжение); - внутренний температурный сенсор; байт программируемого E2PROM со страничной организацией (256 страниц по 4 байта); байт внутренней памяти данных; - адресное пространство 16 мб; - режим управления питанием; - асинхронный последовательный ввод-вывод; - интерфейс I2С; - три 16-битных таймера/счетчика и таймер watchdog.

Распределение памяти в SDK 1.1

В стенде SDK-1.1 ввод-вывод данных осуществляется с помощью портов микроконтроллера и микросхемы ПЛИС, которая имеет 8 регистров, отображаемых во внешнее адресное пространство процессора. ПортНазначение P0.7-P0.0Шина адреса/данных AD(7-0) системного интерфейса P1.7-P1.0 Аналоговый вход, линии которого мультиплексируются с линиями 7- 0 АЦП. P2.7-P2.0Адресная шина системного интерфейса А(15-8). P3.0RxD - входные данные приемопередатчика UART. P3.1TxD - выходные данные приемопередатчика UART. P3.2#INT0 - сигнал внешнего прерывания 0, активный уровень - лог. "0". P3.3#INT1 - сигнал внешнего прерывания 1, фктивный уровень - лог. "0". P3.4Счетный вход таймера-счетчика Т0, активный уровень - лог. "0". P3.5Счетный вход таймера-счетчика Т1, активный уровень - лог. "0". P3.6#WR - сигнал записи во внешнюю память XRAM. P3.7#RD - сигнал чтения из внешней памяти XRAM. Лекция 27. Карта портов ввода-вывода

Регистры ПЛИС АдресРегистрДоступНазначение HKBR/WРегистр клавиатуры HDATA_INDR/WРегистр шины данных HEXT_LOR/W Регистр данных параллельного порта (0..7) HEXT_HIR/W Регистр данных параллельного порта (8..15) HENAW Регистр управления портами ввода-вывода, звуком и сигналом INT HC_INDWРегистр управления ЖКИ HSVW Регистр управления светодиодами

Общий вид стенда SDK 1.1

Расшифровка обозначений на схеме лицевой панели стенда SDK-1.1. ЭлементОписание LCDЖидкокристаллический индикатор WH1602B-YGK-CP. KEYBOARDМатричная клавиатура AK1604A-WWB. Z1Звуковой пьезокерамический излучатель. SW2Кнопка сброса RESET. J4Разъем питания стенда типа "JACK", полярность безразлична. JDP1Разъем последовательного порта стенда. J1Выводы каналов АЦП и ЦАП. SW1 Переключатель, занимающий каналы 0 и/или 1 ЦАП на входы соответствующих (0, 1) каналов ЦАП. J3 16 линий параллельного порта ПЛИС MAX и 4 линии параллельного порта P3 микроконтроллера ADuC812 (INT0/1,T0/1). SW3 Набор переключателей, замыкающих соответствующие выводы J3 на корпус (переключение в лог. "0"). J2Выводы JTAG - интерфейса ПЛИС MAX. JP1 Перемычка, замыкающая вывод PSEN микроконтроллера ADuC812 на корпус. JP3 Разъемы подключения внешней батареи питания часов реального времени PCF8583. D9-D16Набор сигнальных светодиодов.

ПрерываниеНаименование Адрес вектора Приоритет PSMIИсточник питания ADuC812.43Н1 IE0Внешнее прерывание INTO.0ЗН2 ADCIКонец преобразования АЦП.ЗЗН3 TF0Переполнение таймера 0.0ВН4 IE1Внешнее прерывание INT1.13Н5 TF1Переполнение таймера 1.1ВН6 I2CI/ISPI Прерывание последовательного интерфейса (I2С,ISPI). ЗВН7 RI/TIПрерывание UART.23Н8 TF2/EXF2Переполнение таймера 2.2ВН9 Лекция 28. Прерывания ADuC812

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

Подготовка программы в текстовом редакторе или среде программирования. Транслирование исходного текста и получение загрузочного НЕХ-модуля. Подготовка и загрузка НЕХ-модуля в стенд. Прием и обработка НЕХ-модуля резидентным загрузчиком НЕХ202, передача управления загруженной программе. Лекция 29. Основные этапы программирования стенда

Шаг 1. Для программирования стенда sdk-1.1 необходимо установить инструментальные средства фирмы KEIL SOFTWARE для этого на установочном диске зайдите в папку sdk1.1\Keil\ и запустите ek51v622.exe и следуйте инструкциям установки. Шаг 2. После завершения установки зайдите в папку в которую вы установили Keil и создайте там папку main, распакуйте в нее файл main.zip с установочного диска, он также находится на устоновочном диске в папке sdk1.1\Examples\main.zip. Шаг 3. В созданной вами папке main, удалите папку src и скопируйте вместо нее папку src с установочного диска sdk1.1\src. Шаг 4. Далее в папку main скопируйте файлы t2.exe из sdk1.1\Utilities, и t167b.exe из sdk1.1\Utilities\t167b, последний файл скопируйте еще раз но в папку main\bin\. Шаг 5. Прописать пути: откройте в редакторе файл build.bat из main\, найдите строчки: set CDIR=d:\c51 set UTILS=d:\UTILS вместо d:\ напишите тот путь, по которому вы установили Keil.

Инструментальные средства фирмы Keil Software Keil Software поддерживает все стадии разработки приложения: создание исходного файла на С или Ассемблере, трансляцию, исправление ошибок, линкование объектных файлов, тестирование приложения. В пакете Keil Software содержатся следующие средства разработки для микроконтроллера 8051: - С51 - компилятор С; - Макроассемблер А51; - Динамический загрузчик/компоновщик BL51; - Конвертер объектных файлов ОС51; - Конвертер объектных и НЕХ-файлов ОН51; - Менеджер библиотек LIB51; - Симулятор dScope-51 (для Windows); - Отладчик/компилятор mVision/51 (для Windows ); - Операционная система реального времени (Real-Time Operating System - RTX).

Кросс-компилятор языка С предназначен для создания приложений для процессоров семейства 8051 на языке программирования С. Компилятор С51 поддерживает стандарт ANSI С, разработан специально для 8051 семейства и позволяет создавать программы на языке С, сохраняя эффективность и скорость оптимизации Ассемблера. Расширения, включенные в инструментальные средства Keil, обеспечивают полный доступ к ресурсам микроконтроллеров Для локализации ошибок полезно воспользоваться выходными данными С-компилятора или средствами PC-Link. Отличительные черты компилятора: - девять основных типов данных, включая быструю 32-разрядную IEEE-арифметику с плавающей точкой; - разнообразие селекторов для различных областей памяти: code, data, bdata, idata, xdata и pdata, которые позволяют осуществить эффективный доступ к различным областям памяти и сгенерировать компактный код. Лекция 30. Компилятор языка Си фирмы Keil Software

Селекторы для различных областей памяти СелекторОбласть памяти data 128 байт во встроенном ОЗУ непосредственная байтовая адресация bit 128 бит во встроенном ОЗУ непосредственная битовая адресация bdata 128 бит/16 байт во встроенном ОЗУ непосредственная битовая/байтовая адресация idata 256 байт во встроенном ОЗУ непосредственная адресация pdata 256 байт в страничной внешней памяти XDATA xdata64 Кбайт памяти XDATA code64 Кбайт памяти CODE

Расширение языка С Компилятор С51 очень гибок. Он поддерживает стандарт ANSI и все аспекты программирования на С, описанные этим стандартом. Все дополнения к стандарту предназначены для поддержки контроллера Дополнения касаются следующих понятий: - типы данных; - типы памяти; - модели памяти; - казатели; - реентерабельные функции; - функции обработки прерываний; - операционные системы реального времени; - поддержка pl/m и а51. Типы данных Компилятор С51 поддерживает все типы данных, приведенные ниже в таблице. Скалярные переменные могут быть объединены в структуры, объединения и массивы. За некоторым исключением доступ к значениям переменных может быть получен с помощью указателей.

Типы данных БитыБайтыОбласть значений bit*1от 0 до 1 signed char81от -128 до +127 unsigned char81от 0 до 255 enum162от до signed short162от до unsigned short162от О до signed int162от до unsigned int162от 0 до signed long324от до unsigned long324от 0 до float324 от ± Е-38 до ± Е+38 sbit*10от 0 до 1 sfr*81от 0 до 255 sfr 16*162от 0 до 65535

Типы данных sbit, sfr и sfr 16 используются для обращения к специальным регистрам процессора Например, строка sfr Р0 = 0x80,-объявляет переменную Р0 и назначает ей адрес специального регистра 0x80. Это адрес порта Р0. Компилятор С51 производит автоматическое преобразование типов в случае, если результат относится к другому типу. Кроме того, можно выполнить принудительное приведение типов. В процессе приведения расширение знака к переменным знаковых типов добавляется автоматически. Модификаторы памяти Компилятор С51 поддерживает контроллеры типа 8051 и обеспечивает доступ ко всем областям памяти контроллера. Для каждой переменной можно точно указать область ее размещения в памяти. Обращение к внутренней памяти данных происходит гораздо быстрее, чем к внешней. Поэтому переменные, которые используются чаще других, следует размещать во внутренней памяти, а остальные – во внешней. Применяя модификаторы памяти при объявлении переменной, можно указать, где именно она будет размещена.

Инструментальная система Т167В призвана решать следующие задачи: - преобразование hex- и bin- файлов; - передача загрузочных модулей различных форматов в целевую систему с протоколами разного уровня сложности; - получение информации из целевой системы; - обеспечение элементарных операций с последовательным каналом (прием и передача байта, эмуляция терминала, настройка скорости); - обеспечение быстрой адаптации к целевой системе. Управляющие клавиши - CTRL+BREAK - аварийный выход (в большинстве случаев приводит к корректному завершению работы Т167В при зависаниях). - Alt+X - выход в DOS; - Up, Down - перелистывание команд (командная строка в Т167В имеет историю, записываемую в файл). Лекция 31. Инструментальная система для Win 9x/NT

Инструментальная система Т2 для Windows 9x/NT с точки зрения команд для работы с SDK-1. является аналогом системы Т167В для MS-DOS (за исключением нескольких команд). Перечень основных команд системы Т2 КомандаДействие OPENCHANNELОткрытие СОМ-порта с установкой сигнала RTS. OPENCOM1, OPENCOM2 Открытие портов СОМ1 или COM2 с установкой сигнала RTS. CLOSECHANNELЗакрытие СОМ-порта. TERMВключение эмулятора терминала. +ЕСНО Включение режима копирования консольного вывода в файл echo.txt. -ECHO Выключение режима копирования консольного вывода в файл echo.txt LOADHEXНЕХ-загрузка. ADDHEXSTARTДобавление стартового адреса в конец НЕХ-файла. BYEВыход из Т2. LFILEИнтерпретация командного файла.

OPENCHANNEL (baud -> com) - открытие последовательного порта на заданной скорости. Числовой параметр baud определяет скорость в бодах, например, Параметр com может иметь два значения: «coml» или «сот2». Пример: 9600 openchannel com1 OPENCOM1, OPENCOM2 (->) - открытие СОМ1 или COM2 на скорости 9600 бод. Пример: opencom1 CLOSECHANNEL (->) - закрытие ранее открытого СОМ-порта. Пример: closechannel TERM (w->) - включение эмулятора терминала:0 - бинарный;1 - HEX; Пример: 1 term +ЕСНО (->) -ECHO (->) - включение/выключение режима копирования консольного вывода в файл echo.txt.

LOADHEX+ (->) filename.hex Загрузка НЕХ-файла в целевую систему (SDK-1.1) по протоколу загрузчика НЕХ202. Этот протокол предполагает последовательную пересылку строк из НЕХ-файла filename.hex. После посылки очередной строки ожидается подтверждение со стороны НЕХ202 в виде символа '+' или запрос на повторную посылку в виде '-'. Далее ожидается символ '.'и производится либо посылка следующей строки (если были приняты '+' и '.'), либо повторная посылка данной строки. Если снова были приняты '-' и '.', то попытка повторяется во второй раз и т.д. - всего 9 раз, после чего производится аварийный выход. Посылка НЕХ-файла производится только при наличии периодической индикации работоспособности НЕХ202, проявляющейся в посылке символа '.' Необходимо заметить, что перед посылкой НЕХ-файла, сгенерированного в какой-либо среде разработки, необходимо добавить в его конец стартовый адрес (то есть адрес в памяти RAM, на который передается управление после загрузки в SDK-1.1) командой addhexstart. Пример: loadhex+ myfile.hex

ADDHEXSTART (addr,seg->) filename.hex Добавление в конец файла filename.hex строчки, которая нужна для передачи управления загрузчиком НЕХ202 по адресу addr после загрузки в целевую систему (SDK-1.1). Пример: 0x9000 0x0 addhexstart myfile.hex BYE (->) Выход из Т167В. Пример: bye LFILE (->) filename.ext Интерпретация командного файла filename.ext. Файл представляет собой набор строк текста, содержащих команды Т167В в том же виде, в котором они представлены в командной строке Т167В. Пример: lfile myfile.ini

Резидентный загрузчик НЕХ202 располагается во Flash-памяти ADuC812 начиная с адреса 0l00h. Он обеспечивает начальную инициализацию системы, загрузку программ в НЕХ-формате в память SDK-1.1 и передачу им управления. Начальная инициализация. При включении питания или передаче управления на ячейку с адресом 0 происходит повторная инициализация всех регистров специального назначения их значениями по умолчанию. Это сделано для того, чтобы при случайной передаче управления на ячейку с адресом 0 вследствие возможной ошибки в пользовательской программе не происходило сбоя системы, а сама система вела себя так же, как при включении питания. Эта же процедура повторяется непосредственно перед передачей управления загруженной программе. В случае успешной инициализации на ЖКИ на мгновение выводится надпись «SDK-1.1, 2001 ©LMT Ltd» и на резонатор выдается короткий сигнал. Лекция 32. Резидентный загрузчик НЕХ202

Загрузка программ в память SDK-1.1 После процедуры инициализации системы последовательный канал настраивается в режим 9600 бит/сек, 8 бит данных, 1 стоп-бит, без контроля четности и в него выдается строчка «НЕХ202-ХХ», где XX - номер версии загрузчика. Далее с интервалом примерно в 200 мс выдается символ '.' и ожидается появление символа со стороны инструментальной системы на PC. При появлении символа, если это первый символ строки в НЕХ-формате, то есть двоеточие (':'), выдача символа '.' прекращается и производится прием остальной части НЕХ-строки. После завершения приема очередной НЕХ-строки вычисляется ее контрольная сумма. Если она не совпадает с принятой, то в последовательный канал выдается символ '-', сигнализирующий об ошибке приема. В противном случае выдается '+' и принятая строка обрабатывается в соответствии с указанной в ней командой (запись данных в память, конец блока или передача управления). Далее, если не было команды передачи управления, вывод в последовательный канал символа '.' возобновляется и ожидается следующая НЕХ-строка.

Передача управления загруженной программе. Передача управления происходит по приему НЕХ-строки вида :02AAAA060000SS, где АААА - это НЕХ-адрес, по которому необходимо передать управление, SS - контрольная сумма НЕХ-строки, -символ возврата каретки. Такая строчка должна быть добавлена в конец каждого НЕХ-файла, загружаемого в SDK-1.1. Для этого в поставляемых с SDK-1.1 инструментальных системах есть команда addhexstart. Важное замечание. В процессе своей работы НЕХ202 использует область статической памяти в диапазоне адресов F000h-FFFFh, что следует учитывать при написании программ для стенда. Расположение части кода или статических данных по этим адресам может привести к некорректной работе загрузчика и неработоспособности загружаемой программы. Формат стандартного Intel Hex файла Эта часть описывает формат стандартного Intel Hex файла. Шестнадцатеричный формат Intel или формат Intel Hex является стандартом для запоминающих машин в отображаемом и печатаемом форматом. Стандартный Intel Hex формат генерируется ассемблером MicroConvertor (8051-совместимый код).

Формат записи Intel Hex Поле Число байт Описание Начало записи1«:», характеризует начало записи Длина записи2число байт в записи Адрес загрузки4начальный адрес для размещения байтов данных Тип записи200 = данные, 01 = завершение Байты данных0-16данные Контрольная сумма 2 сумма байтов данных в записи + контрольная сумма = 0