
- •Прикладное программирование в информационно-навигационных системах
- •1.2 Направления повышения производительности (vliw, simd)
- •2.1 Цсп фирмы Texas Instruments. Семейства, области применения, особенности архитектуры.
- •2.2 Цифровой сигнальный контроллер tms320f28335
- •2.2.1 Основные параметры и характеристики
- •2.2.2 Краткое описание основных узлов и блоков
- •3.1 Вход/выходы общего назначения
- •3.2 Таймеры cpu
- •3.3 Внешний интерфейс
- •3.4 Прямой доступ к памяти
- •3.5 Система тактирования
- •3.6 Система прерываний
- •4.1 Модуль eQep квадратурного датчика (Encoder)
- •4.2 Модуль eCap захвата внешних событий (Capture)
- •4.3 Модуль ePwm широтно-импульсной модуляции
- •4.4 Модуль hrpwm широтно-импульсной модуляции с повышенным разрешением
- •4.5 Аналого-цифровой преобразователь adc
- •5.1 Модуль spi последовательного периферийного интерфейса
- •5.2 Модуль i2c межмикросхемного последовательного интерфейса
- •5.3 Модуль sci последовательного коммуникационного интерфейса
- •5.4 Модуль McBsp многоканального буферированного последовательного порта
- •5.5 Модуль can интерфейса
- •6.1.Интегрированная среда разработки и отладки программного обеспечения – общие понятия
- •6.2.Code Composer Studio ide (ccs): состав, общая характеристика
- •6.3 Настройка (Target and Host Setup), интерфейс пользователя
- •7.1 Конфигурация проекта
- •7.2 Текстовый редактор
- •7.3 Инструменты для создания программы
- •7.4 Построение проекта в ccs
- •7.5 Базовое программное обеспечение
- •8.1 Конфигурирование среды для отладки
- •8.2 Основные инструменты отладки
- •8.3 Отладка в реальном времени
- •8.4 Опции Reset
- •9.1 Анализ и оптимизация программы
- •9.2 Оптимизация прикладной программы
- •10.2 Примеры программ
- •10.3 Порядок внедрения заголовочных файлов и примеров программ
- •10.4 Использование matlab и LabView для подготовки и тестирования программ.
- •10.5 Аппаратная платформа для выполнения лабораторных работ tms320c2000 dsc Experimenter Kit. Назначение, устройство, особенности работы»
2.2 Цифровой сигнальный контроллер tms320f28335
2.2.1 Основные параметры и характеристики
Высококачественная КМОП технология:
- частота до 150 МГц;
- напряжения питания: ядра 1,9/1,8 В; периферии 3,3 В.
32-разрядное центральное процессорное устройство (CPU):
- сопроцессор (FPU) с плавающей точкой (IEEE-754 одиночной точности);
- двойной аппаратный умножитель (MAC)16х16
с возможностью выполнения 32х32;
- Гарвардская архитектура шин;
- быстрая реакция на прерывания;
- унифицированная для программирования модель памяти;
- эффективная программируемость на С/С++ и Ассемблере.
6-каналььный контроллер прямого доступа к памяти(DMA).
16- или 32-разрядный интерфейс с внешней памятью (до 2Мх16 адресов).
Встроенная память:
- 34Кх16 оперативная (SARAM);
- 256Кх16 постоянной (Flash);
- 1Кх16 постоянной (OTP ROM).
ПЗУ загрузчика 8Кх16 с режимами загрузки через различные интерфейсы и стандартными математическими таблицами.
Устройство тактирования и управления системой, содержащее встроенную электронику генератора, систему ФАПЧ с поддержкой динамического изменения отношения частот, модуль сторожевого таймера.
128-разрядный кодовый замок, защищающий встроенную память.
Три 32-разрядных таймера CPU
Расширенные средства управления исполнительными устройствами:
- 18 выходов сигналов с ШИМ (PWM), из которых 6 выходов с ШИМ высокого разрешения до 150 пс (HRPWM);
- 6 входов захвата внешних событий (Event Capture);
- 8 32-разрядных таймеров;
- 2 интерфейса энкодеров.
Последовательные порты:
- два модуля интерфейса CAN;
- три модуля интерфейса SCI (UART);
- два модуля интерфейса McBSP;
- SPI модуль;
- модуль I2С;
16-канальный 12-разрядный АЦП с временем преобразования 80 нс
- мультиплексор 2х8 каналов;
- два устройства выборки/хранения;
- возможность одновременного преобразования двух сигналов;
- внутренний или внешний источник опорного напряжения.
2.2.2 Краткое описание основных узлов и блоков
CPU – кроме стандартного ядра семейства F28хх содержит блок плавающей точки, обеспечивающий с одиночной точностью работу в формате IEEE-754. Одинаково эффективен при решении как задач управления, так и математических, причем последние могут программироваться на С/С++. Наличие МАС-блока с форматом 32х32 и 64-разрядным регистром результата позволяет успешно поддерживать высокую точность вычислений. Быстрая реакция на прерывания с автоматическим контекстным сохранением критических регистров обеспечивает обслуживание асинхронных внешних событий с минимальной задержкой. Имеет 8-уровневый конвейер с конвейеризованным доступом к памяти, что позволяет эффективно работать с небыстрой памятью.
Шина памяти - Гарвардская архитектура шин. Шина памяти CPU включает:
- шину чтения программ с 22 адресными линиями и 32 линиями данных;
- шину записи данных с 32 адресными линиями и 32 линиями данных;
- шину чтения данных с 32 адресными линиями и 32 линиями данных.
Такая система шин обеспечивает работу с 32-разрядными числами с одновременным (в пределах одного такта) извлечением команды, чтением и записью данных. Вся периферия подключенная к шине памяти CPU имеет повышенный приоритет и между собой ранжирована следующим образом в порядке понижения приоритета:
-
Приоритет
Доступ к памяти
Примечание
Наивысший
Запись данных
Одновременная запись данных и программ невозможна
Запись программ
Чтение данных
Чтение программ
Одновременное чтение программ и выборка команды невозможны
Низший
Выборка команд
Шины периферии
В процессоре сформировано три вида шин, объединяющих имеющиеся на кристалле периферийные устройства в группы (фреймы).
Периферийный фрейм Per. Frame 1 объединяет устройства, подключенные к 32-разрядной шине периферии (32-bit peripheral bus).
Периферийный фрейм Per. Frame 2 объединяет устройства, подключенные к 16-разрядной шине периферии (16-bit peripheral bus).
Рис.2.1. Блок-схема цифрового сигнального контроллера TMS320F28335
Периферийный фрейм Per. Frame 3 объединяет устройства, подключенные к 32-либо 16-разрядной шине периферии с прямым доступом к памяти (32-bit peripheral bus DMA accessible).
Каждая из шин содержит 16 адресных линий, 16/32 линий данных и связанные с ними линии управляющих сигналов.
Периферийные шины мостами связаны с шиной памяти CPU.
Периферийный фрейм Per. Frame 0 объединяет устройства, непосредственно подключенные к шине памяти CPU (Memory Bus).
Поддержка контроля и анализа выполнения программы в реальном времени
В процессоре реализован технологический интерфейс JTAG по стандарту IEEE 1149.1. Кроме того, поддерживается режим реального времени посредством которого содержимое ячеек памяти, периферии и регистров может быть модифицировано в процессе исполнения программы или обслуживания прерываний. Возможен также режим одношагового прохода программы с обслуживанием прерываний в реальном времени.
Внешний асинхронный параллельный интерфейс содержит 20 адресных линий, 32 линии данных и три линии чип-селекта для выбора устройств в одной из зон 0, 6 или 7 пространства внешней памяти. Для каждой из трех зон может быть индивидуально запрограммированы число тактов ожидания и временные параметры строб сигналов. Это позволяет организовать обслуживание внешних устройств с различным быстродействием без дополнительных аппаратных затрат.
Flash-память содержит 256К 16-разрядных слов, разделенных на 8 секторов по 32Кх16 в каждом. Пользователь может производить стирание, запись и проверку информации в одном из секторов, не затрагивая остальные сектора. Однако невозможно выполнять стиранием/записью одного из секторов программой, хранящейся в другом секторе Flash-памяти. Имеется специальный конвейер для ускорения обмена с Flash-памятью.
В процессоре также содержится блок ОТР памяти объемом 1Кх16 с однократным программированием.
Как Flash-память, так и ОТР отображены на карте памяти как в пространстве программ, так и в пространстве данных, что позволяет использовать их и для исполняемых программ и для хранения данных.
M0, M1 SARAMs – два блока памяти по 1Кх16 в каждом. Указатель стека при ресете устанавливается на начало блока М1. Оба блока подобно остальным блокам памяти отображены на карте памяти как в пространстве программ, так и в пространстве данных, что позволяет использовать их и для исполняемых программ и для хранения данных. Вообще вся память процессора отображена для программиста на единой карте, что облегчает написание программ на языке высокого уровня. Распределение информации в пространства программ и данных осуществляется линкером.
L0, L1, …, L7 SARAMs – восемь блоков памяти по 4Кх16 в каждом с независимым доступом для уменьшения глубины конвейера. Все блоки отображены на карте памяти как в пространстве программ, так и в пространстве данных, блоки L4, …, L7 доступны по прямому доступу к памяти.
Загрузочное ПЗУ (Boot ROM) – запрограммировано при изготовлении кристалла и содержит программную поддержку первоначальной загрузки, которая может производиться из внешней и внутренней памяти или по различным интерфейсам. Код режима загрузки устанавливается схемным подключением 4 выводов процессора (GPIO84 – GPIO87).
Код секретности – 128-разрядный код, программируемый пользователем и хранящийся во Flash-памяти. Единственный модуль секретности обеспечивает предохранение от чтения Flash-памяти, блоков ОТР и L0, L1, L2, L3 SARAM через JTAG-порт, исполнения программ из внешней памяти и попытки загрузки нежелательного ПО, предназначенного для экспорта содержимого засекреченных блоков памяти.
Блок расширения периферийных прерываний (PIE) – может обслуживать до 96 источников периферийных прерываний, мультиплексируя их к небольшому числу входов CPU. 58 прерываний из 96 используются периферией процессора. Эти 96 прерываний объединяются в группы по 8 и выход каждой из групп подключается к одному из 12 входов INT1…INT12 прерываний CPU. Каждое из 96 прерываний поддерживается собственным вектором, вектора прерываний хранятся в выделенном блоке памяти (PIE Vector – RAM). На сохранение текущей информации и вызов процедуры обработки прерывания затрачивается 9 процессорных циклов.
Внешние прерывания – поддерживаются 8 маскируемых внешних прерываний (XINT1 – XINT7, XNMI). Параметры сигналов запроса прерываний (фронт, спад) настраиваются индивидуально. XINT1, XINT2, XNMI имеют собственный 16-разрядный счетчик, который позволяет делать точную отметку времени прерывания. Внешние прерывания не имеют однозначной привязки к определенным выводам микросхем,
XINT1, XINT2, XNMI могут быть запрограммированы на выводы, соответствующие GPIO0 …. GPIO31, XINT3 – XINT7 могут быть запрограммированы на выводы, соответствующие GPIO32 …. GPIO63.
Генератор и система ФАПЧ (PLL). Процессор может получать тактовые импульсы от внешнего генератора или от внутреннего, к которому необходимо подключить внешний кварцевый резонатор. Частота тактовых импульсов может повышаться (от 1 до 9 раз) или понижаться (в 1, 2, 4 раз) системой ФАПЧ даже в процессе выполнения программы, обеспечивая минимальный режим энергопотребления. Коэффициент повышения и понижения частоты устанавливается записью кода в соответствующие поля регистров PLLCR и PLLSTS.
Тактовая частота периферии. Тактовые импульсы подаются на каждый блок периферии индивидуально и могут быть отключены от неиспользуемых блоков. Тактовая частота последовательных портов (кроме I2C и eCAN) может быть изменена относительно тактовой частоты процессора.
Сторожевой таймер – пользовательская программа должна регулярно сбрасывать счетчик сторожевого таймера с периодом, не превышающим время заполнения счетчика, в противном случае при заполнении счетчика выработается Reset процессора. При необходимости сторожевой таймер может быть отключен.
Режимы пониженного потребления:
- IDLE (перерыв в работе): тактовые импульсы поданы только на используемые в блоки; выход из режима по прерыванию от дежурных блоков или сторожевого таймера;
- STANDBY (горячий резерв): генератор и PLL функционируют, на остальные блоки тактовые импульсы не подаются; выход из режима по внешнему прерыванию, работа начинается с такта, следующего за тактом, в котором выявлено прерывание;
- HALT (остановка): внутренний генератор выключен – режим минимального потребления; выход из режима по сигналу Reset.
Рис.2.2. Карта памяти цифрового сигнального контроллера TMS320F28335
Периферия в процессоре разделена на четыре группы, которые на карте памяти соответствуют 4 фреймам, в которые входят следующие группы регистров:
-
Фрейм
Блок
Регистры
PF0
PIE
Таблица векторов, регистры управления прерывания
Flash
Регистры тактов ожидания
XINTF
Регистры внешнего интерфейса
DMA
Регистры прямого доступа к памяти
Timers
Регистры таймеров CPU
CSM
Регистры ключа модуля секретности
ADC
Регистры результата АЦП
PF1
eCAN
Регистры почтового ящика и управляющие
GPIO
Регистры конфигурации и управления
ePWM
Регистры и модуль ШИМ
eCAP
Регистры и модуль захвата
eQEP
Регистры и модуль энкодера
PF2
SYS
Регистры управления системой
SCI
Регистры управления и RX/TX
SPI
Регистры управления и RX/TX
ADC
Регистры статуса, управления и результата
I2C
Регистры и модуль
XINT
Регистры внешних прерываний
PF3
McBSP
Регистры буферированного порта
ePWM
Регистры и модуль ШИМ
Мультиплексор вход/выходов общего назначения GPIO предназначен для программирования функций выводов микросхемы, которые могут использоваться периферией или определены как GPIO. Каждый вывод программируется индивидуально. По сигналу Reset выводы GPIO конфигурируются как входы.
Таймеры CPU – 32-разрядные с предустановкой периода, имеют на входе 16-разрядный делитель для программирования частоты счетных импульсов. Содержимое таймера декриментируется импульсами с установленной частотой, при достижении нуля вырабатывается прерывание, а в счетчик таймера автоматически загружается установленное 32-разрядное значение периода. Таймеры подключены к следующим входам прерывания CPU:
-
Таймер
Вход прерывания
Примечания
Timer 0
Через блок PIE
Общего назначения
Timer 1
INT13
Общего назначения
Timer 2
INT14
Резервирован для ОСРВ, если она не используется – общего назначения
Периферийные устройства для управления:
ePWM – модуль обеспечивает генерацию независимых или комплементарных ШИМ сигналов с заданными мертвыми зонами на фронтах. Модуляция части сигналов обеспечивается с повышенным разрешением. Регистры модуля доступны по шине DMA для снижения перегрузки шин при обслуживании этого модуля.
eCAP – использует 32-разрядную временную шкалу и регистры для захвата до 4 внешних событий. Может также конфигурироваться на выработку дополнительных ШИМ-сигналов.
eQEP – включает 32-разрядный счетчик положения, поддерживает измерения при низких скоростях с использованием устройств захвата и привысоких скоростях с использованием 32-разрядного таймера.
ADC – 12-разрядный АЦП обслуживает 16 несимметричных каналов. Содержит два устройства выборки/хранения для одновременной обработки пары сигналов. Регистры модуля доступны по шине DMA для снижения перегрузки шин при обслуживании этого модуля.
Последовательные порты:
eCAN – соответствует стандарту CAN 2.0B, содержит почтовый ящих на 32 адреса, обеспечивает фиксацию времени получения сообщения.
McBSP – многоканальный буферированный последовательный порт подключается к линиям E1/T1 кодека модема или стерео ЦАП. Регистры приема и передачи блока доступны по шине DMA для снижения перегрузки шин при обслуживании этого блока. Каждый модуль блока может быть сконфигурирован как SPI.
SPI – высокоскоростной синхронный последовательный порт, который обеспечивает передачу и прием последовательности двоичных символов (до 16 бит) с заданной частотой. Используется обычно для связи с внешней периферией или другим процессором. Связь между несколькими устройствами обеспечивается работой в режиме ведущего или ведомого. Включает 16-уровневое FIFO на прием и передачу.
SCI – двухпроводный последовательный асинхронный порт (часто называют UART). Включает 16-уровневое FIFO на прием и передачу.
I2C – обеспечивает связь с другими устройствами, подключенными к двухпроводной I2C шине и соответствующими стандарту I2C версии 2.1. Модуль содержит 16-уровневое FIFO на прием и передачу.
Карта памяти
Распределение адресного пространства процессора зафиксировано в его карте памяти, в которой определены адреса всех функциональных блоков процессора.
Особенности карты памяти TMS320F28335:
Размер блоков фиксирован и не может быть изменен пользователем;
Периферийные фрэймы Per. Frame 0, 1, 2, 3 предназначены только для данных и недоступны для пользовательских программ
В области адресов 0х38 0080 – 0х38 008F хранится процедура калибровки АЦП – пользователем не программируется
Если в проекте CAN интерфейс не используется, то его область оперативной памяти может быть использована как память общего назначения.
Области карты памяти имеют различное время доступа, измеряемое числом тактов ожидания. Наиболее быстрый обмен осуществляется без тактов ожидания, обмен с другими областями может содержать один-два такта ожидания, для некоторых областей, например, внешней памяти число тактов ожидания программируется. Такты ожидания по чтению и по записи для одной и той же области памяти могут различаться.
Ряд областей памяти защищены от случайной записи после конфигурирования (EALLOW).
Лекция №3 «Цифровой сигнальный контроллер TMS320F28335.
Подсистемы общего назначения (тактовый генератор, прерывания, таймеры, входы/выходы общего назначения, внешние интерфейсы, прямой доступ к памяти)»