Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите раскодировать сигнал...
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
wasp
Доброго времени суток.
суть проблемы:
есть отсканированный сигнал, передающий ID размером 2 байта (предположительно в конце пакета). Тут можно посмотреть образцы пакетов данных для разных ID:
http://www2.fh-sw.de/~k6144/Zeitsignale_ID_02.odt.pdf
Не хватает знаний и опыта, чтобы понять принцип кодировки. Похоже на штрих-код, но вроде не стандартная кодировка. Короче, если кто имеет похожий опыт, подкиньте идейку плиз.

P.S.
тут привожу пример для ID=0 и ID=1

Заранее благодарен.
Attractor
Цитата(wasp @ Sep 2 2007, 23:43) *
Доброго времени суток.
суть проблемы:
есть отсканированный сигнал, передающий ID размером 2 байта (предположительно в конце пакета). Тут можно посмотреть образцы пакетов данных для разных ID:
http://www2.fh-sw.de/~k6144/Zeitsignale_ID_02.odt.pdf
Не хватает знаний и опыта, чтобы понять принцип кодировки. Похоже на штрих-код, но вроде не стандартная кодировка. Короче, если кто имеет похожий опыт, подкиньте идейку плиз.

P.S.
тут привожу пример для ID=0 и ID=1

Заранее благодарен.


Ваша ссылка не открывается (по крайней мере, у меня). Возможно этим и объясняется отсутствие ответов на Ваш вопрос. Подправьте ее smile.gif
MSprut
Не берусь утверждать, но очень смахивает на ШИМ-кодировку, как в микрсхемах РТ2262, т.е. логический "0" и "1" передаются не уровнями, а шириной импульсов, причем два раза подряд, чтобы можно ввести, так называемый, третий лог уровень - "плавающий" бит. Ну например, лог. "0" - короткий импульс-длинная пауза-короткий импулсь-длинная пауза; лог. "1" - наоборот, длинный импульс-короткая пауза-длинный импульс-короткая пауза; "плавающий" бит - короткий импульс-длинная пауза-длинный импульс-короткая пауза.
soshnev
Цитата(wasp @ Sep 3 2007, 00:43) *
Доброго времени суток.
суть проблемы:
есть отсканированный сигнал, передающий ID размером 2 байта (предположительно в конце пакета). Тут можно посмотреть образцы пакетов данных для разных ID:
http://www2.fh-sw.de/~k6144/Zeitsignale_ID_02.odt.pdf
Не хватает знаний и опыта, чтобы понять принцип кодировки. Похоже на штрих-код, но вроде не стандартная кодировка. Короче, если кто имеет похожий опыт, подкиньте идейку плиз.

P.S.
тут привожу пример для ID=0 и ID=1

Заранее благодарен.


Так сразу не въехать.
А другие варианты ID есть (2,3,255 и др)?
А все варианты проанализировать возможно?

Из приведённых диаграмм видно - половина диаграммы слева одинаковая, если их наложить
друг на друга.
Если при приёме используется перевод в параллельный код, то
вообще кодировка может быть весьма сложная - в результирующий код могут включить наложение
содержимого по адресу из ПЗУ и ещё алгоритм сдвигов.

Я бы посоветовал также искать другую информацию - со стороны devices, которые это используют...
wasp
сори, действительно cсылка перестала открываться
выкладываю тут:
wasp
наверно стоит добавить - этот сигнал модулируется LF-антеной на частоте 125 kгц.
девайс по сути RFID-система, только передача данных идет не только от транспондера к ридеру, но и в обратном направлении (от ридера к транспондеру по LF - то что вы видите, a oт рaнcпoндера к ридеу по HF).
по LF можно присвоить транспондеру ID, ну и там много разных дополнительных функций. Дальность действия зависит от диаметра контура и может достигать 40 метров. Транспондер конечно активный.
soshnev
Цитата(wasp @ Sep 3 2007, 18:17) *
наверно стоит добавить - этот сигнал модулируется LF-антеной на частоте 125 kгц.
девайс по сути RFID-система, только передача данных идет не только от транспондера к ридеру, но и в обратном направлении (от ридера к транспондеру по LF - то что вы видите, a oт рaнcпoндера к ридеу по HF).
по LF можно присвоить транспондеру ID, ну и там много разных дополнительных функций. Дальность действия зависит от диаметра контура и может достигать 40 метров. Транспондер конечно активный.


Странно - я думал предложить следующее:
- по отрицательному фронту ( срабатывает умножитель частоты на входе (из одного входного импульса - два (фронтовой формирователь, или внутри двойная частота)
по второму импульсу с умножителя идёт запись в сдвиговый регистр приходящих данных.
По окончании пакета , по приходу последнего импульса с умножителя собственно и анализируется
регистровая информация.
Похоже пакет состоит из 2-х частей - тип данных и значение данных.

Или проще говоря - подрисовать под диаграммами двойные импульсы и получить табличные
данные итоговых кодов (рисовать записываемые значения под вторыми импульсами)...
Далее, если версия верна, можно попробовать объединить разряды регистра
для удобства разбора.

Возможно пакет состоит из других 2-х частей - от приёмника и передатчика, тогда это тоже
попытаться уточнить анализируя все коды из файла...

В общем, вот такое предложение (на первый, весьма далёкий взгляд со стороны)...




Цитата(soshnev @ Sep 4 2007, 09:38) *
Странно - я думал предложить следующее:
- по отрицательному фронту ( срабатывает умножитель частоты на входе (из одного входного импульса - два (фронтовой формирователь, или внутри двойная частота)
по второму импульсу с умножителя идёт запись в сдвиговый регистр приходящих данных.
По окончании пакета , по приходу последнего импульса с умножителя собственно и анализируется
регистровая информация.
Похоже пакет состоит из 2-х частей - тип данных и значение данных.

Или проще говоря - подрисовать под диаграммами двойные импульсы и получить табличные
данные итоговых кодов (рисовать записываемые значения под вторыми импульсами)...
Далее, если версия верна, можно попробовать объединить разряды регистра
для удобства разбора.

Возможно пакет состоит из других 2-х частей - от приёмника и передатчика, тогда это тоже
попытаться уточнить анализируя все коды из файла...

В общем, вот такое предложение (на первый, весьма далёкий взгляд со стороны)...

Извиняюсь - не совсем так просто (нарисовать коды - придётся рисовать их движение),
может быть запись от задержанног сигнала, но то что внутри есть какая-то двойная собственная частота -точно.
Не судите строго - сказал что смог...
wasp
да, пакет состоит из 2-ух частей, причем первая часть (до 2-ух широких импульсов) всегда одинаковая...и похоже что тактовый сигнал в первой и второй части разный (возможно ли это в принципе???)
Но оставим первую часть в покое, мне бы для начала понять - где спрятан reader-ID???
Все приведенные пакеты сняты без транспондера в поле видимости - значит они содержат только reader-ID. Пакеты с транспондером в поле видимости такие же по длине, но содержат кроме того 4 байта (!!!) transponder-ID и вся эта инфа во второй часте пакета (первая остается без изменений). Но это так, к сведению...

to soshnev
я к сожелению не уловил мысль, не могли бы Вы описать поподробней и если можно с эскизом smile.gif
soshnev
Цитата(wasp @ Sep 4 2007, 13:23) *
да, пакет состоит из 2-ух частей, причем первая часть (до 2-ух широких импульсов) всегда одинаковая...и похоже что тактовый сигнал в первой и второй части разный (возможно ли это в принципе???)
Но оставим первую часть в покое, мне бы для начала понять - где спрятан reader-ID???
Все приведенные пакеты сняты без транспондера в поле видимости - значит они содержат только reader-ID. Пакеты с транспондером в поле видимости такие же по длине, но содержат кроме того 4 байта (!!!) transponder-ID и вся эта инфа во второй часте пакета (первая остается без изменений). Но это так, к сведению...

to soshnev
я к сожелению не уловил мысль, не могли бы Вы описать поподробней и если можно с эскизом smile.gif

Высылаю подборку диаграмм. Я бы начал анализ с этого.
Сначала действительно сделать такую подборку (выравнять все диаграммы по левому краю)...

Есть мысль - что есть сигнал данных и на сколько его сдвигать (его разрядность...).
Хорошо-бы действительно подрисовать снизу полностью несущую (внутреннюю) частоту.
Естественно как она выглядит - надо подобрать...


Цитата(wasp @ Sep 4 2007, 13:23) *
да, пакет состоит из 2-ух частей, причем первая часть (до 2-ух широких импульсов) всегда одинаковая...и похоже что тактовый сигнал в первой и второй части разный (возможно ли это в принципе???)
Но оставим первую часть в покое, мне бы для начала понять - где спрятан reader-ID???
Все приведенные пакеты сняты без транспондера в поле видимости - значит они содержат только reader-ID. Пакеты с транспондером в поле видимости такие же по длине, но содержат кроме того 4 байта (!!!) transponder-ID и вся эта инфа во второй часте пакета (первая остается без изменений). Но это так, к сведению...

to soshnev
я к сожелению не уловил мысль, не могли бы Вы описать поподробней и если можно с эскизом smile.gif

Добавление к предыдушему (однаружил когда отправил).
Рисовать (помечать) 0 и 1 надо везде где есть широкие (двойные) импульсы.
wasp
Спасибо за ответ.
Если я правильно понял, полезная инф-я содержится только в широких импульсах. Но тогда для передачи 2 байта reader-ID + 4 байта transponder-ID + (возможно) команда транспондеру на передачу (должна быть тоже, т.к. посредством поля можно присваивать транспондеру новый ID, а для этого уже необходим протокол передачи данных) получается больше 6 байт. A это уже 48 бит -- с предложенной Вами идеей кодировки не получается - слишком короткий пакет. unsure.gif
soshnev
Цитата(wasp @ Sep 5 2007, 10:15) *
Спасибо за ответ.
Если я правильно понял, полезная инф-я содержится только в широких импульсах. Но тогда для передачи 2 байта reader-ID + 4 байта transponder-ID + (возможно) команда транспондеру на передачу (должна быть тоже, т.к. посредством поля можно присваивать транспондеру новый ID, а для этого уже необходим протокол передачи данных) получается больше 6 байт. A это уже 48 бит -- с предложенной Вами идеей кодировки не получается - слишком короткий пакет. unsure.gif

К сожалению я думаю - не совсем так - короткие импульсы - тоже рабочие.
Подмешивается сдвиг и инверсия (в общем какое-то действие).

Например как загнать 65535 - число где все единицы?
Иначе - я предлагаю ещё провести анализ на сравнение других пар (рядышком).
Например 64 и 63, 63 и 0, 256 и 127, 256 и 65535 и др.


Возможен вариант такой - сначала идут данные в пакете, а затем действие над ними.
(Например 65535 - загнать все нули, затем их (полученное содержимое) проинвентировать.
Возможен двойной вариант действий - типа сдвинуть влево (вправо) и проинвентировать
(или обнулить (не выдавать) старший разряд и т.п.
Действия я думаю простейшие в реализации (иначе не выдержать скорость обмена).

Рисунки диаграммы - первая помощь (их бы вообще представить в другом виде для анализа
в виде числовых векторов что-ли...)
wasp
Для меня до сих пор не ясно что есть 0 и что 1....
И почему такт в первой и во второй части не совпадает...
А без этого трудно что-либо предпринять...
soshnev
Цитата(wasp @ Sep 5 2007, 12:25) *
Для меня до сих пор не ясно что есть 0 и что 1....
И почему такт в первой и во второй части не совпадает...
А без этого трудно что-либо предпринять...

1.
Предлагаю всё-таки составить 3-х значную таблицу
с - clock - короткий импульс
0 - 0 данных - длинный уровень нуля (2такта)
1- 1 данных - длинный уровнь единицы(2такта)

Собираем (очень аккуратно) аналогичную таблицу для всех кодов
можно в exel или в тексте с фиксированной шириной шрифта, чтобы
не сбиться. Можно (даже нужно) слева ID выдать бинарно.
Далее продолжаем анализ.

Пример таблицы привожу (мог и ошибиться - надо проверить).

2. А какая вообще задача?
Другие ID возможны?
Для полноты картины, тех что приведены может и не хватить.
wasp
Цитата(soshnev @ Sep 5 2007, 15:39) *
1.
Предлагаю всё-таки составить 3-х значную таблицу
с - clock - короткий импульс
0 - 0 данных - длинный уровень нуля (2такта)
1- 1 данных - длинный уровнь единицы(2такта)

Собираем (очень аккуратно) аналогичную таблицу для всех кодов
можно в exel или в тексте с фиксированной шириной шрифта, чтобы
не сбиться. Можно (даже нужно) слева ID выдать бинарно.
Далее продолжаем анализ.

Пример таблицы привожу (мог и ошибиться - надо проверить).

2. А какая вообще задача?
Другие ID возможны?
Для полноты картины, тех что приведены может и не хватить.

спасибо, Вашу идею понял, но:
я снял точно длины импульсов и пауз во второй части пакетов и получил три варианта длительности импульсов и три варианта длительности пауз
Hi: 0.22 ms - 0,45ms - 0.65 ms
Low: 0,15 ms - 0,35ms - 0,58 ms
длина импульсов пропорциональна 0.22мс, а длина пауз - непонятно по какому принципу
из-за этого невозможно определить такт-сигнал.
и если наложить друг на друга два разных покета, выходит чушь...
в этом моя ппоблема.
А задача в том, чтобы создать генератор таких пакетов, чтобы транспондер на них отвечал. Пока я тупо срисовал один из сигналов, запрогромировал ПИК-контроллер, все получилось - транспондер отвечает, но мне необходима возможность установки разных значений
Если срисовать к примеру 100 различных и менять их программно - надо много памяти да и коряво это как-то...
Вот тут есть еще пара вариантов сигнала:
Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файла
xemul
Цитата
Hi: 0.22 ms - 0,45ms - 0.65 ms
Low: 0,15 ms - 0,35ms - 0,58 ms
длина импульсов пропорциональна 0.22мс, а длина пауз - непонятно по какому принципу

0.22 + 0.58 = 0.45 + 0.35 = 0.65 + 0.15 = 0.80 ms
wasp
Цитата(xemul @ Sep 5 2007, 18:34) *
0.22 + 0.58 = 0.45 + 0.35 = 0.65 + 0.15 = 0.80 ms

я тоже это заметил, но они в разньх сочетаниях стоят все время smile.gif
soshnev
Цитата(wasp @ Sep 5 2007, 18:45) *
я тоже это заметил, но они в разньх сочетаниях стоят все время smile.gif

Я думаю - это не важно (в аппартуре наверняка заложен запас на разброс).
Т.е по приходящему фронту запускается процесс или запись в счётчик...
(Или процесс "захвата" информации спустя какое-то время от прихода фронта).
Короче предложение - считать их равными, иначе не будет сходимости при анализе.
Возвращаясь к нашей таблице уточню - число символов в итоге до повторяющейся части слева
должно быть одинаково.
wasp
Цитата(soshnev @ Sep 5 2007, 19:02) *
Возвращаясь к нашей таблице уточню - число символов в итоге до повторяющейся части слева
должно быть одинаково.

начал рисовать таблицу - число символов не сходится: sad.gif
soshnev
Цитата(wasp @ Sep 5 2007, 23:39) *
начал рисовать таблицу - число символов не сходится: sad.gif

К сожалению, cейчас не располагаю временем чтобы усилить помощь...
Предлагаю пока собрать улики (наблюдения).
Итак, улика 1 и текст (прикреплю в рисунке)
wasp
спасибо за помощь!
Я тут начал собирать таблицу, но четкой системы не нашел.
Можно глянуть в прикрепленном файле.
Обозначения импульсов: 1 - 0.45 мс, II - 0.65 мс
Обозначения нулей: 0 - 0.35мс, O - 0.58 мс
wasp
тут лежат сканы в формате ASC
wasp
Попробовал совместить на одном графике вторую часть сигнала для ID=1, 2, 3, 4 (первые части одинаковые).
Из графика видно:
1.нет четкого клок-сигнала
2.кодировка видимо построена на ширине импульсов и пауз
3.нет постоянной длины пакета
4.число импульсов видимо меньше чем число передаваемых битов
короче темный лес...
soshnev
Цитата(wasp @ Sep 10 2007, 14:56) *
Попробовал совместить на одном графике вторую часть сигнала для ID=1, 2, 3, 4 (первые части одинаковые).
Из графика видно:
1.нет четкого клок-сигнала
2.кодировка видимо построена на ширине импульсов и пауз
3.нет постоянной длины пакета
4.число импульсов видимо меньше чем число передаваемых битов
короче темный лес...

1.
Пока не могу понять, почему время передачи данных разное (например 0 и 55555).
(Нет идей как определяется конец передачи (думаю, что возможен где-то вариант в середине
0101 - все "длинные", т.е. это не конец).
Не вижу чтобы передавалась в начале и длина пакета.
2.
Вопрос следующий - (я не перевёл текст на немецком в первом PDF файле) - а сигнал случайно
не промоделированный каким-то образом? (на несущую частоту и приведён к "цифровой форме" -
в смысле мы анализируем не совсем исходную диаграмму).
3. Ссылка на теорию кодирования (классика-может кому пригодится)
www.istu.ru/files/material-static/1668/DCN-Slides-03.pdf
Я думаю в данном случае - просто для ознакомления.
4. Ещё вопрос.
Диаграмма после 0101 - всегда постоянная? Может там есть код завершения передачи данных?

5. Далее по тексту - чисто теоретическая фантазия (поскольку фабулу основной задачи я не представляю):

В принципе (тупо), теоретически можно построить автомат на основе ПЗУ.
Соорудить длинную сдвигушку (разрядов так на 32) с управлением занесения данных.
В конце по адресу (код со сдвигушки) считывать из ПЗУ исходный код.
Но 65К строк набить наверно нереально
(в смысле перевести все диаграммы в текст, затем пропустить через автомат и получить тоже
автоматически эту таблицу для ПЗУ).
wasp
1 тоже нет идей
2 в тексте полезной информации нет. Сигнал снимался еще до модулятора, а после модулятора где "1" - есть 125 кГц, где "0" - нету.
3 спасибо, надо почитать.
4 Bы имеете в виду 2 широких импульса в середине? Да, всегда одинаковые.
5 спасибо за идею

Вчера нашел описание компонентов, на которых собран транспондер:
на этом собран приемник 125 кГц с демодулятором (70 стр. инфы - пока не все перевел, но оно того стоит) http://www.tranzistoare.ro/datasheets/2300/311149_DS.pdf
потом проц: http://www.ortodoxism.ro/datasheets/texasi.../msp430f123.pdf
и линия задержки:
http://www.tranzistoare.ro/datasheets2/67/67067_1.pdf
wasp
Из http://www.tranzistoare.ro/datasheets/2300/311149_DS.pdf (стр 25-26) становится ясно откуда взялась первая часть сигнала - ее прошивает производитель транспондеров в память TMS37122. Она составляет макс. 17 бит и передается с пом. Pulse Position Modulation. Считав ее, TMS37122 дает сигнал микроконтроллеру на пробуждение, а дальше идет совсем другая кодировка, известная только ему.
@Ark
Wasp, если возможно, расскажите пожалуйста, какую задачу Вы решаете...
Зачем Вам все это потребовалось? Ваше упорство заслуживает уважения и поощрения...
wasp
Цитата(@Ark @ Sep 12 2007, 19:19) *
Wasp, если возможно, расскажите пожалуйста, какую задачу Вы решаете...
Зачем Вам все это потребовалось? Ваше упорство заслуживает уважения и поощрения...

biggrin.gif biggrin.gif biggrin.gif
ну в двух словах...
фирма, на которой я подрабатываю покупает ридеры и метки и на их основе собирает свои устройства, которые сама и устанавливает..
Ридер многофункциональный и дорогой и содержит ВЧ и НЧ блоки. Было бы оптимально разделить эти два блока, т.к. часто достаточно одного ВЧ-блока на несколько НЧ-блоков. Короче задача такая - создать простой НЧ-модуль, совместимый с имеющимися метками. Для этого желательно понять кодировку и протокол обмена данных. Фирма-разработчик навстречу не идет - у нее и без нас клиентов хватает, а фирма где я подрабатываю состоит из 5 человек и электронщиков нет - спросить не у кого...
Да и просто интересно разобраться.
Честно говоря думал, найдутся люди, кто с этим уже сталкивался, но видимо это не так просто...
@Ark
Цитата(wasp @ Sep 12 2007, 22:03) *
biggrin.gif biggrin.gif biggrin.gif
ну в двух словах...
фирма, на которой я подрабатываю покупает ридеры и метки и на их основе собирает свои устройства, которые сама и устанавливает..
Ридер многофункциональный и дорогой и содержит ВЧ и НЧ блоки. Было бы оптимально разделить эти два блока, т.к. часто достаточно одного ВЧ-блока на несколько НЧ-блоков. Короче задача такая - создать простой НЧ-модуль, совместимый с имеющимися метками. Для этого желательно понять кодировку и протокол обмена данных. Фирма-разработчик навстречу не идет - у нее и без нас клиентов хватает, а фирма где я подрабатываю состоит из 5 человек и электронщиков нет - спросить не у кого...
Да и просто интересно разобраться.
Честно говоря думал, найдутся люди, кто с этим уже сталкивался, но видимо это не так просто...

Кодировки и протоколы обмена для RFID-систем содержатся в международных стандартах серии ISO 18000-x. Cейчас их вряд ли найдете в бесплатном доступе...
Но, возможно, этого будет недостаточно. Для того, чтобы полностью разобраться в работе конкретной RFID-системы, Вам потребуется информация от фирмы-разработчика. Если фирма навстречу не идет, то, скорее всего, Ваши усилия не увенчаются успехом... laughing.gif
wasp
Цитата(@Ark @ Sep 13 2007, 05:10) *
Кодировки и протоколы обмена для RFID-систем содержатся в международных стандартах серии ISO 18000-x. Cейчас их вряд ли найдете в бесплатном доступе...
Но, возможно, этого будет недостаточно. Для того, чтобы полностью разобраться в работе конкретной RFID-системы, Вам потребуется информация от фирмы-разработчика. Если фирма навстречу не идет, то, скорее всего, Ваши усилия не увенчаются успехом... laughing.gif

Спасибо.
А не подскажите какой стандарт искать - интересует кодировка и протокол обмена данных по НЧ-каналу 125кГц, если устройство выполнено по такой вот схеме:

Сергей Борщ
Цитата(wasp @ Sep 13 2007, 11:09) *
А не подскажите какой стандарт искать - интересует кодировка и протокол обмена данных по НЧ-каналу 125кГц,
А попробуйте спросить на сахаре - там есть специальная конференция по RFID. Если пороетесь в архивах той конференции, то там среди самых первых сообщений была пара претендующих на FAQ. Если не изменяет склероз, номера стандартов там тоже упоминались.
wasp
Цитата(Сергей Борщ @ Sep 13 2007, 12:31) *
А попробуйте спросить на сахаре - там есть специальная конференция по RFID. Если пороетесь в архивах той конференции, то там среди самых первых сообщений была пара претендующих на FAQ. Если не изменяет склероз, номера стандартов там тоже упоминались.

спасибо, попробую.
@Ark
Цитата(wasp @ Sep 13 2007, 12:09) *
А не подскажите какой стандарт искать - интересует кодировка и протокол обмена данных по НЧ-каналу 125кГц...

Обзорная статья по RFID-системам (с указанием стандартов): http://www.znak-corp.ru/burlakov.pdf
Cтандарты ищите на: http://www.iso.org/iso/home.htm и http://www.epcglobalinc.org/home
wasp
Цитата(@Ark @ Sep 13 2007, 16:09) *
Обзорная статья по RFID-системам (с указанием стандартов): http://www.znak-corp.ru/burlakov.pdf
Cтандарты ищите на: http://www.iso.org/iso/home.htm и http://www.epcglobalinc.org/home

спасибо, будем искать smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.