Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Модуль контроля обнаружителя

Читайте также:
  1. C) модульдері тең, бір біріне қарсы бағытталған екі параллель күш
  2. I. 1.1. Пример разработки модели задачи технического контроля.
  3. IV. Методические указания по самостоятельной внеаудиторной работе студентов (СУРС) и формы контроля
  4. Python. Модуль math. Математические функции
  5. В целях интенсификации учебного процесса и контроля знаний на семинарских занятиях может проводиться программированный опрос.
  6. Виды и формы текущего и промежуточного контроля.
  7. Виды контроля

Данный модуль предназначен для управления работой обнаружителя, а конкретно для изменения режима работы обнаружителя, режима работы осциллографа, установки порога, изменения времени срабатывания осциллографа по таймеру, запуска осциллографа (в режиме работы по запросу).

Управление обнаружителем осуществляется с помощью регистра состояния, имеющим следующую структуру (таблица 2).

Таблица 2 – Структура регистра состояния обнаружителя

Байты Биты Название
  1..0 Режим работы
  3..2 Режим работы осциллографа
  5..4 Тип порога
    Бит запуска для осциллографа
2..7 31..8 Порог

 

Также есть регистр таймера осциллографа (8 байт), в котором хранится максимальное значение счетчика в осциллографе.

Все порты модуля можно разделить на группы:

· системные (тактовый сигнал основного домена main_clock, сброс для этого же домена reset);

· шина принятых по USBданных (глава 6);

· порты для изменения регистра состояния;

· порты управления осциллографом.

Для изменения состояния регистра управления по пришедшему пакету данных от USB необходимо считать регистр (i_detect_mode_reg), изменить соответствующие данные (не обязательно полностью перезаписывать регистр) и выдать его наружу с признаком корректности (o_detect_mode_reg, o_detect_mode_valid).

Порты управления осциллографом включают порты изменения регистра таймера осциллографа (o_repeat_time_osci, o_repeat_time_valid), а также запрос на запуск осциллографа в режиме работы по запросу (o_osci_request).

Модуль обнаружителя по спектру

На входе модуля находится импульсный зашумленный сигнал с неизвестными параметрами, а также с неизвестным законом распределения. Считается, что флуктуация частоты сигнала незначительна за время принятия решения.

Данный модуль реализует анализ текущего спектра входного сигнала и на основе его изменения принимает решение о начале нового или окончании текущего импульса.

Обнаружитель по спектру может работать в двух режимах:

1. Обнаружение по локальным максимумам;

2. Обнаружение по всем спектральным линиям.

Обнаружение по локальным максимумам

На каждом такте работы (в соответствии с тактом поступления входных данных) в обнаружителе анализируется массив из 64 входных значений на наличие локальных максимумов, превышающих заданный порог обнаружения (порог может быть изменен по команде от Центрального модуля обработки). Условие локального максимума — значение огибающей превышает 4 соседних значения слева и справа.

По результатам анализа формируется массив текущего состояния, где номер элемента массива, в котором определен локальный максимум, равен 1, а остальные — 0. Далее происходит сравнение с запомненным массивом предыдущего состояния спектра, и происходит накопление количества последовательных обнаружений локального максимума в каждом элементе массива спектра в массиве счетчиков. Решение о возникновении нового импульса в полосе, соответствующей данному элементу массива, принимается в случае, если локальный максимум в этом элементе обнаруживался 8 раз подряд.

Аналогично принимается решение о пропадании (завершении) импульса — 8 раз подряд локальный максимум не определяется в элементе массива, где он раньше был.

Кроме того, массив счетчиков анализируется на достижение максимального значения длительности импульса, задаваемого константой. В этом случае вырабатывается команда принудительного сброса импульса.

Для возможности управления полосами обнаружения реализуется возможность запрета анализа выхода с определенных фильтров с помощью маски запретов – массива, передаваемого с Центрального модуля обработки.

При одновременном наличии во входном потоке нескольких импульсов на запись ставится импульс из полосы (номер в массиве спектральных составляющих) с большим приоритетом. Маска приоритетов в виде битового массива передается с МЦО. Поскольку в данной версии системы записывается нефильтрованный входной поток, то использование приоритетов представляется целесообразным для случая, когда необходимо выделить определенную полосу для обнаружения, не исключая возможности в свободное время обнаруживать сигналы с других полос.

Обнаружение по всем спектральным линиям

Представляет собой сравнение амплитуды каждой из гармоник с порогом. Если хотя бы одна превышает – обнаружение. Режим является испытательным.

Все порты модуля подразделяются на группы:

· системные (тактовый сигнал домена ЦОС dsp_clock, сброс для этого домена dsp_reset);

· порты приема спектра;

· порты управления обнаружителем;

· порты выдачи информации.

Спектр сигнала принимается от модуля БПФ посредством соответствующих сигналов (см. п. 7.1) i_spec_re, i_spec_im, i_valid.

На вход портов управления обнаружителем подаются соответствующие разряды регистра состояния (i_mode) и уровень порога (i_threshold).

Выдача информации — массив обнаружений (o_detected), импульс старта (o_detect_start) и окончания (o_detect_finish) хотя бы одного обнаружения, флаг наличия обнаружения(o_have_detect).

Модуль обнаружителя во временной области

Модуль осуществляет выработку сигнала о старте обнаружения, когда хотя бы один из четырех принятых отсчетов сигнала (за один такт передается по 4 отсчета) превышает порог. Данный режим работы обнаружителя является испытательным.

На вход подаются:

· системные (тактовый сигнал домена ЦОС dsp_clock, сброс для этого домена dsp_reset);

· портыприемаотсчетовсигнала (i_rx_adc_data_q, i_rx_adc_data_i, i_rx_adc_valid_q, i_rx_adc_valid_i);

· порог (i_threshold);

· сигнал об обнаружении (o_start_detect).

Модуль осциллографа

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

Входы/выходы модуля можно разбить на 4 группы:

· системные (сигнал общего сброса reset, тактовый основного домена clk_25, тактовый сигнал домена ЦОС clk_250);

· порты приема оцифрованного сигнала (содержат сами данные i_adc_data_q, i_adc_data_i и признаки готовности i_adc_valid_q, i_adc_valid_i);

· порты управления работой осциллографа;

· порты для передачи информации в модуль сопряжения;

· управление мьютексом.

Триггером для записи сигнала осциллографом может являться, как старт обнаружения любого из режимов работы обнаружителя, так и срабатывание таймера или сигнал принятый по USB(зависит от режима работы как обнаружителя, так и осциллографа). Поэтому на вход подаются режимы работы обнаружителя i_mode и режим работы осциллографа i_mode_osci. Также к портам управления работой осциллографа относятся запрос на запись i_osci_request, объединяющий в себе все варианты запросов под определенным условием, время таймера i_time_repeat и корректность выставленного времени i_time_repeat_valid.

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

Управление мьютексом осуществляется с помощью трех портов:

1. Захват мьютекса o_get – импульс, выставляемый модулем для захвата мьютекса.

2. Освобождение мьютекса o_ret – импульс, выставляемый модулем для освобождения мьютекса.

3. Флаг выданного управления i_got – входной сигнал от мьютекса, высокий уровень показывает, что данному модулю выдано управление модулем сопряжения.


8. Блок приёмопередатчика

Данный приёмопередатчик обеспечивает приём и передачу сигналов с физической высокоскоростной линии “Aurora” по протоколу “Aurora 8b/10b” [8], при этом структура передающихся и принимаемых данных описана обобщенным протоколом информационного взаимодействия (далее “ОПИВ”).

В состав программного обеспечения, реализуемого в ПЛИС ведущего приемного модуля, входят программы приёмника, передатчика и логического ядра “Aurora 8b/10b”. В задачи приёмника входит считывание данных с выхода модуля “Aurora”, считывание данных о пакете, сравнение принятой и посчитанной контрольных сумм и, в случае если контрольные суммы совпали и в пакете не выставлен флаг ошибки “error flag”, то пакет передаётся через порты данных, “start”, “valid” и “stop”. В задачу передатчика входит по выставленным на его вход данным сформировать пакет и передать его на линию “Aurora”, где с другой стороны линии его смогут принять. Логическое ядро “Aurora 8b/10b” непосредственно выставляет и считывает данные с физической линии “Aurora”, а так же для синхронизации всех модулей обеспечивает их тактовым сигналом “User Clock” (156.25MHz).

Входами и выходами является физическая линия Aurora.

 

Обобщенный протокол информационного взаимодействия

Назначение

Данный протокол предназначен для унификации методов формирования пакетов при организации информационного обмена между конечными точками по каналам передачи данных различного типа.

Цель данной унификации – определение однозначных описаний и единых методов информационного взаимодействия и обработки информации вне зависимости от целевой платформы и программного обеспечения.

Состав

В обмене принимают участие две конечные точки:

· Ведущий – инициатор обмена. В терминологии Клиент-Сервер - Клиент. Всегда является инициатором обмена.

· Ведомый – приемник команд. В терминологии Клиент-Сервер - Сервер. Принимает сообщения от Ведущего и, в зависимости от принятой информации, передает данные обратно. Передает данные только в ответ на явный запрос от Ведущего.

Минимальной единицей передаваемой информации по каналу является 1 байт.

Структура

Общая структура пакета:

<= CMD FLAGS LENGTH DATA DATA CRC

Каждый пакет передаваемых данных начинается с описателя/маркера.

В состав описателя входят:

1. CMD - код команды (1 байт). Однозначно идентифицирует тип передаваемой информации.
Коды команды 0xFF является недопустимым (неопределенная/несуществующая команда).

2. FLAGS - флаги пакета (1 байт). Признаки, описывающие параметры передаваемого пакета.

3. LENGTH - длина данных пакета (2 байта). Количество слов данных (!) в пакете.
Длина пакета не учитывает размер описателя пакета и размер контрольной суммы (при наличии флага CRC).

При передаче маркера первым всегда передается код команды, далее флаги и длина пакета.

Флаги

Флаги в обобщенной форме являются атрибутами передаваемого, или сохраняемого в памяти, пакета, и предназначены для унифицированного описания его свойств и необходимых методов его обработки.

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

               
ERR CRC BE WORD TYPE CANCEL CONFIRM END

Описание:

ERR - Ошибка (0x80)

данный флаг выставляется в ответном сообщении от «Ведомого»/«Сервера» «Ведущему»/«Клиенту» при обнаружении отказа при обработке принятого пакета (Неизвестный код команды, ошибка при обработке команды, несовпадение CRC пакета при её наличии, и т. д.). Таким образом, наличие в описателе признака ERR означает, что данные пакета не могут быть переданы на дальнейшую обработку.

CRC – Контрольная сумма (0x40)

данный флаг выставляется в передаваемом пакете, если в составе пакета содержится контрольная сумма. CRC расчитывается по всему пакету, включая описатель.
При расчете CRC должны быть учтены следующие требования:
- Тип контрольной суммы - CRC32.
- при расчете CRC учитывается флаг Big Endian, т.е.
если BE == 0, то расчитывается CRC32 на основе полинома 0xEBD88320 и в байтах от младшего бита к старшему,
если BE == 1, то расчитывается CRC32 на основе полинома 0x04c11db7 и в байтах от старшего бита к младшему.

BE – флаг Big Endian (0x20) – формат передачи/хранения слов данных

Признак того, что значение длины пакета LENGTH, а также (при наличии флага CRC) значение контрольной суммы передается (хранится в памяти) начиная от старшего байта слова к младшему (Big Endian).
Если данный флаг не установлен, то слова передаются от младшего байта слова к старшему (Little Endian).
Также, данный флаг влияет на метод расчета контрольной суммы пакета.

WORD TYPE – тип передаваемых слов данных

Значения соответствуют
0 – 8-ми разрядные слова (BYTE)
1 – 16-ти разрядные слова (SHORT)
2 – 32-х разрядные слова (LONG)
Соответственно, в поле LENGTH, «длина данных пакета», содержится указанное количество слов указанного типа.
Например, если поле WORD TYPE имеет значение 2, а длина данных пакета равняется 10, в пакете содержится 10 32-х разрядных слов.

CANCEL – флаг отмены передачи (0x04)

флаг прерывания обмена. Данный флаг выставляется принимающей составной пакет стороной при необходимости прерывания обмена. Имеет смысл только при наличии в принятом от передающей пакет стороны флага CONFIRM (запроса подтверждения).

CONFIRM – флаг запроса подтверждения (0x02)

данный флаг выставляется передающей пакет стороной и сообщает приемной стороне что ожидает подтверждения факта приема пакета. Ответ принимающей данные стороны должен содержать только подтверждение об успехе или ошибке передачи.
Допускается при передаче принимающей стороной подтверждения передавать некоторые дополнительные данные о причине отказа, но в каждом конкретном случае это должно быть определено индивидуально.

END - Окончание блока данных (0x01)

При необходимости передачи большого объема данных, превышающего размер 64К слов, допускается передача блока данных разделенного на несколько пакетов меньшего (от 1 до 64К слов) размера. При этом флаг END устанавливается только в последнем пакете.

Если передаваемый объем данных менее 64К слов, то флаг END должен быть выставлен в обязательном порядке.

 

8.2. Модуль приёмника

Данный модуль предназначен для проверки принятых пакетов: производится проверка соответствия контрольной суммы пакета с его содержимым и проверка на флаг ошибки. Если обе проверки пройдены, то пакет передаётся далее на обработку. Также модуль приёмника при отсутствии флага “END” (т.е. данные следующего пакета являются продолжением текущего) ждёт следующий пакет и, если оба пакета прошли проверку на контрольную сумму и не имеют флага ошибки, передаёт их один за другим далее.

На вход модуля-приемника подаются:

· тактовый сигнал (i_clk);

· сигнал сброса (i_reset);

· принятые данные (i_RX_data);

· сигнал достоверности данных (i_RX_valid, активный уровень – ‘0’).

На выходе модуля:

· выходные данные (o_pack_data);

· сигнал достоверности выходных данных (o_pack_valid);

· сигнал предшествующий началу передачи пакета (o_start);

· сигнал конца передачи пакета (o_stop);

· сигнал обнаружения флага ошибки в пакете (o_error_flag_impulse);

· сигнал обнаружения несоответствия контрольной суммы (o_crc_error).

Также выходные отладочные сигналы:

· счетчик количества ошибок контрольной суммы (o_crc_error_counter);

· счетчик количества прошедших проверку пакетов (o_packets_transmitted);

· счетчик количества обработанных пакетов (o_packets_processed).

 

Пример приёма пакета:

Рисунок 9. – переданные данные

 

Расшифруем флаги (в таблице подробная расшифровка):

FLAGS = 0x41 = 0100 0001

ERR CRC BE WORD TYPE CANCEL CONFIRM END
               
               

 

Данные для теста это последовательность байтов, каждый из которых содержит в себе свой номер в последовательности, т.е.:

1ый байт = 0x01

2ой байт = 0x02

9ый байт = 0x09 и так далее

Длина пакета Length = 0x0900; Учитывая, что BE = ‘0’, а Word Type = ‘00’, то получаем что длина пакета 9 байт.

Данный пакет содержит в себе флаг CRC, которое можно наблюдать в конце пакета 0x 03F77B6E

 

Рисунок 10. – данные на выходе приёмника

 

Контрольная сумма, высчитанная повторно, полностью совпадает с переданной.


 


Дата добавления: 2015-10-28; просмотров: 123 | Нарушение авторских прав


Читайте в этой же книге: Описание системы | Подмодуль формирования отправляемых данных | Блок обмена информацией по USB (микросхема FT245RQ) |
<== предыдущая страница | следующая страница ==>
Модуль сопряжения с микросхемой FT245RQ| Модуль передатчика

mybiblioteka.su - 2015-2024 год. (0.02 сек.)