Elektroda.pl
Elektroda.pl
X
Relpol przekaźniki
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Zamek na karty chipowe AVR Atmega8.

Manio95 18 Lut 2013 20:34 6927 12
  • Witam.
    Układ zamka na karty chipowe zaprojektowałem i wykonałem w sierpniu 2012r. Było to urządzenie wykonane w jeden dzień wliczając w to wykonanie płytki i napisanie programu. Dlaczego więc postanowiłem to teraz tu opublikować? Projekt przedstawiłem na mojej stronie i miałem dość dużo pytań o program. Jednak w programie na stałe miałem wpisane id karty master i dopiero dziś po pół roku czasu znowu usiadłem przed programem i poprawiłem to.
    Sercem układu jest mikroproceosr atmega8 SMD. Dużo osób teraz stwierdzi, że bez sensu pchać atmege8 do takiego zadania ale tylko ją miałem akurat w domu, program zajmuje 38%pamięci. Układ wymaga minimalnej ilości zewnętrznych elementów.
    Karty jakie należy stosować to karty telefoniczne chipowe TPSA.
    Zaletą kart jest ich prosta obsługa. Wysyłamy 48 bitowe „pytanie” i odbieramy 16 bitową „odpowiedź” -unikalny numer karty. Należy wspomnieć, że jeśli karta zostanie zaprogramowana a następnie impulsy zostaną zużyte unikalny numer zmieni się i karta nie będzie już pasowała. Jest jeszcze prostszy sposób polegający na odczytaniu 64 pierwszych bitów z karty -unikalny numer Id karty ale… przechowywanie go zajęło by 8 bajtów a tak mamy tylko dwa bajty. Zapamiętane karty przechowywane są w nieulotnej pamięci eeprom, dlatego po zaniku zasilania nie znikają.Teoretycznie można zapisać do 200 kart -ograniczyłem programowo, jednak nie miałem jeszcze okazji tego wypróbować.
    Jak widać poniżej schemat jest dość prosty i nawet początkujący powinien sobie poradzić:
    Zamek na karty chipowe AVR Atmega8.
    Należy tutaj zaznaczyć, że przycisk S1 jest normalnie zwarty a gniazdo na karty ma styk normalnie zamknięty.
    Jako, że schemat prosty to i płytka mała. Jest ona niewiele większa od samego złącza na kartę:
    Zamek na karty chipowe AVR Atmega8. Zamek na karty chipowe AVR Atmega8. Zamek na karty chipowe AVR Atmega8.
    Płytka wykonana pod rezystory 0805 a tranzystory w obudowie SOT23.
    Widać tam jeszcze punkty lutownicze podpisane jako RxD i TxD -pozostałości po testach, są nieużywane.

    Opiszę tu krótko funkcję i działanie/użytkowanie urządzenia.
    Program został napisany w bascomie.
    Do pamięci Flash należy wgrać plik flash.hex i analogicznie postąpić z Eeprom.
    Przy pierwszym włączeniu urządzenia zaświecą się obie diody. Teraz należy włożyć kartę Master, czyli najważniejszą którą musimy pilnować jak oka w głowie :P
    Jeśli wszystko będzie poprawnie to po wyjęciu karty diody zgasną. Jeśli świecą się dalej to albo karta jest niepoprawna, uszkodzona lub coś źle poskładaliśmy. Teraz włożenie karty uruchomi przekaźnik. Zostaniemy o tym powiadomieni sygnałem dźwiękowym oraz zieloną diodą.
    W celu zaprogramowania nowej karty należy użyć karty master:
    -Wciśnij przycisk S1 a następnie trzymając go włóż kartę master -powinny zaświecić się obie diody.
    -Zwolnij przycisk -czerwona dioda powinna zgasnąć.
    -Wyjmij kartę master -masz teraz około 10 sek na włożenie karty która chcesz zaprogramować. Sygnalizowane jest to mruganiem czerwonej diody. Po włożeniu karty zostaniesz poinformowany diodą oraz sygnałem dźwiękowym o zaprogramowaniu karty.
    -Możesz już używać karty!
    W celu usunięcia karty nalezy użyć karty master:
    -Wciśnij przycisk S1 a następnie trzymając go włóż kartę master -powinny zaświecić się obie diody.
    -Zwolnij przycisk -czerwona dioda powinna zgasnąć.
    -Ponownie wciśnij i zwolnij przycisk -powinna świecić się dioda czerwona.
    -Wyjmij kartę master -masz teraz około 10 sek na włożenie karty która chcesz usunąć. Sygnalizowane jest to mruganiem czerwonej diody. Po włożeniu karty zostaniesz poinformowany diodą oraz sygnałem dźwiękowym o usunięciu karty.
    -Możesz już używać karty!

    Nie ma możliwości usunięcia karty master.
    Jeśli 5 razy pod rząd ktoś włoży niezaprogramowaną kartę urządzenie "zablokuje się" na około 20 sek sygnalizując to dźwiękiem oraz mruganiem diody.
    Karty te wychodzą (albo wyszły?) już z użycia, ale ciągle są dostępnie w niskiej cenie na znanym portalu aukcyjnym.

    Na koniec jeszcze krótki filmik. Przy czym muszę sprostować: Gdy nagrywałem filmik nie miałem drugiej karty TPSA więc użyłem starej karty z banku, której ID wykrywane jest jako 0 więc włożenie do slotu na kartę byle czego (rozwarcie styku wykrywającego obecność karty) uruchamiałoby przekaźnik!

    Link
    Załączniki:

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    Manio95
    Poziom 21  
    Offline 
    Manio95 napisał 613 postów o ocenie 112, pomógł 21 razy. Mieszka w mieście Rybnik. Jest z nami od 2008 roku.
  • Relpol przekaźniki
  • #2
    Ture11
    Poziom 35  
    Witaj.
    Projekt całkiem... w sumie ciekawy, nie dziwię ci się wcale, że go wrzuciłeś, bo na pewno dobrze się bawiłeś przy jego konstrukcji. Wiem, bo sam to przeżywałem, nawet do tego stopnia, że jak mi padła karta telefoniczna w weekend, to i kartę zrobiłem sam, wykorzystując Attiny2313 w SMD i cieniutki laminat (słowo wyszło mi chyba 19-bitowe ;-) ).


    Jedna rzecz mi tylko nie pasuje...

    quote="Manio95"]Witam.
    Przy czym muszę sprostować: Gdy nagrywałem filmik nie miałem drugiej karty TPSA więc użyłem starej karty z banku, której ID wykrywane jest jako 0 więc włożenie do slotu na kartę byle czego (rozwarcie styku wykrywającego obecność karty) uruchamiałoby przekaźnik!
    [/quote]

    Czy mam to rozumieć jako: gdy włożę niezarejestrowaną kartę, zamek nie zostanie odblokowany, ale gdy włożę kartę o id "0", to już się odblokuje? Czy jest to spowodowane obecnością wpisów 0 w pamięci?
  • #3
    Manio95
    Poziom 21  
    Ture11 napisał:
    Czy mam to rozumieć jako: gdy włożę niezarejestrowaną kartę, zamek nie zostanie odblokowany, ale gdy włożę ją do góry nogami, to już się odblokuje? Czy jest to spowodowane obecnością wpisów 0 w pamięci?

    Jest to spowodowane zaprogramowaniem karty o Id 0 co wcześniej zrobiłem -widać na filmie. W zasadzie to chyba jeszcze dodam aby nie było możliwości zaprogramowania karty jeśli jej Id wynosi 0 w razie uszkodzenia karty. Ktoś się nie zorientuje, zaprogramuje uszkodzoną kartę, która nic nie zwróci czyli Id 0 i będzie można otwierać już czymkolwiek.
  • Relpol przekaźniki
  • #4
    Ture11
    Poziom 35  
    No więc właśnie, choć i tak nie jest źle, ja zrozumiałem, że masz od początku zaprogramowaną kartę o wartości 0. Ale skoro nie zero, to może FF(F)? Co by się stało, jeśli bez programowania wsadziłbyś kartę o ID FF (zworkę do plusa?). Czy Twój czytnik skanuje całą pamięć, czy wie dokładnie, ile kart ma wgranych i powyżej jakiego numeru nie skanować pamięci?
  • #5
    Manio95
    Poziom 21  
    Ilość kart jest również zapisywana do Eeprom-u więc jeśli się zewrze linie IO do plusa to zamek nie zostanie otworzony.
  • #6
    Ture11
    Poziom 35  
    Cóż, firmware zawsze można edytować ;-)
    W sumie nie ma się do czego przyczepić, choć jestem ciekaw, gdzie to urządzenie znalazło zastosowanie i jak wygląda ew. odporność mechaniczna (płytka chyba nie jest zabezpieczona żadnym preparatem poza kalafonią (a i nawet co do tego nie jestem pewien?).

    W zasadzie nieużyte piny UART możesz wykorzystać jako rejestr wejść / wpisów, używając do tego niewielkiego komputera (np. terminal komputerowy, byle miał rs232). Nie wiem tylko, czy taka funkcjonalność jest Ci potrzebna...
    .
  • #7
    Manio95
    Poziom 21  
    Urządzenie w moim przypadku znalazło zastosowanie do otwierania skrytki, w której trzymam pewne rzeczy :P
    Ture11 napisał:
    jak wygląda ew. odporność mechaniczna (płytka chyba nie jest zabezpieczona żadnym preparatem poza kalafonią (a i nawet co do tego nie jestem pewien?).

    Na tym zdjęciu
    Zamek na karty chipowe AVR Atmega8.
    trochę widać, że płytka pokryta jest kalafonią. Zdjęcie jest świeże, czyli po 0,5 roku od wykonania płytki.
  • #8
    piterek-23
    Poziom 32  
    Możesz rozwinąć to zdanie?
    Manio95 napisał:

    Widać tam jeszcze punkty lutownicze podpisane jako RxD i TxD -pozostałości po testach, są nieużywane.

    Jak testowałeś i co testowałeś?

    Posiadam czytnik który załącza przekaźnik, ale przydałoby mi się jeszcze aby komputer rejestrował jaka karta, o której godzinie i jakiego dnia była użyta.
  • #9
    Manio95
    Poziom 21  
    Testowałem czy działa poprawnie obsługa karty, czyli wysyłałem do komputera jej ID na początku w postaci binarnej a potem już w dziesiętnej. Dane odbierałem w terminalu RS232.
    W Twoim wypadku wystarczy chyba tylko wysłać ID karty a na komputer napisać jakiś prosty program, który po odebraniu i zapisaniu ID zapisze jeszcze datę i czas.
  • #10
    piterek-23
    Poziom 32  
    Manio95 napisał:
    Testowałem czy działa poprawnie obsługa karty, czyli wysyłałem do komputera jej ID na początku w postaci binarnej a potem już w dziesiętnej. Dane odbierałem w terminalu RS232.
    W Twoim wypadku wystarczy chyba tylko wysłać ID karty a na komputer napisać jakiś prosty program, który po odebraniu i zapisaniu ID zapisze jeszcze datę i czas.

    Dzięki za odpowiedź.

    Muszę coś pokombinować z tym czytnikiem. Ja zrobiłem tak jak TU na ATTINY2313.
    Po zabawie tym czytnikiem (fajna zabawka) wymyśliłem sobie, aby mógł załączyć przekaźnik i wysłać jaką kartę włożono po RS485 :)
  • #11
    Atlantis86
    Poziom 19  
    1) Kondensatory przy stabilizatorze są chyba zdecydowanie za małe - zgodnie z kartą katalogową powinno tam być odpowiednio 300nF i 100nF...
    2) Brakuje kondensatorków filtrujących zasilanie przy VCC i AVCC. To jednak można dość łatwo poprawić, lutując SMD bezpośrednio do ścieżek i pola masy.
    3) Brakuje kondensatora przy AREF.
    4) Dlaczego pin RST nie jest podciągnięty do plusa zasilania?

    Niemniej poza tymi uwagami całość całkiem fajnie się prezentuje. Chyba nawet sam sobie to złożę ten układ - bardziej jako "wprawkę" do trawienia i lutowania płytek SMD (po latach zabawy z montażem przewlekanym i lutownicą transformatorową). ;)

    Układ działa w 100% stabilnie, pomimo tych drobnych braków i odstępstw od zalecanej konfiguracji Atmegi? ;)

    BTW jakieś Attiny by nie wystarczyło? ;)
  • #12
    Manio95
    Poziom 21  
    Atlantis86 napisał:


    Układ działa w 100% stabilnie, pomimo tych drobnych braków i odstępstw od zalecanej konfiguracji Atmegi? ;)

    BTW jakieś Attiny by nie wystarczyło? ;)

    Działać działa i nie miałem z nim większych problemów.
    Może i wystarczyłoby attiny, ale miałem akurat dostęp tylko do atmegi8 w SMD.

    Atlantis86 napisał:
    1) Kondensatory przy stabilizatorze są chyba zdecydowanie za małe - zgodnie z kartą katalogową powinno tam być odpowiednio 300nF i 100nF...
    2) Brakuje kondensatorków filtrujących zasilanie przy VCC i AVCC. To jednak można dość łatwo poprawić, lutując SMD bezpośrednio do ścieżek i pola masy.
    3) Brakuje kondensatora przy AREF.
    4) Dlaczego pin RST nie jest podciągnięty do plusa zasilania?

    ad.1 W moim przypadku układ zasilany był z zasilacza stabilizowanego (o wyższym napięcie) który miał na wyjściu kondensator dużej pojemności, a przewody nie były długie.
    ad.2 No teoretycznie powinny być, ale nie miałem wtedy kondensatorów SMD i całkiem z nich zrezygnowałem. Wiem, że układ jest bardziej podatny na zakłócenia no ale coś za coś.
    ad.3 Wydaje mi się, że jeśli nie używamy przetwornika ADC to nie trzeba jej podłączać, ale mogę się mylić.
    ad.4 Mój błąd. Należy to dodać, bo jak to ktoś kiedyś sprawdzał "trzy na cztery" układy bez tego będą działać dobrze a ten jeden ani rusz.
    Pozdrawiam
  • #13
    Atlantis86
    Poziom 19  
    Manio95 napisał:

    ad.2 No teoretycznie powinny być, ale nie miałem wtedy kondensatorów SMD i całkiem z nich zrezygnowałem. Wiem, że układ jest bardziej podatny na zakłócenia no ale coś za coś.


    Ja w takiej sytuacji, gdy chwilowo nie mam pod ręką elementu (który nie jest krytyczny dla układu) po prostu zostawiam wolne pola lutownicze. Jeśli coś nie będzie działało bez niego wystarczy dokupić, nie martwiąc się prowizorycznym montażem.


    Cytat:
    ad.3 Wydaje mi się, że jeśli nie używamy przetwornika ADC to nie trzeba jej podłączać, ale mogę się mylić.


    Chyba faktycznie masz rację. Jakoś zwykle stosuję wersję z kondensatorem przy AREF i tak się do tego przyzwyczaiłem, że wydawało mi się, że jest on niezbędny. ;)


    Układzik w każdym bądź razie prawie złożony. To znaczy muszę jeszcze dokupić złącze kart. :)