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

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

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

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

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

ЛАБОРАТОРНАЯ РАБОТА № 6.
МОДУЛЯТОР FSK-МОДЕМА.

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

6.1. ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
6.1.1. Принцип работы модулятора FSK-модема

Принцип работы модулятора заключается в анализе очередного бита передаваемых данных и выборке из таблицы размерностью N отсчетов с шагом S1 или S0 (в зависимости от передаваемого бита) в течение n тактов и выдачи их в ЦАП с частотой fД. Затем производится анализ следующего передаваемого бита и выборка продолжается с тем же или другим шагом. Так как при переходе от одного бита к другому изменяется только шаг в таблице (приращение аргумента синуса), то формируемый сигнал не имеет разрывов фазы. Точность формирования сигнала зависит только от стабильности задающего генератора. При выходе адреса за пределы таблицы его необходимо скорректировать, уменьшив на длину таблицы.
Поскольку при передаче данных используется асинхронный метод, то необходимо предусмотреть возможность синхронизации приемника по принимаемым данным. Для этого в поток передаваемых данных включаются специальные биты синхронизации. Это так называемые «стартовый» и «стоповый» биты.
В качестве «стартового» бита обычно используется бит нуля, а в качестве стопового – бит единицы. Обычно передача данных выполняется байтами и первому биту данных всегда предшествует «стартовый» бит. Для контроля правильности передачи после последнего бита данных передается контрольный бит, который формируется таким образом, чтобы число единичных битов данных вместе с контрольным было четным или нечетным. Получают контрольный бит путем суммирования всех битов данных по модулю два. В качестве контрольного бита используется или полученная сумма (контроль на четность), или ее инверсия (контроль на нечетность).
Например, если необходимо передать байт 01001110, то, просуммировав все его биты по модулю два, получим 0. Таким образом, при контроле на четность к передаваемому байту добавляется бит 0, а при контроле на нечетность – 1. Если передача выполняется со старших битов, то необходимо передать последовательность из девяти битов, равную 010011100, при контроле на четность или равную 010011101 – при контроле на нечетность. Если посчитать количество единиц в первой последовательности, то оно получится равным четырем (четное), а во второй – пяти (нечетное).
На приемной стороне контроль правильности принятых данных проверяется суммированием всех девяти битов последовательности по модулю два и сравнением полученной суммы с нулем (контроль на четность) или с единицей (контроль на нечетность).
Данный метод позволяет обнаруживать только одиночные ошибки. Для обнаружения двойных ошибок и коррекции принятых данных используются более сложные методы контроля и коррекции данных.
Для синхронизации приема следующего байта каждый передаваемый байт обязательно сопровождается одним или двумя «стоповыми» битами. Когда передачи данных нет, в линию обычно передается последовательность «стоповых» битов, т. е. постоянный синусоидальный сигнал с частотой, соответствующей передаче единицы.
Таким образом, для проверки работы модема модулятор должен сформировать последовательность из двух «стоповых» битов (эмуляция отсутствия передачи данных), одного «стартового» бита, 16 битов данных (процессор обычно оперирует 16-разрядными словами) и двух «стоповых» битов (передача без контроля четности).

Если в качестве данных задать слово, состоящее из восьми единиц и восьми нулей, то на выходе модулятора при заданных исходных данных должен получиться сигнал, представленный на рис. 6.1.

######

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

Для проверки передаваемых битов данных можно использовать различные методы и команды процессора. В лабораторной работе предлагается использовать один из следующих способов: тестирование битов или сдвиг.

Первый способ заключается в использовании специальной команды проверки (тестирования) битов BITT. Данная команда имеет один явно адресуемый операнд – ячейку памяти данных, адресуемую с использованием прямой или косвенной адресации типа Smem. В данной ячейке должно находиться передаваемое слово данных. Вторым неявным операндом данной команды является временный регистр Т, который должен содержать в четырех младших разрядах номер тестируемого бита. Следует иметь в виду, что в данной команде принята обратная нумерация битов, т. е. старший бит имеет номер 0, а младший бит – номер 15. Таким образом, если передачу данных нужно начинать со старшего бита, то в регистр Т вначале нужно занести 0. Для проверки очередного бита содержимое регистра Т нужно увеличивать на единицу. Результатом работы команды является копирование проверяемого бита в специальный флаг ТС, который может быть проверен командой условного перехода.
Для формирования «стоповых» и «стартового» битов при использовании данного метода нужно просто перед вызовом подпрограммы программно-управляемого генератора задавать нужный шаг.
Второй способ заключается в использовании команд сдвига. При использовании данного метода передаваемое слово данных должно быть предварительно загружено в соответствующие разряды аккумулятора. Для сдвига данных можно использовать практически любую команду сдвига (циклический, логический или арифметический сдвиги). Для проверки очередного бита содержимое аккумулятора необходимо сдвинуть на один разряд. При этом выдвигаемый бит заносится во флаг переноса C, который может быть проверен командой условного перехода.
Поскольку передаваемое слово данных состоит из 16 двоичных разрядов, а емкость основной части аккумулятора 32 бита, то в аккумулятор можно загрузить слово данных вместе с битами синхронизации (всего 21 бит) и использовать единый алгоритм для передачи всего пакета.

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

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

- для упрощения проверки правильности работы программы передаваемое слово данных необходимо определить в начале программы с помощью директивы .set;
- первоначальную проверку правильности работы программы произвести с использованием слова данных, состоящего из восьми единиц и восьми нулей, и убедиться, что график сигнала имеет вид, аналогичный рис. 6.1;
- в программе модулятора для передачи одного бита информации необходимо использовать подпрограмму управляемого генератора синусоидальных сигналов, предварительно загружая в регистр AR0 нужный шаг;
- наиболее эффективный способ загрузки нужного шага в регистр AR0 заключается в использовании команды условного выполнения XC (прил. 5), которая в зависимости от проверяемого условия (прил. 6) выполняет следующую за ней команду или пропускает ее;
- при использовании команды XC последовательность команд загрузки регистра AR0 может быть следующей: занести в регистр шаг для нуля, проверить командой XC условие передачи единицы, занести в регистр шаг для единицы (данная команда выполнится, только если будет передаваться единица);
- формируемый модулятором сигнал необходимо записать в память данных в виде массива и отобразить на экране в графическом виде.

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

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

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

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

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

1. Принцип частотной модуляции.
2. Принцип работы модулятора FSK-модема.
3. Табличный способ формирования синусоиды.
4. Косвенная циклическая адресация данных.
5. Способы определения передаваемого бита информации.
6. Команды сдвигов данных.
7. Команды тестирования битов.
8. Бит переноса C и бит проверки и управления TC.
9. Команды загрузки данных в аккумулятор.
10. Команды загрузки регистров.
11. Команды пересылки данных.
12. Команды условного перехода.
13. Команда условного выполнения.
14. Команды повторения одиночной команды.
15. Команды сохранения данных.
16. Команды организации циклов.

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