Данная книга представляет собой исчерпывающее руководство по микроконтроллерам семейства PIC компании Microchip, являющегося промышленным стандартом в области встраиваемых цифровых устройств. В книге подробно описывается архитектура и система команд 8-битных микроконтроллеров PIC, на конкретных примерах изучается работа их периферийных модулей.
В первой части излагаются основы цифровой схемотехники, математической логики и архитектуры вычислительных систем. Вторая часть посвящена различным аспектам программирования PIC-микроконтроллеров среднего уровня: описывается набор команд, рассматривается написание программ на ассемблере и языке высокого уровня (Си), а также поддержка подпрограмм и прерываний. В третьей части изучаются аппаратные аспекты взаимодействия микроконтроллера с окружающим миром и обработки прерываний. Рассматриваются такие вопросы, как параллельный и последовательный ввод/вывод данных, временные соотношения, обработка аналоговых сигналов и использование EEPROM. В заключение приводится пример разработки реального устройства. На этом примере также демонстрируются простейшие методики отладки и тестирования, применяемые при разработке реальных устройств.
Книга рассчитана на самый широкий круг читателей — от любителей до инженеров, при этом для понимания содержащегося в ней материала вовсе не требуется каких-то специальных знаний в области программирования, электроники или цифровой схемотехники. Эта книга будет также полезна студентам, обучающимся по специальностям «Радиоэлектроника» и «Вычислительная техника», которые смогут использовать ее в качестве учебного пособия при прослушивании соответствующих курсов или выполнении курсовых проектов.
Предисловие ко второму изданию
Поводом к выпуску второго издания данной книги стало большое количество предложений и замечаний от моих студентов и читателей из разных уголков земного шара — от Шотландии до Гавайских островов. Со времени выхода первого издания книги в конце 1990-х микроконтроллеры PIC компании Microchip стали самыми продаваемыми 8-битными микроконтроллерами. Возможности моделей среднего уровня, рассматривавшихся в первом издании, значительно возросли, так что некоторые из использовавшихся ранее моделей безнадежно устарели. Кроме того, значительно увеличилось количество моделей с 16-битным словом команд. В то же время появились новые представители линейки микроконтроллеров младшего (или базового) уровня. Поскольку все выпускаемые линейки микроконтроллеров имеют очень много общего, в новом издании основное внимание будет по-прежнему уделяться микроконтроллерам среднего уровня.
Предисловие к первому изданию
Микропроцессоры и производные от них — микроконтроллеры — являются широко распространенным и при этом незаметным элементом инфраструктуры современного общества, основанного на электронике и коммуникациях. Исследования
[3]
, проведенные в 1998 году, показали, что в каждом доме незаметно для нас «живет» около 100 микроконтроллеров и микропроцессоров. Они присутствуют буквально всюду: в звуковых открытках, стиральных машинах, микроволновых печах, телевизорах, телефонах, персональных компьютерах и разных других устройствах. Даже в самом обыкновенном автомобиле скрывается более двадцати таких элементов, где они, в частности, контролируют состояние беспроводных датчиков давления в шинах и отображают критичные данные, получаемые по сети CAN.
Каждый год продается около четырех миллиардов подобных изделий, предназначенных для реализации «мозгов» разнообразных «умных» устройств, начиная от интеллектуальных таймеров для яйцеварок и заканчивая системами управления самолетом. Эволюция микропроцессоров, первые из которых были выпущены компанией Intel в далеком 1971 году, привела к коренному изменению структуры общества, спровоцировав в начале XXI века вторую промышленную революцию. Несмотря на то что микропроцессоры, являясь основным компонентом вездесущих ПК, известны лучше, объем продаж различных микропроцессоров, таких как Intel Pentium, составляет всего около 2 % от общего объема продаж подобных устройств. Подавляющее же большинство продаж приходится на дешевые микроконтроллеры, встраиваемые в специализированные электронные устройства, такие как смарт-карты. Причем если основной задачей микропроцессоров является обеспечение собственно вычислительной мощности, то во втором случае акцент смещается в сторону объединения на одном кристалле центрального процессора, памяти и устройств ввода/вывода. Такая интегрированная вычислительная система называется микроконтроллером.
Задумывая книгу по этой тематике, автор ставил перед собой задачу дать читателю базовые знания в области разработки небольших встроенных систем на базе микроконтроллеров, а не просто рассказать об архитектуре ЭВМ в традиционном понимании этого слова на примере микроконтроллеров. Будем надеяться, что подобный подход даст читателю уверенность в том, что даже на таком начальном уровне он сможет разработать, изготовить и запрограммировать полностью готовую рабочую встроенную систему.
Учитывая практический характер излагаемого материала, для его иллюстрации используется реально существующее аппаратное и программное обеспечение. Основную долю на рынке занимают устройства, оперирующие 8-битными данными (хотя имеются как 4-, так и 16-битные устройства), во многом схожие с первыми микропроцессорами и кардинальным образом отличающиеся от современной «тяжелой артиллерии» в лице микропроцессоров Intel Pentium и Power PC. В отличие от последних, сущностью микроконтроллера является высокая степень системной интеграции при низкой стоимости. Суммарная вычислительная мощность системы может быть увеличена путем распределения процессоров по системе. Так, в каждом сочленении манипулятора робота может использоваться свой микроконтроллер, выполняющий простые локальные операции и обменивающийся данными с более мощным процессором,‘определяющим функционирование всего робота.
При выборе конечной архитектуры принимались во внимание ее популярность на коммерческом рынке, доступность и наличие недорогого ПО для разработки. В итоге выбор был сделан в пользу микроконтроллеров фирмы Microchip— одного из наиболее популярных семейств, использующихся при изучении микроконтроллеров/микропроцессоров на самых разных этапах учебного процесса, начиная со старших классов школы и заканчивая университетом. Освоение микроконтроллеров этой фирмы, в частности, облегчается небольшим набором команд и относительно простой передовой архитектурой. Помимо использования в промышленности и образовательном процессе, микроконтроллеры семейства PIC® применяются в большинстве любительских устройств, в чем можно убедиться, открыв любой журнал, посвященный радиолюбительству.