Stap 1: Achtergrondinformatie
Strikt genomen, PS2 type verbinding gebruikt 2 draden voor het verzenden van gegevens, die worden gegevens en klok genoemd. Wanneer u de knop op het toetsenbord drukt, stuurt de microcontroller die binnen het toetsenbord pakketten van 11 stukjes informatie over DATA aansluiting. Elke bit wordt begeleid door een dalende rand kloksignaal, wat betekent dat u alleen de gegevens wanneer kloksignaal naar beneden valt en niet de andere keer moet lezen. Het eerste stukje is START bit, dan zijn er 7 bits voor DATA0-6, dan een pariteitsbit en eindelijk eens ophouden met bit. Nadat de gegevens ontvangen en gecontroleerd of het klopt (START, PARITEIT en STOP bits hebben voldoende waarden) moet u alleen houden DATA0-6 stukjes en te ontdoen van de rest.
Nu op zoek is breder, wanneer een knop wordt ingedrukt, stuurt het toetsenbord een pakje 11 bits te vertellen welke knop werd ingedrukt. Als de toets is ingedrukt en hield vervolgens het verzenden begint herhaaldelijk hetzelfde pakket. Ten slotte als u de knop loslaat stuurt dan een andere 2 pakketten, vertellen dat de knop werd uitgebracht en welke knop werd uitgebracht. Dit is een beetje anders voor verschillende voor zogenaamde uitgebreide knoppen, waar het één meer pakket verzendt en om te weten welke code moet ontvangen u handmatige lezen kunt of laat zeggen
.
De frequentie, de gegevens worden verzonden is vrij laag en kan variëren van 10 kHz tot 16.7 kHz. Dit wordt belangrijk wanneer u een FPGA met snelheden van 50 MHz en grotere gebruikt. U moet de frequentie verkleinen met een factor, anders zal u het lezen van het verkeerde kloksignaal (bijvoorbeeld u zullen het lezen van gegevens terwijl het kloksignaal is nog steeds aan het veranderen...). Schalen van de FPGA-board tot ongeveer 30-50 kHz moet het werk doen, maar dit hangt weer op het toetsenbord.
Ten slotte is het belangrijk om te beschrijven wat er zal gebeuren als u minder dan 11 bits ontvangt zoals soms dit ook gebeurt. Zeer zelden, maar toch gebeurt... Wat ik hier deed, wordt een timer om te vertellen als voldoende tijd is verstreken van het ontvangen van de bits en als de periode te lang is tot het ontvangen van de volgende bits, het spoelt alles dat zij tot dit punt ontvangen gebracht.
U kunt altijd meer lezen over het protocol in hier of gewoon google 'PS2 type Protocol', die zal geven u inzicht over het beter werkt. Ik beveel u lezen meer over het als u wilt implementeren van de stuurprogramma's zelf! Basys 2 board handleiding bevat ook informatie over hoe zoiets kon worden geïmplementeerd op pagina 5-7 van de handleiding.