ЭКЛ-МПС.pptx
- Количество слайдов: 164
МИКРОПРОЦЕССОРНЫЕ СИСТЕМЫ ЭЛЕКТРОННЫЙ КУРС ЛЕКЦИЙ АВТОР: БУРЬКОВА Е. В.
Содержание Лекция 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. Прерывания ADu. C 812 Лекция 29. Основные этапы программирования стенда Лекция 30. Компилятор языка Си фирмы Keil Software Лекция 31. Инструментальная система для Win 9 x/NT Лекция 32. Резидентный загрузчик НЕХ 202
Список необходимой литературы для изучения курса 1. Бурькова Е. В. Освоение микропроцессорной техники в формировании информационной компетентности студентов университета. – Челябинск, 2005. 2. Бурькова Е. В. Моделирование микропроцессорных систем: методические указания к лабораторному практикуму – Оренбург, ГОУ ОГУ, 2007. 3. Бурькова Е. В. Проектирование микропроцессорных систем: методические указания к курсовому проектированию – Оренбург, ГОУ ОГУ, 2008. 4. Новиков Ю. В. , Скоробогатов П. К. Основы микропроцессорной техники. – Москва. 2003. 5. Предко М. Руководство по микроконтроллерам. - Москва, 2001 6. Таненбаум Э. Архитектура компьютера. – Санкт-Петербург: ПИТЕР, 2003. 7. Цилькер Б. Я. , Орлов С. А. Организация ЭВМ и систем. – Санкт. Петербург: ПИТЕР, 2006.
Лекция 1. Классификация микропроцессоров По технологии изготовления: 1. PMOS P – Channel Metal Oxide Semiconductor – i 4004, 8008; 2. NMOS N – Channel Metal Oxide Semiconductor – i 8080, i 8085; 3. HMOS (N – Channel high performance Metal Oxide Semiconductor) 8086, 80186, 80286, 80386, 80486, Pentium; 4. CMOS (КМОП) – сигнальные и медийные МП семейство TMS 320 C 2 X, cyrix 6 x 86, Athlon , Pentium и т. д. По типу архитектуры: 1. однокристальные МП; 2. однокристальные микроконтроллеры; 3. разрядно – модульные МП; 4. CISC и RISC процессоры; 5. Транспьютеры.
Классификация микропроцессоров (продолжение) По разрядности данных: 1. 2 разрядные – К 589; 2. 4 разрядные – К 145 ИК 18, КМ 1804, I 4004; 3. 8 разрядные – i 8008, i 8080, К 580, К 1816, i 8051; 4. 16 разрядные – i 8086, i 8088, 80186, 80286; 5. 32 разрядные –i 80386, i 80486, Pentium; 6. 64 разрядные – AMD Opteron, Power. PC 970, Intel Xeon MP. По назначению: 1. универсальные; 2. специализированные МП. По виду обрабатываемой информации: 1. цифровые; 2. аналоговые МП. По виду временной организации работы: 1. синхронные; 2. асинхронные.
Структура микропроцессорной системы
Схема включения процессора Сброс Процессор питание RESET U СLK GND Такт Буфер Системная магистраль
Основные функции процессора: 1. 2. 3. 4. выборка (чтение) выполняемых команд; ввод (чтение) данных из памяти или УВВ; вывод (запись) данных в память или УВВ; обработка данных (операндов), в том числе арифметические операции над ними; 5. адресация памяти, т. е. задание адреса памяти, с которым будет производиться обмен; 6. обработка прерываний и режима прямого доступа к памяти (ПДП).
Внутренняя структура микропроцессора Процессор Арифметико-логическое устройство (АЛУ) PC SP RG RG RG Шина данных Схема управления выборкой команд Логика управления Регистр признаков Схема управления прерываниями Схема управления ПДП PSW Шина Тактовый адреса управления питания сигнал Сброс
Лекция 2. Организация памяти МП-систем Память является необходимым компонентом микропроцессорной системы. Память используется как для хранения команд, так и данных. Функции памяти обеспечиваются запоминающими устройствами (ЗУ), предназначенными для фиксации, хранения и выдачи информации в процессе работы микропроцессорной системы. При рассмотрении запоминающих устройств учитывают следующие характеристики: 1. место расположения; 2. емкость; 3. единица пересылки; 4. метод доступа; 5. быстродействие; 6. физический тип; 7. стоимость.
Основные методы доступа к памяти: 1. 2. 3. 4. последовательный, прямой, произвольный, ассоциативный. Быстродействие ЗУ определяется параметрами: 1. время доступа; 2. длительность цикла памяти или период обращения; 3. скорость передачи. где - среднее время считывания или записи N битов; - среднее время доступа; R – скорость пересылки в битах в секунду.
Иерархическая архитектура памяти
Увеличение разрядности памяти
Структура памяти на основе блочной схемы Рассмотрим блочную структуру памяти на примере памяти емкостью 512 слов, построенной из четырех банков по 128 слов в каждом.
Блочная память с чередованием адресов по циклической схеме
Блочно-циклическая схема расслоения памяти
Структура микросхемы памяти
Запоминающий элемент статического ОЗУ
Лекция 3. Виды статических ОЗУ
Асинхронные статические ОЗУ: время доступа составляло 15 -20 нс (в лучшем случае — 12 нс) Синхронные статические ОЗУ: SSRAM обеспечивает работу в пакетном режиме с формулой 3 1 1 1, но лишь до определенных значений тактовой частоты шины. При более высоких частотах формула изменяется на 3 2 2 2. РВ SRAM. Начиная с Pentium II, взамен SSRAM оснащаются статической оперативной памятью с пакетным конвейерным доступом (РВ SRAM — Pipelined Burst SRAM). Время доступа к РВ SRAM составляет от 4, 5 до 8 нс, при этом формула 3 1 1 1. Компания 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 - формула 5 5. Микросхемы данного типа могли работать на частотах до 40 МГц и из за низкого быстродействия (время доступа составляло около 120 нс) просуществовали недолго. Микросхемы FPMDRAM. Микросхемы динамического ОЗУ, реализующие режим FPM, также относятся к ранним типам DRAM. Схема чтения для FPM DRAM описывается формулой 5 3 3 3 (всего 14 тактов). Время доступа до 60 нс. Микросхемы EDO DRAM. с гиперстраничным режимом доступа (НРМ, Hyper Page Mode), более известные как EDO (Extended Data Output — расширенное время удержания данных на выходе) формула 5 2 2 2, что на 20% быстрее, чем у FPM. Время доступа составляет порядка 30 40 нс. Максимальная частота системной шины для микросхем EDO DRAM не превышает 66 МГц. Микросхемы BEDО DRAM. Технология EDO была усовершенствована компанией VIA Technologies. Новая модификация EDO известна как BEDO (Burst EDO — пакетная EDO). Формула 5 1 1 1. Микросхемы 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 с удвоенной скоростью передачи данных). Существует несколько спецификаций DDR SDRAM, в зависимости от тактовой частоты системной шины: DDR 266, DDR 333, DDR 400, DDR 533. Пиковая пропускная способность микросхемы памяти спецификации DDR 333 составляет 2, 7 Гбайт/с, а для DDR 400 — 3, 2 Гбайт/с. Микросхемы RDRAM, DRDRAM. (Rambus Direct RAM). Существует несколько разновидностей этой технологии: Base, Concurrent и Direct. Во всех тактирование ведется по обоим фронтам синхросигналов (как в DDR), благодаря чему результирующая частота составляет соответственно 500 600, 600 700 и 800 МГц. Микросхемы SLDRAM (Sync Link DRAM). Микросхемы ESDRAM. Микросхемы CDRAM.
Лекция 5. Структура ассоциативной памяти
Классификация ассоциативных ЗУ по виду поиска
Классификация ассоциативных ЗУ по способу опроса
Классификация ассоциативных ЗУ по способу выборки Цепь очередности реализуется с помощью достаточно сложного устройства, где фиксируются слова, образующие многозначный ответ. Цепь очередности позволяет производить считывание слов в порядке возрастания номера ячейки АЗУ независимо от величины ассоциативных признаков. При алгоритмическом способе извлечения многозначного ответа выборка производится в результате серии опросов. Серия опросов может формироваться путем упорядочивания тех разрядов, которые были замаскированы и не участвовали в признаке поиска.
Лекция 6. Структура системы с основной и кэш-памятью
Прямое отображение основной памяти При прямом отображении адрес строки i кэш памяти, на которую может быть отображен блок из ОП, определяется выражением: i =j mod m, где m — общее число строк в кэш памяти. В нашем примере i =j mod 128, где i может принимать значения от 0 до 127, а адрес блока j — от 0 до 16 383. Иными словами, на строку кэша с номером i отображается каждый 128 й блок ОП, если отсчет начинать с блока, номер которого i.
При реализации такого отображения 14 разрядный адрес блока основной памяти условно разбивается на два поля. Логика кэш памяти интерпретирует эти 14 бит как 7 разрядный тег и 7 разрядное поле 7 строки. Поле строки указывает на одну из 128 = 2 строк кэш памяти, а именно на ту, куда может быть отображен блок с заданным адресом. Полностью ассоциативное отображение
Множественно-ассоциативное отображение Кэш память разбивается на 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 разрядном адресе блока 4 основной памяти старшие 10 разрядов показывают номер сектора, а 10 младшие 4 — номер блока внутри сектора. В свою очередь, кэш память 3 состоит из 8 = 2 секторов, и 7 разрядный адрес строки в кэш включает в себя адрес сектора кэш (3 старших разряда) и номер блока внутри сектора (4 младших разряда).
Лекция 7. Алгоритмы замещения информации в кэш-памяти 1. Алгоритм замещения на основе наиболее давнего использования (LRU — Least Recently Used). Замещается та строка кэш памяти, к которой дольше всего не было обращения. Проводившиеся исследования показали, что алгоритм LRU работает достаточно хорошо в сравнении с оптимальным алгоритмом. 2. Алгоритм, работающий по принципу «первый вошел, первый вышел» (FIFO — First In First Out). Заменяется строка, дольше всего находившаяся в кэш памяти. 3. Замена наименее часто использовавшейся строки (LFU — Least Frequently Used). Заменяется строка в кэш памяти, к которой было меньше всего обращений. Связывают каждую строку со счетчиком обращений, к содержимому которого после каждого обращения добавляется единица. Главным претендентом на замещение является строка, счетчик которой содержит наименьшее число. 4. Произвольный выбор строки для замены. Замещаемая строка выбирается случайно. Реализовано с помощью счетчика, содержимое которого увеличивается на единицу с каждым тактовым импульсом, независимо от того, имело место попадание или промах. Значение в счетчике определяет заменяемую строку.
Уровни КЭШ-памяти Система с тремя уровнями КЭШ памяти
КЭШ-память прямого отображения Представление адреса ТЕГ № строки Смещение Байт
Динамическое прогнозирование ветвлений Таблица условных переходов
Таблица с битами прогнозирования
Таблица соответствия между адресом перехода и целевым адресом
Лекция 8. Системы ввода/вывода Технически система ввода/вывода в рамках микропроцессорной системы реализуется комплексом модулей ввода/вывода (МВВ). Модуль ввода/вывода выполняет сопряжение ВУ с ядром микропроцессорной системы и различные коммуникационные операции между ними. Две основные функции МВВ: обеспечение интерфейса с ЦП и памятью ( «большой» интерфейс); обеспечение интерфейса с одним или несколькими периферийными устройствами ( «малый» интерфейс).
Способы подключения СВВ к процессору
Распределение совмещенного адресного пространства Совмещенное адресное пространство используется в вычислительных машинах MIPS и SPARC.
Достоинства совмещенного адресного пространства: расширение набора команд для обращения к внешним устройствам позволяет сократить длину программы и повысить быстродействие; значительное увеличение количества подключаемых внешних устройств; возможность внепроцессорного обмена данными между внешними устройствами, если в системе команд есть команды пересылки между ячейками памяти; возможность обмена информацией не только с аккумулятором, но и с любым регистром центрального процессора. Недостатки совмещенного адресного пространства: - сокращение области адресного пространства памяти; усложнение декодирующих схем адресов в СВВ; трудности распознавания операций передачи информации при вводе/выводе среди других операций. Сложности в чтении и отладке программы; трудности при построении СВВ на простых модулях ввода/вывода: сигналы управления не смогут координировать сложную процедуру ввода/вывода. Поэтому МВВ часто должны генерировать дополнительные сигналы под управлением программы.
Достоинства выделенного адресного пространства: адрес внешнего устройства в команде ввода/вывода может быть коротким. В большинстве СВВ количество внешних устройств намного меньше количества ячеек памяти. Короткий адрес ВУ подразумевает такие же короткие команды ввода/вывода и простые дешифраторы; программы становятся более наглядными, так как операции ввода/вывода выполняются с помощью специальных команд; разработка СВВ может проводиться отдельно от разработки памяти. Недостатки выделенного адресного пространства: ввод/вывод производится только через аккумулятор центрального процессора. Для передачи информации от ВУ в РОН, если аккумулятор занят, требуется выполнение четырех команд (сохранение содержимого аккумулятора, ввод из ВУ, пересылка из аккумулятора в РОН, восстановление содержимого аккумулятора); перед обработкой содержимого ВУ это содержимое нужно переслать в ЦП.
Лекция 9. Структура внешнего устройства и модуля ввода-вывода Все множество ПУ можно свести к трем категориям: для общения с пользователем; для общения с ВМ; для связи с удаленными устройствами. Структура внешнего устройства
Структура модуля ввода/вывода
Программно-управляемый ввод данных
Ввод данных по прерыванию
Организация прямого доступа к памяти
Организация прямого доступа к памяти Точки возможного вмешательства в цикл команды при прямом доступе к памяти и при обычном прерывании Возможные конфигурации систем прямого доступа к памяти
Лекция 10. Архитектура микроконтроллеров Микроконтроллер – это самостоятельная компьютерная система, которая содержит процессор, вспомогательные схемы и устройства ввода/ вывода данных, размещенные в общем корпусе. Основные типы: 1. Встраиваемые 8 разрядные МК; 2. 16 и 32 разрядные МК с внешней памятью; 3. Цифровые сигнальные процессоры (DSP). Типичные значения max частоты тактовых сигналов составляют для различных микроконтроллеров 10 30 МГц. Главным фактором, ограничивающим их скорость, является время доступа к памяти, применяемой в МК.
Структура встраиваемых микроконтроллеров
Микроконтроллеры с внешней памятью
Модульная организация микроконтроллеров
Принстонская архитектура микроконтроллера
Гарвардская архитектура микроконтроллера
Лекция 11. Типы памяти микроконтроллеров Подсистема памяти микроконтроллеров содержит: 1. Память программ (ПЗУ); 2. Память данных (ОЗУ); 3. Регистры МК. Память программ 1. ROM (масочно программируемое ПЗУ); 2. PROM (однократно программируемое ПЗУ); 3. EPROM (электрически программируемое ПЗУ с ультрафиолетовым стиранием); 4. EEPROM (ПЗУ с электрической записью и стиранием; 5. Flash разновидность EEPROM.
Память данных МК выполняется на основе статического ОЗУ. Содержимое ячеек ОЗУ сохраняется при снижении тактовой частоты МК до сколь угодно малых значений (с целью снижения энергопотребления). USTANDBY «напряжение хранения информации» . При снижении напряжения питания ниже минимально допустимого уровня UDDMIN, но выше уровня USTANDBY работа программы МК выполняться не будет, но информация в ОЗУ сохраняется. Уровень напряжения хранения составляет обычно около 1 В, что позволяет в случае необходимости перевести МК на питание от автономного источника (батареи) и сохранить в этом режиме данные ОЗУ.
Регистры микроконтроллеров 1. Регистры процессора: аккумулятор, регистры состояния, индексные регистры, 2. Регистры управления: регистры управления прерываниями, таймером, 3. Регистры, обеспечивающие ввод/вывод данных: регистры данных портов, регистры управления параллельным, последовательным или аналоговым вводом/ выводом. Одним из важных вопросов является размещение регистров в адресном пространстве МК. В некоторых МК все регистры и память данных располагаются в одном адресном пространстве. Это означает, что память данных совмещена с регистрами. Такой подход называется «отображением ресурсов МК на память» . В других МК адресное пространство устройств ввода/вывода отделено от общего пространства памяти. Отдельное пространство ввода/вывода дает не которое преимущество процессорам с гарвардской архитектурой, обеспечивая возможность считывать команду во время обращения к регистру ввода/вывода.
Стек микроконтроллеров В микроконтроллерах ОЗУ данных используется также для организации вызова подпрограмм и обработки прерываний. При этих операциях содержимое программного счетчика и основных регистров (аккумулятор, регистр состояния и другие) сохраняется и затем восстанавливается при возврате к основной программе. Внешняя память Если МК содержит специальные аппаратные средства для подключе ния внешней памяти, то эта операция производится штатным способом (как для МП). Второй, более универсальный, способ заключается в том, чтобы использовать порты ввода/вывода для подключения внешней памяти и реализовать обращение к памяти программными средствами.
Лекция 12. Базовая архитектура микроконтроллера 8051
Характеристики микроконтроллеров семейства 8051 - тактовая частота 24 МГц; командный цикл 12 тактов; объем памяти программ 4 Кб; объем памяти данных 128 байт; число линий ввода/вывода – 32; два 8/16 разрядных таймера; множество внутренних и внешних источников прерываний; программируемый последовательный порт; интерфейс с внешней памятью объемом до 128 Кб. МК 8051 имеет Гарвардскую архитектуру, то есть память программ и память данных являются самостоятельными и независимыми друг от друга устройствами. К адресному пространству памяти данных примыкает адресное пространство регистров специальных функций SFR (Special Function Register).
Адресное пространство регистров специальных функций Адрес Символ Наименование 0 E 0 H *АСС 0 F 0 H *В Регистр расширитель аккумулятора (Multiplication Register) 0 D 0 H *PSW Слово состояния программы (Program Status Word) 080 Н *P 0 Порт 0 (SFR P 0) 090 H *Р 1 Порт 1 (SFR P 1) 0 A 0 H *P 2 Порт 2 (SFR P 2) 0 B 0 H *P 3 Порт 3 (SFR РЗ) 081 H SP Регистр указатель стека (Stack Pointer) 083 H DPH Старший байт регистра указателя данных DPTR (Data Pointer High) 082 H DPL Младший байт регистра указателя данных DPTR (Data Pointer Low) 08 CH TH 0 Старший байт таймера 0 () 08 AH TL 0 Младший байт таймера 0 () Аккумулятор (Accumulator)
Базовая архитектура микроконтроллера 8051
Регистр флагов (PSW)
Лекция 13. Питание микроконтроллеров Во многих приложениях используется батарейное питание микроконтроллеров, а в некоторых случаях применяются конденсаторы большой емкости, которые обеспечивают сохранение работоспособности при кратковременных отключениях питания. Поэтому проблема снижения энергопотреблении весьма актуальна для микроконтроллеров. Потребляемая мощность Имеются три значения мощности, потребляемой микроконтроллером в различных рабочих условиях: 1. Собственная мощность, необходимая для нормальной работы микроконтроллера; 2. Мощность, потребляемая устройствами ввода вывода, которую требуется учитывать, когда микроконтроллер производит обмен данными с внешними устройствами; 3. Мощность, потребляемая в «спящем» режиме.
Схема запуска микроконтроллера (сброс в начальное состояние)
Тактирование системы Существует три способа задания тактовой частоты микроконтроллера 1. Использование кварцевого резонатора
2. Использование RC генератора 3. Использование внешней микросхемы тактового генератора
Лекция 14. Система команд микроконтроллера семейства 8051 Микро ЭВМ рассматриваемого семейства являются типичными микропроцессорными устройствами с архитектурой SISC со стандартным набором команд. Поэтому их система команд довольно обширна и включает в себя 111 основных команд. Их длина – один, два или три байта, причем большинство из них (94%) – одно или двухбайтные. Все команды выполняются за один или два машинных цикла (соответственно 1 или 2 мкс при тактовой частоте 12 МГц), исключение – команды умножения и деления, которые выполняются за четыре машинных цикла (4 мкс). Микро ЭВМ семейства 8051 используют прямую, непосредственную, косвенную и неявную, адресацию данных.
Типы команд Тип команды Первый байт D 7. . . D 0 Второй байт D 7. . . D 0 Третий байт D 7. . . D 0 тип 1 коп тип 2 коп #d тип 3 коп ad тип 4 коп bit тип 5 коп rel тип 6 коп а 7. . . a 0 тип 7 коп ad #d тип 8 коп ad rel тип 9 коп ads add тип 10 коп #d rel тип 11 коп bit rel тип 12 коп ad 16 h тип 13 коп #d 16 h
Группы команд 1. 2. 3. 4. 5. пересылки данных; арифметических операций; логических операций; операций над битами; передачи управления. Способы адресации ADD A, # 77. 1. Непосредственная адресация Значение непосредственного операнда обозначается символом #. 2. Регистровая адресация MOV A, Rn. 3. Прямая адресация MOV А, 0 D 0 h. MOV A, @Ri. 4. Косвенно регистровая адресация 5. Индексная адресация MOVC A, @A+DPTR.
Команды пересылки данных микроконтроллера 8051 Название команды Пересылка в аккумулятор из регистра (n=0÷ 7) Мнемокод Пример MOV A, Rn MOV A, R 1 MOV A, P 2 MOV A, PSW Пересылка в аккумулятор прямоадресуемого байта MOV A, ad MOV A, 21 A 3 Пересылка в аккумулятор байта из РПД (i=0, 1) Загрузка в аккумулятор константы MOV A, @Ri MOV A, @R 2 MOV A, #d MOV A, #45 MOV A, #013 h Пересылка в регистр из аккумулятора Пересылка в регистр прямоадресуемого байта Загрузка в регистр константы MOV Rn, A MOV R 3, A MOV P 0, A MOV Rn, ad MOV R 2, 0121 MOV Rn, #d MOV R 7, #0 ABh MOV TMOD, #00000001 b MOV P 3, #10010001 b Пересылка по прямому адресу аккумулятора Пересылка по прямому адресу регистра Загрузка в стек Извлечение из стека Обмен аккумулятора с регистром Обмен аккумулятора с прямоадресуемым байтом Обмен аккумулятора с байтом из РПД Обмен младших тетрад аккумулятора и байта РПД MOV ad, A MOV 0021, A MOV ad, Rn MOV 0100, R 5 PUSH ad POP ad XCH A, Rn XCH A, ad XCH A, @Ri XCHD A, @Ri
Функциональная схема подключения ресурсов
Таблица распределения подключаемых ресурсов к разрядам портов Ресурс Разряд порта Семисегментный индикатор 1 A 1 P 0. 1 B 1 P 0. 2 C 1 P 0. 3 D 1 P 0. 4 E 1 P 0. 5 F 1 P 0. 6 G 1 P 0. 7 Семисегментный индикатор 2 A 2 P 1. 1 B 2 P 1. 2 C 2 P 1. 3 D 2 P 1. 4 E 2 P 1. 5 F 2 P 1. 6 G 2 P 1. 7
Лекция 15. Связь микроконтроллера с внешней средой и временем Типовая схема двунаправленного порта ввода/вывода МК
Организация портов ввода вывода Вывод порта Альтернативная функция РЗ. 0 RXD - вход последовательного порта Р 3. 1 TXD - выход последовательного порта РЗ. 2 INT 0 - внешнее прерывание 0 Р 3. 3 INT 1 - внешнее прерывание 1 РЗ. 4 Т 0 - вход таймера-счетчика 0 РЗ. 5 Т 1 - вход таймера-счетчика 1 РЗ. 6 WR - строб записи во внешнюю память РЗ. 7 RD - строб чтения из внешней памяти данных
Структура модуля таймера-счетчика
Логика работы T/C 0 и Т/C 1 в режимах 0, 1
Логика работы T/C 0 и Т/C 1 в режиме 2
Логика работы T/C 0 и Т/C 1 в режиме 3
Лекция 16. Система прерываний микроконтроллера 8051
Регистр масок прерывания (IE) Симв. Позиц. Имя и назначение IE. 7 Снятие блокировки прерывания. Сбрасывается, программно для запрета всех прерываний независимо от состояний IE. 4 IE. 0 IE. 6 Не используется l. E. 5 Не используется IE. 4 Бит разрешения прерывания, от приемопередатчика Установка/сброс программой для разрешения/запрета прерываний от флагов TI или RI. ET 1 IE. 3 Бит разрешения прерывания от таймера. Установка/сброс программой для разрешения/запрета прерываний от таймера 1 EX 1 IE. 2 Бит разрешения внешнего прерывания 1. Установка/сброс программой для разрешения/запрета прерывания 1 ET 0 IE. 1 Бит разрешения прерывания от таймера 0. Установка/сброс программой для разрешения/запрета прерываний от таймера 0 EX 0 IE. 0 Бит разрешения внешнего прерывания 0. Установка/сброс программой для разрешения/запрета прерывания 0 EA ES
Регистр приоритетов прерываний (IP) Симв. PS РТ 1 РХ 1 РТ 0 РХ 0 Поз. Имя и назначение IP. 4 Бит приоритета приемопередатчика. Установка/сброс программой для присваивания прерыванию от приемопередатчика высшего/низшего приоритета. IP. 3 Бит приоритета таймера 1. Установка/сброс программой для присваивания прерыванию от таймера 1 высшего/низшего приоритета. IP. 2 Бит приоритета внешнего прерывания 1. Установка/сброс программой для присваивания приоритета внешнему прерыванию INT 1. IP. 1 Бит приоритета таймера 0. Установка/сброс программой для присваивания прерыванию от таймера 0 высшего/низшего приоритета. IP. 0 Бит приоритета внешнего прерывания 0. Установка/сброс программой для присваивания приоритета внешнему прерыванию INT 0.
Пример организации прерываний org 0 h jmp vkl org 03 h ; Внешнее прерывание 0 mov P 3, #1 call Signal reti org 0 Bh ; Прерывание таймера 0 cpl P 3. 1 reti org 013 h ; Внешнее прерывание 1 call Voditel reti org 01 Bh ; Прерывание таймера 1 call Schet reti org 020 h Signal: mov TMOD, #0000 b; Таймеры Режим 0 mov TCON, #00010000 b; Включаем таймер0 mov IE, #10000010 b; Разрешение прерывания только от таймера 0 ret
Лекция 17. Основные типы интерфейсов микроконтроллеров Подавление звона контактов При замыкании и размыкании переключателей в цепи возникают импульсные помехи, вызванные дребезгом контактов. Это явление часто возникает и системах на базе микроконтроллеров, где для ввода данных используется клавиатура, и «звон» может восприниматься как многократное нажатие клавиши. Дребезг контактов
Один их простых схемотехнических способов устранения звона состоит в подключении RC цепи. В этой схеме время, требуемое для заряда/ разряда конденсатора до порогового напряжения, маскирует «звон» контактов при переключении. Недостатки этого метода дополнительные затраты на компоненты, которые должны быть установлены на плате, и дополнительное время, требуемое для заряда/разряда RC цепи.
Подключение светодиодов и 7 -сегментных индикаторов Выводы сегментов индикатора Порты МК Каждый светодиод в индикаторе имеет свой буквенный идентификатор ( А, В, С, D, E, F или G), и одна из ножек светодиода подключена к соответствующему внешнему выводу. Вторые ножки всех светодиодов соединены вместе и подключены к общему выводу. Этот общий вывод определяет тип индикатора: с общим катодом или с общим анодом.
Подключение к микроконтроллеру четырех 7 -сегментных индикаторов Типичный способ подключения нескольких индикаторов состоит в том, чтобы включить их параллельно и затем управлять протеканием тока через общие выводы отдельных индикаторов. Так как величина этого тока обычно превышает допустимое значение выходного тока микроконтроллера, то для управления током включаются дополнительные транзисторы, которые выбирают, какой из индикаторов будет находиться в активном состоянии.
Лекция 18. Подключение клавиатуры и дисплея Ввод с матричной клавиатуры Лучшим решением является использование матричной клавиатуры, которая представляет собой набор ключей, объединенных в ряды и столбцы. ряды Подключение к высокому уровню столбцы Для чтения состояния определенного ключа на столбец подается сигнал, а затем считывается состояние рядов. Обычно ряды подключают к высокому потенциалу, а опрашиваемый столбец соединяется с землей. Если при сканировании рядов считывается низкий уровень сигнала , это означает, что ключ в данной позиции ряд/столбец замкнут.
Существуют специальные микросхемы, которые выполняют опрос клавиатуры и посылают сигнал, когда данные готовы для считывания. На схеме показано использование микросхемы типа 74 С 922 в качестве интерфейса между клавиатурой с матрицей 4 x 4 ключа и микроконтроллером BASIC Stamp.
Управление жидкокристаллическим индикатором Большинство алфавитно цифровых ЖКИ используют для управления контроллер Hitachi 44780 и реализуют общий интерфейс подключения. Благодаря этому ЖКИ, обеспечивающие вывод от 8 до 80 символов (организованных в виде 2 строк по 40 символов или 4 строк по 20 символов), являются полностью взаимозаменяемыми, так как их применение не требует какого либо изменения программного обеспечения или аппаратных средств. Выводы ЖКИ имеют следующее назначение: 1. вывод 1 — «Земля» ; 2. вывод 2 — напряжение питания Vcc; 3. вывод 3 — вход регулировки контрастности изображения; 4. вывод 4 — сигнал выбора регистра данных или команд (R/S); 5. вывод 5 — сигнал выбора режима «чтение/запись» (R/W); 6. вывод 6 — синхросигнал Е; 7. выводы 7 14 линии передачи данных.
Временные диаграммы сигналов при выводе символа на ЖКИ Каждая посылка сопровождается синхросигналом Е, который инициирует прием данных в ЖКИ. Чтобы подсоединить микроконтроллер к ЖКИ при четырехбитном режиме используются только 4 старших разряда линии данных DB 7 4
Управление жидкокристаллическим индикатором Дальнейшее сокращение числа требуемых линий ввода вывода может быть обеспечено путем использования сдвигового регистра: в этом случае потребуется всего 3 линии. В качестве сдвигового регистра обычно используется микросхема 74 x 174 (где «х» — или НС, или LS). Восьмибитный режим также можно реализовать с помощью сдвигового регистра, но требуется передавать девятый бит, который используется, чтобы обеспечить выдачу сигнала R/S. Бит R/S указывает, какая информация передается команда или данные.
Управление жидкокристаллическим индикатором Имеется восемь программируемых символов, которые выводятся с помощью кодов с 0 x 000 по 0 x 007. Эти символы программируются с помощью команд, устанавливающих курсор ЖКИ на область памяти генератора символов ( «CGRAM» ), и задают восемь значений адреса для построчной записи изображения символа. Следующие восемь байтов, записанные в память, представляют собой изображение каждой строки программируемого символа, начиная сверху. Набор команд, реализуемых ЖКИ: - очистить индикатор; вернуть курсор в начальную позицию; установить направление движения курсора; разрешить экран/курсор; переместить курсор/сдвинуть экран; установить размерность интерфейса; переместить курсор на область сgram; переместить курсор на экран; прочесть флаг «занято» ; вывести asci символ на экран; прочесть asci символ с экрана.
Управление жидкокристаллическим индикатором В большинстве применений линию «R/W» подсоединяют к земле, так как чтение состояния ЖКИ не требуется. Это значительно упрощает приложе ние, поскольку для считывания данных необходимо менять режим работы выводов — с записи на чтение. В некоторых случаях возможность чтения со стояния ЖКИ бывает полезна, например, при прокручивании данных на экране. Подключение линии «R/W» к земле также освобождает один вывод микроконтроллера. ЖКИ с размером символов 5 x 10 точек практически не выпускаются, по этому бит «F» в команде «Установка размерности интерфейса» должен всегда быть равен 0.
Управление жидкокристаллическим индикатором (продолжение) Перед тем, как вводить в ЖКИ команды или данные, его надо инициализировать. Для 8 битного режима: 1. Подождать более 15 мс после подачи питания. 2. Записать 0 x 30 в ЖКИ и ждать 5 мс до завершения выполнения команды. 3. Записать 0 x 30 в ЖКИ и ждать 160 мкс до завершения выполнения команды. 4. Снова записать 0 x 30 в ЖКИ и ждать 160 мкс до завершения выполнения команды или опрашивать флаг «Занято» . 5. Установить рабочие характеристики ЖКИ: § Ввести «Установка размерности интерфейса» § Ввести 0 x 10, чтобы выключить экран. § Ввести 0 x 01, чтобы очистить экран. § Ввести «Установка направления движения курсора» , чтобы установить поведение курсора. § Ввести «Включение экрана/курсора» , чтобы включить экран и, если требуется, курсор.
Лекция 19. Конвейеризация в микропроцессорных системах С 2 С 1 Блок выборки команд С 3 Блок декодирования С 4 Блок выборки операндов С 5 Блок выполнения команд Блок возврата Конвейер с пятью стадиями С 1 3 4 5 2 3 4 1 С 2 2 1 1 2 С 3 С 4 1 С 5 6 7 8 9 8 2 1 1 2 3 4 5 5 6 7 8 9 1 2
Блок-схема архитектуры Pentium
• • • пятиступенчатый конвейер для обработки команд: PF (Prefetch) предвыборка команд; D 1 (Instruction Decode) декодирование команды; D 2 (Address Generate) формирование адреса; EX (Execute) выполнение команды в АЛУ и доступ к кэш памяти; WB (Write Back) обратная запись.
Микропроцессор с разнесенной архитектурой
Микропроцессор с разнесенной архитектурой
Структурная схема МП с параллельной архитектурой
Лекция 20. Мультипроцессоры а) б) Мультипроцессор, содержащий 16 процессов, которые разделяют общую память (а); изображение, разбитое на 16 секций, каждую из которых анализирует отдельный процессор (б).
Мультикомпьютеры а) б) Мультикомпьютер, содержащий 16 процессоров, каждый из которых имеет свою собственную память (а); битовое отображение рисунка предыдущего слайда, разделенное между 16 участками памяти (б)
Лекция 21. Классификация компьютеров параллельного действия (классификация Флинна) На основе числа потоков команд и потоков данных Флинн выделяет четыре класса архитектур: 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) – множественный поток команд и множественный поток данных.
Классификация компьютеров параллельного действия (классификация Флинна) Потоки команд Потоки Назва ния данных Примеры 1 1 SISD Классическая машина фон Неймана 1 Много SIMD Векторный процессор, массивно параллельный процессор Много 1 MISD Не существует Много 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 – кластер рабочих станций).
Лекция 22. Транспьютеры. Архитектура Транспьютер (transputer) — элемент построения многопроцессорных систем, выполненный на одном кристалле сверхбольшой интегральной схемы, продукт английской компании INMOS Ltd (ныне подразделение STMicroelectronics). Другая интерпретация транспьютер = передатчик (transfer) + вычислитель (computer) указывает на присутствие встроенных скоростных устройств ввода/вывода для обмена данными с соседними. 32 битный транспьютерный чип IMST 414 B
Структура транспьютера и систем на его основе
Состав транспьютера В зависимости от модели транспьютер включает: ЦП, 32 или 16 разрядный; интерфейс внешней памяти; 2 4 линка двунаправленных канала; программируемый блок событий (Event); таймер; внутреннее ОЗУ ёмкостью 2 или 4 Кбайта; блок режимов работы Линков; блок системных функций. Некоторые модели могут содержать 64 разрядное устройство операций с плавающей точкой и интерфейсные схемы внешних устройств.
Структура транспьютера Т 800
Лекция 23. Программирование транспьютеров Язык программирования Оккам — это процедурный язык параллельного программирования высокого уровня, разработанный в начале 80 х годов группой учёных из Оксфорда под руководством Дэвида Мэя в рамках работ по созданию транспьютеров. Назван в честь английского философа XIV века Уильяма Оккамского, а его сентенция, известная как бритва Оккама, является девизом проекта. «Бритва (лезвие) О ккама» — методологический принцип, получивший название по имени английского монаха францисканца, философа Уильяма Оккамского (Ockham, Ockam, Occam; ок. 1285 1349). В упрощенном виде он гласит: «Не следует множить сущее без необходимости» (либо «Не следует привлекать новые сущности без самой крайней на то необходимости» ). Этот принцип формирует базис методологического редукционизма, также называемый принципом бережливости, или законом экономии.
Язык программирования Оккам Однако то, что называют «Бритвой Оккама» , не было сформулировано Оккамом, он всего лишь озвучил принцип, известный ещё со времён Аристотеля и в логике носящий название «закон достаточного основания» . Порой принцип выражается в словах «То, что можно объяснить посредством меньшего, не следует выражать посредством большего» . В современной науке под бритвой Оккама обычно понимают более общий принцип, утверждающий, что если существует несколько логически непротиворечивых определений или объяснений какого либо явления, то следует считать верным самое простое из них. Переформулированный на языке теории информации принцип «Бритвы Оккама» гласит, что самым точным сообщением является сообщение минимальной длины.
В языке определено несколько простых процессов: процесс присваивания, процессы ввода и вывода через канал (обозначаются символами ? и !), формальные процессы 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 на других языках.
Лекция 24. Обработка параллельных процессов в транспьютерах Каждый канал транспьютера физически состоит из двух одноразрядных каналов, один для работы в прямом, другой для работы в обратном направлении, обозначаемые как link. in и link. out.
В транспьютере, кроме вычислительного стека ЦП для целочисленной арифметики, имеется стек для работы над данными с плавающей запятой с регистрами 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 не выполнит инструкцию вывода в этот же канал После этого копируется сообщение, ожидающий процесс Р включается в список диспетчеризации и канал С переустанавливается в начальное "свободное" состояние
Лекция 25. Структура связи транспьютеров по внешнему каналу Процессы Р и Q выполняются на разных транспьютерах и взаимодействуют через канал С, реализованный с помощью линии связи между транспьютерами.
Пусть P передает данные, а Q принимает. Когда процесс Р выполняет инструкцию вывода, регистры интерфейса связи транспьютера, на котором выполняется процесс, инициализируются и процесс Р исключается из списка диспетчеризации. Таким же образом, когда процесс Q выполняет инструкцию ввода, инициализируются регистры интерфейса связи транспьютера, выполняющего процесс Q, и процесс Q исключается из списка диспетчеризации
Когда оба канальных интерфейса инициализированы, происходит копирование данных по межтранспьютерной линии связи. После этого процессы Р и Q включаются в соответствующие списки диспетчеризации. После отправления пакета данных транспьютер ожидает получения пакета подтверждения от принимающего транспьютера. Пакет подтверждения показывает, что процесс получатель готов принять байт и что канал принимающего транспьютера может начать прием следующего байта.
Характеристики транспьютеров Транспьютеры выпускаются фирмой INMOS, начиная с 1985 года. За исключением транспьютера Т 212, который имеет только две связи и 16 разрядные АЛУ, все остальные типы транспьютеров имеют 4 связи и 32 или 64 разрядные АЛУ. Система команд транспьютеров относится к классу CISC. Т 9000 является суперскалярным, то есть может выполнять более 1 команды за такт. Тип трансп. , год Состав АЛУ, Частота объем синхр. , внутренней МГц памяти Быстродействие Число транз/, млн Т 414 (1985) АЛУ-I-32 разр. 2 Кбайт 0, 1 МФлопс 0, 2 Т 800 АЛУ-I-32 разр. АЛУ-F-64 разр. 20 30 4 Кбайт 2, 2 МФлопс 0, 3 Т 9000 (1995) АЛУ-I-32 разр. АЛУ-F-64 разр. 20 40 50 16 Кбайт 200 Мипс 25 МФлопс 3, 3 15 20 10
Лекция 26. Учебный лабораторный комплекс SDK-1. 1 Основу лабораторного комплекса составляет контроллер конструктор SDK 1. 1 на базе ОКЭВМ фирмы Analog Devices ADu. C 812. Сам лабораторный комплекс представляет собой совокупность контроллера конструктора, подключенного к персональному компьютеру, и программного обеспечения для ПК и SDK 1. 1. Подключение осуществляется к СОМ порту ПК через кабель RS 232, комплекс инструментальных программ обеспечивает весь процесс программирования SDK 1. 1: компиляцию, доставку и запуск программ в SDK 1. 1. Основными областями использования комплекса являются: 1) обучение основам вычислительной и микропроцессорной техники, систем управления; 2) автоматизация простых технологических процессов и лабораторных исследований; 3) макетирование микропроцессорных систем, отладка программного обеспечения для систем на базе широко распространенного ядра Intel MCS 51; 4) радиолюбительство, управление бытовой техникой.
Структура аппаратной части
В состав учебного стенда SDK-1. 1 входят: 1. микроконтроллер ADUC 812 BS; 2. внешняя E 2 PROM объемом 256 байт; 3. 128 к внешней памяти sram с возможностью расширения до 512 к; 4. клавиатура АК 1604 A WWB фирмы ACCORD; 5. жидкокристаллический индикатор (ЖКИ) WH 1602 B YGK CP; 6. часы реального времени PCF 8583; 7. сторожевой таймер (watchdog); 8. гальванически изолированный порт rs 232 c для связи с ПК; 9. набор сигнальных светодиодов (8 шт. ). 10. порт дискретного ввода вывода (8, 16, 20 ти разрядный); 11. аналоговый порт вывода на основе двух 12 рарядных ЦАП; 12. акустический пьезокерамический излучатель; 13. переключатели стимуляторы 10 линий параллельного порта, сигналов от внешних источников прерываний.
Процессор ADu. C 812 является клоном Intel 8051 со встроенной периферией. Основные характеристики: рабочая частота 11. 0592 мгц; 8 канальный 12 битный АЦП со скоростью выборок 200 К/с (в режиме ПДП); два 12 битных ПАП (код напряжение); внутренний температурный сенсор; 640 байт программируемого E 2 PROM со страничной организацией (256 страниц по 4 байта); 256 байт внутренней памяти данных; адресное пространство 16 мб; режим управления питанием; асинхронный последовательный ввод вывод; интерфейс I 2 С; три 16 битных таймера/счетчика и таймер watchdog.
Распределение памяти в SDK 1. 1
Лекция 27. Карта портов ввода-вывода В стенде SDK 1. 1 ввод вывод данных осуществляется с помощью портов микроконтроллера и микросхемы ПЛИС, которая имеет 8 регистров, отображаемых во внешнее адресное пространство процессора. Порт Назначение P 0. 7 P 0. 0 Шина адреса/данных AD(7 0) системного интерфейса P 1. 7 P 1. 0 Аналоговый вход, линии которого мультиплексируются с линиями 7 0 АЦП. P 2. 7 P 2. 0 Адресная шина системного интерфейса А(15 8). P 3. 0 Rx. D входные данные приемопередатчика UART. P 3. 1 Tx. D выходные данные приемопередатчика UART. P 3. 2 #INT 0 сигнал внешнего прерывания 0, активный уровень лог. "0". P 3. 3 #INT 1 сигнал внешнего прерывания 1, фктивный уровень лог. "0". P 3. 4 Счетный вход таймера счетчика Т 0, активный уровень лог. "0". P 3. 5 Счетный вход таймера счетчика Т 1, активный уровень лог. "0". P 3. 6 #WR сигнал записи во внешнюю память XRAM. P 3. 7 #RD сигнал чтения из внешней памяти XRAM.
Регистры ПЛИС Адрес Регистр Доступ Назначение 080000 H KB R/W Регистр клавиатуры. 080001 H DATA_IND R/W Регистр шины данных. 080002 H EXT_LO R/W Регистр данных параллельного порта (0. . 7). 080003 H EXT_HI R/W Регистр данных параллельного порта (8. . 15). 080004 H ENA W Регистр управления портами ввода вывода, звуком и сигналом INT 0. 080006 H C_IND W Регистр управления ЖКИ. 080007 H SV W Регистр управления светодиодами
Общий вид стенда SDK 1. 1
Расшифровка обозначений на схеме лицевой панели стенда SDK-1. 1. Элемент LCD KEYBOARD Z 1 SW 2 J 4 JDP 1 J 1 SW 1 J 3 SW 3 J 2 Описание Жидкокристаллический индикатор WH 1602 B YGK CP. Матричная клавиатура AK 1604 A WWB. Звуковой пьезокерамический излучатель. Кнопка сброса RESET. Разъем питания стенда типа "JACK", полярность безразлична. Разъем последовательного порта стенда. Выводы каналов АЦП и ЦАП. Переключатель, занимающий каналы 0 и/или 1 ЦАП на входы соответствующих (0, 1) каналов ЦАП. 16 линий параллельного порта ПЛИС MAX и 4 линии параллельного порта P 3 микроконтроллера ADu. C 812 (INT 0/1, T 0/1). Набор переключателей, замыкающих соответствующие выводы J 3 на корпус (переключение в лог. "0"). Выводы JTAG интерфейса ПЛИС MAX. JP 1 Перемычка, замыкающая вывод PSEN микроконтроллера ADu. C 812 на корпус. JP 3 Разъемы подключения внешней батареи питания часов реального времени PCF 8583. D 9 D 16 Набор сигнальных светодиодов.
Лекция 28. Прерывания ADu. C 812 Прерывание Наименование Адрес вектора Приоритет PSMI Источник питания ADu. C 812. 43 Н 1 IE 0 Внешнее прерывание INTO. 0 ЗН 2 ADCI Конец преобразования АЦП. ЗЗН 3 TF 0 Переполнение таймера 0. 0 ВН 4 IE 1 Внешнее прерывание INT 1. 13 Н 5 TF 1 Переполнение таймера 1. 1 ВН 6 Прерывание последовательного интерфейса (I 2 С, ISPI). ЗВН 7 Прерывание UART. 23 Н 8 Переполнение таймера 2. 2 ВН 9 I 2 CI/ISPI RI/TI TF 2/EXF 2
Микроконтроллер ADu. C 812 обеспечивает восемь источников и два уровня приоритета прерываний. Соответствующий определенному прерыванию приоритет можно установить в регистре специального назначения IP.
Лекция 29. Основные этапы программирования стенда • Подготовка программы в текстовом редакторе или среде программирования. • Транслирование исходного текста и получение загрузочного НЕХ модуля. • Подготовка и загрузка НЕХ модуля в стенд. • Прием и обработка НЕХ модуля резидентным загрузчиком НЕХ 202, передача управления загруженной программе.
Шаг 1. Для программирования стенда sdk 1. 1 необходимо установить инструментальные средства фирмы KEIL SOFTWARE для этого на установочном диске зайдите в папку sdk 1. 1Keil и запустите ek 51 v 622. exe и следуйте инструкциям установки. Шаг 2. После завершения установки зайдите в папку в которую вы установили Keil и создайте там папку main, распакуйте в нее файл main. zip с установочного диска, он также находится на устоновочном диске в папке sdk 1. 1Examplesmain. zip. Шаг 3. В созданной вами папке main, удалите папку src и скопируйте вместо нее папку src с установочного диска sdk 1. 1src. Шаг 4. Далее в папку main скопируйте файлы t 2. exe из sdk 1. 1Utilities, и t 167 b. exe из sdk 1. 1Utilitiest 167 b, последний файл скопируйте еще раз но в папку mainbin. Шаг 5. Прописать пути: откройте в редакторе файл build. bat из main, найдите строчки: set CDIR=d: c 51 set UTILS=d: UTILS вместо d: напишите тот путь, по которому вы установили Keil.
Инструментальные средства фирмы Keil Software поддерживает все стадии разработки приложения: создание исходного файла на С или Ассемблере, трансляцию, исправление ошибок, линкование объектных файлов, тестирование приложения. В пакете Keil Software содержатся следующие средства разработки для микроконтроллера 8051: С 51 компилятор С; Макроассемблер А 51; Динамический загрузчик/компоновщик BL 51; Конвертер объектных файлов ОС 51; Конвертер объектных и НЕХ файлов ОН 51; Менеджер библиотек LIB 51; Симулятор d. Scope 51 (для Windows); Отладчик/компилятор m. Vision/51 (для Windows ); Операционная система реального времени (Real Time Operating System RTX).
Лекция 30. Компилятор языка Си фирмы Keil Software Кросс компилятор языка С предназначен для создания приложений для процессоров семейства 8051 на языке программирования С. Компилятор С 51 поддерживает стандарт ANSI С, разработан специально для 8051 семейства и позволяет создавать программы на языке С, сохраняя эффективность и скорость оптимизации Ассемблера. Расширения, включенные в инструментальные средства Keil, обеспечивают полный доступ к ресурсам микроконтроллеров 8051. Для локализации ошибок полезно воспользоваться выходными данными С компилятора или средствами PC Link. Отличительные черты компилятора: девять основных типов данных, включая быструю 32 разрядную IEEE арифметику с плавающей точкой; разнообразие селекторов для различных областей памяти: code, data, bdata, idata, xdata и pdata, которые позволяют осуществить эффективный доступ к различным областям памяти и сгенерировать компактный код.
Селекторы для различных областей памяти Селектор Область памяти data 128 байт во встроенном ОЗУ — непосредственная байтовая адресация bit 128 бит во встроенном ОЗУ — непосредственная битовая адресация bdata 128 бит/16 байт во встроенном ОЗУ — непосредственная битовая/байтовая адресация idata 256 байт во встроенном ОЗУ — непосредственная адресация pdata 256 байт в страничной внешней памяти XDATA xdata 64 Кбайт памяти XDATA code 64 Кбайт памяти CODE
Расширение языка С Компилятор С 51 очень гибок. Он поддерживает стандарт ANSI и все аспекты программирования на С, описанные этим стандартом. Все дополнения к стандарту предназначены для поддержки контроллера 8051. Дополнения касаются следующих понятий: типы данных; типы памяти; модели памяти; казатели; реентерабельные функции; функции обработки прерываний; операционные системы реального времени; поддержка pl/m и а 51. Типы данных Компилятор С 51 поддерживает все типы данных, приведенные ниже в таблице. Скалярные переменные могут быть объединены в структуры, объединения и массивы. За некоторым исключением доступ к значениям переменных может быть получен с помощью указателей.
Типы данных Биты Байты Область значений bit* 1 signed char 8 1 от 128 до +127 unsigned char 8 1 от 0 до 255 enum 16 2 от 32768 до +32767 signed short 16 2 от 32768 до +32767 unsigned short 16 2 от О до 65535 signed int 16 2 от 32768 до +32767 unsigned int 16 2 от 0 до 65535 signed long 32 4 от 2147483648 до 2147483647 unsigned long 32 4 от 0 до 4294967295 float 32 4 от ± 1. 175494 Е 38 до ± 3. 402823 Е+38 sbit* 1 0 от 0 до 1 sfr* 8 1 от 0 до 255 sfr 16* 16 2 от 0 до 65535 от 0 до 1
Типы данных sbit, sfr и sfr 16 используются для обращения к специальным регистрам процессора 8051. Например, строка sfr Р 0 = 0 x 80, объявляет переменную Р 0 и назначает ей адрес специального регистра 0 x 80. Это адрес порта Р 0. Компилятор С 51 производит автоматическое преобразование типов в случае, если результат относится к другому типу. Кроме того, можно выполнить принудительное приведение типов. В процессе приведения расширение знака к переменным знаковых типов добавляется автоматически. Модификаторы памяти Компилятор С 51 поддерживает контроллеры типа 8051 и обеспечивает доступ ко всем областям памяти контроллера. Для каждой переменной можно точно указать область ее размещения в памяти. Обращение к внутренней памяти данных происходит гораздо быстрее, чем к внешней. Поэтому переменные, которые используются чаще других, следует размещать во внутренней памяти, а остальные – во внешней. Применяя модификаторы памяти при объявлении переменной, можно указать, где именно она будет размещена.
Лекция 31. Инструментальная система для Win 9 x/NT Инструментальная система Т 167 В призвана решать следующие задачи: преобразование hex и bin файлов; передача загрузочных модулей различных форматов в целевую систему с протоколами разного уровня сложности; получение информации из целевой системы; обеспечение элементарных операций с последовательным каналом (прием и передача байта, эмуляция терминала, настройка скорости); обеспечение быстрой адаптации к целевой системе. Управляющие клавиши CTRL+BREAK аварийный выход (в большинстве случаев приводит к корректному завершению работы Т 167 В при зависаниях). Alt+X выход в DOS; Up, Down перелистывание команд (командная строка в Т 167 В имеет историю, записываемую в файл).
Инструментальная система Т 2 для Windows 9 x/NT с точки зрения команд для работы с SDK 1. является аналогом системы Т 167 В для MS DOS (за исключением нескольких команд). Перечень основных команд системы Т 2 Команда OPENCHANNEL OPENCOM 1, OPENCOM 2 CLOSECHANNEL TERM Действие Открытие СОМ порта с установкой сигнала RTS. Открытие портов СОМ 1 или COM 2 с установкой сигнала RTS. Закрытие СОМ порта. Включение эмулятора терминала. +ЕСНО Включение режима копирования консольного вывода в файл echo. txt. ECHO Выключение режима копирования консольного вывода в файл echo. txt LOADHEX ADDHEXSTART BYE LFILE НЕХ загрузка. Добавление стартового адреса в конец НЕХ файла. Выход из Т 2. Интерпретация командного файла.
OPENCHANNEL (baud > com) открытие последовательного порта на заданной скорости. Числовой параметр baud определяет скорость в бодах, например, 19200. Параметр com может иметь два значения: «coml» или «сот2» . Пример: 9600 openchannel com 1 OPENCOM 1, OPENCOM 2 ( >) открытие СОМ 1 или COM 2 на скорости 9600 бод. Пример: opencom 1 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). Пример: 0 x 9000 0 x 0 addhexstart myfile. hex BYE ( >) Выход из Т 167 В. Пример: bye LFILE ( >) filename. ext Интерпретация командного файла filename. ext. Файл представляет собой набор строк текста, содержащих команды Т 167 В в том же виде, в котором они представлены в командной строке Т 167 В. Пример: lfile myfile. ini
Лекция 32. Резидентный загрузчик НЕХ 202 располагается во Flash памяти ADu. C 812 начиная с адреса 0 l 00 h. Он обеспечивает начальную инициализацию системы, загрузку программ в НЕХ формате в память SDK 1. 1 и передачу им управления. Начальная инициализация. При включении питания или передаче управления на ячейку с адресом 0 происходит повторная инициализация всех регистров специального назначения их значениями по умолчанию. Это сделано для того, чтобы при случайной передаче управления на ячейку с адресом 0 вследствие возможной ошибки в пользовательской программе не происходило сбоя системы, а сама система вела себя так же, как при включении питания. Эта же процедура повторяется непосредственно передачей управления загруженной программе. В случае успешной инициализации на ЖКИ на мгновение выводится надпись «SDK 1. 1, 2001 ©LMT Ltd» и на резонатор выдается короткий сигнал.
Загрузка программ в память SDK-1. 1 После процедуры инициализации системы последовательный канал настраивается в режим 9600 бит/сек, 8 бит данных, 1 стоп бит, без контроля четности и в него выдается строчка «НЕХ 202 ХХ» , где XX номер версии загрузчика. Далее с интервалом примерно в 200 мс выдается символ '. ' и ожидается появление символа со стороны инструментальной системы на PC. При появлении символа, если это первый символ строки в НЕХ формате, то есть двоеточие (': '), выдача символа '. ' прекращается и производится прием остальной части НЕХ строки. После завершения приема очередной НЕХ строки вычисляется ее контрольная сумма. Если она не совпадает с принятой, то в последовательный канал выдается символ ' ', сигнализирующий об ошибке приема. В противном случае выдается '+' и принятая строка обрабатывается в соответствии с указанной в ней командой (запись данных в память, конец блока или передача управления). Далее, если не было команды передачи управления, вывод в последовательный канал символа '. ' возобновляется и ожидается следующая НЕХ строка.
Передача управления загруженной программе. Передача управления происходит по приему НЕХ строки вида : 02 AAAA 060000 SS, где АААА это НЕХ адрес, по которому необходимо передать управление, SS контрольная сумма НЕХ строки, <сг> символ возврата каретки. Такая строчка должна быть добавлена в конец каждого НЕХ файла, загружаемого в SDK 1. 1. Для этого в поставляемых с SDK 1. 1 инструментальных системах есть команда addhexstart. Важное замечание. В процессе своей работы НЕХ 202 использует область статической памяти в диапазоне адресов F 000 h FFFFh, что следует учитывать при написании программ для стенда. Расположение части кода или статических данных по этим адресам может привести к некорректной работе загрузчика и неработоспособности загружаемой программы. Формат стандартного Intel Hex файла Эта часть описывает формат стандартного Intel Hex файла. Шестнадцатеричный формат Intel или формат Intel Hex является стандартом для запоминающих машин в отображаемом и печатаемом форматом. Стандартный Intel Hex формат генерируется ассемблером Micro. Convertor (8051 совместимый код).
Формат записи Intel Hex Поле Число байт Начало записи 1 «: » , характеризует начало записи Длина записи 2 число байт в записи Адрес загрузки 4 начальный адрес для размещения байтов данных Тип записи 2 00 = данные, 01 = завершение Байты данных 0 16 Контрольная сумма 2 Описание данные сумма байтов данных в записи + контрольная сумма = 0
ЭКЛ-МПС.pptx