Een USB 2.0 oscilloscoop Bossuyt Frederick De Bock Steven

Slides:



Advertisements
Verwante presentaties
iLV = inleiding LabVIEW
Advertisements

“Energie uit het heelal”
Deel 1, Blok 2, Datacommunicatie
Stage bij Technische Informatica
Vincent Poté Nelis Vandermeiren Simen Akkermans Kevin De Neef
Leer de namen van de noten 1
Hoe werkt een rekenmachine?
Serieel naar parallel omzetting
PROS2 Les 2 Programmeren en Software Engineering 2.
Personalisatie van de Archis website Naam: Sing Hsu Student nr: Datum: 24 Juni 2004.
Installatie & beheer Jonathan Mohnen Martijn Wolfs.
Parallel naar serieel omzetting
ActWin & Hitachi Training
TETRA valorisatieproject IWT Realisatie van een raamwerk voor automatische personeelsplanning Tweede gebruikerscommissie
Didactisch bord: Led RGB
Kennismaking met de computerconfiguratie
Ronde (Sport & Spel) Quiz Night !
Arduino project.
Aan de slag met Evernote Documenteer je leven, overal en altijd 1.
Logische schakelingen
ADuC8xx MICROCONVERTER
Over computers.
Geïntegreerde proef de Télégeleide auto Ben Roose.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 6: Practicumprocessor invoer en uitvoer.
5JJ20: Computerarchitectuur 2M200: Inleiding Computersystemen
MDAC 2014 Groep 3 The E-Harbor toekomst van de haven van Rotterdam
F. Rubben NI Lookout 1 06/RIS/05 - NI Lookout VTI Brugge F. Rubben, ing.
Steven Van Acker. Transmeta Crusoe - Steven Van Acker - Mei Overzicht  Inleiding  Het Idee  De Technologie  CodeMorphing  LongRun  NorthBridge.
Leer de namen van de noten 2
Fysische Informatica sensoren en AD-omzetter

Digitale informatie analoog signaal  digitaal signaal (zie figuur):
De computer: Hardware Het beeldscherm Het toetsenbord De muis
Inleiding tot de Elektrotechniek
1Ben Bruidegom Hoe werkt een rekenmachine? Ben Bruidegom AMSTEL Instituut Universiteit van Amsterdam.
H.J. Bulten NIKHEF/VU 29 okt Detectie van Airshowers Eigenschappen van air showers Experimentele opstelling Impressie van een kosmische shower boven.
Breedbandverkeer in draadloze netwerken
Advanced Algorithms Groep: EII7AAb
Werken aan Intergenerationele Samenwerking en Expertise.
Breuken-Vereenvoudigen
Hoe werkt een rekenmachine?
Signaalverwerking Verwerkers. IR-buitenlamp. IJkgrafiek sensor.
Flight 68K Temperatuur geregelde ventilator
10 juni 2002 TIF Slide Welkom 1 W.M. Everse | Z.Y. Ye | P. Groenenberg.
Welkom. inhoud presentatie wat is een Micro Mouse controller motoren sensoren hardware software voeding leerwinst.
Inhoud (2) Netwerkanalyse Signalen als dragers van informatie
HBO-I Conference Tour RUP| versie 1.0 | 18 maart 2010 RUP toegepast binnen DUO Een korte impressie hoe we binnen DUO RUP ingevoerd hebben (aan het.
A H M F K EB C x 91 Van hand veranderen voor de X splitsen en Rechangeren. Met de nieuwe partner op.
A H M F K EB C x 85 Korte zijde bij C 2 e secties volte 14 m en op afstand komen ( 0,5 rijbaan)
A H M F K EB C x 88. Korte zijde bij A en C changement met gebroken lijnen (opsluiten!) Daarna rijden.
A H M F K EB C x 92 Galop Binnenruiters grote volte bij A en C -partnerruil- Volgende korte zijde in.
ZijActief Koningslust 10 jaar Truusje Trap
Computer – DNA Een vergelijking. Computer DNA Hardware: elektronische verbindingen in chips Code binair(2-tallig): 0 en 1 Hardware: rug van suiker en.
Inganguitgang. inganguitgang voeding inganguitgang voeding uitgang.
Moederbord en blu-ray.
Voorrangsregels bij rekenen (1)
Nieuwe Meesters Delft Erfgoed = saai! 1. Nieuwe Meesters Delft Erfgoed = overal! 2.
Page 1 HiSPARC FPGA & software aanpassingen Rais Mense.
Pensioen naar uw eigen wensen
Afstudeerproject ETHERFLOW:
De financiële functie: Integrale bedrijfsanalyse©
Van papier naar digitaal Casus Digital born materiaal
IMAGI Door Jens Van den Driessche & Ruben Junius.
DigiDoc Een digitaal kantoor voor iedereen !. Ceci n’est pas du software?! 2.
1 Zie ook identiteit.pdf willen denkenvoelen 5 Zie ook identiteit.pdf.
Etherflow Voor het aansluiten van een flowmeter op een Ethernet netwerk Afstudeerpresentatie Michel van der Net Elektrotechniek Avans Hogeschool Breda.
Inganguitgang. inganguitgang voeding inganguitgang voeding uitgang.
Bit`s en logische bouwstenen informatie. zVorm zInhoud Teken en betekenis Informatie heeft: symbool of teken boodschap.
De tafel van 4.
Binaire getallen 1. binair → decimaal 2. decimaal → binair.
Transcript van de presentatie:

Een USB 2.0 oscilloscoop Bossuyt Frederick De Bock Steven Doel van het project Een USB 2.0 oscilloscoop Bossuyt Frederick De Bock Steven Duchatelet Sven Werbrouck Steven

Inleiding Probleemstelling Doel van het project Aanpak Overzicht gepresteerd werk Planning

Probleemstelling AD-convertor DA-convertor voeding Doel van het project Probleemstelling AD-convertor DA-convertor voeding We krijgen een 8-lagen bord met daarop:   2 krachtige FPGA bouwstenen (elk 1,5 miljoen poorten) SDRAM (waar?? Op FPGA of apart?) AD-convertor om analoog signaal om te zetten naar het digitaal domein DA convertor (nut?) bijzonder accurate sampleklok (waar?) We hoeven slechts 1 FPGA te gebruiken De pinnen van de FPGA die we gebruiken worden geconnecteerd aan een USB-controller. Dit is een microcontroller die de interface vormt tussen de kaart en de PC. Die is nodig om de signalen op een correcte manier aan de PC af te geven (host is master en doet requests aan USB-device). We gebruiken een USB 2.0 connectie, zodat we aan 480 Mbps kunnen werken (40 keer sneller dan de USB 1.1 die werkte aan 12 Mbps). NB: de FX2 is wel backward compatibel zodat het kan werken aan: Low speed (1.5 Mbps): voor muis, keyboard en joystick Full speed (12 Mbps): voor modem, speakers en scanner High speed (480 Mbps): hard disk drives, cd-rom, videocamera, high resolution scanner… Hiermee trachten we een oscilloscoop te maken. Twee ingangskanalen worden gesampled aan 64 Msps met 14 bit resolutie. Op die manier slagen we erin om meetresultaten te bekomen die zeer nauwkeurig en gedetailleerd zijn. Probleem is dat het ruwe datadebiet te hoog is voor continu streamen naar de PC. Er is dus een noodzaak aan signaalverwerking op de FPGA (triggering, decimatie en buffering). signaal in- en uitgang 2 FPGA’s

Probleemstelling signaal beeldscherm PC Doel van het project Probleemstelling PC signaalverwerking + afbeelden resultaat signaal FPGA µ-controller Hiermee trachten we een oscilloscoop te maken. Twee ingangskanalen worden gesampled aan 64 Msps met 14 bit resolutie. Op die manier slagen we erin om meetresultaten te bekomen die zeer nauwkeurig en gedetailleerd zijn. Probleem is dat het ruwe datadebiet te hoog is voor continu streamen naar de PC. Er is dus een noodzaak aan signaalverwerking op de FPGA (triggering, decimatie en buffering). signaalverwerking interface beeldscherm AD-convertor sampling

Inleiding Probleemstelling Doel van het project Aanpak Overzicht gepresteerd werk Planning

Doel van het project 1 single shot signaal van 20 MHz verwerken korte reactietijden efficiënt gebruik van de FPGA hardware single shot = 1 keer een beperkt aantal samples inlezen en verwerken thesisonderwerp = continue signaalverwerking De einddoelstelling is om een demonstratie te geven, waarbij we een single shot signaal inlezen en afbeelden op een beeldscherm van een (Linux) PC. Het signaal zal een frequentie hebben van 20 MHz. Korte reactietijden en efficiënt gebruik van de hardware is natuurlijk gewenst. Het voordeel van het werken met single shot signalen is dat we slechts één keer hoeven te triggeren. We kunnen het volledige signaal vervolgens inlezen zonder ons zorgen te moeten maken over wat er later nog met het signaal gebeurt. In dit project is het dus niet nodig om functionaliteit te voorzien zodat het signaal continu gemonitord kan worden. Deze opdracht wordt gegeven in een thesisonderwerp bij Intec_Design.

Inleiding Probleemstelling Doel van het project Aanpak Overzicht gepresteerd werk Planning

Aanpak HARDWARE: VHDL SOFTWARE: C++ bufferen signaal Doel van het project Aanpak HARDWARE: VHDL bufferen signaal trigger: rising/falling edge pretrigger samplerate @ runtime (64/32/16/8/4/2/1 Mbps) eventueel een digitaal ruisonderdrukkingsfilter SOFTWARE: C++ 1 2 3 4 5 De signaalverwerking zal voor een stuk hardwarematig moeten gebeuren. Daarom moesten we het project opsplitsen in een hardware- en een softwarekant. De hardware zal gerealiseerd worden door Steven en Sven en houdt het volgende in: bufferen van het inkomend signaal instelling voorzien zodat getriggerd kan worden op de rising_edge of falling_edge pretrigger: enkele waarden voor en na het beoogde signaalvenster onthouden samplerate @ runtime kunnen instellen: 64 / 32 /16 / 8 / 4 / 2 / 1 Msps eventueel een digitaal ruisonderdrukkingsfilter… Deze zaken dienen in VHDL te worden geschreven. We maken daarbij gebruik van Xilinx 6.0. Aan de hand van ModelSim kunnen we simulaties uitvoeren die al rekening houden met de vertragingen van de FPGA. Daarvoor moeten we het correcte merk en type opgeven van de gebruikte FPGA (VertexII XC2V1500). Met Xilinx kan dan uiteindelijk ook een bitstream aangemaakt worden die de Field Programmable Gate Array configureert.   De functionaliteit aan softwarezijde wordt door Frederick en Steven geïmplementeerd:

Aanpak Communicatie heel belangrijk! Doel van het project Aanpak Communicatie heel belangrijk! wanneer wordt data getransporteerd? hoe wordt de data getransporteerd? interpretatie van de bits? Communicatie tussen software- en hardwarekant is heel belangrijk. Er zijn immers duidelijke afspraken nodig omtrent: wanneer de data getransporteerd wordt hoe de data getransporteerd wordt (vb: per 8 bits) hoe de doorgezonden bits moeten geïnterpreteerd worden (vb: 16-bit, 2-complement notatie)

Inleiding Probleemstelling Doel van het project Aanpak Overzicht gepresteerd werk Planning

Overzicht gepresteerd werk: HARDWARE Doel van het project Overzicht gepresteerd werk: HARDWARE geheugenstructuur: FIFO  testen met binaire teller (= zelf aangemaakte data) omzetting parallelle naar seriële datastroom: USB = serieel! solderen van connecties tussen FPGA en µ-controller Als eerste opdracht stelden we het aanmaken van een geheugenstructuur. Een first-in-first-out buffer leek ons geschikt aangezien we inderdaad de samples in volgorde wensen te verwerken. Deze samples worden door de microcontroller in pakketjes van 8 bit opgevraagd. Aangezien de AD-convertor een analoge waarde omzet in een 14-bit 2-complementsgetal, zal iedere sample moeten worden uitgebreid naar een 16-bit getal en in twee stukken moeten worden doorgezonden. We werken momenteel nog met zelf kunstmatig aangemaakte samplewaarden via een 8-bit teller, zodanig dat we hier nog geen rekening mee moeten houden. De samples worden opgevraagd via de microcontroller op een seriële manier, USB is immers Universal SERIAL Bus. De FIFO levert echter 8 bit tegelijkertijd (dus in parallel). Het was dus noodzakelijk om een bufferstructuur op te stellen die de omzetting van parallelle communicatie (per 8 bit) omzet naar een seriële datastroom (bit per bit). Ten slotte hebben we ook een aantal solderingen moeten maken tussen de FPGA-connecties en de microcontroller. De juiste poorten van de FPGA moeten immers geconnecteerd worden op de µ-controller om de data en kloksignalen te kunnen doorgeven.

FIFO teller ainit dout 8bit empty full 8bit 8bit rd_clk rd_en 8bit din Doel van het project ainit dout 8bit empty FIFO full 8bit 8bit BU F F E R 1 rd_clk BU F F E R 2 rd_en 8bit din Hier zien we een totaalbeeld van wat al gerealiseerd werd aan de hardwarekant. De geheugenstructuur is dus een FIFO waarop de volgende signalen voorkomen: ainit: asynchrone initialisatie signaal rd_clk en wr_clk: kloksignalen waarop respectievelijk gelezen en geschreven wordt rd_en en wr_en: controlesignalen om aan te geven wanneer gelezen en geschreven mag worden empty en full: controlesignalen die aangeven wanneer de FIFO respectievelijk leeg of vol is (bij leeg mag niet meer gelezen worden, bij vol mag niet meer geschreven worden) din en dout: de data-in- en uitgang Op de figuur is te zien dat we inderdaad nog een teller gebruiken om de data-ingang te vullen. De wr_clk gaat aan 64 MHz, zodat er 64 Megasamples per seconde kunnen worden ingelezen. De rd_clk wordt aangelegd door de µ-controller. Deze begint te toggelen wanneer er bits opgevraagd worden. Op het moment dat er dus een rising_edge is van deze klok zal aan de ingang van de µ-controller een bit uitgelezen worden. Er wordt dus verondersteld dat die bit een correcte en (belangrijker) een stabiele waarde is. Dat bit bevindt zich aan de uitgang van ons systeem: usb_data. Om het mogelijk te maken dat steeds een correct bit klaar staat aan deze uitgang, hebben we gebruik gemaakt van een dubbele bufferstructuur. Bij initialisatie wordt BUFFER1 volgeschreven met correcte databits. Na deze initialisatie mag de data opgevraagd worden. Vanaf het moment dat het eerste bit uit BUFFER1 uitgelezen wordt, start een proces dat er voor zorgt dat BUFFER2 volgeschreven wordt met de volgende 8 correcte databits. Wanneer BUFFER1 volledig is uitgelezen, kan er onmiddellijk verder gegaan worden met het uitlezen van BUFFER2 aangezien die ondertussen is volgeschreven met de volgende 8 bits. Op dat moment start een analoog proces om BUFFER1 weer vol te schrijven… wr_clk wr_en teller usb_data

Overzicht gepresteerd werk: SOFTWARE Doel van het project Overzicht gepresteerd werk: SOFTWARE

Inleiding Probleemstelling Doel van het project Aanpak Overzicht gepresteerd werk Planning

Doel van het project Planning: HARDWARE doorvoeren van een volledige test met zelf aangemaakte data implementeren van interface ADC – FPGA controlesignalen @ runtime kunnen inlezen instellingen @ runtime kunnen veranderen Eerstdaags zullen we eens een eerste volledige test doorvoeren, waarbij door de teller zelf aangemaakte data in de FIFO geschreven wordt, omgezet wordt naar seriële bitstroom, afgegeven via de microcontroller tot aan de PC en afgebeeld wordt op het scherm. Eenmaal dit op een voldoende manier werkt, kunnen we de interface tussen de AD-convertor en FPGA implementeren. Op die manier is het dan mogelijk om echte signalen binnen te trekken. Verder moeten we natuurlijk op de hardwarekant wat signaalverwerkende functies implementeren. Een trigger zal moeten voorzien worden, die aangeeft vanaf wanneer we het signaal willen binnentrekken. Ook een pretrigger moet nog voorzien worden. Andere controlesignalen moeten ook behandeld kunnen worden. Zo kan de samplerate @ runtime ingesteld worden. Als er nog tijd overschiet aan de hardwarekant, dan kan eventueel nog een digitaal ruisonderdrukkingsfilter in VHDL gemaakt worden, zodat de signalen minder last hebben van storingen.

Doel van het project Planning: SOFTWARE