Як уникнути втручання в бездротовий зв’язок?


12

Я працюю над системою бездротового зв’язку. Ми використовуємо близько 10 пар передавача та приймачів. Ми використовуємо мікроконтроллер atmega16 для кодування та декодування портами USART.

Тепер ми маємо змогу передавати дані та отримувати те саме в кінці приймача, але існує велика проблема, коли ми знаходимо 2 дані передавача, що надходять одночасно. Одержувач не може отримати його через перешкоди.

Припустимо, один передавач посилає "SENDA", тим часом інший передавач посилає "GETTS", і тоді приймач не може отримувати належних даних. Оскільки всі передавачі та приймачі працюють з однаковою частотою, то така перешкода відбувається. Як я можу вирішити цю проблему?


4
Який тип радіоциркуляції знаходиться між вашим UART та антеною?
jpc

Відповіді:


14

Розробка працездатного протоколу зв’язку РФ може бути складним, але навчальним вправою. Кілька додаткових моментів, які слід врахувати понад сказане:

  1. На деяких радіоапаратурах для прослуховування сигналу потрібно багато сил. У багатьох, якщо не в більшості малих радіостанцій, прослуховування секунди забирає більше енергії, ніж передача на мілісекунду; на деяких радіостанціях прослуховування мілісекунди може зайняти більше енергії, ніж передача на мілісекунду. Якщо споживання струму не є проблемою, безперервне прослуховування набагато простіше, ніж прослуховування з перервами; якщо споживання струму є проблемою, однак, можливо, доведеться слухати його з перервами. Напевно, це не дуже гарна ідея, поки вам не вдалося домогтися чогось із протоколом безперервного прослуховування.
  2. Прослуховування перед передачею може бути "ввічливим", але це ніде не так корисно з RF, як, наприклад, з Ethernet-кабелем. Сигналізація Ethernet розроблена так, що не тільки ймовірно, що пристрій, який прослуховує перед передачею, зазвичай уникає зіткнення, але також розроблений таким чином, що пристрій, передача якого стикається з іншим пристроєм, практично гарантовано помітить. Радіопередача не обіцяє такої обіцянки. Цілком можливо, що коли P хоче передати Q, якийсь інший пристрій X, який ближче до Q, ніж до P, буде передавати досить голосно, щоб Q не почув передачу P, але недостатньо голосно, щоб P помітив. Єдиний спосіб, коли P дізнається, що Q, можливо, не отримав свою передачу - це той факт, що P не почує відповіді від Q.
  3. Важливо остерігатися проблеми консенсусу - набагато більше, ніж з радіочастотним зв'язком, ніж з дротовою сигналізацією. Якщо P посилає на Q, можливо, Q почує передачу P і надішле підтвердження, але P з різних причин не почує це підтвердження. Тому потрібно бути дуже обережним, щоб відрізнити повторні передачі від "нових" передач.

    Проблема консенсусу може бути особливо неприємною, якщо намагаються заощадити енергію, вимикаючи приймачі, коли вони не потрібні. Припустимо, два P і Q повинні спілкуватися один раз на 10 секунд, тому вони включаються, і P надсилає Q пакет. Q отримує пакет, надсилає своє підтвердження, і - знаючи, що P майже десять секунд нічого не надсилає, призупиняється. Якщо P не отримає підтвердження Q, він повторно передасть; оскільки Q спить, однак, він не почує повторну передачу P. З точки зору Q, це не має значення (він вже отримав свої дані), але це означає, що незалежно від того, скільки разів P повторюється, він не матиме можливості знати, що Q отримав його пакет (принаймні, не до наступного рандеву в десять секунд).

  4. Цілком можлива ситуація, коли вузол Q зможе отримувати передачі від P, але P не зможе приймати передачі від Q. Це може бути неможливим з корисним спілкуванням у таких сценаріях, але слід хоча б намагатися. щоб не робити нічого неприємного (як, наприклад, P нескінченно намагатися передати сотні повторень за секунду)

Як було сказано, працездатний протокол зв'язку з радіочастотним зв'язком може бути складним завданням. Тим не менш, я б очікував, що ви, мабуть, багато чого навчитеся з досвіду.


8

Якщо ви не використовуєте для цього стандартний протокол, тоді вам доведеться розробити та впровадити його, наприклад, простий приклад:

  • перед передачею, вузол повинен прослухати, щоб перевірити, що канал вільний
  • якщо після передачі повідомлення не отримано підтвердження, вузол повинен зачекати випадковий проміжок часу, а потім спробувати ще раз, збільшивши деяку максимальну кількість повторень

Тож, що трапляється, ви спершу намагаєтесь уникнути "заклинювання", слухаючи спочатку, потім, якщо заклик все-таки виникає, ви виявляєте це через відсутність підтвердження від вузла прийому, а потім повторюєте спробу після випадкової затримки - два передавачі заклинання використовувати різні випадкові затримки, мінімізуючи ймовірність другого зіткнення.


2
Основним обмеженням уникнення зіткнення є те, що немає гарантії того, що потенційні передавачі будуть знаходитися в межах прийому один одного, навіть якщо вони обоє в межах діапазону прийому за призначенням.
supercat

1
Уникнення зіткнень просто забезпечує деяке покращення використання каналів. Вам ще доведеться робити підтвердження та повторну передачу. Головне - дочекатися випадкового часу перед повторною передачею.
Девід Шварц

Найголовніше, що це працює в режимі реального часу, а також це один із способів спілкування. тож якщо ми зробимо це двостороннім способом, це зробить більше втручання :(
user934070

Гаразд - тоді це ніколи не буде надійним або надійним - ви можете слухати перед передачею, але крім форми, що ви ніколи не матимете гарантії того, що передача фактично отримана.
Пол Р

4

Ось два поширені варіанти

1) Вкажіть алгоритм прослуховування перед розмовою (LBT), який перевіряє, чи йде передача, перш ніж запускати власну, і якщо це так, відключається на певний період часу. Період повинен містити фіксовану довжину та випадкову довжину, щоб вони не відступали за той самий період. Багато стандартних радіопротоколів включають цю процедуру, див. ETSI EN 300-220-1.

2) Вкажіть систему маяків, де передачі приурочені до маяка. Кожен передавач отримує свій часовий слот. Зазвичай ви використовуєте серійні номери на пристроях для визначення їх слота та маєте систему визначення того, хто надсилає маяк. Оскільки це покладається на те, що всі передавачі мають інший слот, не годиться залишати його користувачеві однозначно ідентифікувати всі передавачі, якщо у вас немає чіткої процедури для цього.


Я вважаю, що частина другої може скористатися CDMA, якщо вони знають, що більшості станцій зазвичай не потрібно передавати.
Кортук

1
@Kortuk: У мене було враження, що одна з переваг CDMA полягає в тому, що - якщо одержувач може синхронізуватися з відправником - кількість бітових помилок зросте в міру збільшення кількості одночасних передавачів, але в іншому випадку є не є «заклинюванням» як таким.
supercat

@supercat, я маю враження, що всі випадковим чином розподіляють часові інтервали. Більшість передавачів розмовляють лише зрідка, тому ймовірність двох розмов одночасно дуже мала, але іноді це трапляється і виявляється як невелика кількість бітових помилок у цей момент. За допомогою переплетення та загального ECC ви можете все, окрім цього, ігнорувати. Зважаючи на це, кожен заздалегідь визначив часові інтервали на основі генератора випадкових чисел, щоб переконатися, що два передавачі не ділять один і той же простір постійно та зустрічаються лише зрідка. Я можу попросити когось, хто точно знає, і запросити їх.
Кортук

1
@Kortuk: Це те, про що я думав, мав на увазі CDMA, але ряд джерел, включаючи сторінку Вікіпедії, припускають, що це стосується модуляції зі швидкістю, що перевищує швидкість передачі бітів; якщо передавач перетворює свій сигнал відповідно до псевдовипадкового бітового потоку, і приймач робить аналогічно, а потім фільтрує отриманий сигнал, вихідний сигнал може бути відновлений. Підходи, засновані на псевдовипадковому інтервалі часу, корисні, але я не думаю, що CDMA - це правильний термін. Найбільша складність таких підходів - координація. Я дуже хотів би, щоб були широко доступні сигнали часу з високою роздільною здатністю.
supercat

1
@Kortuk: Сорти WWV свого роду працюють для синхронізації цифрових годин і годин, але для відправлення сигналу часу потрібна хвилина. Це було б набагато приємніше, якби були широко розгорнуті часові трансляції, які можна було прочитати через 10 мс і менше, і гарантується, що вони знаходяться в межах певної невеликої толерантності до часу WWV в Колорадо (мається на увазі, що в 1000 милях від місцевих ретрансляторів часові трансляції насправді повинні вести WWV приблизно 5 мс).
supercat

3

Як я розумію з коментарів тощо, влада - це не проблема, але швидкість спілкування. Отже, ось моя пропозиція щодо протоколу.

Пронумеруйте всі вузли, 0..n-1. Нехай кожен вузол знає, яке це число. Вузол 0 буде головним.

Кожні 15 мс, вузол 0 надсилає повідомлення: "0HELO".
Через 1 мс, вузол 1 надсилає повідомлення: "1DATA".
Через 1 мс, вузол 2 надсилає повідомлення: "2NICE".
Через 1 мс, вузол 3 надсилає повідомлення: "3". (Цей вузол не має нічого сказати)
1мс пізніше, вузол 4 надсилає повідомлення: "2CATS".
...
Через 1 мс, вузол 9 надсилає повідомлення: "9MICE".
Потім настає пауза 5мс.

Вузли завжди надсилають свої повідомлення у правильні часові інтервали, навіть якщо їм нічого сказати. Таким чином вам гарантується швидкість зв'язку 66 ГГц, без зіткнень.


2

Радіочастотний зв’язок з декількома асинхронними передавачами - складна проблема. Дуже багато думок та техніки ввійшло в стандарти 802.11 та 802.15, щоб обійти ці проблеми. Якщо вам доведеться запитати тут, вам слід дотримуватися обладнання, що реалізує один із цих стандартів.

Зауважте, що хоча обидва є корисними та представляють багато ретельної конструкції, як правило, будь-якій реальній програмі все одно доведеться реалізувати стек протоколу вище цих стандартів. Це буде WiFi та TCP вище 802.11, а Zigbee або WiWi Microchip або деякі інші вище 802.15.

Знову ж таки, проектування багатоточкової радіомережі - це вихід з вашої ліги, якщо ви задаєте тут основні питання. Ви просто витратите багато часу, і все одно не завжди буде правильно.

Вибір 802.11 проти 802.15 залежить в основному від вашої пропускної здатності та діапазону, а також від доступної потужності. 802.15 - менша, менша потужність, менша пропускна здатність і менший діапазон. Завдяки правильному програмному забезпеченню більш високого рівня, пристрій 802.15 може довго працювати від батарей, тоді як це, як правило, не стосується 802.11.


2
Все залежить від програми. Це дійсно досить складно, але в той же час багато чого можна навчитися вправі. І те, що він навчиться, - це універсальні закони, а не деякі деталі конкретного впровадження.
jpc

9
"вихід з вашої ліги" трохи суворий. Вони дещо над головою, і я бачив, як люди в такому положенні витрачають рік на подібні проблеми ... але це не означає, що вони не можуть приймати поради і змусити його працювати. Як сказав jpc, успіх тут може означати значний стрибок у розумінні. Якби вони були моїми працівниками з цим запитанням (і я могла дозволити собі час на урок), я б підштовхнула їх і сподіваюся, що вони чогось навчаться.
darron

3
Це несправедливе обслуговування, коли люди заходять на цей сайт, шукаючи відповіді, щоб дізнатися про проблему та вирішити проблему та залишити примусово (за допомогою резюме) рішення, яке вони не просили або не можуть використовувати.
Джоель Б

1
@JoelB оновлення не змушують прийняти відповідь.
Кріс Страттон

1

Я погоджуюсь із прослуховуванням перед розмовою та системою маяків. Але якщо ви хочете одночасно використовувати один канал для передачі даних, ви можете використовувати модуляцію модуляції прямого послідовності спектру (DSSS). Це може допомогти вам уникнути втручання.

Але для цього вам, можливо, потрібно придбати чіп, який реалізує його, наприклад Xbee (заснований на Zigbee). Якщо ви не можете змінити передавач, слід дотримуватися інших відповідей.


Дуже дякую за пропозиції. Але насправді нашим головним питанням є те, що наша система працює в режимі реального часу, тому коли і звідки ми отримаємо сигнал, абсолютно непередбачувано. Дозвольте пояснити це більш докладно. насправді всі передавачі та приймачі розміщуються в межах їхнього діапазону, тобто припустимо, що їх дальність становить 100 метрів, тоді всі вони присутні всередині 50 метрів, тому будь-який сигнал, що виходить з одного передавача, може дійти до кожного вузла, і знову будь-який сигнал може надійти в будь-який час. тож як ми можемо це вирішити ,, ..
user934070

@ User934070 Системи стільникового телефону та wifi, як правило, використовують розширений спектр якихось або принаймні технологій, які відповідають тим же основним поняттям. Мобільні телефони та ноутбуки так само, як ви описуєте, "коли і звідки ми отримаємо сигнал абсолютно непередбачувано"
Kellenjb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.