Podstawy
Procesor w karcie bankomatowej
Chip z karty bankomatowej pod mikroskopem, procesor Motoroli z drukarki, Arduino i D1 mini - procesory są wszędzie.
film wkrótce na YouTubeOstatnio 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.

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.

Ż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.

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.

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.

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.

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).

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.



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ć.
