Mest Universal Asynchronous Receiver Transmitter ( UART ) som jeg fant på nettet, er for komplisert og vanskelig å forstå , her vil jeg forklare noen enkle teori og også koden på hvordan å bygge en. Du trenger
Xilinx ISE
Vis flere instruksjoner
en
Først lar snakke om hvordan sendere fungerer. Det grunnleggende prinsippet er å sende flere biter av data over en enkelt linje. . På senderen vår , er dette data parallelt , men å redusere antall ledninger som kreves , vi bruker seriell kommunikasjon som er konvertert til parallell på mottakersiden
De grunnleggende tingene som vi trenger er følgende:
en . En klokke skillelinjen (vår telleren)
p Dette er gjør oss i stand til å sende data i en viss hastighet ( overføringshastighet ) . Vår mottaker vil prøve og ta data bit for bit .
To . En skift register
Vi trenger å vite hvor mange biter om gangen vi sender , vil vår skift register ha en start bit, data bits , parity bit ( valgfritt) , end bit .
3 . En tilstandsdiagram
Før writting noen kode , må vi tenke på hva vi trenger å skape og den beste måten er å skape en tilstand diagram av vårt design . Vi vet for en sender vi trenger to stater , inaktiv og overfører.
2
Etter å ha en statlig diagram , nå kan vi beregne hva vår telleren vil være . Dette gjøres ved å bruke : en
teller = FPGA klokkehastighet /overføringshastighet
I dette eksempelet bruker jeg en overføringshastighet på 9600 , noe som gjør telleren min = 5208
< . br > 3
Siste beregner vi vår skift register og skrive ferdig vår stat maskin . I min eksempelkode bruker jeg en start bit, paritet bit, 8 bits med data og slutten bit . Dette er 11 bits totalt.
Begge bildene i trinn 2 og 3 sammen i samme modul fullføre vår senderen koden for å programmere til FPGA . Denne koden vil fungere med en annen FPGA koblet serielt eller med vinduer HyperTerminal blant annet hardware . Kan være lett modifiserbare å jobbe med mye mer .
4
Siste skaper vi en test fixture å fikse eventuelle feil og simulere vårt program før du programmerer FPGA .
Dette avslutter Transmitter . Vennligst legg igjen en kommentar hvis du har spørsmål eller føler at det er noe som mangler her .