repstosw 18 23 февраля, 2023 Опубликовано 23 февраля, 2023 (изменено) · Жалоба Использую Si4463 с настройками: модуляция: 4FSK скорость 500 ksps (1000 kbps) девиация частоты (inner) 83,333 кГц полоса пропускания - Auto (850 МГц максимум) длина пакета 8192 байта преамбула при передаче 48 символов порог срабатывания преамбулы в приёмнике 12 символов синхрослово 4 байта: 0x5A0FBE66 включено отбеливание данных (Whitening). мощность передатчика 10 мВт (10 dBm) Проблема: очень много ошибочных пакетов, когда ходишь с приёмником в руках по комнатам помещения. Сделал запись (лог) пакетов и дальнейший их анализ. В ходе анализа установлено (3 минуты ходьбы по помещению): 1. Пакеты, принятые без ошибок - 53% 2. Пакеты, принятые с ошибочными 0..128 байт - 87% 3. Пакеты, принятые с ошибочными 0..256 байт - 92% 4. Пакеты, принятые с ошибочными 0..2048 байт - 99% 5. Ошибочный байт содержит один повреждённый бит либо в старшей либо в младшей тетраде. Вопросы: 1. Какие корректирующие коды здесь могут быть полезны? (Голей, Хемминг, BCH, RS, ... ?) 2. Какими настройками в WDS можно улучшить приём паектов? (или какими настройками регистров) Лог принятых пакетов приложил ниже (чёрные пикселы - ошибочные байты. 1 строка - пакет 8192 байт). Изменено 23 февраля, 2023 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 23 февраля, 2023 Опубликовано 23 февраля, 2023 · Жалоба Сократить размер пакета возможно? Термин отбеливание это не про randomizer? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V_G 8 23 февраля, 2023 Опубликовано 23 февраля, 2023 · Жалоба У вас точно девиация 83 МГц? Есть ограничения на скорость перестройки PLL, тем более на таких высоких скоростях передачи. На 9 стр. описания есть параметр Modulation deviation range = 1.5 MHz Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 23 февраля, 2023 Опубликовано 23 февраля, 2023 · Жалоба 7 minutes ago, V_G said: У вас точно девиация 83 МГц? Есть ограничения на скорость перестройки PLL, тем более на таких высоких скоростях передачи. На 9 стр. описания есть параметр Modulation deviation range = 1.5 MHz Ошибся. В кГц. Поправил нуль-пост. 43 minutes ago, GenaSPB said: Сократить размер пакета возможно? Термин отбеливание это не про randomizer? Я наоборот сделал пакет ровно столько, чтобы в него вместить один сжатый фрейм полностью. Отбеливание - это Data Whitening - для де-корелляции данных (размазать спектр) - небольшое скремблирование Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V_G 8 23 февраля, 2023 Опубликовано 23 февраля, 2023 · Жалоба Похоже, вы работаете на пределе скоростных возможностей данной ИС. Есть возможность посмотреть спектр передатчика? Насколько он укладывается в полосу приемника 850 кГц? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 23 февраля, 2023 Опубликовано 23 февраля, 2023 (изменено) · Жалоба 12 minutes ago, V_G said: Похоже, вы работаете на пределе скоростных возможностей данной ИС. Есть возможность посмотреть спектр передатчика? Насколько он укладывается в полосу приемника 850 кГц? К сожалению, спектр не могу посмотреть из-за отсутствия периборов. Если inner deviation = 83,333 кГц, значит Outer = 250 кГц (в 3 раза больше). Полоса: 500 ksps + 2*Outer = 1000 kHz > 850 kHz - больше чем 850 кГц полоса не ставится. Однако, в даташите заявлен режим 4GFSK со скоростью 500 ksps и девиацией 83,333 кГц - даётся чувствительность. Значит, режим имеет место быть. Меня сейчас интересует какой корректирующий код можно применить? Моделирование показывает, что при исправлении двух бит в одном байте, число успешно исправленных пакетов возрастёт до 90%. Изменено 23 февраля, 2023 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V_G 8 23 февраля, 2023 Опубликовано 23 февраля, 2023 · Жалоба Надо смотреть, что даст больший эффект: код, исправляющий ошибки на 500 ksps (со снижением эффективной скорости за счет введения избыточности), либо снижение реальной скорости, например, до 400 ksps. По крайней мере, со вторым можно быстро проэкспериментировать, если ИС позволяет установить такую скорость. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 23 февраля, 2023 Опубликовано 23 февраля, 2023 · Жалоба Добавил RS(255,239), исправляющий 8 ошибок. Фрейм разделил на 32 части по 255 байт каждая. Число байт на полезные данные уменьшилось с 8192 до 32*239=7648 Число пакетов, которые успешно исправились + без ошибок - увеличилось до 82% (без RS было 53%). Есть ли длинные коды RS, например RS(8191,7935), исправляющие 128/256 ошибок? Делить на куски не очень удобно + ограничивает локацию битых данных в пределах одного куска 255 байт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aner 5 23 февраля, 2023 Опубликовано 23 февраля, 2023 · Жалоба Длинные коды RS не в этом чипе. А зачем вам 4FSK? ... в вашем варианте с помехами он хуже чем FSK, в плане битых пакетов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 23 февраля, 2023 Опубликовано 23 февраля, 2023 (изменено) · Жалоба 15 minutes ago, Aner said: А зачем вам 4FSK? ... в вашем варианте с помехами он хуже чем FSK, в плане битых пакетов. Скорость 1000 kbps только при 4FSK. 1000 kbps нужно, чтобы успевать передавать поток сжатых фреймов видео 320x240 15 FPS (H264) приемлемого качества + четыре фрейма сжатого аудио (24 кбит/c) Изменено 23 февраля, 2023 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 23 февраля, 2023 Опубликовано 23 февраля, 2023 · Жалоба Если у Вас протокол однонаправленный, без квитирования, можно рассмотреть использование усилителя (хотя это вопрос нарушения требований инспекции эл.связи и стандарта). Передавать с 10 мВт по эфиру скоростной поток длинными пакетами, на расстояние икс, в условиях постоянных/внезапных помех. . . Кроме снижения скорости, избыточного кодирования + вида модуляции - только увеличение мощности. Смотря что у Вас в приоритете - решение прикладной задачи или научные цели. Google (пока не забанили) "Усилитель мощности BLT53A с si4463" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 23 февраля, 2023 Опубликовано 23 февраля, 2023 (изменено) · Жалоба 19 minutes ago, k155la3 said: Если у Вас протокол однонаправленный, без квитирования, можно рассмотреть использование усилителя (хотя это вопрос нарушения требований инспекции эл.связи и стандарта). Передавать с 10 мВт по эфиру скоростной поток длинными пакетами, на расстояние икс, в условиях постоянных/внезапных помех. . . Кроме снижения скорости, избыточного кодирования + вида модуляции - только увеличение мощности. Смотря что у Вас в приоритете - решение прикладной задачи или научные цели. Проблема не в недостатке мощности. Если приемник и передатчик в одной комнате, то битые пакеты возникают в зависимости от положения приемника или передатчика. Может переотражение? 19 minutes ago, k155la3 said: Google (пока не забанили) "Усилитель мощности BLT53A с si4463" Такой будет лучше: Изменено 23 февраля, 2023 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 23 февраля, 2023 Опубликовано 23 февраля, 2023 · Жалоба 11 минут назад, repstosw сказал: Проблема не в недостатке мощности. Если приемник и передатчик в одной комнате, то битые пакеты возникают в зависимости от положения приемника или передатчика. Может переотражение ? При "пользовании" RFM69 наблюдалось, что если 2 трансивера находились на очень близком расстоянии (в пределах метра), возникали сбои при приеме. Переотражение в одной комнате - сомневаюсь, хотя оно имеет место быть. А вот если в соседней, особенно если стена жб или много металлических отражающих-экранирующих поверхностей - даже "очень и очень", интерференционные "ямы" наблюдаются даже для вещательного FM. В более ВЧ диапазоне это будет более явно. Неплохо было бы промониторить взаимосвязь уровня сигнала RSS и уровня ошибок в разных точках приема. Если зона работы постоянная, можно протянуть рч-кабель - пассивный ретранслятор. Есть и спец-кабели для этих целей. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 23 февраля, 2023 Опубликовано 23 февраля, 2023 (изменено) · Жалоба Сделал перемежение. Число битых пакетов упало до 7%. K=239 N=255 L=32 Передатчик: //Interleaver for(int j=0;j<L;j++)for(int i=0;i<K;i++)RS[j][i]=Frame[(L*i)+j]; //RS Encoder for(int j=0;j<L;j++)encode_data(&RS[j][0],K,&RS[j][0]); //Former for(int i=0;i<N;i++)for(int j=0;j<32;j++)Frame[(L*i)+j]=RS[j][i]; //TX Si4463TX(Frame,sizeof(Frame)); Приёмник: //RX Si4463RX(RXBuffer); //... //De-Former for(int i=0;i<N;i++)for(int j=0;j<L;j++)RS[j][i]=RXBuffer[(L*i)+j]; for(int j=0;j<L;j++) { //RS Decoder decode_data(&RS[j][0],N); if(check_syndrome()!=0) { if(correct_errors_erasures(&RS[j][0],N)==FALSE) { // bad++; } else OK=1; } // else bad++; } //De-Interleaver for(int j=0;j<L;j++)for(int i=0;i<K;i++)Frame[(L*i)+j]=RS[j][i]; Подсчёт и запись статистики: if(OK==1) { if(*((u64*)&Frame[F-CRC64])==crc64(Frame,F-CRC64)) //CRC64 OK { } else bad++; } OK=0; //--- nf++; if(nf==15*60*3) { DMA_Stop(); FatFs_Init(); FIL *f=Fopen("log.raw","wb"); Fwrite((void*)&bad,1,sizeof(bad),f); Fclose(f); while(1) { ToggleLED(); DelayMS(20); } } } Что ещё можно придумать? Может CIRC попробовать - когда RS() по строкам и столбцам. 42 minutes ago, k155la3 said: Переотражение в одной комнате - сомневаюсь, хотя оно имеет место быть. А вот если в соседней, особенно если стена жб или много металлических отражающих-экранирующих поверхностей - даже "очень и очень", интерференционные "ямы" наблюдаются даже для вещательного FM. В более ВЧ диапазоне это будет более явно. Так и есть: много стен из железо-бетона. Бытовой радиовещательный приёмник также в некоторых местах не работает (+/- пол-длины волны). Изменено 23 февраля, 2023 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 23 февраля, 2023 Опубликовано 23 февраля, 2023 · Жалоба На графическом логе видно довольно регулярные "волны". Неплохо было-бы послушать что там в эфире творится в режиме тишины. Попробуйте сдвинуться по частоте. Если помеха, то ее частота (после демодуляции) может накладываться на полезный сигнал в различных соотношениях, как частоты так и амплитуды. Другой вариант - разместите комплекты приемника и передатчика на допустимо-близком расстоянии (метр-2-3) и тестируйте на ошибки при последовательном снижении мощности TX . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться