Niezależnie od tego, czy są to komputerowe urządzenia peryferyjne, inteligentne urządzenia, urządzenia Internetu rzeczy (IoT) czy elektronika narzędzia pomiarowe, wszystkie wykorzystują protokoły komunikacji szeregowej do łączenia różnych elementów elektronicznych razem.

Komponenty te zwykle składają się z mikrokontrolera i modułów podrzędnych, takich jak czujnik odcisków palców, ESP8266 (moduł Wi-Fi), serwa i wyświetlacze szeregowe.

Urządzenia te wykorzystują różne rodzaje protokołów komunikacyjnych. Poniżej poznasz niektóre z najpopularniejszych protokołów komunikacji szeregowej, sposób ich działania, ich zalety i dlaczego pozostają w użyciu.

Co to jest komunikacja szeregowa?

Szeregowe protokoły komunikacyjne istnieją od czasu wynalezienia kodu Morse'a w 1838 roku. Obecnie współczesne protokoły komunikacji szeregowej wykorzystują te same zasady. Sygnały są generowane i przesyłane jednym przewodem poprzez wielokrotne zwieranie ze sobą dwóch przewodów. Ten krótki działa jak przełącznik; włącza się (wysoki) i wyłącza (niski), dostarczając sygnały binarne. Sposób przesyłania i odbierania tego sygnału zależy od typu używanego protokołu komunikacji szeregowej.

instagram viewer

Źródło obrazu: shankar.s/Wikimedia Commons

Wraz z wynalezieniem tranzystora i kolejnymi innowacjami inżynierowie i majsterkowicze sprawili, że jednostki przetwarzające i pamięć stały się mniejsze, szybsze i bardziej energooszczędne. Zmiany te wymagały, aby protokoły komunikacyjne magistrali były tak zaawansowane technologicznie, jak podłączane komponenty. Stąd wynalezienie protokołów szeregowych, takich jak UART, I2C i SPI. Chociaż te protokoły szeregowe mają kilkadziesiąt lat, nadal są preferowane w przypadku mikrokontrolerów i programowania gołego metalu.

UART (uniwersalny asynchroniczny odbiornik-nadajnik)

Protokół UART jest jednym z najstarszych, ale najbardziej niezawodnych protokołów komunikacji szeregowej, z których nadal korzystamy. Protokół ten wykorzystuje do komunikacji dwa przewody znane jako Tx (nadawanie) i Rx (odbieranie).

Aby transmitować dane, zarówno nadajnik, jak i odbiornik muszą być zgodne z pięcioma typowymi konfiguracjami, są to:

  • Szybkość transmisji: Szybkość transmisji, jak szybko dane mają być przesyłane.
  • Długość danych: Uzgodniona liczba bitów, które odbiornik zapisze w swoich rejestrach.
  • Bit początkowy: Niski sygnał, który informuje odbiornik, kiedy dane mają zostać przesłane.
  • Zatrzymaj bit: Wysoki sygnał, który informuje odbiorcę, kiedy został wysłany ostatni bit (najbardziej znaczący bit).
  • Bit parzystości: Wysoki lub niski sygnał używany do sprawdzania, czy przesłane dane są poprawne lub uszkodzone.

Ponieważ UART jest protokołem asynchronicznym, nie ma własnego zegara, który reguluje prędkość transmisji danych. Alternatywnie wykorzystuje prędkość transmisji do synchronizacji, gdy bit jest przesyłany. Zwykle szybkość transmisji używana dla UART wynosi 9600 bodów, co oznacza szybkość transmisji 9600 bitów na sekundę.

Jeśli wykonamy obliczenia i podzielimy jeden bit przez 9600 bodów, możemy obliczyć, jak szybko jeden bit danych jest przesyłany do odbiornika.

1/9600 =104 mikrosekundy

Oznacza to, że nasze urządzenia UART zaczną odliczać 104 mikrosekundy, aby wiedzieć, kiedy zostanie przesłany następny bit.

Po podłączeniu urządzeń UART, domyślny sygnał jest zawsze podnoszony na wysoki. Gdy wykryje sygnał o niskiej częstotliwości, odbiornik zacznie odliczać 104 mikrosekundy plus kolejne 52 mikrosekundy, zanim zacznie zapisywać bity w swoich rejestrach (pamięć).

Ponieważ uzgodniono już, że osiem bitów ma być długością danych, po zapisaniu ośmiu bitów danych rozpocznie sprawdzanie parzystości, aby sprawdzić, czy dane są parzyste czy nieparzyste. Po sprawdzeniu parzystości bit stopu podniesie wysoki sygnał, aby powiadomić urządzenia, że ​​całe osiem bitów danych zostało pomyślnie przesłane do odbiornika.

Będąc najbardziej minimalistycznym protokołem szeregowym wykorzystującym tylko dwa przewody, UART jest obecnie powszechnie używany w kartach inteligentnych, kartach SIM i samochodach.

Związane z: Co to jest karta SIM? Rzeczy, które musisz wiedzieć

SPI (szeregowy interfejs peryferyjny)

SPI to kolejny popularny protokół szeregowy używany do szybszego przesyłania danych, około 20 Mb/s. Wykorzystuje łącznie cztery przewody, a mianowicie SCK (Serial Clock Line), MISO (Master Out Slave In), MOSI (Master In Slave Out) i SS/CS (Chip Select). W przeciwieństwie do UART, SPI używa formatu master-to-slave do sterowania wieloma urządzeniami podrzędnymi za pomocą tylko jednego urządzenia nadrzędnego.

MISO i MOSI działają jak Tx i Rx UART używane do przesyłania i odbierania danych. Chip Select służy do wyboru urządzenia podrzędnego, z którym master chce się komunikować.

Ponieważ SPI jest protokołem synchronicznym, wykorzystuje wbudowany zegar urządzenia nadrzędnego, aby zapewnić, że urządzenia nadrzędne i podrzędne działają na tej samej częstotliwości. Oznacza to, że oba urządzenia nie muszą już negocjować szybkości transmisji.

Protokół rozpoczyna się od wyboru urządzenia podrzędnego przez mastera poprzez obniżenie jego sygnału do określonego SS/CK podłączonego do urządzenia podrzędnego. Kiedy urządzenie podrzędne odbierze niski sygnał, zaczyna słuchać zarówno SCK, jak i MOSI. Master wysyła następnie bit startowy przed wysłaniem bitów zawierających dane.

Zarówno MOSI, jak i MISO działają w trybie pełnego dupleksu, co oznacza, że ​​mogą jednocześnie przesyłać i odbierać dane.

Dzięki możliwości łączenia się z wieloma urządzeniami podrzędnymi, komunikacji w pełnym dupleksie i niższym zużyciu energii niż inne protokoły synchroniczne, takie jak I2C, SPI są używane w urządzeniach pamięci, cyfrowych kartach pamięci, konwerterach ADC na DAC i krysztale wyświetla się pamięć.

I2C (obwód zintegrowany)

I2C to kolejny synchroniczny protokół szeregowy, taki jak SPI, ale ma kilka zalet. Obejmują one możliwość posiadania wielu urządzeń nadrzędnych i podrzędnych, proste adresowanie (nie ma potrzeby stosowania chipa) Select), pracując z różnymi napięciami i używając tylko dwóch przewodów podłączonych do dwóch pull-up rezystory.

I2C jest często używany w wielu urządzeniach IoT, sprzęcie przemysłowym i elektronice użytkowej.

Dwa piny w protokole I2C to SDA (Serial Data Line), który przesyła i odbiera dane, oraz pin SCL (Serial Clock Line), który działa jako zegar.

  1. Protokół zaczyna się od tego, że master wysyła bit startowy (niski) ze swojego pinu SDA, po którym następuje siedmiobitowy adres, który wybiera urządzenie podrzędne, i jeden bit do wyboru odczytu lub zapisu.
  2. Po otrzymaniu bitu startu i adresu, slave wysyła bit potwierdzenia do mastera i zaczyna nasłuchiwać SCL i SDA dla nadchodzących transmisji.
  3. Gdy nadrzędny to otrzyma, wie, że połączenie zostało nawiązane z odpowiednim podrzędnym. Master wybierze teraz, do którego konkretnego rejestru (pamięci) z Slave chce uzyskać dostęp. Czyni to, wysyłając kolejne osiem bitów, określając, który rejestr ma być użyty.
  4. Po otrzymaniu adresu, urządzenie podrzędne przygotowuje teraz rejestr wyboru przed wysłaniem kolejnego potwierdzenia do urządzenia nadrzędnego.
  5. Po wybraniu konkretnego slave'a i którego z jego rejestrów master ostatecznie wysyła bit danych do slave'a.
  6. Po wysłaniu danych, ostatni bit potwierdzenia jest wysyłany do urządzenia nadrzędnego, zanim urządzenie nadrzędne kończy bitem stopu (wysokim).

Związane z: Najlepsze projekty Arduino IoT

Dlaczego komunikacja szeregowa zostanie z nami?

Wraz z rozwojem równoległych i wielu protokołów bezprzewodowych komunikacja szeregowa nigdy nie straciła na popularności. Ogólnie mówiąc, używając tylko dwóch do czterech przewodów do przesyłania i odbierania danych, protokoły szeregowe są podstawowym sposobem komunikacji dla elektroniki, która ma tylko kilka wolnych portów.

Kolejnym powodem jest jego prostota, która przekłada się na niezawodność. Dzięki tylko kilku przewodom wysyłającym dane jednorazowo, serial dowiódł swojej niezawodności w przesyłaniu kompletnych pakietów danych bez utraty lub uszkodzenia podczas transmisji. Nawet przy wysokich częstotliwościach i komunikacji o większym zasięgu protokoły szeregowe wciąż przewyższają wiele nowoczesnych protokołów komunikacji równoległej dostępnych obecnie.

Chociaż wielu może pomyśleć, że komunikacja szeregowa, taka jak UART, SPI i I2C, ma tę wadę starych i przestarzałych, faktem jest, że udowodniły swoją niezawodność przez kilka lat dekady. Tak stare protokoły, bez rzeczywistego zastąpienia, tylko sugerują, że są one w rzeczywistości niezbędne i będą nadal używane w elektronice w dającej się przewidzieć przyszłości.

Raspberry Pi, Pico, Arduino i inne komputery jednopłytkowe i mikrokontrolery

Mylisz się między SBC, takimi jak Raspberry Pi, a mikrokontrolerami, takimi jak Arduino i Raspberry Pi Pico? Oto, co musisz wiedzieć.

Czytaj dalej

UdziałĆwierkaćE-mail
Powiązane tematy
  • Wyjaśnienie technologii
  • Użycie danych
O autorze
Personel MUO

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować