Сопутствующие блоки GNURadio для Z-Wave с использованием ключа RTL-SDR - PullRequest
1 голос
/ 10 марта 2019

Я использую общий ключ RTL-SDR для приема кадров протокола Z-Wave. Я использую настоящие устройства Z-Wave. Я использую scapy-radio , и я также скачал EZ-Wave . Однако ни один из них не реализует блоки для всех скоростей передачи данных, модуляции и кодирования Z-Wave. Я получил некоторые кадры, используя оригинальное решение EZ-Wave , однако я предполагаю, что не могу получать кадры на всех скоростях передачи данных, кодировании и модуляции. Сейчас я пытаюсь реализовать решение по их блокам, чтобы реализовать все из них.

Прокотол Z-Wave использует эти модуляции, скорости передачи данных и кодирование:

9.6 kbps - FSK - Manchester 
40 kbps - FSK - NRZ
100 kbps - GFSK - NRZ

Это мои настоящие блоки (сейчас я ничего не могу получить):

enter image description here

Например, я объясню свой взгляд на блоки для получения на

9.6 kbps - FSK - Manchester 

Источник RTL-SDR

переменная center_freq = 869500000

переменная r1_freq_offset = 800e3

Ch0: Частота: center_freq_3-r1_freq_offset , поэтому у меня 868,7 МГц на исходном блоке RTL-SDR.

КИХ-фильтр частоты Xlating

Центральная частота = - 800 кГц для получения частоты 868,95 МГц (Европа). Если честно, я не уверен, почему я это делаю, и мне нужно объяснение. Я пытаюсь реализовать эти блоки в соответствии с реализацией блоков EZ-Wave для 40 кбит / с-FSK-NRZ (как я предполагаю). Они используют частоту дискретизации 2М и разные конфигурации, чего я не понял.

Taps = firdes.low_pass (1, samp_rate_1, samp_rate_1 / 2,5e3, firdes.WIN_HAMMING) . Я не понимаю, каким должен быть переход bw (5e3 в моем случае)

Частота дискретизации = 19,2e3 , поскольку скорость передачи данных / бод 9,6 Кбит / с и согласно теореме выборки Найквиста-Шеннона частота дискретизации должна составлять не менее удвоить скорость передачи данных, поэтому 2 * 9,6 = 19,2. Поэтому я пытаюсь изменить частоту по умолчанию 2M от источника до 19,2 Кбит / с.

Простой шумоподавитель

Я использую значение по умолчанию (-40), и я не уверен, должен ли я изменить это или нет.

Квадратурный Демод

должен выполнить демодуляцию FSK, и я использую значение усиления по умолчанию. Я не уверен, что это правильный способ демодуляции FSK.

Gain = 2 (samp_rate_1) / (2 * math.pi * 20e3 / 8.0) *

Фильтр нижних частот

Частота дискретизации = 19,2 К для использования той же новой частоты дискретизации

Cuttoff Freq = 9,6k , я предполагаю это согласно https://nccgroup.github.io/RFTM/fsk_receiver.html

Ширина перехода = 4,8 , что также является sample_rate / 2

Восстановление часов ММ

Большинство параметров по умолчанию.

Омега = 2 , потому что samp_rate / baud

Бинарный слайсер

для получения двоичного кода сигнала

Zwave PacketSink 9,6

в случае манчестерского декодирования.

Я хотел бы спросить, что я должен изменить в своих блоках, чтобы добиться правильного приема кадров Z-Wave на всех скоростях передачи данных, модуляции и кодировании. Когда я начинаю получать, я могу видеть сообщения от своих устройств в приемниках FFT и Waterfall. Отладка сообщения не печатает пакеты (как из оригинального решения EZ-Wave), а только

Looking for sync : 575555aa
Looking for sync : 565555aa
Looking for sync : aa5555aa

какое должно быть значение в frame_shift_register , в соответствии с кодом C для манчестерского декодирования (ZWave PacketSink 9.6). Я видел похожий пост, однако это немного по-другому и, если честно, я застрял здесь.

Буду благодарен за любую помощь.

Ответы [ 4 ]

2 голосов
/ 11 марта 2019

Давайте посмотрим на дело GFSK.Прежде всего, частота дискретизации источника RTL, 2M Baud, довольно высока.Для максимальной скорости передачи данных, 100 кбит / с - GFSK, частота дискретизации, скажем, 400 ~ 500 кбод, вполне подойдет.Существует также блок силового шумоподавления.Этот блок предотвращает прохождение сигналов ниже определенного порога.Это не хорошо, потому что он фильтрует сигналы малой мощности, которые могут содержать информацию.Существует также проблема частоты дискретизации между фильтром нижних частот и блоком восстановления тактового сигнала MM.Выходной сигнал блока восстановления символов должен составлять 100 кбод (потому что для GFSK частота дискретизации = частота символов).Используя значение омега 2 и работая в обратном направлении, ввод в блок MM должен составлять 200 кбод.Но фильтр нижних частот производит выборки со скоростью 2 Мбод, в 10 раз больше, чем ожидалось.Вы должны сделать правильное прореживание.

Я реализовал приемник GFSK один раз для нашего CubeSat.Восстановление времени было выполнено блоком PFB, который является более надежным, чем блок MM.Вы можете найти статью здесь: https://www.researchgate.net/publication/309149646_Software-defined_radio_transceiver_for_QB50_CubeSat_telemetry_and_telecommand?_sg=HvZBpQBp8nIFh6mIqm4yksaAwTpx1V6QvJY0EfvyPMIz_IEXuLv2pODOnMToUAXMYDmInec76zviSg.ukZBHrLrmEbJlO6nZbF4X0eyhFjxFqVW2Q50cSbr0OHLt5vRUCTpaHi9CR7UBNMkwc_KJc1PO_TiGkdigaSXZA&_sgd%5Bnc%5D=1&_sgd%5Bncwor%5D=0

Некоторые подробности о приемнике также можно найти здесь: Модуляция / демодуляция GFSK с GNU Radio и USRP

M,

1 голос
/ 18 марта 2019

Моисей Браун Мвакьяньяла, я тоже пытаюсь реализовать это в соответствии с вашей работой.

enter image description here

enter image description here

Возможно, есть проблема с восстановлением часов и Манчестерским декодированием . Манчестерское декодирование использует переходы 0-> 1 и 1-> 0 для кодирования 0 и 1. Как правильно настроить восстановление тактовой частоты для достижения правильной частоты дискретизации и переходов для манчестерского декодирования? Манчестерский декодер (Z-Wave PacketSink 9.6) способен найти преамбулу и заканчивается только поиском синхронизации.

Я хотел бы также спросить вас, где я могу найти мой индекс модуляции "h", упомянутый в вашей работе?

Спасибо

1 голос
/ 13 марта 2019

Частота дискретизации составляет 1M из-за ограничений ключа RTL-SDR (от 225001 до 300000 и от 900001 до 3200000).

Текущие блоки: Current Blocks for Z-Wave 9.6Kbps|FSK|Manchester

ДонНе понимаю:

Отводы частотно-сглаживающего КИХ-фильтра firdes.low_pass (1, samp_rate_1,40e3,20e3, firdes.WIN_HAMMING)

Cuttoff Freq иШирина перехода фильтра нижних частот

Восстановление тактового сигнала M & M также, поэтому считайте его значения «случайными».

Выход ClockRecovery:

ClockRecovery MM Output

Я пытался использовать PCB block в соответствии с вашей работой в ResearchGate.Однако я потерпел неудачу, потому что до сих пор не понимаю всей этой науки о восстановлении часов.

Выполнение низкочастотной фильтрации дважды связано с тем, что оригинальные блоки Z-Wave из scapy-radio дляКодирование 40Kbps, FSK и NRZ выполняется следующим образом (и это работает):

enter image description here

Так что я подумал, что я просто собираюсь изменить несколько параметров и декодер(Zwave PacketSink9.6).

Я также загрузил свои текущие блоки сюда .

1 голос
/ 13 марта 2019

Я ценю ваш ответ, я изменил свою частоту выборки. Сейчас я все еще работаю над 9,6 Кбит / с, демодуляцией FSK и декодированием Манчестера. В настоящее время вывод моего восстановления часов M & M выглядит следующим образом:

enter image description here

Я хотел бы спросить вас, что вы думаете об этом сигнале. Как я уже сказал, это должна быть демодуляция FSK, а затем я должен использовать манчестерское декодирование. Мне все еще нужно использовать блок печатной платы? Прежде всего, мне нужно сделать 9.6kbps, FSK и Manchester, поэтому я посмотрю на GFSK NRZ 100Kbps, если останется время.

...