Файл: Отчет по лабораторной работе 1 изучение методики разработки программного обеспечения цифровых сигнальных процессоров tms320C5535 в среде code composer studio.docx

ВУЗ: Не указан

Категория: Отчет по практике

Дисциплина: Не указана

Добавлен: 08.11.2023

Просмотров: 15

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧЕРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«СЕВАСТОПОЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Кафедра «Радиоэлектроника и телекоммуникации»

ОТЧЕТ

По лабораторной работе № 1

«ИЗУЧЕНИЕ МЕТОДИКИ РАЗРАБОТКИ ПРОГРАММНОГО

ОБЕСПЕЧЕНИЯ ЦИФРОВЫХ СИГНАЛЬНЫХ ПРОЦЕССОРОВ

TMS320C5535 В СРЕДЕ CODE COMPOSER STUDIO»

по дисциплине

«Техническое обеспечение ЦОС»


Выполнил: ст. гр. Р/м-19-1-о

Служенко Никита Григорьевич

Проверил:

Тыщук Ю.Н.

Оценка_______

Севастополь 2020

1. ОПИСАНИЕ ЛАБОРАТОРНОГО СТЕНДА


Производители цифровых сигнальных процессоров (ЦСП) предлагают проектировщикам систем ЦОС широкую номенклатуру отладочных наборов разработчика (Development Kit). Отладочный набор TMS320C5535eZDSP предназначен для разработки систем цифровой обработки сигналов реального времени на базе ЦСП TMS320C5535 фирмы Texas Instruments. В состав набора входит печатная плата с размещенными на ней типовыми для систем ЦОС компонентами: цифровым сигнальным процессором; кодеком (AIC 3204), в состав которого входят программно управляемые усилители (PGA), аналого-цифровой и цифро-аналоговый преобразователи (АЦП/ЦАП); микросхема памяти и пр.

Для возможности отладки программного обеспечения предусмотрено подключение платы к персональному компьютеру (ПК) при помощи USB порта. Состав платы TMS320C5535eZDSP показан на рис. 1.



Рис. 1 — Состав платы TMS320C5535eZDSP
Важнейшим компонентом платы является ЦСП TMS320C5535, имеющий

следующие основные характеристики:

— 16-разрядный DSP процессор с фиксированной точкой;

— тактовая частота до 100 МГц;

— производительность 240 MIPS;

— ОЗУ объемом 320 Кбайт;

— низкое энергопотребление (в активном режиме менее 0,15 мВт/МГц);


— наличие коммуникационных интерфейсов I2S, I2C, UART, SPI;

— контроллер USB 2.0 с поддержкой SD/MMC карт памяти;

— сопроцессор быстрого преобразования Фурье (до 1024 точек);

— три 32-битных таймера общего назначения.

Процессор выполняет программу, задаваемую разработчиком, реализуя требуемый алгоритм обработки сигналов. Функции АЦП/ЦАП выполняет микросхема кодека AIC3204, обеспечивая ввод/вывод цифрового сигнала в процессор/из процессора. Кодек поддерживает частоты дискретизации в диапазоне (8…96) кГц. Аналоговые сигналы поступают на плату посредством стандартного разъема (Stereo in) и выводятся с платы с помощью разъема (Stereo out), к которым подключаются входящие в набор наушники с микрофоном. На плате размещается микросхема Flash-памяти объемом 8 Mбайт, жидкокристаллический дисплей (OLED Display), светодиодные индикаторы (LEDs), стабилизаторы питания (LDO), две пользовательские кнопки (SW1, SW2), контроллер интерфейса USB 2.0, MicroSD карта памяти объемом 2 Гб. Связь ПК с платой, необходимая для программирования процессора и отладки работы системы, осуществляется через USB-разъем и встроенный эмулятор (Embedded XDS100 JTAG). Интегрированный эмулятор XDS100 обеспечивает возможность полноценной отладки и видимость регистров внутри процессора для оптимизации алгоритмов его работы.

Разъем (P2) для плат расширения позволяет разработчикам создавать сложные системы ЦОС и напрямую подключать дочерние платы.

Питание платы осуществляется от источника постоянного напряжения 5В персонального компьютера через USB-разъем.

С помощью отладочного набора TMS320C5535eZDSP можно реализовать

такие цифровые устройства, как: портативные аудиоплееры, звукозаписывающие устройства, IP-телефоны, портативные медицинские устройства, биометрические USB-ключи, измерительные приборы и пр. Программирование процессора и отладка работы системы реализуются в интегрированной программной среде Code Composer Studio.

2. РЕЗУЛЬТАТЫ РАБОТЫ


2.1. Увеличение громкости воспроизведения за счет программной обработки сигнала и программно-управляемого усилителя.
Программной обработки:

left_output = n*left_input;

right_output = n*right_input;

где n — коэффиц. усиления в разах.



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

set_sampling_frequency_and_gain(SAMPLES_PER_SECOND, n);

где n — коэффиц. усиления в дБ.

2.2. Исследование влияния частоты дискретизации на качество воспроизводимого сигнала.
Измерения проводились в полосе частот 8…96 КГц.

8 кГц — крайне плохое качество

12 кГц — достаточно плохое качество

24 кГц — умеренно хорошее качество

48 кГц — достаточно хорошее качество

96 кГц — отличное качество

2.3. Задание 3 — исследование влияния разрядности отсчетов на качество воспроизводимого сигнала.
left_output = (left_input & 0xFFF0);

0xFFF0= 1111_1111_1111_0000. — отличное качество

0xFFЕ0= 1111_1111_1110_0000. — чуть хуже, но все еще отличное качество

0xFFС0= 1111_1111_1100_0000. — хорошее качество

0xFF80= 1111_1111_1000_0000. — достаточно приемлемое качество

0xFС00= 1111_1100_0000_0000. — значительное ухудшение качества

0x0001= 0000_0000_0000_0001. — ужасное качество

3.4. Генерация эхо
#include "stdio.h"

#include "usbstk5505.h"

#include "aic3204.h"

#include "PLL.h"

#include "stereo.h"


#define NNNN 65000
Int16 left_input;

Int16 right_input;

Int16 left_output;

Int16 right_output;

Int16 mono_input;

Int16 buf[NNNN];

Int16 I_read=1;

Int16 I_write=0;
#define SAMPLES_PER_SECOND 48000
unsigned long int i = 0;
* main( )

*

void main( void )

{

/* Initialize BSL */

USBSTK5505_init( );

/* Initialize PLL */

pll_frequency_setup(100);
/* Initialise hardware interface and I2C for code */

aic3204_hardware_init();

/* Initialise the AIC3204 codec */

aic3204_init();
printf("\n\nRunning Getting Started Project\n");

printf( "<-> Audio Loopback from Stereo IN --> to HP/Lineout\n" );

/* Setup sampling frequency and 30dB gain for microphone */

set_sampling_frequency_and_gain(SAMPLES_PER_SECOND, 30);

asm(" bclr XF");

for ( i = 0 ; i < SAMPLES_PER_SECOND * 600L ;i++ ){
aic3204_codec_read(&left_input, &right_input); // Configured for one interrupt per two channels.

mono_input = stereo_to_mono(left_input, right_input);

buf[I_write]=left_input;
left_output = left_input+0.5*buf[I_read]; // Very simple processing. Replace with your own code!

right_output = right_input+0.5*buf[I_read]; // Directly connect inputs to outputs.

I_write++;

I_read++;
if ( I_write>NNNN-1)

I_write=0;
if ( I_read>NNNN-1)

I_read=0;
aic3204_codec_write(left_output, right_output);}
/* Disable I2S and put codec into reset */

aic3204_disable();
printf( "\n***Program has Terminated***\n" );

SW_BREAKPOINT;

}