|
|
  |
Кадровая синхронизация, Выбор синхрослова |
|
|
|
Aug 6 2013, 07:27
|
Частый гость
 
Группа: Свой
Сообщений: 156
Регистрация: 1-02-05
Из: the Earth
Пользователь №: 2 331

|
Доброго дня! Имеется, в общем-то, тривиальная задача: подобрать синхрослово для канала передачи данных. Данные передаются кадрами различной длины, не скремблированы и никак не кодированы. Минимальная длина слова - DWORD (4 байта). Знаком с кодами Баркера/Уиларда, но, может быть, у кого-то есть частный пример под похожую задачу?  Заранее спасибо!
|
|
|
|
|
Aug 6 2013, 08:19
|
Гуру
     
Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640

|
Цитата(Fat Robot @ Aug 6 2013, 11:56)  А если синхрослово встретится в теле пакета? Трагедия? для этого в потоке синхрослова заменяют какой-нибудь спец. фигней. если поток скремблирован, то, наверно, в нем последовательность 11...1 или 00...0 равная длине скремблера не должна встречаться - может подойдет? upd: не скремблирован - сори фигней - в смысле синхрослово, а затем какой-нибудь спецкод, как воспринимать это слово - как данные или синхро в каком-то (XYZ?)модеме для кодирования повторяющихся байтов вставлялся спецсимвол и счетчик, если спцсимвол в потоке, то как-то решалось - уже не помню
|
|
|
|
|
Aug 6 2013, 11:02
|
Частый гость
 
Группа: Свой
Сообщений: 156
Регистрация: 1-02-05
Из: the Earth
Пользователь №: 2 331

|
Цитата(Fat Robot @ Aug 6 2013, 11:56)  А если синхрослово встретится в теле пакета? Трагедия? Нет, не трагедия. Весь поток данных парсингу не подвержен. Проверяется ещё стоп-маркер и КС. То есть, уникальность синхрослова или, скорее, низкая вероятность наличия идентичного в потоке передаваемых данных, является дополнительной защитой. Цитата(yes @ Aug 6 2013, 12:19)  для этого в потоке синхрослова заменяют какой-нибудь спец. фигней.
в каком-то (XYZ?)модеме для кодирования повторяющихся байтов вставлялся спецсимвол и счетчик, если спцсимвол в потоке, то как-то решалось - уже не помню да, например можно применить байт-стаффинг. Но это уже парсинг всего протокола, что на данный момент для программиста(т.е. для программы) на ПК будет слишком ресурсно. То же можно сказать и о xxx-модеме  Но, в любом случае, спасибо за соображения
|
|
|
|
|
Aug 6 2013, 13:14
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(Димыч @ Aug 6 2013, 11:27)  Имеется, в общем-то, тривиальная задача: подобрать синхрослово для канала передачи данных. Задача далеко не тривиальная. Вот вам парочка посредственных 4-х байтовых: 0xEDE2ED1D 0xB8B7B848
|
|
|
|
|
Aug 6 2013, 16:25
|
Частый гость
 
Группа: Свой
Сообщений: 156
Регистрация: 1-02-05
Из: the Earth
Пользователь №: 2 331

|
Цитата(Fat Robot @ Aug 6 2013, 15:22)  .....и единиц выбраны в обатном соответствии с вероятностями их возникновения.
....
для случая "маркер начала" - данные - кс - "маркер окончания" (без поля длины) получается какая-то неочевидная машина состояний для приема. 1. да  данные в канале могут быть сэмплами изображения, а могут быть данными прошивки (для режима DFU). 2. поле длины есть - машине проще Цитата(petrov @ Aug 6 2013, 17:14)  Задача далеко не тривиальная.
Вот вам парочка посредственных 4-х байтовых: 0xEDE2ED1D 0xB8B7B848 по крайней мере, определённое количество статей по родственным проблематикам я уже нашёл за сегодняшний вечер. Спасибо!
|
|
|
|
|
Aug 11 2013, 19:37
|
Местный
  
Группа: Участник
Сообщений: 239
Регистрация: 15-11-09
Из: Санкт-Петербург
Пользователь №: 53 639

|
Цитата(Димыч @ Aug 6 2013, 11:27)  Доброго дня! Знаком с кодами Баркера/Уиларда, но, может быть, у кого-то есть частный пример под похожую задачу?  Заранее спасибо! А при чём тут код Баркера? Раз речь про синхрослово, то, я так понимаю, задача низкоуровневой синхронизации уже решена к этому момента? Или вы хотите двух зайцев сразу пристрелить, т.е. и символьную и словную синхронизацию коррелятором сразу вытащить без слежения? Или у вас вообще беспрерывный поток данных валится и ваша задача начало и конец вытащить? Не до конца задача понятна.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|