Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Prikladnoe_programmirovanie_-Konspekt_lektsy

.pdf
Скачиваний:
16
Добавлен:
21.03.2016
Размер:
2.86 Mб
Скачать

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

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

2011г.

1

Введение

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

знания:

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

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

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

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

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

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

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

умения:

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

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

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

навыки:

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

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

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

-на аппаратном уровне – цифровой сигнальный контроллер TMS320F28335;

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

Code Composer Studio.

Курс состоит из трех разделов, первый из которых посвящен изучению цифрового сигнального контроллера TMS320F28335, второй - интегрированной среды программирования и отладки Code Composer Studio. В третьем разделе в процессе выполнения шести лабораторных работ студентом осваивается методика программирования и отладки вычислительных средств информационно-навигационных систем.

2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3

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

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

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

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

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

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

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

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

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

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

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

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

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

Лекция №2 «ЦСП фирмы Texas Instruments. Семейства, области применения,

особенности архитектуры. Цифровой сигнальный контроллер TMS320F28335. Блоксхема контроллера, назначение основных узлов. Карта памяти контроллера»

2.1 ЦСП фирмы Texas Instruments. Семейства, области применения, особенности архитектуры.

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

4

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

Процессоры семейства TMS320С6000 ориентированы на применение в высокопроизводительных системах многоканальной обработки информации. Семейство объединяет 32 разрядные модели как с фиксированной так и с плавающей точкой, процессоры рассчитаны на работу с внешней памятью, встроенная память используется как кэш, в состав периферии входят интерфейсы с высокой пропускной способностью: Serial RapidIO со скоростью передачи до 5 Гигабит в секунду; PCI Express со скоростью передачи до 5 Гигабит в секунду; HyperLink со скоростью передачи до 50 Гигабит для связи с аналогичными процессорами; Ethernet со скоростью передачи до 1 Гигабит в секунду. В состав семейства входят одно- и многоядерные микросхемы с производительностью от единиц до нескольких сотен миллиардов операций в секунду.

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

2.2 Цифровой сигнальный контроллер TMS320F28335

2.2.1 Основные параметры и характеристики

Высококачественная КМОП технология:

-частота до 150 МГц;

-напряжения питания: ядра 1,9/1,8 В; периферии 3,3 В.

32-разрядное центральное процессорное устройство (CPU):

-сопроцессор (FPU) с плавающей точкой (IEEE-754 одиночной точности);

-двойной аппаратный умножитель (MAC)16х16

свозможностью выполнения 32х32;

-Гарвардская архитектура шин;

-быстрая реакция на прерывания;

-унифицированная для программирования модель памяти;

-эффективная программируемость на С/С++ и Ассемблере.

6-каналььный контроллер прямого доступа к памяти(DMA).

16или 32-разрядный интерфейс с внешней памятью (до 2Мх16 адресов).

Встроенная память:

-34Кх16 оперативная (SARAM);

-256Кх16 постоянной (Flash);

-1Кх16 постоянной (OTP ROM).

ПЗУ загрузчика 8Кх16 с режимами загрузки через различные интерфейсы и стандартными математическими таблицами.

Устройство тактирования и управления системой, содержащее встроенную электронику генератора, систему ФАПЧ с поддержкой динамического изменения отношения частот, модуль сторожевого таймера.

128-разрядный кодовый замок, защищающий встроенную память.

Три 32-разрядных таймера CPU

Расширенные средства управления исполнительными устройствами:

-18 выходов сигналов с ШИМ (PWM), из которых 6 выходов с ШИМ высокого разрешения до 150 пс (HRPWM);

5

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

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

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

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

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

-три модуля интерфейса SCI (UART);

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

-SPI модуль;

-модуль I2С;

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

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

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

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

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

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

1CPU – кроме стандартного ядра семейства F28хх содержит блок плавающей точки, обеспечивающий с одиночной точностью работу в формате 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).

6

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

Периферийный фрейм Per. Frame 3 объединяет устройства, подключенные к 32либо 16-разрядной шине периферии с прямым доступом к памяти (32-bit peripheral bus DMA accessible).

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

7

Периферийные шины мостами связаны с шиной памяти CPU. Периферийный фрейм Per. Frame 0 объединяет устройства, непосредственно подключенные к шине памяти CPU (Memory Bus).

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

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

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

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

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

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

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

8L0, L1, …, L7 SARAMs – восемь блоков памяти по 4Кх16 в каждом с независимым доступом для уменьшения глубины конвейера. Все блоки отображены на карте памяти как в пространстве программ, так и в пространстве данных, блоки L4, …, L7 доступны по прямому доступу к памяти.

9Загрузочное ПЗУ (Boot ROM) – запрограммировано при изготовлении кристалла и содержит программную поддержку первоначальной загрузки, которая может производиться из внешней и внутренней памяти или по различным интерфейсам. Код режима загрузки устанавливается схемным подключением 4 выводов процессора (GPIO84 – GPIO87).

8

10Код секретности – 128-разрядный код, программируемый пользователем и хранящийся во Flash-памяти. Единственный модуль секретности обеспечивает предохранение от чтения Flash-памяти, блоков ОТР и L0, L1, L2, L3 SARAM через JTAG-порт, исполнения программ из внешней памяти и попытки загрузки нежелательного ПО, предназначенного для экспорта содержимого засекреченных блоков памяти.

11Блок расширения периферийных прерываний (PIE) – может обслуживать до 96 источников периферийных прерываний, мультиплексируя их к небольшому числу входов CPU. 58 прерываний из 96 используются периферией процессора. Эти 96 прерываний объединяются в группы по 8 и выход каждой из групп подключается к одному из 12 входов INT1…INT12 прерываний CPU. Каждое из 96 прерываний поддерживается собственным вектором, вектора прерываний хранятся в выделенном блоке памяти (PIE Vector – RAM). На сохранение текущей информации и вызов процедуры обработки прерывания затрачивается 9 процессорных циклов.

12Внешние прерывания – поддерживаются 8 маскируемых внешних прерываний (XINT1 – XINT7, XNMI). Параметры сигналов запроса прерываний (фронт, спад) настраиваются индивидуально. XINT1, XINT2, XNMI имеют собственный 16разрядный счетчик, который позволяет делать точную отметку времени прерывания. Внешние прерывания не имеют однозначной привязки к определенным выводам микросхем,

XINT1, XINT2, XNMI могут быть запрограммированы на выводы, соответствующие GPIO0 …. GPIO31, XINT3 – XINT7 могут быть запрограммированы на выводы, соответствующие GPIO32 …. GPIO63.

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

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

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

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

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

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

9

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

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

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

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]