MSP430

MSP430
MSP430.

MSP430 — семейство 16-разрядных микроконтроллеров фирмы «Texas Instruments».

Содержание

История создания и особенные характеристики

Первый контроллер с аббревиатурой MSP430 появился в 1999 году. При разработке контроллера инженеры «TI» постарались создать контроллер с базисом, наследующим легендарную архитектуру процессора 70-х—80-х годов PDP-11, и им это удалось. В результате появился RISC-контроллер с системой команд, близкой к PDP-11.

Ядро MSP430 16-битное; систему команд постарались сделать максимально ортогональной с разнообразными способами адресации. Ортогональность системы команд означает, что в качестве операндов в любой команде можно использовать не только регистры общего назначения, но и ячейки основного ОЗУ и константы.

В момент рождения семейства основной упор был сделан на снижение энергопотребления. Однако с тех пор экономия энергии стала идеей-фикс электронной техники и MSP430 активно теснят на этом пьедестале другие производители со своими архитектурами.

Ключевым отличием и «визитной карточкой» семейства MSP430 является возможность тактировать любой модуль периферии асинхронно от ядра. В подавляющем большинстве однокристальных микроконтроллеров периферия синхронна с ядром (за исключением таймера часов реального времени). Такая особенность позволяет гибко управлять скоростью (а значит и потреблением) каждого модуля.

Система команд MSP430

MSP430 имеет фоннеймановскую архитектуру, с единым адресным пространством для команд и данных. Память может адресоваться как побайтово, так и пословно. Порядок хранения 16-разрядных слов — от младшего к старшему (англ. little-endian).

Процессор содержит 16 16-разрядных ортогональных регистров. Регистр R0 используется как программный указатель (англ. Program Counter - PC), регистр R1 как указатель стека (англ. Stack Pointer - SP), регистр R2 как регистр статуса (англ. Status Register - SR), а R3 как специальный регистр именуемый генератор констант (англ. Constant Generator - CG), R2 также может использоваться в качестве генератора констант. Генератор констант используется для сокращения общей длины команды вследствие неявного представления константы в коде операции. Регистры с R4 по R15 используются как регистры общего назначения.

Набор инструкций очень простой и представлен 27 инструкциями, 24 эмулированными инструкциями. Инструкции имеют как 8-битную (байт), так и 16-битную (слово) форму обработки операндов. Бит B/W управляет этим признаком.

MSP430 система команд
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Команда
0 0 0 1 0 0 opcode B/W As register Однооперандные команды
0 0 0 1 0 0 0 0 0 B/W As register RRC Вращение вправо через перенос
0 0 0 1 0 0 0 0 1 0 As register SWPB Обмен байтов
0 0 0 1 0 0 0 1 0 B/W As register RRA Вращение вправо арифметическое
0 0 0 1 0 0 0 1 1 0 As register SXT Расширение знака байта до слова
0 0 0 1 0 0 1 0 0 B/W As register PUSH Опустить операнд в стек
0 0 0 1 0 0 1 0 1 0 As register CALL Вызов подпрограммы; сохранить PC в стеке и загрузить PC новым значением
0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 RETI Возврат из прерывания; Извлечь SR и PC из стека
0 0 1 условие 10-бит знаковое смещение Условный переход; PC = PC + 2×offset
0 0 1 0 0 0 10-бит знаковое смещение JNE/JNZ Переход если не_равно/не_ноль
0 0 1 0 0 1 10-бит знаковое смещение JEQ/JZ Переход если равно/ноль
0 0 1 0 1 0 10-бит знаковое смещение JNC/JLO Переход если не_перенос/меньший
0 0 1 0 1 1 10-бит знаковое смещение JC/JHS Переход если перенос/больший
0 0 1 1 0 0 10-бит знаковое смещение JN Переход если отрицательный
0 0 1 1 0 1 10-бит знаковое смещение JGE Переход если больше_или_равно
0 0 1 1 1 0 10-бит знаковое смещение JL Переход если больше
0 0 1 1 1 1 10-бит знаковое смещение JMP Переход (непосредственный)
opcode source Ad B/W As destination Двух операндная арифметика
0 1 0 0 source Ad B/W As destination MOV Переслать источник в приемник
0 1 0 1 source Ad B/W As destination ADD Прибавить источник к приемнику
0 1 1 0 source Ad B/W As destination ADDC Прибавить источник_и_перенос к приемнику
0 1 1 1 source Ad B/W As destination SUBC Вычесть источник из приемника (с переносом)
1 0 0 0 source Ad B/W As destination SUB Вычесть источник из приемник
1 0 0 1 source Ad B/W As destination CMP Сравнить (операцией вычитания) источник с приемником
1 0 1 0 source Ad B/W As destination DADD Decimal Десятичное сложение источника и приемника (с переносом)
1 0 1 1 source Ad B/W As destination BIT Проверка битов (операцией AND) источника и приемника
1 1 0 0 source Ad B/W As destination BIC Битовая очистка (dest &= ~src)
1 1 0 1 source Ad B/W As destination BIS Битовая установка (logical OR)
1 1 1 0 source Ad B/W As destination XOR Исключающее или источника с приемником
1 1 1 1 source Ad B/W As destination AND Логический AND источника с приемником (dest &= src)

Все инструкции 16-битные. 4 способа адресации операнда, определены в 2 битах как As поле.

Поле As— Регистровый, индексный, косвенный-регистровый, косвенно-регистровый с пост декрементом. Поле Ad определяет два способа адресации — регистровый и индексный.

MSP430 Режим адресации
As Регистр Синтаксис Описание
00 n Rn Регистровый. Операнд содержимое одного из регистров из Rn.
01 n x(Rn) Индексный. Операнд находится в памяти по адресу Rn+x.

X-слово находится после текущей команды.

10 n @Rn Косвенный регистровый. Операнд находится в памяти по адресу, который содержится в регистре Rn.
11 n @Rn+ Косвенный регистровый с автоинкрементом. В зависимости от значения разряда B/W значение регистра Rn увеличивается после выполнения операции на 1 или 2.
Режимы адресации при использовании R0 (PC)
01 0 (PC) LABEL Относительный(символьный). x(PC) Операнд в памяти по адресу PC+x.
11 0 (PC) #x Непосредственный. @PC+ Адрес операнда из х-слова находящегося после текущей команды.
Использование R2 (SR) и R3 (CG), специальный способ декодирования
01 2 (SR) &LABEL Абсолютный. Операнд в памяти по адресу взятому из x.
10 2 (SR) #4 Константа 4.
11 2 (SR) #8 Константа 8.
00 3 (CG) #0 Константа 0.
01 3 (CG) #1 Константа 1. при байтовых операциях.
10 3 (CG) #2 Константа 2.
11 3 (CG) #-1 Константа −1 или 0xFFFF.

Мнемоника эмулируемых команд

Другие команды, поддерживаемые ассемблером MSP430, образуются из основных и именуются эмулируемыми (способ получения — в скобках). Общее число поддерживаемых ассемблером эмулируемых команд — 24.

CLRZ - очистка флага Z регистра состояния процессора (PSW) ( BIC #2,SR )
CLRN - очистка флага N регистра состояния процессора (PSW) ( BIC #4,SR )
CLRC - очистка флага C регистра состояния процессора (PSW) ( BIC #1,SR )
SETZ - установка флага Z регистра состояния процессора (PSW) ( BIS #2,SR )
SETN - установка флага N регистра состояния процессора (PSW) ( BIS #4,SR )
SETC - установка флага C регистра состояния процессора (PSW) ( BIS #1,SR )
EINT - разрешение прерываний ( BIC #8,SR )
DINT - запрещение прерываний ( BIS #8,SR )
CLR dst - очистка операнда ( MOV #0,dst )
TST dst - проверка операнда на ноль ( CMP #0,dst )
INV dst - инвертирование битов операнда ( XOR #-1,dst )
ADC dst - прибавление переноса к операнду ( ADDC #0,dst )
DADC dst - десятичное сложение переноса с получателем ( DADD #0,dst )
SBC dst - вычитание переноса из операнда ( SUBC #0,dst)
INC dst - инкремент операнда ( ADD #1,dst )
DEC dst - декремент операнда ( SUB #1,dst )
INCD dst - увеличение на 2 операнда ( ADD #2,dst )
DECD dst - уменьшение на 2 операнда ( SUB #2,dst )
RLA dst - сдвиг влево операнда, флаг переноса заполняется из старшего бита, а младший  бит результата -0 ( ADD dst,dst )
RLC dst - сдвиг влево операнда с использование переноса ( ADDC dst,dst )
RET     - возврат из подпрограммы ( MOV @sp+,pc )
POP dst - извлечение операнд из стека ( MOV @sp+,dst )
BR dst  - переход в программе используя операнд ( MOV dst,pc)
NOP - нет операции ( MOV r3,r3 ) 
      имеются и другие возможные операции для формирования задержки выполнения программного кода 

Примечание: приведена форма записи команд без указания на тип операндов байт/слово.

Поддерживаемый формат команд ассемблером в мнемонике имеет указание на тип обрабатываемых данных.

Компиляторы и ассемблеры

Эмуляторы

Полезные ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "MSP430" в других словарях:

  • MSP430 — MSP430. El MSP430 es una familia de microcontroladores producidos por Texas Instruments. Construido con una CPU de 16 bits, el MSP430 está diseñado para aplicaciones empotradas de bajo costo y bajo consumo de energía. La arquitectura tiene… …   Wikipedia Español

  • MSP430 — FG461. MSP430 est le nom d´une famille de microcontrôleurs de la marque Texas Instruments. Caractéristiques Construit autour d un CPU 16 bits, le MSP430 a été conçu pour des applications embarquées à basse consommation et à faible coût. Il est… …   Wikipédia en Français

  • MSP430 — Der MSP430 ist ein 16 Bit RISC Microcontroller der Firma Texas Instruments. Er wurde in Freising, Deutschland entwickelt. Der Microcontroller ist für Anwendungen mit niedrigstem Stromverbrauch optimiert. Der Prozessorkern ist einfach und… …   Deutsch Wikipedia

  • Msp430 — Der MSP430 ist ein 16 Bit RISC Microcontroller der Firma Texas Instruments. Er wurde in Freising, Deutschland entwickelt. Der Microcontroller ist für Anwendungen mit niedrigstem Stromverbrauch optimiert. Der Prozessorkern ist einfach und… …   Deutsch Wikipedia

  • TI MSP430 — The MSP430 is a microcontroller family from Texas Instruments. Built around a 16 bit CPU, the MSP430 is designed for low cost, low power consumption embedded applications. The architecture is reminiscent of the DEC PDP 11.The MSP430 is… …   Wikipedia

  • TI MSP430 — Der MSP430 ist ein 16 Bit RISC Mikrocontroller der Firma Texas Instruments. Er wurde in Freising, Deutschland entwickelt. Der Mikrocontroller ist für Anwendungen mit niedrigstem Stromverbrauch optimiert. Der Prozessorkern ist in der… …   Deutsch Wikipedia

  • Liste des systèmes d'exploitation temps réel — Cette liste des systèmes d exploitation temps réel présente les systèmes d exploitation temps réel. Un RTOS est un système d exploitation pour les applications embarquées et temps réel permettant ainsi de garantir les contraintes et de fournir… …   Wikipédia en Français

  • Ассемблер — Эта статья  о компьютерных программах. О языке программирования см. Язык ассемблера. Ассемблер (от англ. assembler  сборщик)  компьютерная программа, компилятор исходного текста программы, написанной на языке… …   Википедия

  • Микроконтроллер — В данной статье или разделе имеется список источников или внешних ссылок, но источники отдельных утверждений остаются неясными из за отсутствия сносок …   Википедия

  • Texas Instruments — Texas Instruments …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»