Отговори на тема  [ 11 мнения ] 
RFID въпрос 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Съб Сеп 05, 2009 12:01 am
Мнения: 39
Мнение RFID въпрос
Здравейте, разработвам RFID четец, не е кой знай какво нещо. Използвам ЕМ4095 успявам да прихвана цялата поредица в манчестърски код, след което откривам хедъра от 9 единици
(010101010101010101) после започвам декодирането на кода за да се получат 64 бита като последният е стоп бит '0' (както е дадено в документа на EM4100 ) накрая ги изпращам по rs232, всичко е ОК слагам една и съща карта и винаги изкарва еднакъв код. Проблемът е,че като почна да смятам битовете по четност не излизат :( . Гледах със скопа поредицата от битове на извода за данни на ЕМ4095 и ги сравнявам на 'око' със резултатите и си съвпадат, но проблема си остават тия битове по четност. Пробвах и схема от дискретни елементи, а не с ЕМ4095 резултатите съвпадат, ползвам същите карти. Ако някой е попадал на такъв проблем може да сподели, че вече само 0101 сънувам :lol: :lol: :lol:.


Сря Апр 20, 2011 9:39 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Чет Окт 02, 2008 10:24 pm
Мнения: 105
Мнение 
много е възможно да хващаш поредица от 9 нули , :)

EM4095 дава инвертирани битове,
http://www.avrfreaks.net/index.php?name ... 80&start=0

, ако не ти излиза стартовата поредица , прихвани повече битове (128), и върху тях потърси стартовите 9,
и след това провери по колони и редове следващите.

128 бита= поне 256 прехода


Последна промяна Cino на Сря Апр 20, 2011 11:07 pm, променена общо 2 пъти



Сря Апр 20, 2011 10:44 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Май 01, 2009 4:01 pm
Мнения: 1438
Мнение 
Питаш как се смятат битовете за четност или ... ?? Кое точно не ти излиза ? За елементарни изпълнения спокойно можеш да ги пренебрегнеш. Аз грешка досега не съм хващал при декодиране. Иначе е елементарно. Ако има четен брой единици бита за четност е 0 а за нечетен брои единици - 1. Да не бъркаш кой точно бит за кой ред и колона е ?


Сря Апр 20, 2011 10:45 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Съб Апр 15, 2006 12:22 pm
Мнения: 22
Местоположение: Пазарджик
Мнение 
Преди около година правих нещо с тоя чип и вече не помня добре, ама като взех една карта с написан на нея номер, се оказа, че чета не както трябва. Или бяха девет нули (не девет единици), или четях инвертирано, нещо такова. Иначе си бачкаше стабилно, всеки път еднакъв номер ми даваше дадена карта, ама грешен.


Сря Апр 20, 2011 10:48 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Съб Сеп 05, 2009 12:01 am
Мнения: 39
Мнение 
Здравейте, ами щом ги изкарва инвертирани значи е възможно да прихващам "0"-ли, а иначе първо прихващам 128 бита и после търся хедъра. За проверката на битовете за четност, според документацията след хедъра битовете се разделят на по 5 като 5-тият е бита за четност има и битове за четност и на колонит т.н. Чудя се дали да се занимавам с тях, но пък се появи интересен случай попаднах на карта, в която има две поредици от 9 единици :lol: и ми изкарва два различни кода за това мисля, че трябва да ги проверявам.


Сря Апр 20, 2011 10:58 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юли 24, 2005 10:28 am
Мнения: 2692
Мнение 
от инвертиране няма как да не излезе четността, понеже е ксорване. най-вероятно декодирането ти е изместено половин такт и четеш грешни данни. въобще манчестър кода е много противен с тая си особеност че не нацелиш ли добре началото, край. затова аз правя друго - декодирам цикличните карти все едно са с бифазен код, който е много надежден за декодиране (в смисъл не се допускат бъгове от програмиста), не е полярно зависим, после резултата го обръщам в манчестър, ето така:
for(int i=0;i<n;i++){
if(bits[i]){
lastb^=1;
}
bits[i]=lastb;
}
спестявайки си треперенето да не сбъркам с половин такт и да се чудя какво става. директно декодирам манчестър код единствено при транспондерите които не лъчат циклично, а отговарят с единични пакети, където старта е пределно ясен.
разбира се тоя трик не те спасява от това да прочетеш инверсни данни (началната стойност на lastb определя това), понеже манчестър кода е полярно зависим (втора причина да го смятам за лоша идея) а бифазния не е, но както казах четността не се влияе от инвертиране.


Чет Апр 21, 2011 7:55 am
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Чет Окт 02, 2008 10:24 pm
Мнения: 105
Мнение 
не искам да спора , ама точно контрола по четност не излиза ако са инвертирани битовете
пример: 00101 е правилната поредица
инвертираната е 11010, вижда се че контрола по четност не излиза


Чет Апр 21, 2011 8:52 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Май 01, 2009 4:01 pm
Мнения: 1438
Мнение 
Преди да се стигне до смятане на битовете за четност трябва да изкараш хедъра. Това ти е маркер за началото. Какво точно ще смяташ ако не знаеш къде ти е първия бит? Не виждам какъв е проблема. Просто търсиш 9 единици(или 9 нули). От тук насетне се мисли декодирането ли е криво или сметките. Човека казва, че намира хедъра (111111111). Тая дискусия с инвертираните данни е излишна.

@borisov:
Пусни какво точно прочиташ от една карта !


Чет Апр 21, 2011 10:45 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Дек 19, 2004 6:26 pm
Мнения: 1628
Местоположение: Сливен
Мнение 
http://www.atmel.com/dyn/resources/prod ... oc4661.pdf
Виж алгоритъма на стр.15 как се чете манчестер код.
//нищо, че е за друг чип


Чет Апр 21, 2011 11:36 am
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Съб Сеп 05, 2009 12:01 am
Мнения: 39
Мнение 
Здравейте, проблема е решен, инвертирах битовете и всичко се оправи всички битове си излезнаха както е на теория, благодаря за помощта.


Пон Апр 25, 2011 6:37 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юли 24, 2005 10:28 am
Мнения: 2692
Мнение 
Cino написа:
не искам да спора , ама точно контрола по четност не излиза ако са инвертирани битовете
пример: 00101 е правилната поредица
инвертираната е 11010, вижда се че контрола по четност не излиза


прав си мадафака, тоест това което казах важи само за четен брой битове сумарно, а тука са нечетен


Вто Апр 26, 2011 4:33 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 11 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 6 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни