Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Hovedprosjekt HPEE0704 USB SNIFFER.

Liknende presentasjoner


Presentasjon om: "Hovedprosjekt HPEE0704 USB SNIFFER."— Utskrift av presentasjonen:

1 Hovedprosjekt HPEE0704 USB SNIFFER

2 Presentasjon av gruppen
USB Sniffer Medlemmene av gruppen er: Bjørn L. Gundersen Johan L. Tresvig Thang L. Nguyen

3 Bakgrunn Oppgaven er gitt av ATMEL NORWAY AS
Den går ut på å lage et system som viser trådløs trafikk som er kompatibel med IEEE standarden.

4 Prosjektbeskrivelse 1. Et kretskort skal produseres som inneholder nødvendig hardware for å lytte til trådløs trafikk. Kretskortet må også ha USB grensesnitt til PC. 2. Lage firmware som setter opp radiomottageren som en lyttestasjon og videresender all trådløs trafikk over USB til PCen. 3. Lage et Windowsprogram som viser pakkene mottatt fra monitorplattformen.

5

6 Hardware USB Sniffer

7 USB SNIFFER Testsettet ATAVRRZ200 fra Atmel har vært utgangspunktet for vår USB sniffer.

8 Program for skjema og utlegg
Cadence OrCad Capture 10.5

9 Program for skjema og utlegg
Cadence OrCad Layout 10.5

10 Kretsens oppbygging Firelags kretskort

11 Kretsens oppbygging

12 Mikrokontroller AT90USB1287 128 KB Flashminne 4 KB EEPROM 8 KB SRAM
USB grensesnitt Full Speed SPI grensesnitt JTAG grensesnitt Opptil 16 Mips ved 16 Mhz. 2.7 – 5.5 Volt operasjon

13 Radiokontroller AT86RF230 er en laveffekts 2.4 GHz transceiver utviklet for ZigBee/IEEE applikasjoner. AT86RF230 er en SPI-til-antenne løsning. Alle RF-kritiske komponenter untatt antenna, krystall og avkoplingskondensatorer er integrert i brikken. Lavt strømforbruk (Typiske verdier) -SLEEP = 0.1 μA -TRX_OFF = 1.7 mA -RX_ON = 16 mA -BUSY_TX = 17 mA (max. PTX) Driftsspenning 1.8V – 3.6V

14 ZigBee/IEEE802.15.4 Forholdsvis lav bithastighet (20-250 kbps)
DSSS-basert (Direct Sequence Spread Spectrum) Rekkevidde opptil 100 meter Tilgjengelig i ISM bånd ved 868 og 2400 MHz (EU) Lav pris (maks 20% av en Bluetooth løsning) Lavt strømforbruk, 1 AAA batteri klarer typisk timer med vanlig ZB arbeidssyklus Rask oppkobling for sovende enhet (30 ms)

15 Prototype Prototypen som vi lager er på størrelse med USBkeyen fra Atmel. 90X40mm

16 Firmware USB Sniffer

17 Firmware Firmwaren som styrer USB pinnen har 2 hovedoppgaver:
Å laste ned data fra AT86RF230 (radiomottageren) Å sende det videre på USB bussen til PCen

18 USB initiering Hastighet (Low, Full, High) Device Enumerering
Adressering 0-127 Descriptorer

19 USB initiering Descriptorer er tabeller med informasjon som hjelper USB hosten til å velge riktig driver for kommunikasjonen med devicen Det finnes forskjellige descriptorer; Device descriptor - Angir Produsent, produkt ID, mulige konfigurasjoner Configuration descriptor - Angir strømforbruk, antall grensesnitt i denne konfigurasjonene. Interface descriptor - USB klasse (HID, Vendor defined) for dette grensesnittet, antall endpoints Endpoint descriptor – Endpoint nummer, type overføring (Bulk, Isokron, Interupt, Control), retning (IN/OUT) og

20 Oppkobling mot radiomottaker
Initierer SPI grensesnittet Sette µCeren som Master Overføringshastighet (500KB/s) Definere I/O pinner

21 Oppkobling mot radiomottaker
Initierer AT86RF230 RF230 har en rekke tilstander/moduser for å få tilgang på alle funksjonene. µCeren kan styre hvilken modus RF230 skal stå i ved å gi kommandoer via SPI interfacet P_ON, oppstart modus TRX_OFF, konfigureringsmodus RX_ON, lyttemodus

22 USB kommunikasjon Mottar data fra Windowsprogrammet
Behandler evn. forespørsler fra USB host - GET DESCRIPTOR - READ DATA - WRITE DATA Bygger opp pakkene som sendes til PCen Styrer Power modusene til USB grensesnittet

23 Databehandling Behandler data fra Windowsprogrammet Kanalvalg
Start/Stopp send data, synkronisering mellom firmware og Windowsprogram Sortering av frames Beacon Data Acknowledge MAC command Kontrollerer om Radiomottageren har mottatt ny frame ved å sjekke IRQ linjen. Hvis ja, laste ned frame via SPI grensesnittet Utfører CRC kontroll

24 Databehandling Konverterer pakke til standardformat
PHY frame, rå data fra radiomottageren MAC frame, standarisert tabell gitt av IEEE standarden Skriver frame til kommunikasjonsbuffer

25 Windowsprogram USB Sniffer

26 Viktige valg i en tidlig fase
Utviklingsprogram USB PC driver Disse to valgene henger sterkt sammen, så denne beslutningsfasen ble viktig.

27 Valg av PC driver Vi vurderte 4 alternativer for USB PC driver:
AtUsbHid.dll : En dll fil for USB kommunikasjon med Atmel sine USB mikrokontrollere basert på HID klasse implementering. Omtales mer siden. Fordel: Fremtidsrettet. Har fungerende eksempelprogram. Ulempe: Ny kunnskap tar tid, lite ressurspersoner på området. Virtual Com Port : UART til USB konvertering. PC kan så kommunisere med USB port på samme måte som en virtuell RS-232 (COM) Port. Fordel: Enkelt å implementere, flere ressurspersoner på området. Ulempe: Lite fremtidsrettet.

28 Valg av PC driver NI VISA:
National Instruments har laget et virtuelt instrument til USB kommunikasjon som heter NI-VISA. Firmware må ikke inneholde USB spesifikke beskrivelser. En wizard genererer en driver kun på bakgrunn av USB enhetens PID og VID. Ulempe: Lite ressurspersoner på området, og ingen eksempler på at dette fungerer. Egendefinert USB driver: Tanken på å skrive en egen USB driver fra bunnen av får selv en dreven ”embedded-device” programmerer til å skjelve i bena, og kan være den vanskeligste utfordringen ved å gå over til USB kommunikasjon. Fordel: Skreddersydd applikasjonen vår. Ulempe: Veldig tidkrevende og mangel på kunnskap

29 Valg av utviklingsprogram
Vi vurderte følgende alternativer for utviklingsprogram: LabView Visual C++ pro LabView: Fordel: Grafisk og intuitiv programmering i G språket. Gruppen har litt kunnskap i LabView programmering fra tidligere studier ved HINT. Ulempe: Lite tilgjengelige ressurspersoner ved skolen. MS Visual C++ pro: Fleksibelt programmeringsverktøy. Tre av funksjonene i AtUsbHid.dll kan bare brukes med Visual C++. Atmel har tilgjengelig et enkelt eksempel programmert i Visual C++ som bruker AtUsbHid.dll filen som PC driver. Har ingen forkunnskaper i Visual C++ Krever gode C++ ferdigheter.

30 Endelig valg av PC driver og utviklingsprogram
Atmel sin AtUsbHid.dll fil Utviklingsprogram MS Visual C++ pro v.6

31 Kort om Atmel sin HID Class driver: AtUsbHid.dll
Hid Class kan brukes til å utveksle såkalt generic data, som i utgangspunktet kan være hvilken som helst type data. Alle Microsoft OS fra og med Windows 98SE har innebygd en hid.dll driver for HID klasse enheter. AtUsbHid.dll kommuniserer med den innebygde hid.dll i Windows. En DLL fil definerer et utvalg av systemfunksjoner eller drivere i Windows. DLL filer har samme struktur som en EXE fil og kan inneholde kode, data og ressurser. AtUsbHid.dll leveres med en headerfil som må inkluderes i utviklingsprogrammet for at funksjonene i dll filen fungerer. AtUsbHid.dll inneholder funksjoner for lesing og skriving av USB data og etablering av USB kontakt. De andre funksjonene kan brukes etter behov. SetFeature kan sette mikrokontrolleren i DFU modus, som gjør at firmware enkelt kan oppgraderes.

32 Kort om Atmel sin HID Class driver: AtUsbHid.dll

33 Kort om MS Visual C++ pro som utviklingsprogram
Objektorientert C++ språk Grafiske elementer kan plasseres ved ”dra og slipp” på det grafiske brukergrensesnittet. Disse elementene kan tilordnes passende variabler og funksjoner i C++ tekstfiler under all grafikken. All programutførelse skrives i cppfiler, mens deklarasjoner gjøres i tilhørende headerfil. Hvert grafisk vindu som skal programmeres, har hver sin cppfil og headerfil. I tillegg generer kompilatoren noen tilleggsfiler i kompileringsprosessen. Større Windowsprogram inneholder mange cpp og headerfiler til pop-up vindu og vindu for innstillinger. Visual Studio har innebygd et bibliotek med standard Windows klasser med medlemsfunksjoner. Dette biblioteket kalles MFC (Microsoft Foundation Class Library). Et eksempel på en klasse i MFC er Ctime som konverterer nåværende systemtid til en tekststreng som kan inneholde dato og/eller klokkeslett.

34 Programmets oppbygning
Timerbasert Mottak av USB data er timerbasert. Antall byte i hver frame er angitt i første byte som overføres. Når hele frame er lastet ferdig i en global tabell kjøres visualiseringsfunksjon for å vise innhold i frame på GUI. Grafisk og tekstbasert visualisering Når en framen er mottatt, vil funksjoner generere tekststrenger for parametere i framen. Byteverdier angis heksadesimalt, med unntak av framelength som angis desimalt. Tilstandsparametre angis som beskrivende tekst, for eksempel CRC sjekk og tid/dato for mottak. Signalkvalitet og signalstyrke for sist mottatte frame er vist grafisk. Resten av framen visualiseres tekstbasert ved hjelp av heksadesimale tall. Utseende Programmet har et standard Windows utseende med enkel menylinje og mulighet for å maksimere og minimere vinduet. På menylinjen er det også en Info og About knapp som åpner et vindu med generell info om programmet.

35 Flytdiagram for initialisering

36 Timer og View() flytdiagram

37 Programmets funksjonalitet
Programmet har følgende funksjonalitet: Nåtidsvisning av ZigBee trafikk Viser følgende data for hver frame hvis de finnes: Frametype Framecontroll Sequence number Framelength Addressing field Auxiliary Security Header MAC Payload FCS og CRC status Signal Quality Signal Strength Tid og dato for mottatt frames Mulighet for å lagre Log av mottatt frames som tekstfil Valg av hvilke frametyper som skal visualiseres Funksjon for å fryse/pause visualisering av frames Funksjon for å blanke ut mottatt data på GUI Mulighet for å sette AT90USB1287 i DFU mode. Nåtidsvisning av om USB er tilkoblet eller ikke Det er også planlagt mulighet for å valg av mottakerkanal på 2.4GHz bandet

38 Utførte oppgaver Laget ferdig Gerber filer som brukes til å
etse kretskort Utviklet firmware som videresender all data mottatt fra radiomottageren over USB Utviklet et Windowsprogram som viser data mottatt fra USB

39 Gjenværende oppgaver Etsing og lodding av kretskort
Lage en funksjon som utfører CRC sjekk av mottatt data Tilpasse firmwaren til kretskortet Øke USB hastighet Lage funksjon i Windowsprogrammet som oversender data til kretskort om kanalvalg, frametypevalg og start/stopp USB trafikk.

40 Takk for oppmerksomheten!


Laste ned ppt "Hovedprosjekt HPEE0704 USB SNIFFER."

Liknende presentasjoner


Annonser fra Google