ПРЕДИСЛОВИЕ
Структура книги ...................................................................................16
Учебные системы ................................................................................17
Целевая аудитория .............................................................................18
Благодарности ....................................................................................19
Глава 1. ПЕРВОЕ ЗНАКОМСТВО СО ВСТРАИВАЕМЫМИ
СИСТЕМАМИ
1.1. Что такое встраиваемая система? ..................................................22
1.2. Особенности встраиваемых систем ...............................................25
1.2.1. Работа в реальном времени ..................................................25
1.2.2. Миниатюризация размеров и процесс тестирования .....26
1.2.3. Минимизация энергии потребления.....................................26
1.2.4. Интерфейс пользователя и интерфейс сопряжения с
объектом.....................................................................................27
1.2.5. Многозадачность......................................................................27
1.2.6. Минимизация стоимости .........................................................27
1.2.7. Ограничение объема памяти.................................................27
1.2.8. Программно–аппаратный дуализм.......................................28
1.3. Введение в микроконтроллеры семейства 68HC12 и HCS12.......29
1.4. Микроконтроллеры HCS12 .................................................................33
1.4.1. Семейство HCS12......................................................................35
1.4.2. Обозначения МК .......................................................................35
1.4.3. Модельный ряд HCS12 .............................................................35
1.5. Заключение по главе 1 ........................................................................36
1.6. Вопросы и задания ..............................................................................36
Глава 2. ПРОГРАММИРОВАНИЕ ВСТРАИВАЕМЫХ СИСТЕМ
И СТРУКТУРНОЕ ПРОЕКТИРОВАНИЕ
2.1. Почему мы программируем микроконтроллеры на Си? .............44
2.2. Преимущества программирования на языке ассемблер...........45
2.3. Преимущества языков высокого уровня ..........................................45
2.3.1. Выбираем язык высокого уровня для программирования
встраиваемых систем..............................................................47
2.3.2. Краткая история языка Си ......................................................47
2.4. Оптимальная стратегия > программирование на Си и на
ассемблере..........................................................................................48
2.5. Структурное проектирование...........................................................49
2.5.1. Основные положения метода структурного
проектирования ........................................................................49
2.5.2. Документирование программ................................................58
2.5.3. Как язык Си соотносится со структурным
проектированием .....................................................................59
2.6. Рабочие тетради ..................................................................................59
2.6.1. Порядок ведения записей ......................................................59
2.6.2. Содержание записей..............................................................60
2.7. Блок>схемы алгоритмов.......................................................................60
2.8. Пример применения............................................................................62
2.9. Заключение по главе 2 ........................................................................63
2.10.Что еще почитать?................................................................................65
2.11.Вопросы и задания ..............................................................................66
Глава 3. ОСНОВЫ ПРОГРАММИРОВАНИЯ
МИКРОКОНТРОЛЛЕРОВ НА СИ
3.1. Введение в программирование на Си.............................................71
3.1.1. Глобальные и локальные переменные .................................71
3.2. Типы данных в Си ..................................................................................72
3.3. Операторы языка Си...........................................................................76
3.4. Функции..................................................................................................82
3.4.1. Что такое функция?...................................................................82
3.4.2. Основная программа ..............................................................83
3.4.3. Прототипы функций...................................................................84
3.4.4. Описание функций ...................................................................85
3.4.5. Вызов функций, передача параметров,
возврат полученных значений ................................................86
3.5. Файлы заголовков ................................................................................87
3.6. Директивы компилятора .....................................................................88
3.6.1. Директива условной компиляции ..........................................88
3.7. Конструкции программирования......................................................92
3.8. Операторы для организации программных циклов......................93
3.8.1. Оператор FOR ...........................................................................93
3.8.2. Оператор WHILE........................................................................94
3.8.3. Оператор DO – WHILE...............................................................95
3.9. Операторы принятия решения..........................................................95
3.9.1. Оператор IF................................................................................96
3.9.2. Оператор IF>ELSE .......................................................................97
3.9.3. Оператор IF>ELSE IF>ELSE ...........................................................97
3.9.4. Оператор SWITCH......................................................................99
3.10. Массивы..............................................................................................100
3.11. Указатели ............................................................................................102
3.12. Структуры............................................................................................104
3.13. Процесс программирования и отладки микропроцессорной
системы................................................................................................106
3.13.1. Технология создания программного кода ........................106
3.13.2. Режим отладки BDM...............................................................112
3.13.3. Аппаратные и программные средства отладчика P&E
от компании PEMICRO ...........................................................117
3.13.4. Эмуляторы ...............................................................................118
3.13.5. Логические анализаторы .....................................................122
3.14. Особенности компилятора и ассемблера .................................123
3.15. Заключение по главе 3 .....................................................................134
3.16. Что еще почитать? .............................................................................134
3.17. Вопросы и задания ...........................................................................134
Глава 4. МИКРОКОНТРОЛЛЕРЫ 68HC12 И HCS12:
АРХИТЕКТУРА И ПРОГРАММИРОВАНИЕ
4.1. Аппаратные средства МК семейства 68HC12 ..............................139
4.2. Аппаратные средства МК семейства HCS12 ...............................147
4.3. Режимы работы МК семейства 68HC12/HCS12 ............................149
4.3.1. Рабочие режимы.....................................................................150
4.3.2. Режимы работы отладочной платы M68EVB912B32...........151
4.4. Назначение выводов МК ...................................................................152
4.5. Регистры специальных функций МК................................................153
4.5.1. Виртуальный адрес блока регистров.................................156
4.6. Порты ввода/вывода..........................................................................157
4.6.1. Спецификация портов ввода/вывода .................................158
4.7. Подсистема памяти МК B32..............................................................164
4.7.1. Карта памяти МК B32 ..............................................................166
4.7.2. Изменение адресов в карте памяти МК.............................166
4.8. Подсистема памяти МК DP256.........................................................167
4.9. Состояния сброса и прерывания МК............................................168
4.9.1. Реакция МК на внешние события ........................................169
4.10. Состояния сброса и прерывания в МК 68HC12 ..........................170
4.10.1. Состояние сброса МК..........................................................171
4.10.2. Прерывания.............................................................................173
4.10.3. Вектора исключений .............................................................177
4.10.4. Система приоритетов для исключений.............................180
4.10.5. Регистры подсистемы прерывания ....................................182
4.11. Процесс перехода к подпрограмме прерывания.....................183
4.12. Оформление подпрограммы прерывания на Си .......................187
4.13. Система тактирования.....................................................................189
4.13.1. Система тактирования отладочной платы
MC68HC912B32EVB.................................................................189
4.14. Подсистема реального времени – модуль таймера .................191
4.14.1. Структура модуля таймера..................................................192
4.14.2. Счетчик временной базы......................................................193
4.14.3. Регистры для управления счетчиком временной базы...199
4.14.4. Каналы захвата/сравнения..................................................202
4.14.5. Счетчик событий.....................................................................225
4.15. Модуль меток реального времени.................................................230
4.16. Модуль таймера ECT в составе МК МC68HC12BE32 и HCS12....233
4.16.1. Небуферированные каналы входного захвата ................235
4.16.2. Буферированные каналы входного захвата .....................235
4.16.3. Особенности счетчиков событий .......................................236
4.16.4. Регистры управления модуля EST ........................................236
4.17. Обмен информацией в последовательном коде:
многофункциональный последовательный интерфейс .............240
4.17.1. Термины последовательного обмена................................243
4.18. Контроллер асинхронного обмена SCI ........................................245
4.18.1. Передатчик контроллера SCI ..............................................248
4.18.2. Приемник контроллера SCI..................................................249
4.18.3. Регистры контроллера SCI ...................................................250
4.18.4. Алгоритмы программного обслуживания
контроллера SCI.....................................................................257
4.18.5. Пример программирования контроллера SCI.................258
4.19. Синхронный последовательный интерфейс SPI ..........................260
4.19.1. Концепция интерфейса SPI...................................................260
4.19.2. Алгоритмы работы контроллера SPI...................................261
4.19.3. Регистры контроллера SPI ....................................................263
4.19.4. Алгоритмы программного обслуживания
контроллера SPI .....................................................................270
4.19.5. Периферийные ИС с интерфейсом SPI..............................273
4.20. Введение в теорию аналого>цифрового преобразования.......274
4.20.1. Частота дискретизации сигнала ........................................274
4.20.2. Представление аналоговой величины
в цифровом коде...............................................................................275
4.20.3. Квантование по уровню и разрешающая способность.....277
4.20.4. Скорость потока данных оцифровки .................................277
4.21. Принцип действия АЦП.....................................................................279
4.21.1. АЦП последовательного приближения .............................279
4.22. Подсистема аналого>цифрового преобразования МК 68HC12.....282
4.22.1. Структура и порядок функционирования..........................282
4.22.2. Регистры управления модуля ATD.......................................284
4.22.3. Пример программирования модуля ATD...........................293
4.22.4. Обслуживание прерываний от модуля ATD ......................296
4.23.Особенности модуля ATD в составе МК семейства HCS12 .......297
4.23.1. Выбор разрядности АЦП ......................................................297
4.23.2. Представление результата измерения..............................297
4.23.3. Запуск измерительной последовательности
от внешнего сигнала .............................................................299
4.23.4. Программируемое число преобразований
в измерительной последовательности..............................299
4.23.5. Увеличение числа аналоговых входов ...............................300
4.23.6. Регистры модуля ATD HCS12 .................................................300
4.24. Подсистема широтно>импульсной модуляции ............................300
4.24.1. Структура модуля PWM.........................................................302
4.24.2. Режимы центрированной и фронтовой ШИМ ...................305
4.24.3. Система тактирования..........................................................306
4.24.4. Регистры модуля PWM...........................................................308
4.24.5. Примеры программирования модуля PWM......................313
4.25. Ограничение энергии потребления..............................................317
4.25.1. Как остановить МК 68HC12 ...................................................317
4.25.2. Как вывести МК 68HC12 из состояния пониженного
энергопотребления...............................................................318
4.26. Советы по использованию платы отладки
MC68EVB912B32 .................................................................................320
4.27. Заключение по главе 4 .....................................................................323
4.28. Что еще почитать? .............................................................................323
4.29. Вопросы и задания ...........................................................................323
Глава 5. ОСНОВЫ СОПРЯЖЕНИЯ МК С УСТРОЙСТВАМИ
ВВОДА/ВЫВОДА
5.1. Электрические характеристики МК 68HC12 ................................328
5.1.1. Нагрузочные характеристики ..............................................330
5.1.2. Что произойдет, если Вы должным образом не учтете
электрические характеристики периферийных ИС?......331
5.1.3. Входные и выходные характеристики
логических элементов.........................................................................332
5.2. Устройства дискретного ввода: кнопки, переключатели,
клавиатуры ..........................................................................................334
5.2.1. Кнопки и переключатели.......................................................334
5.2.2. DIP переключатели.................................................................335
5.2.3. Клавиатуры...............................................................................336
5.3. Устройства индикации: светодиоды, семисегментные индикаторы,
индикаторы логического выхода с тремя состояниями .............342
5.3.1. Светодиоды..............................................................................342
5.3.2. Семисегментные индикаторы ..............................................343
5.3.3. Индикаторы для логического выхода с тремя
состояниями ............................................................................344
5.4. Программное обслуживание дискретных входов и выходов ....346
5.5. Подавление механического дребезга контактов
переключателей ................................................................................346
5.5.1. Аппаратная защита от механического дребезга
контактов...................................................................................347
5.5.2. Программная защита от механического дребезга
контактов...................................................................................348
5.5.3. Пример программной защиты .............................................349
5.6. Жидкокристаллические индикаторы.............................................352
5.6.1. Краткие сведения о жидкокристаллических
индикаторах.............................................................................352
5.6.2. Сопряжение МК с символьным ЖК индикатором ............353
5.6.3. Сопряжение МК с графическим ЖК дисплеем ................359
5.7. Управление электрическим двигателем .......................................367
5.7.1. Силовые полупроводниковые ключи ..................................367
5.7.2. Оптоэлектронная потенциальная развязка ......................368
5.7.3. Инвертор напряжения ...........................................................370
5.8. Кодовый замок....................................................................................371
5.8.1. Схема подключения периферийных устройств................373
5.8.2. Программа управления.........................................................373
5.9. Интерфейс МК с аналоговыми датчиками....................................378
5.10.Интерфейс RS>232...............................................................................380
5.11.Заключение по главе 6 ......................................................................381
5.12.Что еще почитать ? .............................................................................382
5.13.Вопросы и задания ............................................................................382
Глава 6. ДОБРО ПОЖАЛОВАТЬ В РЕАЛЬНЫЙ МИР!
6.1 Ужасные истории об ошибкахпроектирования..........................386
6.1.1. Случай квадратичного генератора ....................................386
6.1.2. Случай таймера для лазерного излучения........................388
6.2. Правила обращения с микросхемой 68НС12
и рекомендации по проектированию ...........................................391
6.2.1. Рекомендации по обращению со CMOS ..........................392
6.2.2. Рекомендации по проектированию на CMOS..................392
6.3. Исследование помех........................................................................393
6.3.1. Что такое помехи....................................................................393
6.3.2. Электромагнитная совместимость......................................395
6.3.3. Спецификации системы помех – не будем крепки задним
умом! .........................................................................................395
6.3.4. Методы снижения помех.......................................................396
6.4. Защитное программирование ........................................................399
6.5. Методики испытаний на наличие помех........................................401
6.5.1. Обнаружение помех .............................................................401
6.5.2. Испытание на чувствительность к помехам .......................401
6.5.3. Испытания на электомагнитную совместимость..............402
6.6. Управление энергопотреблением.................................................403
6.6.1. Параметры потребляемой мощности
для процессора 68HC12 .......................................................403
6.6.2. Типы батарей ..........................................................................404
6.6.3. Емкость батарей .....................................................................404
6.6.4. Стабилизация напряжения...................................................404
6.6.5. Схемы супервизора для микропроцессора....................406
6.6.6. Меры энергосбережения ....................................................407
6.7. Заключение по главе 6 ......................................................................408
6.8. Что еще прочитать..............................................................................408
6.9. Вопросы и задания ............................................................................409
Глава 7. ПРИМЕРЫ ВСТРОЕННЫХ СИСТЕМ УПРАВЛЕНИЯ
7.1. Система привода робота, движущегося вдоль
стенок лабиринта .............................................................................412
7.1.1. Описание проекта .................................................................412
7.1.2. Системы 68HC12, используемые в проекте .......................415
7.1.3. Описание некоторых компонентов системы.....................415
7.1.4. Структура программы и блок>схема алгоритма .............417
7.1.5. Программный код ...................................................................418
7.2. Лазерный проектор...........................................................................426
7.2.1. Описание проекта .................................................................426
7.2.2. Системы 68HC12 используемые в проекте ........................426
7.2.3. Описание некоторых компонентов системы.....................426
7.2.4. Аппаратные средства ...........................................................432
7.2.5. Структура программы и блок>схема алгоритма .............432
7.2.6. Программный код ...................................................................433
7.2.7. Испытания устройства ...........................................................437
7.2.8. Заключительные испытания системы управления............438
7.3. Цифровой вольтметр..........................................................................438
7.3.1. Описание проекта .................................................................438
7.3.2. Системы 68HC12 используемые в проекте ........................438
7.3.3. Основы теории: повторный расчет интерфейса АЦП ....438
7.3.4. Структура программы и блок>схема алгоритма .............439
7.3.5. Программный код ...................................................................440
7.3.6. Использование вольтметров для измерения
неэлектрических величин .....................................................444
7.4. Стабилизация скорости вращения двигателя с использованием
оптического тахомера ......................................................................445
7.4.1. Описание проекта .................................................................445
7.4.2. Немного теории.......................................................................448
7.4.3. Анализ.......................................................................................457
7.4.4. Структура программы и блок>схема алгоритма .............458
7.4.5. Код .............................................................................................459
7.4.6. Испытания ................................................................................463
7.5. Парящий робот...................................................................................463
7.5.1. Описание проекта .................................................................463
7.5.2. Системы HCS12 используемые в проекте ..........................464
7.5.3. Теоретическое обсуждение.................................................464
7.5.4. Структура программы и блок>схема алгоритма .............465
7.5.5. Программный код ...................................................................466
7.5.6. Некоторые комментарии.......................................................472
7.6. Система защиты компьютера, основанная на нечеткой логике ...472
7.6.1. Описание проекта .................................................................472
7.6.2. Использование системы HCS12 ..........................................473
7.6.3. Основы теории ........................................................................473
7.6.4. Структура программы и блок>схема алгоритма .............473
7.6.5. Описание системы.................................................................474
7.6.6. Обсуждение проекта ............................................................480
7.6.7. Программный код ..................................................................481
7.6.8. Некоторые комментарии.......................................................490
7.7. Электронная версия игры в «15 »....................................................490
7.7.1. Описания проекта..................................................................490
7.7.2. Системы HCS12 используемые в проекте ..........................492
7.7.3. Основы теории ........................................................................492
7.7.4. Схемное решение, структура программы и блок схема
алгоритма ................................................................................492
7.7.5. О компонентах системы ........................................................492
7.7.6. Программный код ...................................................................493
7.7.7. Некоторые комментарии.......................................................512
7.8. Приложение: программирования флеш>памяти B32 EVB ...........512
7.9. Заключение по главе 7 ......................................................................513
7.10.Что еще прочитать ?...........................................................................514
7.11.Вопросы и задания ............................................................................515
Глава 8. ОПЕРАЦИОННЫЕ СИСТЕМЫ РЕАЛЬНОГО
ВРЕМЕНИ
8.1. Образное сравнение: «живая» операционная система
в режиме реального времени .........................................................518
8.2. Что является целью ОСРВ? ...............................................................519
8.3. Обзор комцепций ..............................................................................522
8.3.1. Требования к динамическому распределению RAM .....522
8.3.2. Динамическое распределение памяти ............................525
8.3.3. Структуры данных ...................................................................526
8.4. Основные понятия..............................................................................545
8.4.1. Что такое задача? ..................................................................545
8.4.2. Управление задачами ...........................................................547
8.4.3. Компоненты многозадачных систем ...................................558
8.5. Типы операционных систем реального времени.........................560
8.5.1. Системы с циклическим опросом.......................................560
8.5.2. Циклический опрос с прерываниями.................................561
8.5.3. Круговые системы...................................................................562
8.5.4. Смешанные системы .............................................................562
8.5.5. Системы с управлением по прерыванию .........................563
8.5.6. Кооперативная многозадачность .......................................564
8.5.7. Многозадачные систем
с преимущественным приоритетом....................................564
8.6. Проблемы ОСРВ................................................................................ 565
8.6.1. Конкуренция ............................................................................565
8.6.2. Повторная входимость ...........................................................567
8.6.3. Межзадачные связи ...............................................................567
8.6.4. Безопасность, проверка и безотказная работа ..............568
8.6.5. Главный вопрос........................................................................568
8.7. Выполнение операционной системы
в режиме реального времени .........................................................569
8.8. Базовое примечание: контроллер стереоусилителя
и система циклического опроса....................................................569
8.8.1. Краткий обзор проекта ........................................................569
8.8.2. Пример кода............................................................................570
8.8.3. Испытание контроллера усилителя ....................................583
8.9. Другая прикладная программа: цикл опроса с прерываниями....584
8.10.Сложное прикладное устройство: имитатор ОСРВ....................585
8.10.1.Краткий обзор проекта .........................................................585
8.10.2.Типовой код ..............................................................................587
8.11.Заключение по главе 8 ......................................................................591
8.12. Что еще почитать?..............................................................................591
8.13.Вопросы и задания ............................................................................592
Глава 9. РАСПРЕДЕЛЕННЫЕ СЕТИ С ИНТЕРФЕЙСОМ
MSCAN
9.1. Компьютерные сети...........................................................................596
9.2. Промышленные сети .........................................................................597
9.3. Сети с протоколом CAN ...................................................................598
9.3.1. Протокол CAN..........................................................................598
9.3.2. Модуль контроллера последовательного
обмена msCAN12....................................................................602
9.3.3. Проблемы синхронизации....................................................620
9.3.4. Конфигурирование модуля msCAN12 для работы в сети ....623
9.4. Различия между контроллерами msCAN
в составе 68HC12 и HCS12 ................................................................626
9.5. Пример программирования контроллера msCAN .....................627
9.6. Контроллер последовательного обмена BDLC............................633
9.7. Заключение по главе 9 ......................................................................633
9.8. Что еще почитать?..............................................................................634
9.9. Вопросы и задания ............................................................................634