MICROCHIP Core16550 Uniwersalny odbiornik asynchroniczny nadajnik

Wstęp
Core16550 to standardowy uniwersalny asynchroniczny odbiornik-nadajnik (UART), który zapewnia zgodność oprogramowania z powszechnie używanym układem 16550. Obsługuje konwersję danych z portu szeregowego na równoległy dla sygnałów wejściowych z modemów lub innych urządzeń szeregowych oraz wykonuje konwersję z portu równoległego na szeregowy dla danych przesyłanych z procesora do tych urządzeń.
Podczas transmisji dane są zapisywane równolegle do bufora transmisyjnego FIFO (First-In, First-Out) układu UART. Następnie dane są serializowane w celu ich wyprowadzenia. Podczas odbioru układ UART konwertuje przychodzące dane szeregowe na równoległe, umożliwiając procesorowi łatwy dostęp.
Typowe zastosowanie układu UART 16550 przedstawiono na poniższym rysunku.
Rysunek 1. Typowe zastosowanie 16550
Tabela 1. Podsumowanie Core16550

Główne cechy
Oto najważniejsze cechy procesora Core16550:
- Nadajnik i odbiornik są buforowane przy użyciu pamięci FIFO o pojemności do 16 bajtów w celu ograniczenia liczby przerwań przesyłanych do procesora.
- Dodaje lub usuwa standardowe bity komunikacji asynchronicznej (start, stop i parzystość).
- Niezależnie sterowane przerwania transmisji, odbioru, stanu linii i zestawu danych
- Programowalny generator bodów
- Funkcje sterowania modemem (CTSn, RTSn, DSRn, DTRn, RIn i DCDn).
- Interfejs rejestru zaawansowanej magistrali peryferyjnej (APB).
Wycofane funkcje
Obsługa języka opisu sprzętu (VHDL) dla układów scalonych o bardzo dużej szybkości (VHSIC) nie zostanie ukończona w tej wersji.
Informacje o dzienniku zmian Core16550
Ta sekcja zawiera wyczerpujące informacje oview nowo wprowadzonych funkcji, począwszy od najnowszej wersji.
| Wersja | Co nowego |
| Core16550 v3.4 | Core16550 używa systemowego słowa kluczowego „break” w Verilog jako nazwy rejestru, co powodowało błąd składni. Słowo kluczowe zostało zastąpione inną nazwą, aby rozwiązać ten problem.
Dodano obsługę rodziny PolarFire® |
| Core16550 v3.3 | Dodano obsługę rodziny układów FPGA odpornych na promieniowanie (RTG4™) |
- Opis bloku funkcjonalnego (Zadaj pytanie)
W tej sekcji znajduje się krótki opis każdego elementu wewnętrznego schematu blokowego, jak pokazano na poniższym rysunku.
Rysunek 1-1. Schemat blokowy Core16550

Elementy wewnętrznego schematu blokowego (Zadaj pytanie)
W poniższej sekcji znajdują się informacje o elementach wewnętrznego schematu blokowego.
- RWControl (Zadaj pytanie)
Blok RWControl odpowiada za obsługę komunikacji z procesorem (równoległej) systemu. Cały zapis i odczyt rejestrów wewnętrznych odbywa się za pośrednictwem tego bloku. - UART_Reg (Zadaj pytanie)
Blok UART_Reg zawiera wszystkie wewnętrzne rejestry urządzenia. - RXBlock (Zadaj pytanie)
To jest blok odbiorczy. RXBlock odbiera przychodzące słowo szeregowe. Jest programowalny do rozpoznawania szerokości danych, takich jak 5, 6, 7 lub 8 bitów; różnych ustawień parzystości, takich jak parzystość, nieparzystość lub brak parzystości; oraz różnych bitów stopu, takich jak 1, 1 i 2 bity. RXBlock sprawdza błędy w strumieniu danych wejściowych, takie jak błędy przepełnienia, błędy ramki, błędy parzystości i błędy przerwania. Jeśli słowo przychodzące nie ma problemów, jest umieszczane w kolejce FIFO odbiornika. - Kontrola przerwań (Zadaj pytanie)
Blok sterowania przerwaniami wysyła sygnał przerwania z powrotem do procesora, w zależności od stanu bufora FIFO oraz odebranych i przesłanych danych. Rejestr identyfikacji przerwania określa poziom przerwania. Przerwania są wysyłane w przypadku pustych buforów transmisji/odbioru (FIFO), błędu w odbiorze znaku lub innych sytuacji wymagających uwagi procesora. - Generator szybkości transmisji (Zadaj pytanie)
Ten blok pobiera wejściowy sygnał PCLK i dzieli go przez zaprogramowaną wartość (od 1 do 216 – 1). Wynik jest dzielony przez 16, aby utworzyć zegar transmisji (BAUDOUT). - TXBlock (Zadaj pytanie)
Blok Transmit obsługuje transmisję danych zapisanych w kolejce FIFO Transmit. Dodaje on wymagane bity startu, parzystości i stopu do przesyłanych danych, aby urządzenie odbiorcze mogło poprawnie obsłużyć błędy i je odebrać.
Interfejs oprogramowania (Zadaj pytanie)
W tej sekcji opisano definicje rejestrów Core16550 i mapowania adresów. Poniższa tabela przedstawia podsumowanie rejestrów Core16550.
| PADDR[4:0]
(Adres) |
Bit dostępu do zatrzasku dzielnika1
(DLAB) |
Nazwa | Symbol | Wartość domyślna (reset) | Liczba bitów | Odczyt/Zapis |
| 00 | 0 | Rejestr bufora odbiornika | RBR | XX | 8 | R |
| 00 | 0 | Rejestr Nadajników | THR | XX | 8 | W |
| 00 | 1 | Zatrzask dzielnika (LSB) | DLR | 01 godz. | 8 | Odczyt/zapis |
| 04 | 1 | Zatrzask dzielnika (MSB) | DMR | 00 godz. | 8 | Odczyt/zapis |
| 04 | 0 | Rejestr włączający przerwanie | IER | 00 godz. | 8 | Odczyt/zapis |
| 08 | X | Rejestr identyfikacji przerwań | IIR | C1h | 8 | R |
| 08 | X | Rejestr kontroli FIFO | FCR | 01 godz. | 8 | W |
| 0C | X | Rejestr sterowania linią | LCR | 00 godz. | 8 | Odczyt/zapis |
| 10 | X | Rejestr sterowania modemem | MCR | 00 godz. | 8 | Odczyt/zapis |
| 14 | X | Rejestr statusu linii | LSR | 60 godz. | 8 | R |
| 18 | X | Rejestr stanu modemu | MSR | 00 godz. | 8 | R |
| 1C | X | Rejestr zdrapek | SR | 00 godz. | 8 | Odczyt/zapis |
Ważny
DLAB jest najistotniejszym bitem rejestru sterowania linią (bit LCR 7).
Rejestr bufora odbiornika (Zadaj pytanie)
Rejestr bufora odbiornika zdefiniowano w poniższej tabeli.
Tabela 1-2. Rejestr bufora odbiornika (tylko do odczytu) — adres 0 DLAB 0
| Bity | Nazwa | Stan domyślny | Ważne stany | Funkcjonować |
| 7..0 | RBR | XX | 0..FFh | Odebrane bity danych. Bit 0 to najmniej znaczący bit (LSB) i jest pierwszym odebranym bitem. |
Rejestr Nadajników (Zadaj Pytanie)
Rejestr Transmitter Holding zdefiniowano w poniższej tabeli.
Tabela 1-3. Rejestr pamięci nadajnika — tylko do zapisu
| Bity | Nazwa | Stan domyślny | Ważne stany | Funkcjonować |
| 7..0 | THR | XX | 0..FFh | Do przesyłania bitów danych. Bit 0 to najmniej znaczący bit (LSB), który jest przesyłany jako pierwszy. |
Rejestr kontrolny FIFO (Zadaj pytanie)
Rejestr sterujący FIFO zdefiniowano w poniższej tabeli.
| Bity (7:0) | Stan domyślny | Ważne stany | Funkcjonować |
| 0 | 1 | 0, 1 | Włącza zarówno transceiver (Tx), jak i receiver (Rx) FIFO. Ten bit musi być ustawiony na 1 podczas zapisywania innych bitów FCR, w przeciwnym razie nie zostaną one zaprogramowane.
0: Wyłączone 1: Włączone |
| 1 | 0 | 0, 1 | Czyści wszystkie bajty w kolejce FIFO Rx i resetuje logikę licznika. Rejestr przesuwny nie jest czyszczony.
0: Wyłączone 1: Włączone |
| 2 | 0 | 0, 1 | Czyści wszystkie bajty w kolejce FIFO transmisji i resetuje logikę licznika. Rejestr przesuwny nie jest czyszczony.
0: Wyłączone 1: Włączone |
| 3 | 0 | 0, 1 | 0: Pojedynczy transfer DMA: Transfer wykonywany pomiędzy cyklami magistrali procesora
1: Wielotransferowy DMA: Transfery realizowane do momentu, aż FIFO Rx będzie puste lub FIFO Transmisyjne Operatora Systemu Przesyłowego (TSO) będzie zapełnione. Aby ustawić FCR[0] na 1, należy ustawić FCR[3] na 1. |
| 4, 5 | 0 | 0, 1 | Zarezerwowane do wykorzystania w przyszłości. |
| 6, 7 | 0 | 0, 1 | Te bity służą do ustawienia poziomu wyzwalania przerwania FIFO Rx. 7 6 Poziom wyzwalania FIFO Rx (bajty)
0 0 01 0 1 04 1 0 08 1 1 14 |
Rejestry sterujące dzielnikiem (Zadaj pytanie)
Zegar szybkości transmisji (BR) generowany jest poprzez podzielenie sygnału zegara referencyjnego wejściowego (PCLK) przez 16 i wartość dzielnika.
W poniższej tabeli wymieniono byłegoampwartość dzielnika le dla żądanego BR przy użyciu zegara referencyjnego 18.432 MHz.
Tabela 1-5. Zatrzask dzielnika (LS i MS)
| Bity | Nazwa | Stan domyślny | Ważne stany | Funkcjonować |
| 7..0 | DLR | 01 godz. | 01..FFh | Najmniejszy bit wartości dzielnika |
| 7..0 | DMR | 00 godz. | 00..FFh | MSB wartości dzielnika |
Tabela 1-6. Prędkości transmisji i wartości dzielnika dla zegara referencyjnego 18.432 MHz
| Szybkość transmisji | Dzielnik dziesiętny (wartość dzielnika) | Błąd procentowy |
| 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% |
| Szybkość transmisji | Dzielnik dziesiętny (wartość dzielnika) | Błąd procentowy |
| 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% |
Rejestr włączający przerwanie (Zadaj pytanie)
Rejestr włączania przerwań jest zdefiniowany w poniższej tabeli.
Tabela 1-7. Rejestr włączania przerwań
| Bity | Nazwa | Stan domyślny | Stan ważny | Funkcjonować |
| 0 | ERBFI | 0 | 0, 1 | Włącza „Przerwanie dostępności odebranych danych” 0: Wyłączone
1: Włączone |
| 1 | ETBEI | 0 | 0, 1 | Włącza „Przerwanie z powodu pustego rejestru nadajnika” 0: Wyłączone
1: Włączone |
| 2 | ELSI | 0 | 0, 1 | Włącza „Przerwanie stanu linii odbiorczej” 0: Wyłączone
1: Włączone |
| 3 | EDSSI | 0 | 0, 1 | Włącza „Przerwanie stanu modemu” 0: Wyłączone
1: Włączone |
| 7..4 | Skryty | 0 | 0 | Zawsze 0 |
Rejestr identyfikacji przerwań (Zadaj pytanie)
Rejestr identyfikacji przerwania jest wymieniony w poniższej tabeli. Tabela 1-8. Rejestr identyfikacji przerwania
| Bity | Nazwa | Stan domyślny | Ważne stany | Funkcjonować |
| 3..0 | IIR | 1h | 0..Ch | Bity identyfikacyjne przerwania. |
| 5..4 | Skryty | 00 | 00 | Zawsze 00 |
| 7..6 | Tryb | 11 | 11 | 11: Tryb FIFO |
Pole rejestru Identyfikacja przerwania jest zdefiniowane w poniższej tabeli.
Tabela 1-9. Pole rejestru identyfikacji przerwania (IIR)
| Wartość IIR [3:0)] | Poziom priorytetu | Typ przerwania | Źródło przerwania | Kontrola resetowania przerwań |
| 0110 | Najwyższy | Status linii odbiorczej | Błąd przepełnienia, błąd parzystości, błąd ramki lub przerwanie | Odczyt rejestru stanu linii |
| 0100 | Drugi | Otrzymane dane są dostępne | Dostępne dane odbiornika | Odczyt rejestru bufora odbiornika lub spadek wartości FIFO poniżej poziomu wyzwalania |
| Tabela 1-9. Pole rejestru identyfikacji przerwania (IIR) (ciąg dalszy) | ||||
| Wartość IIR [3:0)] | Poziom priorytetu | Typ przerwania | Źródło przerwania | Kontrola resetowania przerwań |
| 1100 | Drugi | Wskaźnik przekroczenia limitu czasu znaku | W ciągu ostatnich czterech odczytów znaku z kolejki Rx FIFO nie odczytano żadnego znaku, a w tym czasie znajdował się w niej co najmniej jeden znak. | Odczyt rejestru bufora odbiornika |
| 0010 | Trzeci | Nadajnik Trzymający rejestr pusty | Nadajnik Trzymający rejestr pusty | Odczytanie IIR lub zapisanie do rejestru Transmitter Holding |
| 0000 | Czwarty | Stan modemu | Gotowość do wysłania, gotowy zestaw danych, wskaźnik dzwonienia lub wykrycie nośnika danych | Odczyt rejestru statusu nowoczesnego |
Rejestr sterowania linią (Zadaj pytanie)
Rejestr sterowania linią jest wymieniony w poniższej tabeli. Tabela 1-10. Rejestr sterowania linią
| Bity | Nazwa | Stan domyślny | Ważne stany | Funkcjonować |
| 1..0 | WLS | 0 | 0..3h | Wybierz długość słowa 00: 5 bitów
01: 6 bity 10: 7 bity 11: 8 bity |
| 2 | STB | 0 | 0, 1 | Liczba bitów stopu 0: 1 bit stopu
1: 1½ bitów stopu, gdy WLS = 00 2: bity stopu w innych przypadkach |
| 3 | PIÓRO | 0 | 0, 1 | Włącz parzystość 0: Wyłączone
1: Włączone. Parzystość jest dodawana podczas transmisji i sprawdzana podczas odbioru. |
| 4 | EPS | 0 | 0, 1 | Parzystość parzysta Wybierz 0: Parzystość nieparzysta
1: Parzystość parzysta |
| 5 | SP | 0 | 0, 1 | Parzystość pamięci 0: Wyłączona
1: Włączone Poniżej przedstawiono szczegóły parzystości, gdy włączona jest parzystość pamięci: Bity 4..3 11: 0 zostanie wysłane jako bit parzystości i sprawdzone podczas odbioru. 01: 1 zostanie wysłane jako bit parzystości i sprawdzone podczas odbioru. |
| 6 | SB | 0 | 0, 1 | Ustaw przerwę 0: Wyłączone
1: Ustaw przerwę. SOUT jest wymuszane na 0. Nie ma to żadnego wpływu na logikę nadajnika. Przerwę wyłącza się, ustawiając bit na 0. |
| 7 | DLAB | 0 | 0, 1 | Bit dostępu do zatrzasku dzielnika
0: Wyłączone. Używany jest normalny tryb adresowania. 1: Włączone. Umożliwia dostęp do rejestrów Divisor Latch podczas operacji odczytu lub zapisu pod adresami 0 i 1. |
Rejestr sterowania modemem (Zadaj pytanie)
Rejestr sterowania modemem znajduje się w poniższej tabeli.
| Bity | Nazwa | Stan domyślny | Ważne stany | Funkcjonować |
| 0 | DTR | 0 | 0, 1 | Steruje wyjściem gotowości terminala danych (DTRn). 0: DTRn <= 1
1: DTRn <= 0 |
| 1 | RTS | 0 | 0, 1 | Steruje wyjściem żądania wysłania (RTSn). 0: RTSn <= 1
1: RTSn <= 0 |
| 2 | Wyjście1 | 0 | 0, 1 | Steruje sygnałem Output1 (OUT1n). 0: OUT1n <= 1
1: OUT1n <= 0 |
| 3 | Wyjście2 | 0 | 0, 1 | Steruje sygnałem Output2 (OUT2n). 0: OUT2n <= 1
1: OUT2n <= 0 |
| 4 | Pętla | 0 | 0, 1 | Bit włączania pętli 0: Wyłączone
1: Włączone. W trybie pętli występują następujące zdarzenia: Wyjście SOUT jest ustawione na 1. Wejścia SIN, DSRn, CTSn, RIn i DCDn są odłączone. Wyjście rejestru przesuwnego nadajnika jest zapętlone z powrotem do rejestru przesuwnego odbiornika. Wyjścia sterujące modemem (DTRn, RTSn, OUT1n i OUT2n) są podłączone wewnętrznie do wejść sterujących modemem, a piny wyjściowe sterowania modemem są ustawione na 1. W trybie pętli zwrotnej przesyłane dane są natychmiast odbierane, co pozwala procesorowi sprawdzić działanie UART. Przerwania działają w trybie pętli. |
| 7..4 | Skryty | 0h | 0 | Skryty |
Rejestr statusu linii (Zadaj pytanie)
Rejestr statusu linii zdefiniowano w poniższej tabeli.
Tabela 1-12. Rejestr stanu linii — tylko do odczytu
| Bity | Nazwa | Stan domyślny | Ważne stany | Funkcjonować |
| 0 | DR | 0 | 0, 1 | Wskaźnik gotowości danych
1, gdy bajt danych został odebrany i zapisany w buforze odbiorczym lub FIFO. DR jest zerowany, gdy procesor odczytuje dane z bufora odbiorczego lub FIFO. |
| 1 | OE | 0 | 0, 1 | Wskaźnik błędu przepełnienia
Oznacza, że nowy bajt został odebrany przed odczytaniem bajtu z bufora odbiorczego przez procesor, a wcześniejszy bajt danych został zniszczony. Błąd OE jest czyszczony, gdy procesor odczytuje rejestr stanu linii. Jeśli dane nadal wypełniają pamięć FIFO poza poziomem wyzwalania, po zapełnieniu pamięci FIFO i całkowitym odczytaniu kolejnego znaku wystąpi błąd przepełnienia. Otrzymany w rejestrze przesuwnym. Znak w rejestrze przesuwnym jest nadpisywany, ale nie jest przenoszony do FIFO. |
| 2 | PE | 0 | 0, 1 | Wskaźnik błędu parzystości
Wskazuje, że odebrany bajt zawierał błąd parzystości. PE jest czyszczony, gdy procesor odczytuje rejestr stanu linii. Ten błąd jest ujawniany procesorowi, gdy powiązany z nim znak znajduje się na szczycie kolejki FIFO. |
| 3 | FE | 0 | 0, 1 | Wskaźnik błędu ramkowania
Wskazuje, że odebrany bajt nie miał prawidłowego bitu stopu. FE jest kasowane, gdy procesor odczytuje rejestr stanu linii. UART podejmie próbę resynchronizacji po wystąpieniu błędu ramkowania. W tym celu zakłada, że błąd ramkowania był spowodowany kolejnym bitem startu, więc…ampUsuwa ten bit startowy dwukrotnie, a następnie rozpoczyna odbieranie danych. Ten błąd jest ujawniany procesorowi, gdy powiązany z nim znak znajduje się na szczycie kolejki FIFO. |
| Tabela 1-12. Rejestr stanu linii — tylko do odczytu (ciąg dalszy) | ||||
| Bity | Nazwa | Stan domyślny | Ważne stany | Funkcjonować |
| 4 | BI | 0 | 0, 1 | Wskaźnik przerwania
Oznacza, że odebrane dane mają wartość 0, czyli są dłuższe niż czas transmisji pełnego słowa (bit startowy) + Bity danych + Parzystość + Bity stopu). BI jest czyszczone, gdy procesor odczytuje rejestr stanu linii. Ten błąd jest ujawniany procesorowi, gdy powiązany z nim znak znajduje się na szczycie kolejki FIFO. W przypadku wystąpienia przerwy, do kolejki FIFO ładowany jest tylko jeden znak zerowy. |
| 5 | TRZY | 1 | 0, 1 | Wskaźnik pustego rejestru nadajnika (THRE)
Wskazuje, że UART jest gotowy do przesłania nowego bajtu danych. THRE powoduje przerwanie procesora, gdy bit 1 (ETBEI) w rejestrze włączenia przerwania wynosi 1. Ten bit jest ustawiany, gdy pamięć FIFO TX jest pusta. Jest czyszczony, gdy co najmniej jeden bajt zostanie zapisany w pamięci FIFO TX. |
| 6 | TEMT | 1 | 0, 1 | Wskaźnik pustego nadajnika
Ten bit jest ustawiony na 1, gdy zarówno rejestr FIFO nadajnika, jak i rejestr przesuwny są puste. |
| 7 | PIERWSZY | 0 | 1 | Ten bit jest ustawiany, gdy w kolejce FIFO występuje co najmniej jeden błąd parzystości, błąd ramkowania lub wskazanie przerwy. Bit FIER jest zerowany, gdy procesor odczytuje LSR, jeśli w kolejce FIFO nie ma już kolejnych błędów. |
Rejestr stanu modemu (Zadaj pytanie)
Rejestr statusu modemu znajduje się w poniższej tabeli.
Tabela 1-13. Rejestr stanu modemu — tylko do odczytu
| Bity | Nazwa | Stan domyślny | Ważne stany | Funkcjonować |
| 0 | DCT | 0 | 0, 1 | Wskaźnik Delta Gotowość do wysłania.
Oznacza, że stan wejścia CTSn zmienił się od czasu ostatniego odczytu przez procesor. |
| 1 | DDSR | 0 | 0, 1 | Wskaźnik gotowości zestawu danych Delta
Oznacza, że stan wejścia DSRn zmienił się od czasu ostatniego odczytu przez procesor. |
| 2 | TERI | 0 | 0, 1 | Detektor wskaźnika krawędzi spływu pierścienia. Wskazuje, że sygnał wejściowy RI zmienił się z 0 na 1. |
| 3 | DDCD | 0 | 0, 1 | Wskaźnik wykrycia nośnika danych Delta Informuje o zmianie stanu wejścia DCD.
Uwaga: Za każdym razem, gdy bit 0, 1, 2 lub 3 zostanie ustawiony na 1, generowane jest przerwanie stanu modemu. |
| 4 | CTS | 0 | 0, 1 | Wyczyść do wysłania
Uzupełnienie sygnału wejściowego CTSn. Gdy bit 4 rejestru sterującego modemem (MCR) jest ustawiony na 1 (pętla), bit ten jest równoważny sygnałowi DTR w rejestrze MCR. |
| 5 | DSR | 0 | 0, 1 | Zestaw danych gotowy
Uzupełnienie sygnału wejściowego DSR. Gdy bit 4 MCR jest ustawiony na 1 (pętla), bit ten jest równoważny RTSn w MCR. |
| 6 | RI | 0 | 0, 1 | Wskaźnik dzwonka
Uzupełnienie sygnału wejściowego RIn. Gdy bit 4 MCR jest ustawiony na 1 (pętla), ten bit jest równoważny z OUT1 w MCR. |
| 7 | DCD | 0 | 0, 1 | Wykrywanie nośnika danych
Uzupełnienie wejścia DCDn. Gdy bit 4 MCR jest ustawiony na 1 (pętla), ten bit jest równoważny z OUT2 w MCR. |
Rejestr zdrapek (Zadaj pytanie)
Rejestr Scratch zdefiniowano w poniższej tabeli.
| Bity | Nazwa | Stan domyślny | Funkcjonować |
| 7..0 | SCR | 00 godz. | Rejestr odczytu/zapisu dla procesora. Nie ma wpływu na działanie UART. |
Przepływy narzędzi (Zadaj pytanie)
W tej sekcji znajdują się szczegółowe informacje na temat przepływów narzędzi.
Inteligentny projekt (Zadaj pytanie)
Moduł Core16550 jest dostępny do pobrania w środowisku projektowania wdrożeń IP SmartDesign. Rdzeń konfiguruje się za pomocą graficznego interfejsu użytkownika w SmartDesign, patrz poniższy rysunek.
Informacje na temat korzystania z programu SmartDesign do tworzenia wystąpień, konfigurowania, łączenia i generowania rdzeni można znaleźć w Podręczniku użytkownika programu SmartDesign.
Rysunek 2-1. Konfiguracja Core16550

Przepływy symulacyjne (Zadaj pytanie)
W każdej wersji uwzględniono środowisko testowe Core16550.
Aby uruchomić symulacje, wybierz opcję „Przepływ testbencha użytkownika” w SmartDesign i kliknij „Generuj projekt” w menu SmartDesign. Testbench użytkownika wybiera się za pomocą graficznego interfejsu użytkownika konfiguracji testbencha głównego.
Gdy SmartDesign generuje projekt Libero SoC, instaluje środowisko testowe użytkownika files.
Aby uruchomić testbench użytkownika, ustaw korzeń projektu na instancję Core16550 w panelu Libero SoC Design Hierarchy i kliknij ikonę Symulacja w oknie SoC Design Flow. Spowoduje to wywołanie ModelSim® i automatyczne uruchomienie symulacji.
Synteza w Libero SoC (Zadaj pytanie)
Kliknij ikonę Synthesis w Libero SoC. Pojawi się okno Synthesis. Projekt Synplify®. Ustaw Synplify tak, aby używał standardu Verilog 2001, jeśli używany jest Verilog. Aby uruchomić Synthesis, kliknij ikonę Uruchom.
Place-and-Route w Libero SoC (Zadaj pytanie)
Aby odpowiednio ustawić trasę projektu i uruchomić syntezę, kliknij ikonę układu w Libero SoC i wywołaj Designera. Core16550 nie wymaga żadnych specjalnych ustawień miejsca i trasy.
Core16550 (Zadaj pytanie)
W tej sekcji znajdują się informacje o parametrach używanych w tym rdzeniu.
Parametry (Zadaj pytanie)
Core16550 nie obsługuje żadnych parametrów najwyższego poziomu.
Interfejsy główne (Zadaj pytanie)
W tej sekcji znajduje się podsumowanie danych wejściowych i wyjściowych.
Opis sygnału I/O (Zadaj pytanie)
Poniżej znajduje się lista definicji Core16550 I/O.
| Nazwa | Typ | Biegunowość | Opis |
| WSTĘPNE | Wejście | Niski | Reset główny |
| PCLK | Wejście | — | Zegar główny
Sygnał PCLK jest dzielony przez wartość rejestrów Divisor. Wynik jest następnie dzielony przez 16, aby uzyskać szybkość transmisji. Sygnał wynikowy to sygnał BAUDOUT. Narastające zbocze tego pinu służy do strobowania wszystkich sygnałów wejściowych i wyjściowych. |
| NAPISZ | Wejście | Wysoki | Włączony zapis/odczyt APB, stan aktywny-wysoki.
W stanie wysokim dane są zapisywane pod wskazanym adresem. W stanie niskim dane są odczytywane z podanego adresu. |
| PADDR[4:0] | Wejście | — | Adres APB
Magistrala ta zapewnia procesorowi połączenie z adresem rejestru Core16550, w celu odczytu lub zapisu. |
| PSEL | Wejście | Wysoki | Wybór APB
Gdy ta wartość jest wysoka wraz z wartością PENABLE, odczyt i zapis do Core16550 jest możliwy. |
| DANE PW[7:0] | Wejście | — | Magistrala wejściowa danych
Dane na tej magistrali zostaną zapisane do zaadresowanego rejestru podczas cyklu zapisu. |
| KARNY | Wejście | Wysoki | Włącz APB
Gdy wartość ta jest wysoka wraz z wartością PSEL, możliwy jest odczyt i zapis do Core16550. |
| PRDANE[7:0] | Wyjście | — | Magistrala wyjściowa danych
Ta magistrala przechowuje wartość adresowanego rejestru podczas cyklu odczytu. |
| CTSn | Wejście | Niski | Wyczyść do wysłania
Ten aktywny sygnał niski to sygnał wejściowy, który informuje, kiedy podłączone urządzenie (modem) jest gotowe do odbioru danych. Układ Core16550 przekazuje tę informację do procesora poprzez rejestr stanu modemu. Rejestr ten wskazuje również, czy sygnał CTSn zmienił się od ostatniego odczytu rejestru. |
| DSRn | Wejście | Niski | Zestaw danych gotowy
Ten aktywny sygnał niski to sygnał wejściowy wskazujący, kiedy podłączone urządzenie (modem) jest gotowe do nawiązania połączenia z Core16550. Core16550 przekazuje tę informację do procesora poprzez rejestr stanu modemu. Rejestr ten wskazuje również, czy sygnał DSRn zmienił się od ostatniego odczytu rejestru. |
| DCDn | Wejście | Niski | Wykrywanie nośnika danych
Ten aktywny sygnał niski to sygnał wejściowy wskazujący, kiedy podłączone urządzenie (modem) wykryło nośną. Procesor Core16550 przekazuje tę informację do procesora za pośrednictwem rejestru stanu modemu. Rejestr ten wskazuje również, czy sygnał DCDn zmienił się od ostatniego odczytu. |
| GRZECH | Wejście | — | Dane wejściowe szeregowe
Dane te są przesyłane do układu Core16550. Są one synchronizowane z pinem wejściowym PCLK. |
| RIn | Wejście | Niski | Wskaźnik dzwonka
Ten aktywny sygnał niski to sygnał wejściowy, który informuje, kiedy podłączone urządzenie (modem) wykryło sygnał dzwonienia na linii telefonicznej. Procesor Core16550 przekazuje tę informację do procesora poprzez rejestr stanu modemu. Rejestr ten wskazuje również, kiedy wykryto opadające zbocze sygnału RIn. |
| POŁUDNIE | Wyjście | — | Dane wyjściowe szeregowe
Dane te są przesyłane z układu Core16550. Są one synchronizowane z pinem wyjściowym BAUDOUT. |
| RTSn | Wyjście | Niski | Prośba o wysłanie
Ten aktywny sygnał wyjściowy w stanie niskim służy do informowania podłączonego urządzenia (modemu), że układ Core16550 jest gotowy do wysyłania danych. Jest on programowany przez procesor za pomocą rejestru sterującego modemem. |
| Tabela 4-1. Podsumowanie sygnałów wejścia/wyjścia (ciąg dalszy) | |||
| Nazwa | Typ | Biegunowość | Opis |
| DTRn | Wyjście | Niski | Gotowy terminal danych
Ten aktywny sygnał wyjściowy w stanie niskim informuje podłączone urządzenie (modem), że układ Core16550 jest gotowy do nawiązania połączenia komunikacyjnego. Jest on programowany przez procesor za pomocą rejestru sterującego modemem. |
| WYJŚCIE 1n | Wyjście | Niski | Wyjście 1
To aktywne, niskie wyjście jest sygnałem zdefiniowanym przez użytkownika. Procesor programuje ten sygnał za pomocą rejestru sterującego modemem i ustawia go na wartość przeciwną. |
| WYJŚCIE 2n | Wyjście | Niski | Wyjście 2
Ten aktywny sygnał wyjściowy o niskim poziomie jest sygnałem zdefiniowanym przez użytkownika. Jest on programowany przez procesor za pomocą rejestru sterującego modemem i ustawiany na wartość przeciwną. |
| WSTĘP | Wyjście | Wysoki | Oczekujące przerwanie
Ten aktywny sygnał wyjściowy o stanie wysokim to sygnał wyjściowy przerwania z procesora Core16550. Jest on zaprogramowany tak, aby aktywował się w przypadku wystąpienia określonych zdarzeń, informując procesor o ich wystąpieniu (więcej szczegółów w sekcji Rejestr Identyfikacji Przerwań). Procesor podejmuje wówczas odpowiednie działanie. |
| BAUDOUTn | Wyjście | Niski | Wyjście bodowe
Jest to sygnał zegara wyjściowego pochodzący z zegara wejściowego służący do synchronizacji strumienia danych wyjściowych z SOUT. |
| RXRDYN | Wyjście | Niski | Odbiornik gotowy do odbioru transmisji.
Aktywny, niski sygnał wyjściowy informuje procesor, że sekcja odbiorcza Core16550 jest gotowa do odczytu danych. |
| TXRDYN | Wyjście | Niski | Nadajnik gotowy do transmisji danych.
Ten aktywny, niski sygnał informuje procesor, że sekcja nadawcza Core16550 ma przestrzeń do zapisu danych do transmisji. |
| rxfifo_pusty | Wyjście | Wysoki | Odbierz pusty FIFO.
Sygnał ten staje się wysoki, gdy kolejka FIFO odbiorcza jest pusta. |
| rxfifo_full | Wyjście | Wysoki | Odbierz FIFO w całości.
Ten sygnał staje się wysoki, gdy bufor odbiorczy FIFO jest pełny. |
Diagramy czasowe (zadaj pytanie)
W tej sekcji znajdują się diagramy czasowe tego rdzenia.
Cykl zapisu danych i cykl odczytu danych (Zadaj pytanie)
Na rysunkach 5-1 i 5-2 przedstawiono zależności czasowe pomiędzy cyklami zapisu i odczytu w odniesieniu do zegara systemowego APB, PCLK.
Zarejestruj się Napisz (Zadaj pytanie)
Poniższy rysunek pokazuje, że sygnały Address, Select i Enable są blokowane i muszą być ważne przed narastającym zboczem sygnału PCLK. Zapis następuje na narastającym zboczu sygnału PCLK.
Zarejestruj się Przeczytaj (Zadaj pytanie)
Poniższy rysunek pokazuje, że sygnały Address, Select i Enable są blokowane i muszą być prawidłowe przed narastającym zboczem sygnału PCLK. Odczyt następuje na narastającym zboczu sygnału PCLK.
Więcej szczegółów na temat opisów i przebiegów czasowych można znaleźć w specyfikacji AMBA.
Synchronizacja odbiornika (Zadaj pytanie)
Gdy odbiornik wykryje stan niski w przychodzącym strumieniu danych, synchronizuje się z nim. Po zboczu początkowym UART czeka 1.5 × (standardowa długość bitu). Powoduje to, że każdy kolejny bit jest odczytywany w połowie swojej szerokości. Poniższy rysunek przedstawia ten proces synchronizacji.
Rysunek 5-3. Synchronizacja odbiornika
Działanie stanowiska testowego (Zadaj pytanie)
Z systemem Core16550 dostarczany jest tylko jeden testbench: Verilog User Testbench. Jest to łatwy w użyciu testbench napisany w Verilogu. Testbench jest przeznaczony do modyfikacji przez klienta.
Testbench użytkownika (Zadaj pytanie)
Poniższy rysunek przedstawia schemat blokowy exampprojekt użytkownika i stanowisko testowe.
Rysunek 6-1. Testbench użytkownika Core16550
Stanowisko testowe użytkownika zawiera prosty przykładampprojekt stanowiący punkt odniesienia dla użytkowników chcących wdrażać własne projekty.
Stanowisko testowe dla exampProjekt użytkownika implementuje podzbiór funkcjonalności testowanych w środowisku testowym weryfikacji. Więcej szczegółów można znaleźć w sekcji „Współczynnik testowy użytkownika”. Koncepcyjnie, jak pokazano na rysunku 6-1, instancjacja Core16550 jest symulowana przy użyciu mikrokontrolera behawioralnego i symulowanego połączenia zwrotnego. Na przykładample, user testbench demonstruje nadawanie i odbieranie przez tę samą jednostkę Core16550, dzięki czemu można zdobyć podstawową wiedzę na temat korzystania z tego rdzenia.
Testbench użytkownika demonstruje podstawową konfigurację oraz operacje nadawania i odbioru procesora Core16550. Testbench użytkownika wykonuje następujące kroki:
- Zapisz do rejestrów kontrolnych.
- Sprawdź otrzymane dane.
- Włącz nadawanie i odbiór.
- Odczytaj rejestry sterujące.
- Przesyłanie i odbieranie jednego bajtu.
Wykorzystanie i wydajność urządzenia (zadaj pytanie)
W poniższej tabeli przedstawiono dane dotyczące wykorzystania i wydajności procesora Core16550. Tabela 7-1. Wykorzystanie i wydajność procesora Core16550 PolarFire i PolarFire SoC
| Szczegóły urządzenia | Zasoby | BARAN | |||
| Rodzina | Urządzenie | 4LUT | DFF | Elementy logiczne | µ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 |
| Połączenie | 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 |
| Axcelerator® | AX125-STD | 608 | 229 | 837 | 2 |
Rozwiązane problemy (Zadaj pytanie)
W poniższej tabeli wymieniono wszystkie rozwiązane problemy dla różnych wersji procesora Core16550.
Tabela 8-1. Rozwiązane problemy
| Wersja | Zmiany |
| wersja 3.4 | Core16550 używa słowa kluczowego System Verilog „break” jako nazwy rejestru, co powodowało błąd składni. Problem został rozwiązany poprzez zastąpienie słowa kluczowego inną nazwą. Dodano obsługę rodziny PolarFire® |
Historia zmian (zadaj pytanie)
Historia rewizji opisuje zmiany, które zostały wprowadzone w dokumencie. Zmiany są wymienione według rewizji, zaczynając od najnowszej publikacji.

Obsługa mikrochipów FPGA
Grupa produktów Microchip FPGA wspiera swoje produkty różnymi usługami wsparcia, w tym Customer Service, Customer Technical Support Center, a webStrona internetowa i biura sprzedaży na całym świecie. Klientom zaleca się zapoznanie się z zasobami online Microchip przed skontaktowaniem się z pomocą techniczną, ponieważ jest bardzo prawdopodobne, że na ich pytania udzielono już odpowiedzi.
Skontaktuj się z Centrum Wsparcia Technicznego poprzez webmiejsce na www.microchip.com/support Podaj numer części urządzenia FPGA, wybierz odpowiednią kategorię obudowy i prześlij projekt files podczas tworzenia zgłoszenia do pomocy technicznej.
Skontaktuj się z działem obsługi klienta, aby uzyskać nietechniczne wsparcie dotyczące produktu, takie jak wycena produktów, aktualizacje produktów, informacje o aktualizacjach, status zamówienia i autoryzacja.
- Z Ameryki Północnej zadzwoń pod numer 800.262.1060
- Z reszty świata zadzwoń pod numer 650.318.4460
- Faks z dowolnego miejsca na świecie: 650.318.8044
Informacje o mikroczipie
Znaki towarowe
Nazwa i logo „Microchip”, logo „M” oraz inne nazwy, loga i marki są zarejestrowanymi i niezarejestrowanymi znakami towarowymi Microchip Technology Incorporated lub jej podmiotów stowarzyszonych i/lub spółek zależnych w Stanach Zjednoczonych i/lub innych krajach („Znaki towarowe Microchip”). Informacje dotyczące znaków towarowych Microchip można znaleźć na stronie https://www.microchip.com/en-us/about/legal-information/microchip-trademarks
Numer katalogowy:
Informacja prawna
- Niniejsza publikacja i zawarte w niej informacje mogą być używane wyłącznie z produktami Microchip, w tym do projektowania, testowania i integrowania produktów Microchip z aplikacją użytkownika. Wykorzystanie tych informacji
w jakikolwiek inny sposób narusza niniejsze warunki. Informacje dotyczące aplikacji na urządzeniu podawane są wyłącznie dla wygody użytkownika i mogą zostać zastąpione aktualizacjami. Twoim obowiązkiem jest upewnienie się, że Twoja aplikacja jest zgodna ze specyfikacjami. Aby uzyskać dodatkową pomoc, skontaktuj się z lokalnym biurem sprzedaży firmy Microchip lub uzyskaj dodatkową pomoc pod adresem www.microchip.com/en-us/support/design-help/client-support-services - INFORMACJE TE SĄ DOSTARCZANE PRZEZ MICROCHIP „TAKIE, JAKIE SĄ”. MICROCHIP NIE SKŁADA ŻADNYCH OŚWIADCZEŃ ANI GWARANCJI ŻADNEGO RODZAJU, WYRAŹNYCH ANI DOROZUMIANYCH, PISEMNYCH ANI USTNYCH, USTAWOWYCH ANI INNYCH, ZWIĄZANYCH Z INFORMACJAMI, W TYM MIĘDZY INNYMI ŻADNYCH DOROZUMIANYCH GWARANCJI NIENARUSZALNOŚCI, PRZYDATNOŚCI HANDLOWEJ I PRZYDATNOŚCI DO OKREŚLONEGO CELU LUB GWARANCJI ZWIĄZANYCH Z ICH STANEM, JAKOŚCIĄ LUB WYDAJNOŚCIĄ.
- W ŻADNYM WYPADKU MICROCHIP NIE PONOSI ODPOWIEDZIALNOŚCI ZA ŻADNE POŚREDNIE, SPECJALNE, KARNE, PRZYPADKOWE LUB WTÓRNE STRATY, USZKODZENIA, KOSZTY LUB WYDATKI JAKIEGOKOLWIEK RODZAJU ZWIĄZANE Z INFORMACJAMI LUB ICH WYKORZYSTANIEM, NIEZALEŻNIE OD PRZYCZYNY, NAWET JEŚLI MICROCHIP ZOSTAŁ POINFORMOWANY O MOŻLIWOŚCI WYSTĄPIENIA SZKÓD LUB SĄ PRZEWIDYWALNE. W NAJSZERSZYM ZAKRESIE DOZWOLONYM PRZEZ PRAWO, CAŁKOWITA ODPOWIEDZIALNOŚĆ MICROCHIP ZA WSZYSTKIE ROSZCZENIA W JAKIKOLWIEK SPOSÓB ZWIĄZANE Z INFORMACJAMI LUB ICH WYKORZYSTANIEM NIE PRZEKROCZY KWOTY OPŁAT, JEŚLI TAKIE BYŁY, KTÓRE ZAPŁACONO BEZPOŚREDNIO MICROCHIP ZA INFORMACJE.
- Korzystanie z urządzeń Microchip w podtrzymywaniu życia i/lub aplikacjach bezpieczeństwa odbywa się wyłącznie na ryzyko kupującego, a kupujący zgadza się bronić, zabezpieczać i chronić Microchip przed wszelkimi szkodami, roszczeniami, pozwami lub wydatkami wynikającymi z takiego użytkowania. Żadne licencje nie są przekazywane, w sposób dorozumiany lub inny, na mocy jakichkolwiek praw własności intelektualnej Microchip, chyba że zaznaczono inaczej.
Funkcja ochrony kodu mikroprocesorowego
Należy zwrócić uwagę na następujące szczegóły dotyczące funkcji ochrony kodu w produktach Microchip:
- Produkty Microchip spełniają specyfikacje zawarte w ich konkretnych Kartach Danych Microchip.
- Firma Microchip uważa, że jej rodzina produktów jest bezpieczna, gdy jest używana zgodnie z przeznaczeniem, zgodnie ze specyfikacjami roboczymi i w normalnych warunkach.
- Firma Microchip ceni i agresywnie chroni swoje prawa własności intelektualnej. Próby naruszenia zabezpieczeń kodowych produktów Microchip są surowo zabronione i mogą stanowić naruszenie ustawy Digital Millennium Copyright Act.
- Ani Microchip, ani żaden inny producent półprzewodników nie może zagwarantować bezpieczeństwa swojego kodu. Ochrona kodu nie oznacza, że gwarantujemy, że produkt jest „niezniszczalny”. Ochrona kodu stale ewoluuje. Microchip zobowiązuje się do ciągłego ulepszania funkcji ochrony kodu naszych produktów.
Instrukcja użytkownika
© 2025 Microchip Technology Inc. i jej spółki zależne
Dokumenty / Zasoby
![]() |
MICROCHIP Core16550 Uniwersalny odbiornik asynchroniczny nadajnik [plik PDF] Instrukcja użytkownika v3.4, v3.3, Core16550 Uniwersalny asynchroniczny odbiornik-nadajnik, Core16550, Uniwersalny asynchroniczny odbiornik-nadajnik, Asynchroniczny odbiornik-nadajnik, Odbiornik-nadajnik, Nadajnik |
