ЭУМК по дисциплине "Проектирование проблемно-ориентированных вычислительных средств" › Практика › Лабораторная работа "ПРОГРАММНО-УПРАВЛЯЕМЫЙ ГЕНЕРАТОР ДЛЯ МОДУЛЯТОРА FSK-МОДЕМА"

# Электронный учебно-методический
комплекс по дисциплине
"Проектирование проблемно-ориентированных вычислительных средств"

для специальности

1-40 02 02 «Электронные вычислительные средства»

Оглавление | Программа | Теория | Практика | Контроль знаний | Об авторах

ЛАБОРАТОРНАЯ РАБОТА № 5.
ПРОГРАММНО-УПРАВЛЯЕМЫЙ ГЕНЕРАТОР ДЛЯ МОДУЛЯТОРА FSK-МОДЕМА.

ЦЕЛЬ РАБОТЫ: Разработка алгоритма и программы табличного генератора синусоидальных сигналов с управляемой частотой для модулятора FSK-модема на ассемблере процессора TMS320VC5402 и отладка программы на лабораторном макете TMS320VC5402 DSP Starter Kit.

5.1. ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
5.1.1. Принцип работы модема с частотной модуляцией

Передача цифровых данных по линиям связи осуществляется с использованием модемов (модулятор-демодулятор). При этом цифровой сигнал преобразуется в аналоговый сигнал определенным образом. Одним из способов модуляции является частотная модуляция (FSK – frequency shift keyed), при которой передаваемым единицам и нулям соответствуют сигналы разной частоты. Существует множество стандартов для модемов с частотной модуляцией (FSK-модемов). Некоторые из них представлены в табл. 5.1.

Таблица 5.1 - Основные параметры FSK-модемов различных стандартов

| Стандарт | Скорость, бод | Несущая, Гц | Частота 1, Гц | Частота 0, Гц
| V.21 Исходный | 300 | 1080 | 980 | 1180
| Ответный | 300 | 1750 | 1650 | 1850
| BELL 103 Исходный | 300 | 1170 | 1270 | 1070
| Ответный | 300 | 2125 | 2225 | 2025
| V.23 | 600,1200 | 1700 | 1300 | 2100
| BELL 202 | 1200 | 1700 | 1200 | 2200

В качестве примера для дальнейших расчетов выберем стандарт V.23 со скоростью передачи 1200 бод.
Каждый модем состоит из двух частей: модулятора и демодулятора. В основе работы модулятора лежит следующее соотношение:

| S(t) = cos[(ωc ± δω)t + φ] , | (5.1)

где S(t) – передаваемый сигнал; ωc – несущая частота; δω – девиация частоты, t – время, φ – сдвиг фазы.
На каждом из интервалов T сигнал S(t) с частотой f0 = (fc + δf) или
f1 = (fc – δf) соответствует передаче бита «0» или «1». Из выражений для определения частот ω0 и ω1:
ω0 = (ωc + δω) ,
ω1 = (ωc – dω) ,
можно получить выражения для ωc и δω:
ωc = (ω0 + ω1)/2 ,
δω = (ω0 – ω1)/2 .
Ниже на рис. 5.1 приведен примерный вид сигнала на выходе модема при передаче кода 010.

######

###### Рисунок 5.1 – Сигнал на выходе передатчика для кода 010

5.1.2. Программно-управляемый генератор синусоидальных сигналов

Для выбранного стандарта заданы следующие частоты: fc = 1700 Гц, f1 = 1300 Гц, f0 = 2100 Гц, δf = 400 Гц.
Простейшим способом формирования сигнала в модуляторе при использовании цифровой техники является табличный метод формирования синусоиды. Для этого в памяти модулятора хранится таблица синуса из некоторого числа точек в диапазоне от 0 до 2Π.
Число точек в таблице определяется частотой дискретизации, скоростью передачи и частотами единицы и нуля. Частота дискретизации выбирается по теореме Котельникова исходя из максимальной передаваемой частоты и скорости передачи. Согласно теореме Котельникова соотношение частоты дискретизации fД и максимальной частоты (в нашем примере f0) должно быть не менее двух. На практике обычно выбирается соотношение четыре или больше:

| fД = 2100 x 4 = 8400 Гц . | (5.2)

За время передачи одного бита информации должно передаваться целое число отсчетов синуса. Частота дискретизации выбирается кратной скорости передачи из ряда 600, 1200, 2400, 4800, 9600 Гц. Таким образом, ближайшее значение, превышающее (5.2), равно 9600 Гц.
При выбранной частоте дискретизации за секунду передается 9600 отсчетов синуса и на один бит передаваемой информации приходится
n = fД / V = 9600 / 1200 = 8 (отсчетов) ,
где V = 1200 бод – выбранная скорость передачи данных.
Если выбрать размер таблицы синуса в 9600 отсчетов и выдавать с частотой дискретизации каждый отсчет из таблицы, то за 1 с будут переданы все отсчеты из таблицы (один период), что соответствует частоте 1 Гц. Если выбирать из таблицы отсчеты с шагом 2 – получим сигнал с частотой 2 Гц, а если с шагом 1300 – с частотой 1300 Гц соответственно.
Таким образом, таблица из 9600 отсчетов позволяет формировать сигналы с частотами, кратными 1 Гц. Но поскольку необходимо формировать сигнал с частотами 1300 Гц и 2100 Гц, то совсем не обязательно иметь такую большую таблицу. В нашем случае достаточна дискретность по частоте в 100 Гц.
Найдем наибольший общий делитель для чисел 1300, 2100 и 9600 (f1, f0 и fД соответственно), который равен 100. Разделив данные числа на 100, получим следующие значения: S1 = 13, S0 = 21 и N = 96, где S1 и S0 – шаг по таблице для «1» и «0» соответственно, а N – размер таблицы синуса.
Выбирая данные из таблицы с шагом 1, за 1 с (9600 тактов) переберем таблицу 100 раз (100 периодов синуса), что дает сигнал с частотой 100 Гц, с шагом 13 – 1300 Гц, а с шагом 21 – 2100 Гц, что и требуется при заданных исходных данных.

5.1.3. Замечания по программированию управляемого генератора

При программировании генератора синусоидальных сигналов необходимо учесть следующие замечания:

- все используемые в программе константы (S0, S1, N и др.) должны быть определены в начале программы с помощью директивы .set;
- при выборе данных из таблицы синуса необходимо применять косвенную циклическую адресацию *ARx+0% (прил. 4), занеся предварительно в регистр размера кольцевого буфера BK длину таблицы синуса, а во вспомогательный регистр AR0 – нужный шаг (в зависимости от передаваемого бита);
- для правильной работы циклической адресации таблицу синуса нужно расположить начиная с адреса, кратного степени двойки, большей, чем длина таблицы синуса;
- таблицы синуса для всех вариантов подготовлены заранее и хранятся в виде отдельных файлов;
- данные из таблиц синуса можно не копировать в свою программу, а просто подключить файл, используя директиву .include "sin96.tab" (нужный файл предварительно необходимо скопировать в папку с программой);
- формируемый генератором сигнал необходимо записать в память данных в виде массива и отобразить на экране в графическом виде.

5.2. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

1. Изучить теоретические сведения по теме лабораторной работы (подразд. 5.1).
2. Получить у преподавателя задание для выполнения практической части работы.
3. Согласно заданию рассчитать значения всех переменных, необходимых для работы программы.
4. Разработать алгоритм работы программы.
5. Написать, оттранслировать, отладить и выполнить программу.
6. Продемонстрировать результат трансляции и работы программы преподавателю.
7. Оформить и защитить отчет по лабораторной работе.

5.3. СОДЕРЖАНИЕ ОТЧЕТА

1. Цель работы и исходные данные.
2. Используемые аналитические формулы и выполненные расчеты.
3. Алгоритм работы программы.
4. Листинг программы с комментариями.
5. Результат работы программы.
6. Выводы по работе.

5.4. КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Назначение модема.
2. Принцип частотной модуляции.
3. Принцип работы модулятора FSK-модема.
4. Табличный способ формирования синусоиды.
5. Косвенная циклическая адресация данных.
6. Определение размера и начального адреса кольцевого буфера.
7. Определение требуемого размера таблицы синуса.
8. Расчет шага в таблице для формирования нужных частот.
9. Определение количества отсчетов синуса на один бит информации.
10. Команды занесения данных в регистры.
11. Команды загрузки данных в аккумулятор.
12. Команды повторения блока команд.
13. Команды сохранения данных.

Оглавление | Программа | Теория| Практика | Контроль знаний | Об авторах
© БГУИР , 2012