|
Алгоритм отлова пакета в радио канале. Help pls! |
|
|
|
Dec 12 2016, 16:48
|
Группа: Участник
Сообщений: 9
Регистрация: 12-12-16
Пользователь №: 94 601

|
Ранее не приходилось работать с радиоканалом (любитель я), а когда попробовал, обнаружил большое количество шумов, мешающих выделить данные. Отсюда и вопрос. Насколько могу сейчас понять, задачи две - распознать в потоке шумов саму посылку и синхронизироваться с частотой и тактами модуляции. Видимо, преамбула предназначена для распознавания посылки и определения частоты модуляции, а последующий синхроимпульс - для определения "точки отсчета" последующих бит данных (тактов). Гугление выдает не рассказы об алгоритмах, а то, что использует эти алгоритмы, как законченные модули. После чтения всего, что выдал гугль, сложилось лишь самое общее представление о том, как такие алгоритмы строятся. Но его маловато для написания своего алгоритма. Насколько понимаю сейчас, все методы делятся на две группы. В одной из них, уровень сигнала сравнивается (по интервалам таймера) с предполагаемым в N-раз чаще (2, реже - 3), чем он должен меняться. Если смена уровня сигнала происходит раньше или позже, чем должно быть, считается, что на входе не посылка, а шум. Во второй группе алгоритмов используется не прерывание по таймеру, а Input Capture, то есть, замеряется реальная длительность импульса, которая сверяется с ожидаемой. Если она отличается слишком сильно, импульс считается шумом. Помогите разобраться, pls, как лучше подступиться к задаче. Если есть что почитать об этом - оч. хорошо, если есть примеры кода - еще лучше. На данном этапе я даже не могу оценить, какой из двух методов какие преимущества/недостатки имеет. Например, как методы первой группы позволяют учитывать разницу между скоростью тактирования передатчика и приемника? В общем, темный лес пока.  Ткните в правильном направлении, pls.
Сообщение отредактировал G.Simenon - Dec 12 2016, 16:51
|
|
|
|
|
 |
Ответов
|
Dec 15 2016, 14:39
|
Группа: Участник
Сообщений: 9
Регистрация: 12-12-16
Пользователь №: 94 601

|
Похоже, что с Input Capture возни больше в части пропуска помех. Noise Canceler пропускает только помехи короче 4 системных тактов, поэтому, если на Input Capture Pin придет помеха длиннее, то, чтобы исключить ложный захват, придется складывать захваченное значение длительности с предыдущей и оставаться в том же режиме захвата (falling/rising edge)? Кто-нибудь пробовал то и другое, может подсказать в каком направлении двигаться?
|
|
|
|
|
Dec 15 2016, 17:52
|
Группа: Участник
Сообщений: 9
Регистрация: 12-12-16
Пользователь №: 94 601

|
Цитата(zltigo @ Dec 15 2016, 17:08)  Подаете на UART. Ширина импульсов бывает некратная, да и плавает она. Плюс ограничения UART на формат фрейма, ему стартбит нужен низкий, в сигнале же следующий бит, после уже принятых UARTом, может оказаться высоким. Софтово бы решить.
Сообщение отредактировал G.Simenon - Dec 15 2016, 17:54
|
|
|
|
|
Dec 15 2016, 18:05
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(G.Simenon @ Dec 15 2016, 19:52)  Ширина импульсов бывает некратная, да и плавает она. Не принципиально. В реальной проводной линии проблемы принципиально такие-же. Выделение байта у сколь-нибудь приличных реализаций UART по нескольким отсчетам. Цитата Плюс ограничения UART на формат фрейма, ему стартбит нужен низкий, в сигнале же следующий бит, после уже принятых UARTом, может оказаться высоким. Повторяю: "Преамбула делается под захват UART-ом сначала битовой, а потом байтовой синхронизации". Так что все решается. Естественно, передатчик тоже UART, ну и то, что он "A" решает и проблему различия битовой частоты. Цитата Софтово бы решить. Софтово будете разбираться наличием битовой и байтовой синхронизации и выделением фрейма. А всем остальным железка займется.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Dec 15 2016, 18:16
|
Группа: Участник
Сообщений: 9
Регистрация: 12-12-16
Пользователь №: 94 601

|
Цитата(zltigo @ Dec 15 2016, 18:05)  Естественно, передатчик тоже UART, ... Увы, передатчик не UART. Цитата(zltigo @ Dec 15 2016, 18:05)  Софтово будете разбираться наличием битовой и байтовой синхронизации и выделением фрейма. А всем остальным железка займется. Ах, вот как, софтом определять моменты включения UARTa... звучит сложнее, чем просто софтовая реализация. Спасибо за вариант.
|
|
|
|
Сообщений в этой теме
G.Simenon Алгоритм отлова пакета в радио канале. Help pls! Dec 12 2016, 16:48 krux на каких скоростях планируете работать, и на чем п... Dec 12 2016, 16:53 G.Simenon Цитата(krux @ Dec 12 2016, 17:53) на каки... Dec 12 2016, 17:02     zltigo Цитата(G.Simenon @ Dec 15 2016, 20:16) Ув... Dec 15 2016, 18:24      G.Simenon Zltigo, Вы для меня слишком "гуру" - мне... Dec 15 2016, 18:34 dm37 Один из первых проектов был похож на ваш (RXQ1-433... Dec 15 2016, 18:27 dm37 в своё время рассматривал в основном два метода ко... Dec 15 2016, 18:41 G.Simenon Цитата(dm37 @ Dec 15 2016, 18:41) ... ман... Dec 15 2016, 18:55 zltigo Цитата(dm37 @ Dec 15 2016, 20:41) в своё ... Dec 15 2016, 23:53 V_G UART'ом не стоит путать человека, надо привязы... Dec 16 2016, 00:27 zltigo Цитата(V_G @ Dec 16 2016, 02:27) UART... Dec 16 2016, 09:02 DASM что то странное по какие то таймеры, согласованный... Dec 19 2016, 06:12
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|