Изучение алгоритмов формирования и обработки радиотехнических сигналов на цифровом сигнальном процессоре TMS320C5510. Практикум
.pdf
ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
Московский технический университет связи и информатики
Кафедра радиотехнических систем
КОСИЧКИНА Т.П., МИРОШНИКОВА Н.Е.,СПЕРАНСКИЙ В.С.
Практикум
Изучение алгоритмов формирования и обработки радиотехнических сигналов на цифровом сигнальном процессоре TMS320C5510
Москва 2016
План УМД на 2016/17 уч.г.
Практикум
Изучение алгоритмов формирования и обработки радиотехнических сигналов на цифровом сигнальном процессоре TMS320C5510
Составители: Т.П.Косичкина, к.т.н., доцент Н.Е.Мирошникова, ассистент В.С.Сперанский, к.т.н., профессор
Издание утверждено советом факультета РиТ. Протокол № 2 от
22.10.2015г.
Рецензент С.А.Литвин, к.т.н., доцент
2
Практикум № 1
Изучение отладочных средств цифровых сигнальных процессоров
TMS320C5510
1.1. ЦЕЛЬ РАБОТЫ
Целью данного практикума является ознакомление со средствами отладки алгоритмов цифровой обработки сигналов и примерами простых приложений. Отладочные средства включают лабораторную плату DSK5510 и интегрированную среду разработки Code Composer Studio
(CCS).
1.2. ДОМАШНЕЕ ЗАДАНИЕ
1.Изучить структурную схему цифрового сигнального процессора
TMS320C5510.
2.Ознакомиться с интегрированной средой разработки Code Composer Studio и изучить порядок работы с ней.
3.Ознакомиться с описанием отладочной платы DSK 5510 и порядком работы с ней.
4.Изучить программную реализацию модема на цифровом сигнальном процессоре TMS320C5510.
5.Подготовить ответы на контрольные вопросы.
1.3. ЗАДАНИЕ НА РАБОТУ
1.Включить лабораторную плату DSK 5510 и выполнить ее тестирование.
2.Ознакомиться с примером разработки простого приложения.
3.Ознакомиться с примером реализации модема КАМ-16.
4.Научиться пользоваться средствами визуализации и анимации.
1.4. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
1.4.1. Включить лабораторную плату DSK 5510 и выполнить ее тестирование
Включите ПЭВМ. Подключите питание к плате, дождитесь завершения самотестирования (светодиоды прекращают мигать). Запустите утилиту диагностики DSK 5510 с помощью иконки Diagnostics Utility на рабочем столе. В появившемся диалоговом окне нажмите кнопку Start. В левой части окна перечислены проводимые тесты. В случае возникновения ошибок обратитесь к преподавателю.
1.4.2. Ознакомиться с примером разработки простого приложения
Создать новый проект
В ходе выполнения этого пункта необходимо изучить следующие типы файлов, используемых при построении проекта:
3
.lib файлы библиотеки. Обеспечивают поддержку рабочего цикла программы для аппаратной части отлаживаемой ЦСП системы;
.c файлы этого типа содержат исходный код, обеспечивающий основу работы проекта;
.h заголовочные файлы. Объявляют структуры и определяют требуемые константы;
.pjt эти файлы содержат все опции для построения и конфигурирования проекта;
.asm файлы этого типа содержат ассемблерные инструкции;
.cmd файлы этого типа определяют соответствие пространства
памяти.
Создать папку project1 в директории C:\CCStudio_v3.10\RTSProjects.
Скопировать в эту папку содержимое папки
C:\CCStudio_v3.10\tutorial\sim55xx\volume1. Запустить Code Composer Studio (CCS) с помощью иконки на рабочем столе, или выбрав в меню
Windows Пуск Programs Texas Instruments Code Composer Studio 3.1 Code Composer Studio 3.1.
Из меню Project выбрать New. В текстовом поле Project Name напечатайте project1. В Location выбрать рабочую папку, созданную в п.1.4.2. В Project Type выбрать Executable (.out). В Target выбрать
аппаратную конфигурацию (C55xx) и нажать Finish. Code Composer Studio автоматически создаст файл проекта project1.pjt. Этот файл содержит все установки и ссылки на различные файлы, используемые в ходе выполнения проекта.
Добавить файлы в проект
Выбрать Project Add Files to Project. Выбрать volume.c из
созданной рабочей папки project1 и нажать Open. Выбрать
Project Add Files to Project. Выбрать тип файла источника ассемблерный файл (*.a*, *.s*) в диалоговом окне Files of type. Выбрать vectors.asm и load.asm и нажать Open. Выбрать Project Add Files to Project. Выбрать Linker Command File (*.cmd, *.lcf) в диалоговом окне
Files of type. Выбрать volume.cmd и нажать Open.
Выбрать Project Add Files to Project. Зайти в папку библиотечных файлов (C:\CCStudio_v3.10\c5500\cgtools\lib). Выбрать тип файлов Object and Library Files (*.o*, *.l) в диалоговом окне Files of type. Выбрать файл rts55.lib и нажать Open.
В окне Project View выделить правой кнопкой мыши project1.pjt и
выбрать Scan All File Dependencies. Открыть проект project1 в окне
Project View win для просмотра заголовочного файла volume.h в папке
Include.
4
Раскрыть лист проекта Project list нажатием + рядом с папками
Projects, project1.pjt, Libraries, and Source. Так вы сможете видеть весь проект и содержащиеся в нем файлы. Выбрать Debug Connect.
После двойного нажатия на название файла volume.c в Project View в правом окне откроется файл источника (программа приведена в Приложении 1).
Построить проект и запустить программу.
Выбрать Project Rebuild All или нажать
(Rebuild All) на панели инструментов. Программа перекомпилирует, переассемблирует и перекомпонует все файлы в проекте. В нижней части окна появится информация о ходе построения. По умолчанию файл .out, полученный в ходе отладки, появится в текущей папке проекта.
Выбрать File Load Program. Выбрать программу, полученную в ходе построения Volume1.out, и нажать Open.
Выбрать Debug Go Main для поиска начала выполнения программы (обозначается с помощью желтой стрелки).
Выбрать Debug Run или нажать
(Run) на панели инструментов. В нижней части экрана должен появиться текст "volume example started". Выбрать Debug Halt для остановки программы.
Научиться использовать точки пробника и окна просмотра переменных.
Выбрать File Reload Program. Двойным нажатием открыть файл volume.c в Project View. Поставить курсор на линию напротив функции
dataIO(). Нажать
(Toggle Breakpoint) или F9 (должен появиться красный кружок). Таким образом устанавливается программная точка останова.
Выбрать View Watch Window, должно открыться окно в правом нижнем углу экрана. Во время выполнения программы в этом окне можно посмотреть значения переменных. Выбрать, если этот пункт не выполнен ранее, Debug Go Main. Выбрать Debug Run или нажать F5, переменные в окне должны начать изменяться.
Выбрать таблицу Watch1. В колонке Name нажать
и посмотреть тип переменных input, output, *input, *output. После
окончания выполнения заданий нажать
(Remove all breakpoints) − удалить все точки останова.
Научиться добавлять точки пробника для чтения данных из файлов.
Выбрать File Load Program. Выбрать volume1.out, нажать Open. Открыть файл volume.c в Project View. Поставить курсор на линию
напротив функции dataIO(). Нажать
(Toggle Probe Point). Напротив
5
выбранной линии должен появиться голубой кружок. Из меню File выбрать File I/O.Откроется диалоговое окно, в котором можно выбрать входной и выходной файлы.
В таблице File Input нажать Add File. Найти папку созданного вами проекта volume1, выбрать sine.dat и нажать Open. Появится управляющее окно для файла sine.dat file. Его можно использовать для запуска, остановки, быстрой прокрутки данных файла.
В диалоговом окне File I/O изменить Address на inp_buffer и Length на 100. Поставить галочку в окошке Wrap Around. Нажать Add Probe Point. Появится диалоговое окно Probe Points. В листе Probe Point
выделить линию VOLUME.C line 61 --> No Connection. В поле Connect To нажать стрелку вниз и выбрать файл FILE IN:C:\...\sine.dat из листа файлов.
Нажать Replace. Нажать OK. Диалоговое окно File I/O покажет файл, который теперь соединен с точкой пробника. Нажать OK для закрытия диалога File I/O.
Запустить программу на выполнение.
Выбрать View Graph Time/Frequency. В диалоговом окне Graph Property Dialog измените Graph Title, Start Address, Acquisition Buffer Size, Display Data Size, DSP Data Type, Autoscale, and Maximum Y-на значения, показанные на рисунке.
6
Нажать OK. Появится окно просмотра графиков. С помощью нажатия на правую кнопку мыши, щелкнув по окну просмотра графика, выберите Clear Display из всплывающего меню. Выбрать
View Graph Time/Frequency снова. Измените Graph Title на Output и Start Address на out_buffer. Все остальные установки оставьте те же. Нажмите OK. Появится окно просмотра графиков. С помощью нажатия на правую кнопку мыши, щелкнув по окну появившегося графика, выберите Clear Display из всплывающего меню. В окне volume.c
поставьте курсор напротив линии dataIO. Нажать
(Toggle Breakpoint) или F9. Рядом с голубым кружком появится красный точка останова. Расставьте окна так, чтобы были видны оба графика.
Выбрать в меню пункты Debug Animate или нажать на панели инструментов значок
для запуска программы.
Нажмите Debug Halt для остановки программы. Поэксперементируйте с установками в Graph Property Dialog.
Изменить программу обработки
В файле источника, в строке int gain = MINGAIN;
/*переменная, управляющая усилением */ измените значение коэффициента, на который производится умножение сигнала в соответствии со значением, взятым из Таблицы 1.1, где в верхней строке обозначен номер студента по журналу группы, в нижней – значение коэффициента усиления (ослабления).
Выбрать Project Rebuild All или нажать
(Rebuild All) на панели инструментов. Выбрать File Load Program. Выбрать программу, полученную в ходе построения (project1.out) и нажать Open.
Выбрать в меню пункты Debug Animate или нажать на панели
инструментов значок
для запуска программы. Нажмите Debug Halt для остановки программы. Зарисуйте входные и выходные отсчеты на одном графике в масштабе.
Таблица 1.1
Варианты задания
Номер |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
gain |
2 |
3 |
4 |
5 |
-5 |
-4 |
-3 |
-2 |
-1 |
6 |
Номер |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
gain |
7 |
8 |
9 |
10 |
-6 |
-7 |
-8 |
-9 |
-10 |
-11 |
Модифицируйте подпрограмму обработки (processing). Для этого замените строчку *output++ = *input++ * gain;
в теле цикла while в соответствии со своим вариантом, указанным в Таблице 1.2 (номер строки соответствует номеру студента в журнале
7
группы). Вместо оператора цикла while используйте оператор цикла for.
Таблица 1.2
|
Варианты задания |
|
|
|
|
Номер по |
Вариант |
|
журналу |
||
|
||
1. |
*output++ = ~(*input++); |
|
2. |
*output++ = (*input++)&0xffc8; |
|
3. |
*output++ = (*input++)&0xffc0; |
|
4. |
*output++ = (*input++)&0xfffa; |
|
5. |
*output++ = (*input++)&0xfff0; |
|
6. |
*output++ = (*input++)&0xffca; |
|
7. |
*output++ = (*input++)&0xffe0; |
|
8. |
*output++ = (*input++)&0xffd0; |
|
9. |
*output++ = (*input++)&0xfff8; |
|
10. |
*output++ = (*input++)&0xffc4; |
|
11. |
*output++ = (*input++)&0xff80; |
|
12. |
*output++ = (*input++)&(~0x0003); |
|
13. |
*output++ = (*input++)&(~0x0005); |
|
14. |
*output++ = (*input++)&(~0x0006); |
|
15. |
*output++ = (*input++)&(~0x000c); |
|
16. |
*output++ = (*input++)&(~0x0033); |
|
17. |
*output++ = (*input++)&(~0x0030); |
|
18. |
*output++ = (*input++)&(~0x0050); |
|
19. |
*output++ = (*input++)&(~0x006c); |
|
20. |
*output++ = (*input++)&(~0x005f); |
Выбрать Project Rebuild All или нажать
(Rebuild All) на панели инструментов. Выбрать File Load Program. Выбрать программу, полученную в ходе построения (project1.out), и нажать Open. Выбрать в меню пункты Debug Animate или нажать на панели инструментов
значок
для запуска программы. Нажмите Debug Halt для остановки программы. Зарисуйте график выходных отсчетов. Объясните полученный график. Каким еще способом можно выполнить данную операцию?
1.4.3. Ознакомиться с примером реализации модема КАМ-16
Открыть проект
В меню Project выбрать Close для закрытия проектов, которые были открыты до этого. В меню Project выбрать Open. Найти проект «модем», находящийся по следующему пути
C:\CCStudio_v3.10\tutorial\С55хх\modem\modem.pjt и открыть его, нажав
Open.
8
Вменю Project выбрать Build Options. Выбрать в меню Compiler.
Впоявившейся таблице установить уровень оптимизации (Opt Level) "None", а в строке Generate Debug Info установить "Full Symbolic Debug (-g)". Нажать OK.
Из выпадающего меню Project Configuration выбрать Debug. В меню
Project выбрать Rebuild All. В меню File выбрать Load Program. Найти файл modem.out, находящийся в папке
C:\CCStudio_v3.10\tutorial\С55хх\modem\Debug, и нажать Open.
Вменю Debug выбрать Go Main. В окне Project View навести курсор мыши на файл modemtx.c и, нажав правую кнопку мыши, из контекстного меню выбрать Open. Ознакомиться с программой.
После открытия файла modemtx.с выделить строчку ReadNextData(); (строка 337) с помощью нажатия на правую кнопку мыши. Из всплывающего диалога выбрать Toggle Software Breakpoint. В меню Debug выбрать Run. Щёлкнуть правой кнопкой мыши по строчке
ReadNextData(); и выбрать Toggle Software Probe Point.
Вменю File выбрать File I/O, в появившейся таблице удалить все входные и выходные файлы. В табличке File Input выбрать Add File. В окне File Input выбрать pseudo.dat и нажать Open. Необходимо подняться на уровень выше той папки, в которой вы находитесь, для того чтобы найти данный файл. В поле Address ввести: g_ModemData.dataSymbols. В поле Length ввести 1.
Поставить флажок напротив Wrap Around. В таблице File Input выбрать Add File. В таблице File Input выбрать gauss32.dat и нажать Open. В
поле Address напечатать: g_ModemData.cNoise. В поле Length
напечатать 2.
После этих действий диалоговое окно File I/O должно выглядеть следующим образом:
9
Соединить точки пробника с файлом данных.
В диалоговом окне File I/O выбрать gauss32.dat и нажать Add Probe Point. В табличке Probe Point выбрать modemtx.c line 337 (0x00001880) - -> No Connection. В листе Connect to выбрать FILE IN: gauss32.dat.
Выбрать Replace. Нажать OK.
В диалоговом окне File I/O выбрать pseudo.dat и нажать Add Probe Point. В табличке Probe Point выбрать modemtx.c line 337 modemtx.c line 337 -->. В листе Connect to выбрать FILE IN: pseudo.dat. Выбрать Add.
Дважды нажать OK для сохранения изменений и закрытия диалогового окна File I/O.
1.4.4.Научиться пользоваться средствами визуализации и анимации
Всреде разработки Code Composer Studio для удобства разработки телекоммуникационных приложений существуют четыре различных графических окна: временная диаграмма, БПФ, глаз-диаграмма и диаграмма сигнальных созвездий.
Временная диаграмма
Вменю View выбрать Graph Time/Frequency. Заполнить диалоговое окно Graph Property Dialog в соответствии с нижеприведенным рисунком. Нажать OK для сохранения введенных значений. Появится окно просмотра графиков.
С помощью нажатия на правую кнопку мыши, щелкнув по окну просмотра графика, выбрать Clear Display из всплывающего меню. В
10
