Obsah:

Sniffer Arduino I2C: 4 kroky
Sniffer Arduino I2C: 4 kroky

Video: Sniffer Arduino I2C: 4 kroky

Video: Sniffer Arduino I2C: 4 kroky
Video: Декодер протоколов | Часть первая I2C сниффер 2024, Júl
Anonim
Sniffer Arduino I2C
Sniffer Arduino I2C

I2C je sériový protokol používaný na komunikáciu mikrokontroléra s externými perifériami pripojenými k rovnakému obvodu. Každá periféria musí mať jedinečné identifikačné číslo nazývané adresa, ktoré sa používa na jej identifikáciu ako predpokladaného príjemcu danej správy. Tieto adresy sú priradené výrobcom zariadenia a väčšinou ich nemožno zmeniť. Sniffer skenuje všetky možné adresy a hľadá pripojené zariadenia a hlási tie, ktoré nájde. To pomáha identifikovať neoznačené čipy, pretože potom je možné adresu vyhľadať v googli, aby sa získali ďalšie informácie o čipe.

Toto zariadenie napodobňuje na skripte Arduino UNO správanie skriptu Raspberry Pi i2cdetect, očucháva všetky možné adresy i2c a hľadá pripojené zariadenia a pekne tlačí výsledky na LCD obrazovku 16 x 02.

Aby sa zmestilo všetko na obrazovku, nad výsledky sa vytlačia vysoké aj nízke časti adresy, pričom najvyššia časť je na hrubom písme. Dve tlačidlá umožňujú navigáciu medzi adresami a zobrazujú 16 adries naraz. V prípade zistenia zariadenia sa vytlačí W, aby sa ukázalo ako adresa na zápis, a R by sa zobrazilo v prípade, že ide o adresu na čítanie. V prípade, že na danej adrese nie je nič zistené, na obrazovke sa zobrazí spojovník (-).

Krok 1: Materiály

Materiály
Materiály
Materiály
Materiály

možnosť 1

1 x Arduino UNO

1 x 16x02 LCD displej

1x 10K potenciometer

1x odpor 330 ohmov

3x tlačidlá

Prepojovacie káble

1x radič úrovne I2C (nie na obrázku materiálu)

Možnosť 2

1 x Arduino UNO

Štít klávesnice LCD (tlačidlá na štíte nebudú použité)

3x tlačidlá

Prepojovacie káble

1x menič úrovne I2C (nie na obrázku materiálov)

Možnosť 2 bude postavená, pretože práve to som mal v tejto chvíli k dispozícii. Posuvník úrovne je dôležitou súčasťou obvodu, pretože v dnešnej dobe väčšina zariadení používa logiku 3,3 V a 5 V od Arduina ich poškodzuje.

(Na obrázkoch nie je preškrtnutý materiál potrebný.)

Krok 2: Okruh

Obvod
Obvod
Obvod
Obvod
Obvod
Obvod

Obvod je celkom priamy, pričom používa štandardný vývod pre príklady Arduino pre LCD, predvolené piny pre I2C a 3 náhradné piny pre tlačidlá.

V prípade, že použijete štít klávesnice LCD, vývod na LCD sa zmení, ale to je už zahrnuté v kóde. Tlačidlá štítu klávesnice LCD sa nepoužívajú, pretože vyžadujú analógový spôsob pollingu, ktorý narúša kompatibilitu medzi dvoma možnými implementačnými obvodmi (štít a samostatný LCD displej)

Krok 3: Kód

Kód
Kód

V prípade, že sa používa štít klávesnice LCD, #define LCD_SHIELD musí byť na začiatku náčrtu ponechaný bez komentárov. V opačnom prípade ho komentujte a použite prvý diagram.

Krok 4: Závery

Závery
Závery
Závery
Závery
Závery
Závery

Na testovanie kódu a obvodu bol použitý čip BQ32000 RTC a akcelerometer MMA8452Q. Ako je vidieť na obrázkoch, zariadenie detekuje 4 adresy: 0x3A a 0xD0 ako adresy na zápis a 0x3B a 0xD1 ako adresy na čítanie. Táto adresa zodpovedá testovacím zariadeniam, takže kód funguje.

Chcel by som poďakovať láskavým dievčatám z Beijing Makerspace, Fu Yao a Liu Xin, že mi pomohli získať materiály potrebné na testovanie tohto projektu v takom krátkom čase.

Odporúča: