Выбрать главу

В этой главе мы познакомимся с ядром микроконтроллеров семейства среднего уровня с точки зрения его архитектуры. Прочитав эту главу, вы:

• Познакомитесь с внутренней структурой микроконтроллеров PIC среднего уровня с гарвардской архитектурой.

• Разберетесь в назначении, структуре и распределении памяти программ и памяти данных.

• Поймете идею деления памяти данных на банки и их взаимосвязь с состоянием управляющего бита RP0 регистра STATUS.

• Сможете интерпретировать биты регистра STATUS, которые управляют страницами памяти, а также содержат флаги С, DC и Z.

• Поймете, как можно манипулировать содержимым счетчика команд и какую роль в этом играет регистр специального назначения PCLATH.

• Узнаете зависимость между фазами тактового сигнала и внутренней последовательностью микроопераций.

• Познакомитесь с основными периферийными модулями на примере модели PIC16F84.

С точки зрения программирования все устройства с одним и тем же ядром полностью идентичны. Более того, все ядра, используемые в микроконтроллерах PIC, имеют очень много общего. С аппаратной точки зрения блоки выборки и исполнения незначительно отличаются, в частности, поддерживаемым объемом памяти и построением схем сброса.

Отдельные представители семейства имеют схожий базовый набор портов и модулей периферийных устройств, однако отличаются в части дополнительных возможностей ввода/вывода. Например, в микроконтроллере PIC16F73 имеется 5-канальный 8-битный аналого-цифровой преобразователь, в PIC16F874/7 — уже 8-канальный 10-битный аналого-цифровой преобразователь, а в PIC16F627/628 — аналоговый компаратор и 16-битный таймер/счетчик. Однако, несмотря на эти отличия, существует множество идентичных модулей, использующихся как в моделях среднего уровня, так и в моделях с расширенным ядром. К рассмотрению этих модулей мы вернемся в 3-й части книги.

В данной главе мы в основном будем рассматривать ядро микроконтроллеров семейства среднего уровня. Одним из первых представителей этого семейства (1994) был 18-выводной микроконтроллер PIC16C83/4. Он быстро завоевал популярность, поскольку был первым PIC-микроконтроллером, в котором память программ была реализована в виде электрически стираемого ППЗУ (см. Рис. 2.13 на стр. 42). То есть для стирания кристалла не требовался источник ультрафиолетового излучения, и весь процесс перепрограммирования занимал всего несколько секунд. Кроме того, эти модели имели блок энергонезависимой памяти данных объемом 16 байт для длительного хранения данных. В течение нескольких лет эта модель оставалась уникальной среди всей линейки микроконтроллеров PIC.

В 1996 году на смену PIC16C83/4 пришла модель PIC16F83/4, которая имела FLASH-память программ и лучшие параметры, например более высокую рабочую тактовую частоту.

Несмотря на то что для новых разработок рекомендуется использовать микроконтроллер PIC16F627/8, появившийся в 2002 году, основное его отличие от предшественника заключается в расширенном наборе периферийных модулей, к рассмотрению которых мы приступим в третьей части книги. Поэтому для простоты изложения большинство материалов данной части будет базироваться на модели PIC16F84. Однако при необходимости мы будем ссылаться и на другие модели семейства.

В упрощенном виде архитектура микроконтроллера PIC16F84 показана на Рис. 4.1. Модель PIC16F83 отличается только уменьшенным объемом памяти программ (512 команд). На первый взгляд эти микроконтроллеры имеют очень сложную архитектуру, однако в действительности она ненамного сложнее архитектуры нашего компьютера BASIC (см. Рис. 3.4 на стр. 64). Основное отличие заключается в том, что к внутренней шине данных памяти данных, помимо ЦПУ, подключены периферийные модули. Чтобы лучше понять материал этой главы, рекомендую еще раз просмотреть материал, касающийся указанного компьютера. Вообще говоря, в микроконтроллерах PIC реализована гарвардская архитектура с ее раздельными модулями памяти программ и данных, в которой периферийные устройства отображены на адресное пространство памяти данных. То есть с точки зрения программы все эти устройства расположены в памяти данных. То же касается и различных служебных регистров, таких как регистры статуса и управления, а также счетчика команд.