"Ormen" på en FPGA (1 / 6 steg)
Steg 1: PS/2 Keyboard Input
Indata från tangentbordet är enkelt att förstå. Det finns flera saker att veta:
1. När tangentbordet inte skickar input, sänder det en konstant 1 (hög) för data som klockan.
2. en enda knapptryckning kommer att bestå av minst 33 bitar av indata från tangentbordet.
3. När en tangent trycks först, skickar 11 bitar data i form av en "gör" kod. När det släpps, kommer skicka en kod för 11 bitars "paus", fortsätter med samma göra koden igen. (Det finns undantag när du trycker på speciella tangenter, oroa dig inte om dessa för mycket)
4. tangentbord kommer att skicka samma 11 bitar som innehåller gör koden om och om igen medan du håller en viss tangent ned.
5. tangentbord skickar data i negativa utkanten av sin klocka.
6. tangentbord har sin egen klocka som du kan läsa. Du behöver inte att definiera din egen klocka att arbeta med tangentbordet.
.
För att expandera, visar den första bilden vad tangentbordet skickar inom varje 11 bitar. Det skickar först en nolla att starta, då 8 bitar data registernyckeln du tryckt (gör koden), en paritetsbit (PB), och slutligen en att sluta. Paritetsbiten är antingen en eller en nolla, beroende på hur många 1s är make kod. Om det finns ett jämnt antal ettor, det blir 1, och om det finns ett udda antal ettor, paritetsbiten kommer att vara 0. Vill man göra det totala antalet sådana ett udda tal. [2]
Om du vill se koderna för make/bryta tangentbord, finns det många källor. Prova detta. Observera att alla knapptryckningar har samma bryta koden gemensamt: F0.
.
Denna information gäller bara till ett PS/2 tangentbord, försöka inte använda en annan typ av tangentbord med en adapter och förväntar sig samma resultat.
Produktionen av våra tangentbord modul är en "en varm" 5 bitars utdata, riktning ormen går beror på placeringen av 1.