Съдържание:
Видео: Електронен портфейл: 3 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
ЗАБЕЛЕЖКА: Сега имам инструкции, които предлагат код 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
Препоръчано:
RFID защита на портфейл Tyvek: 7 стъпки
RFID защита на портфейл Tyvek: Използвам този тип (марка) портфейл от около 6 години. Когато намерих този портфейл, реших да добавя малко RFID екраниране към него с помощта на алуминиева лента. Тази лента се използва за запечатване на отоплителни канали, тъй като е по -издръжлива от тъканта на основата & q
IoT Wallet (интелигентен портфейл с Firebeetle ESP32, Arduino IDE и електронна таблица на Google): 13 стъпки (със снимки)
IoT Wallet (интелигентен портфейл с Firebeetle ESP32, Arduino IDE и електронна таблица на Google): Първа награда в конкурса за джобни размери Instructables!: Ако сте инвестирали малко пари в криптовалути, вероятно вече знаете, че те са силно нестабилни. Те се променят за една нощ и сега никога не знаете много „истински“пари, които все още имате в стената си
Създаване на собствен портфейл за крипто хардуер на Trezor: 5 стъпки (със снимки)
Изработване на собствен портфейл за крипто хардуер на Trezor: В този проект създавам свой собствен портфейл за хардуер за криптовалута на Trezor, пълен с кутия. Това е възможно, тъй като Trezor е с отворен код, така че използвах файловете, които предоставят на техния github, за да изградя собствено устройство за под 40 долара. Имаше няколко
Портфейл Altoids Tin: 4 стъпки
Altoids Tin Wallet: Този универсален бонбон може да се използва и като портфейл! В случай, че все още не сте открили, стандартните кредитни карти и личните карти се вписват перфектно в почтената калай Altoids. Виж това! Това е супер лесно и освен, че отделяте време да изядете цялото
Портфейл с магическа лента за ленти на Roids: 8 стъпки
Портфейл с магическа лента на Roids: Здравейте. Открих този сайт преди малко. Направих портфейл с вълшебна тиксо преди около седмица благодарение на този страхотен инструктируем магически портфейл от тиксо. Много ми хареса, но все пак исках още няколко неща, затова построих този звяр от стена