Перейти к содержанию

Полудуплекс в радиосвязи

Доброго времени суток!

Есть два устройства (FPGA + AFE). На FPGA реализован модем (модулятор + демодулятор), на AFE - передающий и приёмный радиотракт с одной антенной.
В передаваемых фреймах есть преамбула, по которой демодулятор можно понят, где начало фрейма.
Возник вопрос, как уважаемые форумчане подходят к реализации полудуплексной радиосвязи (TDD) с минимизацией таймаутов?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
По окончании передачи говорящий говорит "прием" и переводит радиостанцию в режим приема - аналоговая связь.
По окончании запроса следует ответ - цифровая связь. О каких таймаутах речь?
Я, видимо, совсем выпал из радиосвязи, т.к. не в курсе, что такое ТDD.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(V_G @ Nov 25 2017, 16:11) <{POST_SNAPBACK}>
По окончании передачи говорящий говорит "прием" и переводит радиостанцию в режим приема - аналоговая связь.
По окончании запроса следует ответ - цифровая связь. О каких таймаутах речь?
Я, видимо, совсем выпал из радиосвязи, т.к. не в курсе, что такое ТDD.


Никуда не выпали sm.gif
TDD - Time Division Duplex - дуплекс с временнЫм разделением доступа к среде распространения (по сути, полудуплекс).

Хорошо, тогда распишу, как реализовал. Мне интересны мнения и как другие реализовывали.

Выбран принцип мастер-раб. Известны задержки модулятора и демодулятора, известны задержки включения/отключения PA (усилителя мощности) и LNA (МШУ). Известны размеры пакетов от мастера к рабу и обратно. Пока на модулятор мастера заходят данные, включается подготовка физического тракта так, что бы к моменту готовых сэмплов тракт был настроен на передачу. На приемнике раба после reset'а постоянно сидим в приеме и найдя преамбулу с определенными задержками переключаем физический тракт с приема на передачу и запускаем свой собственный модулятор. Получается в зависимости от задержки модулятора и демодулятора на одном модеме они будут работать с нахлестом во времени так, чтобы в канале выход на передачу у обоих был поочередный. Период res (reserve) между транзакциями выбран с учетом возможной остаточной ошибки символьной синхронизации. Красными стрелками изображены влияния.

[attachment=109939:Visio_st...lfduplex.pdf]

Поделиться сообщением


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

Или у Вас не пакетный обмен данными? Тогда почему?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(V_G @ Nov 26 2017, 02:46) <{POST_SNAPBACK}>
Трудно разобрать чужие обозначения без расшифровки. Правильно ли я понимаю, что передача включается до окончания приема пакета? Только в этом случае при пакетном обмене имеет смысл разговаривать о таймингах.

Или у Вас не пакетный обмен данными? Тогда почему?


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

Порты и сигналы:

CTRL_STATE - автомат состояний контроллера модулятора, пихающего в него данные. В автомате состояния:
- AGC - первые несколько тренировочных данных для настройки АРУ
- REF - преамбулы
- DATA - полезные данные

PHY_STATE - автомат состояний физического тракта:
- PA_ON / PA_OFF - включение / отключение усилителя мощности передатчика, характеризуется задержкой Tps
- LNA_ON / LNA_OFF - включение / отключение малошумящего усилителя приемника, характеризуется задержкой Tlna
- RES - запасы между переключениями передача/прием

Data valid_i - сигнал валидности входных данных на модулятор
data_i - входные данные на модулятор
Mod_strobe_o - выходные стробы с модулятора, показывающие начало каждого символа
mod_data_o - выходные сэмплы с модулятора

txnrx - управление антенным коммутатором: 0 - прием / 1 - передача
REF - строб детектирования преамбулы
Demod_data_i - входные сэмплы после АЦП на демодулятор
Data_valid_o - сигнал валидности выходных данных с демодулятора
Data_o - выходные данные с демодулятор

Len_symbol - длина символа в сэмплах
N - кол-во передаваемых символов

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация