Zilog SCC
SCC , skrót od Serial Communication Controller , to rodzina układów scalonych sterownika portu szeregowego firmy Zilog . Głównymi członkami rodziny są modele Z8030/Z8530 i Z85233.
Opracowany na podstawie wcześniejszych urządzeń Zilog SIO (Z8443), SCC dodał szereg trybów szeregowo-równoległych, które umożliwiły wewnętrzną implementację różnych protokołów warstwy łącza danych, takich jak Bisync , HDLC i SDLC .
SCC można skonfigurować jako konwencjonalny port RS-232 do obsługi starszych systemów lub alternatywnie jako port RS-422 w celu uzyskania znacznie wyższej wydajności, do 10 Mbit/s. Szczegóły implementacji ogólnie ograniczały wydajność do 5 Mbit/s lub mniej.
Jednym z najbardziej znanych użytkowników SCC była linia komputerów Apple Macintosh , która wykorzystywała Z8530 do implementacji dwóch portów szeregowych z tyłu wczesnych projektów, oznaczonych jako „modem” i „drukarka”.
Opis
Tradycyjna komunikacja szeregowa jest zwykle realizowana przy użyciu urządzenia znanego jako UART , które tłumaczy dane z wewnętrznego formatu równoległego magistrali komputera na szeregowy iz powrotem. Pozwala to komputerowi na wysyłanie danych szeregowo, po prostu umieszczając dane w pamięci w swoim własnym wewnętrznym formacie, powiedzmy 16-bitowym little-endian , a UART przekonwertuje to na postać szeregową i wyśle. Ogólnie rzecz biorąc, dla każdej architektury komputera istniały różne układy UART, których celem było jak najniższe koszty. Dobrym przykładem jest Zilog Z-80 SIO z 1977 roku, przeznaczony do współpracy z szeroko stosowanym Zilogiem Z80 zapewnienie dwóch portów szeregowych o stosunkowo dużych prędkościach do 800 kbit/s.
SCC jest zasadniczo zaktualizowaną wersją SIO, z większą logiką wewnętrzną, która pozwala na bezpośrednie wdrożenie wielu popularnych protokołów warstwy łącza danych . Na początek SCC zawierało sprzętową implementację cyklicznej kontroli redundancji (CRC), która umożliwiała sprawdzanie, oznaczanie i odrzucanie niewłaściwych danych bez wsparcia komputera hosta. Protokoły wyższego poziomu obejmowały BiSync , HDLC i SDLC . HDLC jest lepiej znany ze swojej implementacji w zorientowanym na modem protokole LAPM , będącym częścią V.42 . Przenosząc implementację tych protokołów na sprzęt, SCC ułatwiło implementację sieci lokalnych , takich jak IBM SNA , bez potrzeby obsługi tych szczegółów przez procesor hosta.
1 + 1/2 lub 2 bity trybie szeregowym, SCC można ustawić tak, aby używał 5, 6, 7 lub 8 bitów/znak, 1, stopu, nieparzyste, parzyste lub bez parzystości i automatycznie wykrywane lub generowane sygnały przerwania. W trybach synchronicznych dane można było opcjonalnie przesyłać z NRZ , NRZI lub FM, a także dekodowaniem Manchester, chociaż kodowanie Manchester musiało być obsługiwane w logice zewnętrznej.
Szybkość transmisji SCC można określić w czasie z trzech źródeł. Do podstawowej komunikacji w stylu RS-232 SCC zawierał wewnętrzny zegar 300 Hz, który można było pomnożyć przez 1, 16, 32 do 64, zapewniając szybkość transmisji danych od 300 do 19 200 bitów / s. Alternatywnie mógłby użyć zegara na magistrali dostarczonego przez platformę hosta, a następnie podzielić ten zegar przez 4, 8, 16 lub 32 (ostatnie dwa tylko w oryginalnym NMOS realizacja). W przypadku użycia na maszynie pracującej ze wspólnym zegarem 8 MHz pozwalało to na uzyskanie szybkości do 2 Mbit / s. Wreszcie SCC zawierało również wejścia do dostarczania zewnętrznego zegara. Działało to podobnie do zegara hosta, ale mogło być używane do dostarczania dowolnego sygnału zegara odniesienia, niezależnie od platformy hosta. W tym trybie zegar można było podzielić jak w obudowie wewnętrznej lub pomnożyć przez 2 dla jeszcze wyższych prędkości, dochodzących w niektórych wersjach do 32,3 Mbit/s. Korzystanie z zewnętrznego zegara ułatwiło wdrożenie adapterów LAN, które zwykle działały z szybkościami niezależnymi od komputera hosta.
Wczesne implementacje wykorzystywały bufory odbioru o głębokości zaledwie 3 bajtów i bufor wysyłania z jednym bajtem. Oznaczało to, że rzeczywista wydajność była ograniczona przez zdolność platformy hosta do ciągłego opróżniania buforów do własnej pamięci. W przypadku komunikacji podobnej do sieci sam SCC może spowodować, że zdalny nadawca zatrzyma transmisję, gdy bufory będą pełne, a tym samym zapobiegnie utracie danych, gdy host będzie zajęty. W przypadku konwencjonalnego portu szeregowego asynchronicznego nie było to możliwe; na Macintosh Plus ta ograniczona wydajność RS-232 do około 9600 bitów / s lub mniej i zaledwie 4800 bitów / s we wcześniejszych modelach.
Większość modeli SCC była dostępna w wersjach z podwójnym pakietem liniowym (DIP) lub z nośnikiem chipów (PLCC).
Wersje
- Z8030
Oryginalny model zaimplementowany w NMOS z multipleksowanym interfejsem „Z-Bus”, który pasował do procesorów Zilog Z8000 /Z16C00/ 8086
- Z8530
Funkcjonalnie identyczny z Z8030, ale wykorzystujący niemultipleksowaną magistralę „Universal-Bus”, zaprojektowaną tak, aby umożliwić korzystanie z dowolnego procesora lub platformy hosta, w tym Z-80
- Z8031 i Z8531
Wersje Z8030 i Z8530 z usuniętą obsługą synchroniczną, tworząc projekt bardziej zbliżony do oryginalnego SIO
- Z80C30 i Z85C30
CMOS Z8030 i Z8530. Wtyczka kompatybilna z wczesnymi wersjami, dodająca 2x prędkość, gdy jest używana z zegarem zewnętrznym oraz szereg poprawek błędów i ulepszeń w protokołach warstwy łącza.
- Z80230 i Z85230
Zaktualizowane implementacje CMOS Z80C30 i Z85C30, znane również jako ESCC
- Z85233
Zaktualizowana wersja Z85230 (tylko), znana również jako EMSCC
Linki zewnętrzne
- Opis produktu Z80C30
- Opis produktu Z85C30
- Z80C30/Z85C30 Kontrolery komunikacji szeregowej Specyfikacja produktu
- Z80C30/Z85C30/Z80230/Z85230/Z85233 SCC/ESCC instrukcja obsługi
- Sterownik FreeBSD scc(4).