PIC-микроконтроллеры. Все, что вам необходимо знать | страница 53
К 1992 году на свет появилось среднее семейство PIC16CXXX. Микроконтроллеры этого семейства имели уже 14-битную память программ, что облегчало доступ к памяти данных больших объемов. По сравнению с младшими семействами появились две новые команды. Был значительно расширен базовый набор периферии — добавились такие устройства, как 16-битные таймеры, модуль АЦП, последовательные порты. Также была добавлена поддержка прерываний.
В оставшейся части книги, за исключением главы 16, мы будем рассматривать микроконтроллеры именно этого семейства. И только в 16-й главе мы коснемся старшего семейства PIC18XXXX, появившегося на рынке в 1999 году. Микроконтроллеры данного семейства получили 16-битное ядро и 42 дополнительные команды, большинство из которых направлено на поддержку компиляторов с языков высокого уровня.
В этой главе мы познакомимся с ядром микроконтроллеров семейства среднего уровня с точки зрения его архитектуры. Прочитав эту главу, вы:
• Познакомитесь с внутренней структурой микроконтроллеров PIC среднего уровня с гарвардской архитектурой.
• Разберетесь в назначении, структуре и распределении памяти программ и памяти данных.
• Поймете идею деления памяти данных на банки и их взаимосвязь с состоянием управляющего бита RP0 регистра STATUS.
• Сможете интерпретировать биты регистра STATUS, которые управляют страницами памяти, а также содержат флаги С, DC и Z.
• Поймете, как можно манипулировать содержимым счетчика команд и какую роль в этом играет регистр специального назначения PCLATH.
• Узнаете зависимость между фазами тактового сигнала и внутренней последовательностью микроопераций.
• Познакомитесь с основными периферийными модулями на примере модели PIC16F84.
С точки зрения программирования все устройства с одним и тем же ядром полностью идентичны. Более того, все ядра, используемые в микроконтроллерах PIC, имеют очень много общего. С аппаратной точки зрения блоки выборки и исполнения незначительно отличаются, в частности, поддерживаемым объемом памяти и построением схем сброса.
Отдельные представители семейства имеют схожий базовый набор портов и модулей периферийных устройств, однако отличаются в части дополнительных возможностей ввода/вывода. Например, в микроконтроллере PIC16F73 имеется 5-канальный 8-битный аналого-цифровой преобразователь, в PIC16F874/7 — уже 8-канальный 10-битный аналого-цифровой преобразователь, а в PIC16F627/628 — аналоговый компаратор и 16-битный таймер/счетчик. Однако, несмотря на эти отличия, существует множество идентичных модулей, использующихся как в моделях среднего уровня, так и в моделях с расширенным ядром. К рассмотрению этих модулей мы вернемся в 3-й части книги.