Rysunek płytki D1 mini z modułem ESP-12Fna niskim poziomie

Podstawy

Procesor w karcie bankomatowej

Chip z karty bankomatowej pod mikroskopem, procesor Motoroli z drukarki, Arduino i D1 mini - procesory są wszędzie.

Okładka filmu: Procesor w karcie bankomatowejfilm wkrótce na YouTube

Ostatnio opowiadałem o tym, czym w ogóle jest procesor. Dziś chcę pokazać coś, co mnie samego mega zaskoczyło, gdy to odkryłem: gdzie te wszystkie procesory tak naprawdę się znajdują. To, że siedzą w telefonie i w PC-cie, pewnie każdy wie. Ale procesor jest w każdym urządzeniu z jakimkolwiek wyświetlaczem LCD - nawet w kuchence. Co ciekawsze, znajdziecie go też w baterii do laptopa (pilnuje, żeby ogniwa ładowały się równo) i w e-papierosie (odpowiada za czas podgrzewania).

Tego ktoś może się jeszcze domyślić. Ale czy wiedzieliście, że procesor siedzi też w waszej karcie bankomatowej?

Procesor w karcie bankomatowej - dwa tryby pracy

Mam tu swoją starą, już nieaktywną kartę. Tam, gdzie widać dziurę, siedział kiedyś procesor - wyciągnąłem go, żeby pokazać, jak wygląda.

Stara, nieaktywna karta bankomatowa z wyciętym chipem procesora i widoczną anteną wokół niego
Karta bankomatowa z wyciętym procesorem

Ciekawe jest to, że taki procesor działa w dwóch trybach:

  • Stykowym - wkładacie kartę do terminala, procesor dostaje zasilanie bezpośrednio przez metalowe pady i działa szybciej.
  • Zbliżeniowym - dookoła chipa, w samej karcie, biegnie metalowa ramka, która działa jak antena. Zbliżając kartę do czytnika, indukujecie w niej niewielki prąd. W tym trybie procesor pracuje wolniej, bo ma mniej energii do dyspozycji.

Dokładnie tak samo działają karty SIM i część kart miejskich. To zwykle specjalny typ procesora - poza standardową pracą ma cały szereg zabezpieczeń, których nie znajdziecie w procesorze z PC-ta czy telefonu.

Po co te zabezpieczenia

Taka karta przechowuje wasze ID - niekoniecznie zapisane wprost jako imię i nazwisko, ale jakiś numer, który jednoznacznie was identyfikuje. Gdyby ktoś ten numer odgadł albo sklonował, mógłby ukraść wam pieniądze albo autoryzować się waszym numerem telefonu.

Dlatego te procesory są tak zbudowane, żeby nie dało się na nie wgrać własnego kodu - żadnego węża, żadnej własnej gry. Nie dlatego, że fizycznie jest to niemożliwe, tylko dlatego, że zabezpieczenia są zaprojektowane tak, żeby to uniemożliwić. O tych zabezpieczeniach można poczytać w oficjalnych dokumentach - są tam różne poziomy ochrony, łącznie z mechanizmami autodestrukcji. Całkiem ciekawy temat na osobny research.

Co dziś rozbieram

Mam przed sobą cały zestaw:

  • chip z karty bankomatowej,
  • swój własny zlepek, który zrobiłem, jeszcze jak zaczynałem bawić się elektroniką,
  • układ do Ethernetu,
  • płytkę, która prawdopodobnie pochodzi z drukarki,
  • płytkę D1 mini.

Chip z karty bankomatowej

Zacznijmy od chipa z karty. Normalnie na wierzchu są metalowe pady kontaktowe - musiałem je ściągnąć. Pod spodem został jeszcze laminat (te szare resztki widoczne na zdjęciu), a sam procesor to malutki kwadracik na dole. Był odwrócony tyłem, więc musiałem go delikatnie wyłamać i obrócić, żeby był widoczny od właściwej strony.

Chip procesora wyjęty z karty bankomatowej - mały kwadracik ze ścieżkami i resztkami laminatu
Chip wyjęty z karty bankomatowej

Żeby obejrzeć go dokładniej, użyłem dziecięcego mikroskopu za jakieś 70 zł. Działa naprawdę nieźle - podłączony do MacBooka pracuje po prostu jak kamera. Do tego, co widać pod mikroskopem, wrócę na końcu.

Mój zlepek: Arduino, ATmega i układ CH340

Teraz coś, co sam kiedyś skleciłem. To płytka Arduino - a właściwie jej odmiana z procesorem ATmega jako głównym układem. Jeśli ktoś projektuje taki układ od zera, bierze dokumentację producenta ATmegi i zgodnie z nią dokłada do odpowiednich nóżek rezystory, kondensatory i resztę obwiązki. To wszystko tu jest.

Domowy zlepek: płytka Arduino z procesorem ATmega i dolutowanym kabelkami modułem Ethernet
Mój zlepek: ATmega pod spodem, moduł Ethernet od góry

Obok ATmegi siedzi jeszcze jeden, bardzo popularny i tani układ. Z tego, co udało mi się odczytać na obudowie, to CH34… - prawdopodobnie CH340, choć nie jestem w stu procentach pewien odczytu. Jego zadanie: odebrać sygnał z portu USB i przekazać go dalej, już w odpowiednim, umówionym protokole, do głównego procesora. Taki układ znajdziecie w mnóstwie urządzeń - to on obsługuje sygnał USB, zanim trafi on do głównego mikrokontrolera.

Dorzucanie Ethernetu

Chciałem dodać do tego zestawu Ethernet. Najprostszy sposób to kupić gotowy, stary moduł (kosztuje jakieś 15 zł) i poprzylutowywać go kabelkami do reszty. Zdecydowanie lepiej robić to na płytkach stykowych, ale da się też tak jak ja - na szybko, kabelek do kabelka.

Taki moduł ma gniazdo Ethernet, a w środku chip, który tym wszystkim steruje. Odebrany i przetworzony sygnał wystawia na piny, które można podłączyć do dowolnego innego procesora. W ten sposób do praktycznie każdego mikrokontrolera da się dorzucić obsługę sieci przewodowej.

Czy dałoby się to napisać samemu, na głównym procesorze, bez dodatkowego układu? Teoretycznie tak, tylko trzeba by napisać naprawdę sporo kodu - i to jest trudne. Dużo prościej kupić gotowy układzik, w którym ktoś już to rozwiązał, podłączyć go i dostać przetworzone dane prosto na pinach.

Płytka z drukarki - procesor Motoroli z lat 90.

Kolejnej płytki nie znam z pochodzenia, ale wygląda jak sterownik drukarki: prawdopodobnie odbiera sygnał z komputera i przekazuje go do mechanizmu drukującego. Obok głównego procesora widać na niej cały zestaw mniejszych układów - ktoś najwyraźniej potrzebował dodatkowego przetwarzania sygnału, więc dorzucił pomocnicze procesory.

Zielona płytka sterownika drukarki HP DeskJet 710C ze złączem równoległym i kilkoma układami scalonymi
Płytka sterownika - jak się okazało, z drukarki HP DeskJet 710C

Fajne jest to, że na każdym takim układzie jest jakieś oznaczenie, więc można je po prostu wygooglować. W moim przypadku wyszukiwarka od razu wyrzuciła konkretne źródło: to procesor Motoroli oznaczony 1821-2270, pochodzący z płytki sterownika drukarki HP DeskJet 710C z lat 90.

Strona Wikimedia Commons ze zdjęciem procesora Motorola 1821-2270 z płytki sterownika HP DeskJet 710C
Oznaczenie z obudowy prowadzi prosto do źródła

Czyli moje przypuszczenie się potwierdziło - to faktycznie sterownik starej drukarki atramentowej (zdjęcie na Wikimedia Commons). I pewnie, tak jak przy ATmedze, dałoby się na niego wgrać własny program, choć tego konkretnego modelu bliżej nie znam.

D1 mini od środka

Mamy jeszcze mikrokontroler D1 mini. Kosztuje dosłownie kilkanaście złotych i jest bardzo popularny, między innymi dlatego, że ma wbudowane Wi-Fi (stąd antena na module). Nóżki po bokach służą do wlutowania go w docelowy projekt, a samo lutowanie jest na tyle proste, że dadzą radę nawet osoby, które nigdy wcześniej nie lutowały.

Płytka D1 mini trzymana w palcach, z modułem ESP8266MOD i oznaczeniem Wi-Fi
D1 mini z modułem ESP8266

I tutaj znów spotykamy starego znajomego - ten sam układ pomocniczy z rodziny CH, który bierze sygnał z USB i przekazuje go do głównego chipa. Ten sam wzorzec co w moim zlepku.

Wnętrze chipa z karty pod mikroskopem

Na koniec wracam do chipa z karty bankomatowej - tym razem zaglądam do jego wnętrza pod mikroskopem. Znaleźć go wcale nie jest łatwo: zanim w ogóle trafi się na sam chip, widać różne elementy, które podejrzewam o bycie dodatkowymi zabezpieczeniami (te cienkie, miedziane druciki).

Przełamany chip z karty bankomatowej pod mikroskopem, z widocznymi ścieżkami wewnątrz układu
Wnętrze chipa z karty pod dziecięcym mikroskopem

Chip jest przełamany, ale dzięki temu widać ścieżki w środku. Od spodu pokrywa go jeszcze laminat - kawałek udało mi się zedrzeć przy przełamywaniu, resztę próbowałem zeskrobać, ale bez większego sukcesu. Rysy, które widać, to ślady po nożyku. Żeby zobaczyć więcej, trzeba by to pewnie wytrawić kwasem, a to w warunkach domowych jest już dla mnie za trudne. Mimo to widać wyraźnie, że część ścieżek jest wypalona laserem, a sam procesor, choć malutki, kryje w sobie naprawdę sporo różnych układów.

Ten sam chip z karty bankomatowej bez powiększenia - mały kwadracik ze ścieżkami i resztkami laminatu
Oryginalny rozmiar chipa (mały czarny kwadracik po lewej stronie)
Powiększenie chipa z karty bankomatowej pod mikroskopem: prostokątne pady kontaktowe i cienkie ścieżki na krawędzi układu
Ten sam kwadracik w powiększeniu - widać wytrawione ścieżki pod laminatem
Narożnik chipa z karty bankomatowej pod mikroskopem z kolorowymi strukturami układów scalonych i resztkami laminatu
Ten sam kwadracik w powiększeniu - przełamany procesor z częściowo odsłoniętym laminatem

Podsumowanie

Jeśli jest jedna rzecz, którą chciałbym, żebyście z tego zapamiętali, to ta: procesor, który siedzi w waszej karcie bankomatowej, i procesor w metalowej obudowie waszego peceta to koncepcyjnie dokładnie to samo urządzenie. Oba można programować w zasadzie w ten sam sposób. Różnice są dużo mniejsze, niż mogłoby się wydawać.