RS-485 Pregled
Kao i RS-232, RS-485 je serijski komunikacioni standard. Njegova trenutna zvanična oznaka je TIA-485/EIA-485-A, ali se obično naziva RS-485 standard. RS-485 se široko koristi u industrijama kao što su industrijska automatizacija, automobilska industrija i upravljanje zgradama.
RS-485 magistrala prevazilazi nedostatke RS-232, kao što su kratke komunikacijske udaljenosti i niske brzine prenosa podataka. RS-485 podržava brzine prenosa podataka do 10 Mbit/s i ima teorijsku komunikacijsku udaljenost do 1.200 metara. Za razliku od jednostranog prijenosa RS-232, RS-485 koristi diferencijalni prijenos preko para žica upredene parice, pri čemu je jedna žica označena kao A, a druga kao B.
RS-485 fizički sloj
Fizički sloj RS-485 odgovoran je za prijenos sirovih podataka između uređaja i fizičkog medija za prijenos. On upravlja konverzijom električnih signala u digitalne podatke, dok također definira nivoe napona, vrijeme, brzinu prijenosa podataka i druge parametre.
① Diferencijalni signali
Kabliranje{0}}na daljinu dovodi do slabljenja signala i povećava vjerovatnoću buke i smetnji. Ovo se manifestuje kao promene amplitude napona na kablovima A i B. Međutim, prednost korišćenja diferencijalnih vodova je u tome što oduzimanje razlike između dva signala poništava smetnje, omogućavajući izlaz normalnog signala. Sposobnost diferencijalnog prijemnika da zanemari identične napone na obje signalne linije naziva se odbijanje zajedničkog-moda.


Standard navodi da je logika 1 +2V do +6V, a logička 0 je -6V do -2V.
RS-485 ne zahtijeva određeni napon magistrale; uzima u obzir samo minimalni diferencijalni napon. Kod dužih kablova, napon koji prima prijemnik može pasti na +/- 200 mV, što je i dalje savršeno prihvatljivo za RS-485-ovo je jedna od prednosti RS-485.
Mnogi primopredajnici zadovoljavaju ili čak premašuju TIA/EIA-485A standard; u praktičnim aplikacijama, međutim, prednost imaju specificirani parametri uređaja. Na primjer, minimalni negativni ulazni prag za određeni primopredajnik je -200 mV.


② Definicije signala
Mnogi RS-485 pretvarači danas su kompatibilni sa RS-422, tako da ćete često vidjeti signale označene T/R+ i T/R- na ovim pretvaračima, koji odgovaraju RS-485 A+ i B-.
Za DB9 ženske konektore, definicija ožičenja RS-485 je sljedeća: Pinovi 6 do 9 su N/A i ne bi trebali biti povezani.
| DB9 | Izlazni signal | RS-422 Full-Duplex Wiring | RS-485 poludupleksno ožičenje |
| 1 | T/R+ | Pošalji (A+) | RS-485(A+) |
| 2 | T/R- | Pošalji (B-) | RS{1}}485(B-) |
| 3 | RXD+ | Primi (A+) | Prazan |
| 4 | RXD- | Primi (B-) | Prazan |
| 5 | GND | Ground Wire | Ground Wire |
③ Topologija
RS-485 podržava i dvožične-i četverožične-konfiguracije. Četvorožična konfiguracija-ograničena je na-to-komunikaciju i danas se rijetko koristi; dvožična konfiguracija se češće koristi. Ova konfiguracija koristi topologiju magistrale, koja omogućava povezivanje do 32 čvora na jednu sabirnicu.
Kao I²C, RS-485 magistrala radi u master{3}}slave modu. Podržava oba tačka-do-jedinstveni-podređeni način i više-podređeni način rada, ali ne podržava multi-master način rada.


RS-485 primopredajnik
RS-485 koristi diferencijalni prijenos. Ako želite da upravljate RS-485 uređajem pomoću mikrokontrolera, trebat će vam primopredajnik sličan CAN magistrali. Sljedeći dijagram ilustruje MCU koji kontrolira RS-485 uređaj.
Unutar primopredajnika nalazi se prijemnik (gornja polovina) i predajnik (donja polovina). Ispod je kratko objašnjenje kako radi primopredajnik kako bi vam pomogao da shvatite kako MCU komunicira sa 485 uređajem.

Unutrašnja struktura RS-485 primopredajnika
gdje:
A i B su autobus;
R je ulaz prijemnika;
RE je signal za omogućavanje prijemnika;
DE je signal za omogućavanje predajnika;
D je izlaz predajnika;
Za signale za omogućavanje, oni sa linijom iznad slova su aktivni-niski (npr. RE na slici iznad), dok su oni bez linije aktivni-visoki (npr. DE).
Tabela istinitosti prijemnika
Za odašiljač, tabela istinitosti je sljedeća:
1. Kada je pin za omogućavanje drajvera DE na logičkom visokom nivou, diferencijalni izlazi A i B prate logičko stanje na ulazu podataka D. Visok logički nivo na D uzrokuje da A ide visoko, a B nisko. U ovom slučaju, diferencijalni izlazni napon, definiran kao VOD=VA – VB, je pozitivan. Kada je D nizak, izlazna stanja se invertuju: B ide visoko, A ide nisko, a VOD je negativan.
2. Kada je DE nizak, oba izlaza postaju visoka-impedancija. U ovom slučaju, logičko stanje na D je irelevantno.
Sljedeća tabela istinitosti odnosi se na primaoca:
1. Kada je pin za omogućavanje prijemnika (RE) na logičkom niskom nivou, prijemnik se aktivira. Kada je diferencijalni ulazni napon, definisan kao VID=VA – VB, pozitivan i premašuje pozitivni ulazni prag VIT+, izlaz R prijemnika postaje visok. Kada je VID negativan i ispod negativnog ulaznog praga VIT-, izlaz R prijemnika pada na nisko. Ako je VID između VIT+ i VIT-, izlaz je nedefinisan.
2. Kada je RE logički visok ili plutajući, izlaz prijemnika je visoka impedancija, bez obzira na veličinu ili polaritet VID-a.


RS-485 Data Link
Nakon što smo gore raspravljali o principima rada RS-485 primopredajnika, sada ćemo ukratko opisati RS-485 podatkovnu vezu. Možete prvo pogledati format okvira UART protokola koji je lako razumljiv.
Bez obzira da li master šalje podatke slaveu ili slave šalje podatke masteru, koriste se i A i B linije; stoga se RS-485 obično koristi u poludupleksnom načinu.
GPIO domaćina kontroliše DE pin RS-485 primopredajnika za postavljanje načina prijenosa. Jedan bajt se šalje sa UART TXD linije na liniju podataka (D ili DI) RS-485 primopredajnika. Primopredajnik pretvara jednostrani UART tok bitova u diferencijalni tok bitova na A i B linijama. Kada podaci napuste primopredajnik, domaćin odmah prebacuje primopredajnik u način prijema.
Slave radi slično kao i master. Slave kontroliše /RE pin RS-485 primopredajnika da ga postavi u režim prijema, prima tok bitova koji šalje master, pretvara ga u jednostrani signal i prima ga preko UART RXD linije slave-a. Kada je slave spreman da odgovori, on prenosi podatke na isti način kao i master, dok se master prebacuje u režim prijema.
Konverzija RS-232 u RS-485
Moguće je konvertovati između RS-232 i RS-485. Jedna metoda je pretvaranje RS-232 u TTL, a zatim pretvaranje TTL-a u RS-485. Naravno, postoje i čipovi koji podržavaju direktnu konverziju sa RS-232 na RS-485, a mnogi takvi moduli su dostupni online.
Moduli za konverziju RS-232 u RS-485
Razlike između RS-485 i CAN-a
Iako RS-485 nema standardizovani format protokola podataka, on ima mnogo sličnosti sa CAN magistralom. Na primjer, i A&B i CANH&CANL su diferencijalni signali; oba zahtijevaju primopredajnike za komunikaciju; i oba koriste završne otpornike od 120 oma, između ostalih sličnosti.
| Karakteristike autobusa | CAN Bus | RS-485 autobus |
| Troškovi hardvera | Nešto više | Jeftino |
| Iskorišćenost autobusa | Automatska prioritetna arbitraža, visoka iskorištenost | Koristi glasanje; nisko iskorištenje |
| Brzina prijenosa podataka | Visoko | Nisko |
| Mehanizmi za otkrivanje grešaka | Kontroler uključuje mehanizam kontrolne sume kako bi se osigurala tačnost prijenosa podataka niskog{0}}nivoa | Samo specifikacije fizičkog sloja; nema specifikacija sloja veze podataka |
| Utjecaj kvara jednog-čvora | Nema uticaja na autobus | Paraliza autobusa |
| Troškovi razvoja | Fleksibilan razvoj softvera, niski troškovi vremena | Teško se razvija |
| Sistemski troškovi | Relativno nisko | Visoko |
Uobičajena RS-485 kola
Ovdje je uobičajeno kolo RS-485 koje sam pronašao na internetu. Dvije su stvari na koje treba obratiti pažnju:
1. Signali za omogućavanje RE i DE mogu se kontrolirati pomoću jednog GPIO-a radi uštede resursa. Kada GPIO25 daje visok nivo, RE i DE su 0 V, a uređaj ulazi u režim prijema; kada GPIO25 daje nizak nivo, RE i DE su 3,3 V, a uređaj ulazi u režim prenosa.
2. U nekim kolima, pull{1}}otpornik se dodaje na pin A i pull{2}}otpornik na pin B. Glavni razlog za to je taj što, kada je RS-485 sabirnica u stanju mirovanja, nivo napona nije fiksiran-to jest, može fluktuirati između -20 i mV{7} izlaz ili visok ili nizak nivo. UART mora održavati visok nivo kada je u stanju mirovanja; ako primopredajnik u ovom trenutku daje nizak nivo, UART ga tumači kao početni bit, što može uzrokovati komunikacijske greške. Specifične vrijednosti R_u i R_d ovdje neće biti detaljno razmatrane; Planiram u budućnosti napisati detaljan članak na ovu temu.

Što se tiče druge tačke, imajte na umu sljedeće:
① Ako primijenite pull{0}}up otpornik na pin A i pull{1}}down otpornik na pin B, komunikacija podataka možda neće uspjeti zbog obrnutih veza.
② Ako primopredajnik ima ugrađene-povlačne-gore i{2}}dole otpornike, nema potrebe za dodavanjem vanjskih otpornika.




