

Модуль 1: Архитектура
Цифровой сигнальный контроллер
TMS320F2812
Texas Instruments Incorporated

|
|
C281x Блок схема |
|
|||
|
|
|
Шина программ |
Менеджер |
||
|
|
|
|
|
|
Событий А |
|
|
|
|
|
Загр. |
Менеджер |
|
|
Секторна |
|
Событий B |
||
|
|
я |
|
ОЗУ |
ПЗУ |
12 битный |
A(18-0) |
22 |
Flash |
|
|
|
АЦП |
|
|
|
Сторожевой |
|||
|
|
|
|
|
|
|
|
32 |
|
|
|
|
таймер |
|
|
|
|
|
|
|
D(15-0) |
32 |
|
|
|
|
|
|
32 |
|
|
R-M-W |
PIE |
McBSP |
|
|
|
менеджер |
|
||
|
|
|
|
|
||
|
|
32-бит. |
32x32 бит |
АЛУ |
|
|
|
|
прерыв. |
CAN2.0B |
|||
|
|
Регистры Умножитель атомар. |
||||
|
|
|
|
|||
|
|
|
|
функций |
|
SCI-A |
|
|
|
|
|
3 |
|
|
|
|
|
|
32 битных |
SCI-B |
JTAG |
|
|
Шина регистров |
Таймера |
||
|
ЦП |
|
|
|||
|
|
|
|
|
||
реального |
|
|
|
SPI |
||
времени |
|
|
|
|
||
|
|
|
|
Шина данных |
|
|
|
|
|
|
|
|
GPIO |
1 - 2

C28x ЦП
MCU/DSP - баланс плотности кода & временем его исполнения.
|
|
|
|
|
Поддержка 32-битных инструкций для сокращения времени |
|||||||||||||||||||||||||
|
|
|
|
|
|
|
исполнения |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
Поддержка 16-битных инструкций для улучшения |
|||||||||||||||||||||||||
|
|
|
|
|
|
|
эффективности кода |
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
Шина программ |
|
|
|
32-битный DSP процессор с |
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
фиксированной запятой |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32x32 битный MAC с |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
фиксированной точкой |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PIE |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
R-M-W |
|
|
|
|
менеджер |
|
|
|
|
Два 16x16 MAC за один цикл |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
32-бит. |
|
32x32 бит |
|
АЛУ |
|
|
|
|
|
|
прерыв. |
|
|
|
|
с фиксированной точкой |
||||||||||||
|
|
Регистры |
|
Умножитель |
|
атомар. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(DMAC) |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
функций |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32-/64-битное ограничение |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Модуль деления 64/32 и |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
битных |
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32/32 |
|
|
|
|
|
|
|
Шина регистров |
|
|
|
|
Таймера |
|
|
|
|
|
|||||||||||||
|
|
|
JTAG |
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
реального |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Быстрое время реакции на |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
времени |
|
|
|
|
ЦП |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
прерывания |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Шина данных |
|
|
|
Инструкции чтения- |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
модификации-записи за |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
один цикл |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Уникальная возможность |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
отладки в реальном времени |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 - 3 |

Умножитель, АЛУ, Сдвигатели С28х
Шина программ
Шина данных |
|
32 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
16 |
|
|
|
|
|
16/3 |
|
|
|
|
|
|
|
XT (32) or T/TL |
|
|
8/16/32 |
|||
|
|
|
|
|
|
|
|||||
|
|
|
32 |
|
|
|
2 |
||||
|
|
|
|
|
|
||||||
|
|
|
|
Умножитель |
|
||||||
|
|
|
|
|
|
32 x 32 или |
|
|
|
|
|
|
Сдвиг R/L (0- |
|
|
два 16 x 16 |
|
|
|
|
|
||
|
|
|
16) |
|
|
|
|
|
|
|
|
|
|
|
|
|
P (32) or PH/PL |
|
|
|
|
8/16 |
|
|
|
|
32 |
|
32 |
|
|
|
|
||
|
|
|
|
|
|
|
|
32 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
|
|
Сдвиг R/L (0-16) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32
АЛУ (32)
32
АКК (32)
AH (16) AL (16)
AH.MSB AH.LSB AL.MSB AL.LSB
32
Сдвиг R/L (0-
16)
Шина 32 1 - 4
данных

Указатели, DP и Память C28x
Шина данных
Шина программ
|
|
|
|
|
|
|
|
|
|
|
|
XAR0 |
|
DP (16) |
6 LSB |
|
|||||||
XAR1 |
|
|
|
|
|
|
|
|
из IR |
|
|
|
|
|
|
|
|
|
|
|
|||
XAR2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
|
|
||||||
XAR3 |
32 |
|
|
|
|
||||||
XAR4 |
MUX |
|
|
||||||||
XAR5 |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
||
XAR6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
XAR7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
MUX |
|
|
|||||||
|
|
|
|
|
|
||||||
ARAU |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
Память
данных
XARn 32-бита
ARn 16-бит
1 - 5

C28x Структура внутренних шин |
|||||
Модуль |
Шина адреса программ (22) |
|
Память |
||
|
Программ |
||||
программ |
|
|
|
|
|
Шина данных чтения программ (32) |
|
(4М* 16) |
|||
PC |
|
||||
Декодер |
Шина адреса чтения данных (32) |
|
|
||
|
|
|
|||
|
Шина данных чтения данных (32) |
|
Память |
||
|
|
|
|
|
данных |
Регистры |
Модуль исполнения |
Модуль |
|
(4Г * 16) |
|
ARAU |
отладки |
|
|
||
SP |
Умнож. 32x32 |
R-M-W |
Эмуляция |
|
|
DP @X |
АЛУ |
|
|
||
АЛУ |
JTAG |
|
|||
XT |
в |
Периферия |
|||
XAR0 |
атомар. |
реальном |
|
||
to |
P |
функций |
времени |
|
|
XAR7 |
ACC |
|
|
|
|
Шина регистров / Шина результата |
|
|
|||
Шина данных чтения данных/программ (32) |
|
|
|||
|
Шина адреса записи данных (32) |
|
Внешние |
||
|
|
интерфейсы |
|||
|
|
|
|
|
|
|
|
|
|
|
1 - 6 |

C28x атомарные функции чтения/модификации/записи
|
Загрузка |
|
Преимущество атомарны |
|
|
|
команд: |
|
|
|
|
|
|
|
|
|
|
Легкость программи- |
|
Регистры ЦП АЛУ / |
|
рования |
|
|
|
Меньше и быстрее код |
|||
|
|
|
||
|
Сохранение |
|
Неразделимы (атомарн |
|
Стандартное |
|
Более эффективны |
|
|
Загрузка/Сохранение |
|
|||
для компилятора |
|
|||
DINT |
AL,*XAR2 |
Атомарная функция |
|
|
MOV |
чтения/модификации/запис |
|||
AND |
AL,#1234h |
|||
MOV |
*XAR2,AL |
|
AND *XAR2,#1234h |
|
EINT |
|
|
|
|
|
|
2 слова / 1 |
|
|
6 слов / 6 циклов |
|
|
||
|
цикл |
|
||
|
|
|
1 - 7 |
|
|
|
|
|

|
|
|
|
|
|
C28x Конвейер |
|
|||||
A |
F1 |
F2 |
D |
D |
R1 |
R2 |
X |
W |
|
|
8-уровневый |
|
1 |
2 |
|
|
|||||||||
B |
|
F1 |
F2 |
D |
D |
R1 |
R2 |
X |
W |
|
конвейер |
|
|
1 |
2 |
|
|||||||||
C |
|
|
F |
F |
D |
D |
R |
R |
X |
W |
|
|
|
|
1 |
2 |
1 |
2 |
1 |
2 |
|
|
|||
D |
|
|
|
F1 |
F2 |
D |
D |
R1 |
R2 |
X |
W |
E & G доступ к |
|
|
|
1 |
2 |
||||||||
E |
|
|
|
|
F1 |
F2 |
D |
D |
R1 |
R2 |
X W |
тому же адресу |
|
|
|
|
|
|
|
1 |
2 |
|
|
|
|
F |
|
|
|
|
|
F1 F2 |
D D |
R1 |
R2 X W |
|||
|
|
|
|
|
|
|
|
1 |
2 |
|
|
|
G |
|
|
|
|
|
|
F1 |
F2 |
D D |
R1 |
R2 X W |
|
|
|
|
|
|
|
|
|
|
1 |
2 |
|
|
H |
|
|
|
|
|
|
|
F1 F2 |
D D |
R1 R2 X W |
||
|
|
|
|
|
|
|
|
|
|
1 |
2 |
|
F1: Адрес инструкции |
Защита конвейера |
F2: Чтение инструкции |
Порядок результатов такой же как |
D1: Декодирование инструкции |
|
D2: Вычисление адресов |
это записано в программе |
операндов |
Программисту не нужно заботиться о |
R1: Адрес операнда |
|
R2: Получение операнда |
конвейере |
X: Вычисление в ЦП |
1 - 8 |
W: Сохранение содержимого |

TMS320F2812 Карта памяти
|
Данных | Программ |
Данных | Программ |
|
||
0x00 0000 |
MO SARAM (1K) |
|
|
||
0x00 0400 |
M1 SARAM (1K) |
|
|
||
0x00 0800 |
PF 0 (2K) |
зарезерв. |
зарезервировано |
|
|
0x00 0D00 |
PIE вектор |
зарезерв. |
|
|
|
|
(256) |
|
|
||
|
ENPIE=1 |
|
XINT Zone 0 (8K) |
0x00 2000 |
|
0x00 1000 |
зарезервировано |
||||
XINT Zone 1 (8K) |
0x00 4000 |
||||
0x00 6000 |
PF 2 (4K) |
зарезерв. |
|||
0x00 7000 |
PF 1 (4K) зарезерв. |
зарезервировано |
|
||
0x00 8000 |
LO SARAM (4K) |
|
|||
|
|
||||
0x00 9000 |
L1 SARAM (4K) |
XINT Zone 2 (0.5M) |
0x08 0000 |
||
0x00 A000 |
зарезервировано |
XINT Zone 6 (0.5M) |
0x10 0000 |
||
0x3D 7800 |
OTP (1K) |
|
0x18 0000 |
||
0x3D 7C00 |
зарезервировано |
|
|||
|
|
||||
0x3D 8000 |
FLASH (128K) |
зарезервировано |
|
||
|
128-битный пароль |
|
|||
0x3F 8000 HO SARAM (8K) |
|
|
|||
0x3F A000 |
зарезервировано |
XINT Zone 7 (16K) |
0x3F C000 |
||
0x3F F000 |
Загруз. ПЗУ(4K) |
||||
|
MP/MC=0 |
MP/MC=1 |
CSM: LO, L1 |
||
0x3F FFC0 |
BROM vector (32) |
XINT Vector-RAM (32) |
|||
OTP, FLASH |
|||||
|
MP/MC=0 ENPIE=0 |
MP/MC=1 ENPIE=0 |
1 - 9

Модуль защиты кода
Предотвращает и защищает интеллектуальную собственность
0x00 8000 |
LO SARAM (4K) |
0x00 9000 |
L1 SARAM (4K) |
0x00 A000 зарезервировано |
|
0x3D 7800 |
OTP (1K) |
0x3D 7C00 зарезервировано |
|
0x3D 8000 |
FLASH (128K) |
|
128-битный пароль |
128-битный пароль пользователя сохраняется во Flash
128-бит = 2128 = 3.4 x 1038 возможных паролей
Ввод 1 пароля каждые 2 цикла при 150 МГц, потребует затратить как минимум 1.4 x 1023 лет для нахождения правильной комбинации!
1 - 10