1 / 40

Hovedprosjekt HPEE0704

Hovedprosjekt HPEE0704. USB SNIFFER. Presentasjon av gruppen USB Sniffer Medlemmene av gruppen er: Bjørn L. Gundersen Johan L. Tresvig Thang L. Nguyen. Bakgrunn Oppgaven er gitt av ATMEL NORWAY AS Den går ut på å lage et system som viser trådløs trafikk som er

shelly
Download Presentation

Hovedprosjekt HPEE0704

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 802.15.4 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. Hardware USB Sniffer

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

  7. Program for skjema og utlegg Cadence OrCad Capture 10.5

  8. Program for skjema og utlegg • Cadence OrCad Layout 10.5

  9. Kretsens oppbygging Firelags kretskort

  10. Kretsens oppbygging

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

  12. Radiokontroller • AT86RF230 er en laveffekts 2.4 GHz transceiver utviklet for ZigBee/IEEE802.15.4 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

  13. 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 37 000 timer med vanlig ZB arbeidssyklus • Rask oppkobling for sovende enhet (30 ms)

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

  15. Firmware USB Sniffer

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

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

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

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

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

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

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

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

  24. Windowsprogram USB Sniffer

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

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

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

  28. 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: Fordel: 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. Ulempe: Har ingen forkunnskaper i Visual C++ Krever gode C++ ferdigheter.

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

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

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

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

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

  34. Flytdiagram for initialisering

  35. Timer og View() flytdiagram

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

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

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

  39. Takk for oppmerksomheten!

More Related