В книге последовательно рассматриваются все этапы создания встраиваемых систем на микроконтроллерах с применением современных технологий проектирования. Задумав эту книгу, авторы поставили перед собой задачу научить читателя искусству создания реальных устройств управления на однокристальных микроконтроллерах.
Издание содержит материал, охватывающий все вопросы проектирования, включает множество заданий для самостоятельной работы, примеры программирования, примеры аппаратных решений и эксперименты по исследованию работы различных подсистем микроконтроллеров.
Данная книга является прекрасным учебным пособием для студентов старших курсов технических университетов, которые предполагают связать свою профессиональную деятельность с проектированием и внедрением встраиваемых микропроцессорных систем. Книга также будет полезна разработчикам радиоэлектронной аппаратуры на микроконтроллерах.
Содержание:
ПРЕДИСЛОВИЕ 1
Глава 1 - ПЕРВОЕ ЗНАКОМСТВО СО ВСТРАИВАЕМЫМИ СИСТЕМАМИ 2
Глава 2 - ПРОГРАММИРОВАНИЕ ВСТРАИВАЕМЫХ СИСТЕМ И СТРУКТУРНОЕ ПРОЕКТИРОВАНИЕ 8
Глава 3 - ОСНОВЫ ПРОГРАММИРОВАНИЯ МИКРОКОНТРОЛЛЕРОВ НА СИ 14
Глава 4 - МИКРОКОНТРОЛЛЕРЫ 68HC12 И HCS12: АРХИТЕКТУРА И ПРОГРАММИРОВАНИЕ 32
Глава 5 - ОСНОВЫ СОПРЯЖЕНИЯ МК С УСТРОЙСТВАМИ ВВОДА/ВЫВОДА 84
Глава 6 - ДОБРО ПОЖАЛОВАТЬ В РЕАЛЬНЫЙ МИР! 100
Глава 7 - ПРИМЕРЫ ВСТРОЕННЫХ СИСТЕМ УПРАВЛЕНИЯ 107
Глава 8 - ОПЕРАЦИОННЫЕ СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ 133
Глава 9 - РАСПРЕДЕЛЕННЫЕ СЕТИ С ИНТЕРФЕЙСОМ msCAN 155
Примечания 164
ВСТРАИВАЕМЫЕ СИСТЕМЫ
Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
С. Ф. Баррет
University of Wyoming
Д. Дж. Пак
United States Air Force Academy
ПРЕДИСЛОВИЕ
В начале 2002 года наша первая книга "Микроконтроллеры семейства 68НС12: Теория и применение" была издано издательством Prentice Hall. Нашими целями были: представить основы программирования на ассемблере; проиллюстрировать работу отдельных блоков в составе микроконтроллера и представить методы сопряжения различных внешних устройств с микроконтроллерами. В качестве примера мы использовали автономный мобильный робот для иллюстрации совместной работы микроконтроллера во встраиваемой системе.
Наша вторая книга, посвященная встраиваемым микропроцессорным системам "Разработка и применение встраиваемых систем на основе микроконтроллеров семейства 68HC12 и HCS12", охватывает проблемы не раскрытые в первой книге. Нашей целью в ней было разработать учебное пособие по проектированию встраиваемых систем. Мы постарались провести читателя от основ системного программирования через применения операционных систем реального времени к решению задач распределенного управления. Вместо того, чтобы "нырнуть на глубину в бассейн" мы начали с обучения концепциям системного проектирования и программирования на языке С. Затем мы двинулись к обсуждению специфического аппаратного обеспечения, реализованного на кристаллах микроконтроллеров семейств 68HC12/HCS12. В начале этих глав мы придерживались идеологии "ходьбы перед бегом". Мы предполагали, что читатель имеет фундаментальные, но базовые знания по организации программно–аппаратного обеспечения микроконтроллеров. Мы считаем это правильным подходом, поскольку целевой аудиторией для книги являются студенты учебных заведений вовлеченные во второй цикл обучения разработки встраиваемых систем. Темы обучения в начальных главах книги могут быть пропущены инженерами с опытом. Однако мы получили много пожеланий от таких инженеров на включении этого материала в книгу.
Имея такой задел, мы затем перешли к рассмотрению большого количества примеров встраиваемых систем. Примеры были выбраны таким образом, чтобы читатель познакомился с разнообразными примерами сопряжения различных устройств ввода–вывода с системой. В завершении книги рассматриваются такие разделы, как операционные системы реального времени (RTOS) и мультипроцессорные системы. Мы коснулись этих сложных тем только после того как рассмотрели основы микропроцессорных и встраиваемых систем.
Мы имели несколько целей при написании этой книги.
1. Мы хотели, чтобы читатель приобрел навыки программирования как на языке ассемблера, так и на языке С при разработке встраиваемых систем управления на основе микроконтроллеров.;
2. Изложить методические аспекты проектирования встраиваемых систем;
3. Представить функциональное аппаратное обеспечение микроконтроллеров;
4. Раскрыть методы сопряжения с микроконтроллерами различных периферийных устройств при создании встраиваемых систем;
5. Рассмотреть технологии по решению узких мест при разработке встраиваемых систем, связанные с применением применением операционных систем реального времени, а также многопроцессорных систем.
Все содержание книги построено с учетом этих целей. Наша мотивация по написанию этой книги исходила из того, что на моменте ее подготовки не существовало всестороннего учебника для студентов по семействам 68HC12/HCS12, рассматривающего процесс разработки и программирования встраиваемых систем на микроконтроллерах.
Мы предприняли попытку практической ориентации книги с сильным упором на обучение и многочисленными практическими примерами. Основанные на реальных применениях, эти примеры сфокусированы на приобретение навыков по разработке встраиваемых систем, методов синхронизации и подавлению шумов, а также способов отыскания неисправностей. Книга представляет обзор языка программирования Си, методов структурного программирования, микроконтроллеров семейств 68HC12/HCS12, детальное обсуждение проблем RTOS, многопроцессорных систем и иллюстрацию концепций разработки встраиваемых систем.
Вначале книги мы представляем читателю концепции структурной разработки систем. Используя подход функционального разбиения системы сверху вниз, студенты будут в состоянии понять любые проблемы связанные со сложностью структуры встраиваемых систем. Мы коснулись некоторых принципов системного подхода к разработке, описанного Meilir Page–Jones в его классической книге "Practical Guide to Structured Systems Design". Эти методы работают в равной степени хорошо при разработке программного, аппаратного и программно–аппаратного обеспечения встраиваемых систем. Однажды их представив, мы их активно используем в дальнейшем во всей книге.
Структура книги
В каждой главе мы подробно представляем последовательность и значение описываемых разделов. Каждая глава начинается с описания целей поставленных нами при изложении материала. Это позволяет читателю ясно представлять задачу при чтении главы. После представления основных концепций главы, на конкретном примере рассматриваются применение ключевых понятий и технологий.
В первой главе мы представили понятие встраиваемых систем и специфические проблемы связанные с их разработкой и применением. Глава 2 описывает преимущества программирования на языках высокого уровня - High Level Language (HLL). Мы сбалансировали обсуждение методов программирования на языке ассемблер и HLL и показали, что программы для встраиваемых систем могут содержать оба подхода. Мы обсудили ключевые концепции структурного программирования, позволяющие разбить большие проекты на более понятные и легко реализуемые части. Затем мы применили эти понятия на этапах разработки, реализации и тестирования систем. Мы дали почувствовать читателю некую комфортность использования такого подхода на примерах простых систем прежде чем переходить к более сложным случаям.
В главе 3 мы рассматриваем процесс программной/компиляции/ассемблирования анализируя принципы программирования на языке С. В завершении главы рассматриваются методы и средства программирования и отладки программ. При рассмотрении проблем программирования мы намерено ушли от любых специфических особенностей компиляторов. На сегодняшний день существуют очень много доступных компиляторов для семейств 68НС12/HSC12. В четвертой главе мы описываем структуру семейств 68НС12/HSC12 и их отдельных представителей. В дальнейшем мы иллюстрируем их применение в реальных системах управления.
В главе 5 мы изучаем методы сопряжения внешних устройств с микроконтроллерами. Анализ начинается с простых примеров подключения переключателей и индикаторов и заканчивается такими более сложными устройствами как жидко–кристаллические дисплеи. Шестая глава развивает методы сопряжения микроконтроллеров с устройствами реального мира. В ней разделяются теоретические проблемы построения встраиваемых систем от проблем реально работающих систем. Каждая проблема вначале определяется, а затем подкрепляется методами ее практической реализации.