Prikladnoe_programmirovanie_-Konspekt_lektsy


Чтобы посмотреть этот PDF файл с форматированием и разметкой, скачайте его и откройте на своем компьютере.

1



















Прикладное программирование в информационно
-
навигационных
системах




Конспект лекций




























2011г.


2

Введение


Целью данной дисциплины является получение студентом

знания:

на уровне представлений
:




о современном состо
янии и направлениях развития аппаратных и программных
средств обработки информации в навигационных комплексах;



о специфических условиях
разработки, отладки и сопровождения программного
обеспечения встраиваемых вычислительных систем
;

на уровне воспроизведен
ия
:




методик
и

разработки и отладки программного обеспечения типичных современных
микропроцессоров;

на уровне понимания
:




современны
х

средств разработки и отладки программного обеспечения типичных
современных микропроцессоров
;

умения:



разрабатывать програм
мное обеспечение для встроенных вычислительных систем
навигационных комплексов;



применять интегрированную среду разработки и отладки программного обеспечения
при решении практических задач
;



использовать специальную литературу и другие информационные данные

(в том
чи
с
ле на иностранных языках);

навыки:



разработки и отладки программного обеспечения типичных современных
микропроцессоров с применением интегрированной среды разработки и отладки ПО.



работы с технической документацией, технической литературой, спр
авочниками и
другими информационными источниками
.


Получение перечисленных знаний, умений и навыков достигается в процессе
работы в конкретной аппаратной и программной среде, в качестве которой
рассматривается:


-

на аппаратном уровне


цифровой сигнальный

контроллер

TMS
320
F
28335;


-

на программном уровне
-

интегрированная среда программирования
и отладки
Code

Composer

Studio
.

Курс состоит из трех разделов, первый из которых посвящен изучению

цифрового
сигнального контроллера

TMS
320
F
28335
, второй
-

интегрир
ованн
ой

сред
ы

программирования
и отладки
Code

Composer

Studio
.

В третьем разделе в процессе
выполнения шести лабораторных работ студентом осваивается методика
программирования и отладки вычислительных средств информационно
-
навигационных
систем.













3

Лекция №1

Цифровые сигнальные процессоры. Архитектура, особенности
организации вычислений. Направления повышения производительности (
VLIW
,
SIMD
)



1.1

Архитектура, особенности организации вычислений
.


Цифровой сигнальный процессор

(ЦСП)



проблемно
-
ориенти
рованный процессор,
предназначенный для выполнения обработки данных и решения задач анализа и
управления «оцифрованных» реальных сигналов в реальном масштабе времени, в том
числе с использованием алгоритмов
цифровой обработки сигналов (
ЦОС
)
.


Основными мет
одами повышения производительности, наряду с традиционным
повышением тактовой частоты, являются структурные и архитектурные решения


Многие алгоритмы ЦОС содержат
МАС
операции
, содержащие перемножение двух
сомножителей и добавление произведения к предыдуще
й сумме. Для быстрого
выполнения этой операции процессор должен обеспечивать выборку команды, двух
операндов и выполнение умножения и сложения в одном машинном цикле.


Архитектура шин

Архитектура фон Неймана


программа и данные хранятся в общей памяти, ко
торая
подключается к процессору шинами адреса и данных.

Гарвардская архитектура


программа и данные хранятся в отдельных блоках памяти,
которые

подключается к процессору шинами адреса и данных, отдельными для памяти
программ и памяти данных.

Шина памяти д
анных может иметь увеличенную ширину для
одновременной выборки нескольких операндов.


Конвейерное выполнение команд



одновременное выполнение различных этапов
нескольких последовательных команд, реализуемое в различных функциональных
устройствах ЦСП. Числ
о этапов
m

различно у разных ЦСП и называется глубиной
конвейера (доходит до 11). Пример для 4 этапов: выборка команды, декодирование
команды, подготовка операндов, выполнение операции Время выполнения одного этапа
называется командным циклом, который раве
н одному, иногда двум периодам тактовой
частоты процессора.

При отсутствии конвейера команда выполняется за
m

циклов. При
наличии конвейера в каждом цикле выполняются
m

команд
-

разные этапы, и каждый
цикл содержит выполнение последнего этапа, какой
-
либо к
оманды.

Возможность конвейеризации обеспечивается независимостью работы различных узлов
процессора.

Условием правильной работы конвейера является равная длина команд и линейный
характер программы, условные переходы могут нарушать работу конвейера, поскольк
у
следующая команда определяется после выполнения последнего этапа команды условного
перехода.


Аппаратная реализация программных функций

Наряду с арифметико
-
логическим устройством ЦСП содержа дополнительные
функциональные устройства, способные работать од
новременно с АЛУ и аппаратно
реализовывать вычисление функций.

Это прежде всего умножитель
, реализующий операцию умножения за один цикл.


Другим распространенным устройством является сдвигатель, осуществляющий сдвиг
операнда на некоторое число разрядов, н
апример, при сложении двух чисел с плавающей
точкой.



4

Кроме того многие ЦПС имеют дополнительные АЛУ, вспомогательные АЛУ,
увеличенное число аккумуляторов
, регистровые файлы
и т.п. Примером аппаратных
устройств являются также генераторы адресов, счетчики ц
иклов и т.п. элементы
устройств управления.

Дальнейшее развитие этот подход получил в многоядерных процессорах.


Специфические команды ЦОС

Комбинированные и специализированные команды для выполнения нескольких
связанных операций в одном цикле, а также для

выполнения операций над несколькими
операндами.


1.2
Направления повышения производительности (
VLIW
,
SIMD
)


Повышение производительности можно достичь:

-

увеличением количества операций, выполняемых одновременно:

-

увеличением количества одновременно обра
батываемых данных;

-

увеличением количества одновременно выполняемых команд.


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


Увеличение количества одновременно обрабатываемых данных (
SIMD
)
обеспечивается
наращиванием разрядности
операционных устройств и шин с возможностью
одновременного исполнения одной и той же операции над несколькими
операндами с
меньшей разрядностью


У
величение количества одновременно выполняемых команд

(
VLIW
)

обеспечивается
наращиванием разрядности суперкоманды, включающей несколько простых команд, и
числа функциональны устройств, операционных модулей, выполняющих от
дельные
простые команды


Суперскалярные процессоры работают на потоке простых команд и реализуют режим
VLIW
, когда появляется такая возможность в потоке команд и данных. Решение о режиме
работы принимает предпроцессор на основе анализа выбираемых команд и
данных
.




Лекция


2

ЦСП

фирмы

Texas Instruments.
Семейства, области применения,
особенности архитектуры. Цифровой сигнальный контроллер
TMS
320
F
28335. Блок
-
схема контроллера, назначение основных узлов. Карта памяти контроллера»


2.1
ЦСП фирмы
Texas

Instr
uments
. Семейства, области применения, особенности
архитектуры.


Первый в мире цифровой сигнальный процессор был разработан в 1982 году
фирмой
Texas

Instruments
, которая в настоящее время

является мировым лидером
в этом
секторе микропроцессорной техники.
Выпускаемые фирмой ЦСП делятся на семейства,
ориентированные на определенные области применения. Образующая семейство группа
ЦСП, как правило, объединена общим вычислительным ядром, а различается объемом
памяти и набором периферийны устройств. Среди семейс
тв ЦСП выделим три:

с
емейство
TMS
320
С5000, семейство
TMS
320С6000 и семейство
TMS
320С2000.


5

Процессоры семейства
TMS
320
С5000
ориентированы на применение в мобильных
устройствах

с аккумуляторным питанием и отличаются повышенной экономичностью.
Семейство
объединяет
16/32 разрядные
модели

с фиксированной точкой, в состав
периферии входят популярные интерфейсы мобильных устройств, в частности
USB
.

Процессоры семейства
TMS
320
С
6
000
ориентированы на применение
в
высокопроизводительных системах многоканальной о
бработки информации.

Семейство
объединяет 32 разрядные модели
как
с фиксированной
так и с плавающей
точкой,
процессоры рассчитаны на работу с внешней памятью, встроенная память используется
как кэш,
в состав периферии входят интерфейсы
с высокой пропускно
й способностью
:

Serial

RapidIO

со скоростью передачи до 5 Гигабит в секунду;
PCI

Express

со скоростью
передачи до 5 Гигабит в секунду;
HyperLink

со скоростью передачи до 50 Гигабит для
связи с аналогичными процессорами;

со скоростью передачи до 1
Гигабит в
секунду. В состав семейства входят одно
-

и многоядерные микросхемы с
производительностью от единиц до нескольких сотен миллиардов операций в секунду.

Процессоры семейства
TMS
320
С2000
называются цифровыми сигнальными
контроллерами,

ориентированы
на применение
в системах сбора и обработки
информации, системах автоматики и высокопроизводительных системах управления, в
частности электродвигателями. Семейство объединяет 16/32 разрядные модели как с
фиксированной так и с плавающей точкой, процессоры
с
одержат богатый набор
встроенной периферии, используемой в системах управления, а также широкий набор
интерфейсов.


2.2
Цифровой сигнальный контроллер
TMS
320
F
28335


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

-

6 входов захвата внешних событий
(
Event

Capture
)
;

-

8 32
-
разрядных таймеров;

-

2 интерфейса энкодеров.



Последовательные порты:

-

два модуля интерфейса
CAN
;

-

три модуля интерфейса
SCI

(
UART
)
;

-

два модуля интерфейса
McBSP
;

-

SPI

модуль;

-

модуль
I
2С;



16
-
канальный 12
-
разрядный АЦП с временем преобразования 8
0 нс

-

мультиплексор 2х8 каналов;

-

два устройства выборки/хранения;

-

возможность одновременного преобразования двух сигналов;

-

внутренний или внешний источник опорного напряжения.


2.2.2

Краткое описание основных узлов и блоков


1

CPU



кроме стандартного

ядра семейства
F
28хх содержит блок плавающей точки,
обеспечивающий с одиночной точностью работу в формате
IEEE
-
754
. Одинаково
эффективен при решении как задач управления, так и математических, причем
последние могут программироваться на С/С++. Наличие МА
С
-
блока с форматом
32х32 и 64
-
разрядным регистром результата позволяет успешно поддерживать
высокую точность вычислений. Быстрая реакция на прерывания с автоматическим
контекстным сохранением критических регистров обеспечивает обслуживание
асинхронных внеш
них событий с минимальной задержкой. Имеет 8
-
уровневый
конвейер с конвейеризованным доступом к памяти, что позволяет эффективно
работать с небыстрой памятью.


2

Шина памяти
-

Гарвардская архитектура шин. Шина памяти
CPU

включает:

-

шину чтения программ с 22

адресными линиями и 32 линиями данных;

-

шину записи данных с 32 адресными линиями и 32 линиями данных;

-

шину чтения данных с 32 адресными линиями и 32 линиями данных.

Такая система шин обеспечивает работу с 32
-
разрядными числами с
одновременным (в преде
лах одного такта) извлечением команды, чтением и
записью данных. Вся периферия подключенная к шине памяти
CPU

имеет
повышенный приоритет и между собой ранжирована следующим образом в
порядке понижения приоритета:



Приоритет

Доступ к памяти

Примечание

Наи
высший

Запись данных

Одновременная запись данных и
программ невозможна


Запись программ


Чтение данных



Чтение программ

Одновременное чтение программ и
выборка команды невозможны

Низший

Выборка команд


3

Шины периферии

В процессоре сформировано три в
ида шин, объединяющих имеющиеся на
кристалле периферийные устройства в группы (фреймы).

Периферийный
фрейм

Per
.
Frame

1
объединяет устройства, подключенные к 32
-
разрядной шине периферии (32
-
bit

peripheral

bus
).

Периферийный
фрейм

Per
.
Frame

2
объединяет ус
тройства, подключенные к 16
-
разрядной шине периферии (16
-
bit

peripheral

bus
).



7




Рис.2.1.
Блок
-
схема цифрового сигнального контроллера
TMS
320
F
28335


Периферийный
фрейм

Per
.
Frame

3
объединяет устройства, подключенные к 32
-
либо 16
-
разрядной шине периферии

с прямым доступом к памяти (32
-
bit

peripheral

bus

DMA

accessible
).

Каждая из шин содержит 16 адресных линий, 16/32 линий данных и связанные с
ними линии управляющих сигналов.


8

Периферийные шины мостами связаны с шиной памяти
CPU
.

Периферийный
фрейм

Per
.
Fr
ame

0
объединяет устройства,
непосредственно
подключенные к шине памяти
CPU

(
Memory

Bus
).


4

Поддержка контроля и анализа выполнения программы в реальном времени

В процессоре реализован технологический интерфейс
JTAG

по стандарту
IEEE

1149.1
. Кроме того, под
держивается режим реального времени посредством
которого содержимое ячеек памяти, периферии и регистров может быть
модифицировано в процессе исполнения программы или обслуживания
прерываний. Возможен также режим одношагового прохода программы с
обслуживани
ем прерываний в реальном времени.


5

Внешний асинхронный параллельный интерфейс содержит 20 адресных линий, 32
линии данных и три линии чип
-
селекта для выбора устройств в одной из зон 0, 6
или 7 пространства внешней памяти. Для каждой из трех зон может быть

индивидуально запрограммированы число тактов ожидания и временные
параметры строб сигналов. Это позволяет организовать обслуживание внешних
устройств с различным быстродействием без дополнительных аппаратных затрат.


6

Flash
-
память содержит 256К 16
-
разрядн
ых слов, разделенных на 8 секторов по
32Кх16 в каждом. Пользователь может производить стирание, запись и проверку
информации в одном из секторов, не затрагивая остальные сектора. Однако
невозможно выполнять стиранием/записью одного из секторов программой,
хранящейся в другом секторе
Flash
-
памяти. Имеется специальный конвейер для
ускорения обмена с
Flash
-
памятью.

В процессоре также содержится блок ОТР памяти объемом 1Кх16 с однократным
программированием.

Как
Flash
-
память, так и ОТР отображены на карте памят
и как в пространстве
программ, так и в пространстве данных, что позволяет использовать их и для
исполняемых программ и для хранения данных.


7

M
0,
M
1
SARAMs



два блока памяти по 1Кх16 в каждом. Указатель стека при
ресете устанавливается на начало блока М1.
Оба блока подобно остальным блокам
памяти отображены на карте памяти как в пространстве программ, так и в
пространстве данных, что позволяет использовать их и для исполняемых программ
и для хранения данных. Вообще вся память процессора отображена для
прогр
аммиста на единой карте, что облегчает написание программ на языке
высокого уровня. Распределение информации в пространства программ и данных
осуществляется линкером.


8

L
0,
L
1
,

,
L
7

SARAMs



восемь блоков памяти по 4Кх16 в каждом с независимым
доступом для

уменьшения глубины конвейера. Все блоки отображены на карте
памяти как в пространстве программ, так и в пространстве данных, блоки
L
4
,

,
L
7

доступны по прямому доступу к памяти.


9

Загрузочное ПЗУ
(
Boot

ROM
)


запрограммировано при изготовлении кристалла и

содержит программную поддержку первоначальной загрузки, которая может
производиться из внешней и внутренней памяти или по различным интерфейсам.
Код режима загрузки устанавливается схемным подключением
4
выводов
процессора

(
GPIO
84


GPIO
87)
.



9

10

Код секретно
сти


128
-
разрядный код, программируемый пользователем и
хранящийся во
Flash
-
памяти. Единственный модуль секретности обеспечивает
предохранение от чтения
Flash
-
памяти, блоков ОТР и

L
0,
L
1
,
L
2
,
L
3

SARAM

через
JTAG
-
порт, исполнения программ из внешней памя
ти и попытки загрузки
нежелательного ПО, предназначенного для экспорта содержимого засекреченных
блоков памяти.


11

Блок расширения периферийных прерываний (
PIE
)


может обслуживать до 9
6

источников периферийных прерываний, мультиплексируя их к небольшому чис
лу
входов
CPU
. 58
прерываний из
96
используются периферией процессора. Эти 96
прерываний объединяются в группы по 8 и выход каждой из групп подключается к
одному из 12 входов
INT
1

INT
12
прерываний
CPU
.

Каждое из 96 прерываний
поддерживается собственным век
тором, вектора прерываний хранятся в
выделенном блоке памяти (
PIE

Vector



RAM
)
. На сохранение текущей
информации и вызов процедуры обработки прерывания затрачивается 9
процессорных циклов.


12

Внешние прерывания


поддерживаются 8 маскируемых внешних прерыва
ний
(
XINT
1


XINT
7,
XNMI
)
. Параметры сигналов запроса прерываний (фронт, спад)
настраиваются индивидуально.

XINT
1
,

XINT
2
,
XNMI

имеют собственный 16
-
разрядный счетчик, который позволяет делать точную отметку времени
прерывания. Внешние прерывания не имеют о
днозначной привязки к
определенным выводам микросхем,

XINT
1
,

XINT
2
,
XNMI

могут быть запрограммированы на выводы,
соответствующие
GPIO
0 ….
GPIO
31
,
XINT
3



XINT
7

могут быть
запрограммированы на выводы, соответствующие
GPIO
32

….
GPIO
63.


13

Генератор и система
ФАПЧ
(
PLL
)
. Процессор может получать тактовые импульсы
от внешнего генератора или от внутреннего, к которому необходимо подключить
внешний кварцевый резонатор. Частота тактовых импульсов может повышаться (от
1 до 9 раз) или понижаться (в 1, 2, 4 раз) сист
емой ФАПЧ даже в процессе
выполнения программы, обеспечивая минимальный режим энергопотребления.

Коэффициент повышения и понижения частоты устанавливается записью кода в
соответствующие поля регистров

PLLCR

и
PLLSTS
.


14

Тактовая частота периферии. Тактовые и
мпульсы подаются на каждый блок
периферии индивидуально и могут быть отключены от неиспользуемых блоков.
Тактовая частота последовательных портов (кроме
I
2
C

и
eCAN
) может быть
изменена относительно тактовой частоты процессора.


15

Сторожевой таймер


пользова
тельская программа должна регулярно сбрасывать
счетчик сторожевого таймера с периодом, не превышающим время заполнения
счетчика, в противном случае при заполнении счетчика выработается
Reset

процессора. При необходимости сторожевой таймер может быть отключ
ен.


16

Режимы пониженного потребления:

-

IDLE

(перерыв в работе)
:
тактовые импульсы поданы только на
используемые в блоки; выход из режима по прерыванию от дежурных
блоков или сторожевого таймера;

-

STANDBY

(горячий резерв)
:

генератор и
PLL

функционируют, н
а
остальные блоки тактовые импульсы не подаются; выход из режима по

10

внешнему прерыванию, работа начинается с такта, следующего за тактом, в
котором выявлено прерывание;

-

HALT

(остановка)
:

внутренний генератор выключен


режим
минимального потребления; вых
од из режима по сигналу
Reset
.



Рис.2.2.
Карта памяти цифрового сигнального контроллера
TMS
320
F
28335




11

17

Периферия в процессоре разделена на четыре группы, которые на карте памяти
соответствуют 4 фреймам, в которые входят следующие группы регистров:

Фрейм

Блок

Регистры

PF0

PIE

Таблица векторов, регистры управления
прерывания

Flash

Регистры тактов ожидания

XINTF

Регистры внешнего интерфейса

DMA

Регистры прямого доступа к памяти

Timers

Регистры таймеров
CPU

CSM

Регистры ключа модуля секретности

A
DC

Регистры результата АЦП

PF1

eCAN

Регистры почтового ящика и управляющие

GPIO

Регистры конфигурации и управления

ePWM

Регистры и модуль ШИМ

eCAP

Регистры и модуль захвата

eQEP

Регистры и модуль энкодера

PF2

SYS

Регистры управления системой

SCI

Регистры управления и
RX
/
TX

SPI

Регистры

управления и
RX
/
TX

ADC

Регистры

статуса, управления и результата

I2C

Регистры и модуль

XINT

Регистры внешних прерываний

PF3

McBSP

Регистры буферированного порта

ePWM

Регистры и модуль ШИМ



18

Мультипл
ексор вход/выходов общего назначения
GPIO

предназначен для
программирования функций выводов микросхемы, которые могут использоваться
периферией или определены как
GPIO
. Каждый вывод программируется
индивидуально. По сигналу
Reset

выводы
GPIO

конфигурируютс
я как входы.


19

Таймеры
CPU



32
-
разрядные с предустановкой периода, имеют на входе 16
-
разрядный делитель для программирования частоты счетных импульсов.
Содержимое таймера декриментируется импульсами с установленной частотой,
при достижении нуля вырабатывае
тся прерывание, а в счетчик таймера
автоматически загружается установленное 32
-
разрядное значение периода.
Таймеры подключены к следующим входам прерывания
CPU:

Таймер

Вход прерывания

Примечания

Timer 0

Через блок
PIE

Общего назначения

Timer
1

INT13

Обще
го назначения

Timer
2

INT14

Резервирован для ОСРВ, если она не
используется


общего назначения


20

Периферийные устройства для управления:

-

ePWM



модуль обеспечивает генерацию независимых или комплементарных ШИМ
сигналов с заданными мертвыми зонами на фрон
тах. Модуляция части сигналов
обеспечивается с повышенным разрешением. Регистры модуля доступны по шине
DMA

для снижения перегрузки шин при обслуживании этого модуля.

-

eCAP



использует 32
-
разрядную временную шкалу и регистры для захвата до 4
внешних событи
й. Может также конфигурироваться на выработку дополнительных
ШИМ
-
сигналов.


12

-

eQEP



включает 32
-
разрядный счетчик положения, поддерживает измерения при
низких скоростях с использованием устройств захвата и привысоких скоростях с
использованием 32
-
разрядного
таймера.

-

ADC



12
-
разрядный АЦП обслуживает 16 несимметричных каналов. Содержит два
устройства выборки/хранения для одновременной обработки пары сигналов. Регистры
модуля доступны по шине
DMA

для снижения перегрузки шин при обслуживании
этого модуля.


21

Посл
едовательные порты:

-

eCAN



соответствует стандарту
CAN

2
.
0
B
, содержит почтовый ящих на 32 адреса,
обеспечивает фиксацию времени получения сообщения.

-

M
cB
SP



многоканальный буферированный последовательный порт подключается к
линиям
E
1/
T
1

кодека модема или с
терео ЦАП. Регистры приема и передачи блока
доступны по шине
DMA

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

-

SPI



высокоскоростной синхронный последовательный порт, который обеспечивает

передачу и прием последовательности двоичных символов (до 16 бит) с заданной
частотой. Используется обычно для связи с внешней периферией или другим
процессором. Связь между несколькими устройствами обеспечивается работой в
режиме ведущего или ведомого. В
ключает 16
-
уровневое
FIFO

на прием и передачу.

-

SCI



двухпроводный последовательный асинхронный порт (часто называют
UART
)
.
Включает 16
-
уровневое
FIFO

на прием и передачу.

-

I
2
C



обеспечивает связь с другими устройствами, подключенными к двухпроводной

I
2
C

ш
ине и соответствующими стандарту
I
2
C

версии 2.1. Модуль содержит 16
-
уровневое
FIFO

на прием и передачу.


22

Карта

памяти

Распределение адресного пространства процессора зафиксировано в его карте памяти
,
в которой определены адреса всех функциональных блоков п
роцессора.

Особенности карты памяти
TMS
320
F
28335
:

-

Размер блоков фиксирован и не может быть изменен пользователем;

-

Периферийные фрэймы
Per
.
Frame

0, 1, 2, 3

предназначены только для данных и
недоступны для пользовательских программ

-

В области адресов 0х38 00
80


0х38 008
F

хранится процедура калибровки АЦП


пользователем не программируется

-

Если в проекте
CAN

интерфейс не используется, то его область оперативной
памяти может быть использована как память общего назначения.

-

Области карты памяти имеют различное в
ремя доступа, измеряемое числом тактов
ожидания. Наиболее быстрый обмен осуществляется без тактов ожидания, обмен с
другими областями может содержать один
-
два такта ожидания, для некоторых
областей, например, внешней памяти число тактов ожидания программир
уется. Такты
ожидания по чтению и по записи для одной и той же области памяти могут
различаться.

-

Ряд областей памяти защищены от случайной записи после конфигурирования
(
EALLOW
).









13

Лекция №3

«Цифровой сигнальный контроллер
TMS
320
F
28335.

Подсистемы об
щего назначения (тактовый генератор, прерывания, таймеры,
входы/выходы общего назначения, внешние интерфейсы, прямой доступ к памяти)»


3.
1 Вход/выходы общего назначения


3.
1.1 Общая характеристика


Процессор имеет 88 выводов, которые могут быть сконфигури
рованы как
вход/выходы общего назначения
GPIO
.

Выводы поименованы в росписи контактов
собственными именами
GPIO
0…
GPIO
87. Кроме функции
GPIO

каждый из выводов
может быть подключен к периферийным сигналам (число возможных подключений от
одного до трех). На
значение выводам функций и задание их свойств осуществляется
посредством регистров управления конфигурацией
GPIO
. Конфигурирование выводов и
их переключение осуществляется блоком
GPIO

MUX

под управлением информации,
записываемой в регистры
GPxMUXn
.

На рис.
3.1 приведена схема
конфигурирования
первой группы
вход/выходов общего назначения
GPIO
0

GPIO
27



Рис.3.1. Схема
конфигурирования

вход/выходов общего назначения
GPIO
0

GPIO
27




Если вывод конфигурируется с функцией цифрового вх
ода или выхода, в регистре
GPxDIR

для него устанавливается направление передачи сигнала. Для цифровых входов
можно также в регистрах
GPxQSELn
,
GPACTRL
,
GPBCTRL

установить дополнительную
обработку для устранения нежелательного шума.

3.
1.2 Рекомендации по ко
нфигурации выводов:


14


Шаг 1: при проектировании системы рассмотрите множество выводов с их
функциями и спланируйте, какие из них вы будете использовать и в каком качестве.


Шаг 2: подключите или отключите встроенные резисторы подтяжки в зависимости
от выбра
нной для вывода функции, записав 0 или 1 в регистры
GPAPUD
,
GPBPUD
,
GPCPUD
. (
Примечание


по умолчанию резисторы подтяжки у
GPIO
0


GPIO
11
отключены, у всех остальных выводов


включены).

Шаг 3:

если вывод используется в качестве входа, определите его свой
ства в
регистрах
GPACTRL
,
GPBCTRL
,
GPAQSEL
1
,
GPAQSEL
2,
GPBQSEL
1
,
GPBQSEL
2
.
(
Примечание


по умолчанию все входы синхронизированы только сигналом
SYSCLKOUT
)

Шаг 4:

определите в регистрах
GPxMUXn

функцию вывода:
GPIO

или
периферийный сигнал
. (
Примечание


по

умолчанию сигналом
Reset

все
GPIO

выводы
конфигурируются как вход/выходы общего назначения)

Шаг 5:

если вывод используется в качестве
GPIO
, определите направление его
передачи в регистрах
GPADIR
,
GPBDIR
,
GPCDIR
.
(
Примечание


по умолчанию все
GPIO

выводы
конфигурируются как входы). Чтобы изменить конфигурацию на выход, сначала
загрузите необходимые установки в регистры
GPxCLEAR
,
,
GPxTOGGLE

для
выходного

триггера
-
защелки, только после этого измените направление вывода в
регистрах
GPADIR
,
GPBDIR
,
GPCD
IR
.
(
Примечание


по сигналу
Reset

выходные
триггеры
-
защелки для всех выводов очищаются).

Шаг 6: определите в регистре
GPIOLPMSEL
,

какие выводы, если это необходимо,
будут выводить контроллер из режима с пониженным энергопотреблением.

Шаг 7:

определите в р
егистрах
GPIOXINTxSEL
,
GPIOXNMISEL

источники для
прерываний
XINT
1


XINT
7,
XNMI
.
Для каждого из прерываний можно определить один
из сигналов порта А (
XINT
1


XINT
3) или

порта В (
XINT
4



XINT
7
). Полярность сигнала
прерывания устанавливается в регистрах
XINT
nCR

и
XNMICR
.

3.
1.3 Регистры, используемые для конфигурирования
GPIO
:

Каждый порт имеет отдельный набор регистров (
x

=
A
,
B
,
C
), в которых каждый
бит соответствует отдельному выводу.

GPxDAT


Значение этого бита будет отображаться в состояние 0 или 1 на дан
ном
выводе, если он сконфигурирован, как
GPIO
.




используется для установки вывода в состояние 1, для чего в
соответствующий бит регистра записывается 1, запись 0 не дает эффекта,
поскольку по умолчанию в регистрах все биты в состоянии 0.

GPxCLEAR

-

используется для установки вывода в состояние 0, для чего в
соответствующий бит регистра записывается 1, запись 0 не дает эффекта,
поскольку по умолчанию в регистрах все биты в состоянии 0.

GPxTOGGLE

-

используется для переключения вывода в противоположно
е
состояние, для чего в соответствующий бит регистра записывается 1, запись 0 не
дает эффекта, поскольку по умолчанию в регистрах все биты в состоянии 0.

3.
1.4 Квалификация входов

Выводы, конфигурированные как входы, могут иметь различные режимы
синхрониза
ции. Входы
GPIO

могут быть квалифицированы для синхронизации тактовыми
импульсами
SYSCLKOUT

или окном выборки. Для выводов, конфигурированных как
входы периферии, возможны асинхронный режим, синхронизация
SYSCLKOUT

или
окном выборки. Тип синхронизации зада
ется в регистрах
GPAQSEL
1
,
GPAQSEL
2,
GPBQSEL
1
,
GPBQSEL
2
.

асинхронный режим


используется для периферии, где синхронизация не
требуется, либо само периферийное устройство ее обеспечивает;

синхронизация
SYSCLKOUT

-

по умолчанию сигналом
Reset

все
GPIO

вывод
ы
устанавливаются

в этот режим, при синхронизации может возникнуть задержка до одного

15

периода тактовой частоты между срабатыванием внешнего устройства и изменением
входного сигнала контроллера;

синхронизация окном выборки


используется для удаления нежел
ательного шума,
для чего входной сигнал сначала синхронизируется
SYSCLKOUT
, а затем
квалифицируется в
течение

заданного числа периодов выборки, прежде чем передается на
вход контроллера. Период выборки задается битами
QUALPRDn

в регистре
GPxCTRL
,
причем ср
азу для 8 входов. Число периодов выборки устанавливается в регистрах
GPAQSEL
1
,
GPAQSEL
2,
GPBQSEL
1
,
GPBQSEL
2

и может быть либо 3 либо 6. Если
информация на входе не изменяется в течение окна выборки, она передается на вход
контроллера.


3.
2 Таймеры
CPU


3.
2
.1
CPU

обслуживают три таймера:
Timer

0,
Timer
1,
Timer
2.
Схема таймера приведена
на рис 3.2.
Таймеры 32
-
разрядные с предустановкой периода, имеют на входе 16
-
разрядный делитель для программирования частоты счетных импульсов. Период таймера
задается в реги
стре
PRD
:
PRDH
. Значение периода перегружается в счетчик, состояние
которого отображается регистром
TIM
:
TIMH
. Содержимое счетчика

декриментируется
импульсами с частотой тактовых импульсов процессора, поделенной на число,

на 1
большее записанного в регистр
е
TDDR
. Содержимое
TDDR

переписывается в счетчик
PSC

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



Рис.3.2. Блок
-
схема таймера
CPU


3.
2.2 Таймеры подключены к следующим входам прерывания
CPU
:

Таймер

Вход прерывания

Примечания

T
imer 0

Через блок
PIE

Общего назначения

Timer
1

INT13

Общего назначения

Timer
2

INT14

Резервирован для ОСРВ, если она не
используется


общего назначения



3.
3 Внешний интерфейс


3.
3.1 Описание функционирования


16


Внешняя память размечена на карте памяти
в трех фиксированных зонах. Каждой
зоне соответствует свой чип
-
селект сигнал, который переключается
,

когда идет
обращение к данной зоне. Для работы с внешней памятью предварительно должны быть
конфигурированы выводы
GPIO
.



Каждая из трех зон может быть за
программирована на индивидуальные число
тактов ожидания, установки строб
-
сигнала, время удержания информации, причем для
записи и чтения эти времена могут быть установлены различными. Перечисленные
параметры доступа конфигурируются в соответствующих регист
рах
XTIMINGx
.
За базу
при формировании временных интервалов принимается сигнал
XTIMCLK
, частота
которого одинакова для всех зон и может быть равна или в два раза ниже частоты
тактовых импульсов контроллера
SYSCLKOUT
.

По умолчанию
XTIMCLK

выключен, для
вклю
чения необходимо записать 1 в бит
XINTFENCLK

регистра
PCLKCR
3
.


Каждая зона может быть отконфигурирована для использования с 16
-

или 32
-
разрядной шириной шины данных.


Зона 0


маленькая, содержит 8К адресов, зоны 1 и 2 содержат по 1М адресов
каждая. Для
обращения к внешней памяти в зоне 1 контроллер вырабатывает адреса от
0
x
00000
до

0
x
00
FFF

одновременно с чип
-
селектом
XZCS
0
,

для обращения к внешней
памяти в зонах 6 и 7
-

адреса
0
x
00000
до

0
xFFFFF

одновременно с чип
-
селектами
XZCS
6
,

XZCS
7
, соответственно.


Все зоны имеют возможность прямого доступа к памяти, позволяя пересылку
информации в или из зоны без отвлечения процессора от решения других задач.

3.
3.2 Конфигурирование интерфейса внешней памяти

Перед изменением конфигурации интерфейса внешней памяти в
се обмены с ней
должны быть завершены и буфер очищен.

Выбор частоты
XTIMCLK

осуществляется записью 1 в бит
XTIMCLK

регистра
XINTCNF
2.
По умолчанию частота
XTIMCLK

устанавливается в два раза ниже частоты
SYSCLKOUT
.

Обращение к внешней памяти начинается по п
ереднему фронту выходных тактов
внешней памяти
XCLKOUT
, частота которых по умолчанию устанавливается в два раза
ниже частоты
XTIMCLK
, при записи 1 в бит
CLKMODE

регистра
XINTFCNF
2

частоты
уравниваются.

Для снижения шума выдача
XCLKOUT

может быть отключена
записью 1 в бит
CLKOFF

регистра
XINTCNF
2
.

Процесс обращения к любому адресу в
INTF

зоне может быть разбит на три части:
начало
(
lead
),
рабочая часть
(
active
)

и хвост

(
trail
)
. Число тактов
XTIMCLK

для каждой
части обращения может быть сконфигурировано в соо
тветствующей зоне регистра
XTIMING
, причем независимо для чтения и записи.


3.
4 Прямой доступ к памяти


3.
4.1 Прямой доступ к памяти (
DMA
)


это аппаратный метод передачи данных между
периферийными устройствами и/или памятью без вмешательства
CPU
. В сигна
льном
контроллере (как и в любом другом) при решении задач много времени затрачивается на
пересылку данных из внешней памяти во внутреннюю, из АЦП в память, от одного
периферийного устройства другому. Все эти пересылки идут по основным шинам под
управление
м
CPU
. Назначение модуля
DMA



взять на себя перечисленные транспортные
процедуры как в части управления, так и в части транспортного пути


шины
DMA
.



Модуль
DMA

содержит 6 каналов и работает по прерываниям и каждый канал
имеет собственное прерывание чер
ез блок
PIE
, чтобы сообщить
CPU

о начале и
окончании пересылки

(см.рис 3.3)
. Источниками прерываний могут служить:


-

секвенсоры 1 и 2 АЦП;


-

прием и передача через многоканальный буферированный порт А и В;


17


-

XINT
1
-

XINT
7

и

XINT
13
;

-

таймеры
CPU
;

-

сигн
алы
ePWM
;

-

программа.


Рис.3.
3
. Блок
-
схема системы
DMA


DMA

связывает между собой следующие устройства:

-

Блоки

SARAM L4
-
L7;

-

XINTF
;

-

Регистры результата АЦП, размеченные на
memory

bus
;

-

Буферы приема и передачи модулей
McBS
P
-
A

и
McBSP
-
A
;

-

Регистры
ePWM
1
-
6
, размеченные в фрейме 3.





3.
5

Система тактирования


3.5.1 К системе тактирования относятся тактовый генератор, блок повышения/понижения
частоты, система управления частотой периферийных блоков,
система пониженного
энерг
опотребления и сторожевой таймер.

3.5.2
Для выработки тактовых импульсов как правило используются генераторы с
кварцевой стабилизацией частоты.
Для тактирования ц
ифрово
го

сигнальн
ого

контроллер
а

TMS
320
F
28335

может быть использован

как внешний генератор имп
ульсов, так и
встроенный в микросхему. В последнем случае к контактам Х1 и Х2 подключается
внешний кварцевый резонатор.

Частота тактовых импульсов генератора, которая, как
правило, ниже тактовой частоты процессорного ядра, далее повышается, в том числе в
д
робное число раз в блоке повышения/понижения частоты.


На рис.3.4 приведена блок
-
схема тактового генератора и блока изменения тактовой
частоты.

Тактовые импульсы генератора могут передаваться на выход напрямую или их
частота может повышаться. Умножение час
тоты тактовых импульсов осуществляется с
помощью системы фазовой автоподстройки частоты (ФАПЧ или
PLL
).
Частота тактовых
импульсов может повышаться системой ФАПЧ до 10 раз.
Коэффициент повышения

18

частоты устанавливается записью кода в соответствующие поля р
егистра

PLLCR
, при
этом частота импульсов на выходе системы ФАПЧ не должна превышать 300 МГц
.





Рис.3.
4
. Блок
-
схема тактового генератора

и блока изменения тактовой частоты


Выходные импульсы системы ФАПЧ передаются на выход
CLCIN

напрямую или
их частота

может
понижаться в 2

или

4 раз
а.

Коэффициент понижения частоты
устанавливается записью кода в соответствующие поля регистр
а

PLLSTS
.

Частота
тактовых импульсов
на выходе
CLCIN

может изменяться даже в процессе выполнения
программы, обеспечивая минимальный
режим энергопотребления.

3.5.3
Тактовая частота перифери
йных блоков может отличаться от тактовой частоты
процессорного ядра
. Тактовые импульсы подаются на каждый блок периферии
индивидуально и могут быть отключены от неиспользуемых блоков. Тактовая частота

последовательных портов (кроме
I
2
C

и
eCAN
) может быть изменена относительно
тактовой частоты процессора

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

3.5.4
В ц
ифрово
м

сигнальн
ом

контроллер
е

TMS
320
F
28335

предус
мотрено три режима
пониженного потребления:

-

IDLE

(перерыв в работе)
:
центральное процессорное ядро переводится в
экономичный режим,
тактовые импульсы поданы только на используемые в
этом режиме
блоки; выход из режима
по сигналу
Reset
,

по прерыванию от де
журных блоков или
сторожевого таймера;

-

STANDBY

(горячий резерв)
:

генератор
,

PLL

и сторожевой таймер
функционируют, на
CPU

и
остальные блоки тактовые импульсы не подаются; выход из
режима

по сигналу
Reset
,

по внешнему прерыванию,
приходящему с любого из
GPIO

порта А

или сторожевого таймера;
работа начинается с такта, следующего за тактом, в
котором выявлено прерывание;

-

HALT

(остановка)
:

внутренний генератор выключен


режим минимального
потребления; выход из режима по сигналу
Reset

или по внешнему преры
ванию,
приходящему с любого из
GPIO

порта А
.

3.5.5
Сторожевой таймер
предназначен для восстановления работы процессора в случае
его «зависания».
Блок
-
схема сторожевого таймера приведена на рис.3.5.
Основой
сторожевого таймера является 8
-
разрядный счетчик,
на вход которого подаются тактовые
импульсы после понижения их частоты. Понижение частоты осуществляется двумя
счетчиками, первый из которых делит частоту на 512, а коэффициент деления во втором
переменный, устанавливается записью числа в 3 младших разряда

регистра
WDPS
.

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

Для предотвращения сброса
пользовательская программа должна регулярно
сбрасывать счетчик сторожевого таймера с перио
дом, не превышающим время

19

заполнения счетч
ика
.
Сброс счетчика производится путем
поочередной
записи чисел
0х55
и 0хАА
в ключевой регистр
WDKEY
.

При необходимости сторожевой таймер может быть отключен.




Рис.3.
5
. Блок
-
схема сторожевого таймера



3.
6

Сист
ема прерываний


3.6.1
В ц
ифрово
м

сигнальн
ом

контроллер
е

TMS
320
F
28335

содержится много
периферийных блоков и каждый из них способен генерировать одно или несколько
прерываний в ответ на внешние события. Число таких прерываний превышает
возможности их обрабо
тки на уровне процессорного ядра, поэтому в процессоре создан
блок расширения прерываний.

Блок расширения периферийных прерываний (
PIE
)
служит для
мультиплексирования до 9
6

источников периферийных прерываний к небольшому числу
входов микропроцессорного яд
ра.

58
прерываний из
96
используются периферией
процессора.
96
мультиплексируемых
прерываний объединяются в группы по 8 и выход
каждой из групп подключается к одному из 12 входов
INT
1

INT
12
прерываний
CPU
.

Каждое из 96 прерываний поддерживается собственным

вектором, вектора прерываний
хранятся в выделенном блоке памяти (
PIE

Vector



RAM
)
.
Вектора прерываний


это
адреса, по которых хранятся подпрограммы обслуживания прерываний.
На сохранение
текущей информации и вызов процедуры обработки прерывания затрачив
ается 9
процессорных циклов.


На рис.

3.6 приведена блок
-
схема обработки мультиплексируемых прерываний.

На уровне периферии при возникновении необходимости прерывания бит флага
(
IF
) соответствующего прерывания устанавливается в регистре в выделенное для эт
ого
периферийного устройства место. Если соответствующее прерывание активировано (
IE
)
,
то периферийное устройство генерирует запрос прерывания в
PIE
.

На уровне
PIE

при поступлении запроса прерывания в
PIE

бит флага (
IF
)
соответствующего прерывания устанавл
ивается в регистре в выделенное для этого
периферийного устройства место. Если соответствующее прерывание активировано (
IE
)
,
проверяется соответствующий данной группе из 8 бит в регистре
PIEACKx
, чтобы

20

убедиться, что
CPU

готов работать с этой группой преры
ваний. Если да,

то
PIE

генерирует запрос прерывания в
CPU
, если нет, то
PIE

ждет готовности
CPU
.

На уровне
CPU

при поступлении запроса на прерывание устанавливается
соответствующий флаг
IFR

и при установке ядром соответствующего разрешения
IER

и
отсутствии

глобальной маски прерываний
INTM

CPU

приступает к подготовке
обслуживания прерывания. При этом сохраняются переменные прерываемой программы,
очищается конвейер, сохраняется адрес последней операции для возврата. Далее из
таблицы векторов прерываний извлек
ается адрес соответствующей подпрограммы
обслуживания прерывания и начинается ее исполнение, флаги
PIEFRx

автоматически
сбрасываются.


Рис.3.
6
. Блок
-
схема
обработки мультиплексируемых прерываний


3.6.2 Внешние прерывания


поддерживаются 8 маскируемых вне
шних прерываний
(
XINT
1


XINT
7,
XNMI
)
. Параметры сигналов запроса прерываний (фронт, спад)
настраиваются индивидуально.

XINT
1
,

XINT
2
,
XNMI

имеют собственный 16
-
разрядный
счетчик, который позволяет делать точную отметку времени прерывания. Внешние
прерывани
я не имеют однозначной привязки к определенным выводам микросхем,

XINT1
,

XINT
2
,
XNMI

могут быть запрограммированы на выводы,
соответствующие
GPIO
0 ….
GPIO
31
,
XINT
3



XINT
7

могут быть запрограммированы на
выводы, соответствующие
GPIO
32

….
GPIO
63.



Лекция

4

«Цифровой сигнальный контроллер
TMS
320
F
28335. Периферийные
устройства для систем управления
ePWM
,
eCAP
,
eQEP
. Аналого
-
цифровой
преобразователь. Устройство, программирование функций»


4.1

Модуль
eQEP

квадратурного датчика (
Encoder
)


4.1
.1

Цифровой сигнал
ьный контроллер
TMS
320
F
28335

содержит два модуля
eQEP
.

Модуль

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

4.1
.2 Инкрементный датчик угла
Encoder

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

21

импульсы, соответствующие изменению углового положения на 1/
N

часть оборота, где
N



число щелей на обороте. Как правило, в датчике располагает
ся также вторая пара
осветитель
-
приемник, сдвинутая относительно первой на ¼ шага, и третья, расположенная
напротив второй дорожки, состоящей всего из одной щели и соответствующей началу
отсчета.



Рис.
4
.
1
.
Инкрементный датчик у
гла


В линейных инкрементных датчиках дорожки щелей вытянуты в линию.

4.1
.3 Начало отсчета задается импульсом

QEPI
, длительность которого может
соответствовать различному угловому интервалу, а фронты привязаны или не привязаны к
фронтам сигналов
QEPA
,

QEP
B
.

Для определения направления движения анализируются сигналы, приходящие с
двух фотоприемников, эти сигналы квадратурны, т.е. сдвинуты по фазе на 90º, а

знак
разности фаз характеризует направление движения. У большинства датчиков при
движении по часовой с
трелке передний фронт сигнала
QEPA

опережает
QEPB

на четверть
периода.

4.1
.4 Модуль содержит следующие узлы

(см. рис.4.2)
:


-

программируемые входы
(
посредством
GPIO

MUX
)
;


-

квадратурный декодер

(
QDU
)
;


-

узел позиционного счетчика и управления измерением

положения

(
PCCU
)
;


-

квадратурный узел захвата фронтов для измерения низких скоростей

(
QCAP
)
;


-

формирователь эталонного временного интервала для измерения высоких
скоростей

(
UTIME
)
;


-

сторожевой таймер для выявления зависаний

(
QWDOG
)
.

4.1.5
Каждый моду
ль имеет 4 входа, подключаемые к выводам процессора посредством
GPIO

MUX
. В зависимости от подключаемого датчика модуль может быть настроен для
работы в одном из двух режимов:
Quadrature
-
clock Mode

или
Direction
-
count Mode


Пара входов
QEPA/XCLK and QEPB
/XDIR в режиме Quadrature
-
clock Mode

предназначена для приема сигналов прямоугольной формы QEPA and QEPB
, сдвинутых
на четверть периода.

По этим сигналам
квадратурный декодер

(
QDU
)

формирует сигнал
направления движения и последовательность счетных импуль
сов.

Если используется датчик угла, формирующий
сигнал направления движения и
последовательность счетных импульсов

(а не пару сигналов А и В), в
режиме Quadrature
-
clock Mode

эти сигналы подаются на п
ар
у

входов
QEPA/XCLK and QEPB/XDIR.

Вход
eQEPI
:
Index

or

Zero

Marker



служит для приема сигнала нулевой метки,
используемого для сброса позиционного счетчика в нулевое состояние при начале
каждого нового оборота.

Вход
QEPS:
Strobe Input



для приема строб
-
сигнала, информирующего о некотором
внешнем событии.



22

4.1.6
Узел позиционного счетчика и управления измерением положения

(
PCCU
)

п
о
сигнал
ам

направления движения и последовательност
и

счетных импульсов

формирует
код текущего углового положения
.

4.1.7
При вращении импульсы формируются с частотой, пропорционально
й скорости
вращения. Скорость может вычисляться контроллером по двум различным алгоритмам:

-

при больших скоростях
в узле
PCCU

подсчитывается число импульсов за
фиксированный интервал времени,
формируемый

формирователем эталонного
временного интервала для

измерения высоких скоростей

(
UTIME
)
;

-

при малых скоростях
формирователем эталонного временного интервала для
измерения высоких скоростей

(
UTIME
)

измеряется время, за которое происходит поворот
на фиксированный угол (например, на 1/
N

часть оборота).

В си
стемах, где вал вращается в широком диапазоне скоростей, используются оба
алгоритма, переход с одного
на другой происходит на заданной пороговой скорости.

4.1.8 На сторожевой таймер модуля
QWDOG
, который контролирует работу модуля,
поступают тактовые импул
ьсы SYSCLKOUT/64, после их деления на 64. Сброс счетчика
таймера осуществляется импульсами QCLK. При их

отсутствии в течение периода,
заданного в регистре QWDPRD,
флаг прерывания от
сторожево
го

таймер
а

устанавливается в QFLG[WTO].

Сторожевой таймер програм
мируется через регистр
QWDPRD
.


Рис.
4
.
2
. Блок
-
схема
модуля

eQEP


4.2

Модуль
eCAP

захвата внешних событий (
Capture
)


23


4.2
.1

Модуль востребован в системах, где требуется точная временная привязка внешних
событий, и

используется для

измерения частоты или периода импульсных сигналов,
длительности импульсов и временных интервалов между ними.

Модуль содержит 6
субмодулей захвата.

4.2
.2 Каждый субмодуль
(см.рис. 4.3)
представляет собой один полный канал захвата,
который может реагировать

на множество событий. Субмодуль имеет выделенный
входной вывод на микросхеме, содержит временную базу на основе 32
-
разрядного
счетчика и четыре 32
-
разрядных регистра для фиксации моментов времени,
соответствующих заданным событиям во входном сигнале, име
ет индивидуальную
настройку полярности (фронт/спад) для каждого из событий. Субмодули при
необходимости могут быть использованы для генерации ШИМ
-
сигналов.

4.2
.3 Входная последовательность импульсов может передаваться на анализ
непосредственно, может прор
еживаться в число раз от 2 до 62, заданных во входном
делителе.

4.2
.4 Субмодуль фиксирует в регистрах время событий (изменения уровней входного
сигнала) циклически или замораживает (в режиме
one
-
shot
)
состояние регистров после
прохождения заданного числа (
от 1 до 4) событий.


24


Рис.4.
3
. Блок
-
схема
субмодуля

eCAP


4.2
.5 Субмодуль генерирует прерывание по любому из семи событий: 4 входных,
переполнению счетчика и (в режиме ШИМ) по переходам ШИМ

сигнала.


4.3

Модуль
ePWM

широтно
-
имп
ульсной модуляции


4.3
.1

Модуль предназначен для выработки сложных ШИМ
-
сигналов с минимальным
отвлечением ресурсов
CPU
.

Модуль содержит 12 субмодулей, 6 из которых могут
использоваться в режиме с повышенным разрешением. Все модули охвачены единой
синхрониз
ацией и могут работать как поодиночке, так и в системе.

4.3
.2 Каждый субмодуль представляет собой один полный канал ШИМ, который
формирует два выходных сигнала:

E
PWM
xA

и

E
PWM
xB
.

Субмодуль содержит
временную базу на основе 16
-
разрядного счетчика с управлени
ем периодом и частотой.
Выходы субмодуля могут использоваться в трех конфигурациях:


25

-

два независимых сигнала с одним переходом;

-

два независимых сигнала с двумя симметричными переходами;

-

один независимый сигнал с двумя несимметричными переходами.


Рис
.4.
4
. Структура субмодуля

ePWM


На рисунке
4.4
приведена структура субмодуля и его связи. Субмодуль включает
следующие узлы:

-

Time
-
base

module

-

формирует временную базу на основе 16
-
разрядного счетчика
с управлением периодом и частотой и синхронизирует е
е с другими субмодулями;

-

Counter
-
compare

module



формирует ШИМ сигнал по длительности;

-

Action
-
qualifier

module



определяет направление переходов и управляет
формированием сигнала по уровню;

-

Dead
-
band

module



формирует мертвые зоны между фронтами
E
PWM
xA

и

E
PWM
xB

сигналов;

-

PWM
-
chopper

module



формирует вид цепочки импульсов в ШИМ сигнале;

Event
-
trigger

module



формирует прерывания;

-

Trip
-
zone

module



формирует выходные сигналы
E
PWM
xA

и

E
PWM
xB

по
уровню.

Блок
-
схема субмодуля и основные связи ме
жду его узлами приведены на рис.4.5.

Конфигурирование
суб
модуля производится с помощью набора
конфигурационных регистров:




26


Рис.4.
5
.
Блок
-
схема
субмодуля

ePWM

и основные связи между его функциональными
узлами



4.4

Модуль
HRPW
M

широтно
-
импульсной модуляции с повышенным разрешением


4.4
.1

Модуль обеспечивает формирование ШИМ сигналов с повышенным разрешением,
когда частота сигналов превышает 200 кГц. Разрешение по времени может быть
повышено с 10 нс до 180 пс.


4.
5 Аналого
-
цифро
вой преобразователь
ADC


4.
5.1

В состав контроллера входит 12
-
разрядный конвейерный АЦП. Входные каналы
АЦП сконфигурированы в два независимых модуля, каждый из которых содержит 8
каналов, но далее сигналы всех 16 каналов обрабатываются одним АЦП.

Основные

характеристики АЦП:


-

одно ядро преобразователя, но два устройства выборки/хранения;


-

16 мультиплексируемых входов;


-

одновременный и последовательный режимы выборки;


-

входной диапазон от 0 до 3 В;


-

быстродействие 6,25 миллиона преобразований в се
кунду;


27


-

выборкой каналов управляют секвенсоры, их два по 8 состояний каждый, могут
работать параллельно или последовательно как один на 16 состояний;


-

16
индивидуально адресуемых регистров для хранения результатов
преобразования;


-

запуск преобразован
ия программно, от модуля
ePWM
, от
XINT
2
;


-

управление временем выборки в устройствах выборки/хранения;


-

код на выходе изменяется от 0 при
U
вх=0 В до 4095 при
U
вх
≥3

В.

Блок
-
схема модуля АЦП и основные связи между его узлами приведены на рис.4.6.


Рис.4.6.
Блок
-
схема
модуля

АЦП


4.
5
.2 Управление преобразованием от секвенсоров


Секвенсоры обеспечивают автоматическое выполнение серии преобразований при
получении одной команды «Старт». Результаты отдельных преобразований сохраняютс
я в
соответствующих регистрах результата: результат первого в
ADCRESULT
0
, второго
-

в
ADCRESULT
1 и т.д.


АЦП может работать в последовательном или одновременном режимах выборки;
для каждого преобразования (или пары преобразований в одновременном режиме
выб
орки) текущее состояние
CONVxx

автомата секвенсора указывает, сигнал с какого
вывода (или пары) должен быть выбран и преобразован. Входы АЦП могут быть выбраны
в любом порядке, в частности многократно может быть выбран один и тот же вход.
Номера выбираемых

каналов задаются 4
-
разрядными полями
CONVxx

в

регистрах
ADCCHSELSEQ
1
-

ADCCHSELSEQ
4
.

Преобразование может выполняться в непрерывном режиме, режим устанавливается
записью 1 в бит
CONT
_
RUN

регистра
ADCTRL
1
. В этом случае после выполнения числа
преобразовани
й, установленного в
MAX
_
CONV
1
, в порядке, записанном в

регистрах
ADCCHSELSEQ
1
-

ADCCHSELSEQ
4
, цикл преобразований повторяется.


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

28

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

4.
5
.3 Установка тактовой частоты АЦП производится записью 4 разрядов
ADCCLKPS

в
регистре
ADCTRL
3
. Частота периферийных тактов делится на ус
тановленное в этих
разрядах число перед поступлением на синхронизацию АЦП.


Для управления длительностью выборки используются разряды

ACQ
_
PS

[3:0]

регистра
ADCTRL
1
, длительность выборки равна установленному в этих разрядах числу
+1 тактов АЦП.

4.
5
.4 Прог
рамма самокалибровки разработана
Texas

Instruments

и загружена в блок
OTP
-
памяти при изготовлении. АЦП самокалибруется при запуске без участия пользователя, из
загрузочного модуля памяти вызывается процедура инициализации регистров
ADCREFSEL
,

ADCOFFTRIM
, г
де хранятся калибровочные данные.


Примечание. При запуске в интегрированной среде при отладке программ
Boot

ROM

обходится и самокалибровка автоматически не происходит.

4.
5
.5 Выбор опорного источника


По умолчанию АЦП работает с опорой на внутренний источн
ик опорного
напряжения. При необходимости другой шкалы могут быть использованы опорные
источники с напряжениями 2,048 В, 1,5 В, 1,024В, подключаемые в выводу
ADCREFIN

микросхемы. Величина в регистре
ADCREFSEL

определяет выбранный опорный
источник.

4.
5
.6 До
ступ к АЦП по шине
DMA


Регистры результатов АЦП с адресами 0х
0
B
00
-


0
B
0
F

расположены в
периферийном фрейме 0 и доступны по шине
DMA

одновременно с доступом от
процессорного ядра
CPU
.

Регистры результатов АЦП с адресами 0х7108

-

0х710
F

расположены в
пери
ферийном фрейме 2 и по шине
DMA

недоступны.


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





Лекция №
5

«Цифровой сигнальный контроллер
TMS
3
20
F
28335. Периферийные
устройства интерфейсов
eCAN
,
McBSP
,
I
2
C
,
SPI
,
SCI



5.1

Модуль
SPI

последовательного периферийного интерфейса


5.1.
1

Интерфейс
SPI

(
serial

peripheral

interface
)
разработан компанией
Motorola

в 1979 году
как внешняя шина микроконтролл
еров семейства 68000.

Модуль высокоскоростного синхронного последовательного интерфейса используется для
связи контроллера с периферийными устройствами или другим контроллером. Может
использоваться в режиме ведущего (
master
)

или ведомого

(
slave
)
.

Модуль в
ысокоскоростного синхронного последовательного интерфейса
обеспечивает передачу и прием слов запрограммированной длины (от 1 до 16 бит данных)
с запрограммированной скоростью


возможны 125 различных частот, максимальная
тактовая частота


12,5 МГц.

5.1
.
2

Для подключения к
SPI

интерфейсу контроллер использует 4 вывода микросхемы,
которые могут также быть конфигурированы как
GPIO
:


SPISOMI



выход ведомого или вход ведущего;


SPISIMO



вход ведомого или выход ведущего;


SPISTE



разрешение передачи для ведо
мого (инверсия);


29

SPICLK



тактовые импульсы.

Допускает четыре различных режима синхронизации передачи и приема с
фронтами тактовых импульсов, работу в режиме приема и передачи одновременно (но
прием и передача синхронно с разными фронтами тактовых импульсо
в); содержит
FIFO

с
глубиной
16

уровней на прием и передачу.

Управляется 12
-
ью 16
-
разрядными регистрами, расположенными в периферийном
фрейме 2 начиная с адреса 7040
h
.

Блок
-
схема модуля
SPI

и основные связи между его
узлами приведены на рис.5.1.


Рис.5.1.
Блок
-
схема
модуля

SPI


5.1
.3 Принцип действия


При связи между двумя устройствами одно выполняет функции ведущего, другое
ведомого. Ведущее устройство инициирует передачу данных выдачей тактовых
импульсов, под действием которых
сдвигаются коды, загруженные в сдвиговые регистры
обоих устройств и биты этих кодов последовательно поступают в линии связи. Сдвиг
информации происходит по переднему фронту, а фиксация


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


Ведущий готов начать передачу в любой момент, поскольку он контролирует
выдачу тактовых импульсов. Он выдает на выход данные, находящиеся в старшем разряде
сдвигового регистра, аналогично передает данные ведомый. В
едущий записывает
полученный от ведомого старший значащий бит в младший разряд сдвигового регистра,
который освободился в данном такте. После заданного числа тактов передаваемое слово
полностью вытеснится из сдвигового регистра и заместится принятым, котор
ое будет
переписано в буфер для передачи в
CPU
.


30


В типовом случае сигнал
SPISTE

выполняет роль чип
-
селекта для ведомого, перед
передачей ведущий устанавливает его в 0, после окончания обмена


в 1. Единичным
состоянием сигнала
SPISTE

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

5.1
.4 Прерывания модуля
SPI


Прерывания модуля конфигурируются 4 битами в двух управляющих
регистрах:


-

бит
s

SPI

INT

ENA

и

OVERRUN

INT

ENA



осуществляет активацию прерываний
от модуля;


-

бит
SPI

INT

FLAG

-

статусный флаг, индицирующий состояния приемного
буфера и готовность к считыванию информации;


-

бит

RECEIVER

OVERRUN

FLAG



флаг сигнали
зирует, что новая информация
загружается до того, как считана предыдущая.


5.2

Модуль
I
2
C

межмикросхемного последовательного интерфейса


5.2
.1

Интерфейс
I
2
C

(
inter
-
integrated

circuit
)
разработан

компанией

Philips

в 1982 году для
связи микроконтроллера с пе
риферией в телевизоре.

Модуль интерфейса
I
2
C

используется для связи контроллера с периферийными устройствами или другим
контроллером, имеющими соответствующий интерфейс версии 2.1 и подключенными к
шине
I
2
C
.

Интерфейс

I
2
C



это протокол с многими ведущими

и ведомыми, использующий только
две сигнальные линии:


-

линия последовательных данных
SDA
;


-

линия синхросигнала
SCL
.

Модуль высокоскоростного синхронного последовательного интерфейса может
использоваться в режиме ведущего (
master
)

или ведомого

(
slave
)

и обеспечивает передачу
и прием слов запрограммированной длины (от 1 до
8

бит данных) с запрограммированной
скоростью.

5.2
.2 Особенности модуля:


-

режимы 7
-

и 10
-
битной адресации;


-

режим общего вызова;


-

режим стартового байта;


-

режим свободного фор
мата данных;

-

поддержка множества ведущих (передатчиков) и ведомых (приемников);


-

скорость передачи данных от 10 до 400 килобит в секунду (режим
High
-
Speed

не
поддерживается);


-

содержит
FIFO

на прием и передачу с объемом 16 байт каждое;

-

модуль може
т выключаться.

Блок
-
схема модуля
I
2
C

и основные связи между его узлами приведены на рис.5.
2
.



31


Рис.5.2.
Блок
-
схема
модуля

I2C


5.2
.3 Принцип действия


Каждое из устройств, подключенных к шине
I
2
C
, имеет уникальный адрес и в
зави
симости от функции устройства может рассматриваться как передатчик или приемник
информации. В процессе обмена устройства выполняют роли ведущего и ведомого.
Ведущим является устройство, которое инициирует обмен и генерирует такты для
реализации этого обмен
а. Устройство с адресом, который посылается ведущим,
выполняет роль ведомого.


Линии сигналов
SDA

и
SCL



двунаправленные, должны быть подтянуты к
положительной клемме источника питания через резисторы, выходными элементами
устройств являются элементы с о
ткрытым стоком, реализующие на линии логическую
функцию «проводного И».


Основными режимами обмена являются:


-

стандартный режим, когда передается точно тот объем информации, который
запрограммирован в регистре модуля;


-

повторяющийся режим обмена, котор
ый повторяется до тех пор, пока программно
будут выработаны условия для
STOP

или нового
START
.

5.2
.4 Модуль содержит следующие узлы:


-

выводы
SDA

и
SCL
;


-

сдвиговые регистры
I
2
CXSR

и

I
2
CRSR
,

регистры данных
I
2
CDXR

и

I
2
CDRR

и
FIFO

для временного хранения
полученных и передаваемых данных;


-

регистры управления и статусные;


-

интерфейс с периферийной шиной контроллера;


-

устройство синхронизации тактовых импульсов модуля, формируемых из
тактовой частоты контроллера, с импульсами, получаемыми по линии
SCL
,

при
различных скоростях обмена;


32


-

делитель частоты для понижения частоты при формировании тактовых импульсов
модуля;


-

фильтр для снижения уровня шума в сигналах, принимаемых по линиям
SDA

и
SCL
;


-

устройство арбитража;


-

логика формирования прерывани
й.

5.2
.5 Режимы работы


Модуль в режиме ведущего начинает обмен с передачи адреса конкретного
ведомого. После передачи адреса модуль должен оставаться в режиме передачи, если
данные должны передаваться ведомому. Если данные должны быть получены от
ведомого
, то ведущий должен перейти на прием.


Модуль в режиме ведомого начинает обмен с приема адреса, передаваемого
ведущим. При совпадении принятого адреса с адресом ведомого, последний должен
отправить уведомление ведущему. Если данные должны передаваться веду
щим, модуль
должен оставаться в режиме приема. Если ведущий запрашивает данные от ведомого, то
ведомый должен перейти на передачу.


Для управления обменом модуль в режиме ведущего формирует на линиях шины
состояние
START

и

STOP
.

Состояние
START

характери
зуется переходом из 1 в 0 на линии
SDA

при
сохранении
1

на линии
SCL
.

Ведущий, формируя
START
, обозначает начало обмена.

Состояние
STOP

характеризуется переходом из
0

в
1

на линии
SDA

при
сохранении
1

на линии
SCL
.

Ведущий, формируя
STOP
, обозначает конец
обмена.


В промежутке между
START

и

STOP

шина считается занятой, между
STOP

и

START

шина считается свободной.

5.2
.6 Формат данных


Каждый бит передается по линии
SDA

в течение одного периода синхросигнала на
линии
SCL
.

Передача данных начинается со старшег
о значащего разряда.


В режиме 7
-

битной адресации первый байт после состояния
START

содержит 7
бит адреса ведомого и бит
R
/
W

направления передачи (
R
/
W
=0 ведущий передает
ведомому,
R
/
W
=1


ведомый передает ведущему).

После передачи каждого байта вставляе
тся дополнительный такт уведомления
(АСК


бит), выставляемый принимающей стороной.


В режиме 10
-

битной адресации адрес передается двумя байтами, первый байт
после состояния
START

содержит в первых пяти битах число 11110, затем два старших
разряда адреса,

затем бит
R
/
W

направления передачи; второй байт содержит оставшиеся 8
бит адреса ведомого.

После передачи каждого байта вставляется дополнительный такт уведомления
(АСК


бит), выставляемый принимающей стороной.

В случае обмена в одном направлении между
двумя и фиксированной функции
ведущего и ведомого используется режим свободного формата данных, когда первый байт
после состояния
START
, как и последующие содержит данные.


5.3

Модуль
SCI

последовательного коммуникационного интерфейса


5.3
.1

Модуль послед
овательного коммуникационного интерфейса используется для связи
контроллера с асинхронными периферийными устройствами с использованием
стандартного формата
NRZ

(без возврата к нулю). Модуль содержит три канала
SCI
-
A
,
CSI
-
B
,
CSI
-
C
, каждый из которых выполня
ет функции 2
-
проводного последовательного
асинхронного интерфейса, широко известного как
UART
.

Позволяет работать по двухпроводной шине как в полудуплексном, так и в
дуплексном режиме; содержит независимые
FIFO

на прием и передачу с глубиной
16

уровней. Ск
орость обмена программируемая, возможны 2
16

различных частот.


33

5.3
.2 Особенности модуля:


-

два внешних вывода (могут использоваться как
GPIO
)
:



SCITXD



выход передатчика;



SCIRXD



вход приемника;


-

формат данных:

Один стартовый бит;

Длина слова данны
х от 1 до 8 бит;

Дополнительный бит четности;

Один или два стоповых бита;


-

4 флага ошибки: четность, переполнение, кадрирование, обрыв;


-

двойное буферирование приема и передачи.


Каждый канал управляется набором из 13 регистров (8
-
разрядных), которые
р
асположены в периферийном фрейме 2 начиная с адреса 7050
h
, 7750
h
, 7770
h
,
соответственно.

5.3
.
3

Блок
-
схема модуля
SCI

и основные связи между его узлами приведены на
рис.5.
3
.



Рис.5.
3
.
Блок
-
схема
модуля

SCI


Модуль содержит следу
ющие узлы:


-

передатчик ТХ и входящие в него регистры:



SCITXBUF



буферный регистр передаваемых данных, загружается из
CPU
;



TXSHF



сдвиговый регистр передатчика, выдает

побитно данные на выход


SCITXD
;


34


-

приемник
R
Х и входящие в него регистры:



RXSHF



сдвиговый регистр приемника,

принимает побитно данные со

входа
SCIRXD
;

SCIRXBUF



буферный регистр принимаемых данных, хранит данные для

чтения
CPU
;


-

программируемый генератор;


-

регистры управления и статуса, размеченные в памяти данных;

5.3
.
4

Принцип действия


Обмен данными происходит в формате
NRZ

(без возврата к нулю). Формат данных

NRZ

включает:

Один стартовый бит;

От 1 до 8 бит данных;

Дополнительный бит четности;

Один или два стоповых бита;

Дополнительный бит адресации (только в реж
име с адресным битом).


Базовая единица информации содержит от 1 до 8 бит данных и в интерфейсе
называется символом. Символ и служебные биты образуют фрейм. Состав фрейма
программируется в регистре
SCICCR
.



Приемник и передатчик могут работать либо незави
симо, либо одновременно.


Каналы могут работать в асинхронном коммуникационном режиме и в
многопроцессорном режиме.

В многопроцессорном режиме на линии должен быть только один передатчик, но
несколько приемников. Адрес требуемого приемника содержится в п
ервом байте блока
информации, который принимается всеми приемниками. Приемник, у которого адрес
совпал с хранящимся в памяти, принимает последующие байты информации.

В асинхронном коммуникационном режиме период тактовых импульсов
SCICLK

интерфейса устанав
ливается в 8 раз меньше длительности передачи бита. Приемник
опознает стартовый бит сообщения, если после паузы на вход приходит 0 в течение 4
периодов
SCICLK

подряд. Состояние последующих битов приемник оценивает, беря три
выборки в средине временного инт
ервала передачи бита (4
-
й, 5
-
й и 6
-
й такты
SCICLK
) и
сравнивая их мажоритарно


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



5.4

Модуль
McBSP

многоканального буферированного последовательного порта


5.4
.1

Модуль содержит два порта
McBSP
-
А и
McBSP
-
В
, позволяющие реализовать прямой
интерфейс с периферийными устройствами типа кодеков.

5.4
.2 Особенности портов

McBSP
:


-

дуплексная связь;

-

д
важды буферированная передача и трижды


прием
;

-

независимое тактирование и кадровая синхронизация передачи и приема;

-

прерывания для
CPU

и обмен через
DMA
;

-

128 каналов для передачи и приема;

-

режим многоканальной селекции, позвол
яющий включение и выключение
передачи блоков в каждом из каналов;

-

прямой интерфейс со стандартными кодеками (стандарты
T
1/
E
1,
IOM
-
2,
AC
97)
,
устройствами аналогового интерфейса, АЦП и ЦАП, имеющими последовательный
интерфейс

SPI
;

-

поддержка внешней генер
ации тактов и синхронизации фреймов;


35

-

программируемый генератор для внутренней генерации тактов и синхронизации
фреймов;

-

программируемая полярность сигналов генерации тактов и синхронизации
фреймов;

-

программируемая длина формата данных: 8, 12, 16, 20,

24, 32 бита;

-

компрессия по законам
μ

и
А
;

-

возможность передачи 8
-
разрядных слов начиная с младшего бита.

Блок
-
схема порта
McBSP

и основные связи между его узлами приведены на
рис.5.
4
.



Рис.5.4.
Блок
-
схема порта
McBSP


5.4
.
3 Порт подключается к внешним устройствам посредством 6 линий (перечислены для
порта А):


MCLKRA



вход/выход тактов приемника;


MCLKXA

-

вход/выход тактов передатчика;

MDRA



вход приема последовательных данных;

MDXA

-

выход передачи последовательных данн
ых;

MFSRA

-

вход/выход синхронизации фреймов приемника;

MFSXA

-

вход/выход синхронизации фреймов передатчика.

5.4
.4 Принцип действия


CPU

или
DMA
-
контроллер записывают данные, которые необходимо передать, в
регистры
DXR
1
,
DXR
2.
Данные переписываются в сдви
гающие регистры
XSR
1,
XSR
2
,
которые выталкивают их поразрядно через выход
MDX
х. Аналогичным образом, данные,
получаемые через вход
MDR
х, проталкиваются по сдвигающим регистрам
RSR
1,
RSR
2
,
после приема полного слова переписываются в буферные регистры
RBR
1
,
RBR
2
.
Содержимое этих регистров затем копируется в
DRR
1
,
DRR
2
, доступных по чтению для

36

CPU

и
DMA
. Приемная и передающая части работают независимо, что позволяет
осуществлять прием и передачу одновременно. Регистры с окончанием 2 используются
при длине слов
а данных, большей, чем 16 бит.


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

μ
-
закону
(стандарт, распространенный в США и Японии, динамический диапазон 2
13
)
и А
-
закону

(распространен в Европе, динамический диапазон 2
14
)
.
После уплотнения данные
передаются 8
-
разрядными словами.


5.5

Модуль
CAN

интерфейса


5.5
.1

Модуль содержит два

полных контроллера
CAN
-
A

и

CAN
-
B
. Обеспечивает обмен с
повышенной помехоустойчивостью между совместимыми по интерфейсу устройствами.

5.5
.2 Основные характеристики:


-

соответствует версии
CAN

2.0В стандарта;


-

поддерживает 32 почтовых ящика, каждый со следующими свойствами:



-

конфигурируется как приемник или передатчик;



-

конфигурируется со стандартным или расширенным идентификатором;



-

имеет программируемую маску фильтра;



-

поддерживает удаленные фре
ймы;



-

поддерживает от 0 до 8 байт данных;



-

32
-
разрядный штамп времени на приходящие или отправляемые
сообщения;



-

защита от приема новых сообщений;



-

позволяет динамически программировать приоритет отправляемых
сообщений;



-

содержит программиру
емую схему прерываний с двумя уровнями;


-

имеет режим экономии энергии;


-

программируемое пробуждение на шине;


-

автоматический ответ на сообщение об удаленном запросе;


-

автоматическая повторная передача фрейма при потере арбитража или ошибке;


-

режи
м самотестирования


работает в режиме петли, получая собственное
сообщение, имитирует посылку уведомления.

5.5
.3 Модуль использует последовательный коммуникационный протокол со многими
ведущими, который эффективно поддерживает распределенное управление в
реальном
времени, с высокой степенью защищенности и скоростью передачи до 1 Мегабита в
секунду.


Протокол поддерживает 4 различных типа передаваемых фреймов:


-

фреймы данных от передающего узла к приемному;


-

удаленные фреймы, которые передаются узлом по

запросу на передачу фрейма
данных с тем же идентификатором;


-

фреймы ошибки, которые передаются любым узлом при обнаружении ошибки на
шине;


-

фреймы перегрузки, которые обеспечивают дополнительную задержку между
предыдущим и последующим фреймами данных
или удаленными фреймами.


Спецификация интерфейса
C
А
N
,

версия 2.0В определяет два формата, которые
различаются длиной идентификатора: стандартный фрейм с 11
-
битным идентификатором
и расширенный фрейм с 29
-
разрядным идентификатором. Стандартный фрейм данных

содержит от 44 до 108 бит, расширенный фрейм данных содержит от 64 до 128 бит. Кроме
того, в эти фреймы могут быть вставлены служебные биты до 23 и до 28, соответственно.

Общая длина фреймов может достигать 131 и 156 бит.


37


Фрейм содержит следующие поля:


-

Старт фрейма (1 бит);


-

поле арбитража, которое содержит идентификатор и тип посылаемого сообщения
(12 или 32 бит),


-

управляющее поле, указывающее число байт, содержащихся в передаваемом
сообщении (6 бит);


-

поле

данных длиной до 8 байт;


-

поле конт
рольной суммы (
CRC

-

16 бит
)
;


-

поле уведомления (2 бит);


-

поле окончания фрейма (7 бит).

5.5
.4 Контроллер С
AN

включает Ядро протокола
CAN

(СРК) и контроллер сообщений.

Задачами СРК является декодирование поступающих сообщений и передача этих
сообщений

в приемный буфер, а также передача сообщений в шину в соответствии с
протоколом.

Контроллер сообщений содержит следующие узлы:

-

блок управления памятью, в т.ч. интерфейс с
CPU
;

-

блок управления приемом, в т.ч. фильтрацию;

-

блок управления таймером;

-

О
ЗУ почтового ящика для хранения 32 сообщений;

-

регистры управления и статуса.

Контроллер сообщений определяет, должно ли принятое сообщение отброшено
или сохранено для использования
CPU
. Блок управления приемом проверяет состояние,
идентификатор и маску у

каждого из принятых сообщений для определения
соответствующего места в ОЗУ почтового ящика. При инициализации
CPU

задает
контроллеру все идентификаторы, используемые в данном приложении.

Контроллер сообщений управляет также отправкой предназначенных для
передачи
сообщений в СРК в соответствии с их приоритетами.

Передаваемые сообщения
загружаются в буфер передатчика
CPK
, который должен начать их передачу, как только
освободится шина.

Если должно быть отправлено белее одного сообщения, то отправка
ведется в

соответствии с их приоритетами. Если у двух почтовых ящиков окажется
одинаковый приоритет, то первым отправляется сообщение из ящика с большим номером.

Блок управления таймером содержит счетчик времени и проставляет отметку
каждому принятому или отправлен
ному сообщению (только в режиме
eCAN
)
. Он
генерирует прерывание, если сообщение не может быть отправлено или принято в течение
разрешенного периода времени.

Для инициации передачи данных в соответствующем управляющем регистре
должен быть установлен бит за
проса передачи (
TPS
.
n
)
, дальнейшая работа происходит без
участия
CPU
.

ОЗУ размечено в первом периферийном фрейме для хранения сообщений 32
почтовых ящиков, под каждое сообщение отведено 8 байт. Каждый почтовый ящик может
быть конфигурирован для приема или
передачи сообщений.


Лекция №6

«Интегрированная среда программирования и отладки
Code

Composer

Studio

IDE



состав, общая характеристика, настройка (
Target

and

Host

Setup
),
интерфейс пользователя



6.
1.Интегрированная среда разработки и отладки программно
го обеспечения


общие понятия


Интегрированная среда разработки и отладки программного обеспечения

(
IDE
)



комплекс инструментальных средств для разработки, интеграции, оптимизации и отладки
программ, объединенных единой оболочкой. В
IDE

входят редактор я
зыка

38

программирования и компилятор, обеспечивающие интерактивную компиляцию и
редактирование текста программы

Отладка программ

Отладка


процесс поиска и исправления ошибок в программе.

Ошибки бывают двух типов: синтаксические и семантические.

Синтаксичес
кие связаны с нарушением правил записи программы на языке
программирования.

Семантические связаны со смысловым содержанием программы. Семантические ошибки
могут возникнуть по разным причинам: неправильно составленный алгоритм решения
задачи; ошибка при нап
исании программы, не нарушающая синтаксиса (минус вместо
плюса, записана не та цифра, и т.п.).

На первом этапе производится устранение синтаксических ошибок, с чем успешно
справляются современные трансляторы. Только после устранения синтаксических ошибок
происходит трансляция исходного текста в последовательность машинных команд.

Исправление семантических задач производится при проверке работы программы на
контрольных задачах.

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

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

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

Отладка сложной программы


сложный и нестандартный процесс, который может
занимать большее время, чем ее написание.

Отладочные средства

Симулятор



программа, моделирующая аппаратные средства. Большинство эмуляторов
моделирует только ядро процессора, но не периферийные средства. Однако, обеспечивая
покомандную и поцикловую достоверность, симулятор полезен для подтверждения
логики алгоритма и при измер
ении ресурсов, используемых при выполнении программы.

Наличие симулятора в составе
IDE

позволяет производить отладку при отсутствии
аппаратных средств (они еще не изготовлены). Симулятор не может проверять систему в
реальном масштабе времени, но позволяет

произвести первичную проверку правильности
алгоритма.

Эмулятор



программно
-
аппаратные средства, при помощи которых одно устройство
может имитировать функционирование другого таким образом, что посредством системы
-
имитатора производится обработка тех же д
анных, выполнение тех же программ и
получение тех же результатов, что и имитируемой системы.. Например, при наличии
программы эмулятора можно исполнять на ЭВМ программы, написанные для
процессоров других семейств (с другой системой команд). Так основанный
на
сканировании эмулятор с программой, размещенной в ПЭВМ, может через тестовый порт

39

обращаться к внутренним ресурсам процессора и управлять исполнением программы в
реальном процессоре (внутрисхемный эмулятор).

Монитор отладчика



аппаратное средство, рези
дентно находящееся в отлаживаемом
изделии, обеспечивающее связь с ПЭВМ и позволяющее управлять исполнением
программы в изделии. При необходимости сделать останов в определенном месте
программы, монитор отладчика по команде с ПЭВМ записывает в ячейку памяти
, где
хранится машинная команда, соответствующая точке останова, некорректный код и
процессор останавливается, дойдя до этой команды. Когда ПЭВМ дает команду на
продолжение исполнения программы, монитор отладчика восстанавливает правильный
код в ячейке пам
яти и возобновляет выполнение команды, начиная с прерванной
команды.

Недостатки монитора отладчика: оккупация части внутренней памяти отлаживаемого
устройства и использование одного из имеющихся каналов для связи с ПЭВМ, а также
незащищенность монитора от

повреждения/уничтожения при сбое на отлаживаемом
устройстве.

Внутрикристальные аппаратные средства отладки



обеспечивают доступ к
внутренним ресурсам отлаживаемой системы. Наиболее распространен
JTAG

интерфейс,
использующий 5 линий связи для последовател
ьного ввода/вывода данных.


Группой
Joint

Test

Action

Group

разработан и в 90
-
х годах был стандартизован (
Std

IEEE

1149.1) метод граничного сканирования, обеспечивающий доступ к внутренним ресурсам
цифровых микросхем, в том числе микропроцессоров. Метод ре
ализуется путем создания
в микросхеме (или на плате) дополнительных сдвиговых регистров, соединенных
последовательно по цепи переноса и подключенных параллельными входами и выходами
к контролируемым ресурсам (в частности, к регистровым ячейкам микропроцесс
ора).
Вход и выход цепи сдвига подключен к порту тестового доступа, через который
осуществляется управление режимом и считывание информации из внутренних ресурсов
процессора отлаживаемой системы в ПЭВМ, на которой установлена интегрированная
среда.

Прямой
доступ к ресурсам позволяет
IDE

на период отладки изменять путь получения
команд процессором: не от счетчика команд, а от регистров
JTAG

интерфейса, тем самым
эффективно управляя процессором при отладке программ:

-

старт, стоп, пошаговое исполнение;

-

уста
новка аппаратных или программных точек останова;

-

сброс и инициализация отлаживаемой системы;

-

загрузка программного кода для отладки и для сохранения во флэш
-
памяти.

Роль
JTAG

интерфейса


предоставление физического канала для связи ПЭВМ с
отлаживаемой

системой, программное обеспечение
IDE

должно быть установлено на
ПЭВМ.

Достоинства
JTAG

интерфейса:


-

прямой доступ к скрытым ресурсам процессора;


-

не занимает аппаратных ресурсов системы (портов, памяти) для отладки;


-

доступ не нарушается при аварий
ной ситуации в отлаживаемой системе;


-

не потребляет энергию из отлаживаемой системы;


-

подключение отладчика через
JTAG

интерфейс не возмущает систему;


-

обеспечивает связь с «сырой» системой, в которую еще не загружено никакое ПО;

-

позволяет соединят
ь последовательно в цепочку несколько устройств (в
частности, несколько процессоров в многопроцессорной системе) и производить их
совместную отладку.

Перечисленные достоинства
JTAG

интерфейса обусловили его широкое применение не
только в процессе разработк
и и отладки ПО, но также в процессе производства (загрузка
ПО, тестирование изделий) и сопровождения изделий при эксплуатации (модернизация

40

ПО.
JTAG

интерфейс используется при программировании многих семейств ПЛИС,
позволяя осуществлять их конфигурирование

после установки в изделие (
in

circuit

programming
).



6.
2.
Code

Composer

Studio

IDE


(
CCS
): состав, общая характеристика



CCS



интегрированная среда программирования для
DSP

и микроконтроллеров фирмы
TI
,

объединяющая

комплекс инструментальных средств для

поддержки процесса на всех
стадиях разработки
.
Включает набор средств, обеспечивающих процесс разработки
программ и их отладки во встраиваемых приложениях. В этот набор входят:


-

среда разработки проекта;




-

дебаггер;


-

профайлер;


-

симулятор и др.

C
CS

обеспечивает единый интерфейс пользователя для всех этапов работы.

Среда разработки проекта

-

редактор языка программирования (как С/С++, так и
ассемблера), менеджер проекта, эффективный компилятор, позволяющий во многих
случаях не прибегать к ассемблер
у, и библиотеку, в которой можно также накапливать
собственные подпрограммы
.

Дебаггер


отладчик, обеспечивающий отладку в том числе на языке С/С++,
многооконное отображение, позволяющее отслеживать значение выбранных переменных,
и символьный поиск;

приспо
соблен для работы с
DSP
, имеет улучшенную систему точек
останова. Точки останова условные или аппаратные, базируются на полных выражениях
С, локальных переменных или регистрах. Окно памяти позволяет инспектировать все
уровни памяти, что позволяет оценить
когерентность кэшированных данных.
Поддерживает отладку сложных систем с несколькими процессорами или ядрами.
Глобальные точки останова и синхронные операции обеспечивают управление всеми
процессорами или ядрами.

Профайлер


интерактивный, облегчает оценку

качества программного кода.
Профайлер позволяет легко профилировать все функции С/С++ при их применении в
циклах или в других событиях, таких как ветвление, заполнение конвейера и КЭШа.
Ранжирование позволяет при оптимизации сосредоточить усилия на часто
используемых
участках кода, помогая разработчику в тонкой подстройке программы. Профилирование
доступно на всех этапах разработки программы для частей кода, написанных на языках
ассемблера, С и С++.

Некоторые задачи при отладке требуют запуска на часы и да
же дни без участия
разработчика.
CCS

поддерживает функции автоматического перезапуска задач при
тестировании или оценке качества. Отдельная консоль позволяет писать команды или
запускать скрипты не выходя из интегрированной среды.

CCS

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

Компилятор разработан с учетом специфики архитектуры и функции
DSP

и
реализует множество классических и специфических процедур оптимизации, вот лишь
некоторые из них: конвейеризация программы, автоинкрементная адресация, аппаратные
петли, векторизация. Компилятор оптимизирует программу с оценкой ее качества на
уровне
всего приложения, вырабатывая код таким, как его бы написал на ассемблере
разработчик со способностью удержать в поле зрения всю систему.

Каждый раз при
компиляции программы выдаются конкретные рекомендации по ее оптимизации.
Оптимизатор анализирует различ
ные варианты улучшения эффективности программы,
выявляя оптимальное соотношение между длиной кода и временем его исполнения.


41

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

Симуляторы позволяют начать разработку программ без аппаратной платформы.
CCS

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


Для эмуляции необходимо подключение к отлаживаемому устройству через
внутрисхемный
JTAG
-
эмулятор.

Эмуляция

строится на основе развитых
аппаратных средств, встроенных в
процессоры фирмы
TI
. Эти средства включают:

-

систему пограничного сканирования с помощью

JTAG
-
интерфейса,

-

доступ к регистрам и внутренней памяти без нарушения нормальной работы,

-

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

-

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


Система улучшенного переключения событий
(
)

на выбранных приборах
позволяет останавливать
CPU

или осуществлять переключение дру
гих событий
основываясь на комплексной информации, такой как неверные доступы к памяти данных
или программ. Позволяет в фоне измерять качество и подсчитывать системные события
(например, изменения в кэш
-
памяти).


Функция
Processor

Trace

помогает находить д
о этого невидимые комплексные баги
реального времени


гонки между событиями, перемежающиеся в реальном времени
глюки, аварии от переполнения стека, ложные прерывания без остановки процессора. Эта
функция основана на методе отладки, который действительно н
е влияет и не изменяет в
реальном времени процессы в
DSP
.


В состав последних версий
CCS

входит

DSP
/
BIOS



ядро многозадачной
операционной системы реального времени
с библиотекой стандартных функций
управления периферийными устройствами и макропрограмм дл
я каждого из
поддерживаемых процессоров
,

в том числе и процессоров 28
-
го семейства
;

Особенностью
Code

Composer

Studio

является возможность совместной отладки
многопроцессорной системы с различными ядрами.

Другой особенностью является обмен данными между ПЭ
ВМ и отлаживаемой системой в
реальном времени (
RTDX
, изобретенный в
Texas

Instruments
). Это свойство позволяет
наблюдать исполнение программы и отображать изменение переменных графически или
передавать поток полученных данных для обработки в такие совмести
мые программы, как
Axcel
,
LabVIEW

или
MATLAB
.
RTDX

может запускаться с симулятором, обеспечивая
эффективные средства исследования программы и алгоритма еще до изготовления
отлаживаемого изделия.


6.3 Настройка (
Target

and

Host

Setup
), интерфейс пользовател
я


Перед началом работы

CCS

должен быть сконфигурирован для работы в
конкретной среде, для чего необходимо определить конкретный тип контроллера и тип
используемого внутрисхемного эмулятора. Для этого необходимо
запустить Setup
CCStudio v3.3 и
в выпадающем

меню
Family

выбрать используемое семейство. Для
работы с контроллером
TMS
320
F
28335 выбирается C28xx.


42

Далее в выпадающем меню
Platform
выбрать тип используемого внутрисхемного
эмулятора, для работы со встроенным в плату эмулятором выбирается
xds100usb.

Дал
ее в окне
Available

Factory

Boards
, где остались только записи эмуляторов
xds100 для различных контроллеров, выбрать
F28335 XDS100 Emulator.

Далее нажать кнопку
Add

и в окне
System

Configurations

должен появиться
выбранный эмулятор.

Далее нажать кнопку
Sav
e & Quit

и можно запускать
CCS

с заданной
конфигурацией.

Пользовательский интерфейс

привычен для работающих в среде ОС
Windows
,
отличается дополнительными меню, содержанием меню и кнопками на панели
инструментов.


Лекция №7

«Интегрированная среда программи
рования
Code

Composer

Studio
.
Создание программ. Основные инструментальные средства. Язык Ассемблера.
Поддержка программирования на С/С++»


7
.1 Конфигурация проекта



Проект хранит всю информацию, необходимую для создания программы, включая:


-

имена исход
ных текстов и библиотек объектов;


-

опции инструментов генерации кода;


-

зависимости вхождения файлов.

7
.1.1 Создание проекта


Проект создается по следующей процедуре:


1
В

меню

Project

выберите

New
,
откроется

окно

Project Creation Wizard


2 В поле
Proje
ct

Name

введите имя проекта, оно должно быть уникальным.


3 В поле
Location

текстом или поиском определите каталог, где будет хранится
файл проекта. Объектные файлы, которые будут генерироваться компилятором и
ассемблером, будут храниться там же. Каждый пр
оект рекомендуется хранить в
отдельном каталоге.


4 Выберите тип проекта из выпадающего списка в поле
Project

Type
.
Тип
Executable

(.
out
)
означает, что в проекте будет генерироваться исполняемый файл. Тип
Library

(.
lib
)
означает, что Вы создаете библиотеку

объектов.

5 В поле
Target

выберите имя используемого процессора


это необходимо при
работе с несколькими типами.

6 Нажмите
Finish
, при этом создается файл с именем проекта и расширением
.
pjt
, в
котором сохраняются все файлы и установки проекта. Новый прое
кт и первая из
введенных конфигураций становятся активными и будут использовать по умолчанию
соответствующие опции компилятора и линкера.

7
.1.2 Добавление файлов в проект


Чтобы добавить в созданный проект файлы (например, исходный текст, библиотеку
объект
ов, командный файл линкера), необходимо:


1
В

меню

Project

выберите

Add

Files

to

Project
,
откроется

окно

Add

Files

to

Project


2 В окне
Add

Files

to

Project

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


3 Кнопкой Открыть присоедините выбран
ный файл к проекту, при этом
автоматически обновится окно
Project

View
.


4 Если необходимо удалить файл, выберите правой кнопкой удаляемый файл в
окне
Project

View
, затем левой кнопкой
Remove

from

Project

в контекстном меню.

7
.1.3 Конфигурация проекта

Конф
игурация проекта

определяет набор опций проектного уровня


эти опции
распространяются на все файлы проекта. По умолчанию проект создается только с двумя

43

конфигурациями
Debug

и
Release
, дополнительные конфигурации могут быть созданы и
добавлены пользовател
ем. Выбор и изменение активной конфигурации производится в
окне строки инструментов (левый верхний угол экрана). Создание и добавление новых
конфигураций осуществляется через диалоговое окно
Add

Project

Configurations
,
выпадающее при выборе
Configurations

в окне
Project

View
.

7
.1.4 Инструмент
Project

Dependencies


ависимости вхождения файлов
)
позволяет
разбивать сложный проект на подпроекты, а затем собирать окончательный проект из этих
составных частей, используя эти зависимости вхождения файлов.

Создани
е зависимостей осуществляется через диалоговое окно
Project

Configurations

Dependencies
,

выпадающее при выборе
Project

Dependencies

в окне
Project

View

в
диалоговом режиме, здесь же можно модифицировать конфигурацию главных проектов и
и задать конфигурацию

подпроектов. Выбранный файл
.
pjt

становится подпроектом
данного проекта и автоматически подгружаются.


7
.2 Текстовый редактор


7
.2.1 Просмотр и редактирование текста программы


Для того чтобы открыть текст программы в основном окне, сделайте двойной
щелчо
к по имени файла в окне
Project

View
.


Редактор обладает свойством цветовой разметки: ключевые слова, комментарии,
ассемблерные директивы и т.п. выделяются различными цветами. Желтая стрелка
индицирует положение в программном счетчике.

7
.2.2 Персональная
настройка текстового окна


Редактор позволяет произвести персональную настройку форматирования через
окна
Option



Editor

Menu



к выбору опций по языку, анализатору цвета, общих
установок просмотра.

7
.2.3 Использование функциональной обработки текста


Ред
актор имеет дополнительные способности по функциональной обработке
текста:

-

сравнение и слияние файлов (окно
File
)
;

-

поиск и замена

(окно
Edit
).

7
.2.4 Автосохранение


Режим автосохранения

устанавливается
через окна
Option



Editor


Properties

Backup
.

7
.2.3

Автоподсказка


Редактор использует механизм автоподсказки, называемый
CodeSense
.

Включение автоподсказки

через окна
Option



Editor


Language

CodeSense
.

В
перечне слева выделить тип файлов, с которыми будет работа, в окошке рядом убедится,
что
CodeSense

DLL

подключена.


CodeSense

может использоваться для:


-

вывода перечня символов (функций, макросов и т.д.), которые ассоциируются с
напечатанным;


-

вставки символов из контекстного списка в текущий документ, завершая
печатаемый символ, выделяя подходящий

текст в выпадающем окне и нажимая
Enter
;


-

получения информации о печатаемых символах.


7
.3 Инструменты для создания программы


7
.3.1 Используются оптимизирующий С/С++ компилятор, ассемблер, линкер и связанные
с ними утилиты.

7
.3.2 Настройка комплекта ин
струментов производится через выпадающее окно
Build

Options

вызываемое через меню в окне
Project
.


44

7
.3.
3

Инструменты для разработки программ в С/С++ включают:


-

С/С++

компилятор

-

воспринимает исходный код на С/С++ и преобразует его в
код на языке Ассебл
ера;


-

Утилиту построения собственной библиотеки;


-

Утилиту восстановления имен, искаженных при линковании.


Компилятор может произвести оптимизацию написанного кода для уменьшения
размера программы и времени ее исполнения. Оптимизация проводится путем у
прощения
циклов, конвейеризации, перестройки установок и выражений и размещения переменных
в регистрах. Компилятор реализует несколько уровней оптимизации. Дополнительный
этап оптимизации может осуществляться после линкования, при этом используется
информа
ция о финальных адресах, определенных при линковании.

Инструменты компиляторы описаны в документе с номером
spru
514, содержащем
следующие разделы:

1 Использование компилятора

2 Оптимизация кода

3 Линкование С/С++ кода

4 Оптимизация после линкования

5 Реали
зация С/С++ в 28х

6 Среда реального времени

7 Функции и библиотека для поддержки реального времени

8 Словарь

7
.3.
4

Инструменты ассемблирования включают:


-

Ассемблер
-

транслирует файлы, написанные на языке ассемблера, в объектные
файлы на машинном языке;


-

Архиватор


собирает из группы файлов единый архивный файл, называемый
библиотекой;


-

Линкер


объединяет объектные файлы в один исполняемый объектный модуль;


-

Формирователь листингов с абсолютными адресами;


-

Формирователь таблицы перекрестных ссыл
ок;


-

Преобразователь
COFF

формата в
ASCII
-
hex


и другие форматы.

Инструменты Ассемблера описаны в документе с номером
spru
513, содержащем
следующие разделы:

1 Введение в объектные модули

2 Описание Ассемблера

3 Директивы Ассемблера

4 Макросы

5 Линковани
е

6 Листеры

7 Преобразование в
Hex

код

8 Ассемблер в Заголовочных файлах

9 Словарь

7
.3.
5

Ассемблер транслирует файлы, написанные на языке ассемблера, в объектные файлы
на машинном языке (в формате
COFF
). Двухпроходный ассемблер работает следующим
образом:


-

переводит утверждения исходного текста в текстовый файл;


-

формирует листинг исходного текста (если требуется);


-

позволяет сегментировать код программы на секции и поддерживает счетчик
секций программы для каждой секции объектного кода;


-

определяет

и комментирует глобальные символы и прилагает список
перекрестных ссылок к листингу программы;


-

ассемблирует условные блоки;


-

поддерживает макросы, позволяя определять их в строке или в библиотеке.


45

7.3.6 Команды Ассемблера описаны в документе с номеро
м
spru
430
. При описании
каждой команды приводится следующая информация:

-

Мнемоническая запись;

-

Код операции;

-

Число циклов для выполнения;

-

Используемые операнды;

-

Описание операции;

-

Значения флагов;

-

Указание о возможности повторения;

-

Пример ис
пользования.


7
.4 Построение проекта в
CCS



При создании и запуске программы выполняются следующие шаги:


1 Нажмите кнопку
Rebuild

All
, при этом все файлы текущего проекта будут
перекомпилированы, переассемблированы и перелинкованы. Сообщение о результата
х
этой операции появится в статусном окне в нижней части экрана.


2 Созданный
.
out

файл будет размещен в папке
Debug

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

Active

Configuration
.


3
Выберите

Load

Progra
m

в

меню

File
.
Выделите программу, которую вы только
что перекомпилировали и нажмите

Open



программа загрузится в процессор на
разрабатываемой плате, а на экране откроется окно дизассембера.


4
Выберите

Mixed

Source
/
ASM

в

меню

View



это позволяет одновре
менно
просматривать код программы на С и ассемблере.


5 Щелкните по ассемблерной команде в окне смешанного режима.


6 Нажмите клавишу
F
1

для получения помощи по этой команде.


7
Выберите

Go

Main

в меню
Debug

для того, чтобы начать исполнение с основной
фун
кции. Исполнение остановится на
Main
.


8
Выберите

Run

в меню
Debug
, чтобы запустить программу
.


9
Выберите

Holt

в меню
Debug

для того, чтобы закончить исполнение программы
.

7
.5 Базовое программное обеспечение

7
.
5
.1
DSP
/
BIOS



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

в

CCS

отдельным

модулем
.

7
.
5
.2
Chip

Support

Library

(
CSL
)


содержит функции на С для конфигурирования и
управления периферийными устройствами контроллера.


Достоинства:


-

стандартный про
токол верхнего уровня для программирования периферии (типы
данных и макросы для настройки конфигурационных регистров, функции операций в
периферийных устройствах);


-

базовое управление ресурсами через открытые и закрытые функции;


-

символьное описание ре
гистров и их полей.

7
.
5
.3
Board

Support

Library

(
BSL
)


содержит дискретные модули на С для
конфигурирования и управления периферийными устройствами на плате (так называемые
API



интерфейсы, программируемые по применению).

7
.
5
.4
DSP

Library

(
DSPLIB
)


н
абор подпрограмм общего назначения, предназначенных
для цифровой обработки сигналов или изображений. Подпрограммы оптимизированы на
ассемблерном уровне для конкретных семейств
DSP

и предназначены для использования
в применениях реального времени с повышенн
ыми требованиями к скорости.



46

Лекция №8


Интегрированная среда программирования
Code

Composer
Studio
.
Средства и порядок отладки. Средства анализа и оптимизации, вспомогательные
инструменты»

О
тладка может производиться с использованием симулятора или

эмуля
тора. Выбор
среды отладки производится в
Code

Composer

Studio

Setup
.




8.1

Конфигурирование среды для отладки


8
.1.1
Опции, кот
орые определяют процесс отладки, делятся на четыре группы:


-

Debag Properties Tab;


-

Directories;

-

Program/Project/CIO Load
Options;


-

Disassembly Style.


Опции

Debag

Properties

Tab

(
доступны

через

Options


Customize


Debug

Properties



позволяют

отключить

при

отладке

опции
,
устанавливаемые

по

умолчанию
):


Open

the

Disassembly

Window

automatically



включена

по

умолчанию
,
ес
ли
отключить, то окно дизассемблера при загрузке программы не появляется;


Perform

GO

Main

automatically



отключена

по

умолчанию
,

если включить,
программа при загрузке установится на символ
main
;

Connect

to

the


when

a

control

window

is

opened



отк
лючена

по

умолчанию
,
не
включается при написании программ и при наличии проблем в соединении с целевой
платой;

Remove

remaining

debug

state

at

connect



включена

по

умолчанию
,
рекомендуется
отключать для предотвращения повторных попыток удалить точки остан
ова при
восстановлении соединения с целевой платой;

Step

over

functions

without

debug

information

when

source

stepping



включена

по

умолчанию
,
позволяет

при

отладке

в пошаговом режиме перешагивать

функции, не
имеющие информации об ошибках;

Animation

spee
d



включена

по

умолчанию на 0
,
устанавливает минимальное время
(в секундах) между точками останова.

Опции
Directories


(доступны через
Options


Customize


D
irector
ies



позволяют указать путь к файлу исходной программы, подлежащей отладке):

Directories



в окне отображается путь к файлу;

New



для добавления нового директория к перечню, отображенному в окне;


-

для удаления выделенного директория из перечня, отображенного в окне;

Move

Up
/
Move

Down

-

для перемещения выделенного директория по перечню
,
отображенному в окне;

Look

at

subfolders

-

для поиска в подкаталогах выделенного пути;

Default

File

I
/
O

Directory



для определения директория, устанавливаемого по
умолчанию.

Опции
Program
/
Project
/
CIO

Load

Options

(
доступны

через

Options


Customize


Pr
ogram
/
Project
/
CIO



позволяют

выбрать программу, загружаемую по умолчанию
):

Perform

verification

during

Program

Load



включена

по

умолчанию
,
в

результате

CCS

считывает выбранную память, чтобы убедиться в правильной загрузке программы
;

Load

Program

after

B
uild



кода включена
,
исполняемый файл загружается сразу
после построения проекта;

Do

Not

Set

CIO

Breakpoint

at

Load



если включить, то можно не определять точку
останова по загрузке;

Do

Not

Set

End

of

Program

Breakpoint

at

Load



если включить, то можно
не
определять точку останова по концу программы;


Disable

All

Breakpoints

When

Loading

New

Program

-

если включить, то перед
загрузкой новой программы удаляются все старые точки останова;


47

Open Dependent Projects When Loading Projects



для

открытия

подпрое
ктов
;

Do

Not

Scan

Dependencies

When

Loading

Projects



для

отключения

сканирования

вхождения

файлов

(
ускоряет

открытие проекта
)
;

Auto
-
Save

Projects

before

Build



для автосохранения

проекта

перед началом его
построения (компиляции);

Open

Project

Window

on

Startup



для открытия окна активного проекта

при запуске

CCS
;

Maximum

#
of

lines



устанавливает число строк, отображаемых в таблице
Stdout

окна
Output

Window



по умолчанию 256.

Опции
Disassembly

Style

(
доступны

через

Options


D
isassembly

Style



позвол
яют

изменять форму представления информации в окне дизассемблера
)
.

Дизассемблер восстанавливает программу из формата машинных кодов в формат
ассемблера и представляет связи между этими форматами в табличном виде.


8
.1.2 Приближение симулятора к поведению
реальной целевой платы производится
установкой соответствующих опций в следующих 3 разделах.


8
.1.3 Разметка памяти


добавление новых секторов памяти через
Options



Memory

Map

через следующие опции окна

Memory

Map
:


Enable

Memory

Mapping



включение обе
спечивает контроль разметки памяти, в
противном случае вся
RAM

целевой платы считается разрешенной;

Starting

Address



задание стартового адреса нового сектора;

Length



задание длины нового сектора;

Attributes



задание характеристик чтения/записи для нов
ого сектора;

Access

Size

(
bits
)



определяет размер доступа к целевому процессору;

Memory

Map

List



отображает список размеченных в памяти секторов;

Add



добавляет новый сектор к списку;




удаляет выделенный сектор из списка;

Reset



Восстанавлива
ет в списке вид по умолчанию.


8
.1.4 Загрузка программы

Созданный выходной файл (
.
out

в формате
COFF
) должен быть загружен в
реальный или симулированный процессор до исполнения. Загрузка программы и данных
производится по адресам, указанным в объектном фай
ле. Символы одновременно
загружаются в символьную таблицу, поддерживаемую отладчиком на компьютере
программиста. Загрузка объектного файла может быть произведена через
File



Load

Program

с выделением загружаемого файла.


8
.2 Основные инструменты отладки


8
.2.1 Управление запуском программы может производиться следующими командами
(через меню
Debug
):


Main



исполнение

до

функции

Main

запускается выбором
Debug



Go

Main
;


Run



после остановки можно продолжить исполнение нажатием кнопки

Run
;


Run

to

Cursor



курсор устанавливается на желаемое место в программе, затем
программа запускает нажатием этой кнопки;


Set

PC

to

Cursor



тоже с установкой курсора в программном счетчике


Animate



программа исполняется с задержках в точках останова на заданное время,
у
станавливаемое через
Options


Customize
);


Halt



остановка программы в любой момент нажатием на кнопку.


Пошаговый режим исполнения возможен только после останова. Пошаговое
исполнение управляется кнопками. Возможны три вида шагов:


48


-

Single

Step

или

Ste
p

Into

-

выполняет одно одиночное утверждение и
останавливает исполнение;


-

Step

over



выполняет функцию и останавливает;


-

Step

out



выполняет текущую подпрограмму и возвращает вызванную функцию.

8
.2.2 Точки останова (
Breakpoints
)


Является важнейшим
инструментом отладки, служат для остановки исполнения
программы в заданном месте с целью проверки правильности ее исполнения по значениям
переменных, состоянию стека и т.д. Могут устанавливаться как в окне исходного текста,
так и в окне дизассемблера. Отла
дка с точками останова нарушает работу в реальном
времени и служит для проверки алгоритма.


Breakpoint

Manager

-

конфигурирует точки останова и устанавливает связанные с
ними действия и свойства. Открывается через меню
Debug



Breakpoint

Manager

и
содержит

следующие функции:


New

Item



установить новую, потребует ввести адрес точки останова,
соответствующее положению в окне Ассемблера
;


Remove

Selected

Items



удаление одной или нескольких выделенных точек
;


Remove

All

-

удаление всех точек
;


Enable

All

-

удаление всех или, с использованием выпадающего окна, группы

точек
;


Disable

All

-

выключение всех или, с использованием выпадающего окна, группы

точек
;


Goto

Location



открывает адрес точки останова
;


Open

Property

Window

-

открывает окно свойств точки о
станова
;


Hide
/
Show

Columns



выбирает колонки, отображаемые в окне
Breakpoint

Manager
;


Create
/
Filter

Groups



открывает перечень группы точек останова, позволяет
редактировать список групп
;


Load

Configuration



загружает набор точек останова, который бы
л ранее создан и
сохранен
;

Save

Configuration

-

сохраняет набор точек останова, в противном случае при
закрытии
CCS

он теряется.

Программные точки останова могут устанавливаться в окнах С
-
кода и
дизассемблера, число точек не ограничено. Поставьте курсор в
желаемое место установки
точки (перед строкой в окне С
-
кода, на строку


дизассемблера), двойным щелчком мыши
зафиксируйте положение точки


должна появиться жирная красная точка. Установка
точек останова может также производиться через
Toggle

Breakpoint

меню и кнопку, а
также через меню
Debug



Breakpoint

Manager
.

Аппаратные точки останова отличаются от программных тем, что не
модифицируют программу, они используют аппаратные ресурсы контроллера и особенно
полезны при работе из ПЗУ и для прерывания доступ
а к памяти (последние не
отображаются в окнах С
-
кода и памяти). Число точек ограничено ресурсами контроллера.
Для установки выберите
Debug



Breakpoint

Manager
; в меню
New

выберите
Hardware

Breakpoint
; введите адрес программы или памяти, где нужно установи
ть точку, в форме С
-
выражения или имени или имени символа.

8
.2.3 Подключение точек останова к файлам


настройка действия точек останова,
позволяющих:


-

передавать входные данные из файла на компьютере программиста в буфер на
целевой плате;


-

передавать

выходные данные из буфера на целевой плате в файл на компьютере
программиста;

-

обновлять данные в окне, например в виде графика.

Использование точек останова для передачи входных данных из файла на
компьютере программиста в буфер на целевой плате может б
ыть организовано
следующим образом:


49

1. выбрать
File



Load

Program
, файл с именем
.
out
, нажать
Open
;

2. дважды щелкнуть на файле с именем .с в окне
Project

View
;

3. выб
рать

Debug


Breakpoint

Manager
;

4. установить курсор на строку с функцией
main
, для кот
орой устанавливается
точка останова. Обозначить имя функции.

5.
щелкнуть кнопкой
Toggle

Breakpoint

или нажать
F
9



должна появиться жирная
красная точка;

6. в окне
Breakpoint

Manager
, где

должна появиться точка останова, выбрать

столбец
Action

и щелкнуть п
о выпадающему окошку в ряду, где установлена точка.
Выбрать действие
Read

Data

from

File



появится диалоговое окно
.

7. в свободном окошке рядом с надписью
File

дойдите до файла с данными и
щелкните. Измените начальный адрес (где должны размещат
ься данные) и длину (сколько
данных считывается каждый раз при достижении точки останова);

8. Нажмите
OK
. Появится окно управления, которое позволит перемещаться по
файлу данных.



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


8
.2.4 Окно наблюдения

Использование окна для наблюдения за изменением величины переменной


При отладке полезно наблюдать за изменением величины переменной в процессе
исполнения программы. Окно наблюдения позволяет

отслеживать величины локальных,
глобальных переменных и С/С++ выражений. Можно также добавить статическую
переменную из списка как наблюдаемую.


Для открытия окна наблюдения

Watch

Window
:

1 выбрать

View


Watch

Window

или

щелкнуть

по

иконке

Watch

Window
;

Окно

Watch

Window

содержит две таблицы
Watch

Locals

и
Watch

1
.

В таблице
Watch

Locals

отладчик автоматически отображает Имя, величину, тип и
опцию
Radix

переменных, которые являются локальными для исполняемой функции;

В таблице
Watch

1

отладчик отображае
т Имя, величину, тип и опцию
Radix

для
локальных и глобальных переменных и выражений, которые заданы.


2.

выбрать

File



Load

Program
, загрузить файл с именем
.
out

для данного проекта;

3. дважды щелкните на файле с именем .с в окне
Project

View
;

4. постави
ть курсор на строку с точкой останова;


5. щелкнуть кнопкой
Toggle

Breakpoint

или нажать
F
9



должна появиться жирная
красная точка;

6. выбрать

View


Watch

Window
, выделится область в нижнем правом углу окна.
При исполнении программы в этом окне отображаю
тся величины наблюдаемых
переменных. По умолчанию в таблице
Watch

Locals

отображаются переменные,

которые
являются локальными для исполняемой функции;

7. если это не
main
, то выбрать
Debug



Go

Main
;

8. выбрать
Debug



Run

или нажать кнопку А5

или

кнопку
R
un
;

Окно
Watch

Window

обновит величину локальных переменных;

9.

выбрать таблицу
Watch

1;

10. щелкнуть по значку
Expression

в колонке
Name

и напечатать имя переменной
для наблюдения;

11. щелкнуть по свободному пространству в окне наблюдения для сохранения
и
зменений; величина переменной должна появиться немедленно.

Подобным образом таблице

Watch

1

организуется наблюдение за элементами
структуры.

8
.2.5 Подобным образом организуются окна для просмотра памяти и для просмотра и
редактирования содержимого регистро
в.


50

8
.2.6 Режимы дизассеблера

Режим дизассемблирования. Отладчик автоматически открывает окно
дизассемблера при загрузке программы в реальный или симулированный процессор. В
окне отображаются дизассемблированные команды и символьная информация,
необходимая
для отладки. Дизассемблирование
-

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

Смешанный режим позволяет просмотр в одном окне дизассеблированного текста с
исходным текстом на С, строки текстов перемежаются. Включение смешанного
режима
через
View


Mixed

Source
/
ASM

(
либо правой кнопкой в окне исходного файла), выбрать
Mixed

Mode

или
Source

Mode
.

8
.2.
7

Вызов стека

Для проверки вызова функций используется окно
Call

Stack
.
Вызов

окна

через

View


Call

Stack

или кнопкой
View

Stack
.


Дважды щелкнуть по функции в окне, исходный текст функции отобразится в основном
окне.
Call

Stack

работает только с текстом на С, причем программа должна иметь главную
функцию и стековую секцию, в противном случае появится сообщение:
C

source

is

not

avail
able
.


8
.3 Отладка в реальном времени



С
CS

включает несколько опций для режима отладки в реальном времени.


Real
-
Time

Mode

(режим реального времени) позволяет выполнение критичных по
времени прерываний в приоритетном коде

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


Чтобы включить режим отладки в реальном времени:

1.

выбрать

Debug


Real
-
time

Mode
, в нижней части окна должна появиться
надпись

POLITE
”;

2.

выбрать

View


Real
-
Time

Refresh

Options
,
установить интервал обновления
информации в окне наблюдения. Галочка в окошке
Global

Continuous

Refresh

распространит этот интервал на все окна, где отображаются данные, в том
числе память, графики и наблюдательные окна;

3.

нажат
ь
OK
;

4.

выбрать

View


Registers


CPU

Registers
,
откроется окно, отображающее
состояние регистров
CPU
;

5.

дважды щелкнуть по окошку величины и откорректировать величину регистра
прерываний(..
IER
)
, чтобы обозначить прерывание как
Real
-
Time
;

6.

щелкнуть на свободн
ом месте окна, введенные изменения должны проявиться в
красном свете.


Rude

Real
-
Time

Mode

(жесткий режим реального времени)


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


51

Для
включения

режима выбрать

Debug


Rude

Real
-
time

Mode
,
в нижней части
окна должна появиться надпись

RUDE
”.


8
.4 Опции
Reset



В процессе отладки может возникнуть необходимость произвести перезапуск
целевой платы
или эмулятора средствами
CCS
. Доступность таких команд зависит от
подключения к целевой плате.

8
.4.1
Reset

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


Reset

CPU

(если целевая плата подключена)
.

8
.4.2
Reset

эмулятора возможен только в отключенном от целевой платы состоянии
(
Disconnected
).

Для перезапуска эмулятора выбрать
Debug


Reset

Emulator

(если целевая
плата подключена)
.

При перез
апуске эмулятора целевая плата не затрагивается, ее
перезапуск должен производиться самостоятельно нажатием кнопки или выбором
Debug


Reset

CPU
.


Лекция №
9

Интегрированная среда программирования
Code

Composer
Studio
.
Средства анализа и оптимизации, вспом
огательные инструменты»


9
.
1

Анализ и оптимизация программы


Эффективность программы может оцениваться по соотношению различных
факторов, критерии оценки диктуются конкретным применением. Средства анализа
обеспечивают сбор и интерпретацию данных о факторах
, влияющих на эффективность.
Средства оптимизации предназначены для модификации кода программы для повышения
ее эффективности.

9
.
1
.1

Анализ эффективности программы

Визуализация данных может осуществляться в
CCS

в виде графиков, диаграмм и
изображений. Выб
ор вида представления данных производится через меню
View


Graph
.

В открывшемся диалоговом окне задаются свойства выбранного представления.
Дополнительные сведения по возможным настройкам средств представления информации
можно получить из выпадающих меню.


После установки свойств щелкните по кнопке ОК для открытия графического окна.
Изображение в окне будет обновляться при достижении каждой точки останова, либо по
каждой остановке программы (
Halt
)
, если к изображению не подключены точки останова.


9
.1.2 Ср
едства анализа симулятора позволяют отслеживать события, происходящие при
исполнении программы, и оценивать ее качество.


Опции пользователя, предназначенные для настройки симулятора:


-

включение/выключение анализа;


-

подсчет появления выбранных событий;


-

остановка исполнения программы при появлении выбранного события;


-

удаление событий, которые подсчитываются при исполнении программы или
вызывают ее остановку;


-

создание
log

файла;


-

сброс счетчика событий.


Для использования средств анализа симуля
тора:


-

загрузить программу;


-

запустить средства анализа


9
.1.3 Средства анализа в реальном времени


52


Обеспечивают возможность зондировать, рассматривать и отслеживать состояние
целевой платы во время исполнения программы. Утилиты используют физически то
т же
канал
JTAG
-
интерфейса для связи между целевой платой и компьютером программиста.

Для использования этих средств целевая плата должна использовать ядро
DSP
/
BIOS
,
которое также обеспечивает связь по физическому каналу в реальном времени, поставляя
инфор
мацию для визуализации в окнах
CCS
. Доступ к инструментам анализа в реальном
времени через кнопки на панели инструментов или меню
DSP
/
BIOS
:



Message

Log



отображает последовательности событий во времени, полезны для
прослеживания управления в программе. За
пись последовательности событий
можно вывести в файл, щелкнув правой кнопкой по окну
Message

Log

и выбрав
Property

Page
;



Statistics

View



отображает суммарную статистику, накопленную в ядре. Можно
изменить настройки отображения, щелкнув правой кнопкой по
окну
Statistics

View

и выбрав
Property

Page
;



Host

Channel

Control



отображает каналы связи с компьютером программиста,
задействованные программой. Через это окно можно прикрепить файлы к каналам,
начать передачу данных через канал и отследить количество п
ереданных данных.



RTA

Control

Panel



управляет слежением за целевой программой и сбором
статистики.



Execution

Graph



отображает исполнение
потоков

в реальном времени. Через этот
график можно проследить время и порядок исполнения

потоков

(
отображается
то
лстой синей линией)
. Информацию о линиях графика можно получить, щелкнув
правой кнопкой по окну
Execution

Graph

и выбрав
Legend
.



CPU

Load

Graph



отображает загрузку целевого
CPU
, усредненную за выбранный
период для устранения кратковременных выбросов.



K
ernel
/
Object

View



отображает конфигурацию, состояние и статус объектов
DSP
/
BIOS

(как динамических так и статических), запущенных на целевой плате.
Для сохранения текущих данных щелкнуть правой кнопкой по окну
Kernel
/
Object

View

и выбрать
Save

Server

Data
.



9
.2 Оптимизация прикладной программы



Процесс оптимизации начинается после окончания анализа, когда определены
неэффективные участки кода. Процесс оптимизации заключается в определении
возможности улучшения неэффективных участков кода, назначении целе
й оптимизации и
попытке достижения этих целей при модификации программы.
CCS

органично связывает
инструменты между собой и обеспечивает единую платформу для анализа прогресса при
подстройке программы.

9
.2.1 Окно советов (
Advice

Window
)
отображает информаци
ю по подстройке программы:
руководит процессом подстройки, объясняя соответствующие шаги и отображая
результат, и связывает с другими инструментами и документацией. Окно советов
находится в левом нижнем углу экрана и открывается кнопкой
Tuning

Layout

или ч
ерез
меню
Profile


Tuning
. В верхней части окна находится линейка инструментов для
перемещения по страницам, в нижней части


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

9
.2.2
Profile

Setup


открывается из окна советов нажатием на иконку

Profile

Setup

(либо
через меню
Profile


Setup
)
, окно открывается в правой части экрана. В нижней части
окна находятся кноп
ки для переключения таблиц, в первой таблице
Activities

отображается

характеристики работы, для которых будут собираться данные, во второй
таблице
Ranges

определяются части программ (в том числе функции, петли и сегменты

53

арбитража), для которых будет собир
аться информация для подстройки. Адреса точек
выхода
Exit

points

устанавливаются в третьей таблице

(
Control
)
, чтобы уведомить
CCS
,
когда прекратить сбор данных.

9
.2.3 Окно целей (
Goals

Window
)
предназначено для отображения динамики приближения
к заданным ц
елям в процессе подстройки программы. Окно открывается через меню
Profile


Tuning


Goals
. Цели


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

9
.2.4
Profile

Viewer

отображает в виде таблицы все данные, собираемые

в процессе
подстройки программы. Ряды в таблице соответствуют элементам кода, выбранным в
таблице
Ranges

окна
Profile

Setup
. В столбцах собраны данные для каждой анализируемой
части программы, соответствующие функциям, определенным в таблице
Activities
.
P
rofile

Viewer

точно находит самое неэффективное место в программе. Чтобы определить,
например, функцию, в наибольшей мере занимающую кэш, данные, соответствующие
месту в кэш
-
памяти, могут быть рассортированы в убывающем порядке


затем
проанализирована фу
нкция и найдена часть кода, которая генерирует заполнение кэш.


Лекция №
10

«Интегрированная среда программирования
Code

Composer

Studio
.
Особенности программирования.
Заголовочные файлы. Библиотека примеров
фирмы
Texas

Instruments

и их использование в прик
ладных программах
.
Использование
M
ATLAB
и
LabVIEW

для подготовки и тестирования программ.

Аппаратная платформа для выполнения лабораторных работ
TMS
320
C
2000
DSC

Experimenter

Kit
. Назначение, устройство, особенности работы



10
.1

Заголовочные файлы

и приме
ры для периферии (
C/C++ Header Files

and

Peripheral

Examples
)


10
.1
.1 Заголовочные файлы и примеры программ облегчают написание программ и
освоение
CCS
.

Заголовочные файлы могут быть легко внедрены на уровне С/С++ кода в
новые и модифицируемые программы дл
я обеспечения доступа к периферийным модулям
контроллера. Пользователь при написании новых программ может также использовать
функции, взятые из примеров.

Структура дерева каталогов, формирующегося при установке, приведена в таблице.


Каталог

Подкаталог

Опи
сание

\
doc

Документация

\
DSP2833x_headers

Файлы, необходимые для внедрения заголовков в проект


\
cmd

Файлы команд линкера

\
source

Исходные тексты, необходимые для внедрения
заголовков в проект

\
include

Заголовочные файлы для каждого из периферийных
модулей

\
gel

CCS .gel

файлы

\
DSP2833x_common

Исходные тексты примеров для иллюстрации, как
программировать, используя заголовочные файлы


\
cmd

Командные файлы распределения памяти в контроллерах

\
source

.
с файлы, используемые в примерах

\
include

.
h

файлы, используемые в примерах

\
lib

.
lib

файлы, используемые в примерах

\
gel

CCS

.
gel

файлы для каждого из представителей

54

семейства
TMS
320
F
28
xxx

\
DSP
2833
x
_
examples

Проекты примеров, компилированные с использованием
блока плавающей точки

\
DSP
28
2
3
x
_
examples

Проекты примеров, компилированные без использования
блока плавающей точки


10
.1
.2 Структурный подход


Регистровый файл


набор регистров, принадлежащих периферии. Эти регистры
группируются в
C
/
C
++

как члены структуры


это называется структурой

регистрового
файла. При компиляции структура размечается в памяти прямо поверх периферийных
регистров.

Такая разметка обеспечивает компилятору эффективный доступ к регистрам
при использовании указателя страницы данных
CPU
.


Поля битов могут быть использов
аны для присвоения имени и длины каждому
функциональному полю внутри регистра. Регистры, определенные в терминах поля битов,
позволяют компилятору манипулировать одиночными элементами в регистрах. Для
примера, флаг может быть прочитан при обращении к имени

поля бита,
соответствующему этому флагу.


Эти

структуры

реализованы

в

C
/
C
++
Header

Files

and

Peripheral

Examples

для всех
периферийных устройств контроллера.

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


10
.2

При
меры программ


Библиотека включает более 40 примеров, охватывающих типовые применения
периферийных устройств и блоков контроллера.


Все примеры имеют одинаковую структуру, включающую:

-

заголовочные файлы;

-

файлы уникального для данного примера исходного
текста;

-

файлы исходного текста, общего для всех примеров;

-

командные файлы линкера.

Заголовочные файлы:

DSP
28
x
_
Project
.
h



находятся

в

подкаталоге

\

DSP
2833
x
_
common
\
include
.

DSP2833x
_
Device
.
h



находятся в подкаталоге
\

DSP
28
33
x
_
headers
\
include

и
вклю
чает файлы заголовочные файлы всей периферии, специфические для конкретного
прибора макросы установки;

DSP
2833
x
_
Examples
.
h



находятся

в

подкаталоге

\

DSP
2833
x
_
common
\
include

и
определяют конкретные параметры, используемые в исходных текстах программ.

Файл
ы исходного текста:

Файлы
DSP
2833
x
_
GlobalVariableDefs
.
c



находятся в подкаталоге
\

DSP
28
33
x
_
headers
\
source
, должны использоваться с любым заголовочным файлом и
назначают структуру переменных и данных в периферийных регистрах;

Файлы уникального для данного

примера исходного текста имеют в начале имени
название примера и располагаются подкаталогах конкретных примеров;

Файлы исходного текста, общего для всех примеров


находятся в подкаталоге
\

DSP
28
33
x
_
common
\
source

и содержат общие функции периферии, функци
и утилит,
которые пользователь может использовать в своих проектах.

Командные файлы линкера

определяют области памяти, где линкер будет
размещать программу и данные.


10
.3

Порядок внедрения з
аголовочных файлов и примеров программ


55

Перед использованием загр
узите пример и пройдите его по шагам, чтобы
ознакомиться с входящими в него з
аголовочными файлами и образцами программного
кода. Создайте копию файлов исходных текстов, которые вы намереваетесь использовать.

Внедрение заголовочных файлов

позволяет использо
вать структурный подход к полям
битов в Вашем проекте для доступа к периферии.

Шаг 1: ввести в проект файл
DSP
2833
x
_
Device
.
h


Отредактировать
DSP
2833
x
_
Device
.
h

выбрав контроллер, используемый в проекте.


Шаг 2: добавить в проект файл
DSP
2833
x
_
GlobalVaria
bleDefs
.
c
, в котором
объявляются переменные, используемые при доступе к периферии, и содержится раздел
данных
#
pragma

assignments
, используемый линкером при размещении переменных в
соответствующих местах памяти.

Шаг 3: добавить в проект из
DSP
2833
x
_
headers
\
cmd
, командный файл линкера:

-

DSP
2833
x
_
headers
_
nonBIOS
.
cmd
,
DSP
2833
x
_
headers
_
nonBIOS
;

-

DSP
2833
x
_
headers_BIOS.cmd
,
DSP
2833
x
_
headers
_
nonBIOS
.

В СС
S

версии 3.3 соответствующий файл просто добавляется в проект:



-

далее

откройте

меню

Project → Build Optio
ns;


-

выберите

Linker tab;


-

выберите

Basic;


-

в

окне

Library

Search

Path

добавьте

путь

к

\
DSP2833x_headers
\
cmd

Вашей

системы
.

Шаг 4: добавить в проект путь к заголовочным файлам, для чего

в СС
S

версии 3.3:


56



-

откройте

меню

Project → Build Options;


-

выберите

Compiler tab;


-

выберите

pre
-
processor;


-

в

окне

Include

Search

Path

добавьте

путь

к

\
DSP2833x_headers
\
include

Вашей

системы
.

Шаг 5: установить при необходимости дополнительные опции

через меню

Project


Build

Options
.



Внедрение
примеров пр
ограмм
ного кода общего назначения

позволяет использовать в
проекте уже готовые куски программного кода.

Шаг 1: ввести в проект файл
DSP
2833
x
_
Examples
.
h


Шаг 2: добавить в проект путь к файлам примера, для чего

в СС
S

версии 3.3:



-

откройте

меню

Project
→ Build Options;


-

выберите

Compiler tab;


-

выберите

pre
-
processor;


-

в

окне

Include

Search

Path

добавьте

путь

к

\
DSP
2833
x
_
common
\
include

Вашей

системы
,
перечисляя

директории

через

точку

с

запятой

(
пример
:

\
DSP2833x_headers
\
include;…
\
DSP
2833
x
_
common
\
i
nclude)
.

Шаг 3: добавить в проект из
DSP
2833
x
_
common
\
cmd

командный файл линкера

для
соответствующего контроллера, для 28335:

-

28335_
RAM
_
lnk
.
cmd



для работы с оперативной памятью контроллера;

-

F
2833
x
.
cmd



для использования
Flash

и

OTP

памяти.

Шаг 4: уст
ановить частоту
CPU


57


Шаг

5
: добавить в проект из
DSP
2833
x
_
common
\
source

необходимые файлы
исходного кода.

Шаг

6: при необходимости включить в проект .с файлы для поддержки
PIE

блока.


10
.
4

Использование
MATLAB

и
LabVIEW

для подготовки и тестирования прогр
амм
.


10.4.1
Использование пакета
MATLAB

для разработки и тестирования программ


В состав пакета
MATLAB

входит модуль
Embedded Coder™
, который

генерирует
компактные и быстрые программы на языке
C

и
C
++ для использования во встраиваемых
процессорах и плата
х для быстрого прототипирования на основе таких процессоров.

Embedded Coder™ включает
MATLAB

Coder
™ и
Simulink

Coder
™,

обеспечивающие конфигурацию и оптимизацию генерируемого кода с учетом специфики
конкретного процессора. Пакет Embedded Coder™ стыкуется

с системами
программирования основных производителей, втом числе с Code Composer Studio фирмы
Texas Instruments и VisualDSP++ фирмы Analog Devices.


Конфигурирование и работа с конкретным программируемым устройством
(процессором, платой прототипа) произв
одится с использованием интерфейса проекта в
MATLAB

Coder

или
Simulink

Model

Explorer
.
Первый позволяет конфигурировать и
создавать проекты, а последний
генерировать коды для моделей и подсистем
, выбрать из
списка программируемое устройство и сконфигуриров
ать его для генерации кода.




Рис.10.1

Связь функционального и программного описаний объекта


Для трансляции кодов
MATLAB

и моделей
Simulink

в исходные тексты и
исполняемые модули
программируем
ых
устройств

используются конфигурационные
файлы этих устройс
тв
.


58

Для кодов
MATLAB

определяют вид выходной информации:
MEX
-
file
,
C
/
C
++
static

library

или
C
/
C
++
executable
. При конфигурировании
Simulink

определяется среда, в

которой будет исполняться программа.

Среди других
Embedded

Coder

содержит
конфигурационный фа
йл
IDE

Link

Target
, который генерирует коды для компиляции и
загрузки
, в частности, для
Code

Composer

Studio

IDE

фирмы
Texas

Instruments
.

Конкретное программируемое устройство выбирается из имеющегося в пакете
списка,
который может быть расширен.

Используя

Embedded

Coder

можно оптимизировать программу поблочно для
дальнейшего уменьшения размера кода. Данные по блокам обмениваются с генерируемым
кодом через глобальные переменные и аргументы функций. Генерируемый код
отслеживается на модели системы на уровне
блоков и сигналов. Двусторонние связи
существуют между строками кода и моделью, облегчая навигацию между строками кода и
элементами
Simulink
-
модели.

Embedded

Coder

позволяет перенести генерируемый код в среду реального
исполнения. При использовании
Simuli
nk

Embedded

Coder
возможности приближения к
реальным условиям системы существенно улучшены.

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

Embedded

C
oder

генерирует .
main

программу базируясь на заданной информации о
реальной среде применения.





Рис.10.2

Кастомизация проекта


10.4.2
Использование пакета LabVIEW для разработки и тестирования программ

В пакете LabVIEW реализована концепция графического

программирова
ния
алгоритмов преобразования и обработки цифровых сигналов. Программа ал
горитма при
этом выглядит как функциональная схема устройства обработки данных, а
запрограммированная задача (приложение) предстает в виде виртуально
го прибора (ВП)
и
ли виртуального инструмента (Virtual Instrument). В LabVIEW уже заложен обширный
набор способов обработки данных в виде готовых узлов (устройств), которые можно
включить в виртуальный прибор, что существенно упрощает и ускоряет разработку
приложений анализ
а данных.

LabVIEW DSP
-
модуль предназначен для проектирования систем на базе сиг
-
нальных процессоров. Его использование позволяет применить такие методы цифровой
обработки сигналов (ЦОС), как спектральный анализ и фильтрация для

59

программирования сигнальных
процессоров в LabVIEW.

При использовании
графического программирования время разработки при
ложений для поддерживаемых
аппаратных средств значительно снижается, так как нет необходимости в знании
текстовых языков программирования.Кроме того, модуль оснащен

удобной справкой, что
позволяет создавать более производительный код.

LabVIEW DSP
-
модуль поддерживает
ряд

устройств, включая N1SPEEDY
-
33,
TMS320C6713 DSK и TMS320C6711 DSK. Он адресует аналого
-
цифровое преоб
-
разование, цифроаналоговое преобразование или ц
ифровой ввод/вывод в целе
вые
устройства для выполнения единичных или многоточечных операций. При создании
приложений инженеры могут конфигурировать порт, тактирование, размер буфера и
некоторые другие опции. В том случае, когда необходимо пере
ключиться н
а другое
аппаратное средство, узлы ввода/вывода автоматически из
меняются для работы с новым
устройством.

Функции пакета LabVIEW DSP Test Toolkit позволяют работать с проектами CCS.
Это означает, что можно открыть файл проекта (.pjt
-
файл) скомпоновать его,

а затем
загрузить результат в плату DSK.

Для открытия проекта необходимо указать располо
-
жение .pjt
-
файла на соответствующем входе ВП «Открыть проект CCS>> (CCS Open
Project VI). Для компоновки проекта используется ВП CCS Build VI, кото
рый создает код
DS
P. ВП CCS Download Code VI загружает код в плату DSK. Да
лее для запуска
загруженного кода применяется ВП CCS Run VI. Виртуальные приборы CCS Halt VI и
CCS Close Project VI останавливают выполнение кода и закрывают проект CCS.

После создания кода DSP и заг
рузки на плату DSK, можно разработать в LabVIEW
тестирующую систему, для проверки корректности его работы. Использование системы
тестирования позволяет передать результаты симуляции в процессор и проанализировать
выходные данные. Для этого в LabVIEW предус
тановленна палитра функций,
использующих технологию RTDX. Входными и выходными данными могут быть любые
тестовые величины, которые необходимо передать в код DSP и считать для анализа.

На рис. 1
0
.
3

показана блок
-
схе
ма, поясняющая процесс передачи и при
ема
данных
с кода DSP, запущенного на плате DSK. Функциональный генератор (Basic Function
Generator VI) генерирует синусоиду, далее этот сигнал подается на вход ВП CCS RTDX
Write Array 116, записывающий массив данных в процес
сор, затем без прерывания
выполнен
ия кода, результат считывается с выходного канала ВП CCS RTDX Read Array
116 VI.



Рис. 1
0
.
3
. Обмен данными с сигнальным процессором


В
иртуальный прибор

углубленного тестирования выделены синим цветом и используют
функции низкого уровня CCS и RTDX, такие как запуск CCS, вкл
ючение или отключение
коммуникации по технологии RTDX.

На рис. 1
0
.
4

показана блок
-
схе
ма ВП «Загрузка кода CCS» (CCS Down
load Code VI),
построенная с использованием функций углубленного тестирова
ния. ВП CCS Get Build
Path VI возвращает полный путь к ском
пилированному файлу с расширением .out. Узел
вызова (Invoke node) вызывает метод, по которо
му загружается указанный файл в плату
DSK. Функция информации о файле/ директории (File/Directory Info function) возвращает
размер .out
-
файла, исполь
зуя данные о к
отором, ВП вычисляет необходимое время

60

загрузки. Во время вы
полнения программы ВП CCS Status VI отображает
пользовательские данные о текущем состоянии операции.




Рис. 1
0
.
4
. Использование функций углубленного тестирова
ния


LabVIEW DSP
-
модуль предназначен для использования в любых инженерных
задачах, в решении которых, как правило, применяют сигнальные процессоры. Его можно
применять для изучения фундаментальных основ ЦОС с применени
ем аппаратных
средств, проектировани
я систем связи, звуковой обработки и уп
равления двигателями.

П
роцесс проектирования приложения с использованием DSP
-
модуля

включает
рядэтапов.

После создания виртуального прибора необходи
мо его скомпилировать и
загрузить полученный код в выбранное устрой
ство. Дан
ный программный код очень
компактен и эффективен для большинства приложе
ний с доступной памятью на 32 кб
слов. При работе с устройствами N1SPEEDY
-
33, TI С6711 DSK и С6713 DSK можно
загрузить
виртуальный прибор

во флэш
-
память для испытания реальн
ых систем. Одно из
преимуществ графического программирования про
цессоров с использованием DSP
-
модуля
-

это наличие лицевой панели прибора, которая является интерактивным
интерфейсом пользователя при обмене данны
ми с устройством. В процессе создания ВП
по
льзователь легко может добавлять элементы управления и контроля для удобства
отладки и проверки правильности работы кода.


10
.
5

Аппаратная платформа для выполнения лабораторных работ
TMS
320
C
2000
DSC

Experimenter

Kit
. Назначение, устройство, особенности раб
оты»


TMS
320
C
2000
DSC

Experimenter

Kit

предназначен для ознакомления с
контроллерами семейства

TMS
320
F
28
x
. Набор состоит из
двух плат:
базовой платы и
платы с одним из представителей семейства

TMS
320
F
28
x
, для лабораторных работ
используются платы с контрол
лером
TMS
320
F
28335
.

Базовая плата «
docking

station
» представляет собой миниатюрную материнскую
плату с розеткой соединителя, в которую устанавливается процессорная плата


controlCARD
.

Базовая плата обеспечивает систему питанием
с напряжением
5 В
и 3,3 В
и
через вилки установленных на ней соединителей
обеспечивает доступ ко всем выводам
GPIO

и входам АЦП. На ней также расположены
соединитель интерфейса
RS
-
232
,
джамперы для настройки режима загрузки и
две области для макетирования с
монтажными отверстиями,
расположенными с шагом 2,54 мм.


61


Рис. 1
0
.
5
.
TMS
320
C
2000
DSC

Experimenter

Kit


Процессорная плата «
controlCARD

выполнена в формате
DIMM

(
Dual

in

Line

Memory

Module
)
с вилкой соединителя на 100 контактов, сформированной на печатной
плате.

На плате
с разме
рами 90х25 мм
размещены контроллер
TMS
320
F
28335

и вся
электроника, обеспечивающая его
надежное
функционирование.
В частности,
предусмотрена диодная защита и антиалайзинговая фильтрация на всех входах АЦП, а
также изоляция линии интерфейса
RS
-
232

с помощью
изолятора
ISO
7221
.

Experimenter

Kit

подключается к персональному компьютеру через интерфейс
USB
,
для чего на базовой плате установлен соответствующий соединитель.
На базовой плате
реализована также схемотехника внутрисхемного эмулятора, обеспечивающая связ
ь
реализованного в контроллере
JTAG
-
интерфейса с персональным компьютером
посредством интерфейса

USB
.
Интерфейс обеспечивает
подачу питания от компьютера,
что позволяет работать без дополнительного источника питания.

В комплект поставки
набора входит
Code

Composer

Studio

(версия с ограниченными возможностями


объем
программы не более 32 кбайт,
и интерфейсом через базовую плату), устанавливаемая на
персональный компьютер и обеспечивающая разработку и отладку программ.

При
использовании
реализованн
ого

на баз
овой плате внутрисхемн
ого

эмулятор
а

Code

Composer

Studio

должен быть сконфигурирован
для работы через

F28
3
35 XDS100
Emulator
.

На базовой плате установлен также стандартный соединитель
JTAG
-
интерфейса,
который позволяет использовать платы
Experimenter

Kit

для разработки и отладки
программ с полноценной версией
Code

Composer

Studio

и стандартным внутрисхемным
эмулятором.





Приложенные файлы

  • pdf 17442170
    Размер файла: 3 MB Загрузок: 0

Добавить комментарий