Hovedprosjekt HPEE0704 - PowerPoint PPT Presentation

1 / 40
About This Presentation
Title:

Hovedprosjekt HPEE0704

Description:

Hovedprosjekt HPEE0704 USB SNIFFER Hardware USB Sniffer USB SNIFFER Testsettet ATAVRRZ200 fra Atmel har v rt utgangspunktet for v r USB sniffer. – PowerPoint PPT presentation

Number of Views:84
Avg rating:3.0/5.0
Slides: 41
Provided by: NL53
Category:

less

Transcript and Presenter's Notes

Title: Hovedprosjekt HPEE0704


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

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/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

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 37
    000 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 802.15.4 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
  • 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.

30
Endelig valg av PC driver og utviklingsprogram
  • PC driver
  • 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.

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!
Write a Comment
User Comments (0)
About PowerShow.com