
© Pixabay
Analizy |
Przegląd popularnych interfejsów do transmisji obrazów – cz. 2
Firma Unisystem w cyklu artykułów prezentuje najpopularniejsze interfejsy, które stosowane są do transmisji danych, a w tym wypadku – obrazów, pomiędzy urządzeniami je dostarczającymi, czyli procesorami/kontrolerami lub komputerami, a urządzeniami je prezentującymi, czyli wyświetlaczami lub monitorami.
Pisząc o „interfejsach” mamy na myśli zasady łączenia urządzeń służących do przesyłania danych. Bez nich nie byłoby możliwe prezentowanie jakichkolwiek treści na nośnikach informacji wizualnej, takich jak np. wyświetlacze LCD-TFT.
Interfejsy można podzielić na dwie grupy:
Artykuł opublikowano dzięki uprzejmości firmy © Unisystem
- rozwiązań wewnętrznych – czyli takich, w których bezpośrednio łączymy elementy tego samego urządzenia (zwykle znajdujące się w tej samej obudowie), tj. kontroler i wyświetlacz; wśród nich m.in. interfejsy służące tylko do przesyłania obrazów (RGB, LVDS, eDP, MIPI DSI i Vx1) oraz służące do przesyłania różnych danych, w tym obrazów (RS232, I2C, SPI czy 8- i 16-bitowe rozwiązania równoległe); rozwiązań zewnętrznych – czyli takich, w których łączymy dwa odrębne urządzenia, np. komputer i monitor; tego typu rozwiązania wymagają zastosowania kabli; wśród nich m.in.: HDMI, DVI, VGA i DP.
RS232 (Recommended Standard 232)
Interfejs RS232 to rozwiązanie, którego historia sięga lat 60 XX w. – został on opracowany przez EIA (Electronic Industries Association) celem łączenia dalekopisów i modemów. W kolejnych dekadach służył jako podstawowy interfejs do podpinania do komputerów różnych akcesoriów, takich jak np. drukarki czy skanery. Obecnie jest to niszowe rozwiązanie, które przede wszystkim znajduje zastosowanie w sprzętach specjalistycznych np. w przemyśle. Myśląc o interfejsie RS232 popularnym skojarzeniem mogą być przewody z charakterystycznymi wtyczkami. Nas jednak w kontekście niniejszego artykułu interesują rozwiązania wbudowane na PCB, które służą do łączenia różnych komponentów w ramach jednego urządzenia. Interfejs RS232 to rozwiązanie szeregowe służące do łączenia urządzeń DTE (ang. Data Terminal Equipment) oraz urządzeń DCE (ang. Data Communication Equipment), przy czym jedna linia może służyć tylko do łączenia dwóch urządzeń, tj. jednego DTE oraz jednego DCE. Komunikacja może odbywać się zarówno jednokierunkowo (simpleks, ang. simplex), jak i dwukierunkowo (pełny dupleks, ang. full duplex) w dwóch wariantach transmisji danych, tj. synchronicznym i asynchronicznym. W interfejsie RS232 wyróżnia się kilka rodzajów linii, w tym:- linie danych (TxD - dane nadawane i RxD - dane obierane),
- linie sterujące (m.in. DSR (ang. Data Set Ready) – gotowość DCE do współpracy z DTE czy DTR (ang. Data Terminal Ready) – gotowość DTE do współpracy z DCE (linie DSR i DTR są aktywne przez cały czas trwania połączenia));
- linie masy (m.in. GND (Ground) czy PG (ang. Protective Ground)).
Model master/slave
Przed omawianiem kolejnych dwóch interfejsów, tj. I2C oraz SPI, warto odnieść się do modelu „master/slave”, w którym występują urządzenia nadrzędne („master”) zarządzające urządzeniami podrzędnymi („slave”). W takich modelach urządzenie nadrzędne zawsze rozpoczyna łączność generując sygnał zegarowy, podczas którego wysyłane lub odbierane są dane. Stosowane w tym modelu określenia „master” (z ang. „pan”) i „slave” (z ang. „niewolnik”) budzą liczne kontrowersje ze względu na skojarzenia z niewolnictwem. W 2004 r. Global Language Monitor (GLM) uznał je za najbardziej rażący przykład politycznej niepoprawności. Obecnie coraz częściej zastępowane są innymi terminami, np. „primary” i „replica”, stosowanymi m.in. we frameworkach Django i Drupal. Korzysta z nich również m.in. Microsoft.I2C (Inter-Integrated Circuit)
Interfejs I2C, inaczej zapisywany jako IIC, to rozwiązanie służące do łączenia układów scalonych (ang. Inter-Integrated Circuit można tłumaczyć jako „pośrednik pomiędzy układami scalonymi”). Zostało opracowane na początku lat 80. XX w. przez firmę Phillips. Interfejs I2C jest rozwiązaniem szeregowym, w którym komunikacja odbywa się dwukierunkowo za pomocą dwóch linii: SDA (ang. Serial Data Line – linia danych) oraz SCL (ang. Serial Clock Line – linia zegara). To technologia działająca w architekturze „master/slave” z możliwością wprowadzania dowolnej liczby urządzeń nadrzędnych („master”) zarządzającej urządzeniami podrzędnymi („slave”); jest więc to tzw. magistrala typu multi-master. Informacje przesyłane są w postaci jednobajtowych (czyli ośmiobitowych) „paczek”. Każda transmisja ma swój wyznaczony początek (sygnał START/bit startu) oraz koniec (sygnał STOP/bit stopu). Pomiędzy nimi, urządzenie nadrzędne przesyła 7-bitowy adres, a następnie bity read/write i odpowiednie dane do urządzenia docelowego. Po transmisji adresu, urządzenie podrzędne przekazuje jeszcze jeden bit, tj. ACK lub NACK, informujący o prawidłowym/nieprawidłowym przepływie danych (i zabezpieczający przed niekontrolowaną utratą danych). Taki sam bit wysyłany jest również po otrzymaniu danych od urządzenia nadrzędnego. Do sterowania interfejsem I2C służy pięć trybów synchronizacji o zróżnicowanych prędkościach przekazywania danych:- Standard Mode – prędkość do 100 kbit/s,
- Fast Mode – prędkość do 400 kbit/s,
- Fast Mode Plus – prędkość do 1 Mbit/s,
- High Speed Mode – prędkość do 3.4 Mbit/s,
- Ultra-Fast Mode – prędkość do 5 Mbit/s.
SPI (Serial Peripheral Interface)
Interfejs SPI jest jednym z najczęsciej używanych rozwiązań służących do komunikacji pomiędzy systemami mikroprocesorowymi a układami peryferyjnymi, takimi jak np. przetworniki ADC/DAC, pamięci EEPROM, karty MMC/SD itd. Jego historia sięga lat 80. XX w. – wówczas został wypuszczony na rynek przez Motorolę. Interfejs SPI jest rozwiązaniem szeregowym, w którym komunikacja odbywa się dwukierunkowo; również bazuje na modelu „master/slave”, przy czym nie jest to magistrala multi-master – w tej technologii zwykle stosuje się tylko jedno urządzenie nadrzędne, do którego podłączonych jest kilka urządzeń podrzędnych. Do przesyłania informacji służą cztery linie:- SCLK (ang. Serial Clock) – sygnał zegarowy,
- MOSI (ang. Master Output Slave Input) – linia przekazująca dane do urządzenia podrzędnego,
- MISO (ang. Master Input Slave Output) – linia przekazująca dane do urządzenia nadrzędnego,
- SS (ang. Slave Select) lub CS (ang. Chip Select) – linia służąca do wyboru urządzenia podrzędnego.
Artykuł opublikowano dzięki uprzejmości firmy © Unisystem