Предположим, что микроконтроллер смарт-карты имеет встроенный модуль EEPROM, а для обмена информацией с терминалом на ресепшине используется подпрограмма обмена по последовательному порту, аналогичная реализованной в Программе 12.14 на стр. 421. Данные передаются в указанном порядке в кодировке ASCII, причем перед началом пакета передается символ STX, после завершения пакета — ЕТХ, а сами данные внутри пакета разделяются символом SP (см. Табл. 1.1 на стр. 18). Напишите подпрограмму, выполняющую разбор принимаемых данных и записывающую их в EEPROM.
Глава 16
Дальнейшее развитие
В 1994 году компания Microchip представила на суд общественности первого представителя старшей линейки микроконтроллеров PIC17C42, работающего на частоте 25 МГц. В основу этого микроконтроллера легла та же гарвардская RISC-архитектура, которая использовалась в предыдущих моделях, однако количество команд было увеличено до 55 (при этом система команд была совместима снизу вверх). Новая архитектура обеспечивала поддержку памяти бóльших объемов, а также имела расширенные возможности в части косвенной адресации, управления прерываниями и стеком.
В 1999 году было представлено семейство микроконтроллеров PIC18CXXX с максимальной тактовой частотой 40 МГц и 16-битным набором команд. Количество команд в этих микроконтроллерах было увеличено до 75, причем большинство из них были введены для поддержки языков высокого уровня. Также в этих микроконтроллерах была реализована более развитая система прерываний, косвенной адресации и управления стеком.
Чтобы несколько сбалансировать наше обсуждение, посвященное большей частью микроконтроллерам среднего уровня, в этой главе приводится обзор расширенного семейства на примере микроконтроллеров линейки PIC18FXX2. Эти модели специально предназначены для замены более ранних моделей среднего уровня линейки PIC16F87X, на примере которых мы и изучали микроконтроллеры PIC.
После прочтения этой главы вы:
• Сможете критически сравнить архитектуры семейств среднего и расширенного уровня.
• Познакомитесь с побайтно адресуемой структурой 16-битной памяти программ.
• Разберетесь в организации памяти данных, позволяющей при помощи регистра выбора банка использовать до 16 банков памяти по 256 регистров каждый.
• Узнаете, как можно использовать три 12-битных регистра FSR/i для косвенной адресации с пред/пост инкрементом/декрементом, а также для относительной адресации со смещением, хранящимся в рабочем регистре.
• Поймете, каким образом реализована поддержка приоритетов прерываний.
• Познакомитесь с основными изменениями в стандартных периферийных модулях.
• Узнаете, каким образом был расширен набор команд.
Линейка микроконтроллеров PIC18FXX2 была представлена в 2001 году. Эти микроконтроллеры предназначались для замены моделей среднего уровня PIC16F87X, а также более старых PIC16C73/4. Всего в этой линейке было выпущено 4 микроконтроллера.
PIC18F242
Этот микроконтроллер, выпускающийся в 28-выводном корпусе, имеет память программ объемом 8 Кслов и память данных объемом 788 байт.
PIC18F252
Эта модель идентична предыдущей, но имеет память программ объемом 16 Кслов и память данных объемом 1536 байт.
PIC18F442
Этот микроконтроллер представляет собой 40/44-выводный вариант модели PIC18F242.
PIC18F452
Этот микроконтроллер представляет собой 40/44-выводный вариант модели PIC18F252.
Кроме несколько урезанного набора периферийных модулей в 28-выводных моделях PIC18F2X2, эти микроконтроллеры практически идентичны соответствующим моделям PIC18F4X2, архитектура которых изображена на Рис. 16.1.
Чтобы сравнить эти микроконтроллеры с их предшественниками — PIC16F87X (см. Рис. 10.1 на стр. 303), мы рассмотрим блок выборки, исполнительный блок, периферийные устройства, а также отличие системы команд.
Рис. 16.1.
Блок выборки команд, находящийся в верхней левой части Рис. 16.1, имеет