Ovládání signálů komunikačního portu. COM port (sériový port). Signály TXD a RXD „Přenos dat“ a „Příjem dat“

Doporučení ITU-T V.24 (1980), stejně jako jeho pozdější revize X.24 (1984), mají název: „Seznam obvodů rozhraní mezi datovým koncovým zařízením a koncovým zařízením datového okruhu“. Jak název napovídá, protokol V.24 zavádí postupy pro interoperabilitu fyzické úrovni dva typy zařízení OOD a AKD.

  • Datové koncové zařízení (DTE) nebo datové koncové zařízení (DTE) v obecný případ plní úlohu prezentace dat uživateli a je v tomto smyslu koncovým zařízením.
  • Koncové zařízení datového okruhu (DCE) nebo zařízení datového kanálu (DCE) nebo koncové zařízení datového okruhu (DCE) obecně plní úlohu reprezentace síťových dat a je v tomto smyslu prostředníkem.

Protokol V.24 definuje sadu elektrické signály, s jehož pomocí DTE a DCE navazují interakci. Signály generované DTE jsou vstupem do DCE a naopak. Celkem doporučení definuje více než 40 obvodů rozhraní, nicméně v průmyslové implementaci V.24 nejsou použity všechny doporučené signály.

DTR signál „Připojte ADF k lince“

Zdroj signálu DTR (Data Terminal Ready) je zařízení DTE. Účelem signálu je poskytnout DCE informaci, že zařízení DTE je připraveno zahájit proces přenosu dat.

DSR signál "ADF připraven"

Zdrojem signálu DSR (Data Set Ready) je zařízení DCE. DSR je generován DCE jako odpověď na signál DTR přijatý z DTE. Účelem signálu je poskytnout DTE informaci, že zařízení DCE je připraveno zúčastnit se procesu přenosu dat.

RTS signál "Požadavek na přenos"

Zdrojem signálu RTS (Request To Send) je zařízení DTE. Účelem signálu je uvést DCE přímo do režimu přenosu dat.

Signál CTS "Připraveno k vysílání"

Zdrojem signálu RTS (Clear To Send) je zařízení DCE. CTS je generován DCE v odezvě na RTS signál přijatý z DTE. Účelem signálu je poskytnout DTE informaci, že zařízení DCE je připraveno zahájit proces přímého přenosu dat.

Signály RTS a CTS se používají k hardwarovému řízení rychlosti přenosu dat. Je třeba rozlišovat mezi rychlostí výměny dat mezi DCE a DTE a rychlostí, kterou DCE pracuje na datovém spoji. V případě, že DCE nemůže držet krok s vybranou přenosovou rychlostí DTE, musí zařízení vypnout signál CTS. V reakci na to protokoly DTE horní úrovně pozastaví proces přenosu dat, dokud nebude obnoven stav signálu CTS.

Signál LSD "Detektor signálu přijatých lineárních dat"

Zdrojem signálu LSD (Line Signal Detect) je zařízení DCE. Účel daný signál indikace přítomnosti nebo nepřítomnosti signálu ze vzdáleného konce datového přenosu. Například modem nastaví tento signál (v modemech se obvykle nazývá CD Carrier Detect), když naváže spojení se vzdáleným modemem v souladu s jeho linkovým protokolem.

Signály TXD a RXD „Přenos dat“ a „Příjem dat“

Zdrojem signálu TXD (Transmit Data) je zařízení DTE. K přenosu dat dochází po obdržení potvrzení od DCE, že je připraven přijímat data. Zdrojem signálu RXD (Receive Data) je zařízení DCE. Spolehlivý příjem dat v DTE nastává po přijetí signálu LSD z DCE.

Asynchronní režim interakce mezi DTE a DCE

Při použití tohoto režimu DCE a DTE buď pevně nastaví stejnou rychlost výměny dat, nebo jedna ze stran (obvykle DCE) vybere vhodnou hodnotu rychlosti automaticky z nastavené sady během výměny dat s DTE. Data jsou přenášena v asynchronním režimu informační skupinou (6 až 8 bitů). Informační skupina může být doprovázena řídicím bitem (doplněk k sudému nebo lichému počtu jedniček pro celou skupinu). Také formát informační skupiny musí být dohodnut předem. Začátek informační skupiny je signalizován přijetím přechodu počátečního bitu přijímaného signálu na „0“. Po přijetí start bitu přijímač spustí svůj vnitřní generátor, s jehož pomocí se přijímaná data v čase synchronizují. Informační skupina končí vysíláním stop bitu, který obvykle zabírá 1,5 nebo dvě informační pozice.

Signály TXC a RXC „Synchronizace vysílaných a přijímaných signálových prvků“

Zdrojem signálů TXC (Transmit Clock) a RXC (Receive Clock) je zařízení DCE. Přechod signálu TXC nebo RXC ze stavu „zapnuto“ do stavu „vypnuto“ odpovídá středu informační pozice odpovídajícího signálu ústředny (TXD nebo RXD). Signály TXC a RXC jsou generovány zařízením DCE nepřetržitě od okamžiku zapnutí napájení a lze je použít k synchronizaci výměny informací.

Synchronní způsob interakce mezi DTE a DCE

Režim synchronní výměny informací se používá v případech, kdy je nutné zajistit stabilní, spolehlivou a vysokorychlostní interakci mezi DCE a DTE. V tento režim Zařízení DTE přijímá a vysílá data při synchronizaci DCE. V synchronním režimu se řízení toku nepoužívá, a proto jsou použity signály RTS a CTS v tomto případě neovlivňují rychlost výměny informací. Rychlost výměny během synchronní interakce je určena zdroji dat DCE pro oba směry přenosu. Synchronní interakci přes protokol V.24 lze realizovat např. pomocí synchronních rozhraní RS-232-C. Standard RS-232-C definuje nezbytnou podmnožinu řídicích signálů, které je třeba implementovat této interakce s rychlostí až 128 Kbps.

Signály TRXC „Synchronizace prvků přenášeného signálu“

Zdrojem signálů TRXC (Transmit Signal Element Timing) je zařízení DTE. Tento signál lze použít v případech, kdy zdrojem hodinových impulsů je zařízení DTE. Přechod signálu TRXC ze stavu „zapnuto“ do stavu „vypnuto“ odpovídá středu informační pozice signálu TXD.

Symetrické a asymetrické obvody

Signální napětí konvenčního, nesymetrického obvodu je generováno relativně ke společnému signálovému vodiči. Rozsahy signálového napětí rozhraní EIA-232 jsou uvedeny v tabulce:

Rozsah od - 3 do + 3 V tvoří zónu změny signálu.

Při přenosu po kabelu, který spojuje DCE a DTE, je informační signál vystaven rušení a zkreslený v důsledku nesouladu mezi parametry linky a generátoru. To může přijímači ztížit nebo znemožnit jeho správné rozpoznání. Proto i při použití režimu synchronní výměny je rychlost přenosu signálu přes fyzická rozhraní nesmí překročit stovky kilobitů za sekundu. K překonání tohoto omezení se pro propojení DCE a DTE používají speciální symetrické obvody.

Rozsahy změn signálového napětí mezi signálovými vodiči páru U ab pro rozhraní využívající symetrické signály (EIA-422) jsou uvedeny v tabulce:

Moderní vysokorychlostní sériová rozhraní používají vyvážené obvody pro přenos jak jednotlivých, tak všech informační signály. Jako příklad můžeme považovat rozhraní, které je postaveno v souladu se standardem V.35.

Přidat do:

Popis rozhraní RS-232, formát použitých konektorů a účel pinů, označení signálů, protokol výměny dat.

obecný popis

Rozhraní RS-232, oficiálně nazývané „EIA/TIA-232-E“, ale lépe známé jako rozhraní „COM port“, bylo dříve jedním z nejběžnějších rozhraní v počítačová technologie. Stále se vyskytuje na stolních počítačích, navzdory příchodu rychlejších a chytřejších rozhraní, jako je USB a FireWare. Mezi jeho výhody z pohledu radioamatérů patří nízká minimální rychlost a snadná implementace protokolu v podomácku vyrobeném zařízení.

Fyzické rozhraní je realizováno jedním ze dvou typů konektorů: DB-9M nebo DB-25M, druhý jmenovaný se v aktuálně vyráběných počítačích prakticky nevyskytuje.

Obsazení pinů 9pinového konektoru


9kolíková zástrčka typu DB-9M
Číslování kontaktů na straně kolíku
Směr signálů je indikován vzhledem k hostiteli (počítači)
Kontakt Signál Směr Popis
1 CD Vchod Byl zjištěn dopravce
2 RXD Vchod Přijatá data
3 TXD Výstup Přenášená data
4 DTR Výstup Hostitel připraven
5 GND - Společný drát
6 DSR Vchod Zařízení je připraveno
7 RTS Výstup Hostitel je připraven k vysílání
8 CTS Vchod Zařízení je připraveno k příjmu
9 R.I. Vchod Rozpoznaný hovor

Obsazení pinů 25pinového konektoru

Kontakt Signál Směr Popis
1 ŠTÍT. - Obrazovka
2 TXD Výstup Přenášená data
3 RXD Vchod Přijatá data
4 RTS Výstup Hostitel je připraven k vysílání
5 CTS Vchod Zařízení je připraveno k příjmu
6 DSR Vchod Zařízení je připraveno
7 GND - Společný drát
8 CD Vchod Byl zjištěn dopravce
9 - - Rezervovat
10 - - Rezervovat
11 - - Nepoužívá
12 SCD Vchod Byl zjištěn nosič #2
13 SCTS Vchod Zařízení je připraveno k příjmu #2
Kontakt Signál Směr Popis
14 STXD Výstup Odeslaná data #2
15 TRC Vchod Taktování vysílače
16 SRXD Vchod Přijatá data #2
17 RCC Vchod Taktování přijímače
18 LLOOP Výstup Místní smyčka
19 SRTS Výstup Hostitel připraven k vysílání #2
20 DTR Výstup Hostitel připraven
21 RLOOP Výstup Vnější smyčka
22 R.I. Vchod Rozpoznaný hovor
23 DRD Vchod Rychlost dat určena
24 TRCO Výstup Externí taktování vysílače
25 TEST Vchod Testovací mód

Z tabulek je vidět, že 25pinové rozhraní se vyznačuje přítomností plnohodnotného druhého vysílacího a přijímacího kanálu (signály označené „#2“) a také četnými přídavnými řídicími a řídicími signály. Často však, navzdory přítomnosti „širokého“ konektoru v počítači, dodatečné signály prostě s ním nejsou spojeni.

Elektrické charakteristiky

Logické úrovně vysílače:"0" - od +5 do +15 voltů, "1" - od -5 do -15 voltů.

Logické úrovně přijímače:"0" - nad +3 volty, "1" - pod -3 volty.

vstupní impedance přijímač alespoň 3 kOhm.

Tyto vlastnosti jsou standardem definovány jako minimální, zaručující však kompatibilitu zařízení skutečné vlastnosti obvykle výrazně lepší, což umožňuje na jedné straně napájet z portu zařízení s nízkou spotřebou (například četné podomácku vyrobené datové kabely pro mobily) a na druhé straně jej přiveďte na vstup portu obrácenýÚroveň TTL místo bipolárního signálu.

Popis signálů hlavního rozhraní

CD- Zařízení nastaví tento signál, když v přijímaném signálu detekuje nosnou. Tento signál obvykle využívají modemy, které tak informují hostitele, že na druhém konci linky detekovaly funkční modem.

RXD- Linka pro hostitele pro příjem dat ze zařízení. Podrobně popsáno v části „Protokol výměny dat“.

TXD- Datová linka z hostitele do zařízení. Podrobně popsáno v části „Protokol výměny dat“.

DTR- Hostitel nastaví tento signál, když je připraven k výměně dat. Ve skutečnosti je signál nastaven, když je port otevřen komunikačním programem a zůstává v tomto stavu, dokud je port otevřený.

DSR- Zařízení nastaví tento signál, když je zapnuté a připravené ke komunikaci s hostitelem. Tento a předchozí (DTR) signály musí být nastaveny pro výměnu dat.

RTS- Hostitel nastaví tento signál před zahájením přenosu dat do zařízení a také signalizuje, že je připraven přijímat data ze zařízení. Používá hardwarové ovládání výměna dat.

CTS- Zařízení nastaví tento signál v reakci na to, že hostitel nastaví předchozí (RTS), když je připraveno přijímat data (například když jsou předchozí data odeslaná hostitelem přenesena modemem na linku nebo je volné místo ve střední vyrovnávací paměti).

R.I.- Zařízení (obvykle modem) nastaví tento tón, když přijme hovor ze vzdáleného systému, např. telefonát, pokud je modem nakonfigurován pro příjem hovorů.

Komunikační protokol

V protokolu RS-232 existují dva způsoby řízení výměny dat: hardware a software a také dva režimy přenosu: synchronní a asynchronní. Protokol umožňuje použít kteroukoli z metod řízení ve spojení s jakýmkoli režimem přenosu. Je také možné pracovat bez řízení toku, což znamená, že hostitel a zařízení jsou vždy připraveni přijímat data, když je navázána komunikace (signály DTR a DSR jsou navázány).

Způsob ovládání hardwaru implementovány pomocí signálů RTS a CTS. Pro přenos dat hostitel (počítač) nastaví signál RTS a čeká, až zařízení nastaví signál CTS, a poté začne vysílat data, dokud je signál CTS nastaven. Signál CTS je zkontrolován hostitelem bezprostředně předtím, než se začne vysílat další bajt, takže bajt, který se již začal vysílat, bude přenesen celý, bez ohledu na hodnotu CTS. V poloduplexním režimu výměny dat (zařízení a hostitel přenášejí data střídavě, v plně duplexním režimu to mohou dělat současně) odstranění signálu RTS hostitelem znamená, že se přepne do režimu příjmu.

Způsob ovládání softwaru spočívá v převodu přijímající stranou speciální znaky zastavení (kód znaku 0x13, nazývaný XOFF) a obnovení (kód znaku 0x11, nazývaný XON) vysílání. Po přijetí těchto znaků musí odesílající strana zastavit přenos nebo jej podle toho obnovit (pokud na přenos čekají data). Tato metoda je jednodušší z hlediska hardwarové implementace, ale poskytuje pomalejší odezvu, a proto vyžaduje předchozí upozornění vysílače při snižování volný prostor v přijímací vyrovnávací paměti až do určitého limitu.

Režim synchronního přenosu znamená nepřetržitou výměnu dat, když bity následují jeden za druhým bez dalších pauz danou rychlostí. Tento režim je COM port není podporováno.

Režim asynchronního přenosu spočívá v tom, že každý bajt dat (a paritní bit, pokud existuje) je „obalen“ synchronizační sekvencí jednoho nulového start bitu a jednoho nebo více jednoho stop bitu. Diagram toku dat v asynchronním režimu je znázorněn na obrázku.

Jeden z možné algoritmy provoz přijímače další:

  1. Počkejte na úroveň přijímaného signálu "0" (RXD v případě hostitele, TXD v případě zařízení).
  2. Počítejte polovinu doby trvání bitu a zkontrolujte, zda je úroveň signálu stále "0"
  3. Počítejte celou dobu trvání bitu a zapište aktuální úroveň signálu do nejméně významného bitu dat (bit 0)
  4. Opakujte předchozí krok pro všechny zbývající datové bity
  5. Počítejte celou dobu trvání bitu a aktuální úroveň signálu, použijte ji ke kontrole správného příjmu pomocí kontroly parity (viz níže)
  6. Počítejte celou dobu trvání bitu a ujistěte se, že aktuální úroveň signálu je „1“.
Signály a kontakty rozhraní RS232
Konektor 9
špendlík #
Konektor 25
špendlík #
Označení Celé jméno Směr Co znamená
Přenášet data Přenos dat z počítače
Příjem dat Příjem dat počítačem
Žádost o odeslání
Vymazat k odeslání Hardwarové řízení přenosu dat typu RTS/CTS
Soubor dat připraven Jsem připraven na výměnu dat
Datový terminál připraven Jsem připraven na výměnu dat
Carrier Detect Jeden modem připojen k druhému
Prstencový indikátor Prozvoňte (zavolejte) na telefonní lince
Země

Poznámka: DCD je někdy označováno jako CD

Signály mohou mít různý význam

Pouze 3 kontakty z 9 jsou striktně konkrétní hodnotu: vysílání, příjem a zem. Jedná se o hardwarové řady a nemůžete změnit jejich účel. Ale všechny ostatní signálové linky jsou řízeny softwarem a mohou být (nebo se předpokládá) většinou pro jiné účely. Mohou však převzít pouze dva stavy: vysoký (instalovaný) (+12 voltů) a nízký (reset) (-12 voltů). Stav nastavení je "zapnuto" a stav resetování je "vypnuto". Například Advanced Serial Port Monitor (nebo přesněji uživatel program) může ovládat signál DTR, hardware jej naopak napájí napětím 12 voltů s jednou či druhou polaritou. Modem (nebo jiné zařízení), které přijímá signál DTR, jej může interpretovat odlišně. V jednom případě může modem (v závislosti na modelu a firmwaru) trvat telefonní linka pokud je signál DTR vymazán. Jinak bude modem ve stavu reset ignorovat signál DTR.

To platí pro všech 6 signálních vedení. Hardware tyto signály pouze odesílá a přijímá, ale akce závisí (pokud vůbec) na programu (jako je Advanced Serial Port Monitor) a konfiguraci hardwaru, který k sériovému portu připojíte.

Kabelové propojení mezi sériovými porty

Pracovat na sériové rozhraní má své výhody. Jedním z důvodů je, že všechny signály jsou jednosměrné. Pokud kolík 2 posílá data (a neumožňuje příjem jiných signálů), je zřejmé, že ke kolíku 2 nelze připojit kolík stejného typu. Pokud tak učiníte, nebudete moci na této lince odesílat ani přijímat signály. Existují dva různé způsoby připojení zařízení. Jeden z nich zahrnuje propojení dvou zařízení odlišné typy, když kolík č. 2 jednoho posílá data na kolík č. 2 druhého (který tento signál přijímá). Toto je cesta při připojení počítače (DTE) a modemu (DCE). Existuje také druhý způsob, jak mohou být zařízení stejného typu: připojte odesílací datový kolík č. 2 k přijímacímu datovému kolíku č. 3 zařízení stejného typu. Toto je způsob, kdy můžete propojit dva počítače (DTE-to-DTE). Typ kabelu použitý v tomto případě se nazývá kabel null-modem, protože propojuje dva počítače bez použití modemů. Nulový modem se také někdy nazývá invertovaný kabel, protože dráty mezi kolíky 2 a d 3 jdou obráceně. Výše uvedený příklad je uveden pro kontakty 25pinového konektoru, ale odpovídajícím způsobem lze použít i 9pinový konektor.

Řízení datového přenosu typu RTS/CTS a DTR/DSR

Jedná se o tzv. „hardwarové“ řízení přenosu dat. Řízení přenosu dat bylo podrobněji popsáno na jiné stránce v části "Řízení přenosu dat", ale kontakty a signály nebyly popsány. Advanced Serial Port Monitor podporuje typy hardwarového řízení přenosu dat RTS/CTS a DTR/DSR. Zde bude diskutován pouze typ řízení přenosu dat RTS/CTS, protože typ řízení přenosu dat DTR/DSR funguje na stejném principu. Chcete-li aktivovat řízení přenosu dat RTS/CTS, stačí vybrat tuto možnost v nastavení Advanced Serial Port Monitor.

Pokud tedy zařízení DTE (například počítač) chce ukončit přenos dat, resetuje stav signálu RTS. Resetovaný signál "Požadavek na odeslání" (-12 voltů) znamená "neposílat mi požadavky" (zastavit odesílání). Když je počítač připraven přijmout další blok dat, nastaví signál RTS (+12 voltů) a datový tok se obnoví. Řídicí signály přenosu dat jsou vždy odesílány do opačný směr z datového toku, který řídí. Zařízení DCE (modemy) fungují na stejném principu, pouze vysílají signál na pin CTS. Proto typ řízení přenosu dat RTS/CTS používá 2 linky (vodiče).

Někdy musíte vyřešit problém s komunikací elektronické zařízení s počítačem, ať už jde o jednoduchou výměnu dat nebo dálkové ovládání. Tento článek popisuje, jak to lze implementovat pomocí sériový port. Jeho hlavní výhodou je standardní software Rozhraní Windows(API) umožňuje přímou kontrolu nad výstupními linkami, dává nad nimi přímou kontrolu a má funkci čekání na nějakou událost spojenou s COM portem. Také standard RS-232, podle kterého jsou COM porty vyrobeny, umožňuje připojování a odpojování kabelů za provozu zařízení (hot plug).

Popis

COM port (sériový port)– obousměrné rozhraní, které přenáší data v sériové podobě (bit po bitu) přes protokol RS-232. Jedná se o poměrně běžný protokol používaný k propojení jednoho zařízení (například počítače) s ostatními pomocí vodičů o délce až 30 m. Logické úrovně signálu se zde liší od standardních: úroveň logické jedničky je od +5 do +15V, úroveň logické nuly je od -5 do -15V, což vyžaduje dodatečné transformace obvodu, ale poskytuje dobrou odolnost proti šumu.

Zvažte 9pinový konektor (DB-9M). Níže je jeho pinout:

Pin č. název Charakter signálu Signál
1 DCD Vstup Detekce datového nosiče
2 RxD Volno Přenášet data
3 TxD Vstup Přijímat data
4 DTR Volno Datový terminál připraven
5 GND - Přízemní
6 DSR Vstup Soubor dat připraven
7 RTS Volno Žádost o odeslání
8 CTS Vstup Vymazat k odeslání
9 R.I. Vstup Indikátor kroužku

Nás budou nejvíce zajímat piny 2 (přenos dat), 3 (příjem dat) a 5 (zem). Toto je minimální sada pro obousměrnou komunikaci mezi zařízeními.

Nebudu se podrobně zdržovat popisem protokolu. K tomu existují GOST atd. Půjdeme proto dále a povíme si o tom, jak tuto šelmu ovládat.

aplikace

Jak již bylo zmíněno, úrovně RS-232 LAN se liší od standardní úrovně TTL. Proto musíme hodnoty napětí nějak převést. Tito. udělejte 5V z +15V a 0V z -15V (a naopak). Jedním ze způsobů (a pravděpodobně nejjednodušším) je použití speciální čip MAX232. Je snadno pochopitelný a dokáže současně převádět dva logické signály.

Níže je schéma jeho zařazení:


Myslím, že by neměly být žádné potíže. Jedná se o jednu z možností využití tohoto čipu: přenos dat z mikrokontroléru do počítače a naopak. Vysílaný signál vstupuje do nohou T X IN na jedné straně a na R X IN na druhé. Vstupní signály odstraněn z T X OUT a R X Podle toho OUT.

Programování

Nejprve si povíme něco o programování portů na nízké úrovni. Toto bude správnější. Strávil jsem spoustu nervů pochopením tohoto rozhraní, dokud jsem se nezačal zabývat principem jeho fungování na nižší úrovni než jednoduchý přenos postavy. Pokud je to jasné, pak s jazyky na vysoké úrovni nebudou žádné problémy.

Níže jsou uvedeny adresy COM portů, se kterými budeme muset pracovat:

Název portu Adresa IRQ
COM 1 3F8h 4
COM 2 2F8h 3
COM 3 3E8h 4
COM 4 2E8h 3

Mohou se lišit. Hodnoty můžete nastavit v nastavení BIOSu. Tento základní adresy. Adresy registrů odpovědných za provoz portů na nich budou záviset:

Adresa DLAB Číst psát Zkratka Registrovat jméno
+ 0 =0 Napsat Vyrovnávací paměť vysílače
=0 Číst Vyrovnávací paměť přijímače
=1 Číst psát Nízký bajt dělitel Latch
+ 1 =0 Číst psát IER Přerušit Povolit Registr
=1 Číst psát Divisor Latch High Byte
+ 2 - Číst IIR Registr identifikace přerušení
- Napsat FCR Kontrolní registr FIFO
+ 3 - Číst psát LCR Registr řízení linky
+ 4 - Číst psát MCR Řídicí registr modemu
+ 5 - Číst LSR Registr stavu linky
+ 6 - Číst MSR Registr stavu modemu
+ 7 - Číst psát Scratch Register

První sloupec je adresa registru vzhledem k základnímu. Například pro COM1: adresa registru LCR bude 3F8h+3=3FB. Druhý sloupec je bit DLAB (Divisor Latch Access Bit), který definuje různé účely pro stejný registr.. Tj. umožňuje obsluhovat 12 registrů pouze z 8 adres. Je-li například DLAB=1, pak přístupem na adresu 3F8h nastavíme hodnotu dolního bytu děliče frekvence hodinového generátoru. Je-li DLAB = 0, pak při přístupu na stejnou adresu se do tohoto registru zapíše vysílaný nebo přijatý bajt.

"Nulový" registr

Odpovídá registrům pro příjem/vysílání dat a nastavení koeficientu děliče kmitočtu generátoru. Jak bylo uvedeno výše, pokud je DLAB = 0, pak se registr používá k záznamu přijatých/vysílaných dat, ale pokud je roven 1, pak se nastaví hodnota dolního bytu děliče frekvence hodinového generátoru. Rychlost přenosu dat závisí na hodnotě této frekvence. Vysoký bajt děliče se zapíše do další paměťové buňky (tj. pro port COM1 to bude 3F9h). Níže je uvedena závislost rychlosti přenosu dat na koeficientu dělitele:

Registr povolení přerušení (IER)

Je-li DLAB=0, pak se používá jako registr pro ovládání přerušení z asynchronního adaptéru, je-li DLAB=1, pak se v něm nastavuje horní byte děliče frekvence hodinového generátoru.

Identifikační registr přerušení (IIR)

Přerušení je událost, která zastaví provádění hlavního programu a zahájí provádění rutiny přerušení. Tento registr určuje typ přerušení, ke kterému došlo.

Line Control Register (LCR)

Toto je řídicí registr.

Bit 7 1 Divisor Latch Access Bit – nastavení rychlosti výměny dat
0 Normální režim (kontrola přerušení, příjem/přenos dat)
Bit 6 Simulovat zalomení řádku (odešle sekvenci více nul)
Bity 3–5 Bit 5 Bit 4 Bit 3 Výběr parity
X X 0 Žádná parita
0 0 1 Lichá parita
0 1 1 Rovnoměrná parita
1 0 1 Vysoká parita (lepkavé)
1 1 1 Nízká parita (lepkavé)
Bit 2 Počet stop bitů
0 1 stop bit
1 2 stop bity pro 6, 7 nebo 8 datových bitů nebo 1,5 stop bitů pro 5 datových bitů.
Bity 0 a 1 Bit 1 Bit 0 Počet datových bitů
0 0 5 bitů
0 1 6 bitů
1 0 7 bitů
1 1 8 bitů

Kontrola parity zahrnuje přenos jednoho dalšího bitu - paritního bitu. Jeho hodnota je nastavena tak, aby celkový počet jedniček (nebo nul) v paketu bitů byl sudý nebo lichý v závislosti na nastavení registrů portů. Tento bit se používá k detekci chyb, které mohou nastat při přenosu dat v důsledku rušení na lince. Přijímací zařízení přepočítá paritu dat a porovná výsledek s přijatým paritním bitem. Pokud se parita neshoduje, má se za to, že data byla přenesena s chybou.

Stop bit označuje konec přenosu dat.

Modem Control Register (MCR)

Řídicí registr modemu.

Bit Význam
0 DTR linka
1 linka RTS.
2 Linka OUT1 (náhradní)
3 Linka OUT2 (náhradní)
4 Spuštění diagnostiky, když je vstup asynchronního adaptéru zkratován k jeho výstupu.
5-7 Rovná se 0

Registr stavu linky (LSR)

Registr, který určuje stav linky.

Bit Význam
0 Data přijatá a připravená ke čtení, automaticky resetována při čtení dat.
1 Chyba přetečení. Byl přijat nový bajt dat, ale ten předchozí program ještě nepřečetl. Předchozí bajt je ztracen.
2 Chyba parity, vymazáno po přečtení stavu řádku.
3 Chyba synchronizace.
4 Byl zjištěn požadavek na přerušení přenosu „BREAK“ – dlouhý řetězec nul.
5 Udržovací registr vysílače je prázdný a lze do něj zapsat nový bajt pro přenos.
6 Posuvný registr vysílače je prázdný. Tento registr přijímá data z uchovávacího registru a serializuje je pro přenos.
7 Časový limit (zařízení není připojeno k počítači).

Registr stavu modemu (MSR)

Registr stavu modemu.

Dobře, teď je po všem. Obsluhou těchto registrů můžete přímo komunikovat s COM portem a řídit přenos a příjem dat. Pokud se nechcete vrtat s pamětí, můžete použít hotové komponenty pro různá programovací prostředí: C++, VB, Delphi, Pascal atd. Jsou intuitivní, takže si myslím, že zde není třeba se na ně zaměřovat.

Standardní modemové rozhraní (rs232), kromě linek RxD a TxD, má spoustu různých, nazývaných „signály handshake“. Vždycky jsem z nich byl zmatený - všechny tyhle RTS, CTS a další DSR. V tomto článku se pokusím tyto signály systematizovat a stručně popsat.

Takže první věc, kterou byste měli vědět, je, že rozhraní rs232 spojuje dva typy zařízení

    DTE (Data Terminal Equipment) je obvykle počítač nebo zařízení nahrazující počítač. Pro zjednodušení odteď budu počítač označovat jako DTE. Na počítači je nainstalován samec konektor.

    DCE (Data Circuit-terminating Equipment) je obvykle modem nebo jeho náhradní zařízení. Pro zjednodušení budu DCE označovat jako modem. DCE je vybaven zásuvkou

Signály popíšu na příkladu 9pinového konektoru, protože je nejběžnější. Pojďme se na to podívat.

Jak vidíte, kontakty na konektorech jsou obrácené. Přímý vodič tedy spojí kontakty se stejnými čísly, to znamená, že například kontakt 2 na „samci“ bude odpovídat kontaktu 2 na „samici“.

A zde je souhrnná tabulka signálů. Pod názvem pinu je číslo jeho pinu v 9pinovém konektoru.

Přenos dat počítačem, příjem modemem TxD
3
RxD
2
Přenos dat modemem, příjem počítačem
Počítač je připraven k přenosu dat, nebo počítač umožňuje přenos dat modemu RTS
7
CTS
8
Modem umožňuje počítači přenášet data
DSR
6
Modem je připraven k provozu.
Počítač je připraven k práci. DTR
4
R.I.
9
Indikátor kroužku
DCD
1
Indikátor přítomnosti nosiče. Instalováno po připojení.
Země S.G.
5
S.G.
5
Země

Pojďme si každý signál popsat trochu podrobněji.

Budu uvažovat signály běžných logických úrovní - způsob, jakým se dívají na výstupy nebo vstupy mikrokontroléru.

Signály v kabelu (za převodníkem úrovní, např. max232) jsou invertovány a úrovně jsou posunuty. Logická 1 na výstupu regulátoru tedy odpovídá úrovním napětí od –3 do –15 voltů a logická nula – +3...+15 voltů.

TxD (přenos dat)

Hned řeknu, že nevím, odkud pochází písmeno „x“ ve zkratce.

Tato linka přenáší data z počítače do modemu. Ve výchozím nastavení - vysoká úroveň. Příjem bajtu začíná počátečním bitem (nebo spíše přechodem řádku z vysokého do nízkého stavu). Počáteční bit je vždy logická nula.

Poté je zde volitelný paritní bit (na obrázku není zobrazen). Paritní bit doplňuje počet jedniček na sudý (sudý) nebo lichý (lichý). Pokud by například v bajtu byly 3 jedničky a parita byla nastavena na „sudá“, pak by se paritní bit nastavil na 1, aby se počet jedniček doplnil čtyřmi – sudé číslo. Parita se používá ke kontrole, zda byl bajt přenesen správně.

Po paritním bitu je jeden, jeden a půl nebo dva stop bity. Stop bit se používá k zajištění správného fungování startovacího bitu (takže vždy existuje rozdíl mezi bajty od vysoké k nízké). Tento bit je vždy nastaven na logickou 1.

Například přenos 0xEE bude na lince UART vypadat takto:

Parametry sériového portu se obvykle zapisují takto – „9600, 8N1“. 9600 je přenosová rychlost bit/s, 8 je počet datových bitů ve vysílání, N je nepoužívaný paritní bit (může být E nebo O, pokud je použit), 1 je jeden stop bit.

Všimněte si, že počet bajtů přenesených za sekundu závisí nejen na přenosové rychlosti, ale také na formátu bajtů. Například jeden bajt ve formátu 8N1 zabere 10 bitů (start + 8 datových bitů + stop) a ve formátu 8E1 již 11 bitů - přidá se paritní bit. V souladu s tím se rychlost bajtů při bitové rychlosti 9600 baudů stane 960 bajtů/s v prvním případě a 872,7 bajtů/s ve druhém.

RxD (příjem dat)

Stejně jako TxD, pouze vlastníkem této linky je modem.

CTS (Clear To Send)

Zvažme tuto situaci - počítač posílá modem velký počet data rychlostí 38 400 baudů a modem je připojen k jinému modemu rychlostí 9 600 baudů.

Vyrovnávací paměť uvnitř modemu se rychle zaplní, a aby nedošlo k přetečení, musí modem sdělit počítači, aby „přestal vysílat!“ K tomu slouží řada CTS.

Aktivní úroveň CTS je nízká. To znamená, že modem umožňuje přenos dat, když je pin ovladače 0.

Příklad z manuálu LPC17xx.

Jak vidíte, počítač vysílal data, zatímco na noze byla nula. Když došlo k vysoké úrovni, počítač dokončil přenos aktuálního bajtu a zastavil se.

RTS (požadavek na odeslání)

S tou nohou je spousta zmatků. Problém je v tom, že v místě této nohy mohou být podle normy dva signály - RTS (číslo řetězu podle normy je 105) a RTR (číslo 133).

RTS(Připraveno k odeslání) – počítač signalizuje modemu, že nyní bude přenášet data. Modem musí připravit a aktivovat CTS, poté počítač začne vysílat data.

RTR(Ready To Receive) – počítač sdělí modemu, že je připraven přijímat data. Jedná se o obdobu CTS, pouze ze strany počítače.

Většina zařízení nyní používá RTS jako RTR! A dokonce i hardwarový handshaking v LPC17xx, LPC2xxx, AT91SAM7 je implementován přesně mechanismem RTR.

Aktivní úroveň, stejně jako CTS, je nízká.

Pojďme se na mechanismus podívat blíže na příkladu z manuálu LPC17xx

Za prvé, signál RTS je nízký, jsou přijímány bajty.

Jakmile se vyrovnávací paměť přijímače zaplní N znaků, RTS se zvýší, což brání modemu v přenosu dat. Jak je ale vidět, modem nestihl zareagovat na RTS a přenesl další bajt, takže je velmi důležité ponechat alespoň jeden bajt ve vyrovnávací paměti.

DTR (připraven pro datový terminál)

Signál z počítače do modemu indikující, že počítač je zapnutý a kočky jsou připraveny pracovat s modemem. Aktivní stav je jako obvykle nízký. To znamená, že pokud je na větvi ovladače 0, pak se modem musí připravit na připojení k lince. Pokud počítač nastaví logickou 1 na této větvi, musí se modem odpojit od linky (například zavěsit)

DTR byl také často používán jako zdroj energie pro externí zařízení s nízkou spotřebou energie (například myš).

DSR (Data Set Ready)

Signál z modemu do počítače. Označuje, že modem je zapnutý, inicializovaný a připravený komunikovat s počítačem. Dokud není tento signál aktivní, nemá smysl nic vysílat do modemu. Modem je připraven, když je kolík řadiče logická 0.

RI (Ring Indicator)

Signál z modemu do počítače. Jak asi tušíte, tento signál při volání do modemu cuká. Rychlost přepínání signálu je malá, řádově v sekundách, signál poměrně přesně sleduje obálku hovoru (obálku toho, co slyšíte, když zazvoní analogový telefon).

V praxi se tento signál používá jen zřídka. Obvykle program pouze čeká na zprávu „RING“ z modemu.

Logická 0 na kolíku ovladače to znamená probíhá hovor.

DCD (Data Carrier Detect)

Signál z modemu do počítače. Sděluje počítači, že modem je připojen ke vzdálenému modemu. Tato větev je velmi důležitá, protože umožňuje detekovat spontánní vypnutí.

Logická 0 znamená, že komunikace mezi modemy je aktivní.

Nyní krátce o kabelu

Nyní o kabelu. Norma definuje maximální kapacita kabel jako 2,5nF. To je přibližně 25 metrů.

V praxi je však toto omezení ignorováno, protože integrita signálu je určena nejen kapacitou, ale také rychlostí. Zde jsou uvedeny maximální délky používané v praxi pro nízké rychlosti.

Rychlost (baud) Délka stíněného kabelu, metry Délka nestíněného kabelu, metry
110 1500 300
300 1200 300
1200 900 150
2400 600 150
4800 150 75
9600 75 30

Standard

Pokud máte stále nějaké dotazy, je lepší kontaktovat přímo standard. Jak se ukázalo, je docela těžké to najít, takže to zveřejňuji také na svém.




Horní