Файл: Отчет по лабораторной работе 1 изучение методики разработки программного обеспечения цифровых сигнальных процессоров tms320C5535 в среде code composer studio.docx
Добавлен: 08.11.2023
Просмотров: 79
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧЕРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ«СЕВАСТОПОЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»Кафедра «Радиоэлектроника и телекоммуникации»ОТЧЕТПо лабораторной работе № 1«ИЗУЧЕНИЕ МЕТОДИКИ РАЗРАБОТКИ ПРОГРАММНОГООБЕСПЕЧЕНИЯ ЦИФРОВЫХ СИГНАЛЬНЫХ ПРОЦЕССОРОВTMS320C5535 В СРЕДЕ CODE COMPOSER STUDIO» по дисциплине«Техническое обеспечение ЦОС»Выполнил: ст. гр. Р/м-19-1-оСлуженко Никита ГригорьевичПроверил: Тыщук Ю.Н.Оценка_______Севастополь 2020
— наличие коммуникационных интерфейсов 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.
Программно управляемый усилитель: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 65000Int16 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 48000unsigned 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;}
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 65000Int16 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 48000unsigned 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;}