Съдържание:

Електронен портфейл: 3 стъпки
Електронен портфейл: 3 стъпки

Видео: Електронен портфейл: 3 стъпки

Видео: Електронен портфейл: 3 стъпки
Видео: PAYEER - Как се създава и верифицира електронен портфейл? 2024, Ноември
Anonim
Електронен портфейл
Електронен портфейл

ЗАБЕЛЕЖКА: Сега имам инструкции, които предлагат код Arduino за RC522 и PN532.

В предишния си пост подробно описах основите за комуникация с RFID модулите MFRC522 и PN532 за четене/запис на данни от Mifare Classic 1k тагове. В тази публикация ще направя още една крачка напред и ще покажа как да използвам тези модули за създаване на електронен портфейл от етикетите. Както и в предишната публикация, това е представено като основно изпълнение, но трябва да осигури основа за разнообразни приложения, които изискват функции за увеличаване/намаляване или изчисляване.

Стъпка 1: Целостта на данните

За електронния портфейл винаги има опасения, че някой може да добави кредити, без да ги плаща. Съществува и опасение, че кредитите в маркера могат да се повредят по невнимание по време на запис на данни. Достъпът до данни изисква използването на ключа на маркера, така че е необходимо да се промени ключът по подразбиране, когато маркерът се инициализира за първи път. В интернет има статии, които говорят за това как да хакнете маркер, дори ако не знаете ключа, но техниката не е тривиална. Не бих препоръчал да използвате тези тагове за банковата си сметка, но те са достатъчно добри за много по -малко рискови приложения.

Вероятността за повреда на данните е относително малка, но софтуерът трябва да може да се справи поне с основния случай. Този процес включва две стъпки с първата стъпка за просто откриване на корупцията. В този проект, който се обработва чрез съхраняване както на кредитната стойност, така и на допълнение 1 към кредитната стойност. Това позволява просто сравнение на стойностите. Втората стъпка е да съхраните резервна версия както на кредитната стойност, така и на нейното допълнение. Това позволява операция за възстановяване, ако първият набор от кредити се повреди. Ако и двата набора са повредени, софтуерът се опитва да инициализира отново маркера, което води до загуба на всички кредити.

Стъпка 2: Хардуер

Хардуер
Хардуер

Хардуерните връзки са показани на диаграмата по -горе. Това е същата настройка като предишната публикация с добавяне на два превключвателя и издърпващ се резистор. Един превключвател не изисква издърпващ се резистор, защото е на PIC вход, който има вградена слабо издърпваща способност. На практика и двата превключвателя биха били скрити, защото се използват за добавяне на кредити и за инициализиране на маркер. Превключвателят за инициализация е незадължителен (за ръчно нулиране на кредита), защото софтуерът може сам да открие и инициализира нов маркер. Вместо превключватели могат да се използват джъмперни щифтове.

Стъпка 3: Софтуер

Допълнения към основния цикъл в софтуера бяха направени, за да позволят четене на двата превключвателя и за откриване на състояние, изискващо инициализация на етикета. Както бе споменато в секцията за хардуер, инициализацията на етикета може да бъде ръчно командвана с превключвател. Софтуерът може също да командва инициализация на етикет в два други случая. Първо, ако открие нов маркер или сектор от данни и второ, ако и двата набора кредитни данни са повредени.

Удостоверяването на тагове изисква използването на „ключ А“за целевия сектор от данни. Ключът по подразбиране за таговете Mifare Classic 1k е „FF FF FF FF FF FF“, но трябва да бъде променен за вашето приложение. Софтуерът предоставя дефиниции както за ключа по подразбиране, така и за нов ключ („My_Key“). Просто включете каквито искате стойности в „My_Key“. Софтуерът винаги се опитва първо да удостовери етикета, използвайки „My_Key“. Ако това не успее, тогава се извиква рутината за инициализиране на маркера и ключът по подразбиране се използва за удостоверяване. Програмата за инициализация променя ключа на „My_Key“и задава кредитите на нула. Ако имате маркер с ключ по подразбиране и не знаете какво представлява, маркерът не може да бъде удостоверен. Ако това се случи, може да искате да проверите други сектори с данни, като използвате ключа по подразбиране, за да видите дали има такъв. Блоковете Trailer, Data block и Backup са дефинирани в началото на списъка със софтуер, така че можете лесно да ги промените.

Форматът за данни, съхранявани в маркера за това приложение, използва само положителни числа (не се допускат дефицити), а стойностите се съхраняват като четири байта от пакетиран BCD (двоично кодиран десетичен знак). Това позволява кредитен диапазон от 0 до 99, 999, 999 (две цифри на байт). Кредитната стойност и нейното допълнение 1 използват само 8 от 16 -те байта в един блок данни, а останалите са пълнени с нули. В същия блок от данни има място за резервното копие, но реших, че би било по -безопасно да поставя резервното копие в отделен блок данни. Резервният блок е в същия сектор като блока с данни, така че не се изисква отделно удостоверяване. За да бъдете още по -сигурни, може да помислите за поставяне на резервното копие в различен сектор от данни, но тогава ще е необходима отделна стъпка за удостоверяване за достъп до тези данни.

Когато се чете кредитите, допълваната стойност също се чете и след това двете се сравняват помежду си. Ако има несъответствие, тогава се чете и сравнява резервният набор от стойност/допълнение. Ако те съвпадат, се приема, че архивирането е правилно и се използва за поправяне на повредените данни. Ако резервните копия не съвпадат, маркерът се счита за лош и се прави опит да се инициализира отново.

Стойностите на увеличение и намаляване са дефинирани близо до предната част на списъка и се очаква да бъдат в пакетиран BCD. Процедурите, които ефективно увеличават и намаляват, правят това на 32-битово число. Математиката е много проста, но изисква използването на рутинни процедури за коригиране на резултатите за пренасяне във всеки пакетиран BCD байт и от един байт към следващия. Това се постига чрез използването на макроси DAA (десетично коригиране на добавяне) и DAS (десетично коригиране изваждане). Тези макроси гарантират, че всяка 4-битова BCD цифра винаги остава в диапазона от 0-9.

В допълнение към показваните съобщения в предишната публикация, това приложение има съобщения за много от допълнителните стъпки - особено ако има грешки в данните и/или маркерът трябва да бъде поправен или инициализиран. Кредитите също се показват преди и след стъпка на увеличение/намаляване, така че да можете да видите промяната на стойностите.

Това е всичко за този пост. Вижте другите ми проекти за електроника на: www.boomerrules.wordpress.com

Препоръчано: