Så RS-485 er det enkelt?

Jul 31, 2026 Legg igjen en beskjed

RS-485 Oversikt


I likhet med RS-232 er RS-485 en seriell kommunikasjonsstandard. Den nåværende offisielle betegnelsen er TIA-485/EIA-485-A, men den blir ofte referert til som RS-485-standarden. RS-485 er mye brukt i bransjer som industriell automasjon, bilindustri og bygningsforvaltning.


RS-485-bussen overvinner manglene til RS-232, for eksempel korte kommunikasjonsavstander og lave datahastigheter. RS-485 støtter datahastigheter på opptil 10 Mbit/s og har en teoretisk kommunikasjonsavstand på opptil 1200 meter. I motsetning til den ensidige overføringen til RS-232, bruker RS-485 differensialoverføring via et par tvunnet-par ledninger, med en ledning betegnet som A og den andre som B.


RS-485 fysisk lag


Det fysiske RS-485-laget er ansvarlig for å overføre rådata mellom enheter og det fysiske overføringsmediet. Den håndterer konverteringen av elektriske signaler til digitale data, samtidig som den definerer spenningsnivåer, timing, datahastigheter og andre parametere.

 

① Differensialsignaler

Lang-kabling resulterer i signaldempning og øker sannsynligheten for støy og interferens. Dette viser seg som endringer i spenningsamplitude på kablene A og B. Fordelen med å bruke differensiallinjer er imidlertid at subtrahering av forskjellen mellom de to signalene opphever interferensen, slik at et normalt signal kan sendes ut. Evnen til en differensialmottaker til å ignorere identiske spenninger på begge signallinjene kalles felles-modusavvisning.

02f4c218-c803-11ed-bfe3-dac502259ad0.png

 

031047e0-c803-11ed-bfe3-dac502259ad0.png

Standarden spesifiserer at logikk 1 er +2V til +6V, og logikk 0 er -6V til -2V.

RS-485 krever ikke en spesifikk bussspenning; den tar kun hensyn til minimumsdifferensialspenningen. Over lengre kabellengder kan spenningen mottatt av mottakeren falle til +/- 200 mV, noe som fortsatt er helt akseptabelt for RS-485 – dette er en av fordelene med RS-485.

Mange transceivere oppfyller eller til og med overgår TIA/EIA-485A-standarden; i praktiske applikasjoner har imidlertid enhetens spesifiserte parametere forrang. For eksempel er minste negative inngangsterskel for en bestemt transceiver -200 mV.

03301b4c-c803-11ed-bfe3-dac502259ad0.png

 

03445314-c803-11ed-bfe3-dac502259ad0.png

② Signaldefinisjoner

Mange RS-485-omformere i dag er kompatible med RS-422, så du vil ofte se signaler merket T/R+ og T/R- på disse omformerne, som tilsvarer RS-485s A+ og B-.

 

 

For DB9-hunkontakter er RS-485-kablingsdefinisjonen som følger: Pinner 6 til 9 er N/A og skal ikke kobles til.

DB9 Utgangssignal RS-422 full-dupleks kabling RS-485 Halv-dupleks kabling
1 T/R+ Send (A+) RS-485(A+)
2 T/R- Send(B-) RS-485(B-)
3 RXD+ Motta (A+) Tømme
4 RXD- Motta(B-) Tømme
5 GND Jordledning Jordledning

③ Topologi

RS-485 støtter både to-leder- og fire-lederkonfigurasjoner. Konfigurasjonen med fire-ledninger er begrenset til punkt-til-punktkommunikasjon og brukes sjelden i dag; to-trådskonfigurasjonen er mer vanlig brukt. Denne konfigurasjonen bruker en busstopologi, slik at opptil 32 noder kan kobles til på en enkelt buss.

Som I²C opererer RS-485-bussen i en master-slavemodus. Den støtter både punkt-til-punkt enkelt-slave-modus og multi-slave-modus, men støtter ikke multi-master-modus.

035cfae0-c803-11ed-bfe3-dac502259ad0.jpg

 

037c5d54-c803-11ed-bfe3-dac502259ad0.jpg

RS-485 sender/mottaker

RS-485 bruker differensialoverføring. Hvis du vil kontrollere en RS-485-enhet ved hjelp av en mikrokontroller, trenger du en transceiver som ligner på CAN-bussen. Følgende diagram illustrerer en MCU som styrer en RS-485-enhet.

 

Inne i en sender/mottaker er det en mottaker (øvre halvdel) og en sender (nedre halvdel). Nedenfor er en kort forklaring på hvordan en transceiver fungerer for å hjelpe deg å forstå hvordan en MCU kommuniserer med en 485-enhet.

0396d684-c803-11ed-bfe3-dac502259ad0.png

 

Intern struktur av en RS-485 transceiver

Hvor:

A og B er bussen;

R er mottakerinngangen;

RE er mottakeraktiveringssignalet;

DE er senderens aktiveringssignal;

D er senderutgangen;

For aktiveringssignaler er de med en linje over bokstaven aktive-lav (f.eks. RE i figuren over), mens de uten linje er aktive-høye (f.eks. DE).

 

03acba6c-c803-11ed-bfe3-dac502259ad0.pngSannhetstabell for mottaker

 

For senderen er sannhetstabellen som følger:

1. Når driveraktiveringspinne DE er på en logisk høy, følger differensialutgangene A og B den logiske tilstanden ved datainngangen D. En logisk høy ved D fører til at A går høyt og B går lavt. I dette tilfellet er differensial utgangsspenning, definert som VOD=VA – VB, positiv. Når D er lav, inverterer utgangstilstandene: B blir høy og A blir lav, og VOD er ​​negativ.

2. Når DE er lav, blir begge utgangene høy-impedans. I dette tilfellet er den logiske tilstanden ved D irrelevant.

 

Følgende sannhetstabell gjelder for mottakeren:

1. Når mottakerens aktiveringspinne (RE) er på et logisk lavt nivå, aktiveres mottakeren. Når differensialinngangsspenningen, definert som VID=VA – VB, er positiv og overskrider den positive inngangsterskelen VIT+, blir mottakerens utgang R høy. Når VID er negativ og under den negative inngangsterskelen VIT-, blir mottakerutgangen R lav. Hvis VID er mellom VIT+ og VIT-, er utgangen udefinert.

2. Når RE er logisk høy eller flytende, har mottakerutgangen høy impedans, uavhengig av størrelsen eller polariteten til VID.

03c45672-c803-11ed-bfe3-dac502259ad0.png

Sannhetstabell for mottaker

 

03dd2350-c803-11ed-bfe3-dac502259ad0.jpg

RS-485 Data Link

Etter å ha diskutert driftsprinsippene til RS-485-transceiveren ovenfor, vil vi nå kort beskrive RS-485-datakoblingen. Du kan først ta en titt på det lettfattelige UART-protokollrammeformatet.

Enten masteren sender data til slaven eller slaven sender data til masteren, brukes både A- og B-linjene; derfor brukes RS-485 vanligvis i halvdupleksmodus.


Vertens GPIO kontrollerer DE-pinnen til RS-485-transceiveren for å stille inn overføringsmodus. En enkelt byte sendes fra UART TXD-linjen til datalinjen (D eller DI) til RS-485-transceiveren. Transceiveren konverterer den enkeltendede UART-bitstrømmen til en differensiell bitstrøm på A- og B-linjene. Når dataene forlater transceiveren, bytter verten umiddelbart transceiveren til mottaksmodus.


Slaven fungerer på samme måte som masteren. Slaven kontrollerer /RE-pinnen til RS-485-transceiveren for å sette den til mottaksmodus, mottar bitstrømmen sendt av masteren, konverterer den til et enkelt-endet signal og mottar den via slavens UART RXD-linje. Når slaven er klar til å svare, sender den data på samme måte som masteren, mens masteren bytter til mottaksmodus.

 

Konvertering RS-232 til RS-485


Det er mulig å konvertere mellom RS-232 og RS-485. En metode er å konvertere RS-232 til TTL, og deretter konvertere TTL til RS-485. Selvfølgelig finnes det også brikker som støtter direkte konvertering fra RS-232 til RS-485, og mange slike moduler er tilgjengelig på nett.

RS-232 til RS-485 konverteringsmoduler


Forskjeller mellom RS-485 og CAN


Selv om RS-485 ikke har et standardisert dataprotokollformat, deler den mange likheter med CAN-bussen. For eksempel er både A&B og CANH&CANL differensialsignaler; begge krever transceivere for kommunikasjon; og begge bruker 120 ohm termineringsmotstander, blant andre likheter.

 

Bussegenskaper CAN buss RS-485 buss
Maskinvarekostnader Litt høyere Rimelig
Bussutnyttelse Automatisk prioritert voldgift, høy utnyttelse Bruker meningsmåling; lav utnyttelse
Dataoverføringshastighet Høy Lav
Feildeteksjonsmekanismer Kontrolleren inkluderer en kontrollsummekanisme for å sikre nøyaktigheten av dataoverføring på lavt-nivå Kun fysiske lagspesifikasjoner; ingen datalinklagsspesifikasjoner
Virkningen av en enkelt-nodefeil Ingen innvirkning på bussen Busslammelse
Utviklingskostnader Fleksibel programvareutvikling, lave tidskostnader Vanskelig å utvikle
Systemkostnader Relativt lavt Høy

Vanlige RS-485-kretser

Her er en vanlig RS-485-krets jeg fant på nettet. Det er to punkter å merke seg:

1. Aktiveringssignalene RE og DE kan styres av en enkelt GPIO for å spare ressurser. Når GPIO25 gir ut et høyt nivå, er RE og DE 0 V, og enheten går inn i mottaksmodus; når GPIO25 gir ut et lavt nivå, er RE og DE 3,3 V, og enheten går inn i sendemodus.

2. I noen kretser legges en pull-opp-motstand til pinne A og en pull-ned-motstand til pinne B. Hovedårsaken til dette er at når RS-485-bussen er i tomgangstilstand, er spenningsnivået ikke fast-, det vil si at det svinger mellom -200 mV og kan enten -mV} og lavt nivå. UART må holde et høyt nivå når den er inaktiv; hvis transceiveren sender ut et lavt nivå på dette tidspunktet, tolker UART det som en startbit, noe som kan forårsake kommunikasjonsfeil. De spesifikke verdiene til R_u og R_d vil ikke bli diskutert i detalj her; Jeg planlegger å skrive en detaljert artikkel om dette emnet i fremtiden.

041d65e6-c803-11ed-bfe3-dac502259ad0.png

 

Når det gjelder det andre punktet, vær oppmerksom på følgende:

① Hvis du bruker en pull-opp-motstand til pinne A og en pull--ned-motstand til pinne B, kan datakommunikasjon mislykkes på grunn av omvendte tilkoblinger.

② Hvis en sender/mottaker har innebygde-opptrekk-opp- og nedtrekksmotstander-, er det ikke nødvendig å legge til eksterne.

Sende bookingforespørsel

whatsapp

Telefon

E-post

Forespørsel