Микроконтроллеры семейства ХС166. Вводный курс разработчика
Вводный курс разработка
Покупка
Издательство:
ДМК Пресс
Перевод:
Турецкий Станислав Вильямович
Год издания: 2023
Кол-во страниц: 201
Дополнительно
Вид издания:
Справочная литература
Уровень образования:
Профессиональное образование
ISBN: 978-5-89818-445-2
Артикул: 643437.02.99
Доступ онлайн
В корзину
Микроконтроллеры семейства XC16x фирмы Infineon — это современные многофункциональные быстродействующие приборы, использующие процессорное ядро на основе RISС-архитектуры. Данная книга представляет собой справочное руководство по их применению, призванная дополнить официальное руководство пользователя XC16x сведениями, имеющими практическую ценность при проектировании аппаратуры с применением этих микроконтроллеров. В книге подробно рассматриваются особенности архитектуры и функционирования как микроконтроллера в целом, так и его отдельных узлов и периферийных модулей, приведены практические рекомендации по использованию управляющих линий и портов ввода/вывода в пользовательских приложениях. Предназначена для разработчиков радиоэлектронной аппаратуры, инженеров, студентов технических вузов, специалистов в области микроконтроллерной техники.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 11.03.01: Радиотехника
- 11.03.04: Электроника и наноэлектроника
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов.
Для полноценной работы с документом, пожалуйста, перейдите в
ридер.
МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА ХС166 ВВОДНЫЙ КУРС РАЗРАБОТЧИКА
Майкл Бич Дэвид Гринхилл Серия «МИРОВАЯ ЭЛЕКТРОНИКА» МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА ХС166 Вводный курс разработчика Перевод с английского 2-е издание, электронное Москва ДМК Пресс, Додэка-XXI 2023
УДК 004.31 ББК 32.973-04 Б67 Б67 Бич, Майкл. Микроконтроллеры семейства ХС166. Вводный курс разработчика / М. Бич, Д. Грин- хилл ; пер. с англ. С. В. Турецкого. — 2-е изд., эл. — 1 файл pdf : 201 с. — Москва : ДМК Пресс, Додэка-XXI, 2023. — (Мировая электроника). — Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный. ISBN 978-5-89818-445-2 Микроконтроллеры семейства XC16x фирмы Infineon — это современные многофункциональные быстродействующие приборы, использующие процессорное ядро на основе RISС-архитектуры. Данная книга представляет собой справочное руководство по их применению, призванная дополнить официальное руководство пользователя XC16x сведениями, имеющими практическую ценность при проектировании аппаратуры с применением этих микроконтроллеров. В книге подробно рассматриваются особенности архитектуры и функционирования как микроконтроллера в целом, так и его отдельных узлов и периферийных модулей, приведены практические рекомендации по использованию управляющих линий и портов ввода/вывода в пользовательских приложениях. Предназначена для разработчиков радиоэлектронной аппаратуры, инженеров, студентов технических вузов, специалистов в области микроконтроллерной техники. УДК 004.31 ББК 32.973-04 Электронное издание на основе печатного издания: Микроконтроллеры семейства ХС166. Вводный курс разработчика / М. Бич, Д. Гринхилл ; пер. с англ. С. В. Турецкого. — Москва : ДМК Пресс, Додэка-XXI, 2016. — 200 с. — (Мировая электроника). — ISBN 978-5-97060-357-4. — Текст : непосредственный. Все права защищены. Никакая часть этого издания не может быть воспроизведена в любой форме или любыми средствами, электронными или механическими, включая фотографирова. ние, ксерокопирование или иные средства копирования или сохранения информации, без письменного разрешения издательства. В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации. ISBN 978-5-89818-445-2 © Infineon Technologies © Макет, Издательский дом «Додэка-XXI» © Издание, ДМК Пресс, 2016
Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Глава 1. RISCархитектура для встроенных приложений. . . . . . . . . . . . . . . . . . . . . 13 1.1. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.2. RISCподобное ядро C166S V2: предпосылки создания . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.3. Использование RISCархитектуры во встроенных системах управления . . . . . . . . . . 16 1.3.1. Шинный интерфейс . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.3.2. Реакция на прерывание RISCпроцессора. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.3.3. Регистры и многозадачность. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.3.4. Использование сокращенного набора команд RISCпроцессора . . . . . . . . . . . 22 1.4. Связь RISCпроцессора с внешними устройствами . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.5. Преимущества использования RISCпроцессоров во встроенных приложениях . . . 24 1.6. Сравнение новых и традиционных RISCпроцессоров. . . . . . . . . . . . . . . . . . . . . . . . . . 25 Глава 2. Начинаем работу с микроконтроллерами XC166. . . . . . . . . . . . . . . . . . . . . 28 2.1. Ключевые вопросы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.1.1. Обзор семейства микроконтроллеров . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.1.2. Основные принципы проектирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.1.3. Установка опций аппаратной конфигурации микроконтроллера . . . . . . . . . . . 29 2.2. Расчёт номиналов конфигурирующих резисторов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.3. Стартовая конфигурация микроконтроллера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.3.1. Конфигурация для внутреннего старта. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.3.2. Конфигурация для внешнего запуска . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.4. Управление сбросом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.5. Тактовые сигналы и их источники . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.5.1. Запуск системы ФАПЧ (PLL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.5.2. Запуск от внешней шины . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Содержание
Содержание 6 2.5.3. Внутренний старт от встроенного ПЗУ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 2.5.4. Выбор тактовой частоты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.5.5. Выбор значений регистра PLLCON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 2.6. Генерация тактовых импульсов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.6.1. Типы источников тактовых импульсов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.6.2. Расчёт схемы кварцевого генератора. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.6.3. Процедура тестирования компонентов кварцевого генератора . . . . . . . . . . . . . 47 2.6.4. Разводка цепей тактового генератора на печатной плате . . . . . . . . . . . . . . . . . . 49 2.6.5. Признаки неверного расчёта схемы тактового генератора . . . . . . . . . . . . . . . . . 50 2.6.6. Тактовый генератор часов реального времени . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 2.6.7. Дополнительная информация по проектированию тактового генератора. . . . 51 Глава 3. Режимы работы и синхронизация шины. . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.1. Гибкий шинный интерфейс. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.1.1 Использование линий выбора микросхем (СS). . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.1.2. Перекрытие сигналов выбора (CS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.2. Настройка режима работы шины . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.2.1. Внутрисхемная загрузка. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.2.2. Внешняя загрузка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.3. Оптимизация системы адресации. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.3.1. Время доступа к внешней памяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.3.2. Расчёт временных соотношений для мультиплексированной шины . . . . . . . . 56 3.3.3. Расчёт временных соотношений для немультиплексированной шины . . . . . . 58 3.3.4. Программные средства для расчёта временных параметров синхронизации шины. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Глава 4. Сопряжение с внешними устройствами памяти . . . . . . . . . . . . . . . . . . . . . . 62 4.1. Использование 16битных микросхем памяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 4.2. Использование 8битных микросхем памяти в 16битных системах на базе XC166 . 65 4.3. Использование сигнала /BHE при работе с 8битной памятью . . . . . . . . . . . . . . . . . . 67 4.4. Сопряжение микросхем DRAM с микроконтроллерами семейства XC166. . . . . . . . . 68 4.5. Использование карт флэшпамяти совместно с XC166 . . . . . . . . . . . . . . . . . . . . . . . . . 70 4.5.1. Недорогая гигабайтная память. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 4.5.2. Использование карт Compact Flash для обновления программ микроконтроллеров XC166 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 4.5.3. Интерфейс для подключения карт SD/Multimedia Card . . . . . . . . . . . . . . . . . . . 71 4.5.4. Интерфейс для подключения карт Compact Flash . . . . . . . . . . . . . . . . . . . . . . . . 72 4.5.5. Управление флэшкартами с большим объёмом памяти. . . . . . . . . . . . . . . . . . . 73 4.5.6. Программный интерфейс приложения (API) файловой системы для встроенных программ на языке C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 4.5.7. Ресурсы, необходимые для реализации файловой системы для микроконтроллера XC166 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Глава 5. Встроенная программируемая флэшпамять . . . . . . . . . . . . . . . . . . . . . . . . 77
Содержание 7 5.1. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 5.2. Организация внутренней флэшпамяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 5.3. Обеспечение надёжности флэшпамяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 5.3.1. Динамическая коррекция ошибок. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 5.3.2. Долговечность флэшпамяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 5.3.3. Обеспечение работоспособности флэшпамяти в особых условиях . . . . . . . . . 81 5.3.4. Прогнозирование будущих отказов флэшпамяти . . . . . . . . . . . . . . . . . . . . . . . . 83 5.4. Программаторы флэшпамяти. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.4.1. Программирование флэшпамяти микроконтроллера XC166 при массовом производстве . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.4.2. Краткие сведения о программах начальной загрузки. . . . . . . . . . . . . . . . . . . . . . 86 5.4.3. Тестирование программаторов флэшпамяти на соответствие IEC61508 и другим стандартам . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 5.5. Отладка режима начальной загрузки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 5.5.1. Проблемы, возникающие при отладке режима начальной загрузки в случае использования модуля JTAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 5.5.2. Отладка режима начальной загрузки с использованием внутрисхемного эмулятора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 5.6. Аппаратные аспекты программирования внутрисхемной флэшпамяти. . . . . . . . . . . 90 5.7. Программирование флэшпамяти через интерфейс CAN . . . . . . . . . . . . . . . . . . . . . . . 93 5.8. Программирование флэшпамяти через интерфейс SPI. . . . . . . . . . . . . . . . . . . . . . . . . 94 5.9. Программирование флэшпамяти insitu («на месте») . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Глава 6. Схема распределения памяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 6.1. Регистрыуказатели страниц данных (Data Page Pointer — DPP) . . . . . . . . . . . . . . . . . 96 6.1.1. Быстрый доступ к данным с использованием DPP. . . . . . . . . . . . . . . . . . . . . . . . 96 6.1.2. Доступ к большим объёмам данных. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 6.1.3. Влияние способа адресации данных на компиляторы C/C++ . . . . . . . . . . . . . . 98 6.2. Выбор схемы распределения памяти и конфигурирации внешней шины. . . . . . . . . . 99 6.2.1. Использование регистровуказателей страницы данных (DPP). . . . . . . . . . . . . 99 6.2.2. Использование памяти PSRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 6.2.3. Влияние внешней шины на производительность . . . . . . . . . . . . . . . . . . . . . . . . 100 6.2.4. Внутренняя флэшпамять . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 6.2.5. Внешнее ПЗУ (ROM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 6.3. Увеличение количества линий ввода/вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Глава 7. Оптимизация потребляемой мощности . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 7.1. Уменьшение потребляемой мощности путём оптимизации тактовой частоты . . . . 105 7.2. Сравнение токов потребления разных микроконтроллеров. . . . . . . . . . . . . . . . . . . . . 106 7.3. Напряжение питания. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Глава 8. Системное программирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 8.1. Передача данных через последовательные порты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 8.1.1. Синхронные последовательные порты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Содержание 8 8.1.2. Модуль I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 8.2. Подключение USBустройств к микроконтроллерам семейства XC166 . . . . . . . . . . 109 8.2.1. Подключение микроконтроллера XC166 к шине USB с помощью микросхемы FT245B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 8.2.2. Программное обеспечение для реализации USBинтерфейса . . . . . . . . . . . . . 112 8.2.3. Начало работы с USBинтерфейсом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 8.3. Обслуживание запросов на прерывание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 8.3.1. Задержки при обработке прерываний. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 8.3.2. Программные прерывания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 8.3.3. Аппаратные прерывания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 8.3.4. Структура прерываний. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 8.3.5. Замечания по использованию системы прерываний . . . . . . . . . . . . . . . . . . . . . 116 8.4. Пересылка данных с использованием периферийного контроллера событий (PEC). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 8.5. Организация стеков в микроконтроллерах семейства XC166 . . . . . . . . . . . . . . . . . . . 119 8.6. DSPсопроцессор для микроконтроллеров семейства XC166 . . . . . . . . . . . . . . . . . . . 120 8.6.1. Реализация функций DSP в микроконтроллерах . . . . . . . . . . . . . . . . . . . . . . . . 120 8.6.2. Работа компилятора с модулем MAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 8.6.3. DSPбиблиотеки фирмы Infineon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 8.7.1. Синхровременной режим CAN, запускаемый с помощью модуля TwinCAN123 8.7.2. Режим замкнутой передачи CAN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 Глава 9. Назначение выводов и портов в пользовательском приложении. . . . . . . . 125 9.1. Общие замечания о параллельных портах ввода/вывода . . . . . . . . . . . . . . . . . . . . . . . 125 9.2. Назначение линий портов микроконтроллера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 9.2.1. Порт 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 9.2.2. Порт 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 9.2.3. Порт 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 9.2.4. Модули CAPCOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 9.2.5. Порт 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 9.2.6. Порт 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 9.2.7. Порт 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 9.2.8. Порт 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 9.2.9. Порт 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 9.2.10.Порт 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 9.2.11.Порт 20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 9.3. Прерывания по линиям порта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 Глава 10. АЦП микроконтроллера XC166 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 10.1. Расширенные режимы аналогоцифрового преобразования . . . . . . . . . . . . . . . . . . . 150 10.2. Базовая частота преобразования АЦП. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 10.3. Калибровка АЦП . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 10.4. Защита аналоговых входов от повышенного напряжения . . . . . . . . . . . . . . . . . . . . . . 152
Содержание 9 10.5. Согласование входов АЦП с источниками сигналов. . . . . . . . . . . . . . . . . . . . . . . . . . . 153 10.6. Аналоговое опорное напряжение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 10.7. Вопросы разработки печатной платы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 10.7.1.Размещение компонентов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 10.7.2. Источник питания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 10.7.3. Шины заземления . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 10.8. Подключение АЦП к источникам сигналов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 10.8.1. Метод измерения отношения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 10.8.2. Источник опорного напряжения с фиксированной точностью . . . . . . . . . . . 160 10.8.3. Режим с коррекцией преобразования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 10.8.4. Измерение аналоговых напряжений, превышающих уровень 5 В . . . . . . . . . 162 Глава 11. Типовые применения микроконтроллеров семейства XC166 . . . . . . . . . 163 11.1. Применение в автомобильной электронике . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 11.2. Применение в промышленных системах управления . . . . . . . . . . . . . . . . . . . . . . . . . . 165 11.3. Применение в системах телекоммуникации. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 11.4. Применение на транспорте . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 11.5. Применение в потребительской радиоэлектронике . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 11.6. Применение в измерительных приборах . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 11.7. Медицинское и аэрокосмическое оборудование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 Глава 12. Совместимость XC166 с микроконтроллерами другой архитектуры . . . 170 Глава 13. Монтаж микроконтроллеров семейства XC166 на печатной плате . . . . 172 13.1. Типы корпусов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 13.2. Подключение эмуляторов к микроконтроллерам семейства XC166. . . . . . . . . . . . . . 172 13.2.1. Типы разъёмов для корпусов микроконтроллеров. . . . . . . . . . . . . . . . . . . . . . . 172 13.2.2.Отладка устройств на основе микроконтроллера семейства XC. . . . . . . . . . . . 173 13.3. Подключение внутрисхемного эмулятора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 13.3.1.Схема QuadConnect. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 13.3.2.Разъём фирмы Yamaichi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 13.3.3.Припаиваемая сборка. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 13.3.4.Припаиваемые эмулирующие микроконтроллеры. . . . . . . . . . . . . . . . . . . . . . . 178 13.3.5.Адаптеры «PressOn» для эмулятора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 13.4. Разводка печатных плат для микроконтроллеров семейства XC166 . . . . . . . . . . . . . . 180 Глава 14. Включение и настройка новых плат . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 14.1. Оборудование для настройки. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 14.2. Прежде, чем включить питание… . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 14.3. Тестирование платы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 14.3.1. Приложения с внешним запуском . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 14.3.2.Использование режима последовательной загрузки и утилиты MINIMON для тестирования новых плат. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Содержание 10 14.3.3.Использование JTAG для тестирования новых плат . . . . . . . . . . . . . . . . . . . . . 187 14.3.4.Типичные проблемы при работе с внешней шиной. . . . . . . . . . . . . . . . . . . . . . 192 14.3.5.Тестирование устройств с внутренним запуском . . . . . . . . . . . . . . . . . . . . . . . . 192 14.3.6.Тестирование системы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 Заключение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 Дополнительная литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Приложение 1. Система обозначений микроконтроллеров семейства XC166 . . . . 196 Приложение 2. Цоколёвка основных модификаций микроконтроллеров ХС166 . 197
БЛАГОДАРНОСТИ Авторы хотели бы поблагодарить Карла Смита (Karl Smith), Майка Коплэнда (Mike Copeland) и Манфреда Чутку (Manfred Choutka) из фирмы Infineon Technologies, Хоакима Клейна (Joachim Klein) из фирмы Hitex Development Tools GmbH, а также Стива Брауна (Steve Brown) и Венди Уокера (Wendy Walker) и выразить свою благодарность сотням пользователям микроконтроллеров семейства 166 в Великобритании за их вклад в написание этой книги.
Данное руководство содержит основные сведения, необходимые для разработки вашего первого устройства на основе микроконтроллера XC166. Это простые, но основополагающие сведения, знание которых, особенно на начальном этапе разработки, позволит сэкономить немало времени и денег. Цель этой книги – дополнить официальное руководство пользователя XC166 теми фактами, которые пригодятся вам на практике. Коечто из материала книги можно отыскать в спецификациях на семейство XC166, но большая часть информации получена в результате нашей практической работы и найти ее можно только в данной книге. Многие из поднятых в ней тем отнюдь не очевидны или вообще не рассматривались ранее. Если руководство пользователя на микроконтроллер XC166 достаточно полно освещает какойлибо вопрос, то в книге делается ссылка на него и информация не дублируется. Данное издание является далеко не полным и немало дополнительной информации можно найти на вебсайте фирмы Infineon. Достоверность информации, представленной в данной книге, подтверждена специалистами фирмы Hitex. Однако, несмотря на это, фирма Hitex не берет на себя ответственности за возможные неточности. Те или иные субъективные или неподтвержденные сведения, содержащиеся в книге, не всегда отражают официальную точку зрения фирм Hitex Development Tools Ltd. и Infineon Technologies AG. Материал подготовили: Майкл Бич (Michael Beach) Дэвид Гринхилл (David Greenhill) Дополнительный материал предоставили: Карл Смит (Karl Smith), Infineon Technologies UK Хоаким Клейн (Joachim Klein), Hitex Development Tools Предисловие
Популярность RISCмикроконтроллеров непрерывно растёт. В процессорном ядре C166S V2, на базе которого построена серия микроконтроллеров XC166, широко используются принципы архитектуры вычислений с сокращённым набором команд (Reduced Instruction Set Computer — RISC), благодаря чему удалось достичь очень высокой производительности процессора при весьма умеренной его стоимости. Чтобы понять, почему именно RISCтехнологии больше подходят для встроенных приложений, работающих в режиме реального времени, полезно будет вспомнить, как развитие традиционной архитектуры микропроцессоров с полным набором команд (Complex Instruction Set Computer — CISC), пик популярности которой пришелся на период с конца 1980х по середину 1990х годов, привело к появлению RISCархитектуры. Тем не менее, необходимо учитывать, что несмотря на множество достоинств, присущих RISCтехнологии, не все RISCмикроконтроллеры, по определённым причинам, полностью их используют. В данной главе мы рассмотрим несколько таких «критических» случаев. 1.2. RISCподобное ядро C166S V2: предпосылки создания Причиной снижения интереса к микропроцессорам, использующим архитектуру с полным набором команд (CISC), стала необходимость существенно увеличить производительность микропроцессорных систем. В первую очередь, речь идёт о требованиях, предъявляемых графическими рабочими станциями и современными компьютерными видеоиграми. Традиционно, стандартные наборы ассемблерных команд (инструкций) микропроцессоров разрабатывались таким образом, чтобы максимально упростить работу программиста. Это достигалось путём широкого использования микрокодов, позволяющих создавать всё более мощные инструкции, такие, например, как команда перемножения трёх операнГл ав а 1 ____________________________________________________ RISCархитектура для встроенных приложений 1.1. Введение
Глава 1. RISCархитектура для встроенных приложений 14 дов. Благодаря этому, программист, пишущий на ассемблере (или разработчик компилятора языка высокого уровня), может добиваться тех же результатов, что и с применением простых команд, но с меньшей затратой сил. Чем большее количество различных инструкций необходимо распознавать и обрабатывать (декодировать) центральному процессору, тем сложнее электронные схемы, размещённые на его кристалле, и тем большее количество циклов тактовой частоты занимает процесс обработки команд. Увеличение площади полупроводникового кристалла повышает стоимость устройства и потребляемую им мощность. Поскольку максимальная тактовая частота работы электронных схем микропроцессора физически ограничена возможностями полупроводниковых технологий, очевидно, что максимальная производительность напрямую зависит от количества машинных циклов, требуемых для выполнения команд процессора. RISCтехнология переносит основную нагрузку на программистов, пишущих на ассемблере и разработчиков компиляторов языка высокого уровня, а не на программирование в микрокодах. Исследования, проведённые учёными и производителями полупроводниковой техники, показали, что при одной и той же тактовой частоте корректно запрограммированный RISCпроцессор обеспечивает гораздо более высокую производительность, чем процессор, использующий технологию CISC. Как ни странно, разработчики встроенных приложений средней производительности не спешат отказываться от CISCмикроконтроллеров. Если в сфере высокопроизводительных устройств RISCпроцессоры, такие как ARM9, MIPS и Hyperstone, создают жёсткую конкуренцию традиционным CISCпроцессорам PowerPC и Pentium, то для более распространённых задач встроенных приложений RISCустройства используются относительно редко. Между тем, возрастающая сложность современных алгоритмов управления встроенными устройствами приводит к тому, что выполнение практически любых задач, кроме самых элементарных, требует использования больших вычислительных мощностей. Кроме того, в таких областях, в отличие от использования микропроцессоров в рабочих станциях, весьма критична величина максимального времени реакции на недетерминированные события — параметр, с которым у CISCпроцессоров дело обстоит особенно плохо. Впрочем, большинство RISCпроцессоров ARM также не обладают выдающимися характеристиками по времени реакции. Многие современные 16битные микроконтроллеры средней производительности построены на базе существующих CISCархитектур (S12, H8, M16C и т. п.), которые, как и 8битные устройства (например, 8051), разработаны более 20 лет назад. Производители микросхем обеспечивают потребителям возможность модернизации существующих систем, поэтому микропроцессоры новых серий часто разрабатываются на базе уже существующих. Использование тех же или близких архитектуры и набора команд избавляет потребителя от необходимости тратить деньги на переписывание уже существующих ассемблерных программ. Микроконтроллеры, как и рабочие станции, могут быть запрограммированы на языках высокого уровня, что позволяет сократить время написания программ и улучшить удобство обслуживания системы. К сожалению, использование даже
1.2. RISCподобное ядро C166S V2: предпосылки создания 15 самых лучших компиляторов приводит к потерям быстродействия1), что ещё раз подчеркивает необходимость увеличения производительности процессоров. Помимо прямой обработки данных, микроконтроллеры также должны получать информацию от периферийных устройств, таких как АЦП, ШИМ, таймеров, портов, ФАПЧ и т. п. Все это требует обработки информации в режиме реального времени и быстрой реакции на прерывания. Ниже приведены основные недостатки, свойственные CISCмикроконтроллерам: 1. Длительное и непредсказуемое время ожидания прерывания Во время выполнения сложных «снижающих трудозатраты программиста» ассемблерных команд все вычислительные ресурсы процессора оказываются задействованы, что не позволяет обслуживать поступающие извне прерывания. Это приводит к тому, что длительность ожидания обработки прерывания оказывается непредсказуемо велика, что может создать серьезные проблемы в быстродействующих системах реального времени. Одним из методов уменьшения времени реакции CISCмикроконтроллеров является интеграция в ядро «блока временной обработки» или использование внешнего процессора для разгрузки критичных по времени операций. Однако, это повышает сложность проектов и требует использования очень компактных микрокодов, в дополнение к куда более распространённому языку С и ассемблеру для программирования самого CISCядра. 2. Медленное декодирование вследствие слишком большого набора команд Загруженные команды нужно распознать среди нескольких сотен или даже тысяч возможных, поэтому процесс декодирования замедляется и усложняется. 3. Замедление работы устройств памяти, вызываемое частым доступом к ним Данные обычно берутся процессором из внешней памяти, и помещаются в регистры типа аккумулятора. С ними производятся математические или логические операции, затем результат снова записывается в память. Часто при выполнении процедуры то или иное значение может потребоваться несколько раз, что требует дополнительных обращений к памяти для записи или чтения. 4. Медленный вызов процедур Если при вызове подпрограммы используются параметры (что чаще всего и происходит при качественном программировании на языке высокого уровня), то они по отдельности помещаются в стек. Затем эти параметры обрабатываются в регистре (регистрах) аккумулятора, и лишь после этого через стек возвращаются вызывающей подпрограмме. 5. Выполнение за один раз только одной операции Каждое периферийное устройство или источник прерывания должны иметь специализированную обслуживающую подпрограмму, которая, как минимум, потребует помещения в стек и извлечения из него слова состояния программы и счётчика команд, а также передачи данных от периферийного устройства или к периферийному устройству. 1) По сравнению с программированием на языке ассемблера. (прим. ред.)
Глава 1. RISCархитектура для встроенных приложений 16 6. Пользовательская программа должна быть структурирована таким образом, чтобы соответствовать аппаратным возможностям микроконтроллера Программирование встроенных приложений часто представляет собой множество отдельных задач, выполняемых в режиме реального времени и связанных в единую систему. В типовых CISCпроцессорах переключение между задачами происходит довольно медленно. Часто при поступлении новой задачи оказывается, что многие регистры заняты и данные из них предварительно нужно поместить в стек. Эта проблема усугубляется при использовании компиляторов высокого уровня, характерным свойством которых является наличие в библиотечных функциях большого количества подлежащих сохранению локальных переменных. 7. Избыточные инструкции и режимы адресации Почти повсеместное использование языков высокого уровня заставляет производителей микроконтроллеров обеспечивать совместимость с различными компиляторами путём введения в набор команд процессора соответствующих дополнительных инструкций. На практике, компиляторы чаще всего используют лишь несколько режимов адресации, а большое количество других инструкций остаются незадействованными, что усложняет процесс декодирования команд. 8. Несогласованные наборы команд процессора Наборы команд становится всё труднее использовать изза большого количества доступных типов данных и разнообразия поддерживаемых режимов адресации. 9. Неполная загруженность шины Во время выполнения сложных команд внутренняя шина микроконтроллера простаивает. 1.3. Использование RISCархитектуры во встроенных системах управления Чтобы продемонстрировать, как использование RISCархитектуры позволяет увеличить производительность микроконтроллеров, в качестве примера, мы взяли процессорное ядро C166S V2. Основные определения: 1 такт = 1/частота генератора — базовая единица времени, используемая при рассмотрении процессорных систем. 1 машинный цикл = такт — минимальное время, необходимое процессору для выполнения наиболее простой операции. Поскольку машинный цикл позволяет абстрагироваться от тактовой частоты, это понятие можно использовать для сравнения RISCи CISCпроцессоров. Все отсчёты машинных циклов как для S12X, так и для С166 М2 приводятся в однокристальном режиме работы.
Доступ онлайн
В корзину