В HTML      В PDF
микроэлектроника, микросхема, транзистор, диод, микроконтроллер, память, msp430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, avr, mega128
Предприятия Компоненты Документация Применения Статьи Новости

 
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации





Главная страница > Компоненты > Микроконтроллеры > MSP430 > Архитектура MSP430x1xx
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации


16-разрядное RISC CPU

В этом разделе описывается ЦПУ MSP430, режимы адресации и набор команд.

3.1 Введение в ЦПУ

ЦПУ включает возможности, специально созданные для современных технологий программирования, таких как вычисляемое ветвление, обработка таблиц и использование языков высокого уровня, подобных языку C. ЦПУ может выполнять адресацию в полном адресном диапазоне без использования страниц памяти.

ЦПУ обладает следующими возможностями:

  • RISC-архитектура с 27 командами и 7 режимами адресации;
  • Ортогональная архитектура, при которой каждая команда пригодна для каждого режима адресации;
  • Полный доступ ко всем регистрам, включая программный счетчик, регистры статуса и указатель стека;
  • Однотактные регистровые операции;
  • Большой 16-разрядный регистровый файл, уменьшающий количество обращений к памяти;
  • 16-разрядная адресная шина, обеспечивающая прямой доступ и ветвление во всем диапазоне памяти;
  • 16-разрядная шина данных, позволяющая напрямую манипулировать параметрами шириной в слово;
  • Генератор констант немедленно предоставляет шесть используемых наиболее часто значений, уменьшая размер кода;
  • Прямой обмен между ячейками памяти без промежуточной записи в регистр;
  • Команды и адресация в форматах «слово» и «байт».

Блок-схема ЦПУ показана на рис.3.1.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments 3.2 Регистры ЦПУ

3.2 Регистры ЦПУ

ЦПУ включает шестнадцать 16-разрядных регистров. Регистры R0, R1, R2 и R3 имеют специальное назначение. Регистры с R4 по R15 являются рабочими регистрами общего назначения.

3.2.1 Программный счетчик (PC)

16-разрядный программный счетчик (PC/R0) указывает на следующую команду, которая будет выполняться. Каждая команда состоит из четного числа байтов (два, четыре или шесть), поэтому PC инкрементируется соответственно. Команды доступа в адресном пространстве 64 кБайт выполняются к границам слов, поэтому PC выравнивается к четным адресам. На рис.3.2 показана организация программного счетчика.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments
Рис.3-2 Программный счетчик

Программный счетчик PC может быть адресован всеми командами и во всех адресных режимах. Некоторые примеры:

    MOV #LABEL, PC    ; Переход к адресу с меткой LABEL
    MOV LABEL, PC     ; Переход к адресу, содержащемуся в переменной LABEL
    MOV @R14, PC      ; Косвенный переход по косвенному содержимому R14
    

3.2.2 Указатель стека (SP)

Указатель стека (SP/R1) используется ЦПУ для хранения адресов возврата из подпрограмм и прерываний. Стек основан на предекрементной постинкрементной схеме. Кроме того, указатель стека SP может использоваться со всеми командами и во всех адресных режимах. На рис.3.3 показана организация SP. Указатель стека SP инициализируется в ОЗУ пользователем и выравнивается к четным адресам.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments
Рис.3-3 Указатель стека

    MOV  2(SP),R6     ; Элемент стека I2 в R6
    MOV  R7,0(SP)     ; Перезапись в вершину стека (TOS) содержимого R7
    PUSH #0123h       ; Помещение числа 0123h на вершину стека (TOS)
    POP  R8           ; R8 = 0123h
    

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments
Рис.3-4 Использование стека

Особенности использования «SP» в качестве аргумента команд PUSH и POP описаны и показаны на рис.3.5.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments
Рис.3-5 Последовательность PUSH SP – POP SP

Указатель стека изменяется после выполнения команды PUSH SP. Указатель стека не изменяется после команды POP SP. Команда POP SP помещает SP1 в указатель стека SP (SP2=SP1).

3.2.3 Регистр статуса (SR)

Регистр статуса (SR/R2), используемый как регистр источника или получателя, может адресоваться в регистровом режиме только с помощью команд-слов. Прочие комбинации режимов адресации используются для поддержки генератора констант. На рис.3.6 показаны биты регистра статуса SR.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments
Рис.3-6 Биты регистра статуса

В таблице 3.1 приведено описание битов регистра статуса.

Таблица 3.1. Описание битов регистра статуса

Бит Описание
V Бит переполнения. Этот бит устанавливается, если результат арифметической операции имеет переполнение в области знаковых переменных.
ADD(.B),ADDC(.B) Устанавливается, когда:
Положительный + Положительный = Отрицательный
Отрицательный + Отрицательный = Положительный
в противном случае сбрасывается
SUB(.B),SUBC(.B),CMP(.B) Устанавливается, когда:
Положительный – Отрицательный = Отрицательный
Отрицательный – Положительный = Позитивный
в противном случае сбрасывается
SCG1 Системный тактовый генератор 1. Когда этот бит установлен, SMCLK выключен.
SCG0 Системный тактовый генератор 0. Когда этот бит установлен, генератор DCO выключен, если DCOCLK не используется для MCLK или SMCLK.
OSCOFF Выключение осциллятора. Когда этот бит установлен, осциллятор LFXT1, использующий кристалл, выключен, если LFXT1CLK не используется для MCLK или SMCLK.
CPUOFF Выключение ЦПУ. Когда этот бит установлен, ЦПУ выключено.
GIE Общий бит разрешения прерываний. Когда этот бит установлен, маскируемые прерывания разрешены. Когда сброшен, все маскируемые прерывания запрещены.
N Бит отрицательного результата. Этот бит устанавливается, когда результат операции с байтом или словом отрицательный и сбрасывается, когда результат не отрицательный.
Операции со словами: N устанавливается по значению бита 15 результата
Операции с байтами: N устанавливается по значению бита 7 результата
Z Бит нуля. Этот бит устанавливается, когда результат операции с байтом или словом равен «0» и очищается, если результат не равен «0».
C Бит переноса. Этот бит устанавливается, когда результат операции с байтом или словом имеет перенос и очищается, когда переноса нет.

3.2.4 Регистры генератора констант CG1 и CG2

Шесть обычно используемых констант генерируются с помощью регистров R2 и R3 генератора констант, что исключает необходимость использования дополнительного 16-разрядного слова в программном коде. Константы выбираются путем изменения режима адресации (As) регистра-источника, в соответствии с таблицей 3.2.

Таблица 3.2. Значения генераторов констант CG1, CG2

Регистр As Константа Комментарий
R2 00 - - - - - Регистровый режим
R2 01 (0) Режим абсолютной (безусловной) адресации
R2 10 00004h +4, побитовая обработка
R2 11 00008h +8, побитовая обработка
R3 00 00000h 0, обработка по словам
R3 01 00001h +1
R3 10 00002h +2, побитовая обработка
R3 11 0FFFFh -1, обработка по словам

Генератор констант обладает следующими преимуществами:

  • Не требуются особые команды
  • Код не содержит дополнительного слова для шести констант
  • Не требуется код (команда) доступа к памяти для получения константы

Ассемблер автоматически использует генератор констант, если одна из шести констант используется как непосредственный исходный операнд. При использовании регистров R2 и R3 в режиме генерации констант, адресация к ним не может быть явной – они действуют только как регистры-источники.

Генератор команд – расширенная система команд

Набор RISС-команд семейства MSP430 состоит только из 27 команд. Однако, генератор констант позволяет поддерживать MSP430-ассемблеру 24 дополнительные эмулированные команды. К примеру, команда с одним операндом:

CLR dst
эмулируется командой с двумя операндами такой же длины:

MOV R3,dst
где #0 замещается ассемблером, а R3 используется в режиме As=00

Команда INC dst замещается командой ADD 0(R3),dst

3.2.5 Регистры общего назначения R4-R15

Двенадцать регистров с R4 по R15 являются регистрами общего назначения. Все эти регистры могут быть использованы в качестве регистров данных, указателей адресов или индексных значений и доступны с помощью команд работы с байтами или словами, как показано на рис.3.7.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments

Пример операции регистр-байт
R5=0A28Fh
R6=0203h
Mem(0203h)=012h

ADD.B            R5,0(R6)
            
                  08Fh
                 +012h
                  0A1h

Mem(0203h)=0A1h
C=0, Z=0, N=1

  (младший байт регистра)
+ (адресуемый байт)
-------------------------
->(адресуемый байт)
Пример операции байт-регистр

R5=01202Fh
R6=0223h
Mem(0223h)=05Fh

ADD.B       @R6,R5
            
        05Fh
       +002h
      00061h

R5=00061h
C=0, Z=0, N=0

  (адресуемый байт)
+ (младший байт регистра)
-------------------------
->(младший байт регистра,
ноль в старшем байте)

Рис.3-7 Операции регистр-байт / байт-регистр



<-- Предыдущая страница Оглавление Следующая страница -->


Для бизнесменов недвижимость Чехия - выгодная инвестиция