Articles

czym jest komunikacja szeregowa i jak działa?

wprowadzenie

komunikacja szeregowa jest najczęściej stosowanym podejściem do przesyłania informacji między urządzeniami do przetwarzania danych a urządzeniami peryferyjnymi. Ogólnie rzecz biorąc, komunikacja oznacza wymianę informacji między osobami za pomocą dokumentów pisemnych, słów słownych, lekcji audio i wideo.

każde urządzenie może to być Twój komputer osobisty lub telefon komórkowy działa na protokole szeregowym. Protokół jest bezpieczną i niezawodną formą komunikacji posiadającą zestaw reguł adresowanych przez host źródłowy (nadawcę) i host docelowy (odbiorcę). Aby mieć lepszy wgląd, wyjaśniłem koncepcję komunikacji szeregowej.

w systemie embedded komunikacja szeregowa jest sposobem wymiany danych przy użyciu różnych metod w postaci szeregowego cyfrowego binarnego. Niektóre z dobrze znanych interfejsów używanych do wymiany danych to RS-232, RS-485, I2C, SPI itp.

co to jest komunikacja szeregowa?

w komunikacji szeregowej dane mają postać impulsów binarnych. Innymi słowy, możemy powiedzieć, że binarny jeden reprezentuje logikę wysoką lub 5 woltów, a zero reprezentuje logikę niską lub 0 woltów. Komunikacja szeregowa może przybierać różne formy w zależności od rodzaju trybu transmisji i transmisji danych. Tryby transmisji są klasyfikowane jako Simplex, Half Duplex i Full Duplex. Dla każdego trybu transmisji będzie dostępne źródło (zwane również nadawcą) i miejsce docelowe (zwane również odbiornikiem).

tryby transmisji - komunikacja szeregowa

tryby transmisji – komunikacja szeregowa

metoda Simplex jest techniką komunikacji jednokierunkowej. Tylko jeden Klient (Nadawca lub odbiorca jest aktywny jednocześnie). Jeśli nadawca transmituje, odbiorca może tylko przyjąć. Transmisja radiowa i telewizyjna są przykładami trybu simplex.

w trybie Half Duplex zarówno nadawca, jak i odbiorca są aktywni, ale nie naraz, tzn. jeśli nadawca transmituje, odbiorca może przyjmować, ale nie może wysyłać i odwrotnie. Dobrym przykładem jest internet. Jeśli klient (laptop) wyśle żądanie strony internetowej, serwer WWW przetworzy aplikację i odeśle informacje.

tryb pełnego dupleksu jest szeroko stosowaną komunikacją na świecie. Tutaj zarówno nadawca, jak i odbiorca mogą nadawać i odbierać w tym samym czasie. Przykładem jest smartfon.

poza trybami transmisji, musimy wziąć pod uwagę endianność i konstrukcję protokołu komputera hosta (nadawcy lub odbiornika). Endianness to sposób przechowywania danych pod określonym adresem pamięci. W zależności od wyrównania danych endian jest klasyfikowany jako

  • Little Endian i
  • Big Endian.

weź ten przykład, aby zrozumieć pojęcie endianności. Załóżmy, że mamy 32-bitowe dane szesnastkowe ABCD87E2. Jak te dane są przechowywane w pamięci? Aby mieć jasny pomysł, wyjaśniłem różnicę między małym Endianem A dużym Endianem.

Little Endian Vs Big Endian

Little Endian Vs Big Endian

transfer danych może odbywać się na dwa sposoby. Są to komunikacja szeregowa i komunikacja równoległa. Komunikacja szeregowa jest techniką stosowaną do przesyłania danych bit po bitie za pomocą dwuprzewodowego tj. nadajnika (nadawcy) i odbiornika.

na przykład chcę wysłać 8-bitowe dane binarne 11001110 z nadajnika do odbiornika. Ale który kawałek wychodzi pierwszy? Najbardziej znaczący Bit-MSB (7 bit) lub najmniej znaczący Bit-LSB (0 Bit). Nie możemy powiedzieć. Tutaj rozważam, że LSB porusza się jako pierwszy (dla małego Endiana).

komunikacja szeregowa

komunikacja szeregowa

z powyższego schematu, dla każdego impulsu zegara; nadajnik wysyła jeden bit danych do odbiornika.

Komunikacja równoległa przenosi 8,16 lub 32 bity danych na raz. Drukarki i kserokopiarki korzystają z równoległej komunikacji w celu szybszego przesyłania danych.

RS232 Komunikacja równoległa

RS232 Komunikacja równoległa

różnica między komunikacją szeregową a równoległą

komunikacja szeregowa wysyła tylko jeden bit na raz. tak więc, wymagają one mniej linii We / Wy (wejście-wyjście). Stąd zajmuje mniej miejsca i jest bardziej odporny na cross-talk. Główną zaletą komunikacji szeregowej jest to, że koszt całego systemu wbudowanego staje się tani i przesyła informacje na duże odległości. Transmisja szeregowa jest używana w urządzeniach DCE (Data communication Equipment), takich jak modem.

w komunikacji równoległej przesyłany jest jednocześnie fragment danych (8,16 lub 32 bit). Tak więc każdy bit danych wymaga oddzielnej fizycznej linii We / Wy. Zaletą komunikacji równoległej jest szybkość, ale jej wadą jest użycie większej liczby linii We / Wy (wejście-wyjście). Transfer równoległy jest używany w PC (komputerze osobistym) do łączenia procesora (jednostki centralnej), pamięci RAM (pamięci o dostępie swobodnym), modemów, sprzętu audio, wideo i sieci.

Uwaga: Jeśli twój układ scalony lub procesor obsługuje mniejszą ilość pinów wejściowych/wyjściowych, lepiej jest wybrać komunikację szeregową

dla łatwego zrozumienia, oto porównanie komunikacji szeregowej i równoległej.

komunikacja szeregowa Komunikacja równoległa
wysyła dane bit po bitie przy jednym impulsie zegara przesyła kawałek danych na raz
wymaga jednego przewodu do transmisji danych wymaga 'n’ liczby linii do transmisji 'n’ bitów
szybkość komunikacji jest niska
koszt instalacji jest niski
koszt instalacji jest wysoki
preferowany do komunikacji na duże odległości używany do komunikacji na krótkie odległości
przykład: komputer do komputera komputer do drukarki wielofunkcyjnej

Synchronizacja zegara

dla wydajnej pracy urządzeń szeregowych głównym źródłem jest zegar. Awaria zegara może prowadzić do nieoczekiwanych rezultatów. Sygnał zegara jest inny dla każdego urządzenia szeregowego i jest klasyfikowany jako protokół synchroniczny i protokół asynchroniczny.

synchroniczny interfejs szeregowy

wszystkie urządzenia na synchronicznym interfejsie szeregowym używają pojedynczej magistrali procesora do udostępniania zarówno zegara, jak i danych. Dzięki temu transfer danych jest szybszy. Zaletą jest to, że nie będzie niedopasowania w szybkości transmisji. Co więcej, do interfejsu komponentów wymagana jest mniejsza liczba linii We/Wy (wejścia-wyjścia). Przykładami są I2C, SPI itp.

asynchroniczny interfejs szeregowy

interfejs asynchroniczny nie ma zewnętrznego sygnału zegara i opiera się na czterech parametrach, a mianowicie

  1. kontrola szybkości transmisji
  2. kontrola przepływu danych
  3. Kontrola transmisji i odbioru
  4. kontrola błędów.

protokoły asynchroniczne są odpowiednie do stabilnej komunikacji. Są one używane do zastosowań na duże odległości. Przykładami protokołów asynchronicznych są RS-232, RS-422 i RS-485.

jak działa komunikacja szeregowa?

zaawansowane procesory, takie jak mikrokontroler i mikroprocesor, wykorzystują komunikację szeregową Do komunikacji ze światem zewnętrznym, a także na peryferiach chipowych. Aby się zapoznać, weźmy prosty przykład. Dla Załóżmy, że chcesz wysłać plik obecny w laptopie do smartfona. Jak byś wysłał? Prawdopodobnie używając protokołu Bluetooth lub WiFi, prawda.

oto kroki do ustanowienia komunikacji szeregowej

  1. Dodaj połączenie.

w pierwszym kroku twój laptop wyszukuje urządzenia w pobliżu 100m i wyświetli listę znalezionych urządzeń. Proces ten jest często nazywany roamingiem.

  1. wybierz urządzenie, z którym chcesz się komunikować.

aby połączyć się z telefonem komórkowym, należy wykonać parowanie. Domyślna konfiguracja jest już obecna w oprogramowaniu. Nie trzeba więc ręcznie konfigurować szybkości transmisji. Poza tym istnieją cztery nieznane Zasady. Są to szybkość transmisji, wybór bitów danych (kadrowanie), bit start-stop i parzystość.

zasady komunikacji szeregowej

zasady komunikacji szeregowej

# 1 Co to jest szybkość transmisji?

prędkość transmisji danych z nadajnika do odbiornika w postaci bitów na sekundę. Niektóre standardowe szybkości transmisji to 1200, 2400, 4800, 9600, 57600.

musisz ustawić tę samą prędkość transmisji po obu stronach (telefon komórkowy i Laptop).

Uwaga: im wyższa prędkość transmisji, więcej danych można przesłać w krótszym czasie.

jednak zalecam użycie do 115200 jako bezpiecznego limitu ze względu na niedopasowanie częstotliwości próbkowania na końcu odbiornika.

# 2 kadrowanie

kadrowanie pokazuje, ile bitów danych chcesz wysłać z urządzenia głównego (laptopa) do telefonu komórkowego (odbiornika). 5, 6, 7, czy 8 bitów? Większość urządzeń, 8 bitów są preferowane. Po wybraniu 8-bitowego fragmentu danych, endianness musi zostać uzgodniony przez nadawcę i odbiorcę.

# 3 Synchronizacja

Nadajnik dołącza bity synchronizacji (1 bit startowy i 1 lub 2 Bit stopowy) do oryginalnej ramki danych. Bity synchronizacji pomagają odbiornikowi zidentyfikować początek i koniec transferu danych. Proces ten znany jest jako asynchroniczny transfer danych.

# 4 Kontrola błędów

uszkodzenie danych może się zdarzyć z powodu zewnętrznego szumu na końcu odbiornika. Jedynym rozwiązaniem, aby uzyskać stabilne wyjście, jest sprawdzenie parzystości.

Jeśli dane binarne zawierają parzystą liczbę 1, jest ona znana jako parzysta parzystość, a bit parzystości jest ustawiony na '1′. Jeśli dane binarne zawierają nieparzystą liczbę 1, nazywa się ją parzystością nieparzystą, a teraz bit parzystości jest ustawiony na '0′.

asynchroniczne protokoły szeregowe

najczęstszym pytaniem, które przyjdzie ci do głowy po rozpoczęciu pracy nad systemem wbudowanym, jest dlaczego używać protokołów asynchronicznych?

  • , aby poruszać się po informacji z większej odległości i
  • , aby uzyskać bardziej niezawodny transfer danych.

niektóre z asynchronicznych protokołów komunikacyjnych to:

protokół RS-232

  • RS232 jest pierwszym protokołem szeregowym używanym do łączenia modemów w telefonii. RS oznacza zalecany Standard, a teraz zmienił się na EIA ( Electronic Industries Alliance) / TIA ( Telecommunication Industry Association).
  • jest również stosowany w modemach, myszach i maszynach CNC (computed numerical computing). Można podłączyć tylko jeden nadajnik do jednego odbiornika.
  • obsługuje komunikację full duplex i pozwala na prędkość transmisji do 1Mbps.
  • Długość kabla jest ograniczona do 50 stóp.

jak wiadomo, dane przechowywane w pamięci mają postać bajtów. Możesz mieć wątpliwości, w jaki sposób dane bajtowe są konwertowane na bity binarne? Odpowiedzią jest port szeregowy.

port szeregowy posiada wewnętrzny chip o nazwie UART. UART jest akronimem uniwersalnego asynchronicznego nadajnika odbiornika, który konwertuje dane równoległe (bajt) do bitowej postaci szeregowej.

Port Szeregowy RS232

Port Szeregowy RS232

połączenie okablowania RS-232

port szeregowy RS232 ma dziewięć pinów, męskich lub żeńskich. Interfejs komunikacji szeregowej RS 232C jest późniejszą wersją RS232.

wszystkie funkcje obecne w RS232 są obecne w modelu RS232C z wyjątkiem 25 pinów. Z 25 lub 9 pinów do podłączenia urządzeń końcowych używamy tylko trzech pinów.

połączenie okablowania RS232

połączenie okablowania RS232

interfejs RS422

za pomocą RS232 możemy przesyłać dane tylko do limitu 1Mpbs. Aby rozwiązać ten problem, RS422 pojawia się na zdjęciu. RS422 jest interfejsem szeregowym typu multi-drop. możemy podłączyć dziesięć nadajników do 10 odbiorników jednocześnie za pomocą jednej magistrali. Przesyła dane za pomocą dwóch skrętek (konfiguracja różnicowa). Długość kabla wynosi 4000 stóp z szybkością transmisji 10 MB / s.

połączenie okablowania RS 422

połączenie okablowania RS 422

Interfejs RS485

RS485 to preferowany w branży protokół. W przeciwieństwie do RS422, można podłączyć 32 sterowniki liniowe i 32 odbiorniki w konfiguracji różnicowej. Nadajnik jest również nazywany sterownikiem liniowym. Jednak tylko jeden nadajnik jest aktywny na raz.

połączenie okablowania RS485

połączenie okablowania RS485

Uwaga: zarówno dla RS232, jak i RS485, musisz ręcznie zakończyć połączenie.

protokół 1-Wire

jeden przewód jest podobny do protokołu I2c. Różnica polega jednak na tym, że jeden protokół drutowy wykorzystuje pojedynczą linię danych i masę. Nie wymaga sygnału zegara, a niewolniki są taktowane za pomocą wewnętrznego oscylatora kryształowego. Zapewnia komunikację half duplex.

jeden przewód wykorzystuje 64-bitowy schemat adresowania. Zaletą jednego interfejsu przewodowego jest to, że obsługuje komunikację na duże odległości przy niskich kosztach. Ale wadą jest to, że jego prędkość jest mniejsza.

asynchroniczne protokoły przewodowe doskonale nadają się do komunikacji na duże odległości. Istnieje jednak jedna wada dająca zakres synchronicznym interfejsom szeregowym.

wadą jest to, że jeśli istnieje potrzeba podłączenia większej liczby nadajników i odbiorników, koszt instalacji idzie wysoko.

synchroniczne protokoły szeregowe

synchroniczne protokoły komunikacyjne są najlepszymi zasobami dla pokładowych urządzeń peryferyjnych. Zaletą jest możliwość podłączenia większej liczby urządzeń do tej samej magistrali. Niektóre protokoły synchroniczne to I2C, SPI, CAN i LIN.

protokół I2C

I2c (Inter-integrated circuit) jest dwuprzewodowym protokołem dwukierunkowym używanym do wymiany danych między różnymi urządzeniami na tej samej magistrali. I2c wykorzystuje adres 7-bitowy lub 10-bitowy pozwalający na podłączenie do 1024 urządzeń. Ale wymaga sygnału zegara do generowania warunków startu i zatrzymania. Zaletą jest to, że zapewnia transfer danych z prędkością 400 kbps. Nadaje się do komunikacji na pokładzie.

protokół SPI

protokół SPI (Serial peripheral interface) wysyłanie i odbieranie danych w ciągłym strumieniu bez żadnych przerw. Protokół ten jest zalecany do szybkiej transmisji danych. Maksymalna prędkość, jaką może zapewnić, to 10 MB / s.

w przeciwieństwie do i2c, SPI ma 4 przewody. Są to MOSI (Master out slave in), MISO (Master in slave out), Zegar i Slave select signal. Teoretycznie możemy podłączyć nieograniczoną liczbę Slave ’ ów i praktycznie zależy to od pojemności obciążenia magistrali.

protokół CAN

ten protokół jest dedykowany do systemów samochodowych lub samochodów. Jest to protokół zorientowany na komunikaty używany do okablowania elektrycznego multipleksowego w celu oszczędzania miedzi. Jest to magistrala szeregowa multi-master stosowana w aplikacjach takich jak automatyczne uruchamianie/zatrzymywanie pojazdów, systemy unikania kolizji itp.

interfejs USB

jest najlepszą alternatywą dla portów szeregowych lub równoległych. Transfer danych związany z portami USB jest dość szybszy niż interfejs szeregowy i równoległy. USB obsługuje prędkości od 1,5 MB / s (USB 1.0) do 4,8 Gb / s (USB 3.0). Obecnie większość wbudowanych urządzeń wykorzystuje technikę USB OTG (On The Go programming) do zrzucania pliku hex do mikrokontrolera.

Microwire

Microwire jest trójprzewodowym szeregowym protokołem komunikacyjnym. Posiada szeregowy port We / Wy na mikrokontrolerze do współpracy z układami peryferyjnymi. Obsługuje prędkość do 3Mbps. Jest szybszy niż i2c i podzbiór protokołu SPI.

podsumowanie

komunikacja szeregowa jest istotną częścią w obszarze elektroniki i systemów wbudowanych. Szybkość transmisji danych jest krytyczna, jeśli dwa urządzenia chcą wymieniać informacje na tej samej magistrali. Dlatego konieczne jest wybranie poprawnego protokołu szeregowego dla dowolnej aplikacji.

przeczytaj także: Co To jest system wbudowany i jak działa?

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *