Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Структурная организация микроконтроллеров PIC16C5X



Особенности архитектуры и структурная схема. Структурная схема ОМК PIC16C5X показана на рис.2.1. Основу структуры данного микроконтроллера составляют две внутренние шины: двунаправленная 8-битная шина данных и 12-битная шина команд. Это соответствует, как уже упоминалось ранее, Гарвардской архитектуре, основанной на концепции раздельных шин и областей памяти для данных и команд Шина данных связывает между собой все основные функциональные блоки МК:

память данных (ОЗУ); арифметико-логическое устройство (ALU); порты ввода/вывода (Port A, B и С); регистры состояния (Status), косвенной адресации (FSR), таймера-счетчика (RTCC/TMRO), программного счетчика (PCL).

Регистры разделяются на две функциональные группы: специаль-ные регистры и регистры общего назначения. Специальные регистры включают в себя регистр таймера/счетчика реального времени (TMRO/RTCC), счетчик команд (PC), регистр состояния (STATUS), регистры ввода/ вывода (PORT) и регистр косвенной адресации (FSR). Кроме того, специальные регистры (TRIS) управляют конфигурацией портов ввода-вывода и режимом предварительного делителя (OPTION). Регистры общего назначения (Register File) используются программой для хранения переменных по усмотрению пользователя. В микроконтроллерах семейства Р1С 16С5Х существуют прямая и косвенная адресация всех регистров и ячеек памяти. Все специальные регистры и счетчик команд также отображаются на память данных.

Микроконтроллеры Р1С16С5Х имеют ортогональную (симметричную) систему команд, позволяющую выполнять любую операцию с любым регистром, используя любой метод адресации. Это облегчает программирование для них и значительно уменьшает время, необходимое на обучение работе с ними.

В микроконтроллерах Р1С16С5Х имеется 8-разрядное арифметико-логическое устройство (АЛУ) и рабочий регистр W. АЛУ выполняет сложение, вычитание, сдвиг, битовые и логические операции. В командах, имеющих два операнда, одним из операндов является рабочий регистр W. Второй операнд может быть константой или содержимым любого регистра ОЗУ. В командах с одним операндом, операнд может быть содержимым рабочего регистра или содержимым любого регистр. Для выполнения всех операций АЛУ используется рабочий регистр W, который не может быть прямо адресован. В зависимости от результата выполнения операции, могут измениться значения битов переноса С, десятичного переноса DC и нуля Z в регистре состояния STATUS. При вычитании биты С и DC работают как биты заема и десячного заема, соответственно. В описании команд SUBWF и ADDWF приведены необходимые примеры [8].

В состав микроконтроллеров PIC16C5X входит еще целый ряд функциональных блоков и узлов, таких, например, как: ПЗУ/ППЗУ прог-рамм (EPROM), счетчик команд или программный счетчик (PC), стек (Stack 1,2), регистры управления портами ввода/вывода (TRIS A,B,C), сторожевой таймер Watch Dog Timer (WDT), предварительный делитель (Prescaler) для WDT и TMRO/RTCC, ячейка (слово) конфигурации (Configuration EPROM), топологические расположенное в ПЗУ программ, блок генераторов тактовых последовательностей и сигналов управления (Oscillator Timing & Control).

Входная тактовая частота, поступающая с вывода OSC1/CLKIN, внутри делится на четыре и из нее формируются четыре циклические не перекрывающиеся тактовые последовательности Q1, Q2, Q3 и Q4. Счетчик команд увеличивается в такте Q1, команда считывается из памяти программы и защелкивается в регистре команд в такте Q4. Команда декодируется и выполняется в течение последующего цикла в тактах Q1...Q4.

Выборка команды и ее выполнение совмещены по времени таким образом, что выборка команды занимает один цикл, а выполнение следующий цикл. Эффективное время выполнения команды составляет один цикл. Если команда изменяет счетчик команд (например, команда GOTO), то для выполнения этой команды потребуется два цикла. Цикл выборки начинается с увеличения счетчика команд в такте Q1. В цикле выполнения команды выбранная команда защелкивается в регистр команд в такте Q1. В течение тактов Q2, Q3 и Q4 происходит декодирование и выполнение команды. В такте Q3 считывается память данных (чтение операнда), а запись происходит в такте Q4. Таким образом, цикл выполнения команды (рис. 2.2) состоит из 4-х тактов Q1-Q4, в каждом из которых производятся различные, заранее определенные действия:

Q1 - Выборка определенной команды из памяти программ и ее декодирование или вынужденный NOP,

Q2 - Выборка данных или NOP,

Q3 - Выполнение команды и обработка данных,

Q4 - Запись данных или NOP.

Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4

OSC1

Q1

Q2

Q3

Q4

PC

OSC2/CLKOUT

(RC-генератор)

Рис. 2.2. Цикл выполнения команды

Рассмотрим последовательно основные элементы структуры а также особенности организации и функционирования МК.

2.2.2.Обозначение выводов и их функциональное назначение

Обозначение выводов PIC16C5X и их функциональное назначение приведены на рис. 2.3 а также в табл. 2.1 и 2.2.

Таблица 2.1.

Обозначение и функциональное назначение выводов ОМК

PIC 16C52/16C54/16C56/16C58

Наименова-ние DIP SOIC SSOP Тип Буфер Примечание
RAO     I/O TTL    
RA1     I/O TTL Двунаправленный лорт ввода/вывода.
RA2     I/O TTL    
RA3     I/O TTL    
RBO     I/O TTL    
RB1     I/O TTL    
RB2     I/O TTL    
RB3     I/O TTL Двунаправленный порт ввода/вывода,
RB4     I/O TTL    
RB5     I/O TTL    
RB6     I/O TTL    
RB7     I/O TTL    
TOCKI       ST Вход таймера TMRO.
_____ МСLR/ Vpp.       ST Вход сброса/напряжение программирования. Сброс низким уровнем
OSC1/ CLKIN       ST Вход генератора/внешняя тактовая частота.
OSC2/ CLKOUT       Выход генератора. Подключается к резонатору. В режиме RC выход ¼ тактовой частоты OSC1.
vdd   15,16 Р Положительное напряжение питания.
Vss   5,6 Р Общий вывод.

Таблица 2.2

Обозначение и функциональное назначение выводов ОМК

PIC 16C55/16C57

Наименова­ние DIP SOIC SSOP Тип Буфер Примечание
RAO   .5 I/O TTL    
RA1     I/O TTL Двунаправленный порт ввода/вывода.
RA2     I/O TTL    
RA3     I/O TTL    
RBO     I/O. TTL    
RB1     I/O TTL    
RB2     I/O TTL  
RB3   1.2 I/O TTL Двунаправленный порт ввода/вывода.
RB4     I/O TTL    
RB5     I/O TTL    
RB6     I/O TTL    
RB7     I/O TTL    
RC0     I/O TTL  
RC1     I/O TTL  
RC2     I/O TTL  
RC3     I/O TTL Двунаправленный порт ввода/вывода.
RC4     I/O TTL  
RC5     I/O TTL    
RC6     I/O TTL    
RC7     I/O TTL    
TOCKI     I ST Вход таймера TMRO.
MCLR/Vpp     I ST Вход сброса/напряжение программирования. Сброс низким уровнем.
OSC1/ CLKIN     I ST Вход генератора/внешняя тактовая частота.
OSC2/ CLKOUT       - Выход генератора. Подключается к резонатору. В режиме RC выход 1/4 тактовой частоты OSC1.
vdd   3,4 Р - Положительное напряжение питания.
Vss   1,14 Р - Общий вывод.
N/C 3,5 - - - Не используются.

Обозначения: I - вход, O - выход, I/O - вход/выход, Р - питание, — - не используется, TTL - вход ТТЛ, ST - вход с триггером Шмидта.

PDIP, SOIC, CERDIP, Windov

       
 
1 18     PIC16C54/56     9 10     14 15    
   
1 18     PIC16C55/57   14 15    
 


RA2 RA1 RTCC /MCLR

RA3 RA0 Vdd OSC1

RA4 OSC1 n / c OSC2

/MCLR OSC2 Vss RC7

Vss Vdd n / c RC6

RB0 RB7 RA0 RC5

RB1 RB6 RA1 RC4

RB2 RB5 RA2 RC3

RB3 RB4 RA3 RC2

RB0 RC1

RB1 RC0

RB2 RB7

RB3 RB6

RB4 RB5

Рис. 2.3. Расположение выводов PIC16C5X.

2.2.3.Организация памяти программ

Память программ (ПЗУ/ППЗУ) имеет страничную организацию (рис.2.4). Объем одной страницы 512 байт поэтому прямая адресация памяти программ в семействе Р1С16С5Х возможна в пределах 512 байт. Микроконтроллеры PIC 16C5X имеют одну, две или четыре страницы памяти программ для хранения 12-ти разрядных кодов команд (512X12, 1024Х12, 2048Х12). В соответствии с этим все ОМК данного семейства можно разделить на три группы. Доступ к памяти свыше 512 байт осуществляется после переключения на соответствующую страницу памяти. Микроконтроллеры PIC16C52/54/C54A/CR54/CR54A/CR54B/C55 имеют одну страницу памяти программы, PIC16C56/CR56 имеет 2 страницы по 512 байт, PIC16C57/CR57A/CR57B/C58A/CR58A/CR58B имеют 4 страницы по 512 байт каждая.

2.2.4. Организация памяти данных

Память данных (ОЗУ) также имеет страничную организацию (рис. 2.5). Она состоит максимум из 4-х банков (0...3). Причем, банки в различных типах PIC могут иметь различные объемы. Минимальный объем банка 16 байт, а максимальный 32 байта

Шина данных разрядностью 8 бит соединяет группу регистров ОЗУ, порты ввода/вывода и 8- разрядное арифметико-логическое устройство(АЛУ). Прямо адресуются 32 байта оперативной памяти, остальная память адресуется банками по 16 байт каждый. Микроконтроллеры PIC16C52/C54/C54A/CR54/CR54A/CR54B/C56/CR56 имеют один банк оперативной памяти объемом 32 байта, из которых 25 байт могут быть

GOTO, CALL и команды, модифицирующие PC……..из PA1 STATUS<6>

GOTO, CALL и команды, модифицирующие PC……..из PA1 STATUS<5>

GOTO, CALL……………………...из команды

Команды, модифицирующие PC…...всегда ‘0’

GOTO, CALL……………...из команды

Команды, модифицирующие PC…..из АЛУ

9-11 бит

2 1 8

00 0FF

Страница 0 100

17F PIC16C52

1FF PIC16C54/C54A/CR54/CR54A/CR54B/C55

Страница 1 2FF

3FF PIC16C56/CR56

Страница 2 4FF

5FF

Страница 3 6FF

7FF PIC16C57/CR57A/CR57B/C58A/CR58A/CR58B

Рис. 2.4. Организация памяти программ

использованы в качестве регистров общего назначения. Для Р1С16С55, имеющего PORTC, объем - 24 байта. PIC16C57/CR57A/CR57B и PIC16C58A/CR58A/CR58B имеют 4 банка памяти данных и объем для них 72 и 73 байта соответственно.

Регистры могут быть адресованы прямо или косвенно, с исполь-зованием регистра косвенной адресации FSR. Непосредственная адре-сация поддерживается специальными командами, загружающими данные из памяти программы в рабочий регистр W. Регистры, как уже упоминалось, разделяются на две функциональные группы: специальные

Адрес

регистра 7 6 5 4 3 2 1 0

00 CALL

01 RETLW 10 9 8 7 6 5 4 3 2 1 0 10 9 8 7 6 5 4 3 2 1 0

04 7 6 5 4 3 2 1 0

06 5 4 3 2 1 0

0A Регистры К регистрам

0B общего через АЛУ

0C назначения

0D

0E От памяти программы

0F Биты 6,5 FSR: Выбор банка

(только для PIC16C57/CR57A/CR57B/C58A/CR58A/CR58B)

00 01 10 11

11 30 50 70

17 Регистры общего назначения

18 (только для PIC16C57/CR57A/CR57B/C58A/CR58A/CR58B)

1A

1B

1C

1D

1E Банк 1 (***) Банк 2 (***) Банк 3 (***)

1F 3F 5F 7F

(*) - Регистр физически не существует

(**) - Регистр 07h для PIC16C52/C54/C56 используется как регистр общего назначения

(***) - Банк 0 доступен во всех микроконтроллерах семейства PIC16C5X. Банки 1, 2, 3 доступны только в PIC16C57/58.

Рис.2.5. Организация памяти данных

регистры и регистры общего назначения. Специальные регистры (табл. 2.3) включают в себя регистр таймера/счетчика реального времени (RTCC-TMRO), счетчик команд (PC), регистр состояния (STATUS), регистры ввода/вывода (PORT) и регистр косвенной адресации (FSR). Кроме того, специальные регистры управляют конфигурацией портов ввода-вывода и режимом предварительного делителя.

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

Таблица 2.3

Описание специальных регистров Р1С16С5Х

Адрес Название Бит 7 Бит 6 Бит 5 Бит 4 БитЗ Бит 2 Бит1 Бит 0 Значение по вклю- чению питания Значение по сбросу по MCLR и WDT
00h INDF. Используется значение FSR для доступа к памяти данных (не физический регистр) -- - - -- - - -- - - -- - -  
01h TMRO 8-разрядный счетчик/таймер хххх хххх uuuu uuuu
02h PCL Младшие 8 разрядов счетчика команд PC 1111 1111 1111 1111
03h STATUS РА2 РА1 РАО ТО PD Z DC С 0001 1xxx 000??uuu
04h FSR Регистр косвенной адресации хххх хххх uuuu uuuu
05h PORTA - - - - РАЗ RA2 RA1 RA0 -- - - хххх -- - - uuuu  
06h PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 хххх хххх uuuu uuuu
07h PORTC RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0 хххх хххх uuuu uuuu

Обозначения: x - не определено, u - не меняется, — - отсутствует, читается как '0',

? - значение зависит от условий сброса.

Примечания:

1. Старшие разряды счетчика команд непосредственно не доступны. Обращение к старшим битам осуществляется через биты РА1, РАО (STATUS<6:5>).

2. Для PIC16C52/54/C54A/CR54/CR54A/CR54B/C56/CR56/C58A/CR58A/CR58B ре­гистр 07h является регистром общего назначения.

3. Заштрихованы физически отсутствующие биты.

При непосредственной (прямой) адресации (рис. 2.6) выбор банка осуществляется с помощью 2-х бит PR0 и RP1, которые находятся в 5 и 6 разрядах регистра косвенной адресации (FSR/Pointer) соответственно. Выбор регистра в банке осушествляется с помощью 5-ти разрядного адреса, поступающего в ОЗУ прямо из кода команды по выделенной для этих целей отдельной шине адреса, которая связывает регистр команд и память данных.

При косвенной адресации (рис. 2.6) используется переключатель косвенной адресации (регистр f0 в памяти данных, который физически не существует) и указатель Pointer (регистр f4 - FSR). Существуют некоторые отличия при осуществлении косвенной адресации для различных типов МК. Так для PIC16C54/C55/C56: биты 0-4 регистра (f4) выбирают один из 32 регистров в режиме косвенной адресации, т.е. когда в команде есть обращение к регистру косвенной адресации (f0). Биты 5-7 не используются и всегда читаются как единицы. Если косвенная адресация

Прямая адресация Косвенная адресация

из кода команды

RP1 RP0 4 0 6 FSR 0

Выбор банка Выбор регистра Выбор банка Выбор регистра

00 01 10 11

Память 0F

данных 10

Банк 0 Банк 1 Банк 2 Банк 3





Дата публикования: 2014-12-08; Прочитано: 1072 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.024 с)...