MICROCHIP Core16550 universel asynkron modtager-sender

Indledning
Core16550 er en standard Universal Asynchronous Receiver-Transmitter (UART), der sikrer softwarekompatibilitet med den udbredte 16550-enhed. Den håndterer seriel-til-parallel datakonvertering for input fra modemer eller andre serielle enheder og udfører parallel-til-seriel konvertering for data sendt fra CPU'en til disse enheder.
Under transmission skrives data parallelt ind i UART'ens FIFO-buffer (Transmitting First-In, First-Out). Dataene serialiseres derefter til output. Ved modtagelse konverterer UART'en indgående serielle data til parallelle data og giver processoren nem adgang.
En typisk anvendelse af 16550 UART er illustreret i den følgende figur.
Figur 1. Typisk 16550-applikation
Tabel 1. Core16550-oversigt

Nøglefunktioner
Følgende er de vigtigste funktioner i Core16550:
- Sender og modtager er hver især bufferet med op til 16-byte FIFO'er for at reducere antallet af afbrydelser, der præsenteres for CPU'en.
- Tilføjer eller fjerner standard asynkrone kommunikationsbits (Start, Stop og Paritet).
- Uafhængigt styrede transmissions-, modtagelses-, linjestatus- og datasætafbrydelser
- Programmerbar baudgenerator
- Modemkontrolfunktioner (CTSn, RTSn, DSRn, DTRn, RIn og DCDn).
- Advanced Peripheral Bus (APB) registergrænseflade
Udgåede funktioner
Understøttelse af VHDL (Hardware Description Language) til Very High Speed Integrated Circuit (VHSIC) udgår fra denne version.
Core16550 Ændringslogoplysninger
Dette afsnit giver en omfattende overview af de nyligt indarbejdede funktioner, startende med den seneste udgivelse.
| Version | Hvad er nyt |
| Core16550 v3.4 | Core16550 bruger system-Verilog-nøgleordet "break" som registernavn, hvilket forårsagede syntaksfejl. Nøgleordet er erstattet med et andet navn for at løse dette problem.
Tilføjet PolarFire®-familieunderstøttelse |
| Core16550 v3.3 | Tilføjet understøttelse af strålingstolerant FPGA (RTG4™)-familien |
- Beskrivelse af funktionsblok (stil et spørgsmål)
Dette afsnit indeholder en kort beskrivelse af hvert element i det interne blokdiagram, som vist i følgende figur.
Figur 1-1. Core16550 blokdiagram

Elementer i det interne blokdiagram (Stil et spørgsmål)
Det følgende afsnit indeholder oplysninger om elementerne i det interne blokdiagram.
- RWControl (Stil et spørgsmål)
RWControl-blokken er ansvarlig for at håndtere kommunikationen med processorens (parallelle) side af systemet. Al skrivning og læsning af interne registre udføres via denne blok. - UART_Reg (Stil et spørgsmål)
UART_Reg-blokken indeholder alle enhedens interne registre. - RXBlock (Stil et spørgsmål)
Dette er modtagerblokken. RXBlock modtager det indkommende serielle ord. Den er programmerbar til at genkende databredder, såsom 5, 6, 7 eller 8 bit; forskellige paritetsindstillinger, såsom lige, ulige eller ingen paritet; og forskellige stopbits, såsom 1, 1½ og 2 bit. RXBlock kontrollerer for fejl i inputdatastrømmen, såsom overrun-fejl, framefejl, paritetsfejl og break-fejl. Hvis det indkommende ord ikke har nogen problemer, placeres det i modtager-FIFO'en. - Afbrydelseskontrol (Stil et spørgsmål)
Interrupt Control-blokken sender et afbrydelsessignal tilbage til processoren, afhængigt af FIFO'ens tilstand og dens modtagne og transmitterede data. Interrupt Identification-registeret angiver niveauet for afbrydelsen. Afbrydelser sendes ved tomme transmissions-/modtagelsesbuffere (eller FIFO'er), en fejl i modtagelsen af et tegn eller andre forhold, der kræver processorens opmærksomhed. - Baudhastighedsgenerator (Stil et spørgsmål)
Denne blok tager inputtet PCLK og dividerer det med en programmeret værdi (fra 1 til 216 – 1). Resultatet divideres med 16 for at skabe transmissionsuret (BAUDOUT). - TXBlock (Stil et spørgsmål)
Transmit-blokken håndterer transmissionen af data skrevet til Transmit FIFO. Den tilføjer de nødvendige start-, paritets- og stopbits til de data, der transmitteres, så den modtagende enhed kan udføre den korrekte fejlhåndtering og modtagelse.
Softwaregrænseflade (Stil et spørgsmål)
Core16550-registerdefinitionerne og adressetilknytningerne er beskrevet i dette afsnit. Følgende tabel viser Core16550-registeroversigten.
| PADDR[4:0]
(Adresse) |
Adgangsbit til divisorlås1
(DLAB) |
Navn | Symbol | Standardværdi (nulstil) | Antal bits | Læs/skriv |
| 00 | 0 | Modtagerbufferregister | RBR | XX | 8 | R |
| 00 | 0 | Sender Holding Register | THR | XX | 8 | W |
| 00 | 1 | Divisorlås (LSB) | DLR | 01 timer | 8 | R/W |
| 04 | 1 | Divisorlås (MSB) | DMR | 00 timer | 8 | R/W |
| 04 | 0 | Afbryd Aktiver Register | IER | 00 timer | 8 | R/W |
| 08 | X | Afbrydelsesidentifikationsregister | IIR | C1h | 8 | R |
| 08 | X | FIFO kontrolregister | FCR | 01 timer | 8 | W |
| 0C | X | Linjekontrolregister | LCR | 00 timer | 8 | R/W |
| 10 | X | Modemkontrolregister | MCR | 00 timer | 8 | R/W |
| 14 | X | Linjestatusregister | LSR | 60 timer | 8 | R |
| 18 | X | Modemstatusregister | MSR | 00 timer | 8 | R |
| 1C | X | Skraberegister | SR | 00 timer | 8 | R/W |
Vigtig
DLAB er MSB for linjekontrolregisteret (LCR bit 7).
Modtagerbufferregister (Stil et spørgsmål)
Receiver Buffer-registeret er defineret i følgende tabel.
Tabel 1-2. Modtagerbufferregister (skrivebeskyttet) – Adresse 0 DLAB 0
| Bits | Navn | Standardtilstand | Gyldige stater | Fungere |
| 7..0 | RBR | XX | 0..FFt | Modtagne databits. Bit 0 er LSB'en og er den første modtagne bit. |
Senderens holdregister (stil et spørgsmål)
Transmitter Holding-registeret er defineret i følgende tabel.
Tabel 1-3. Transmitterens holderegister – kun skrivefunktion
| Bits | Navn | Standardtilstand | Gyldige stater | Fungere |
| 7..0 | THR | XX | 0..FFt | At transmittere databits. Bit 0 er LSB og transmitteres først. |
FIFO-kontrolregister (stil et spørgsmål)
FIFO-kontrolregisteret er defineret i følgende tabel.
| Bits (7:0) | Standardtilstand | Gyldige stater | Fungere |
| 0 | 1 | 0, 1 | Aktiverer både transceiveren (Tx) og modtageren (Rx) FIFO'er. Denne bit skal sættes til 1, når der skrives til andre FCR-bits, ellers vil de ikke blive programmeret.
0: Deaktiveret 1: Aktiveret |
| 1 | 0 | 0, 1 | Sletter alle bytes i Rx FIFO'en og nulstiller dens tællerlogik. Shift-registeret slettes ikke.
0: Deaktiveret 1: Aktiveret |
| 2 | 0 | 0, 1 | Sletter alle bytes i Tx FIFO'en og nulstiller dens tællerlogik. Shift-registeret slettes ikke.
0: Deaktiveret 1: Aktiveret |
| 3 | 0 | 0, 1 | 0: Enkelt overførsel DMA: Overførsel foretaget mellem CPU-buscyklusser
1: Multi-transfer DMA: Overførsler foretaget indtil Rx FIFO er tom eller Transmission System Operator (TSO) Transmit (XMIT) FIFO er fyldt. FCR[0] skal sættes til 1 for at sætte FCR[3] til 1. |
| 4, 5 | 0 | 0, 1 | Reserveret til fremtidig brug. |
| 6, 7 | 0 | 0, 1 | Disse bits bruges til at indstille triggerniveauet for Rx FIFO-afbrydelsen. 7 6 Rx FIFO-triggerniveau (bytes)
0 0 01 0 1 04 1 0 08 1 1 14 |
Divisorkontrolregistrene (Stil et spørgsmål)
Baud Rate (BR)-uret genereres ved at dividere inputreference-uret (PCLK) med 16 og divisorværdien.
Følgende tabel viser et eksempelampaf divisorværdier for ønsket BR ved brug af et 18.432 MHz referenceur.
Tabel 1-5. Divisorlås (LS og MS)
| Bits | Navn | Standardtilstand | Gyldige stater | Fungere |
| 7..0 | DLR | 01 timer | 01..FFt | LSB af divisorværdi |
| 7..0 | DMR | 00 timer | 00..FFt | MSB af divisorværdi |
Tabel 1-6. Baudrater og divisorværdier for 18.432 MHz referenceur
| Baud rate | Decimaldivisor (divisorværdi) | Procent fejl |
| 50 | 23040 | 0.0000 % |
| 75 | 15360 | 0.0000 % |
| 110 | 10473 | –0.2865 % |
| 134.5 | 8565 | 0.0876 % |
| 150 | 7680 | 0.0000 % |
| 300 | 3840 | 0.0000 % |
| 600 | 1920 | 0.0000 % |
| 1,200 | 920 | 4.3478 % |
| 1,800 | 640 | 0.0000 % |
| Baud rate | Decimaldivisor (divisorværdi) | Procent fejl |
| 2,000 | 576 | 0.0000 % |
| 2,400 | 480 | 0.0000 % |
| 3,600 | 320 | 0.0000 % |
| 4,800 | 240 | 0.0000 % |
| 7,200 | 160 | 0.0000 % |
| 9,600 | 120 | 0.0000 % |
| 19,200 | 60 | 0.0000 % |
| 38,400 | 30 | 0.0000 % |
| 56,000 | 21 | –2.0408 % |
Afbryd Aktiver Registrer (Stil et spørgsmål)
Interrupt Enable-registeret er defineret i følgende tabel.
Tabel 1-7. Afbrydelsesaktiveringsregister
| Bits | Navn | Standardtilstand | Gyldig stat | Fungere |
| 0 | ERBFI | 0 | 0, 1 | Aktiverer "Afbrydelse af tilgængelige modtagne data" 0: Deaktiveret
1: Aktiveret |
| 1 | ETBEI | 0 | 0, 1 | Aktiverer "Afbrydelse af tom transmitterholdregister" 0: Deaktiveret
1: Aktiveret |
| 2 | ELSI | 0 | 0, 1 | Aktiverer "Afbrydelse af modtagerlinjestatus" 0: Deaktiveret
1: Aktiveret |
| 3 | EDSSI | 0 | 0, 1 | Aktiverer "Modemstatusafbrydelse" 0: Deaktiveret
1: Aktiveret |
| 7..4 | Reserveret | 0 | 0 | Altid 0 |
Afbryd identifikationsregister (stil et spørgsmål)
Afbrydelsesidentifikationsregisteret er angivet i følgende tabel. Tabel 1-8. Afbrydelsesidentifikationsregister
| Bits | Navn | Standardtilstand | Gyldige stater | Fungere |
| 3..0 | IIR | 1h | 0..Ch | Afbryd identifikationsbits. |
| 5..4 | Reserveret | 00 | 00 | Altid 00 |
| 7..6 | Mode | 11 | 11 | 11: FIFO-tilstand |
Registerfeltet Afbrydelsesidentifikation er defineret i følgende tabel.
Tabel 1-9. Afbrydelsesidentifikationsregisterfelt (IIR)
| IIR-værdi [3:0)] | Prioritetsniveau | Afbrydelsestype | Afbrydelseskilde | Afbryd nulstillingskontrol |
| 0110 | Højest | Status for modtagerlinje | Overløbsfejl, paritetsfejl, framingfejl eller break-afbrydelse | Aflæsning af linjestatusregisteret |
| 0100 | Anden | Modtagne data er tilgængelige | Modtagerdata tilgængelige | Aflæsning af receiverbufferregisteret, eller FIFO falder under triggerniveauet |
| Tabel 1-9. Afbrydelsesidentifikationsregisterfelt (IIR) (fortsat) | ||||
| IIR-værdi [3:0)] | Prioritetsniveau | Afbrydelsestype | Afbrydelseskilde | Afbryd nulstillingskontrol |
| 1100 | Anden | Indikation for tegntimeout | Ingen tegn er læst fra Rx FIFO i løbet af de sidste fire tegn, og der var mindst ét tegn i den i denne periode. | Aflæsning af receiverbufferregisteret |
| 0010 | Tredje | Transmitter Holding-register tomt | Transmitter Holding-register tomt | Læsning af IIR eller skrivning i Transmitter Holding-registeret |
| 0000 | Fjerde | Modem status | Klar til sending, datasæt klar, ringindikator eller databærerdetektering | Læsning af Modern Status-registeret |
Linjekontrolregister (Stil et spørgsmål)
Linjekontrolregisteret er angivet i følgende tabel. Tabel 1-10. Linjekontrolregister
| Bits | Navn | Standardtilstand | Gyldige stater | Fungere |
| 1..0 | WLS | 0 | 0..3t | Ordlængdevalg 00: 5 bit
01:6 bits 10:7 bits 11:8 bits |
| 2 | STB | 0 | 0, 1 | Antal stopbits 0: 1 stopbit
1: 1½ stopbits når WLS = 00 2: Stopbits i andre tilfælde |
| 3 | PEN | 0 | 0, 1 | Paritetsaktivering 0: Deaktiveret
1: Aktiveret. Paritet tilføjes ved transmission og kontrolleres ved modtagelse. |
| 4 | EPS | 0 | 0, 1 | Lige paritet Vælg 0: Ulige paritet
1: Lige paritet |
| 5 | SP | 0 | 0, 1 | Stick Parity 0: Deaktiveret
1: Aktiveret Følgende er paritetsoplysningerne, når stick-paritet er aktiveret: Bits 4..3 11: 0 vil blive sendt som en paritetsbit og kontrolleret ved modtagelse. 01: 1 vil blive sendt som en paritetsbit og kontrolleret ved modtagelse. |
| 6 | SB | 0 | 0, 1 | Indstil pause 0: Deaktiveret
1: Indstil pause. SOUT tvinges til 0. Dette har ingen effekt på transmitterens logik. Pausen deaktiveres ved at indstille bitten til 0. |
| 7 | DLAB | 0 | 0, 1 | Adgangsbit til divisorlås
0: Deaktiveret. Normal adresseringstilstand i brug. 1: Aktiveret. Giver adgang til Divisor Latch-registrene under læse- eller skriveoperation til adresse 0 og 1. |
Modemkontrolregister (Stil et spørgsmål)
Modemkontrolregisteret er angivet i følgende tabel.
| Bits | Navn | Standardtilstand | Gyldige stater | Fungere |
| 0 | DTR | 0 | 0, 1 | Styrer Data Terminal Ready (DTRn) udgangen. 0: DTRn <= 1
1: DTRn <= 0 |
| 1 | RTS | 0 | 0, 1 | Styrer outputtet for Request to Send (RTSn). 0: RTSn <= 1
1: RTSn <= 0 |
| 2 | Out1 | 0 | 0, 1 | Styrer Output1 (OUT1n) signalet. 0: OUT1n <= 1
1: OUT1n <= 0 |
| 3 | Out2 | 0 | 0, 1 | Styrer Output2 (OUT2n) signalet. 0: OUT2n <= 1
1: OUT2n <= 0 |
| 4 | Løkke | 0 | 0, 1 | Loop enable bit 0: Deaktiveret
1: Aktiveret. Følgende sker i Loop-tilstand: SOUT er indstillet til 1. SIN-, DSRn-, CTSn-, RIn- og DCDn-indgangene er frakoblet. Udgangen fra senderskiftregisteret loopes tilbage til modtagerskiftregisteret. Modemkontroludgangene (DTRn, RTSn, OUT1n og OUT2n) er forbundet internt til modemets kontrolindgange, og modemets kontroludgangsben er indstillet til 1. I loopback-tilstand modtages de transmitterede data med det samme, hvilket giver CPU'en mulighed for at kontrollere UART'ens funktion. Afbrydelserne opererer i loop-tilstand. |
| 7..4 | Reserveret | 0h | 0 | Reserveret |
Linjestatusregister (stil et spørgsmål)
Linjestatusregisteret er defineret i følgende tabel.
Tabel 1-12. Linjestatusregister – skrivebeskyttet
| Bits | Navn | Standardtilstand | Gyldige stater | Fungere |
| 0 | DR | 0 | 0, 1 | Data klar-indikator
1 når en databyte er modtaget og gemt i modtagebufferen eller FIFO. DR nulstilles til 0, når CPU'en læser dataene fra modtagebufferen eller FIFO. |
| 1 | OE | 0 | 0, 1 | Indikator for overløbsfejl
Angiver, at den nye byte blev modtaget, før CPU'en læste byten fra modtagebufferen, og at den tidligere databyte er ødelagt. OE ryddes, når CPU'en læser linjestatusregisteret. Hvis dataene fortsætter med at fylde FIFO ud over triggerniveauet, opstår der en overløbsfejl, når FIFO'en er fuld, og det næste tegn er blevet fuldstændigt læst. modtaget i Shift-registeret. Tegnet i Shift-registeret overskrives, men det overføres ikke til FIFO. |
| 2 | PE | 0 | 0, 1 | Indikator for paritetsfejl
Angiver, at den modtagne byte havde en paritetsfejl. PE ryddes, når CPU'en læser linjestatusregisteret. Denne fejl afsløres for CPU'en, når det tilhørende tegn er øverst i FIFO'en. |
| 3 | FE | 0 | 0, 1 | Indikator for indramningsfejl
Angiver, at den modtagne byte ikke havde en gyldig stopbit. FE ryddes, når CPU'en læser linjestatusregisteret. UART'en vil forsøge at resynkronisere efter en framing-fejl. For at gøre dette antager den, at framing-fejlen skyldtes den næste startbit, så den eramplæser denne Start-bit to gange, og begynder derefter at modtage dataene. Denne fejl afsløres for CPU'en, når det tilhørende tegn er øverst i FIFO'en. |
| Tabel 1-12. Linjestatusregister – skrivebeskyttet (fortsat) | ||||
| Bits | Navn | Standardtilstand | Gyldige stater | Fungere |
| 4 | BI | 0 | 0, 1 | Indikator for afbrydelse
Angiver, at de modtagne data er på 0, længere end en fuld ords transmissionstid (startbit + Databits + Paritet + Stopbits). BI ryddes, når CPU'en læser linjestatusregisteret. Denne fejl afsløres for CPU'en, når det tilhørende tegn er øverst i FIFO'en. Når der opstår et brud, indlæses kun ét nultegn i FIFO'en. |
| 5 | TRE | 1 | 0, 1 | Indikator for tomt transmitterregister (THRE)
Angiver, at UART'en er klar til at sende en ny databyte. THRE forårsager en afbrydelse til CPU'en, når bit 1 (ETBEI) i Interrupt Enable-registeret er 1. Denne bit sættes, når TX FIFO'en er tom. Den ryddes, når mindst én byte er skrevet til TX FIFO'en. |
| 6 | TEMT | 1 | 0, 1 | Indikator for tom transmitter
Denne bit sættes til 1, når både transmitterens FIFO- og Shift-register er tomme. |
| 7 | FIER | 0 | 1 | Denne bit sættes, når der er mindst én paritetsfejl, framingfejl eller brudindikation i FIFO. FIER ryddes, når CPU'en læser LSR, hvis der ikke er nogen efterfølgende fejl i FIFO. |
Modemstatusregistrering (stil et spørgsmål)
Modemstatusregisteret er angivet i følgende tabel.
Tabel 1-13. Modemstatusregister – skrivebeskyttet
| Bits | Navn | Standardtilstand | Gyldige stater | Fungere |
| 0 | DCTS | 0 | 0, 1 | Delta Clear to Send-indikator.
Angiver, at CTSn-inputtet har ændret tilstand siden sidste gang, det blev læst af CPU'en. |
| 1 | DDSR | 0 | 0, 1 | Delta-datasæt klar-indikator
Angiver, at DSRn-inputtet har ændret tilstand siden sidste gang, det blev læst af CPU'en. |
| 2 | TERI | 0 | 0, 1 | Bagkantsindikatordetektor for ringen. Angiver, at RI-inputtet er ændret fra 0 til 1. |
| 3 | DDCD | 0 | 0, 1 | Indikator for Delta-databærerdetektion Angiver, at DCD-indgangen har ændret tilstand.
Bemærk: Når bit 0, 1, 2 eller 3 sættes til 1, genereres en modemstatusafbrydelse. |
| 4 | CTS | 0 | 0, 1 | Ryd for at sende
Komplementet til CTSn-indgangen. Når bit 4 i modemkontrolregisteret (MCR) er indstillet til 1 (løkke), svarer denne bit til DTR i MCR. |
| 5 | DSR | 0 | 0, 1 | Datasæt klar
Komplementet til DSR-indgangen. Når bit 4 i MCR'en er indstillet til 1 (loop), svarer denne bit til RTSn i MCR'en. |
| 6 | RI | 0 | 0, 1 | Ringeindikator
Komplementet til RIn-indgangen. Når bit 4 i MCR'en er indstillet til 1 (løkke), svarer denne bit til OUT1 i MCR'en. |
| 7 | DCD | 0 | 0, 1 | Detektion af databærer
Komplementet til DCDn-indgangen. Når bit 4 i MCR'en er indstillet til 1 (løkke), svarer denne bit til OUT2 i MCR'en. |
Skraberegister (Stil et spørgsmål)
Scratch-registeret er defineret i følgende tabel.
| Bits | Navn | Standardtilstand | Fungere |
| 7..0 | SCR | 00 timer | Læse-/skriveregister for CPU. Ingen effekt på UART-drift. |
Værktøjsflow (Stil et spørgsmål)
Dette afsnit indeholder detaljer om værktøjsflowene.
SmartDesign (Stil et spørgsmål)
Core16550 kan downloades i SmartDesign IP-implementeringsdesignmiljøet. Kernen konfigureres ved hjælp af konfigurations-GUI'en i SmartDesign, se følgende figur.
For information om, hvordan du bruger SmartDesign til at instantiere, konfigurere, forbinde og generere kerner, se SmartDesign-brugervejledningen.
Figur 2-1. Core16550-konfiguration

Simuleringsflows (Stil et spørgsmål)
Brugertestbænken til Core16550 er inkluderet i alle udgivelser.
For at køre simuleringer skal du vælge indstillingen Brugertestbenchflow i SmartDesign og klikke på Generer design i SmartDesign-menuen. Brugertestbenchen vælges via Core Testbench Configuration GUI.
Når SmartDesign genererer Libero SoC-projektet, installerer det brugerens testbænk. files.
For at køre brugertestbænken skal du indstille designroden til Core16550-instansieringen i Libero SoC Design Hierarchy-ruden og klikke på Simulation-ikonet i SoC Design Flow-vinduet. Dette aktiverer ModelSim® og kører automatisk simuleringen.
Syntese i Libero SoC (Stil et spørgsmål)
Klik på ikonet Syntese i Libero SoC. Syntesevinduet vises. Synplify®-projektet. Indstil Synplify til at bruge Verilog 2001-standarden, hvis Verilog bruges. For at køre Syntese skal du klikke på ikonet Kør.
Placer-og-rute i Libero SoC (Stil et spørgsmål)
For at indstille designruten korrekt og køre Synthesis skal du klikke på Layout-ikonet i Libero SoC og starte Designer. Core16550 kræver ingen særlige placerings- og ruteindstillinger.
Core16550 (Stil et spørgsmål)
Dette afsnit indeholder oplysninger om de parametre, der bruges i denne kerne.
Parametre (Stil et spørgsmål)
Core16550 understøtter ingen parametre på topniveau.
Kernegrænseflader (Stil et spørgsmål)
Dette afsnit indeholder en oversigt over input og output.
Beskrivelse af I/O-signal (stil et spørgsmål)
Følgende viser Core16550 I/O-definitionerne.
| Navn | Type | Polaritet | Beskrivelse |
| PRESETN | Input | Lav | Master nulstilling |
| PCLK | Input | — | Master ur
PCLK divideres med værdien af divisorregistrene. Resultatet divideres derefter med 16 for at få baudhastigheden. Det resulterende signal er BAUDOUT-signalet. Den stigende flanke på dette ben bruges til at strobe alle input- og outputsignaler. |
| PWRITE | Input | Høj | APB skrive/læse aktiv, aktiv-høj.
Når den er HØJ, skrives data til den angivne adresseplacering. Når den er LAV, læses data fra den angivne adresseplacering. |
| PADDR[4:0] | Input | — | APB-adresse
Denne bus forbinder CPU'en med adressen i registeret for Core16550, hvorfra der skal læses eller skrives til. |
| PSEL | Input | Høj | APB-valg
Når denne er HØJ sammen med PENABLE, er læsning og skrivning til Core16550 aktiveret. |
| PWDATA[7:0] | Input | — | Dataindgangsbus
Data på denne bus vil blive skrevet ind i det adresserede register under en skrivecyklus. |
| STRAFBAR | Input | Høj | APB-aktivering
Når denne er HØJ sammen med PSEL, er læsning og skrivning til Core16550 aktiveret. |
| PRDATA[7:0] | Produktion | — | Dataudgangsbus
Denne bus holder værdien af det adresserede register under en læsecyklus. |
| CTSn | Input | Lav | Ryd for at sende
Dette aktiv-lav-signal er et input, der viser, hvornår den tilsluttede enhed (modem) er klar til at modtage data. Core16550 sender disse oplysninger til CPU'en via Modem Status-registeret. Dette register indikerer også, at hvis CTSn-signalet har ændret sig siden sidste gang, blev registeret læst. |
| DSRn | Input | Lav | Datasæt klar
Dette aktiv-lav-signal er et input, der angiver, hvornår den tilsluttede enhed (modem) er klar til at oprette et link med Core16550. Core16550 sender disse oplysninger til CPU'en via Modem Status-registeret. Dette register angiver også, om DSRn-signalet har ændret sig siden sidste gang, registeret blev læst. |
| DCDn | Input | Lav | Detektion af databærer
Dette aktiv-lav-signal er et input, der angiver, hvornår den tilsluttede enhed (modem) har detekteret en bærebølge. Core16550 sender disse oplysninger til CPU'en gennem Modem Status-registeret. Dette register angiver også, om DCDn-signalet har ændret sig siden sidste gang registeret blev læst. |
| SYND | Input | — | Serielle indgangsdata
Disse data transmitteres til Core16550. De synkroniseres med PCLK-inputpin'en. |
| RIn | Input | Lav | Ringeindikator
Dette aktiv-lav-signal er et input, der viser, hvornår den tilsluttede enhed (modem) har registreret et ringesignal på telefonlinjen. Core16550 sender disse oplysninger til CPU'en via Modem Status-registeret. Dette register angiver også, hvornår RIn's bagkant blev registreret. |
| SYD | Produktion | — | Serielle udgangsdata
Disse data transmitteres fra Core16550. De er synkroniseret med BAUDOUT-udgangspinden. |
| RTSn | Produktion | Lav | Anmodning om at sende
Dette aktivt-lave udgangssignal bruges til at informere den tilsluttede enhed (modem) om, at Core16550 er klar til at sende data. Det programmeres af CPU'en via modemkontrolregisteret. |
| Tabel 4-1. Oversigt over I/O-signaler (fortsat) | |||
| Navn | Type | Polaritet | Beskrivelse |
| DTRn | Produktion | Lav | Dataterminal klar
Dette aktivt-lave udgangssignal informerer den tilsluttede enhed (modem) om, at Core16550 er klar til at etablere et kommunikationslink. Det programmeres af CPU'en via modemkontrolregisteret. |
| UD1n | Produktion | Lav | Output 1
Denne aktiv-lave udgang er et brugerdefineret signal. CPU'en programmerer dette signal via modemstyringsregisteret og indstilles til den modsatte værdi. |
| UD2n | Produktion | Lav | Output 2
Dette aktiv-lave udgangssignal er et brugerdefineret signal. Det programmeres af CPU'en via modemkontrolregisteret og er indstillet til den modsatte værdi. |
| INTR | Produktion | Høj | Afbrydelse venter
Dette aktiv-høje udgangssignal er afbrydelsesudgangssignalet fra Core16550. Det er programmeret til at blive aktivt ved bestemte hændelser og informere CPU'en om, at en sådan hændelse er opstået (for flere detaljer, se Afbrydelsesidentifikationsregister). CPU'en tager derefter passende handling. |
| BAUDOUTn | Produktion | Lav | Baud ud
Dette er et udgangsursignal afledt af inputuret til synkronisering af dataudgangsstrømmen fra SOUT. |
| RXRDYN | Produktion | Lav | Modtageren er klar til at modtage transmissioner.
CPU'en indikeres af dette aktiv-lave udgangssignal, at modtagersektionen af Core16550 er tilgængelig for data, der kan læses. |
| TXRDYN | Produktion | Lav | Senderen er klar til at sende data.
Dette aktivt-lave signal indikerer til CPU'en, at transmittersektionen af Core16550 har plads til at skrive data til transmission. |
| rxfifo_tom | Produktion | Høj | Modtag FIFO tom.
Dette signal bliver HØJ, når modtage-FIFO'en er tom. |
| rxfifo_fuld | Produktion | Høj | Modtag fuld FIFO.
Dette signal går højt, når modtage-FIFO'en er fuld. |
Tidsdiagrammer (stil et spørgsmål)
Dette afsnit indeholder timingdiagrammer for denne kerne.
Dataskrivecyklus og datalæsecyklus (Stil et spørgsmål)
Figur 5-1 og figur 5-2 viser forholdet mellem skrivecyklus og læsecyklustiming i forhold til APB-systemuret, PCLK.
Registrer Skriv (Stil et spørgsmål)
Følgende figur viser, at adresse-, valg- og aktiveringssignalerne er låst og skal være gyldige før den stigende flanke af PCLK. Skrivning sker ved den stigende flanke af PCLK-signalet.
Registrer Læs (Stil et spørgsmål)
Følgende figur viser, at adresse-, valg- og aktiveringssignalerne er låst og skal være gyldige før den stigende flanke af PCLK. Aflæsning sker ved den stigende flanke af PCLK-signalet.
For yderligere oplysninger om beskrivelser og timingbølgeformer, se AMBA-specifikationen.
Modtagersynkronisering (Stil et spørgsmål)
Når modtageren registrerer en lav tilstand i den indgående datastrøm, synkroniserer den med den. Efter startkanten venter UART'en 1.5 × (den normale bitlængde). Dette får hver efterfølgende bit til at blive læst i midten af dens bredde. Følgende figur viser denne synkroniseringsproces.
Figur 5-3. Modtagersynkronisering
Testbænksdrift (Stil et spørgsmål)
Kun én testbænk leveres med Core16550: Verilog brugertestbænk. Dette er en brugervenlig testbænk skrevet i Verilog. Denne testbænk er beregnet til kundetilpasning.
Brugertestbænk (Stil et spørgsmål)
Følgende figur viser blokdiagrammet for exampbrugerdesign og testbænk.
Figur 6-1. Core16550 brugertestbænk
Brugertestbænken indeholder en simpel eksempelampet design, der fungerer som reference for brugere, der ønsker at implementere deres egne designs.
Testbænken for eksempelampBrugerdesign implementerer en delmængde af den funktionalitet, der testes i verifikationstestbenchen. Se Brugertestbench for flere detaljer. Konceptuelt, som vist i figur 6-1, simuleres instantieringen af Core16550 ved hjælp af en adfærdsmikrocontroller og en simuleret loopback-forbindelse. For eksempelampLe, brugertestbænken demonstrerer transmission og modtagelse med den samme Core16550-enhed, så du kan få en grundlæggende forståelse af, hvordan man bruger denne kerne.
Brugertestbænken demonstrerer den grundlæggende opsætning, transmission og modtagelse af Core16550. Brugertestbænken udfører følgende trin:
- Skriv til kontrolregistrene.
- Tjek modtagne data.
- Tænd for sending og modtagelse.
- Læs kontrolregistrene.
- Send og modtag én byte.
Enhedsudnyttelse og ydeevne (stil et spørgsmål)
Følgende tabel viser Core16550's udnyttelses- og ydeevnedata. Tabel 7-1. Core16550's udnyttelses- og ydeevne PolarFire og PolarFire SoC
| Enhedsdetaljer | Ressourcer | VÆDDER | |||
| Familie | Enhed | 4LUT | DFF | Logiske elementer | μSRAM |
| PolarFire® | MPF100T-FCSG325I | 752 | 284 | 753 | 2 |
| PolarFire® SoC | MPFS250TS-FCSG536I | 716 | 284 | 720 | 2 |
| RTG4™ | RT4G150-1CG1657M | 871 | 351 | 874 | 2 |
| IGLOO® 2 | M2GL050TFB GA896STD | 754 | 271 | 1021 | 2 |
| SmartFusion® 2 | M2S050TFBG A896STD | 754 | 271 | 1021 | 2 |
| SmartFusion® | A2F500M3G- STD | 1163 | 243 | 1406 | 2 |
| IGLOO®/IGLOOE | AGL600-STD/AGLE600 V2 | 1010 | 237 | 1247 | 2 |
| Fusion | AFS600-STD | 1010 | 237 | 1247 | 2 |
| ProASIC® 3/E | A3P600-STD | 1010 | 237 | 1247 | 2 |
| ProASIC Plus® | APA075-STD | 1209 | 233 | 1442 | 2 |
| RTAX-S | RTAX250S - STD | 608 | 229 | 837 | 2 |
| Accelerator® | AX125-STD | 608 | 229 | 837 | 2 |
Løste problemer (Stil et spørgsmål)
Følgende tabel viser alle de løste problemer for de forskellige Core16550-udgivelser.
Tabel 8-1. Løste problemer
| Version | Ændringer |
| v3.4 | Core16550 bruger System Verilog-nøgleordet "break" som registernavn, hvilket forårsagede syntaksfejl. Dette er blevet løst ved at erstatte nøgleordet med et andet navn. Tilføjet PolarFire®-familieunderstøttelse |
Revisionshistorik (stil et spørgsmål)
Revisionshistorikken beskriver de ændringer, der blev implementeret i dokumentet. Ændringerne er listet efter revision, startende med den seneste publikation.

Mikrochip FPGA-understøttelse
Microchip FPGA-produktgruppen støtter sine produkter med forskellige supporttjenester, herunder kundeservice, teknisk kundesupportcenter, et webwebsted og salgskontorer over hele verden. Kunder anbefales at besøge Microchips online ressourcer, inden de kontakter support, da det er meget sandsynligt, at deres spørgsmål allerede er blevet besvaret.
Kontakt teknisk supportcenter via website kl www.microchip.com/support Nævn FPGA-enhedens varenummer, vælg passende sagskategori, og upload design files, mens du opretter en teknisk supportsag.
Kontakt kundeservice for ikke-teknisk produktsupport, såsom produktpriser, produktopgraderinger, opdateringsoplysninger, ordrestatus og godkendelse.
- Fra Nordamerika, ring 800.262.1060
- Fra resten af verden, ring på 650.318.4460
- Fax, hvor som helst i verden, 650.318.8044
Mikrochip information
Varemærker
"Microchip"-navnet og -logoet, "M"-logoet og andre navne, logoer og mærker er registrerede og uregistrerede varemærker tilhørende Microchip Technology Incorporated eller dets tilknyttede selskaber og/eller datterselskaber i USA og/eller andre lande ("Microchip" varemærker"). Oplysninger om Microchip-varemærker kan findes på https://www.microchip.com/en-us/about/legal-information/microchip-trademarks
ISBN:
Juridisk meddelelse
- Denne publikation og oplysningerne heri må kun bruges med Microchip-produkter, herunder til at designe, teste og integrere Microchip-produkter med din applikation. Brug af disse oplysninger
på anden måde overtræder disse vilkår. Oplysninger om enhedsapplikationer gives kun for din bekvemmelighed og kan blive afløst af opdateringer. Det er dit ansvar at sikre, at din ansøgning lever op til dine specifikationer. Kontakt dit lokale Microchip salgskontor for yderligere support, eller få yderligere support på www.microchip.com/en-us/support/design-help/client-support-services - DISSE OPLYSNINGER LEVERES AF MICROCHIP "SOM DE ER". MICROCHIP GIVER INGEN REPRÆSENTATIONER ELLER GARANTIER AF NOGEN ART, HVERKEN UDTRYKKELIGE ELLER UNDERFORSTÅEDE, SKRIFTLIGE ELLER mundtlige, LOVBESTEMMET ELLER ANDEN MÅDE, RELATET TIL OPLYSNINGERNE, INKLUSIVE MEN IKKE BEGRÆNSET TIL NOGEN STILTIENDE GARANTIER, GARANTIER OG GARANTIER. EGNETHED TIL ET BESTEMT FORMÅL ELLER GARANTIER RELATET TIL DETS TILSTAND, KVALITET ELLER YDELSE.
- MICROCHIP ER UNDER INGEN OMSTÆNDIGHEDER ANSVARLIG FOR INDIREKTE, SÆRLIGE, PØNALE, TILFÆLDIGE ELLER FØLGESKADER, OMKOSTNINGER ELLER UDGIFT AF NOGEN ART I FORBINDELSE MED INFORMATIONEN ELLER DERES BRUG, UANSET ÅRSAG, SELVOM MICROCHIP ER BLEVET UNDERRETTET OM MULIGHEDEN FOR, ELLER AT SKADERNE KAN FORUDSES. I DET OMFANG, LOVEN TILLADER DET, VIL MICROCHIPS SAMLEDE ANSVAR FOR ALLE KRAV, DER PÅ NOGEN MÅDE ER FORBUNDET MED INFORMATIONEN ELLER DERES BRUG, IKKE OVERSTIGE DET BELØB FOR GEBYRER, EVENTUELLE, SOM DU HAR BETALT DIREKTE TIL MICROCHIP FOR INFORMATIONEN.
- Brug af Microchip-enheder i livsstøtte- og/eller sikkerhedsapplikationer er helt på købers risiko, og køberen indvilliger i at forsvare, skadesløsholde og holde Microchip skadesløs fra enhver skade, krav, sager eller udgifter som følge af sådan brug. Ingen licenser videregives, implicit eller på anden måde, under nogen af Microchips intellektuelle ejendomsrettigheder, medmindre andet er angivet.
Mikrochip-enheder kodebeskyttelsesfunktion
Bemærk følgende detaljer om kodebeskyttelsesfunktionen på Microchip-produkter:
- Microchip-produkter opfylder specifikationerne i deres særlige Microchip-datablad.
- Microchip mener, at dens familie af produkter er sikre, når de bruges på den tilsigtede måde, inden for driftsspecifikationerne og under normale forhold.
- Microchip værdsætter og beskytter aggressivt sine intellektuelle ejendomsrettigheder. Forsøg på at bryde kodebeskyttelsesfunktionerne i Microchip-produkter er strengt forbudt og kan være i strid med Digital Millennium Copyright Act.
- Hverken Microchip eller nogen anden halvlederproducent kan garantere sikkerheden af deres kode. Kodebeskyttelse betyder ikke, at vi garanterer, at produktet er "ubrydeligt". Kodebeskyttelse er i konstant udvikling. Microchip er forpligtet til løbende at forbedre kodebeskyttelsesfunktionerne i vores produkter.
Brugervejledning
© 2025 Microchip Technology Inc. og dets datterselskaber
Dokumenter/ressourcer
![]() |
MICROCHIP Core16550 universel asynkron modtager-sender [pdfBrugervejledning v3.4, v3.3, Core16550 universel asynkron modtager-sender, Core16550, universel asynkron modtager-sender, asynkron modtager-sender, modtager-sender, sender |
