Hovedprosjekt HPEE0704 USB SNIFFER.

Slides:



Advertisements
Liknende presentasjoner
Hovedprosjekt Gruppe 18E Vår Prosjektoppgave 18 E  Arbeidsgiver  Byåsen Bilverksted AS ved John Myhre  Veileder  Jostein Lund  Gruppemedlemmer.
Advertisements

Generisk nettstruktur inklusive CT-iq Offentlig Nett (ON) Bedriftsinternt Nett (BiN) CTI(opsjon)CT-iq Bedrifts LAN IN lev. LAN InnringerINleverandør(IN)Mobiloperatør(MO)
Larvik Og Omegn MS Foreningen sin PC opplæring høsten 2005
GoOnline publisering Hvordan komme i gang med GoOnline. Denne presentasjonen tar deg steg for steg gjennom oppsett av nettsted med bruk av GoOnline Proffesional.
C++ for Java-programmerere
Innsynsløsninger og tilleggsfunksjonalitet Jan Kocbach
Webprogrammering (LO113A) 1 Kom i gang med PHP. Webprogrammering (LO113A) 2 Mål  Installere Apache og PHP  Konfigurasjon av Apache og PHP  Forstå samspillet.
Filer til og fra mobiltelefon
eDialog24 Operator Nyheter og endringer i versjon Sentinel eDialog24 AS Ingvald Ystgaards vei 3A 7047 Trondheim Telefon: Faks:
Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring
Filbehandling (Kapittel 8)
JSP presentasjon Arild Strømhylden NTNU 26 June 2014.
Lag film. Lag video •Videoteknologien har utviklet seg raskt de siste årene. Digital video er i ferd med å avløse analoge systemer. Med digital video.
Programmering i ActionScript - hva er det, og hvordan undervise?
Pilotprosjektet så langt
IT For medisinsk sekretær Fredrikstad Kai Hagali
Etter forarbeidet og dagen i dag er målet at dere skal kunne:
Datamaskinens komponenter og virkemåte
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Microsoft ® Lync ™ 2010 Delegate-opplæring. Mål I denne opplæringen lærer du hvordan du kan: •Konfigurere representanttilgang med Outlook •Konfigurere.
Funksjon PLS program uavhengig IO Diagnose/Feilsøking
Objektorientert programmering i PHP del 2
IS-102 Klassedefinisjoner
Java Server Faces (JSF) en introduksjon Frode Eika Sandnes.
Aksess kontroll None shall pass.
Operativsystemer.  Tilstandsmaskiner kalles på engelsk Finite State Machines.  Tilstandsmaskiner er en metode til å beskrive systemer med logisk og.
LocMoc : Avatar 3D – Visualisering av menneskelige bevegelser ved bruk av Java og Coin3D. En presentasjon av: Øivind Hoff Johansen og Jon Kåre Sørensen.
Jæger: Robuste og sikre systemer INF150 Programmering torsdag 31.8 Kapittel 3: Grunnlag for programmering i Visual Basic.
Sqlite Et lite eksempel på en SQL- database. SQL kan startes på ulike måter Kommandolinjeversjon or Windows –Programmet må innstalleres Hentes fra
Web-applikasjoner Prosjekt3 Logging Gruppe 9 Malik Muhammad Naeem Kevan Qureshi.
Combining Compound Conceptual User Interface Components with Modelling Patterns - a Promising Direction for Model-based Cross-platform User Interface Development.
Singleton & Adapter Pattern Gruppe 3. Singleton Pattern Sørger for at en klasse kun kan ha en instans Vanligvis implementert med globale variabler –Singleton.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Presentasjon av ROS PP Trykk pil for neste bilde.
Flash og ActionScript - Nye muligheter Jostein Nordengen.
Hjelp! Jeg skal undervise i IT 2!
1 Organisering av kode (Kapittel 5). 2 Mål ● Forstå inkludering er og hvilken gevinst det gir ● Lære å utvikle egne funksjoner ● Forstå variablenes virkemåte.
Fjernstyring av PCer med NTRconnect Svein/ALEPH brukermøte 2007.
Steinar Jensen, IbisIKT as
Skjema/Forms HTML II IT og læring 2/20 november 2001.
Hvordan kan foreldre bruke de vangligste funksjonene i Itslearning.com
Jæger: Robuste og sikre systemer INF150 Programmering mandag 18.9 Lesing av data fra fil og skriving av data til fil. Side 411 – 4.. Kap 4.
Programmering sif8005. Praktisk informasjon  Innleveringsfrist øvinger: mandag kl  Alle øvinger er obligatoriske  Studass tilgjengelig 6 timer.
© UNIVERSITETETS SENTER FOR INFORMASJONSTEKNOLOGI UNIVERSITETET I OSLO USIT Side 1 Installering av Windows XP med PXE (netboot) Del 1 – forhåndskonfigurering.
Jæger: Robuste og sikre systemer INF150 Programmering Kapittel 2: Problemløsning Kapittel 3.1 og 3.2.
1 Java Database Connectivity (JDBC) Norvald H. Ryeng
Presentasjon av oppgave 63 Snorre Arstad & Leif Roar Nilssen.
Android-Programmering Våren Introduksjon ActionBar Behovet for forandring Hva er Android ActionBar Tilpasning av ActionBar ActionBar - versjonshåndtering.
Hurtigreferanse for © 2013 Microsoft Corporation. Med enerett. Startskjermen i Lync Startskjermen i Lync inneholder fliser i huben til venstre, som du.
Lync-møter Bli med i Lync-møte Planlegge et Lync-møte
Opplæring: Pålogging Prosedyre for logge på og av, låse og åpne PC’er DatoVersjonForfatterGodkjent avEndringer utført André S. MathiesenTore.
Utvikling av tegneverktøy for Generalized Sketches Student: Ørjan Hatland Veiledere: Yngve Lamo, Høgskolen i Bergen Uwe Wolter, Universitetet i Bergen.
1 GeoPortal – Rammeverk Introduksjon. 2 Teknisk rammeverk - Interoperabilitet Interoperabilitet evne til å kommunisere, kjøre programmer, eller overføre.
Web-grensesnitt Øyvind A. Bratne - April 2004.
Foredragsholders navn Dato (frivillig) PipeIQ Wizard rørdesign.
INF H131 Avanserte byggeblokker (Maxfield kap.13 og 17) Kap 13: Embedded prosessorer (prosessorkjerner) Kap 17: Virtuelle komponenter (Intellectual.
Trondheim Lytte- og Læresenter. Sammendrag Prosjektet ble iverksatt fordi Trondheim Lytte- og Læresenter så behovet i å ha et elektronisk kundearkiv i.
Hva er en robot? Roboter er mer enn maskiner som ligner mennesker.
Notes ved UiO Steinar Skogheim. Steinar Skogheim, USIT Målet med dette kurset Målet er å gi en oversikt over hvordan Notes generelt fungerer og brukes.
1 Lynkurs i PC-basert instrumentering FYS 223 – PC-basert instrumentering Vårsemester, Fysisk institutt, 3 vekttall Gi gjerne tilbakemelding.
Implementering og drift av virtuelt datasystem med VMware View
Datamaskinens komponenter og virkemåte IKT for lærere Kjetil Østereng.
Operativsystem IKT for lærere 15. november Hvorfor lære om dette? Kanskje den mest brukte programvaren i løpet av en (arbeids)dag Forskjellige operativsystem.
Lydkort. De første PC’ene  Liten høyttaler på hovedkortet  Lagde ”beep” med forskjellige frekvenser  Nok til å spille veldig enkel musikk, men det.
Jæger: Robuste og sikre systemer INF150 Programmering torsdag 14.9 Ulike måter for å lese inn og skrive ut data. Kap. 3.5 mer om if – setninger Ferdige.
Android-Programmering Våren Oversikt Long-running operasjoner Introduksjon til Android services On-demand service Bruk av servicer på tvers av prosesser.
Android Programmering 10 timers kurs. Forutsetninger Noe bakgrunn i Java eller et annet objektorientert språk Litt peiling på XML Vi bruker Windows 7.
Datakortet – Modul 3 Word 2003, Kap Modul 3.
Kom i gang med Python Pål Hellesnes SYSTEMUTVIKLER
Distribusjon av musikk over bluetooth
Utskrift av presentasjonen:

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 kompatibel med IEEE 802.15.4 standarden.

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.

Hardware USB Sniffer

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

Program for skjema og utlegg Cadence OrCad Capture 10.5

Program for skjema og utlegg Cadence OrCad Layout 10.5

Kretsens oppbygging Firelags kretskort

Kretsens oppbygging

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

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

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)

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

Firmware USB Sniffer

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

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

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

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

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

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

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

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

Windowsprogram USB Sniffer

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

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.

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

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.

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

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.

Kort om Atmel sin HID Class driver: AtUsbHid.dll

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.

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.

Flytdiagram for initialisering

Timer og View() flytdiagram

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

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

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.

Takk for oppmerksomheten!