- •Содержание
- •Введение
- •Описание системы
- •Обобщенная структура программного обеспечения
- •Блок обработки входных тактовых сигналов
- •Блок управления микросхемой распределения тактовых сигналовCdce62005rgz
- •3.1. Модуль связи с микросхемой
- •Блок управления синтезатором частот (микросхема adf4106bcpz)
- •3.2. Модуль принятия данных от модуля сопряжения с usb
- •3.3. Модуль передачи значений прочитанных регистров
- •4.1. Подмодуль изменения значений регистров
- •4.2. Подмодуль формирования отправляемых данных
- •4.3. Подмодуль передачи данных в микросхему
- •Блок управления ацп (микросхемаAdc12d1000ciut)
- •5.1. Модуль-приемник оцифрованных данных
- •5.2. Модуль для настройки ацп по командам от usb
- •Блок обмена информацией по usb (микросхема ft245rq)
- •Мьютекс;
- •Модуль для тестирования соединения.
- •6.1. Протокол обмена
- •6.2. Мьютекс
- •6.3. Модуль сопряжения с микросхемой ft245rq
- •6.4. Модуль для тестирования соединения
- •Блок цифровой обработки сигналов
- •7.1. Модуль бпф
- •7.2. Модуль контроля обнаружителя
- •7.3. Модуль обнаружителя по спектру
- •7.4. Модуль обнаружителя во временной области
- •7.5. Модуль осциллографа
- •Блок приёмопередатчика
- •8.1. Обобщенный протокол информационного взаимодействия
- •8.2. Модуль приёмника
- •8.3. Модуль передатчика
- •Заключение
- •Список литературы
6.4. Модуль для тестирования соединения
Данный модуль предназначен для мгновенного ответа пользователю после прихода определенного сообщения, то есть когда у пользователя появляются сомнения в работоспособности соединения по USB, он запускает программу, отсылающую определенное сообщение, и ждет прихода ответного. Если ответ есть, значит соединение работает, если нет, значит возникли неполадки.
Порты модуля можно разбить на 4 группы:
системные;
шина принятых по USBданных;
передача информации в модуль сопряжения;
управление мьютексом.
Системные сигналы: тактовый сигнал (clk) и сигнал сброса (reset).
Прием и передача информации в модуль сопряжения с USB осуществляется по протоколу, единообразному для всех устройств, которым необходимо передавать информацию через канал USB. Процесс передачи описан в предыдущем параграфе.
Управление мьютексом осуществляется с помощью трех портов:
Захват мьютексаo_get – импульс, выставляемый модулем для захвата мьютекса.
Освобождение мьютексаo_ret – импульс, выставляемый модулем для освобождения мьютекса.
Флаг выданного управления i_got – входной сигнал от мьютекса, высокий уровень показывает, что данному модулю выдано управление модулем сопряжения.
Блок цифровой обработки сигналов
Блок цифровой обработки сигналов обеспечивает запись оцифрованного сигнала в буфер, обнаружение принятых сигналов, генерацию управляющих сигналов, формирование информационных сообщений в соответствии с установленным протоколом обмена и передачи сформированных сообщений в центральный модуль обработки.
Управляется блок ЦОС командами от МЦО.
Блок ЦОС состоит из следующих модулей:
Буфер принятых отсчетов;
Модуль БПФ;
Модуль контроля обнаружителя;
Модуль обнаружителя по спектру;
Модуль обнаружителя во временной области;
Модуль осциллографа
Обобщенная структурная схема блока ЦОС приведена на рисунке 8.
Рассмотрим отдельно каждый модуль блока.
7.1. Модуль бпф
Модуль v_fft представляет собой реализацию быстрого преобразования Фурье, выполняемого непрерывно по всем приходящим отсчетам с размером ядра преобразования, равным целой степени двойки. Модуль обладает следующими параметрами:
p_fft_depth – степень двойки для указания размера ядра;
p_signal_width – разрядность одной квадратуры входного сигнала;
p_coef_width – разрядность одной квадратуры коэфициента преобразования Фурье.
Модуль обладает следующими портами
i_signal_1 – первый сигнальный вход для подачи комплексного сигнала с шириной шины в два раза больше, чем p_signal_width;
i_signal_2 – второй сигнальный вход для подачи комплексного сигнала с шириной шины в два раза больше, чем p_signal_width;
i_valid – признак готовности данных на входе;
i_clk – вход тактового сигнала;
i_reset – вход сброса:
o_signal_1 – первый выход комплексного отсчета спектра с шириной шины в два раза больше, чем p_signal_width;
o_signal_2 - второй выход комплексного отсчета спектра с шириной шины в два раза больше, чем p_signal_width;
o_valid – признак готовности отсчетов спектра;
o_first – признак первой пары спектральных отсчетов в выходном пакете;
o_last – признак последней пары спектральных отсчетов в выходном пакете.
Работа модуля начинается после подачи на вход i_clk тактового сигнала. Первым после поступления тактового сигнала подается сигнал синхронного сброса i_reset. Минимальная длительность импульса сигнала сброса равна одному периоду i_clk.
На входы i_signal_1 и i_signal_2 подаются два комплексных отсчета входного сигнала, взятых в соседние моменты времени. Оба сигнала сопровождаются единичным уровнем сигнала i_valid.
После
записи
отсчетов (
пар сигналов i_signal_1
и i_signal_2)
модуль начинает производить оценку
спектра записанной реализации. Оценка
спектра происходит конвейерным методом,
поэтому сразу же после окончания записи
первой реализации в
отсчетов можно сразу же начинать
записывать следующую реализацию. По
факту модуль позволяет производить
преобразование входного сигнала,
имеющего тактовую частоту оцифровки в
два раза превышающую тактовую частоту
модуля БПФ, без разрывов сигнала i_valid.
Через
тактов модуль БПФ выставляет результаты
расчета спектра на выходные шины
o_signal_1 и
o_signal_2,
сопровождая их признаком готовности
данных на выходе o_valid.
Отсчеты
спектра выставляются попарно, начиная
с нулевого и первого, заканчивая
и
.
Первая пара отсчетов сопровождается
единичным уровнем сигнала o_first,
последняя пара единичным уровнем сигнала
o_last.
Длительность единичных уровней составляет
один период тактовой частоты.
Модуль состоит из двух последовательно включающихся ядер БПФ преобразования v_fft_core. Каждый из модулей v_fft_core является модулем конвейерного БПФ преобразования, состоящим из последовательно включенных модулей v_fft_layer. Каждый модуль v_fft_layer содержит оперативную память, достаточную для хранения одной выборки, устройство кодирования адреса записи и адреса чтения в соответствии с алгоритмом БПФ с прореживанием по частоте.
Приходящая на модуль v_fft_core выборка записывается в оперативную память v_fft_layer с порядковым номером ноль. После этого запись в нулевой слой прекращается, после чего производится обработка выборки (взвешенное попарное суммирование отсчетов) в соответствии с алгоритмом. После этого отсчеты пишутся в следующий слой.
Суммарное время обработки в слое равно времени поступления одной выборки. Таким образом, через тактов после окончания записи выборки в слой, слой заканчивает обработку. Аналогичным образом работают все остальные слои.
Это означает, что в каждый момент времени внутри одного ядра v_fft_core слои с четными номерами производят параллельную обработку, а слои с нечетными номерами ожидают результатов обработки от слоев с четными номерами, либо слои с нечетными номерами производят параллельную обработку, а слои с четными номерами ожидают результатов обработки от слоев с нечетными номерами.
То есть ядро v_fft_core позволяет обработать каждую вторую выборку, поступающую на его вход.
Два ядра v_fft_core одного модуля v_fft работают в смещенном режиме – когда в одном ядре четные слои обрабатывают информацию, во втором ядре обработкой занимаются нечетные слои, и наоборот.
Это позволяет производить предварительное разделение на частотные каналы на частоте меньшей, чем скорость поступления данных.
На выходе модуля v_fft располагается мультиплексор, коммутирующий выходы модулей v_fft_core на один выход v_fft в зависимости от активности выходного v_fft_layer заданного v_fft_core.
+
Рисунок 8 – Структурная схема блока ЦОС
