Departement Industriële wetenschappen en technologie Opleiding industrieel ingenieur elektronica Optie informatie- en communicatietechnieken
Ontwerp en realisatie van een LTC/VITC-IP convertor voor het Networked Broadcast Monitoring System
Eindwerk aangeboden tot het behalen van het diploma van industrieel ingenieur in elektronica (master) door
Jeroen Geldhof
o.l.v. Johan Dewilde, BARCO NV Franky Loret, KHBO Academiejaar 2006 - 2007
talent@work KHBO Campus Oostende ● Zeedijk 101 ● B-8400 Oostende ● Tel. +32 59 56 90 00 ● Fax +32 59 56 90 01 ● www.khbo.be
Jeroen Geldhof
Woord vooraf
Bij deze wil ik iedereen bedanken die mij geholpen heeft om deze thesis tot een goed einde te brengen. Mijn oprechte dank aan de docenten van de KHBO-Oostende die me gedurende de opleiding tot Industrieel Ingenieur Elektronica gevormd hebben. In het bijzonder wil ik mijn binnenpromotor Ing. Loret Franky, MSc, bedanken voor het opvolgen en nalezen van deze thesis. Ook wil ik hem bedanken voor de vele tips die hij gegeven heeft in verband met het schrijven van de thesis. Graag wil ik mijn buitenpromotor Johan Dewilde bedanken. Hij heeft me de mogelijkheid en ondersteuning gegeven om dit eindwerk te realiseren. Daarnaast wil ik Marc Leeman en Kiril Boyadzhiev bedanken voor het schrijven van de kernel en de drivers. Ook wil ik Nebih Meholli, Wouter Minjauw en Filip Pollin bedanken voor de tijd die ze vrij gemaakt hebben om me bij te staan met hulp. Mijn zus Frieke Geldhof, en mijn elektronicaleerkracht uit het middelbaar onderwijs Patrick Goes wil ik bedanken voor het nalezen van de thesis. Tot slot wil ik ook mijn ouders bedanken voor hun morele steun. Ik ben ze zeer dankbaar, omdat ze me de mogelijkheid hebben gegeven deze opleiding te volgen.
Jeroen Geldhof Roeselare, mei 2007
Woord vooraf
Jeroen Geldhof
Abstract
Barco Control Rooms is de afdeling waarvoor deze thesis gemaakt is. Control Rooms is de afdeling van Barco die zijn klanten videowalls en de nodige controle-apparatuur aanbiedt. Deze videowalls worden gebruikt binnen controlekamers van bijvoorbeeld broadcaststudio’s en procescontrole. Binnen Control Rooms is men bezig met een nieuw systeem te ontwikkelen die het mogelijk maakt om de videowalls aan te sturen via een Ethernet-netwerk. Dit systeem heet “Networked Broadcast Monitoring System” (NBMS). Vertical Interval Time Code (VITC), Longitudinal Time Code (LTC) en genlocking worden in broadcaststudio’s gebruikt om beelden met elkaar te synchroniseren. Bij VITC en LTC wordt tijdscode verspreid, terwijl bij genlocking een blackburstsignaal verspreid wordt. Een blackburstsignaal is een videosignaal zonder helderheids- en kleurinformatie, die ervoor zorgt dat twee beelden volledig synchroon lopen. De doelstelling van dit eindwerk is het ontwerpen van een module, die een onderdeel zal vormen van het NBMS. Deze PCB moet VITC- en LTC-tijdsinformatie, en een blackburstsignaal kunnen omzetten naar UDP-pakketten. Deze UDP-pakketten worden dan over een Ethernet-netwerk naar een bepaald toestel verstuurd, dat zich aan de hand van deze informatie synchroniseert met de synchronisatiebron. Het blackburst-signaal moest voor deze thesis alleen in hardware ondersteund worden. Voor dit eindwerk zijn schema’s ontworpen voor de printed circuit board. Daarvoor is een voorstudie gemaakt. Er is VHDL-code geschreven voor de FPGA. De hardware en VHDLcode zijn grotendeels uitgetest.
Abstract
Jeroen Geldhof
Inhoudsopgave
Woord vooraf ....................................................................................................................... 2 Abstract ................................................................................................................................ 3 Inhoudsopgave ..................................................................................................................... 4 Lijst met illustraties ............................................................................................................ 6 Lijst met tabellen ................................................................................................................. 7 Lijst met gebruikte afkortingen ......................................................................................... 8 Hoofdstuk 1 Inleiding ........................................................................................................ 1.1. Een korte toelichting omtrent de firma Barco ....................................................... 1.2. De bestemming van het eindwerk ........................................................................ 1.3. De afdeling Control Rooms .................................................................................. 1.4. De invloed van netwerktechnologie op broadcaststudio’s ................................... 1.5. Networked Broadcast Monitoring System ............................................................
9 10 10 11 12 13
Hoofdstuk 2 LTC, VITC en genlocken ........................................................................... 2.1. LTC ....................................................................................................................... 2.1.1. Het modulatieschema van SMPTE-LTC ........................................................... 2.1.2. LTC bit-toewijzing ............................................................................................ 2.2. VITC ..................................................................................................................... 2.2.1. Het modulatieschema van SMPTE-VITC ......................................................... 2.2.2. VITC bit-toewijzing .......................................................................................... 2.3. Genlocken .............................................................................................................
15 16 16 17 20 20 21 22
Hoofdstuk 3 Voorstudie .................................................................................................... 3.1. Eisen van het management .................................................................................... 3.2. Opstellen van een blokschema van het hardware ontwerp ................................... 3.3. Beschrijving van de opgezochte componenten ..................................................... 3.3.1. Keuze van de LTC- en VITC-ontvanger ........................................................... 3.3.2. Keuze van de genlock-ontvanger ...................................................................... 3.3.3. Keuze van de PHY’s ......................................................................................... 3.3.4. Keuze van een FPGA ........................................................................................ 3.3.5. Keuze van een PowerPC ................................................................................... 3.3.6. Keuze van de Boundary-scan ............................................................................ 3.3.7. Keuze van de Shelf-manager ............................................................................. 3.3.8. Keuze van de transceiver voor RS-232 en RS-422/485 .................................... 3.3.9. Keuze van het contact voor balanced LTC ....................................................... 3.3.10. Keuze van de LED’s .......................................................................................... 3.4. Het berekenen van het energieverbruik ................................................................ 3.5. Het berekenen van de prijs ....................................................................................
23 23 24 26 26 26 26 27 28 29 30 30 31 32 32 32
Inhoudsopgave
Jeroen Geldhof Hoofdstuk 4 Hardware ontwerp ...................................................................................... 4.1. PowerPC, PHY’s en geheugens ............................................................................ 4.1.1. Voedingen van de PowerPC .............................................................................. 4.1.2. PCI-bus .............................................................................................................. 4.1.3. TSEC en PHY’s ................................................................................................ 4.1.4. DRAM en flash .................................................................................................. 4.2. VITC- en LTC-ontvanger ..................................................................................... 4.3. Genlock-ontvanger ................................................................................................ 4.4. Seriële communicatie ............................................................................................ 4.5. FPGA en geheugens .............................................................................................. 4.6. FPGA configuratie-component ............................................................................. 4.7. I²C-componenten ................................................................................................... 4.8. Shelf-management ................................................................................................. 4.9. Voedingen .............................................................................................................. 4.10. JTAG-ketting .........................................................................................................
33 33 33 33 34 34 35 35 36 37 37 38 38 39 40
Hoofdstuk 5 VHDL-code .................................................................................................. 5.1. Voordelen van de Quartus II – omgeving ............................................................. 5.2. De PCI-core .......................................................................................................... 5.2.1. Instellingen van de PCI-core ............................................................................. 5.2.2. Functioneel blokschema en werking van het PCI-targetdevice ........................ 5.3. Lokaal component ................................................................................................. 5.3.1. State-macine ...................................................................................................... 5.3.2. Logica om lt_rdyn aan te sturen ........................................................................ 5.3.3. Write-proces ...................................................................................................... 5.3.4. Read-proces ....................................................................................................... 5.3.5. Aansturen van de LED’s ................................................................................... 5.4. Rest van de logica .................................................................................................
41 41 42 42 43 48 48 48 49 50 50 51
Hoofdstuk 6 Testresultaten en Aanpassingen ................................................................ 6.1. Testplan ................................................................................................................. 6.1.1. Opzet van de tests .............................................................................................. 6.1.2. Testen ................................................................................................................ 6.2. Testresultaten en aanpassingen ............................................................................. 6.2.1. Voedingen en stroomverbruik ........................................................................... 6.2.2. Testen van de JTAG-kettingen ......................................................................... 6.2.3. De PowerPC ...................................................................................................... 6.2.4. Verder aanpassen van de VHDL-code .............................................................. 6.2.5. Configureren van de PowerPC .......................................................................... 6.2.6. Tijdscode uitlezen ............................................................................................. 6.2.7. Andere testen ..................................................................................................... 6.2.8. Andere opmerkingen .........................................................................................
52 52 52 53 55 55 56 56 56 57 57 57 57
Hoofdstuk 7 Besluit ........................................................................................................... 58 Referenties ........................................................................................................................... 59
Inhoudsopgave
Jeroen Geldhof
Lijst met illustraties
Afbeelding 1.1 : Afbeelding 1.2 : Afbeelding 1.3 : Afbeelding 1.4 : Afbeelding 1.5 : Afbeelding 1.6 : Afbeelding 2.1 : Afbeelding 2.2 : Afbeelding 2.3 : Afbeelding 2.4 : Afbeelding 2.5 : Afbeelding 2.6 : Afbeelding 2.7 : Afbeelding 3.1 : Afbeelding 3.2 : Afbeelding 3.3 : Afbeelding 3.4 : Afbeelding 3.5 : Afbeelding 3.6 : Afbeelding 3.7 : Afbeelding 3.8 : Afbeelding 3.9 : Afbeelding 3.10 : Afbeelding 4.1 : Afbeelding 4.2 : Afbeelding 4.3 : Afbeelding 4.4 : Afbeelding 4.5 : Afbeelding 4.6 : Afbeelding 4.7 : Afbeelding 4.8 : Afbeelding 4.9 : Afbeelding 4.10 : Afbeelding 5.1 : Afbeelding 5.2 : Afbeelding 5.3 : Afbeelding 5.4 : Afbeelding 5.5 : Afbeelding 5.6 : Afbeelding 5.7 : Afbeelding 6.1 :
Lijst met illustraties
Oplossing met CRT-schermen ............................................................. Oplossing met videowall ..................................................................... Videowall met controllers .................................................................... Argus videowall-controller ................................................................... NG-systeem .......................................................................................... Networked Broadcast Monitoring System ........................................... Framedropping ..................................................................................... Biphase Mark code ............................................................................... Data bit overgang ................................................................................. Stijgtijd en tijdsconstante ..................................................................... NTSC formaat met vier velden ............................................................ Timing van de VITC-data op een videolijn ......................................... Analoge video onder de loep ............................................................... Blokdiagram van de hardware .............................................................. Blokdiagram van de ICS2008B ............................................................ Blokdiagram van een FPGA ................................................................. Blokdiagram van de PowerPC ............................................................. Boundary scan ...................................................................................... Boundary scan ...................................................................................... Klemmen waar de hotswap-switch op aangesloten is .......................... XLR-contact ......................................................................................... Phoenix-contact met bijhorende plug ................................................... Sideled .................................................................................................. PCI-bus ................................................................................................. Opstelling van de Ethernet-componenten ............................................ SO-DIMM module ............................................................................... Klamp-diodes ....................................................................................... Video-ingang en enkele uitgangen van de LMH1981 ......................... Blokdiagram van de seriële schakeling ................................................ Blokdiagram van de configuratieschakeling voor de FPGA ................ Blokdiagram van een switch-mode power supply ............................... Pulsbreedte-modulatie .......................................................................... Blokdiagram van de JTAG-componenten ........................................... Schema van de hoofdblokken in de FPGA .......................................... VHDL-entiteit die door een blokfiguur voorgesteld wordt .................. Instelling van de PCI-functionaliteit .................................................... Functioneel blokschema van een 32-bit targetdevice ........................... Signalen bij een single-cycle memory-read transactie ......................... Signalen bij een single-cycle memory-write transactie ........................ State-machine van het lokale component ............................................. Opstelling van de eindtest ....................................................................
10 10 11 11 13 14 15 16 17 17 18 20 22 25 26 27 28 29 29 30 31 31 32 33 34 34 35 36 37 38 39 39 40 41 42 43 43 44 46 48 52
6
Jeroen Geldhof
Lijst met tabellen
Tabel 1.1 : Tabel 2.1 : Tabel 2.2 : Tabel 2.3 : Tabel 3.1 : Tabel 4.1 : Tabel 4.2 : Tabel 5.1 : Tabel 5.2 : Tabel 5.3 : Tabel 5.4 : Tabel 6.1 :
Vergelijking tussen analoge en digitale technologie bij broadcaststudio’s .... Bit-toewijzing voor een LTC-woord .............................................................. Bit-toewijzing voor de klokeenheden van LTC .............................................. Bit-toewijzing voor een VITC-woord ............................................................ OSI-model ...................................................................................................... Uitgangspinnen van de LMH1981 .................................................................. JTAG-kettingen .............................................................................................. Tabel met uitleg over de single-cycle memory-read transactie ...................... Tabel met uitleg over de single-cycle memory-write transactie ..................... Write-registers ................................................................................................ Read-registers ................................................................................................. Voedingsspanningen ......................................................................................
Lijst met tabellen
12 19 19 21 24 35 40 45 47 49 50 55
7
Jeroen Geldhof
Lijst met gebruikte afkortingen
BAR BCD CMOS CPLD DDR DRAM DUART EBU EEPROM FPGA GPIO I²C IP JPEG JTAG LAN LTC MAC MTC NBMS NG-systeem / NGS NRZ NTP NTSC OSI-model PAL PAL PCB PCI PHY PLL SECAM SMPS SMPTE SO-DIMM SPG SRAM SSH TSEC UDP USB UTP VHDL VHSIC VITC
Base-Address-Registers Binary-Coded Decimal Complementary Metal–Oxide–Semiconductor Complex Programmable Logic Device Double Data Rate Dynamic Random Access Memory Dual Universal Asynchronous Receiver/Transmitter European Broadcasting Union Electrically Erasable Programmable Read-Only Memory Field Programmable Gate Array General Purpose Input/Output Inter-Integrated Circuit Internet Protocol Joint Pictures Experts Group Joint test action group Local Area Network Longitudinal Timecode Media Access Control MIDI Timecode Networked Broadcast Monitoring System Next Generation systeem Non-return to zero Netwok Time Protocol National Television Standards Committee Open Systems Interconnection Basic Reference Model Phase Alternating Line Programable Array Logic Printed Circuit Board Peripheral Component Interconnect Physical Layer van het OSI-model Phase-Locked Loop Séquentiel couleur à mémoire Switch-Mode Power Supplies Society of Motion Picture and Television Engineers Small Outline Dual In-line Memory Module Sync-Pulse Generator Static Random Access Memory Secure Shell Three-Speed Ethernet-Controller User Datagram Protocol Universal Serial Bus Unshielded Twisted Pair VHSIC Hardware Description Language Very-High-Speed Integrated Circuit Vertical Interval Timecode
Lijst met gebruikte afkortingen
8
Jeroen Geldhof
Hoofdstuk 1 Inleiding
Eén van de hoofddoelstellingen van dit eindwerk is het ontwerp van een module, dat een onderdeel zal vormen van een nieuw systeem dat het bedrijf Barco ontwerpt voor de aansturing van videowalls. De toepassing van dit bord situeert zich voornamelijk in de wereld van de broadcasting. In een broadcast studio worden Longitudinal Timecode (LTC) en Vertical Interval Timecode (VITC) signalen gebruikt om tijdsinformatie over videofragmenten te verspreiden. Deze informatie wordt in de controlekamer gevisualiseerd. LTC maakt gebruik van een audiosignaal om tijdsinformatie door te geven. VITC gebruikt daarentegen blanco lijnen in een videosignaal om informatie te verspreiden. De tijdsinformatie bevat uren, minuten en seconden. Control Rooms is de afdeling van Barco, waarvoor dit bord ontworpen is. Barco Control Rooms biedt zijn klanten videowalls en de nodige controleapparatuur aan. Deze videowalls worden bij broadcast studio’s gebruikt om de verschillende camerabeelden weer te geven. Mijn eindwerk situeert zich dus in het ontwerp van een nieuw systeem, dat Barco heeft uitgewerkt om videowalls aan te sturen. Dit systeem heet “Networked Broadcast Monitoring System” (NBMS) en speelt in op de groei van ethernetproducten en het gebruik ervan in broadcast studio’s. Hiervoor werd een volledig nieuw Printed Circuit Board (PCB), met alle vereiste functionaliteit, ontworpen. Het NBMS gebruikt een Internet Protocol (IP) netwerk voor het overbrengen van video en data naar de verschillende schermen van een videowall. Bij het Networked Broadcast Monitoring System wordt de traditionele bekabeling van video en audio vervangen door Unshielded Twisted Pair (UTP). Hierdoor is het opportuun om de informatie, die normaal via LTC of VITC geadverteerd wordt, over ethernet naar de betrokken toestellen te versturen. De in dit eindwerk besproken PCB is in staat om twee LTC- of VITC-signalen te verwerken en deze data als User Datagram Protocol (UDP) pakketjes te verspreiden over het netwerk. Toepassingen zoals het visualiseren van de tijdsinformatie op de videowalls, of het synchroniseren van toestellen op de klok behoren bij de mogelijkheden.
Hoofdstuk 1 – Inleiding
9
Jeroen Geldhof
1.1.
Een korte toelichting omtrent de firma Barco
Barco [1] is opgericht in 1934 door de heer Lucien De Puydt. De specialiteit van Barco was toen het assembleren van radio’s met Amerikaanse onderdelen. De naam ‘Barco’ is dan ook een acroniem voor Belgian American Radio COmpany. Door het succes van het bedrijf heeft men zich niet veel later ook op televisie toegelegd. Barco heeft door de jaren heen, verschillende perioden meegemaakt, waar telkens een andere markt aangetrokken werd. In de beginjaren was dit radio en televisie. Daarna heeft men zich toegelegd op textielautomatisering. Vandaag is Barco [2] wereldleider in specifieke, professionele markten en heeft zich gespecialiseerd in het maken van visualisatie- en displayoplossingen voor grootbeeld en levenskritische toepassingen. De hoofdzetel van Barco is in Kortrijk, en het bedrijf beschikt over filialen verspreid over de hele wereld. Barco [3] heeft vijf kernactiviteiten die allen te maken hebben met image processing. Barco View ontwikkelt visualisatie-systemen voor levenskritische beslissingen. Barco Media & Entertainement is actief in verschillende markten voor grootscherm-visualisatie. Barco Presentation & Simulation is actief in de sector van simulatie en virtuele realiteit. Barco Control Rooms beschikt over expertise in controlroom-oplossingen. Barco Vision concentreert zich op systemen voor visuele inspectie en kwaliteitscontrole.
1.2.
De bestemming van het eindwerk
In broadcast studio’s is het nodig om meerdere videobronnen gelijktijdig te kunnen bekijken. Vroeger maakte men hiervoor gebruik van één beeldbuis per videosignaal (zie afbeelding 1.1). Barco biedt met videowalls een flexibeler alternatief aan. De klant is niet meer gebonden aan één scherm om één videobeeld weer te geven. Zo kan hij een videoblok, dat is de rechthoek waar een videobron in weergegeven wordt, naar believen schalen en ergens op de videowall plaatsen; zie afbeelding 1.2. videoblok
Afbeelding 1.1 Oplossing met CRT-schermen
Afbeelding 1.2 Oplossing met videowall
Een toepassing op dit eindwerk is het weergeven van de klok in een videoblok.
Hoofdstuk 1 – Inleiding
10
Jeroen Geldhof
1.3.
De afdeling Control Rooms
Barco Control Rooms [4] is wereldwijd expert in control room oplossingen voor broadcasting, telecommunicatie, verkeersmanagement, procesbeheer en andere domeinen. De technologie is ontworpen voor continue, kritische applicaties. Het is de bedoeling dat de producten 24 uur per dag, 7 dagen op 7 dagen in werking zijn. De klant krijgt een gegarandeerde levenslange service en support. Het basiselement in een controlekamer is een videowall (zie afbeelding 1.3). Een videowall bestaat uit verschillende projectorkasten, die modulair gemonteerd worden. Samen vormen ze één groot videogebied, waarin de gebruiker vrij is om de grootte en de plaats van videoblok naar wens te definiëren. Een projectorkast bestaat uit een projector, die een beeld verticaal naar boven projecteert en een regelbare spiegel, die ervoor zorgt dat het beeld op de voorkant van de kast te voorschijn komt. Ruimtebesparing vereist dat de projector verticaal geplaatst wordt en niet horizontaal. Bij kleinere toepassingen worden ook LC schermen gebruikt. De videowalls worden aangestuurd door een videowall-controller, zoals het Argus of Hydra systeem (zie afbeelding 1.4). Deze systemen bestaan uit een busarchitectuur waarop verschillende input- en outputkaarten geplaatst zijn. Oorspronkelijk waren er alleen kaarten voor analoge en digitale video. Daarna zijn er kaarten bij gekomen die streaming video ondersteunen. Videowall management software zorgt voor het gebruiksgemak van de klant. Via deze software worden de positie en grootte van de verschillende videoblokken bepaald.
Afbeelding 1.3 Videowall met controllers
Hoofdstuk 1 – Inleiding
Afbeelding 1.4 Argus videowall-controller
11
Jeroen Geldhof
1.4.
De invloed van netwerktechnologie op broadcaststudio’s
De invloed van ethernet op het dagelijks leven is overduidelijk. Denk maar aan de vele bedrijven die netwerken gebruiken om hun computers met elkaar te verbinden. Het eerste echte succesvolle ethernet-standaard was 10BASE-2, een ethernet-verbinding die coaxkabel als medium gebruikte. Daarna heeft men 10BASE-T uitgebracht, die twisted-pair-kabels gebruikte als medium. Later heeft men snellere versies uitgebracht van de twisted-pairnetwerken, zoals 100BASE-T en 1000BASE-T. Ook zijn er versies van ethernet uitgebracht die signalen over glasvezel sturen. Snellere varianten van ethernet zullen in de toekomst zeker hun toepassing vinden in onze samenleving. Het succes van internet heeft het ethernet vooruit gestuwd. Het internet werd meer dan een plaats waar men websites kon bekijken. In 1993 kon men al luisteren naar de eerste internet radio. Het internet heeft door zijn succes een sterke impuls gegeven aan beeldcompressie technieken zoals JPEG en MPEG. Door het sneller worden van ethernet werd het mogelijk om ook video van hoge kwaliteit te streamen op een lokaal netwerk. Vandaag doet video-over-ip meer en meer zijn intrede in de broadcast sector. Enkele voordelen, waarom deze techniek meer en meer wordt gebruikt, worden opgesomd in onderstaande tabel.
analoog (coax)
digitaal (ethernet)
1 per coax; mogelijkheid voor meer dan 100 door toepassen van modulatie statische kanalen toewijzen video, radio frequentie techniek moeilijker
afhankelijk van de bandbreedte
aanpasbaarheid
moeilijker
gemakkelijker
mogelijkheid tot randinformatie
moeilijk, via vertical blanking
gemakkelijk
aantal kanalen
management nodige skills voor installatie en onderhoud uitbreidbaarheid
automatische – kanaaltoekenning IP-networking gemakkelijker
Tabel 1.1 Vergelijking tussen analoge en digitale technologie bij broadcaststudio’s
Hoofdstuk 1 – Inleiding
12
Jeroen Geldhof
1.5.
Networked Broadcast Monitoring System
Het Networked Broadcast Monitoring System [5] is het logische antwoord op de nieuwe evoluties op het vlak van Ethernet netwerkproducten. Bij het NBMS wordt het bussysteem, dat de verschillende kaarten verbindt, vervangen door een ethernet-netwerk De kaarten zijn ontworpen om plaats te nemen in het nieuwe Next Generation systeem (NGsysteem), zie afbeelding 1.5. Dit is een hardwarekast waar de kaarten en voedingen hotswappable zijn. Hot-swappable wil zeggen dat het toestel niet moet uitgeschakeld worden om een stuk ervan te vervangen. De kaarten bestaan uit een actief gedeelte, waar de meeste elektronica op staat, en een passief gedeelte waarop de connectoren gemonteerd zijn. Zo is het eenvoudig om een defect bord te vervangen zonder de bekabeling los te moeten maken.
Afbeelding 1.5 NG-systeem
In het NBMS worden volgende kaarten toegepast. • Encoders, die analoge en digitale high definition videostandaarden ondersteunen en een JPEG2000 compressie uitvoeren. De met JPEG2000 gecomprimeerde data wordt dan via het ethernet-netwerk verzonden. • Per projector module is een decoderkaart noodzakelijk, die de nodige JPEG2000 videostreams binnen neemt en hieruit beelden genereert, die geprojecteerd moeten worden op het scherm. • Uitbreidingskaarten, zoals een input output kaart (IO-bord) en een synchronisatie kaart (dit eindwerk ). JPEG2000 [6] is een beeldcompressie-standaard, gebaseerd op de wavelet-transformatie. Het werd ontworpen door het Joint Pictures Experts Group (JPEG). JPEG2000 heeft een hogere compressiefactor dan standaard JPEG.
Hoofdstuk 1 – Inleiding
13
Jeroen Geldhof Het beeld van de camera wordt gecodeerd in een ‘video capture’ -eenheid, en via gigabitethernet verstuurd over het hele netwerk. Op dit netwerk zijn ‘display generating’ -eenheden aangesloten, die de nuttige videostreams filteren uit het netwerk, en deze weergeven op het stuk videowall dat ze aansturen. Via een configuratie- en controle-eenheid kan men de ‘display generating’ -eenheden configureren, om zo een videoblok toe te voegen of te verwijderen van het scherm. Deze configuratie gebeurt via het central control system. De ‘synchronisatie’ -eenheid is het stuk hardware waar deze thesis over gaat. Dit bord neemt LTC, VITC en genlock video binnen en zet deze om naar UDP pakketjes. Genlocken [7] is een techniek waarbij een video-referentiesignaal gebruikt wordt om andere videobronnen te synchroniseren. Het doel is om de videosignalen gelijk te laten lopen. Dit is nodig als er beelden gemixt moeten worden, of indien ze met elkaar gecombineerd moeten worden. Met het oog op toekomstige toepassingen kan dit bord deze informatie binnen nemen. De signaalverwerking hiervan is voorlopig nog niet voorzien.
LTC source VITC source Genlock source Analog Video Sources Video capturing
Synchro-unit Display Generating Unit
Standaard en high definition digital video
Display Unit Video capturing
Ethernet Video Source
LCD Transcoder
Display Generating Unit
Graphical capturing Graphical Data
Central Control System
Configuration and Control
Afbeelding 1.6 Networked Broadcast Monitoring System
Hoofdstuk 1 – Inleiding
14
Jeroen Geldhof
Hoofdstuk 2 LTC, VITC en genlocken
Als signalen van diverse videobronnen coherent moeten worden geïntegreerd [8], dan is dit niet mogelijk zonder enige vorm van synchronisatie. De eerste vormen van synchronisatie waren mechanisch van aard. Zo had men langs weerszijden van een film sprockets; dit zijn rijen gaatjes. Kleine aanpassingen in de tijd konden gemaakt worden door de taperecorder sprocketgaatjes te laten overslaan. Gewone videotape of digitale filmbestanden hebben geen sprocketgaatjes. Hiervoor was een elektrisch equivalent nodig is om de synchronisatie te verzorgen. In 1969 heeft de US Society of Motion Picture and Television Engineers (SMPTE) de eerste gestandaardiseerde SMPTE tijdscode geïntroduceerd. Er bestaan enkele versies van deze tijdscode. Zo is er een audioversie, die longitudinal of linear time code (LTC) genoemd wordt. Verder is er ook een versie van tijdscode die op een videosignaal wordt geplaatst en een versie die via een MIDI connectie wordt verstuurd. Respectievelijk worden deze vertical interval time code (VITC) en MIDI Timecode (MTC) genoemd. De belangrijkste component in SMPTE tijdscode is een 8-digit-klok. Deze bestaat uit 0 tot 59 seconden, 0 tot 59 minuten en 0 tot 23 uren. De seconde is verder onderverdeeld in een aantal frames. Het aantal frames per seconde is het aantal beelden dat per seconde wordt afgespeeld om een vloeiend beeld te verkrijgen. Dit is afhankelijk van land tot land. Er zijn vier gestandaardiseerde aantallen frames per seconde. Dertig frames per seconde wordt veel gebruikt voor audio in Amerika, en overal in de wereld waar 60 Hz de netfrequentie en NTSC de televisie standaard is. Kleurentelevisie heeft in Amerika een snelheid van ongeveer 29.97 fps. Om toch aan een snelheid van 30 fps te komen, wordt framedropping toegepast (zie figuur 2.1). Dit houdt in dat twee frames aan het begin van elke minuut niet meegeteld worden, met uitzondering voor elke tiende minuut. In Europa, en overal waar men een 50 Hz netfrequentie heeft en waar PAL of SECAM de televisiestandaard is, wordt de European Broadcasting Union (EBU) standaard gebruikt. Deze heeft een framesnelheid van 25 fps. De laatste framesnelheid is 24 fps, en wordt enkel bij film gebruikt. In deze afbeelding is te zien dat de trage klok van 29.97 fps naloopt op de gewenste klok van 30 fps. Door klok negen weg te laten, beent de trage klok de gewenste klok bij. Men kan dit principe het best vergelijken met de schrikkeljaren. Een schrikkeljaar compenseert voor het feit dat een astronomisch jaar niet precies gelijk is aan 365 dagen. Afbeelding 2.1 Framedropping
Hoofdstuk 2 – LTC, VITC en genlock
15
Jeroen Geldhof De bedoeling van dit eindwerk is om VITC of LTC binnen te nemen, en een elektrisch equivalent te genereren die naar de netwerktoestellen wordt verspreid. In deze toestellen zal een digitale Phase-Locked Loop (PLL) een interne klok synchroon laten lopen met de informatie uit de ontvangen pakketjes. Het systeem in deze toestellen hoort niet bij het eindwerk, en is nog in ontwerpfase. [9] Wel kan al verteld worden dat het systeem met het Network Time Protocol (NTP) zal werken. Dit protocol is ontworpen om het synchroniseren van computerklokken te ondersteunen. Het speciale aan dit systeem is, dat dit gebeurt via een pakket-geswitched datanetwerk met variabele latency. Pakket-geswitched wil zeggen dat de verzonden data in stukjes verdeeld wordt, en onafhankelijk van elkaar over het datanetwerk verzonden wordt. Variabele latency wil zeggen dat elke weg op het netwerk een
2.1.
LTC
2.1.1. Het modulatieschema van SMPTE-LTC [8][10] De binaire 1-waarde wordt voorgesteld door twee transities, één aan het begin en één in het midden van de bitperiode. Een binaire 0-waarde wordt voorgesteld door een polarisatieverandering, aan het begin van de bitperiode. Dit modulatieschema wordt ‘Biphase Mark’ genoemd (zie afbeelding 2.2). Biphase Mark Code heeft enkele voordelen ten opzichte van andere coderingssystemen. Doordat het gecodeerde signaal elke twee bits zeker een transitie maakt is het eenvoudiger om te synchroniseren. De data van het gecodeerde signaal zit niet in de amplitude, maar in het al dan niet veranderen van polariteit. Hierdoor is het eenvoudiger om de data uit te lezen. De gemiddelde waarde van een BMC signaal is nul. Daar LTC audio is, is dit is een heel belangrijke reden waarom deze codering gebruikt wordt.
Afbeelding 2.2 Biphase Mark Code
De stijg- en daaltijden zouden volgens de standaard 25 µs ± 5µs moeten zijn (zie afbeelding 2.3). De stijgtijd is de tijd, dat een signaal nodig heeft om bij een flank van 10 procent tot 90 procent in amplitude te veranderen (zie afbeelding 2.4). Om deze waarde te bekomen moet de bitrij door een laagdoorlaat-filter gestuurd worden. Een handig middel om de nodige –3 dB cut-off frequentie van de filter te berekenen, is de tijdsconstante weergegeven in afbeelding 2.4. De tijdsconstante is de tijd die nodig zou zijn voor het signaal, om van de initiële amplitude naar de te bereiken amplitude te veranderen, als Hoofdstuk 2 – LTC, VITC en genlock
16
Jeroen Geldhof de amplitudeverandering constant zou blijven aan de amplitudeverandering bij het begin van de transitie. De –3 dB cut-off frequentie is dan f c =
Afbeelding 2.3 Data bit overgang
1 , met tc gelijk aan de tijdsconstante. 2 π tc
Afbeelding 2.4 Stijgtijd en tijdsconstante
2.1.2. LTC bit-toewijzing [8][10] De 80-bits LTC-tijdsinformatie wordt serieel verzonden. Het LTC-woord bevat de volledige tijdsinformatie van een frame. De start van het LTC-woord staat aan het begin van lijn 2 ( ± 1 lijn) in velden 1 en 3 voor 525/60-systemen en aan het begin van lijn 2 ( ± 1 lijn) in velden 1, 3, 5 en 7 voor 625/50-systemen ( zie figuur 2.5). In elk frame worden zesentwintig van de tachtig bits gebruikt om de SMPTE-tijdscode te dragen. In tabel 2.1 is de data-inhoud van een LTC-frame te zien. De tijdsinformatie die de LTC generator verspreidt zit in de bits; FRAME UNITS, FRAME TENS, SECS UNITS, SECS TENS, MINS UNITS, MINS TENS, HOURS UNITS en HOURS TENS. De tijdsinformatie is voorgesteld in BCD-formaat, zie tabel 2.2. Tweeëndertig bits, opgesplitst in acht groepen van vier, doen dienst als user bits. Deze bits mogen opgevuld worden zoals de gebruiker wenst, zolang deze de binary-group flag bits invult volgens onderstaande waarheidstabel. 525/60 systemen 625/50 systemen Geen user bits formaat gespecificeerd Acht bit karakter formaat Gereserveerd Gereserveerd
Hoofdstuk 2 – LTC, VITC en genlock
Bit 43 Bit 27 0 1 0 1
Bit 59 Bit 43 0 0 1 1
17
Jeroen Geldhof De laatste zestien bits vormen het synchronisatiewoord. Een tijdscode-lezer gebruikt deze bits om de richting van de tape en de bitsnelheid te bepalen. De waarde van deze bits is gestandaardiseerd als 0011 1111 1111 1101. De dropframe-vlag (bit 10) duidt op het gebruik van het dropframe-formaat, zie inleiding hoofdstuk 2. De colourframe-vlag (bit 11) is logisch één als de tijdscode oorspronkelijk bij een kleurentelevisiebeeld hoorde.
Afbeelding 2.5 NTSC formaat met vier velden.
Hoofdstuk 2 – LTC, VITC en genlock
18
Jeroen Geldhof
bit(s) 0-3 4-7 8-9 10 11 12-15 16-19 20-23 24-26 27 (525/60) 27 (625/50) 28-31 32-35 36-39 40-42 43 44-47 48-51 52-55 56-57 58
functie frame units user group 1 tens of frames drop frame flag colour frame flag user group 2 units of seconds user group 3 tens of seconds phase correction binary group flag user group 4 units of minutes user group 5 tens of minutes binary group flag user group 6 units of hours user group 7 tens of hours unassigned
bit(s) 59 (525/60) 59 (625/60) 60-63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
functie binary group flag phase correction user group 8 sync bit sync bit sync bit sync bit sync bit sync bit sync bit sync bit sync bit sync bit sync bit sync bit sync bit sync bit sync bit sync bit
Tabel 2.1 Bit-toewijzing voor een LTC-woord
frames ( 0-29 voor 525/60 systemen, 0-24 voor 625/60 systemen) eenheden (bits 0-3) 4-bit BCD, bit 0 is het LSB tienden van een eenheid (bits 8-9) 2-bit BCD, bit 8 is het LSB seconden eenheden (bits 16-19) tienden van een eenheid (bits 24-26)
4-bit BCD, bit 16 is LSB 3-bit BCD, bit 24 is LSB
minuten eenheden (bits 32-35) tienden van een eenheid (bits 40-42)
4-bit BCD, bit 32 is LSB 3-bit BCD, bit 40 is LSB
uren eenheden (bits 48-51) tienden van een eenheid (bits 56-57)
4-bit BCD, bit 48 is LSB 2-bit BCD, bit 56 is LSB
Tabel 2.2 Bit-toewijzing voor de klokeenheden van LTC
Hoofdstuk 2 – LTC, VITC en genlock
19
Jeroen Geldhof
2.2.
VITC
[8][10] LTC wordt opgenomen op tape. Het is een audiosignaal, dat alleen kan gelezen worden als de tape beweegt ten opzichte van de leeskop. Een alternatief voor LTC is vertical interval time code (VITC). Deze standaard gebruikt een gelijkaardig dataformaat als LTC, maar er zijn toch enkele verschillen. Zo kan men LTC na opname op een bestaande tape plaatsen. Bij VITC is dit niet mogelijk, want VITC maakt deel uit van het videosignaal. Daardoor kan het ook gelezen worden als de band stil staat.
2.2.1. Het modulatieschema van SMPTE-VITC [8][10] Een overgang tussen de binaire waardes ‘0’ en ‘1’, genereert ook een overgang in het gemoduleerde signaal. Als er geen overgang is, is er ook geen overgang in het gemoduleerde signaal. Dit modulatieschema wordt ‘Non-return to zero’ (NRZ) genoemd. De timing van de VITC-data op de gescande lijn is te zien in figuur 2.6. De tien-tot-negentig-procent stijg- en daaltijd, moet bij een VITC databit 200 ± 50 ns zijn. De reden waarom NRZ gebruikt wordt bij VITC, is volgens mij de eenvoud van het modulatieschema
Afbeelding 2.6 Timing van de VITC-data op een videolijn
Hoofdstuk 2 – LTC, VITC en genlock
20
Jeroen Geldhof
2.2.2. VITC bit-toewijzing [8][10] VITC omvat, in tegenstelling tot LTC, 90 bits tijdsinformatie. De toekenning van de functies van de diverse bits, is ongeveer hetzelfde als bij LTC, zie tabel 2.3. Het zestien bit lange synchronisatiewoord dat LTC gebruikt, is bij VITC vervangen door een acht bit lange cyclic redundancy check code (CRC). Om de klok van de ontvanger gemakkelijk te kunnen synchroniseren met het signaal, worden er negen paren synchronisatiebits verspreid in het woord. VITC mag bij 625/50-systemen niet eerder komen dan lijnen 6 of 319, of later dan lijnen 22 of 335. Voor 525/60-systemen worden lijnen 11 en 274 veel gebruikt voor VITC, zie figuur 2.3.
bit(s) 0 1 2-5 6-9 10 11 12-13 14 15 16-19 20 21 22-25 26-29 30 31 32-34 35 (525/60) 35 (625/50) 36-39 40 41
functie sync bit sync bit frame units user group 1 sync bit sync bit tens of frames drop frame flag colour frame flag user group 2 sync bit sync bit units of seconds user group 3 sync bit sync bit tens of seconds field mark flag binary group flag user group 4 sync bit sync bit
bit(s) 42-45 46-49 50 51 52-54 55 56-59 60 61 62-65 66-69 70 71 72-73 74 75 (525/60) 75 (625/50) 76-79 80 81 82-89
functie units of minutes user group 5 sync bit sync bit tens of minutes binary group flag user group 6 sync bit sync bit units of hours user group 7 sync bit sync bit tens of hours unassigned binary group flag field mark flag user group 8 sync bit sync bit CRC-group
Tabel 2.3 Bit-toewijzing voor een VITC-woord
Hoofdstuk 2 – LTC, VITC en genlock
21
Jeroen Geldhof
2.3.
Genlocken
[10] [11] Genlocken is het synchroniseren van de tijdsignalen van een encoder met die van een ander composiet analoog videosignaal. In figuur 2.7 zijn de kleurburst en de verticale- en horizontale-sync te zien, die bij de twee videobeelden gelijk moeten zijn in amplitude, frequentie en fase.
Horizontal Sync
Afbeelding 2.7 Analoge video onder de loep
Een veel gebruikte versie van genlocken, is het rondzenden van een eigen genlocksignaal, beter bekend als blackburst of house-sync. Een Sync-Pulse Generator (SPG) genereert horizontale synchronisatiepulsen, verticale synchronisatiepulsen, frame/field referentiepulsen.
Hoofdstuk 2 – LTC, VITC en genlock
22
Jeroen Geldhof
Hoofdstuk 3 Voorstudie
Tijdens de eerste weken van de stage werd een voorstudie gemaakt, om de haalbaarheid van de opgelegde eisen te verifiëren. Deze voorstudie omvat de volgende elementen: • Het zoeken naar de nodige componenten. • Het opstellen van een blokschema van het hardware ontwerp. • Het berekenen van het theoretisch energieverbruik. • Een prijscalculatie. Oorspronkelijk had het management nog een tweede printed circuit board gepland. Dit printed cicruit board is een input/output-bord, dat de broadcaststudios kunnen gebruiken om hun systemen via switches aan te sturen. Voor dit tweede bord werd ook een groot stuk van de voorstudie gemaakt. Wegens tijdgebrek is dit input/output bord niet in het eindwerk opgenomen.
3.1.
Eisen van het management
Enkele eisen, die het management opgelegd heeft, zijn hieronder opgesomd. De volledige lijst eisen is opgenomen in de bijlage. • •
•
• • • •
Het bord moet passen in het Next Generation-systeem. Het bord moet een genlocksignaal kunnen verwerken, dat aan volgende normen voldoet. o HD-tri-level sync volgens SMPTE 240M, 274M en 296M o NTSC-blackburst volgens ITU-R BT.470-5 Het bord moet een LTC en VITC signaal kunnen verwerken, dat aan volgende normen voldoet. o SMPTE 12M-1999 o EBU LTC- en VITC-signalen Het bord moet ethernetpakketten aanmaken die de tijdsinformatie versturen over het netwerk. Het bord moet over twee DB9-connecoren beschikken, die RS232, RS485 en RS422 ondersteunen. Een PowerPC is belast met de verwerking van de signalen. Een FPGA doet dienst als interface naar de verschillende hardware componenten.
De eisen van het tweede bord waren: • De algemene zaken zijn hetzelfde. • Dit bord moest ook twee ethernetpoorten hebben.
Hoofdstuk 3 – Voorstudie
23
Jeroen Geldhof • Het bord moet 64 ingangen hebben en 32 uitgangen • Alle in- en uitgangen moeten optisch geïsoleerd worden. • De ingangen moeten configureerbaar zijn als normaal-open of normaal-gesloten.
3.2.
Opstellen van een blokschema van het hardware ontwerp
Bij het NG-systeem staan, zoals eerder vermeld, de actieve componenten en de aansluitcontacten gescheiden op 2 verschillende PCB’s (zie figuur 3.1). Onderaan is het passief connector bord te zien. Deze is via een verbindingscontact verbonden met het actieve bord, waarop alle componenten staan. Op het actieve bord zijn er componenten voor het ontvangen van de genlock- en timecodesignalen. Deze worden doorgestuurd naar een FPGA, die op zijn beurt een interface vormt voor de PowerPC. Vanuit de PowerPC worden doorheen de PHY’s UDP pakketjes op het netwerk geplaatst. [12] [13] Een PHY is de fysische laag uit het OSI-model (zie tabel 3.1). PHY is dan ook de afkorting van ‘physical’. Een PHY zorgt voor het omzetten van een digitaal signaal naar een gemoduleerd analoog signaal.
nummer laag 1 2 3 4
type laag
functie van de laag
fysische laag datalinklaag netwerklaag transportlaag
5 6 7
sessielaag presentatielaag toepassingslaag
spanning (volt) en stroomsterkte (ampère), timing, medium foutcorrectie, fysische adressering logische adressering verbindingsgerichte laag, deelt data uit de sessielaag op in segmenten, fout controle dialoog controle datastructuur abstraheren biedt diensten aan de eindgebruiker
Tabel 3.1 OSI-model
Verder staan er nog een heleboel rand-componenten op het bord. Dit zijn onder andere de voedingen en de geheugens voor FPGA en PPC. Eén van de eisen was ook om een blok te voorzien, dat de hardware controleert op fouten: dit is het shelf-management systeem. Op deze print is ook een nieuw controlesysteem voorzien, dat via JTAG de componenten afscant.
Hoofdstuk 3 – Voorstudie
24
Jeroen Geldhof
LED’s
PCI 32 / 33 MHz SDRAM
SDRAM FPGA
powerPC
flash
Multi-Format Video Sync Seperator
flash
Voedingen SMPTE time code receiver
SMPTE time code receiver Shelf management
RS232 – RS485/ RS422 buffers
Phy
Phy
Contacten Genlock (BNC)
LTC LTC (BNC) (3-pin)
VITC VITC serieel serieel (BNC) (BNC) (DB9) (DB9)
ethernet (2x RJ45)
Afbeelding 3.1 blokdiagram van de hardware
Hoofdstuk 3 – Voorstudie
25
Jeroen Geldhof
3.3.
Beschrijving van de opgezochte componenten
3.3.1. Keuze van de LTC- en VITC-ontvanger [14] In Barco werd reeds eerder een tijdscode ontvanger gebruikt. Deze component voldoet aan de opgestelde eisen. Het betreft de ICS2008B, die zowel LTC als VITC kan verwerken (zie figuur 3.2). Deze component bevat een register, dat vanuit de FPGA toegankelijk is. De registerbank van deze component bevat vier direct toegankelijke registers. Het eerste register is een interrupt-controle/status-register van deze chip. Het tweede register is een status register voor de tijdscode. De laatste twee registers dienen als interface tot een indirect register. Zo kan men in het derde register een adres meegeven van een indirect register en vervolgens de data uitlezen in het vierde register. De chip kan ingesteld worden om interrupts te genereren, indien er VITC of LTC code ontvangen werd.
Afbeelding 3.2 blokdiagram van de ICS2008B
3.3.2. Keuze van de genlock-ontvanger [15] Voor deze functie werd een LMH1981 gekozen. Deze component voldoet aan de normen en is één van de enige chips die de HD-tri-level eisen ondersteunt. Deze component neemt een genlock-signaal binnen, en scheidt de synchronisatiegegevens uit de video. Deze synchronisatiegegevens, zoals vertical-sync en horizontal-sync worden op aparte pinnen naar buiten gebracht. Ook het videoformaat wordt automatisch gedetecteerd, en kan serieel uitgelezen worden.
3.3.3. Keuze van de PHY’s [16] Voor de PHY’s is gekozen voor de 88E1111, gigabit-PHY’s. Deze component wordt reeds met succes gebruikt op een bord van één van de werknemers bij Barco Control Rooms. Deze PHY heeft een heel laag energieverbruik, en heeft ook hele kleine afmetingen. Deze component voert alle taken uit, die tot de physische laag horen. Dit gebeurt zowel voor halfen full-duplex 10BASE-T, 100BASE-T en 1000BASE-T Ethernet systemen.
Hoofdstuk 3 – Voorstudie
26
Jeroen Geldhof
3.3.4. Keuze van een FPGA [17] [18] Een Field Programmable Gate Array (FPGA) is opgebouwd uit verschillende logische blokken, met programmeerbare verbindingen (zie afbeelding 3.3). Men kan een FPGA dus vergelijken met een elektronisch testbord in chipformaat. De keuze van een FPGA is afhankelijk van enkele factoren, zoals het aantal logische elementen en het aantal general purpose input/outputs (GPIO).
Afbeelding 3.3 blokdiagram van een FPGA
Barco Control Rooms werkt al gedurende enige tijd met FPGA componenten van Altera, zodat ook nu voor een component van Altera gekozen is. In dit ontwerp moet de FPGA geen zwaar rekenwerk verrichten, zodat gekozen is voor een goedkopere Cyclone II. Voordat een FPGA wordt geselecteerd, wordt eerst de VHDL-code geschreven, zodat het aantal logische elementen kan worden geschat. Dit is niet gebeurd, zodat een component werd gekozen, die ruimschoots voldoet aan de verwachtingen. De gekozen FPGA is uiteindelijk een EP2C20F484C6N geworden, omdat deze over ruim voldoende IO’s en logische elementen beschikt. Tijdens productie kan eventueel een lichtere Cyclone II geplaatst worden, die volledig pincompatibel is.
Hoofdstuk 3 – Voorstudie
27
Jeroen Geldhof
3.3.5. Keuze van een PowerPC [19] Een PowerPC is een computer in chipformaat . Er werd geopteerd voor een chip die reeds eerder werd toegepast in Barco. Het betreft de MPC8349EA van Freescale. Deze chip beschikt onder andere over een processor, een Dual Universal Asynchronous Receiver/Transmitter (DUART), USB aansluitingen, een PCI bus, GPIO’s, twee I²C interfaces en een Three-Speed Ethernet-Controller (TSEC) (zie figuur 3.4 ).
Afbeelding 3.4 blokdiagram van de PowerPC
Een Universal Asynchronous Receiver/Transmitter (UART) is een individuele component, die gebruikt wordt voor seriële communicatie over een seriële aansluiting. De Universal Serial Bus (USB) aansluitingen worden in dit ontwerp niet gebruikt. De Peripheral Component Interconnect bus (PCI bus) wordt gebruikt voor de communicatie met de FPGA. De Inter-Integrated Circuit (I²C) wordt gebruikt om tal van randcomponenten aan te sturen. In dit ontwerp betreft het vooral EEPROM componenten, die informatie zoals MAC adressen bevatten. De General Purpose Input/Outputs (GPIO) worden in dit ontwerp gebruikt om de multiprotocol transceivers aan te sturen. De Three-Speed Ethernet Controller (TSEC) is een Ethernet controller die 10, 100 en 1000 Mbps ondersteunt. Deze controller omvat de physische laag en de data link laag van het OSImodel, uitgezonderd de PHY.
Hoofdstuk 3 – Voorstudie
28
Jeroen Geldhof
3.3.6. Keuze van de Boundary-scan [20] [21] Joint test action group (JTAG) is de naam voor een standaard, ontwikkeld door IEEE. Deze standaard heet “standard test access port and boundary-scan architecture”. Deze standaard beschrijft een mannier om PCB’s en chips te testen. JTAG wordt hedendaags het meest gebruikt voor boundary-scan (zie afbeelding 3.5 en 3.6). De TDI lijn van JTAG, is de ingang van een JTAG ketting. Langs de TDO lijn komen de testgegevens weer uit de ketting. De JTAG ketting is geklokt aan de TCK lijn, en met de TMS lijn kan je de test mode kiezen.
Afbeelding 3.5 boundary scan
Afbeelding 3.6 boundary scan
Ter ondersteuning van deze functie wordt gebruik gemaakt van Firecron-componenten, omdat deze de boundary-scan software van het bedrijf Asset [22] ondersteunen. Het is de eerste keer dat deze componenten op een bord van Barco komen te staan. [23] Eén van deze componenten, is een JTS02. Deze chip is in staat om, aan de hand van testvectoren, die in flash geheugen werden opgeslagen, een boundary-scan-test te doen. Dit resulteert dan in een pass of fail status. [24] De JTS06 is een ander Firecron-component, die wordt toegepast. Deze chip functioneert als multiplexer en kan tot zes JTAG-kettingen aansturen.
Hoofdstuk 3 – Voorstudie
29
Jeroen Geldhof
3.3.7. Keuze van de Shelf-Manager [25] Hiervoor wordt een Atmega128-microcontroller gebruikt. Deze chip zorgt onder andere voor de controle van het hot-swap gebeuren. Een hot-swap gebeurt als de print uit de kast gehaald wordt, terwijl de spanning nog niet afgelegd is. De detectie van de hotswap gebeurt door een schakelaar te controleren, die aan één van de klemmen van de frontplaat aangesloten is (zie afbeelding 3.7). Als de klemmen open gezet worden, om het bord te vervangen, gaat een blauwe LED knipperen. Op dat moment worden alle voedingen uitgeschakeld. Als alle voedingen uitgeschakeld zijn, zal de blauwe LED constant branden. Op dat moment is het veilig om het bord zonder stroomvonken uit de kast te trekken. De Atmega houdt de temperatuur rond het bord ook bij, en meet ook de belangrijkste voedingsspanningen.
Afbeelding 3.7 Klemmen waar de hotswapswitch op aangesloten is
De Atmega128 heeft ook een I2C bus, die via een connectie met de kast uit te lezen is. Via de I2C bus kan men dan de gemeten spanningen controleren, of de temperatuur uitlezen. Deze chip heeft intern 128 kB flashgeheugen, 4 kB EEPROM-geheugen en 4 kB SRAM. Deze chip is standaard voor de printen uit de NGS-reeks.
3.3.8. Keuze van de transceiver voor RS-232 en RS-422/485 [26] Als buffer voor de seriële communicatie is gekozen voor een LTC1334. Dit component is in staat om zowel RS-232 en RS-485/422 te ondersteunen. Via een selectiepin kan men kiezen tussen vier RS-232-transceivers of twee RS-485/422-transceivers.
Hoofdstuk 3 – Voorstudie
30
Jeroen Geldhof
3.3.9. Keuze van het contact voor balanced LTC De voorgestelde XLR connectie is niet mogelijk, daar deze te groot is voor het bordje (zie afbeelding 3.8). [27] In plaats is een Phoenix contact gebruikt met drie aansluitingen (zie afbeelding 3.9).
Afbeelding 3.8 XLR-contact
Afbeelding 3.9 Phoenix-contact met bijhorende plug
Hoofdstuk 3 – Voorstudie
31
Jeroen Geldhof
3.3.10.
Keuze van de LED’s
Als LED’s worden [28] Sideled’s van OSRAM gebruikt. Deze LED’s worden bij alle NGSborden gebruikt (zie afbeelding 3.10). Deze LED’s hebben de eigenschap dat ze opzij schijnen. Er was geëist dat er driekleuren-LED’s gebruikt zouden worden. Dit was niet mogelijk met de Sideled. Er is namelijk geen versie die drie kleuren ondersteunt. Tweekleuren-LED’s bestaan wel, maar enkel rood-groen en rood-geel zijn te verkrijgen. Als oplossing voor dit probleem wordt de derde toestand door een knipperende LED weergegeven.
Afbeelding 3.10 Sideled
3.4.
Het berekenen van het energieverbruik
Om een schatting te maken van het energieverbruik, wordt per component het maximale stroomverbruik in de datasheets opgezocht. Dit wordt dan omgerekend in vermogen, en opgeteld. In normale omstandigheden zal het maximale vermogen nooit voorkomen. Daarom vermenigvuldigen we het maximale vermogen met zeventig procent, om aan een geschat werkingsvermogen te komen. Volgens de schattingen, die als bijlage werden toegevoegd, zou dit bord ongeveer 15 W verbruiken. Dit klopt ongeveer met de werkelijkheid.
3.5.
Het berekenen van de prijs
Bij de prijsberekening speelt niet enkel de inkoopprijs een rol, ook de werkuren en energieverbruik hebben een invloed op de eindprijs. Het energieverbruik, om het stuk aan te maken, is bij deze berekening niet opgenomen, omdat dit moeilijk te bepalen is. De berekende prijzen zijn wegens concurrentieredenen echter niet opgenomen in dit eindwerk. Voor het actieve bord zijn zowel de aankoopprijs van de componenten, als een geschatte prijs voor het PCB en de arbeid samengeteld. Van de totale prijs van dit bord kan men een stuk wegwerken door de configuratiechip voor de FPGA niet te voorzien. Het passieve verbindingsbord kost een heel stuk minder. Het is een veel kleiner bord met minder componenten.
Hoofdstuk 3 – Voorstudie
32
Jeroen Geldhof
Hoofdstuk 4 Hardware ontwerp
Het ontwerpen van de hardware is gebeurd in een Mentor Graphics omgeving. Er is gedurende vijf à zes weken gewerkt aan het hardware ontwerp. In de eerste weken is er ook nog verder gewerkt aan de prestudie.
4.1.
PowerPC, PHY’s en geheugens
4.1.1. Voedingen van de PowerPC [19] De PowerPC heeft enkele voedingen nodig om te kunnen opereren. De interne werkingsspanning is 1,2 V. De DDR-geheugens, alsook de PHY’s, worden gevoed met een spanning van 2,5 V. De IO’s gebruiken een spanning van 3,3 V.
4.1.2. PCI-bus De PCI-bus is gesynchroniseerd op een klok van 33 MHz. De baantjes van een PCI-bus moeten echter steeds dezelfde lengte hebben, zodat er geen onderlinge vertragingen kunnen optreden. Dit was een belangrijke opmerking die aan de PCB-ontwerper doorgegeven moest worden.
Afbeelding 4.1 PCI-bus
Hoofdstuk 4 – Hardware ontwerp
33
Jeroen Geldhof
4.1.3. TSEC en PHY’s De PowerPC beschikt over twee bussen, die Gigabit-Ethernet ondersteunen. Deze twee bussen zijn verbonden met de PHY’s. De twee PHY’s hebben pinnen, die de toestand van de netwerkactiviteit aanduiden. Deze dienen normaal om LED’s aan te sturen, maar in dit ontwerp worden deze pinnen met de FPGA verbonden. Deze kan dan op zijn beurt de LED’s aansturen. Tussen de twee RJ45-contacten en de PHY’s staan er ook nog ontkoppelspoelen (zie figuur 4.2). Deze ontkoppelspoelen zijn van het merk Pulse.
Afbeelding 4.2 Opstelling van de Ethernet-componenten
4.1.4. DRAM en flash [19] [29] De PowerPC bezit een locale bus waarop een flashgeheugen aangesloten is van 128 MB groot, meer specifiek een S29GL128N10FFI010. Tussen de PowerPC en het flashgeheugen worden D-latches geplaatst. Deze worden bij het lezen of schrijven gebruikt om op het gepaste moment adressen naar het flashgeheugen te sturen. [19] [30] De PowerPC heeft ook een bus, waarop DRAM geheugen aangesloten kan worden. Aan deze bus is een Small Outline Dual In-line Memory Module (SO-DIMM) connector aangesloten, waarin een 256 MB SO-DIMM kaartje zit (zie afbeelding 4.3). Ook hier is de opmerking gegeven aan de persoon die het PCB moest ontwerpen, dat de baantjes naar de SO-DIMM connector een gelijke lengte moesten hebben. De baantjes aan de connector moesten met een correcte weerstand afgesloten worden, om reflectie te voorkomen.
Afbeelding 4.3 SO-DIMM module
Hoofdstuk 4 – Hardware ontwerp
34
Jeroen Geldhof
4.2.
VITC- en LTC-ontvanger
De ICS2008B’s worden gevoed met 5 V. Een kristal, dat op 14 MHz oscilleert, zorgt voor het genereren van de klok. In het ontwerp is rekening gehouden met zowel een analoog gedeelte, als een digitaal stuk. Er werd dan ook geopteerd voor 2 verschillende voedingen en massavlakken. Elk van de ICS2008B’s neemt een VITC-bron binnen. De ene chip neemt ook gebalanceerde LTC erbij, en de andere ongebalanceerde LTC. Alle video-ingangen worden met behulp van klampdiodes beschermd (zie afbeelding 4.4). De databussen van de ICS2008B’s zijn verbonden met de FPGA. De ICS2008B beschikt ook over een UART, maar deze is uitgeschakeld in dit ontwerp.
Afbeelding 4.4 Klamp-diodes
4.3.
Genlock-ontvanger
[15] De LMH1981 wordt gevoed met een 5 V voeding. Een klok is niet nodig, daar het IC zelf een klok afleidt uit het videosignaal. De uitgangen worden opgesomd in tabel 4.1. Een nadeel is dat bij deze chip de uitgangsspanningen niet de correcte amplitude hebben. Een oplossing voor dit probleem is gevonden onder de vorm van een [31] 74LVCC3245A. Dit is een transceiver, die twee voedingen heeft. Deze buffer past de amplitude van het signaal aan, volgens de spanning waarmee hij gevoed wordt. HSOUT VSOUT VFOUT CSOUT BPOUT OEOUT
horizontale synchronisatie uitgang verticale synchronisatie uitgang video formaat uitgang composiet synchronisatie uitgang burst/back porch tijd uitgang oneven/even veld uitgang
Tabel 4.1 Uitgangspinnen van de LMH1981
Hoofdstuk 4 – Hardware ontwerp
35
Jeroen Geldhof
De horizontale synchronisatie-uitgang biedt een constante synchronisatiestream. Deze loopt synchroon met de horizontale synchronisatie, die in het videosignaal aanwezig is. De verticale synchronisatie-uitgang doet hetzelfde, maar dan met de verticale synchronisatie; die in het videosignaal voorhanden is. De burst/back porch tijd uitgang biedt een synchronisatiestream. Deze is synchroon met het color burst signaal, dat in het videosignaal beschikbaar is. De composiet synchronisatie uitgang omvat alle synchronisatiesignalen, die in de video aanwezig zijn, maar zonder de overtollige kleurinformatie. De even/oneven uitgang duidt aan in welk veld de video informatie vervat zit. Dit kan ofwel een even veld zijn of en oneven veld. Uit de video formaat uitgang kan het video formaat serieel uitgelezen worden.
Afbeelding 4.5 Video-ingang en enkele uitgangen van de LMH1981
4.4.
Seriële communicatie
De seriële connectie kan zowel door de FPGA, of door de PowerPC verzorgd worden. Er was geen tijd om te testen of de pinnen van de UART hoog of laag geënabled moesten zijn, om aan de transceiver aan te sluiten. Daarom is er een mogelijkheid voorzien om de signalen te inverteren [32]. Deze chip werkte op CMOS-niveau. Deze zijn weggewerkt door een [31] transceiver met regelbare uitgangsspanning te gebruiken (zie afbeelding 4.6).
Hoofdstuk 4 – Hardware ontwerp
36
Jeroen Geldhof
Afbeelding 4.6 Blokdiagram van de seriële schakeling
4.5.
FPGA en geheugens
De FPGA vormt de sluitsteen tussen de componenten in de schakeling. Op deze component zijn de verschillende tijdscode componenten aangesloten. Ook worden de LED’s aangestuurd door de FPGA. Bij een FPGA is het handig als elke component op één bank aangesloten is. Op de FPGA zijn 4 klokken voorzien. Een 33 MHz klok voor de PCI bus, een klok die van de MAX II afkomstig is, een klok die afkomstig is van een PLL in de PowerPC, en een eigen 48 MHz klok. Door het voorzien van een [33] flash geheugen en [34] SDRAM, is een mogelijkheid voorzien om een NIOS processor te implementeren. Een NIOS processor is een 32-bit softcore-processor, die in de FPGA aangemaakt kan worden. Deze processor kan C en C++ code uitvoeren. Een nadeel is dat de processor intellectueel eigendom is van Altera, en er dus betaald moet worden voor het gebruik ervan.
4.6.
FPGA configuratie-component
Om gemakkelijk te testen wordt er een [35] EPC8-component gebruikt. Deze component beschikt over interne flash, die geprogrammeerd kan worden via JTAG. Bij het opstarten van het bord wordt de kopie, die in flash wordt bewaard, in de FPGA geladen. De EPC is relatief duur, waardoor men in Barco een MAX II en het flash geheugen van de FPGA gebruikt. Een MAX II is een Complex Programmable Logic Device (CPLD). [36] Dit is een component die eigenschappen heeft, die zowel bij een FPGA als bij een Programable Array Logic (PAL) horen. Een CPLD heeft net als een PAL geen externe configuratie component nodig. Een CPLD heeft echter net als een FPGA een groot aantal logische poorten. Voor deze MAX II is VHDL code geschreven, die dezelfde functionaliteit heeft als de EPC8. Bij het in productie nemen, kan de EPC8 dan weggelaten worden uit de stuklijst.
Hoofdstuk 4 – Hardware ontwerp
37
Jeroen Geldhof
JTAG 0 Ohm selectieweerstanden
EPC8
FPGA
MAX II
Flash geheugen
Afbeelding 4.7 Blokdiagram van de configuratieschakeling voor de FPGA.
4.7.
I²C-componenten
De I²C-componenten zijn aangesloten op de twee bussen van de PowerPC. Eén van de I²C componenten is een [37] 32-bit teller, die de tijd in seconden telt. In de PowerPC kan de tijd dan ingesteld en opgevraagd worden. [38] Een andere I²C-component, die wordt gebruikt, is een EEPROM geheugen met een geheugencapaciteit van 128 MB. [39] Er is ook een 8-bit IO-poort, die via I²C uitgelezen, of aangestuurd kan worden. Deze dient om een hardwarematig aangemaakt bordnummer uit te lezen.
4.8.
Shelf-management
Aan de analoog-digitaal-converters zijn de belangrijkste voedingen aangesloten. Deze worden intern gecontroleerd op de juiste spanning. De schakelaar, die een hot-swap detecteert, is aan één van de ingangen aangesloten. De twee UART’s van de ATMEGA128 zijn aan de FPGA aangesloten. De I²C-bus is verbonden met de kastconnectie. Twee IO’s fungeren als extra I²C-bus. Op deze bus is een temperatuurssensor aangesloten. Vijf pinnen doen dienst als adreslijnen, die met de kastconnectie verbonden zijn.
Hoofdstuk 4 – Hardware ontwerp
38
Jeroen Geldhof
4.9.
Voedingen
[40] De spanningen worden aangemaakt met Switch-Mode Power Supplies (SMPS). Deze voedingen zijn op te delen in enkele blokken (zie afbeelding 4.8). Op dit bord worden hoofdzakelijk LTC1735-chips [41] gebruikt voor deze toepassing. Deze chip is de choppercontroller uit afbeelding 4.8.
Input
Input filter
Chopper
Output filter
Output
Chopper controller
Afbeelding 4.8 Blokdiagram van een switch-mode power supply
De ingangsspanning is twaalf volt. Deze wordt gefilterd, en aangeboden aan het chopperblok. Dit blok verandert de DC ingangsspanning in een AC spanning, door gebruik te maken van een oscillator, met variabele pulsbreedte. De frequentie ligt meestal boven 20 kHz. Het schakelen is uitgevoerd met een mosfet-versterker, bestaande uit meerdere trappen. Mosfets zijn transistoren, die hoge stromen ondersteunen. De chopper wordt aangestuurd door een choppercontroller. Deze voert een soort pulsbreedtemodulatie uit, die afhankelijk is van de teruggekoppelde spanning die uit de voeding komt. Door de pulsbreedte te wijzigen kan de gemiddelde spanning ingesteld worden. Na de chopper wordt de wisselspanning gelijkgericht met een Schottkydiode, en afgevlakt tot een gelijkspanning bekomen wordt. De terugkoppeling gebeurt door een vast ingestelde spanningsdeling van de afgevlakte gelijkspanning. Deze moet gelijk zijn aan 0,8 V.
Afbeelding 4.9 Pulsbreedte-modulatie links, lage eindspanning ; rechts, hoge eindspanning
Hoofdstuk 4 – Hardware ontwerp
39
Jeroen Geldhof
4.10. JTAG-ketting Er zijn twee mogelijkheden voorzien om de JTAG-kettingen aan te spreken, en om een boundary-scan uit te voeren. De eerste uitvoering is de gewone benadering, die met één connector per ketting werkt. In tabel 4.2 is de verdeling van de JTAG-kettingen te zien. Deze benadering zal voorlopig gebruikt worden, tot de andere uitvoering volledig uitgetest is.
JTAG-ketting 1 2 3 4 5
componenten PowerPC FPGA en EPC8 MAX-II PHY1 en PHY2 ATMEGA128
Tabel 4.2 JTAG-kettingen
De andere uitvoering is deze met de Firecron-componenten. Hierbij wordt een primaire JTAG-ketting opgesplitst in zes kettingen. Deze kettingen bestaan uit dezelfde componenten als in tabel 4.2, met uitzondering van ketting zes. Deze ketting gaat naar de JTS02component. Deze component kan autonoom een boundary-scan uitvoeren, en een pass- of fail-status weergeven. Daartoe heeft dit component een aansluiting aan de primaire JTAG-ketting. De testvectoren kunnen via de JTS06- en JTS02-componenten in het flash-geheugen opgeslagen worden.
Afbeelding 4.10 Blokdiagram van de JTAG-componenten
Hoofdstuk 4 – Hardware ontwerp
40
Jeroen Geldhof
Hoofdstuk 5 VHDL-code
[42] VHDL-code is code, die het gedrag van digitale, elektronische hardware beschrijft. De invoer van het ontwerp is bijvoorbeeld mogelijk via een elektronisch schema. Bij compilatie van deze code wordt een plan aangemaakt, dat beschrijft welke connecties in de FPGA gesloten moeten worden. Op die manier is het mogelijk om elektronische schakelingen te maken op chipformaat. Een diagram van de ontworpen code is te zien in afbeelding 5.1. In dit hoofdstuk worden alle blokken uit dit diagram verder toegelicht. [43] De VHDL-code is geschreven in een ‘Quartus II’ -omgeving van Altera. Deze omgeving heeft enkele handige eigenschappen.
Afbeelding 5.1 Schema van de hoofdblokken in de FPGA
5.1.
Voordelen van de Quartus II - omgeving
[44] SignalTap II Logic Analyser is een applicatie in Quartus, waarmee interne signalen van de FPGA gevisualiseerd worden. De signalen die men wenst te visualiseren, worden uit een lijst geselecteerd. Er dient ook een klok gedefinieerd te worden, waarop SignalTap samples neemt van de signalen. Bij compilatie van het project wordt extra logica aangemaakt. Deze logica stuurt de waarden van de gesamplede signalen via een JTAG-aansluiting naar de computer.
Hoofdstuk 5 – VHDL-code
41
Jeroen Geldhof
Deze applicatie is handig, omdat men meestal niet op de pinnen van de FPGA kan meten, omdat deze onderaan zitten. Er zijn meestal ook geen meetpinnen aangesloten, zodat men op geen enkele andere manier kan onderzoeken wat er intern gebeurt. Quartus II maakt het ook mogelijk om een blokfiguur te maken van een VHDL-file. Die figuur beschikt dan, zoals bij figuren van IC’s, over inputs en outputs (zie afbeelding 5.2). Deze blokken kunnen dan aan elkaar gesloten worden in een toplevel-schema. Het is ook mogelijk om verschillende blokken te bundelen in een ander blok. phy Led
PIN_AA3 PIN_AA4 PIN_Y14 PIN_AA20 PIN_W15 PIN_T12 PIN_U14 PIN_R12 PIN_W14
INPUT VCC INPUT VCC INPUT VCC INPUT VCC INPUT VCC INPUT VCC INPUT VCC INPUT VCC INPUT VCC
i_phy 1LedTx i_phy 1LedRx i_phy 1ToFpgaConf 1 i_phy 1ToFpgaConf 2 i_phy 1ToFpgaComa i_phy 1LedLink1000 i_phy 1LedLink100 i_phy 1LedLink10 i_phy 1LedDuplex maxClk
i_phy LedTx
o_phy Led1
i_phy LedRx
o_phy Led2
OUTPUT
o_phy 1led1
OUTPUT
o_phy 1led2
i_phy ToFpgaConf 1
o_activ ity
activ ity Phy 1
i_phy ToFpgaConf 2
o_link1000
link1000Phy 1
PIN_R16 PIN_T15
i_phy ToFgpaComa i_phy LedLink1000 i_phy LedLink100 i_phy LedLink10 i_phy LedDuplex i_Phy Clk
inst8
Afbeelding 5.2 VHDL-entiteit die door een blokfiguur voorgesteld wordt
5.2.
De PCI-core
5.2.1. Instellingen van de PCI-core [45] Quartus II heeft enkele wizards waarmee de intellectuele eigendommen van Altera ingesteld kunnen worden. Eén van die componenten is een PCI-core. Alle instellingen die met die PCI-core verbonden kunnen worden, worden via een wizard ingesteld. Daarna wordt de correcte VHDL-code automatisch gegenereerd. De PCI-core is een interface tussen een PCI-bus en lokale logica. De core laat toe om configuratie-, I/0- en memory-transacties uit te voeren. De klokfrequentie, die de PCI-bus gebruikt, is in te stellen als 33 MHz of 66 MHz. De busbreedte is ook in te stellen op 32-bit of 64-bit. Voor deze toepassing worden enkel memory-transacties uitgevoerd, op een 32-bit brede bus en een busfrequentie van 33 MHz. De PCI-core kan men ook instellen om master-target-functionaliteit te hebben, of enkel target-functionaliteit. In deze toepassing is enkel de target-functionaliteit nodig. Verder moeten enkele ID’s ingevuld worden. Alles is standaard ingesteld, met uitzondering van het device-ID. Deze is ingesteld op 0x0008. Een volgende stap is het instellen van de Base-Address-Registers (BAR). Er zijn maximaal zes BARs mogelijk, waarvan maar één wordt gebruikt wordt in deze toepassing. Deze BARs zijn in grootte aan te passen. Voor dit eindwerk was het echter niet nodig een grote BAR te hebben Hoofdstuk 5 – VHDL-code
42
Jeroen Geldhof
Als laatste kan men nog kiezen om een interruptpin te gebruiken. Deze pin wordt in dit eindwerk gebruikt om interrupts, die de ICS2008B’s genereren, door te geven aan de PowerPC.
Afbeelding 5.3 Instelling van de PCI-functionaliteit
5.2.2. Functioneel blokschema en werking van het PCI-targetdevice [45] Dit blokschema wordt gebruikt om de werking uit te leggen van de PCI-core.
Afbeelding 5.4 Functioneel blokschema van een 32-bit targetdevice
Hoofdstuk 5 – VHDL-code
43
Jeroen Geldhof In afbeelding 5.4 staan links de signalen die naar de PCI-bus gaan. Aan de rechterkant zijn de signalen te zien die naar de lokale component gaan. Deze lokale component is de interface tussen de PCI-core en de andere componenten die aan de FPGA geconecteerd zijn. 5.2.2.1.
Werking van een single-cycle memory-target-read
[45] In afbeelding 5.5 staat een overzicht van de signalen bij een 64-bit memory-read transactie. De signalen met een ‘(1)’ vooraan zijn niet van toepassing bij een 32-bit memoryread transactie.
Afbeelding 5.5 Signalen bij een single-cycle memory-read transactie
Hoofdstuk 5 – VHDL-code
44
Jeroen Geldhof
kloknr. 1 2 3
4
5
6
7
8
9
beschrijving wat er gebeurt De PCI-bus wordt nog niet gebruikt. Het adres en het commando worden toegekend aan de PCI-core. Tijdens deze klok wordt framen door de master op één gezet, en irdyn wordt op nul gezet. Dit duidt aan dat de PCI-core het adres en het commando mag binnennemen. Het adres wordt gedecodeerd, om te kijken of dit in het bereik van een BAR valt. Als de PCI-core een correct adres ziet tijdens klokperiode 3, gebeuren enkele zaken tijdens klokperiode 4. • De PCI-core informeert de lokale component dat het de read-transactie zal uitvoeren. Dit gebeurt door lt_framen nul te maken, en één van de eerste zes bit van lt_tsr actief te maken. Deze bit stelt het BAR-nummer voor, waar het adres in voorkomt. • Het transactiecommando wordt door de PCI-core op l_cmdo[3..0] geplaatst, en het adres op l_adro[31..0]. • Lt_tsr[9] wordt aangezet om aan te duiden dat de PCI-zijde van de PCIcore actief is. • De PCI-core zet devseln op nul, om de transactie te verkrijgen. • Lt_ackn wordt naar nul getrokken, om aan te duiden dat de core klaar is om data te ontvangen van de lokale component op de l_adibus. • De lokale component zet lt_rdyn op nul, om aan te duiden dat de PCI-core moet wachten op de data. • De data komt in klok zes op de l_adi-bus. • Op de stijgende klokflank van klokperiode zeven wordt deze data in de PCI-core binnengehaald. • De dataoverdracht aan de lokale zijde wordt aangeduid door een geactiveerd lt_dxfrn-signaal. • De datatransfer gebeurt enkel als lt_ackn actief is tijdens de stijgende klokflank, en lt_rdyn geactiveerd werd. • Op de stijgende klokflank deze klok wordt de data op l_adi doorgestuurd naar de adresbus aan de PCI-bus-kant. • Op dit moment wordt trdyn ook actief gemaakt om aan te duiden dat er data op de PCI-bus staat. • De PCI-core eindigt de transactie door trdyn en devseln op één te zetten. • Daarnaast wordt de adresbus hoog-impedant geplaatst. • De stijgende klok van klok 8 duidt het einde aan van de data-fase, omdat framen uit geschakeld is, en irdyn en trdyn geactiveerd zijn. • De PCI-core informeert ook de lokale logica dat er geen verdere data verwacht wordt. Dit wordt gedaan door lt_framen uit te schakelen, en de bit lt_tsr[10] te activeren. Deze laatste duidt aan dat de transfer geslaagd is. • De PCI-core informeert de lokale component dat de transactie ten einde is. Dit gebeurt door lt_tsr[11..0] uit te schakelen. • Daarnaast worden devseln, trdyn en stopn hoog-impedant gemaakt.
Tabel 5.1 Tabel met uitleg over de single-cyle memory-read transactie
Hoofdstuk 5 – VHDL-code
45
Jeroen Geldhof
5.2.2.2.
Werking van een single-cycle memory-target-write
[45] In afbeelding 5.6 wordt een overzicht weergegeven van de signalen bij een 64-bit memory-write transactie. De signalen met een ‘(1)’ vooraan zijn niet van toepassing bij een 32-bit memory-write transactie.
Afbeelding 5.6 Signalen bij een single-cycle memory-write transactie
Hoofdstuk 5 – VHDL-code
46
Jeroen Geldhof
kloknr. 1 2 3
4
5
6 7
8
9
beschrijving wat er gebeurt De PCI-bus wordt nog niet gebruikt. Het adres en het commando worden toegekend aan de PCI-core. Tijdens deze klokperiode wordt framen door de master op één gezet, en irdyn wordt op nul geplaatst. Dit duidt aan dat de PCI-core het adres en het writecommando mag binnen nemen. Het adres wordt gedecodeerd, om te kijken of dit in de range van een BAR valt. Als de PCI-core een correct adres ziet tijdens klok 3, gebeuren enkele zaken tijdens klokperiode 4. • De PCI-core informeert de lokale component dat het de write-transactie zal uitvoeren. Dit gebeurt door lt_framen nul te maken, en één van de zes bit van lt_tsr actief te maken. De bit van lt_tsr stelt het BAR-nummer voor, waarin het adres voorkomt. • Het transactiecommando wordt door de PCI-core op l_cmdo[3..0] geplaatst, en het adres op l_adro[31..0]. • Lt_tsr[9] wordt aangezet om aan te duiden dat de PCI-zijde van de PCIcore actief is. • De PCI-core zet devseln op nul, om de transactie te verkrijgen. • De lokale component zet lt_rdyn op nul, om aan te duiden dat de PCI-core data mag verzenden • Omdat lt_rdyn op nul geplaatst is in klokperiode 5, wordt de PCI-master geïnformeerd dat alles klaar is om data te ontvangen. • Op de stijgende klokflank van klok 7 wordt de data geregistreerd op de ad-bus, en wordt deze doorgestuurd naar de l_dato-bus. • Op dat moment zet de PCI-core lt_ackn op nul, om aan te duiden dat er data op de l_dato-bus staat. • Lt_dxfrn wordt op nul geplaatst, om de lokale transfer aan te duiden. • Lt_tsr[10] wordt geactiveerd om aan te geven aan de lokale component, dat er in de vorige klokperiode een succesvolle datatransfer plaats gevonden heeft. • Trdyn en devseln worden uitgeschakeld, om de transactie te beëindigen • De bits lt_tsr[11..0] worden gereset. • Daarnaast worden de controlelijnen van de PCI-core hoog-impedant geplaatst. • De PCI-core informeert de lokale component dat de transactie ten einde is, door lt_framen uit te zetten.
Tabel 5.2 Tabel met uitleg over de single-cyle memory-write transactie
Hoofdstuk 5 – VHDL-code
47
Jeroen Geldhof
5.3.
Lokaal component
Uit de documentatie van de PCI-core is een lokale component geconstrueerd. Deze lokale component beschikt over een read-register, en een write-register. Daarnaast is er ook logica om de commando’s van de PCI-core uit te voeren, en logica om de chips aan te sturen.
5.3.1. State-machine Een eerste stuk in deze code is een state-machine. Deze state-machine heeft drie toestanden (zie afbeelding 5.7). Bij de idle-state, is er geen transactie op de PCI-lijn. Bij de write-state wordt er geschreven naar het write-register. En bij de read-state wordt er gelezen van het read-register.
Afbeelding 5.7 state-machine van het lokale component
5.3.2. Logica om lt_rdyn aan te sturen Als lt_rdyn nul is bij het lezen, wil dit zeggen dat de lokale component bezig is met het verwerken van de data. Hierbij moet de PCI-core wachten. Eén klokperiode nadat lt_rdyn terug hoog geworden is, wordt de data uitgelezen. Het lezen van de registers waar de tijdsinformatie van de ICS2008B in staat, duurt langer dan een gewone leesactie. Dit komt omdat de data eerst uit de chip gelezen moet worden, vóór deze op de databus geplaatst kan worden. Dit wil zeggen dat lt_rdyn in dit geval langer nul moet blijven. Als de status van de state-machine idle, of lt_framen één is, dan blijft lt_rdyn één. Vanaf het moment dat er uit de idle-state gestapt wordt, gaat er een teller lopen. Indien deze teller vol raakt, wil dit zeggen dat er iets mis is en dat de actie afgebroken moet worden door lt_rdyn één te maken.
Hoofdstuk 5 – VHDL-code
48
Jeroen Geldhof Bij een gewone leesopdracht moet één klokcyclus gewacht worden, voor lt_rdyn terug hoog wordt. Bij het lezen van de registers met de tijdscode moet langer gewacht worden. Dit wordt gedaan door het adres te controleren. Indien het adres één van twee speciale adressen is wordt lt_rdyn terug hoog; als de vijfde bit in de teller één wordt. In alle andere gevallen wordt lt_rdyn ‘één’ als de eerste bit van de teller één geworden is.
5.3.3. Write-proces Indien de state-machine zich in de write-status bevindt, wordt er gecontroleerd als lt_dxfrn en lt_ackn nul zijn. Indien dit het geval is, mag de data van de l_dato-bus in het register geplaatst worden. Een overzicht van dit register is te zien in tabel 5.3. Het testregister is een register waarin testdata geschreven kan worden, om daarna terug uitgelezen te worden. De bedoeling van het software-enable register is om de toestand van de LED’s softwarematig in te kunnen stellen. Bij elke LED kan de groene kleur ingesteld worden. Bij de tweekleuren-LED’s kan ook de rode kleur worden geselecteerd. Om data naar een ICS2008-chip te sturen, moet eerst het adres van het register van de ICS2008 ingesteld worden. Daarna kan data naar de ICS2008 gestuurd worden door de data in het desbetreffende data-write-register te plaatsen. Bij het schrijven naar het data-write-register wordt een vlag geset, en de data in een tijdelijke geheugenplaats gehouden. Doordat de vlag geset is gaat er, als de status van de state-machine op idle komt te staan, een teller lopen. Deze stuurt het mechanisme aan om de data uit het tijdelijke register naar de ICS2008 te sturen. De ICS2008’s kunnen ook gereset worden, door de eerste bit van het reset-register hoog te zetten.
adres functie X”7F” testregister X”80” software-enable register voor de LED’s (hardware-enabled indien 0, software-enabled indien 1) X”81” LED-register voor de groene kleur. X”82” LED-register voor de rode kleur. X”83” data-write-register voor de eerste ICS2008-chip X”84” adres-register voor de eerste ICS2008-chip X”85” reset-register voor de eerste ICS2008-chip X”86” data-write-register voor de tweede ICS2008-chip X”87” adres-register voor de tweede ICS2008-chip X”88” reset-register voor de tweede ICS2008-chip Tabel 5.3 Write-registers
Hoofdstuk 5 – VHDL-code
49
Jeroen Geldhof
5.3.4. Read-proces Indien de state-machine zich in de read-status bevindt, wordt er gecontroleerd of lt_dxfrn één, en lt_ackn nul zijn. Indien dit het geval is, mag de data uit het register op de l_adi-bus geplaatst worden. Een overzicht van dit register is te zien in tabel 5.4. De eerste registers zijn gereserveerde adressen. Deze zijn nodig om informatie over de FPGA, en de versie van de VHDL-code op te halen. Adres 7F is het testregister. Indien een interrupt ontvangen wordt van één van de ICS2008-chips, wordt dit doorgegeven via de PCIinterruptlijn. Ook wordt in het interruptregister bijgehouden over welke chip het gaat. Na het uitlezen van dit register door de PowerPC, wordt dit register gereset. Bij het lezen van een data-read-register start een teller, die het mechanisme aanstuurt om de data uit de bijhorende ICS2008-chip haalt. Er is een testproces aangemaakt die de toestand van de LMH1981 bijhoudt. De waardes van de lijnen die van de LMH1981 afkomstig zijn kunnen uitgelezen worden via register 89.
adres X”00” X”01” X”02” X”03” X”04” X”7F” X”81” X”83” X”86” X”89”
functie vaste waarde die de PowerPC nodig heeft om de BAR te detecteren FPGA-ID Herziening datum van herziening vingerafdruk van deze BAR testregister interuptregister van de ICS2008-chips data-read-register van de eerste ICS2008-chip data-read-register van de tweede ICS2008-chip tijdelijk register om de LMH1981 uit te testen.
Tabel 5.4 Read-registers
5.3.5. Aansturing van de LED’s Bij het aansturen van de tweekleuren-LED’s wordt er eerst gecontroleerd op het actief zijn van de software-enable bit. Als dit het geval is, en de groene kleur is ingeschakeld, dan wordt een groene kleur getoond. Als de rode kleur ingeschakeld is, dan wordt de rode kleur getoond. Bij de enkelkleurige LED’s kan enkel de groene kleur getoond worden. Bij sommige LED’s kan de hardware overnemen, als de software-enable bit uitgeschakeld wordt. Dit is het geval bij de LED’s die de toestand van het netwerk tonen. Deze kunnen mee knipperen met de netwerkactiviteit.
Hoofdstuk 5 – VHDL-code
50
Jeroen Geldhof
5.4.
Rest van de logica
Wegens tijdgebrek is de verdere logica niet uitgewerkt. Het betreft in bijzonder het implementeren van een Nios-processor, om het RAM- en flash-geheugen uit te testen. Alle pinnen, waarvoor nog geen VHDL-logica geschreven is, zijn hoogimpedant gemaakt, met een zwakke pull-up.
Hoofdstuk 5 – VHDL-code
51
Jeroen Geldhof
Hoofdstuk 6 Testresultaten en Aanpassingen
Voordat het bord binnengekomen was, werd een testplan opgesteld. Dit testplan bevat alle testen die uitgevoerd moeten worden, om de hardware goed te keuren. In dit testplan worden ook alle benodigdheden opgesomd.
6.1.
Testplan
6.1.1. Opzet van de tests 6.1.1.1.
Hardware
De hardware, die getest werd, was het synchronisatiebord, bestaande uit de actieve en de passieve PCB. 6.1.1.2.
Software
Er was software nodig om de PowerPC serieel aan te spreken, zoals Hyperterminal. Er moest een webbrowser op de PowerPC geïnstalleerd worden, om het bord te kunnen instellen. Dit behoorde echter niet tot de doelstellingen van de thesis. De drivers om de seriële poorten van het bord aan te kunnen spreken via Ethernet moesten ook getest worden. Het schrijven van deze drivers behoorde echter evenmin tot de doelstellingen van dit eindwerk. 6.1.1.3.
Opstelling
Deze opstelling is het einddoel van de thesis. Als deze opstelling werkt, lukt het binnennemen van de tijdscode en het versturen van de UDP-pakketjes. Blackburst, VITC- en LTC-bronnen
Displayunit
Broadcast NG Kast met: • actief synchro-bord • passief synchro-bord • Pc
1G LAN /router
Afbeelding 6.1 Opstelling van de eindtest
Hoofdstuk 6 – Testresultaten en Aanpassingen
52
Jeroen Geldhof
6.1.1.4.
Testmateriaal
•
Ten eerste is er een Broadcast NG-kast nodig met een synchro-bord. Voor de eerste tests is een kast echter niet nodig, daar het bord ook rechtstreeks gevoed kan worden.
•
Verder is er een genlock-generator nodig, die volgende signalen kan genereren: - HD-tri-level sync voor SMPTE-240M en SMPTE-296 signalen - NTSC-blackburst voor SMPTE 170M signalen - PAL-blackburst voor ITU-R BT.470-5 signalen
•
Er is ook een LTC-generator nodig, die volgende signalen kan genereren: - SMPTE 12M-1999 signalen - EBU-LTC signalen
•
Naast een LTC-generator, is er ook een VITC-generator nodig, die volgende signalen kan genereren: - SMPTE 12M-1999 signalen - EBU analoge VITC-signalen
•
Om de seriële communicatie te testen zijn er RS232-, RS485- en RS422-apparaten nodig. Enkele voorbeelden van dergelijke toestellen zijn under-monitor displays (UMD), en USB-naar-RS485/RS422/RS232-omzetters.
•
Een LAN-netwerk met switch of router is nodig om de netwerkcommunicatie te testen.
•
Om voedingen op te meten is een multimeter nodig. Om signalen te bekijken is een oscilloscoop nodig.
•
Er is ook een oven nodig om warmtetests uit te voeren.
•
Er is een Byteblaster-II nodig. Dit is een toestel die via een parallelle poort van een computer, VHDL-code naar de JTAG-poort van de FPGA kan sturen. Er is ook een RS232-interface bordje nodig, om een verbinding te maken tussen de computer en de PowerPC.
6.1.2. Testen 6.1.2.1.
Voedingen en stroomverbruik
De regulatoren moeten één voor één getest worden, en het stroomverbruik moet opgemeten worden.
Hoofdstuk 6 – Testresultaten en Aanpassingen
53
Jeroen Geldhof
6.1.2.2.
Configuratie van de FPGA
•
Eerst moet het configureren van de FPGA via JTAG uitgetest worden met een Byteblaster-II.
•
Op de JTAG-ketting van de FPGA zit ook de configuratiecomponent voor de FPGA ( EPC8 ), waarvan het configureren ook moet uitgetest worden.
•
Er moet ook getest worden of het mogelijk is om de CPLD ( MAX-II ) via JTAG te configureren.
•
Daarnaast moet ook geprobeerd worden om vanuit de MAX-II de FPGA te programmeren.
6.1.2.3.
De PowerPC
•
Na het opladen van een bootloader via JTAG, is het opstarten het eerste wat getest moet worden bij de PowerPC. Daarna moet de connectiviteit met het flashgeheugen en het RAM-geheugen getest worden. Als deze bereikbaar zijn, kan een OS en een file-system opgeladen worden. Nadat deze opgeladen zijn zal de bootloader zichzelf overladen met een nieuwe bootloader die bij het OS hoort.
•
Als er Ethernet-connectie is, is het mogelijk om via SSH aan te melden op de PowerPC. Ook is het dan mogelijk om een nieuwe versie van het OS op te laden.
•
Eens dat gebeurd is, kan de PCI-bus uitgetest worden.
6.1.2.4.
Videotesten
•
Met testcode kan het register van de ICS2008-chips al uitgelezen worden en bekeken worden met de SignalTap-applicatie.
•
Als de PCI-bus werkt, kan de tijdscode-informatie al opgehaald worden.
•
Daarna moeten alle opgegeven soorten LTC-, VITC- en genlocking-signalen uitgeprobeerd worden.
6.1.2.5.
Andere testen
•
De I²C bussen van de PowerPC moeten uitgetest worden, en de verschillende I²Ccomponenten moeten ook getest worden.
•
De verschillende klokken moeten uitgemeten worden
Hoofdstuk 6 – Testresultaten en Aanpassingen
54
Jeroen Geldhof •
Het actieve en passieve bord moeten passen, zowel in elkaar als in de Broadcast NGkast.
•
Testen van de ATMEGA128.
•
Uittesten van de LED’s
•
Implementeren van een NIOS-processor om het flash- en DRAM-geheugen uit te testen.
6.2.
Testresultaten en aanpassingen
Tijdens het testen zijn verschillende borden gebruikt. Eén van de borden werd gebruikt door de programmeur, die de kernel geschreven heeft, een ander door de persoon die de drivers geschreven heeft. Een derde bord werd gebruikt door de collega, die het ontwerp van het IObord verder gezet heeft. Het laatste bord werd voor de persoonlijke testen gebruikt.
6.2.1. Voedingen en stroomverbruik Als de borden aangekomen waren, werden nog kortsluitingen vastgesteld. Deze waren afkomstig van nul-Ohm-weerstanden, waarvan op de schema’s niet vermeld stond dat ze niet op de PCB mochten staan. Eens deze weerstanden opgezocht en vervangen waren, kwamen de voedingen uit hun protectiestand. Het totale stroomverbruik dat de voeding aangaf lag tussen de 1 en 1,2 A. Voedingsspanning (V) 5 5 3,3 3,3 3,3 3 2,5 1,2 1 -5
gemeten spanning (V) 4,91 5,01 3,28 3,30 3,29 3,00 2,50 1,20 1,00 -5,0
Tabel 6.1 Voedingsspanningen
Hoofdstuk 6 – Testresultaten en Aanpassingen
55
Jeroen Geldhof
6.2.2. Testen van de JTAG-kettingen De EPC8 en de FPGA worden gedetecteerd op de eerste ketting. Het programmeren van de twee componenten is ook geslaagd. De MAX-II wordt ook gedetecteerd op een ketting. Ook hier lukt het programmeren. De oplossing met de Firecron-componenten is nog niet uitgetest.
6.2.3. De PowerPC Om de PowerPC uit reset te halen, wordt gebruik gemaakt van een resetcontroller, die in de FPGA geïmplementeerd is. Deze controller haalt één voor één de componenten uit hun resettoestand. Er zijn problemen geweest met het opstarten van de PowerPC. Dit kwam doordat enkele lijnen van de FPGA niet hoogimpedant geplaatst waren. Eens de PowerPC uit reset gehaald is, kon een bootloader via JTAG opgeladen worden. Hierbij konden enkele commando’s uitgevoerd worden om flash en DRAM uit te testen. Na het opladen van het OS en de bijhorende bootloader, kon de volledige functionaliteit van de PowerPC getest worden. Bij het opstarten van de PowerPC werd alle hardware overlopen. Hierbij bleken problemen te zijn met het DRAM-geheugen. Er stonden enkele afsluitweerstanden tekort. Dit probleem was snel opgelost. Er waren ook problemen bij de PCI-bus. Hier stond een verkeerde weerstand bij de PCI-klok, waardoor de klok te klein werd in amplitude. Nochtans stond in het schema de correcte weerstandswaarde. Bij de seriële connectie, waarbij de resultaten van de hardwaretests weergegeven werden, bleek er ook een probleem te zijn. Na het weergeven van de hardwaretests wordt er gevraagd om een toets in te drukken, om in de configuratie van de PowerPC te raken. Dit werkte niet, daar de spanningsniveaus op twee seriële lijnen in conflict waren. Bij het ontwerp van het bord heeft men een weerstand vergeten te verwijderen. Daarna was de configuratie toegankelijk. Het was nu ook mogelijk om de I²C-componenten op te vragen. Deze adressen bleken niet te kloppen met wat ingesteld was. Bij het grondig bekijken van de weergegeven adressen bleek dat de adresbits geshift waren met één bit. Waarom dit gebeurt, is nog niet duidelijk, maar het levert geen problemen op.
6.2.4. Verder aanpassen van de VHDL-code Omdat er al problemen geweest waren met niet toegekende pinnen, is het toplevel aangepast. Hierbij zijn alle pinnen opgenomen in het toplevel, en ingesteld als input of output. Eens het toplevel grotendeels in orde was, kon de PCI-bus uitgetest worden. De PowerPC detecteerde inderdaad twee toestellen op de bus, zijnde de FPGA en zichzelf.
Hoofdstuk 6 – Testresultaten en Aanpassingen
56
Jeroen Geldhof Om de werking van de ICS2008-chips uit te testen is een testcode geschreven in VHDL, die constant leest en schrijft naar de chip. Met SignalTap was te zien dat dit werkte. De persoon, die de kernel geschreven heeft, had opmerkingen bij de indeling van de registers. Deze waren toen niet onderverdeeld volgens chip, maar volgens functie. Om eenvoudige software te schrijven is het echter beter om de registers volgens chip te verdelen.
6.2.5. Configuratie van de PowerPC Om de Ethernet-connectie uit te testen, moesten MAC-adressen en IP-adressen ingesteld worden. Nadien was het mogelijk om van het bord naar een computer te pingen, en om een SSH-verbinding op te zetten naar het bord. Eens de drivers klaar waren, kon tijdscode uit de registers gehaald worden, en was het mogelijk om de LED’s aan te sturen. Een eind later was het ook mogelijk om UDP-pakketjes te versturen. De persoon, die de drivers geschreven heeft, heeft ook een configuratie-applicatie geschreven die via de browser toegankelijk is.
6.2.6. Tijdscode uitlezen Voorlopig is enkel het uitlezen van VITC getest. Dit leverde echter geen probleem op.
6.2.7. Andere testen Wegens tijdgebrek zijn niet alle testen uitgevoerd. Enkele van de testen, die niet uitgevoerd zijn, zijn na het indienen van de thesis mogelijk toch uitgevoerd. Enkele van deze testen staan hieronder opgesomd: • • • •
Implementeren van een NIOS-processor om het flash- en DRAM-geheugen uit te testen. Testen van de ATMEGA128. Het actieve en passieve bord moeten passen in de Broadcast NG-kast. Normaal mag dit geen probleem opleveren. Alle opgegeven soorten LTC-, VITC- en genlocking-signalen moeten uitgeprobeerd worden
6.2.8. Andere opmerkingen Blijkbaar zijn verkeerde BNC-contacten gebruikt in de schema’s. Toen de borden binnen gekomen waren, bleken deze niet over een versterkte kern te beschikken. In geval van een redesign moet dit zeker aangepast worden.
Hoofdstuk 6 – Testresultaten en Aanpassingen
57
Jeroen Geldhof
Hoofdstuk 7 Besluit
De vooropgestelde doelstelling van deze thesis, het ontwerpen en realiseren van een LTC/VITC-IP converter voor het Networked Broadcast Monitoring System, is volledig bereikt. De grootste uitdaging van deze thesis, was het feilloos laten overlopen van de verschillende fasen van het ontwerp. Bij de voorstudie was er niet alleen aandacht voor de keuze van de componenten. Er is ook een schatting van de kostprijs, en van het stroomverbruik gemaakt. Bij de keuze van de componenten, moest er rekening gehouden worden met de componentkeuzes, die reeds bij andere PCB’s van Barco gemaakt zijn. Het ontwerpen van het schema van de PCB, werd vereenvoudigd, doordat er enkele referentieschema’s beschikbaar waren. Toch is er meer tijd nodig geweest voor het ontwerp van de PCB, dan oorspronkelijk gedacht. Dit komt hoofdzakelijk omdat de werking van verschillende technologieën en applicaties opgezocht moesten worden. Het ontwerp van de schema’s is echter succesvol afgerond in de stage. De periode na de stage was er tijd vrij om een testplan op te stellen, en om VHDL-code te schrijven voor de FPGA. Bij het schrijven van de code van de lokale component die bij de PCI-core hoort, waren er twee versies van dergelijke code als referentie voorhanden. Dit had niet alleen voordelen. Aanvankelijk werd de versie gevolgd, die niet compatibel was met de gebruikte PowerPC. Hierdoor is er wat tijd verloren. Als de PCB’s in Barco aangekomen waren, kon er begonnen worden met het testen van alles. Er moesten enkele weerstanden verwijderd en bijgeplaatst worden, om alles werkende te krijgen. Aan de PCB zelf zijn er echter geen aanpassingen gemaakt. De meeste problemen waren er rond de PowerPC. Doordat er verschillende fouten aanwezig waren, was het niet zo eenvoudig om deze component te debuggen. Eens de drivers afgewerkt waren, kon de volledige opstelling uitgeprobeerd worden. Hierbij zijn geen problemen vastgesteld. Om het uitlezen van de tijdscode te testen, is echter enkel een VITC-generator gebruikt. Dit komt deels door tijdgebrek, en deels doordat er enkele generatoren niet ter beschikking waren.
Hoofdstuk 7 – Besluit
58
Jeroen Geldhof
Referenties
[1]
[2]
Bedrijfsprofiel van Barco http://www.barco.com/aboutbarco/en/CompanyProfile.asp
(maart 2007)
Geschiedenis van Barco http://www.barco.com/aboutbarco/en/history.asp
(maart 2007)
[3]
Brocure van Barco http://www.barco.com/AboutBarco/downloads/Barco_company_brochure_2005_8.pdf (maart 2007)
[4]
Website van Barco Corntrol Rooms http://www.barco.com/controlrooms
(maart 2007)
[5]
Website Networked Broadcast Monitoring System http://www.barco.com/controlrooms/en/Products/product.asp?GenNr=1790 (maart 2007)
[6]
Encyclopedie artikel over JPEG 2000 http://nl.wikipedia.org/wiki/JPEG2000
(maart 2007)
Encyclopedie artikel over genlocken http://en.wikipedia.org/wiki/Genlock
(april 2007)
Artikel over tijdscode http://www.philrees.co.uk/articles/timecode.htm
(april 2007)
Encyclopedie artikel over network time protocol http://en.wikipedia.org/wiki/Network_Time_Protocol
(april 2007)
[7]
[8]
[9]
[10] Een handboek over video, voor de digitale ingenieur Keith Jack. Video demystified, second edition. ISDN 1-878707-23-X [11] Artikel over genlocken en synchronisatie http://www.gennum.com/video/pdf/TTDec05.pdf
(april 2007)
[12] Encyclopedie artikel over PHY’s http://en.wikipedia.org/wiki/PHY
(april 2007)
[13] Encyclopedie artikel over het OSI-model http://nl.wikipedia.org/wiki/OSI
(april 2007)
[14] Datasheet van de ICS2008B, tijdscode ontvanger http://www.idt.com/products/files/1933888/ics2008b.pdf
(april 2007)
Referenties
59
Jeroen Geldhof [15] Datasheet van de LMH1981, Video Synchronisatie ontvanger http://www.national.com/ds/LM/LMH1981.pdf
(april 2007)
[16] Datasheet van de 88E1111, Gigabit Ethernet Tranceiver http://www.datasheetarchive.com/datasheet.php?article=642168
(april 2007)
[17] Datasheet van de Cyclon II, FPGA http://www.altera.com/literature/hb/cyc2/cyc2_cii51001.pdf
(april 2007)
[18] Encyclopedie artikel over FPGA’s http://en.wikipedia.org/wiki/FPGA
(april 2007)
[19] Datasheet van de gebruikte PowerPC http://www.freescale.com/files/32bit/doc/ref_manual/MPC8349EARM.pdf (april 2007) [20] Encyclopedie artikel over Joint Test Action Group http://en.wikipedia.org/wiki/JTAG
(april 2007)
[21] Encyclpedie artikel over Boundary Scan http://en.wikipedia.org/wiki/JTAG_boundary_scan
(april 2007)
[22] Website van de firma Asset http://www.asset-intertech.com/
(april 2007)
[23] Datasheet van de JTAG test sequencer http://www.firecron.com/JTSO2%20full%20data%20sheet%20v2.6%20100Cbga.PDF (april 2007) [24] Datasheet van de JTAG gateway http://www.firecron.com/jts06Bu%20(8%20Bu)%20FULL%20DATA%20100%20cBG A%20TQFP%20%20release%20v1.9.pdf (april 2007) [25] Datasheet van de ATMEGA128 - microcontroller http://www.atmel.com/dyn/resources/prod_documents/doc2467.pdf
(april 2007)
[26] Datasheet van de LTC1334 – transceiver voor RS-232 en RS-422/485 http://www.linear.com/pc/downloadDocument.do?navId=H0,C1,C1007,C1018,P1071,D 3548 (april 2007) [27] Productsite van het gebruikte Phoenix-contact http://eshop.phoenixcontact.com/phoenix/treeViewClick.do;jsessionid=GqhHh4Qj7vqC wd6Rr0f18vyvC6n1YbCn6pNzpvMCpdQwLY8Bnqdn!-1970582854!NONE?UID= 1881451&parentUID=null&reloadFrame=true (april 2007) [28] Productsite van de gebruikte Sideled’s http://catalog.osram-os.com/catalogue/catalogue.do;jsessionid= 2BF655F93337276AA128574DF6F087A6?catGroupOid=000000000001ec5800050023 &favOid=000000000001ec5800050023&act=showProductGroups (april 2007)
Referenties
60
Jeroen Geldhof [29] Datasheet van het flashgeheugen bij de PowerPC http://pdf1.alldatasheet.com/datasheet-pdf/view/165147/SPANSION/ S29GL128N10FFI010/datasheet.pdf
(april 2007)
[30] Datasheet van de SO-DIMM module bij de PowerPC http://www.tranzistoare.ro/datasheets2/27/270810_1.pdf
(april 2007)
[31] Transceiver, die gebruikt wordt bij de LMH1981 en de seriële communicatie (74LVCC3245A) http://www.idt.com/products/files/779452/74LVCC3245A_datasheet.pdf (april 2007) [32] Datasheet van de inverter, gebruikt bij de seriële communicatie, SN74ALVC04 (april 2007) http://www.ti.com/lit/gpn/sn74alvc04 [33] Datasheet van het flashgeheugen bij de FPGA, AM29LV128M http://www.amd.com/us-en/assets/content_type/ white_papers_and_tech_docs/25270b4.pdf
(april 2007)
[34] Datasheet van het SDRAM geheugen bij de FPGA http://download.micron.com/pdf/datasheets/dram/sdram/256MbSDRAMx32.pdf (april 2007) [35] Datasheet van de EPC8, configuratie component http://www.altera.com/literature/hb/cfg/cfg_cf52001.pdf
(april 2007)
[36] Encyclopedie artikel over CPLD’s http://en.wikipedia.org/wiki/CPLD
(april 2007)
[37] Datasheet van de 32-bit teller, DS1374C-33 http://datasheets.maxim-ic.com/en/ds/DS1374-DS1374U.pdf
(april 2007)
[38] Datasheet van de 128 MB EEPROM, PCA8581C http://www.nxp.com/acrobat_download/datasheets/PCA8581_PCA8581C_3.pdf (april 2007) [39] Datasheet van de 8 bit IO poort via I²C, PCF8574T http://www.nxp.com/acrobat_download/datasheets/PCF8574_4.pdf
(april 2007)
[40] Encyclopedie artikel over switched-mode power supplies http://en.wikipedia.org/wiki/Switched-mode_power_supply
(april 2007)
[41] Datasheet van de LTC1735, chopper controller http://www.linear.com/pc/downloadDocument.do?navId=H0,C1,C1003,C1042,C1032,C 1092,P1733,D2172 (april 2007) [42] Encyclopedie artikel over VHDL http://en.wikipedia.org/wiki/Vhdl
Referenties
(april 2007)
61
Jeroen Geldhof [43] Officiële website van Quartus II http://www.altera.com/products/software/products/quartus2/qts-index.html#overview (april 2007) [44] Officiële website van SignalTap II http://www.altera.com/products/software/products/quartus2/verification/signaltap2/sigindex.html (april 2007) [45] Datasheet van de PCI-core van Altera http://www.altera.com/literature/ug/ug_pci.pdf
Referenties
(april 2007)
62