Лекция 10. Архитектура микроконтроллеров

Report
МИКРОПРОЦЕССОРНЫЕ
СИСТЕМЫ
ЭЛЕКТРОННЫЙ КУРС ЛЕКЦИЙ
АВТОР: БУРЬКОВА Е.В.
Содержание
Лекция 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. Бурькова Е.В. Освоение микропроцессорной техники в
формировании информационной компетентности студентов
университета. – Челябинск, 2005.
2. Бурькова Е.В. Моделирование микропроцессорных систем:
методические указания к лабораторному практикуму –
Оренбург, ГОУ ОГУ, 2007.
3. Бурькова Е.В. Проектирование микропроцессорных систем:
методические указания к курсовому проектированию –
Оренбург, ГОУ ОГУ, 2008.
4. Новиков Ю.В., Скоробогатов П.К. Основы микропроцессорной
техники. – Москва. 2003.
5. Предко М. Руководство по микроконтроллерам. - Москва, 2001
6. Таненбаум Э. Архитектура компьютера.– Санкт-Петербург:
ПИТЕР, 2003.
7. Цилькер Б.Я., Орлов С.А. Организация ЭВМ и систем.– СанктПетербург: ПИТЕР, 2006.
Лекция 1.
Классификация микропроцессоров
По технологии изготовления:
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) 8086, 80186, 80286, 80386, 80486, Pentium;
4. CMOS (КМОП) – сигнальные и медийные МП - семейство
TMS320C2X, cyrix6x86, Athlon , Pentium и т.д.
По типу архитектуры:
1. однокристальные МП;
2. однокристальные микроконтроллеры;
3. разрядно – модульные МП;
4. CISC и RISC процессоры;
5. Транспьютеры.
Классификация микропроцессоров
(продолжение)
По разрядности данных:
1. 2- разрядные – К589;
2. 4-разрядные – К145ИК18, КМ1804, I4004;
3. 8- разрядные – i8008, i8080, К580, К1816, i8051;
4. 16- разрядные – i8086, i8088, 80186, 80286;
5. 32- разрядные –i80386, i80486,Pentium;
6. 64- разрядные – AMD Opteron, PowerPC 970, Intel Xeon MP.
По назначению:
1. универсальные;
2. специализированные МП.
По виду обрабатываемой информации:
1. цифровые;
2. аналоговые МП.
По виду временной организации работы:
1. синхронные;
2. асинхронные.
Структура микропроцессорной системы
16
Магистраль адреса
МА
8
Магистраль данных
МП
MD
6-10
МУ
Магистраль управления
Схема
синхронизации
и начальной
установки
ПЗУ
ROM
ОЗУ
RAM
Интерфейс памяти
ППА
ПСА
Параллельное ПоследовательУВВ
ное УВВ
Интерфейс периферийного
оборудования
Схема включения процессора
Сброс
Такт
Процессор
питание
RESET
СLK
U
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. скорость передачи.
TN  TA 
где T N
TA
N
R
- среднее время считывания или записи N битов;
- среднее время доступа;
R – скорость пересылки в битах в секунду.
Иерархическая архитектура памяти
64-128 Кбайт
10-15 нс
256-512 Кбайт
15-30 нс
Компилятор
программа
Кэш-память (L1)
Аппаратура
Кэш-память (L2)
Аппаратура
500-4000 Мбайт
20-40 мкс
1-8 Мбайт
50-100 мкс
Система
Регистры
Основная память
Аппаратура
Дисковая кэш
Аппаратура
20-4000 Гбайт
8-10 мс
Магнитные диски
0,7-8 Гбайт
>50 мс
Оптические диски
Неограниченная
Внутренняя память
Сотни байтов\<10 нс\
Взаимодействие
определяют
Операционная
система
Пользователь
Магнитные ленты
Внешняя память
Системная
плата
Центральный
процессор
Емкость
время доступа
Увеличение разрядности памяти
Dn-1
ИМСn-1
A0
Am
CS
WR
D1
ИМС1
D0
ИМС0
Структура памяти на основе блочной схемы
Дешифратор номера банка памяти
А8,А7
А6...А0
Регистр адреса
Банк0
0
...
127
Банк1
128
...
255
Банк2
256
...
383
Банк3
384
...
511
Регистр управления
А8...А0
Запрос
Шина адреса
Мультиплексор/демультиплексор
Шина данных
Рассмотрим блочную структуру памяти на примере памяти емкостью
512 слов, построенной из четырех банков по 128 слов в каждом.
Блочная память с чередованием адресов
по циклической схеме
А1, А0
Дешифратор номера банка памяти
Запрос
Шина адреса А8...А0
Блок управления
А8...А2
Регистр
адреса 0
Регистр
адреса 1
Регистр
адреса 2
Регистр
адреса 3
Банк0
0
...
508
Банк1
1
...
509
Банк2
2
...
510
Банк3
3
...
511
Регистр
Регистр
Регистр
Регистр
Мультиплексор/демультиплексор
Шина данных
Блочно-циклическая схема расслоения памяти
Банк0
Банк1
Банк2
Банк3
Модуль0 Модуль1
0
1
2
3
...
...
126
127
Модуль2 Модуль3
128
129
130
131
...
...
254
255
Модуль4 Модуль5
256
257
258
259
...
...
382
383
Модуль6 Модуль7
384
385
386
387
...
...
510
511
Усилители
считывания/
записи
Дешифратор
адреса столбца
Входной регистр Входной регистр
данных
данных
Массив
запоминающих
элементов
Дешифратор
адреса строки
Регистр адреса Регистр адреса
столбца
строки
Структура микросхемы памяти
RAS CAS WE OE CS
Синхронизация и управление
Аn...А0
Dm...D0
Запоминающий элемент статического ОЗУ
Uпит
Выход
Уст. в 1
Выбор
ячейки
Уст. в 0
BBSRAM
Специального
применения
NVRAM
Теговое ЗУ кэш-памяти
FIFO
Синхронные
Многопортовые
Двухпортовые
DDR
С запаздывающей записью
Асинхронные
ZBT
С конвейеризацией
С чередованием адресов
Высокоскоростные
Среднескоростные
Низкоскоростные
Лекция 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. Классификация динамических ОЗУ
ДИНАМИЧЕСКИЕ ОЗУ
Асинхронные
Специального
применения
Синхронные
FPM
EDRAM
SDRAM
ESDRAM
EDO
BEDO
DDR
CDRAM
SLDRAM
RDRAM
DRDRAM
ОЗУ для
видеоадаптеров
Асинхронная динамическая память
Микросхемы DRAM - формула 5-5-5-5. Микросхемы данного типа
могли работать на частотах до 40 МГц и из-за низкого быстродействия
(время доступа составляло около 120 нс) просуществовали недолго.
Микросхемы FPMDRAM. Микросхемы динамического ОЗУ,
реализующие режим FPM, также относятся к ранним типам DRAM.
Схема чтения для FPM DRAM описывается формулой 5-3-3-3 (всего 14
тактов). Время доступа до 60 нс.
Микросхемы EDO DRAM. с гиперстраничным режимом доступа
(НРМ, Hyper Page Mode), более известные как EDO (Extended Data
Output — расширенное время удержания данных на выходе) формула 52-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 - SDRAM с удвоенной скоростью передачи данных).
Существует несколько спецификаций DDR SDRAM, в
зависимости от тактовой частоты системной шины: DDR266, DDR333,
DDR400, DDR533. Пиковая пропускная способность микросхемы
памяти спецификации DDR333 составляет 2,7 Гбайт/с, а для DDR400
— 3,2 Гбайт/с.
Микросхемы RDRAM, DRDRAM. (Rambus Direct RAM).
Существует несколько разновидностей этой технологии: Base,
Concurrent и Direct. Во всех тактирование ведется по обоим фронтам
синхросигналов (как в DDR), благодаря чему результирующая
частота составляет соответственно 500-600, 600-700 и 800 МГц.
Микросхемы SLDRAM (Sync Link DRAM).
Микросхемы ESDRAM.
Микросхемы CDRAM.
Лекция 5.
Структура ассоциативной памяти
1
2
а0
k
Регистр
ассоциативного
признака
Запоминающий массив
1 2
m
N
а2
Комбинационная
схема
Регистр маски
1
2
а1
1
2
...
Схема совпадения
Регистр совпадения
N
Классификация ассоциативных ЗУ по виду поиска
Вид поиска
Простой поиск,
полное совпадение пизнаков
Сложный поиск
Поиск максимума или
минимума
Поиск всех слов, с признаком
большим /меньшим заданного
Поиск ближайшего, большего
или меньшего
Поиск всех слов, в заданных
или вне заданных пределах
Классификация ассоциативных ЗУ по способу опроса
Способ опроса
Последовательно по словам
Параллельно по словам
Последовательно по разрядам
Параллельно по разрядам
Комбинированный: параллельно по группе разрядов
и последовательно по группам слов
Классификация ассоциативных ЗУ по способу выборки
Способ выборки при множественных совпадениях
С цепью очередности
Алгоритмически
Цепь очередности реализуется с помощью достаточно сложного
устройства, где фиксируются слова, образующие многозначный
ответ. Цепь очередности позволяет производить считывание слов в
порядке возрастания номера ячейки АЗУ независимо от величины
ассоциативных признаков.
При алгоритмическом способе извлечения многозначного ответа
выборка производится в результате серии опросов. Серия опросов
может формироваться путем упорядочивания тех разрядов, которые
были замаскированы и не участвовали в признаке поиска.
Лекция 6. Структура системы с основной и кэш-памятью
Адрес
памяти
0
1
2
3
Данные
Номер
строки
0
1
Блок (К слов) 2
Тег
Строка
C-1
Длина строки (К слов)
Кэш-память
Блок
n
2 -1
Длина слова
Основная память
Прямое отображение основной памяти
При прямом отображении адрес строки i кэш-памяти, на которую
может быть отображен блок из ОП, определяется выражением: i =j mod
m, где m — общее число строк в кэш-памяти. В нашем примере i =j mod
128, где i может принимать значения от 0 до 127, а адрес блока j — от 0
до 16 383. Иными словами, на строку кэша с номером i отображается
каждый 128-й блок ОП, если отсчет начинать с блока, номер которого i.
Память
Строка тегов
0
0
1
1
2
2
127
Память
данных
Блок
0
Блок
257
Блок
130
...
...
127
Блок
16383
Кэш-память
0
Блок
0
Блок
1
Блок
2
1
2
Блок
128
0
Блок
257
129
Блок
130
Блок
256
Блок
257
Блок
258
127
Тег
Строка
0
1
2
...
Блок
127
Блок
16383
255
Блок
383
Основная память
Блок
16383 127
При реализации такого отображения 14-разрядный адрес блока
основной памяти условно разбивается на два поля. Логика кэш-памяти
интерпретирует эти 14 бит как 7-разрядный
тег и 7-разрядное поле
7
строки. Поле строки указывает на одну из 128 = 2 строк кэш-памяти, а
именно на ту, куда может быть отображен блок с заданным адресом.
Полностью ассоциативное отображение
Строка
0
Адрес
блока в
кэш
Тег
Блок
0258
Блок
32
Блок
2
2
2
1
160
127
2
258
0
...
127
32
...
1
Память тегов
Блок
160
Память данных
Кэш-память
Блок 2
...
Блок 32
...
Блок 160
...
Блок 258
...
Основная память
Множественно-ассоциативное отображение
Кэш-память разбивается на v подмножеств (в дальнейшем будем
называть их модулями), каждое из которых содержит k строк. Зависимость
между модулем и блоками основной памяти такая же, как и при прямом
отображении: на строки, входящие в модуль i, могут быть отображены
только вполне определенные блоки основной памяти, в соответствии с
соотношение i =j mod v, где j — адрес блока основной памяти.
Пример четырехвходовой кэш-памяти
Память данных
Модуль Память тегов
0 2
1
10 100
1 31
3
0
12
Блок Блок Блок
Блок Блок
64 32 320
257 3200
Блок Блок Блок
Блок Блок
993 97
130
1
385
... ... ... ... ... ...
31 2 511 1
3
... ...
Блок Блок Блок
Блок Блок
95 16383 16383
63 127
Кэш-память
0
1
2
Блок Блок Блок
Блок
0
32
64
257
Блок Блок Блок
Блок
1
33
65
130
... ...
3
Блок
96
Блок
97
Тег
512 модуль
0
1
... ...
Блок Блок Блок
Блок Блок
31 63 16383
95 127
Основная память
Блок
16383 31
Множественно-ассоциативное отображение
Блоки 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) дает дополнительное улучшение за сравнительно
небольшую дополнительную цену. Дальнейшее увеличения числа
строк в модуле не дает существенного эффекта.
Отображение секторов
Память тегов
0
1
7
0
1
7
10
2
0
Блок
0
0
1
0
X
Блок
32
X
1
1
0
1
Блок
321
X
Блок
1
...
...
...
...
1
X
... ...
31
0
1
Блок
Блок
47
15
Память данных
Память битов
достоверности Кэш-память
0
1
2
Блок Блок Блок
0
16
32
Блок Блок Блок
1
17
33
...
...
...
1023
Сектор
Блок
0
1
...
Блок Блок Блок
Блок
15
15
31
47
16383
Основная память
Здесь сектор состоит из 16 = 2 блоков по 16 слов, и основная
память содержит 1024 = 2 4 сектора. В 14-разрядном адресе блока
основной памяти10старшие 10 разрядов показывают номер сектора, а
младшие 4 — номер блока внутри сектора. В свою очередь, кэш-память
состоит из 8 = 2 секторов, и 7-разрядный адрес строки3 в кэш включает в
себя адрес сектора кэш (3 старших разряда) и номер блока внутри
сектора (4 младших разряда).
Лекция 7. Алгоритмы замещения информации
в кэш-памяти
1. Алгоритм замещения на основе наиболее давнего использования
(LRU — Least Recently Used). Замещается та строка кэш-памяти, к
которой дольше всего не было обращения. Проводившиеся
исследования показали, что алгоритм LRU работает достаточно
хорошо в сравнении с оптимальным алгоритмом.
2. Алгоритм, работающий по принципу «первый вошел, первый вышел»
(FIFO — First In First Out). Заменяется строка, дольше всего
находившаяся в кэш-памяти.
3. Замена наименее часто использовавшейся строки (LFU — Least
Frequently Used). Заменяется строка в кэш-памяти, к которой было
меньше всего обращений. Связывают каждую строку со счетчиком
обращений, к содержимому которого после каждого обращения
добавляется единица. Главным претендентом на замещение
является строка, счетчик которой содержит наименьшее число.
4. Произвольный выбор строки для замены. Замещаемая строка
выбирается случайно. Реализовано с помощью счетчика,
содержимое которого увеличивается на единицу с каждым тактовым
импульсом, независимо от того, имело место попадание или промах.
Значение в счетчике определяет заменяемую строку.
Уровни КЭШ-памяти
Корпус процессора
Микросхема
процессора
Объединённая
КЭШ II уровня
Объединённая
КЭШ III уровня
КЭШ
команд I уровня
КЭШ
данных I ровня
Разделённая
КЭШ I уровня
Контроллер
клавиатуры
КЭШ в плате
процессора
статическое ОЗУ
Графический
контроллер
Основная
память
Динамическое
ОЗУ
Контроллер
диска
Система с тремя уровнями КЭШ-памяти
КЭШ-память прямого отображения
Бит
достоверности
Элемент
2047
Тег
Данные
Адреса, которые
использует этот элемент
65504-65535,
131040-131072,...
5
4
3
2
1
64-95, 65600-65631,...
32-63, 65568-65599,...
0
1-31, 65536-65567,...
Представление адреса
ТЕГ
№ строки
Смещение
Байт
Динамическое прогнозирование ветвлений
Бит
достоверности
Бит
перехода
Адрес/тег перехода
Таблица условных переходов
Таблица с битами прогнозирования
Биты
прогнозирования
перехода
Бит
достоверности
Адрес/тег перехода
3
2
1
0
Таблица соответствия между адресом перехода
и целевым адресом
Бит
достоверности
Адрес/тег
перехода
3
2
1
0
Бит
перехода
Целевой адрес
Лекция 8.
Системы ввода/вывода
Технически система ввода/вывода в рамках микропроцессорной
системы реализуется комплексом модулей ввода/вывода (МВВ).
Модуль ввода/вывода выполняет сопряжение ВУ с ядром
микропроцессорной системы и различные коммуникационные операции
между ними.
Две основные функции МВВ:
- обеспечение интерфейса с ЦП и памятью («большой» интерфейс);
- обеспечение интерфейса с одним или несколькими периферийными
устройствами («малый» интерфейс).
Способы подключения СВВ к процессору
Шина памяти
Шина памяти
Центральный
процессор
управление
адрес
данные
адрес
данные
Управление вводом/
выводом
Центральный
процессор
Память
Система
ввода/
вывода
управление
адрес
данные
Управление вводом/
выводом
а)
б)
Шина памяти
Центральный
процессор
управление
адрес
данные
Управление вводом/
выводом
в)
Память
Система
ввода/
вывода
Память
Система
ввода/
вывода
Адресное пространство
Распределение совмещенного адресного пространства
Ячейки
памяти
Регистры
модулей
ввода/вывода
Совмещенное адресное пространство используется в
вычислительных машинах MIPS и SPARC.
Достоинства совмещенного адресного пространства:
- расширение набора команд для обращения к внешним устройствам
позволяет сократить длину программы и повысить быстродействие;
- значительное увеличение количества подключаемых внешних
устройств;
- возможность внепроцессорного обмена данными между внешними
устройствами, если в системе команд есть команды пересылки между
ячейками памяти;
- возможность обмена информацией не только с аккумулятором, но и
с любым регистром центрального процессора.
Недостатки совмещенного адресного пространства:
- сокращение области адресного пространства памяти;
- усложнение декодирующих схем адресов в СВВ;
- трудности распознавания операций передачи информации при
вводе/выводе среди других операций. Сложности в чтении и отладке
программы;
- трудности при построении СВВ на простых модулях ввода/вывода:
сигналы управления не смогут координировать сложную процедуру
ввода/вывода. Поэтому МВВ часто должны генерировать
дополнительные сигналы под управлением программы.
Достоинства выделенного адресного пространства:
- адрес внешнего устройства в команде ввода/вывода может быть
коротким. В большинстве СВВ количество внешних устройств намного
меньше количества ячеек памяти. Короткий адрес ВУ подразумевает
такие же короткие команды ввода/вывода и простые дешифраторы;
- программы становятся более наглядными, так как операции
ввода/вывода выполняются с помощью специальных команд;
- разработка СВВ может проводиться отдельно от разработки
памяти.
Недостатки выделенного адресного пространства:
- ввод/вывод производится только через аккумулятор центрального
процессора. Для передачи информации от ВУ в РОН, если аккумулятор
занят, требуется выполнение четырех команд (сохранение содержимого
аккумулятора, ввод из ВУ, пересылка из аккумулятора в РОН,
восстановление содержимого аккумулятора);
- перед обработкой содержимого ВУ это содержимое нужно
переслать в ЦП.
Лекция 9. Структура внешнего устройства и модуля
ввода-вывода
Все множество ПУ можно свести к трем категориям:
- для общения с пользователем;
- для общения с ВМ;
- для связи с удаленными устройствами.
Сигналы
управления из
модуля ввода/
вывода
Информация
состояния ВУ в МВВ
и состояния
МВВ в ВУ
Логика
управления
Обмен данными с
модулем ввода/
вывода
Буферная память
Преобразователь
Обмен данными с
внешней средой
Структура внешнего устройства
Структура модуля ввода/вывода
«Большой» интерфейс
«Малый» интерфейс
Регистр данных
Линии
данных
Линии
управления
Данные
Состояние
Управление
Узел малого
интерфейса
ВУn
Данные
Состояние
Управление
Регистр состояния
Регистр управления
Линии
адреса
Узел малого
интерфейса
ВУ1
Селектор
адреса
Узел
управления
вводом/выводом
DC
..
..
.
Программно-управляемый ввод данных
Начало
Выдача команды
ввода в МВВ
Чтение из регистра
состояния МВВ
ЦП
МВВ
МВВ
Подсчет
введенных слов
ЦП
Нет
Введен весь блок?
Да
Не
готовы
Проверка
состояния МВВ
и ВУ
Признак
ошибки
Готовы
Ввод слова из МВВ
Запись слова в
память
МВВ
ЦП
ЦП
ОП
Конец
Ввод данных по прерыванию
Инициализация
Обработка прерывания
Начало
Вход
Выдача команды
ввода в МВВ
Чтение из регистра
состояния МВВ
Конец
Подсчет
введенных слов
Проверка
состояния МВВ
и ВУ
Готовы
Признак
ошибки
Введен
весь блок?
Нет
Выдача команды
ввода в МВВ
Ввод слова из МВВ
Выход
Запись слова в
память
Да
Организация прямого доступа к памяти
Организация прямого доступа к памяти
Точки возможного вмешательства в цикл команды при прямом
доступе к памяти и при обычном прерывании
Возможные конфигурации систем прямого доступа к памяти
Лекция 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).
Адресное пространство регистров специальных функций
Адрес
Символ
Наименование
0E0H
*АСС
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 РЗ)
081H
SP
Регистр указатель стека (Stack Pointer)
083H
DPH
Старший байт регистра указателя данных DPTR (Data
Pointer High)
082H
DPL
Младший байт регистра указателя данных DPTR (Data
Pointer Low)
08CH
TH0
Старший байт таймера 0 ()
08AH
TL0
Младший байт таймера 0 ()
Аккумулятор (Accumulator)
Базовая архитектура микроконтроллера 8051
Косвенная адресация
Прямая адресация
0FFh
Шина адреса
OEO-Acc
Программн
ый счетчик
ODO-PSW
Память
программ
ALU
Дешифратор
команд
Шина данных
SP/DPTR
080h
07Fh
02Fh
020h
Банки памяти
4х8 байт
000h
Регистр флагов (PSW)
Лекция 13. Питание микроконтроллеров
Во многих приложениях используется батарейное питание
микроконтроллеров, а в некоторых случаях применяются
конденсаторы большой емкости, которые обеспечивают сохранение
работоспособности при кратковременных отключениях питания.
Поэтому проблема снижения энергопотреблении весьма актуальна
для микроконтроллеров.
Потребляемая мощность
Имеются три значения мощности, потребляемой
микроконтроллером в различных рабочих условиях:
1. Собственная мощность, необходимая для нормальной работы
микроконтроллера;
2. Мощность, потребляемая устройствами ввода-вывода, которую
требуется учитывать, когда микроконтроллер производит обмен
данными с внешними устройствами;
3. Мощность, потребляемая в «спящем» режиме.
Схема запуска микроконтроллера
(сброс в начальное состояние)
Тактирование системы
Существует три способа задания тактовой частоты микроконтроллера
1. Использование кварцевого резонатора
2. Использование RC-генератора
3. Использование внешней микросхемы тактового генератора
Лекция 14. Система команд микроконтроллера
семейства 8051
Микро-ЭВМ рассматриваемого семейства являются типичными
микропроцессорными устройствами с архитектурой SISC - со
стандартным набором команд. Поэтому их система команд довольно
обширна и включает в себя 111 основных команд. Их длина – один,
два или три байта, причем большинство из них (94%) – одно- или
двухбайтные.
Все команды выполняются за один или два машинных
цикла (соответственно 1 или 2 мкс при тактовой частоте 12 МГц),
исключение – команды умножения и деления, которые выполняются
за четыре машинных цикла (4 мкс). Микро-ЭВМ семейства 8051
используют прямую, непосредственную, косвенную и неявную,
адресацию данных.
Типы команд
Тип
команды
Первый байт
D7...D0
Второй байт
D7...D0
Третий байт
D7...D0
тип 1
коп
тип 2
коп
#d
тип 3
коп
ad
тип 4
коп
bit
тип 5
коп
rel
тип 6
коп
а7...a0
тип 7
коп
ad
#d
тип 8
коп
ad
rel
тип 9
коп
ads
add
тип 10
коп
#d
rel
тип 11
коп
bit
rel
тип 12
коп
ad16h
ad16h
тип 13
коп
#d16h
#d16h
Группы команд
1.
2.
3.
4.
5.
пересылки данных;
арифметических операций;
логических операций;
операций над битами;
передачи управления.
Способы адресации
ADD A, # 77.
1. Непосредственная адресация
Значение непосредственного операнда обозначается символом # .
MOV A, Rn.
2. Регистровая адресация
3. Прямая адресация MOV А, 0D0h.
MOV A, @Ri.
4. Косвенно-регистровая адресация
5. Индексная адресация
MOVC A, @A+DPTR.
Команды пересылки данных
микроконтроллера 8051
Название команды
Пересылка в аккумулятор из регистра (n=0÷7)
Мнемокод
MOV A, Rn
Пример
Пересылка в аккумулятор прямоадресуемого байта
MOV A, ad
MOV A, 21A3
Пересылка в аккумулятор байта из РПД (i=0,1)
Загрузка в аккумулятор константы
MOV A, @Ri
MOV A, #d
MOV A, @R2
MOV A, #45
MOV A, #013h
Пересылка в регистр из аккумулятора
MOV Rn, A
Пересылка в регистр прямоадресуемого байта
Загрузка в регистр константы
MOV Rn, ad
MOV Rn, #d
Пересылка по прямому адресу аккумулятора
Пересылка по прямому адресу регистра
Загрузка в стек
Извлечение из стека
Обмен аккумулятора с регистром
Обмен аккумулятора с прямоадресуемым байтом
Обмен аккумулятора с байтом из РПД
Обмен младших тетрад аккумулятора и байта РПД
MOV ad, A
MOV ad, Rn
PUSH ad
POP ad
XCH A, Rn
XCH A, ad
XCH A, @Ri
XCHD A, @Ri
MOV A, R1
MOV A, P2
MOV A, PSW
MOV R3, A
MOV P0, A
MOV R2, 0121
MOV R7, #0ABh
MOV TMOD,#00000001b
MOV P3,#10010001b
MOV 0021, A
MOV 0100,R5
Функциональная схема подключения ресурсов
Таблица распределения подключаемых
ресурсов к разрядам портов
Ресурс
Разряд порта
Семисегментный индикатор 1
A1
P0.1
B1
P0.2
C1
P0.3
D1
P0.4
E1
P0.5
F1
P0.6
G1
P0.7
Семисегментный индикатор 2
A2
P1.1
B2
P1.2
C2
P1.3
D2
P1.4
E2
P1.5
F2
P1.6
G2
P1.7
Лекция 15. Связь микроконтроллера с внешней
средой и временем
Типовая схема двунаправленного порта ввода/вывода МК
Организация портов ввода вывода
Вывод порта
Альтернативная функция
РЗ.0
RXD - вход последовательного порта
Р3.1
TXD - выход последовательного порта
РЗ.2
INT0 - внешнее прерывание 0
Р3.3
INT1 - внешнее прерывание 1
РЗ.4
Т0 - вход таймера-счетчика 0
РЗ.5
Т1 - вход таймера-счетчика 1
РЗ.6
WR - строб записи во внешнюю память
РЗ.7
RD - строб чтения из внешней памяти данных
данных
Структура модуля таймера-счетчика
Логика работы T/C0 и Т/C1в режимах 0, 1
C ontrol
O SC
C / T X =0
:12
INTR
TL X
T X PIN
C / T =1
X
TR X
&
GATE X
INT X PIN
1
TH X
TF X
M ode 0: TL X (5 bit), TH X (8 bit)
M ode 1: TL X (8 bit), TH X (8 bit)
X ={0,1}
а - логика работы T/C0 и T/C1 в реж имах 0 и 1
Логика работы T/C0 и Т/C1в режиме 2
C ontrol
O SC
C / T X =0
:12
IN T R
T L X (8 bit)
T X PIN
C / T =1
X
TRX
&
GATEX
1
TFX
&
T H X (8 bit)
IN T X PIN
X ={0,1}
б - логика работы T /C0 и T /C1 в реж им е 2
Логика работы T/C0 и Т/C1в режиме 3
C ontrol
IN T R
T H0 (8 bit)
T F1
T R1
C ontrol
O SC
C / T =0
X
:12
X
TRX
GATEX
T L0 (8 bit)
C/T
T X PIN
IN T R
=1
&
1
IN T X PIN
в - логика работы T /C 0 в реж им е 3
T F0
Лекция 16. Система прерываний микроконтроллера 8051
Регистр масок прерывания (IE)
Симв.
Позиц.
Имя и назначение
IE.7
Снятие
блокировки
прерывания.
Сбрасывается,
программно для запрета всех прерываний независимо от
состояний
IE.4 - IE.0
IE.6
Не используется
lE.5
Не используется
IE.4
Бит разрешения прерывания, от приемопередатчика
Установка/сброс программой для разрешения/запрета
прерываний от флагов TI или RI .
ET1
IE.3
Бит разрешения прерывания от таймера. Установка/сброс
программой для разрешения/запрета прерываний от
таймера 1
EX1
IE.2
Бит разрешения внешнего прерывания 1. Установка/сброс
программой для разрешения/запрета прерывания 1
ET0
IE.1
Бит разрешения прерывания от таймера 0. Установка/сброс
программой для разрешения/запрета прерываний от
таймера 0
EX0
IE.0
Бит разрешения внешнего прерывания 0. Установка/сброс
программой для разрешения/запрета прерывания 0
EA
ES
Регистр приоритетов прерываний (IP)
Симв.
PS
РТ1
РХ1
РТ0
РХ0
Поз.
Имя и назначение
IP.4
Бит приоритета приемопередатчика. Установка/сброс
программой для присваивания прерыванию от
приемопередатчика высшего/низшего приоритета.
IP.3
Бит
приоритета
таймера
1.
Установка/сброс
программой для присваивания прерыванию от
таймера 1 высшего/низшего приоритета.
IP.2
Бит
приоритета
внешнего
прерывания
1.
Установка/сброс программой для присваивания
приоритета внешнему прерыванию INT1.
IP.1
Бит
приоритета
таймера
0.
Установка/сброс
программой для присваивания прерыванию от
таймера 0 высшего/низшего приоритета.
IP.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,#00000000b; Таймеры - Режим0
mov TCON,#00010000b; Включаем таймер0
mov IE,#10000010b; Разрешение прерывания только от таймера 0
ret
Лекция 17. Основные типы интерфейсов
микроконтроллеров
Подавление звона контактов
При замыкании и размыкании переключателей в цепи возникают
импульсные помехи, вызванные дребезгом контактов. Это явление
часто возникает и системах на базе микроконтроллеров, где для
ввода данных используется клавиатура, и «звон» может
восприниматься как многократное нажатие клавиши.
Дребезг контактов
Один их простых схемотехнических способов устранения
звона состоит в подключении RC-цепи.
В этой схеме время, требуемое для заряда/ разряда
конденсатора до порогового напряжения, маскирует «звон» контактов
при переключении.
Недостатки этого метода - дополнительные затраты на
компоненты, которые должны быть установлены на плате, и
дополнительное время, требуемое для заряда/разряда RC-цепи.
Подключение светодиодов и 7-сегментных индикаторов
Выводы
сегментов
индикатора
Порты МК
Каждый светодиод в индикаторе имеет свой буквенный
идентификатор ( А, В, С, D, E, F или G), и одна из ножек светодиода
подключена к соответствующему внешнему выводу. Вторые ножки всех
светодиодов соединены вместе и подключены к общему выводу. Этот
общий вывод определяет тип индикатора: с общим катодом или с
общим анодом.
Подключение к микроконтроллеру четырех
7-сегментных индикаторов
Типичный способ подключения нескольких индикаторов состоит в
том, чтобы включить их параллельно и затем управлять протеканием
тока через общие выводы отдельных индикаторов. Так как величина
этого тока обычно превышает допустимое значение выходного тока
микроконтроллера, то для управления током включаются
дополнительные транзисторы, которые выбирают, какой из индикаторов
будет находиться в активном состоянии.
Лекция 18. Подключение клавиатуры и дисплея
Ввод с матричной клавиатуры
Лучшим решением является использование матричной клавиатуры,
которая представляет собой набор ключей, объединенных в ряды и
столбцы.
ряды
Подключение к
высокому уровню
столбцы
Для чтения состояния определенного ключа на столбец подается
сигнал, а затем считывается состояние рядов. Обычно ряды подключают
к высокому потенциалу, а опрашиваемый столбец соединяется с землей.
Если при сканировании рядов считывается низкий уровень сигнала , это
означает, что ключ в данной позиции ряд/столбец замкнут.
Существуют специальные микросхемы, которые выполняют опрос
клавиатуры и посылают сигнал, когда данные готовы для считывания.
На схеме показано использование микросхемы типа 74С922 в
качестве интерфейса между клавиатурой с матрицей 4x4 ключа и
микроконтроллером 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 старших разряда линии данных 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, чтобы очистить экран.
 Ввести «Установка направления движения курсора», чтобы
установить поведение курсора.
 Ввести «Включение экрана/курсора», чтобы включить экран и,
если требуется, курсор.
Лекция 19. Конвейеризация в микропроцессорных
системах
С1
С2
Блок
выборки
команд
С4
С3
Блок
декодирования
Блок
выборки
операндов
С5
Блок
выполнения
команд
Блок
возврата
Конвейер с пятью стадиями
С1
1
С2
2
3
4
5
1
2
3
4
1
2
С3
1
С4
С5
1
2
3
4
6
7
8
9
8
2
1
2
3
4
5
5
6
7
8
9
1
2
Блок-схема архитектуры Pentium
•
•
•
•
•
пятиступенчатый конвейер для обработки команд:
PF (Prefetch) - предвыборка команд;
D1 (Instruction Decode) - декодирование команды;
D2 (Address Generate) - формирование адреса;
EX (Execute) - выполнение команды в АЛУ и доступ к кэш-памяти;
WB (Write Back) - обратная запись.
Микропроцессор с разнесенной архитектурой
Память
А-команды
запись
E-команды
чтение
AE
EA
AW
АА
А - регистры
Адресный А-процессор
X-регистры
Исполнительный Е-процессор
Микропроцессор
с разнесенной
архитектурой
Преддеко
дирование
Файл регистров
с плавающей
точкой
Кэш
команд
Буфер
команд
Декодирование,
переимено
вание,
диспетчери
зация
Файл регистров
с
фиксированной
точкой
Буфер
команд с
плавающ
ей точкой
Буфер
целочисленных
адресных
команд
Функциональные
устройства
Функциональные
устройства
и кэш
данных
Переупорядочивание и
фиксация результатов
Интерфейс
памяти
Структурная схема МП с параллельной архитектурой
Блок
прогнозирования
ветвлений
Шина адреса, данных,
сигналов управления
Устройства связи с кэш 2-го уровня
и системной шиной
Блок предварительной
дешифрации
Кэш команд
Буфер переупорядочивания
команд
FPU1
FPU2
FPU3
Файл регистров
данных
ALU1
ALU2
Файл целочисленных регистров
Устройства
переименования
регистров
LSU
Кэш
данных
Планировщик
Кэш
команд
Обрабат.
элемент
Регистровый файл
Конец
Однонапрвленное
кольцо
Процессорное
устройство
Однонапрвленное
кольцо
Начало
Процессорное
устройство
...
Кэш данных
Банк
данных
Буфер адресов
Коммутатор
...
Банк
данных
Лекция 20.
P
Мультипроцессоры
P
P
P
Процессор
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
Память совместного
использования
P
P
P
а)
P
P
P
P
P
P
б)
Мультипроцессор, содержащий 16 процессов, которые разделяют
общую память (а); изображение, разбитое на 16 секций, каждую из
которых анализирует отдельный процессор (б).
Мультикомпьютеры
M
P
M
P
M
P
M
P
M
M
M
M
P
P
P
P
Сеть с
передачей
сообщений
P
P
P
P
M
M
M
M
а)
Собственая память
Процессор
P
P
M
P
P
M
P
P
M
P
P
M
P
P
P
P
Процессор
P
Сеть с
передачей
сообщений
P
P
P
P
P
P
P
б)
Мультикомпьютер, содержащий 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
Мультипроцессор
Расширенная классификация Флинна
Архитектуры компьютеров
параллельного действия
SISD
SIMD
MISD
(Фон Нейман)
?
Массивнопараллельный
процессор
Векторный
процессор
UMA
С шинной
организацией
MIMD
Мультипроцессоры
COMA
С координатными
коммутаторами
NUMA
CCNUMA
Совместно используемая память
NCNUMA
Мультикомпьютеры
MPP
COW
В виде
решетки
В виде
гиперкуба
Передача сообщений
Расширенная классификация Флинна
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 битный транспьютерный чип IMST414B
Структура транспьютера
и систем на его основе
Состав транспьютера
В зависимости от модели транспьютер включает:
- ЦП, 32- или 16-разрядный;
- интерфейс внешней памяти;
- 2-4 линка- двунаправленных канала;
- программируемый блок событий (Event);
- таймер;
- внутреннее ОЗУ ёмкостью 2 или 4 Кбайта;
- блок режимов работы Линков;
- блок системных функций.
Некоторые модели могут содержать 64-разрядное устройство
операций с плавающей точкой и интерфейсные схемы внешних
устройств.
Центральный процессор (CPU)32 разряда
64-разрядный процессор обработки
чисел с плавающей точкой (FPU)
Питание
Земля
Reset
Analyse
Errorln
Error
BootFromROM
Буфер
4 3
0
команды
B
Код A
Данные
команды
C
Блок
системных
функций
Таймер
Установка
скорости
процессора
Link0Special
31
A
Тактирование
LinkSpecial
Регистр
операнда
Регистровый
стек
7
I
Указатель команды
w
Указатель рабочей
области данных
Bptr
0,1
Указали конца
очереди процуссов
Fptr
0,1
Блок
режимов
работы линков
4 3
0
Указатели начала
очереди процессов
31
0
Link123Special
Внутрикристальная память
4 Кбайт
(адреса 8000000016- 80000FFF18)
Linkln2
LinkOut2
Linkln3
LinkOut3
Единое адресное простраство
Линк 2
Линк 3
EventReq
EventAck
Зарезервированные
адреса памяти
80000000-80000070
Линк 1
Блок событий
(Event)
EventWaiting
Рабочая область и
команды процесса i
Интерфейс
внешней
памяти
Рабочая область и
команды процесса j
Команды и данные
Linkln1
LinkOut1
Линк 0
32 разрядная шина адресов и
данных
Linkln0
LinkOut0
Службнаные слова
текущего процесса
Дно рабочей
области текущего
процесса
Данные текушего
процесса
Команды текушего
процесса
Следующая
команда
Верхняя граница
адресов7FFFFFFF
Структура транспьютера Т800
Внешняя память до 4 Гбайт(адреса 8000100016- 7FFFFFF18)
Лекция 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 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 байт;
3. 128к внешней памяти 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 со
встроенной периферией.
Основные характеристики:
- рабочая частота 11.0592 мгц;
- 8-канальный 12-битный АЦП со скоростью выборок 200 К/с (в
режиме ПДП);
- два 12-битных ПАП (код-напряжение);
- внутренний температурный сенсор;
- 640 байт программируемого E2PROM со страничной
организацией (256 страниц по 4 байта);
- 256 байт внутренней памяти данных;
- адресное пространство 16 мб;
- режим управления питанием;
- асинхронный последовательный ввод-вывод;
- интерфейс I2С;
- три 16-битных таймера/счетчика и таймер watchdog.
Распределение памяти в SDK 1.1
Лекция 27.
Карта портов ввода-вывода
В стенде SDK-1.1 ввод-вывод данных осуществляется с помощью
портов микроконтроллера и микросхемы ПЛИС, которая имеет 8 регистров,
отображаемых во внешнее адресное пространство процессора.
Порт
Назначение
P0.7-P0.0 Шина адреса/данных AD(7-0) системного интерфейса
P1.7-P1.0
Аналоговый вход, линии которого мультиплексируются с линиями 70 АЦП.
P2.7-P2.0 Адресная шина системного интерфейса А(15-8).
P3.0
RxD - входные данные приемопередатчика UART.
P3.1
TxD - выходные данные приемопередатчика 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.
Регистры ПЛИС
Адрес
Регистр
Доступ
Назначение
080000H
KB
R/W
Регистр клавиатуры.
080001H
DATA_IND
R/W
Регистр шины данных.
080002H
EXT_LO
R/W
Регистр данных
параллельного порта (0..7).
080003H
EXT_HI
R/W
Регистр данных
параллельного порта (8..15).
080004H
ENA
W
Регистр управления портами
ввода-вывода, звуком и
сигналом INT0.
080006H
C_IND
W
Регистр управления ЖКИ.
080007H
SV
W
Регистр управления
светодиодами
Общий вид стенда SDK 1.1
Расшифровка обозначений на схеме лицевой панели стенда SDK-1.1.
Элемент
LCD
KEYBOARD
Z1
SW2
J4
JDP1
J1
SW1
J3
SW3
J2
Описание
Жидкокристаллический индикатор WH1602B-YGK-CP.
Матричная клавиатура AK1604A-WWB.
Звуковой пьезокерамический излучатель.
Кнопка сброса RESET.
Разъем питания стенда типа "JACK", полярность безразлична.
Разъем последовательного порта стенда.
Выводы каналов АЦП и ЦАП.
Переключатель, занимающий каналы 0 и/или 1 ЦАП на входы
соответствующих (0, 1) каналов ЦАП.
16 линий параллельного порта ПЛИС MAX и 4 линии параллельного
порта P3 микроконтроллера ADuC812 (INT0/1,T0/1).
Набор переключателей, замыкающих соответствующие выводы J3
на корпус (переключение в лог. "0").
Выводы JTAG - интерфейса ПЛИС MAX.
JP1
Перемычка, замыкающая вывод PSEN микроконтроллера ADuC812
на корпус.
JP3
Разъемы подключения внешней батареи питания часов реального
времени PCF8583.
D9-D16
Набор сигнальных светодиодов.
Лекция 28.
Прерывание
Прерывания ADuC812
Наименование
Адрес
вектора
Приоритет
PSMI
Источник питания ADuC812.
43Н
1
IE0
Внешнее прерывание INTO.
0ЗН
2
ADCI
Конец преобразования АЦП.
ЗЗН
3
TF0
Переполнение таймера 0.
0ВН
4
IE1
Внешнее прерывание INT1.
13Н
5
TF1
Переполнение таймера 1.
1ВН
6
Прерывание
последовательного
интерфейса (I2С,ISPI).
ЗВН
7
Прерывание UART.
23Н
8
Переполнение таймера 2.
2ВН
9
I2CI/ISPI
RI/TI
TF2/EXF2
Микроконтроллер ADuC812 обеспечивает восемь источников и
два уровня приоритета прерываний. Соответствующий
определенному прерыванию приоритет можно установить в регистре
специального назначения IP.
Лекция 29. Основные этапы программирования стенда
• Подготовка программы в текстовом редакторе или среде программирования.
• Транслирование исходного текста и получение загрузочного НЕХ-модуля.
• Подготовка и загрузка НЕХ-модуля в стенд.
• Прием и обработка НЕХ-модуля резидентным загрузчиком НЕХ202, передача
управления загруженной программе.
Шаг 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).
Лекция 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 =
0x80,-объявляет переменную Р0 и назначает ей адрес специального
регистра 0x80. Это адрес порта Р0.
Компилятор С51 производит автоматическое преобразование
типов в случае, если результат относится к другому типу. Кроме того,
можно выполнить принудительное приведение типов. В процессе
приведения расширение знака к переменным знаковых типов
добавляется автоматически.
Модификаторы памяти
Компилятор С51 поддерживает контроллеры типа 8051 и
обеспечивает доступ ко всем областям памяти контроллера. Для
каждой переменной можно точно указать область ее размещения в
памяти. Обращение к внутренней памяти данных происходит
гораздо быстрее, чем к внешней. Поэтому переменные, которые
используются чаще других, следует размещать во внутренней памяти,
а остальные – во внешней. Применяя модификаторы памяти при
объявлении переменной, можно указать, где именно она будет
размещена.
Лекция 31. Инструментальная система для Win 9x/NT
Инструментальная система Т167В призвана решать следующие
задачи:
- преобразование hex- и bin- файлов;
- передача загрузочных модулей различных форматов в целевую
систему с протоколами разного уровня сложности;
- получение информации из целевой системы;
- обеспечение элементарных операций с последовательным
каналом (прием и передача байта, эмуляция терминала, настройка
скорости);
- обеспечение быстрой адаптации к целевой системе.
Управляющие клавиши
- CTRL+BREAK - аварийный выход (в большинстве случаев
приводит к корректному завершению работы Т167В при зависаниях).
- Alt+X - выход в DOS;
- Up, Down - перелистывание команд (командная строка в Т167В
имеет историю, записываемую в файл).
Инструментальная система Т2 для Windows 9x/NT с точки зрения
команд для работы с SDK-1. является аналогом системы Т167В для
MS-DOS (за исключением нескольких команд).
Перечень основных команд системы Т2
Команда
OPENCHANNEL
OPENCOM1,
OPENCOM2
CLOSECHANNEL
TERM
Действие
Открытие СОМ-порта с установкой сигнала RTS.
Открытие портов СОМ1 или COM2 с установкой сигнала
RTS.
Закрытие СОМ-порта.
Включение эмулятора терминала.
+ЕСНО
Включение режима копирования консольного вывода в
файл echo.txt.
-ECHO
Выключение режима копирования консольного вывода в
файл echo.txt
LOADHEX
ADDHEXSTART
BYE
LFILE
НЕХ-загрузка.
Добавление стартового адреса в конец НЕХ-файла.
Выход из Т2.
Интерпретация командного файла.
OPENCHANNEL (baud -> com) - открытие последовательного
порта на заданной скорости. Числовой параметр baud определяет
скорость в бодах, например, 19200. Параметр 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
Лекция 32. Резидентный загрузчик НЕХ202
Резидентный загрузчик НЕХ202 располагается во Flash-памяти
ADuC812 начиная с адреса 0l00h. Он обеспечивает начальную
инициализацию системы, загрузку программ в НЕХ-формате в память
SDK-1.1 и передачу им управления.
Начальная инициализация. При включении питания или
передаче управления на ячейку с адресом 0 происходит повторная
инициализация всех регистров специального назначения их
значениями по умолчанию. Это сделано для того, чтобы при
случайной передаче управления на ячейку с адресом 0 вследствие
возможной ошибки в пользовательской программе не происходило
сбоя системы, а сама система вела себя так же, как при включении
питания.
Эта же процедура повторяется непосредственно перед передачей
управления загруженной программе. В случае успешной
инициализации на ЖКИ на мгновение выводится надпись «SDK-1.1,
2001 ©LMT Ltd» и на резонатор выдается короткий сигнал.
Загрузка программ в память 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
начальный адрес для размещения байтов данных
Тип записи
2
00 = данные, 01 = завершение
Байты данных
0-16
Контрольная
сумма
2
Описание
данные
сумма байтов данных в записи + контрольная
сумма = 0

similar documents