Изучение алгоритмов формирования и обработки радиотехнических сигналов на цифровом сигнальном процессоре TMS320C5510. Практикум
.pdf
меню Debug выбрать Probe Points. В листе Probe Point выбрать
MODEMTX.C line 337 -->. В поле Connect To выбрать In Phase Delay Line и нажать Add. Нажать OK для сохранения введенных данных и закрытия диалогового окна.
В меню Debug выбрать Animate или нажать на панели
инструментов
(Animate) для запуска программы. На графике должна появиться временная диаграмма сигнала КАМ. В меню Debug выбрать Halt для остановки программы. Зарисовать полученный график.
Глаз-диаграмма
В меню View выбрать Graph Eye Diagram. В диалоговом окне Graph Property Dialog ввести данные в соответствии с нижеприведенным рисунком. Нажать OK для сохранения введенных значений и открытия окна глаз-диаграммы.
С помощью нажатия на правую кнопку мыши, щелкнув по окну просмотра графика, выбрать Clear Display из всплывающего меню. В
меню Debug выбрать Probe Points. В листе Probe Point выбрать MODEMTX.C line 337 -->. В поле Connect To выбрать Eye Diagram и
нажать Add. Нажать OK для сохранения введенных данных и закрытия диалогового окна.
В меню Debug выбрать Animate или нажать на панели инструментов
(Animate) для запуска программы. На графике должна появиться глаз-
11
диаграмма сигнала КАМ. В меню Debug выбрать Halt для остановки программы. Зарисовать полученный график.
Сигнальное созвездие
В меню View выбрать Graph Constellation. Заполнить диалоговое окно Graph Property Dialog в соответствии с нижеприведенным рисунком. Нажать OK для сохранения введенных значений и открытия окна просмотра сигнальных созвездий.
С помощью нажатия на правую кнопку мыши, щелкнув по окну просмотра графика, выбрать Clear Display из всплывающего меню. В
меню Debug выбрать Probe Points. В листе Probe Point выбрать MODEMTX.C line 337 -->. В поле Connect To выбрать Constellation Plot
и нажать Add. Нажать OK для сохранения введенных данных и закрытия диалогового окна.
Вменю Debug выбрать Animate или нажать на панели
инструментов
(Animate) для запуска программы. На графике должно появиться сигнальное созвездие сигнала КАМ. В меню Debug выбрать Halt для остановки программы. Зарисовать полученный график. Определить кратность модуляции.
Преобразование Фурье (просмотр графика в частотной области)
В меню View выбрать Graph Time/Frequency. Заполнить диалоговое окно Graph Property Dialog в соответствии с нижеприведенным рисунком. Нажать OK для сохранения введенных значений и открытия окна просмотра БПФ.
12
С помощью нажатия на правую кнопку мыши, щелкнув по окну просмотра графика, выбрать Clear Display из всплывающего меню. В
меню Debug выбрать Probe Points. В листе Probe Point выбрать MODEMTX.C line 337 -->. В поле Connect To выбрать FFT Waterfall и
нажать Add. Нажать OK для сохранения введенных данных и закрытия диалогового окна.
В меню Debug выбрать Animate или нажать на панели
инструментов
(Animate) для запуска программы. На графике можно наблюдать сигнал КАМ в частотной области. В меню Debug выбрать Halt для остановки программы.
1.5. СОДЕРЖАНИЕ ОТЧЕТА
Отчет должен содержать цель работы, выполняемый вариант, пример основной программы и программы обработки, графики колебаний в масштабе. Отчет заканчивается выводами по проделанной работе.
1.6.КОНТРОЛЬНЫЕ ВОПРОСЫ
1.Перечислите основные области применения цифровых сигнальных процессоров (ЦСП).
2.Дайте определение архитектуры микропроцессора.
3.Какие требования предъявляются к архитектуре ЦСП?
4.Из чего состоит командный цикл?
5.В чем различие понятий «машинный цикл» и «командный цикл»?
13
6.Поясните смысл конвейерной обработки на примере трехступенчатого конвейера.
7.Приведите типовую структуру современного ЦСП и объясните назначение функциональных модулей.
8.Что входит в состав периферийных устройств типового ЦСП?
9.Каковы основные характеристики ЦСП?
10.Каковы основные компоненты базовой архитектуры ЦСП
TMS320C5510?
11.Как представлены периферийные устройства в архитектуре ЦСП
TMS320C5510?
12.Сколько шин в процессоре TMS320C5510? Каковы их функции и разрядность?
13.Каковы основные компоненты структурной схемы ядра ЦСП TMS320C5510 и их функциональное назначение?
14.За счет каких элементов архитектуры ЦСП TMS320C5510 обладает высокой производительностью?
15.Какие программные и аппаратные средства используются для разработки и отладки программ сигнальных процессоров
TMS320C5510?
16.Каковы основные этапы проектирования систем на базе ЦСП
TMS320C5510?
17.Поясните понятия «проект», «менеджер проектов».
18.Какие средства используются для редактирования файлов в среде разработки CCS?
19.Для чего используются точки останова?
20.Для чего используются точки пробника?
21.Поясните разницу между точками останова и точками пробника.
22.Перечислите средства визуализации данных, с которыми вы познакомились в ходе выполнения работы и объясните их назначение.
23.Какова структура лабораторной платы для отладки систем на базе сигнального процессора TMS320C5510?
Список литературы
1.Сперанский B.C. Сигнальные микропроцессоры и их применение в системах телекоммуникаций и электроники: Учебное пособие для вузов.– М.: Горячая линия-Телеком, 2008. - 168 с.
2.TMS320C55x DSP CPU Reference Guide. Literature Number: SPRU371F, February 2004.
14
Практикум № 2
Изучение формирователей синусоидальных колебаний и шума на цифровом сигнальном процессоре TMS320C5510
2.1. ЦЕЛЬ РАБОТЫ
Изучение методов цифрового формирования синусоидального и шумового колебаний и его реализации на цифровом сигнальном процессоре.
2.2. ДОМАШНЕЕ ЗАДАНИЕ
1.Изучить по указанной литературе и данному описанию цифровые алгоритмы формирования синусоидального колебания и шума и методы их реализации.
2.Изучить программную реализацию на языке С формирователя синусоидального колебания на цифровом сигнальном процессоре TMS320C5510, приведенную в Приложении 2.
3.Подготовить на языке С код формирователя шумового колебания и формирователя синусоидального колебания в соответствии с вариантом, заданным в Таблицах 2.1 и 2.2. Варианты выбираются в соответствии с номером бригады в журнале лабораторных работ.
4.Подготовить ответы на контрольные вопросы.
2.3. ЗАДАНИЕ НА РАБОТУ
1.Включить лабораторную плату DSK 5510 и выполнить ее тестирование.
2.В соответствии с методическими указаниями запустить Code Composer Studio (CCS) и сформировать синусоидальное колебание с указанными в Таблице 1 параметрами. С помощью осциллографа убедиться в верности полученного результата.
3.С помощью указанных в Таблице 2 параметров сформировать шумовое колебание из равномерно распределенных отсчетов.
Зарисовать колебание с экрана осциллографа. Для всех вариантов взять значения x0=31 и m=215-1=32767.
Таблица 2.1
Параметры синусоидального колебания
№ в |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
журнале |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Амплитуда |
0.5 |
0.2 |
0.5 |
0.4 |
0.9 |
0.6 |
0.7 |
0.8 |
0.3 |
0.1 |
0.2 |
0.5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Частота, |
0.1 |
1.2 |
0.3 |
1.4 |
0.5 |
1.6 |
4.8 |
0.8 |
2.2 |
2.4 |
3.2 |
2.0 |
кГц |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15
Таблица 2.2
Параметры шумового колебания
№ в журнале |
1 |
2 |
3 |
4 |
5 |
6 |
a |
26125 |
311 |
117 |
10933 |
26125 |
311 |
|
|
|
|
|
|
|
c |
3 |
5 |
11 |
17 |
19 |
23 |
|
|
|
|
|
|
|
№ в журнале |
7 |
8 |
9 |
10 |
11 |
12 |
|
|
|
|
|
|
|
a |
29 |
27 |
1029 |
149 |
26125 |
1029 |
|
|
|
|
|
|
|
c |
29 |
37 |
3 |
5 |
11 |
17 |
|
|
|
|
|
|
|
2.4. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
2.4.1. Подключить лабораторную плату DSK 5510 к осциллографу (на вход осциллографа подать сигнал с выхода line out, к выходу hp out можно подключить наушники). Включить осциллограф и лабораторную плату DSK 5510, выполнив ее тестирование (см. пункт 1.4.1 практикума № 1).
2.4.2. Создать папку project2 в директории C:\CCStudio_v3.10\RTSProjects. Скопировать в эту папку содержимое папки C:\CCStudio_v3.10\examples\dsk5510\bsl\tone или папку, указанную преподавателем.
2.4.3. Запустить Code Composer Studio (CCS) с помощью иконки на рабочем столе, или выбрав в меню Windows Пуск Programs Texas Instruments Code Composer Studio 3.1 Code Composer Studio 3.1.
2.4.4. Для соединения среды программирования с отладочной платой выбрать Debug Connect.
2.4.5. С помощью меню Project Open открыть проект tone.pjt,
находящийся в папке C:\CCStudio_v3.10\RTSProjects\project2. Собирать заново проект не нужно, для работы используется готовый проект.
2.4.6. Ознакомиться с кодом файла источника. После двойного нажатия на название файла tone.c в Project View в правом окне откроется файл источника (программа приведена в Приложении 2). В этом примере используется модуль кодека AIC23 из библиотеки поддержки платы DSK5510. Программно генерируемый синусоидальный сигнал частотой 1 кГц подается на аудиовыходы в течение 5 секунд. Таблица синуса предварительно рассчитывается и записывается в массив с именем sinetable. По умолчанию кодек работает с частотой дискретизации 48 кГц. Поскольку рассчитанная таблица синусоидального колебания имеет 48 отсчетов на период, то время выполнения внутреннего цикла занимает 1 мс (частота 1 кГц), а 5000-кратное выполнение внешнего цикла занимает 5 секунд.
2.4.7.Построить проект и запустить программу. Выбрать
Project Rebuild All или нажать |
(Rebuild All) на панели |
16
инструментов. Программа перекомпилирует, переассемблирует и перекомпонует все файлы в проекте. В нижней части окна появится информация о ходе построения. По умолчанию файл tone.out, полученный в ходе отладки появится в папке Debug в текущей папке проекта.
2.4.8.Выбрать File Load Program. Выбрать программу, полученную в ходе построения tone.out и нажать Open.
2.4.9.Выбрать Debug Run или нажать
(Run) на панели инструментов.
2.4.10. Для остановки программы Выбрать Debug Halt. 2.4.11. В файле tone.c внести следующие изменения:
1)выполнение внешнего цикла сделать постоянным с помощью инструкции while(1);
2)во внутренний цикл внести изменения для генерации
синусоидального |
колебания |
в |
соответствии |
с |
заданием |
|||
(см. методические указания к данному практикуму). |
|
|
||||||
2.4.12. |
Построить |
проект и |
запустить |
программу. |
Выбрать |
|||
Project Incremental Build или нажать |
на |
панели инструментов. |
||||||
Отладить программу. |
|
|
|
|
|
|
|
|
2.4.13. |
Выбрать Debug Run |
или |
нажать |
(Run) |
на |
панели |
||
инструментов.
2.4.14. Зарисовать сигнал с экрана осциллографа в масштабе. 2.4.15. В файле tone.c внести следующие изменения:
1)в начале программы main вместо переменных Int16 msec, sample ввести новые переменные, задающие значения x0, m, a, с и инициализировать их в соответствии с заданием (Таблица 2);
2)во внутренний цикл внести изменения для формирования шумового колебания в соответствии с заданием (см. методические указания). 2.4.16. Построить проект и запустить программу. Выбрать
Project Incremental Build или нажать
на панели инструментов. Отладить программу.
2.4.17. Выбрать Debug Run или нажать
(Run) на панели инструментов.
2.4.18. Зарисовать сигнал с экрана осциллографа в масштабе.
2.5. СОДЕРЖАНИЕ ОТЧЕТА
Отчет должен содержать: цель работы, индивидуальное задание, алгоритмы формирования синусоидального колебания и шумового колебания, блок-схемы алгоритмов, подпрограммы формирования на языке С, графики колебаний в масштабе. Отчет заканчивается выводами по работе.
17
2.6.МЕТОДИЧЕСКИЕ УКАЗАНИЯ
2.6.1.Методы цифрового формирования синусоидального колебания
Значительная часть задач, связанных с созданием цифровых радиотехнических устройств и систем, относится к разработке генераторов сигналов, входящих в состав модуляторов радиопередатчиков, радиомодемов, корреляционных устройств и т. п. Синусоидальная функция широко используется в цифровой обработке сигналов радиосвязи (например, цифровая модуляция, генерация тональных сигналов в цифровых кнопочных телефонах).
Существует несколько методов формирования гармонического колебания y=sin(x), из них наибольшее распространение получили два метода: табличный (или метод одного эталона) и метод аппроксимации
[1; 2].
При табличном методе предварительно рассчитываются и записываются в память данных процессора значения функции синуса на
периоде, с некоторым шагом . При шаге 1 градус нужны 360 ячеек памяти. Затем, в соответствии с программой, формируются адреса ячеек памяти, из которых вызываются значения функции с шагом 1 более крупным, чем в заданной таблице. Так для формирования функции с достаточной точностью можно взять 12 выборок с шагом 30 градусов.
Из той же таблицы возможно получить при одной тактовой частоте два гармонических колебания разной частоты: для этого шаг выборки по фазе берется разный. Вызванные отсчеты, если нужно, умножаются на коэффициент амплитуды, пересылаются в регистр передачи последовательного порта и с его выхода поступают на ЦАП (кодек). Полученное колебание фильтруется аналоговым фильтром нижних частот с целью удаления гармоник.
Другой способ предполагает вычисление и запись в память только необходимых отсчетов. При таком способе можно существенно сэкономить память, но при этом будет формироваться колебание только одной частоты. Для получения синусоидального колебания нужной частоты необходимо рассчитать длительность периода и разделить его на период следования отсчетов. Тот же результат получаем, разделив частоту дискретизации на заданную частоту. Получим необходимое число отсчетов синусоидального колебания, для которых рассчитываем соответствующие значения (к примеру, в системе Matlab c помощью программы, приведенной в Приложении 3).
Например, необходимо сгенерировать колебание с частотой 3.5 кГц. Для этого необходимо 48/3.5 ≈ 14 выборок (рис. 2.1). При процессорной реализации табличного метода таблица значений отсчетов представляется в формате 1.15, причем старший разряд является знаковым. При этом угол в 180 градусов равен максимальному положительному числу 0х7FFF, а угол в –180 градусов равен
18
максимальному отрицательному числу 0х8D00. При запуске программы формируется заголовочный файл следующего вида:
int sineTable [SIZE_SINE_TABLE] = {0x0, 0x2744, 0x46c2, 0x583c, 0x583c, 0x46c2, 0x2744, 0x0, 0xd8bb, 0xb93d, 0xa7c3, 0xa7c3, 0xb93d, 0xd8bb};
Его необходимо включить в свой проект.
Рис. 2.1. Расчет таблицы значений синуса с помощью программы Matlab
Другой метод использует аппроксимацию функции y sin(x) степенным рядом, например
y 3.140625x 0.02026367 x2 - 5.325196 x3 0.5446778 x4 1.800293x5 .
Аргументом функции является нормированная переменная x , связанная
с угловой мерой 180 180 или |
( рад) соотношениями |
|
x / 180 или |
x ( рад) / , |
таким образом 1 x 1. |
Непосредственно вычисления по формуле выполняются для первого квадранта, соответствующего значениям 0 x 0.5, или 0 90 , или 0 ( рад) / 2 , так как только в этом квадранте наблюдается хорошее совпадение синусоидальной функции со степенным рядом (рис.
2.2). |
Для |
других |
квадрантов |
используются |
соотношения: |
sin( ) sin( ) , sin(180 ) sin( ) , и |
sin( 180) sin( ) . |
||||
При реализации алгоритма сначала анализируется значение аргумента x. Если оно соответствует первому квадранту, значение функции y sin(x) вычисляется по приведенной выше формуле. Если значение аргумента находится во втором или четвертом квадрантах, то вычисленное значение инвертируется. Знак результата вычисления также корректируется с учетом номера квадранта. Функцию cos( ) можно вычислить с учетом соотношения: cos( ) sin( / 2) . Для получения синусоидального сигнала заданной амплитуды предусматривается
19
амплитудный множитель, для получения синусоидального сигнала заданной частоты соответствующим образом выбирается частота дискретизации. Обычно она составляет fd (60...100) fc , где fc частота
сигнала. Так как коэффициенты представлены в формате 4.12, то необходима команда сдвига для приведения результата к формату 1.15
[1].
Рис. 2.2. Графики синусоидальной функции и полинома, вычисленного по приближенной формуле
6.2.2.Формирователь шума
Вданной работе используется конгруэнтный алгоритм, подробно рассмотренный в [2]. Рассматриваются методы генерирования последовательности случайных дробей, т.е. случайных действительных чисел Un, равномерно распределенных между нулем и единицей (на интервале [0,1]). Так как компьютер может представлять действительные числа только с определенной точностью, генерируются целые числа х(n) между нулем и некоторым числом m. Дробь U(n) = х(п)/m будет, следовательно, лежать между нулем и единицей. Обычно m выбирают равным размеру слова в процессоре.
Внастоящее время наиболее популярными генераторами случайных чисел являются генераторы, в которых используется следующая схема, предложенная Д.Г. Лехмером (D.H. Lehmer) в 1949 году:
x n 1 ax n c mod m, n 0,
где а – множитель; x0 – начальное условие; с – приращение; m – модуль;
0<m, 0<a<m, 0<c<m, 0<x0<m.
20
