RS-485 áttekintése
Az RS-232-höz hasonlóan az RS-485 is soros kommunikációs szabvány. Jelenlegi hivatalos megnevezése TIA-485/EIA-485-A, de általában RS-485 szabványként emlegetik. Az RS-485-öt széles körben használják olyan iparágakban, mint az ipari automatizálás, az autóipar és az épületfelügyelet.
Az RS-485 busz kiküszöböli az RS-232 hiányosságait, például a rövid kommunikációs távolságokat és az alacsony adatátviteli sebességet. Az RS-485 akár 10 Mbit/s adatátviteli sebességet is támogat, elméleti kommunikációs távolsága pedig akár 1200 méter. Ellentétben az RS-232 egyvégű átvitelével, az RS-485 differenciális átvitelt használ egy pár csavart érpáron keresztül, ahol az egyik vezetéket A-val, a másikat B-vel jelölik.
RS-485 fizikai réteg
Az RS-485 fizikai réteg felelős a nyers adatok továbbításáért az eszközök és a fizikai átviteli közeg között. Kezeli az elektromos jelek digitális adatokká történő átalakítását, miközben meghatározza a feszültségszinteket, időzítést, adatsebességet és egyéb paramétereket is.
① Differenciáljelek
A hosszú-kábelezés jelgyengülést eredményez, és növeli a zaj és az interferencia valószínűségét. Ez az A és B kábel feszültségamplitúdójának változásában nyilvánul meg. A differenciálvonalak használatának előnye azonban az, hogy a két jel közötti különbség levonása megszünteti az interferenciát, lehetővé téve a normál jel kimenetét. A differenciális vevő azon képességét, hogy figyelmen kívül hagyja az azonos feszültségeket mindkét jelvonalon, közös módú -elutasításnak nevezzük.


A szabvány előírja, hogy a logikai 1 értéke +2V és +6V, a logikai 0 pedig -6 V és -2 V.
Az RS-485 nem igényel meghatározott buszfeszültséget; csak a minimális különbségi feszültséget veszi figyelembe. Hosszabb kábelhossz esetén a vevő által vett feszültség +/- 200 mV-ra csökkenhet, ami még mindig tökéletesen elfogadható RS-485 esetén – ez az RS-485 egyik előnye.
Sok adó-vevő teljesíti vagy meg is haladja a TIA/EIA-485A szabványt; a gyakorlati alkalmazásokban azonban a készülék meghatározott paraméterei élveznek elsőbbséget. Például egy adott adó-vevő minimális negatív bemeneti küszöbértéke -200 mV.


② Jel definíciók
Napjainkban sok RS-485-ös konverter kompatibilis az RS-422-vel, ezért gyakran látni T/R+ és T/R- jeleket ezeken a konvertereken, amelyek megfelelnek az RS-485 A+ és B- jeleinek.
A DB9 anyacsatlakozók esetében az RS-485 vezetékezés meghatározása a következő: A 6-9 érintkezők N/A-k, és nem szabad csatlakoztatni.
| DB9 | Kimeneti jel | RS-422 teljes duplex vezetékezés | RS-485 félduplex kábelezés |
| 1 | T/R+ | Küldés (A+) | RS-485(A+) |
| 2 | T/R- | Küldés (B-) | RS-485(B-) |
| 3 | RXD+ | Fogadás (A+) | Üres |
| 4 | RXD- | Fogadás (B-) | Üres |
| 5 | GND | Földelő vezeték | Földelő vezeték |
③ Topológia
Az RS-485 két-vezetékes és négy{4}}vezetékes konfigurációt is támogat. A négy-vezetékes konfiguráció a pont-pont közötti kommunikációra korlátozódik, és ma ritkán használják; a kétvezetékes konfigurációt gyakrabban használják. Ez a konfiguráció busztopológiát használ, amely lehetővé teszi akár 32 csomópont csatlakoztatását egyetlen buszon.
Az I²C-hez hasonlóan az RS-485-ös busz is master-szolga módban működik. Támogatja a pont---pont egy-szolga módot és a több-szolga módot is, de nem támogatja a több mester módot.


RS-485 adó-vevő
Az RS-485 differenciálátvitelt használ. Ha egy RS-485-ös eszközt mikrokontrollerrel szeretne vezérelni, akkor a CAN-buszhoz hasonló adó-vevőre lesz szüksége. A következő ábra egy RS-485 eszközt vezérlő MCU-t mutat be.
Az adó-vevő belsejében van egy vevő (felső fele) és egy adó (alsó fele). Az alábbiakban az adó-vevő működésének rövid ismertetése segít megérteni, hogyan kommunikál az MCU egy 485-ös eszközzel.

Az RS-485 adó-vevő belső felépítése
Ahol:
A és B a busz;
R a vevő bemenete;
RE a vevő engedélyező jele;
DE az adó engedélyező jele;
D az adó kimenete;
Engedélyező jelek esetén a betű feletti vonallal rendelkezők aktív-alacsony (pl. RE a fenti ábrán), míg a vonal nélküliek aktív-magasak (pl. DE).
Vevő igazságtáblázata
Az adó esetében az igazságtáblázat a következő:
1. Ha az illesztőprogram-engedélyező érintkező DE logikai magas értéken van, az A és B differenciálkimenet követi a D adatbemenet logikai állapotát. A magas D ponton lévő logikai érték A magasra, a B pedig alacsonyra váltja. Ebben az esetben a VOD=VA – VB-ként definiált differenciális kimeneti feszültség pozitív. Ha D alacsony, a kimeneti állapotok megfordulnak: B magasra, A alacsonyra megy, és a VOD negatív.
2. Ha a DE alacsony, mindkét kimenet nagy-impedanciájú lesz. Ebben az esetben a D-ben lévő logikai állapot irreleváns.
A következő igazságtáblázat a vevőre vonatkozik:
1. Ha a vevő engedélyező érintkezője (RE) logikai alacsony szinten van, a vevő aktiválódik. Ha a VID=VA – VB-ként meghatározott differenciális bemeneti feszültség pozitív, és meghaladja a VIT+ pozitív bemeneti küszöböt, a vevő R kimenete magasra emelkedik. Ha a VID negatív, és a VIT- negatív bemeneti küszöb alatt van, a vevő R kimenete alacsony lesz. Ha a VID VIT+ és VIT- között van, a kimenet definiálatlan.
2. Ha az RE logikailag magas vagy lebegő, a vevő kimenete nagy impedanciájú, függetlenül a VID nagyságától vagy polaritásától.


RS-485 adatkapcsolat
Miután fentebb tárgyaltuk az RS-485 adó-vevő működési elveit, most röviden ismertetjük az RS-485 adatkapcsolatot. Először vessen egy pillantást a könnyen érthető UART protokoll keretformátumára.
Akár a mester küld adatokat a slave-nek, akár a szolga küld adatokat a mesternek, az A és a B vonal egyaránt használatos; ezért az RS-485-öt jellemzően félduplex módban használják.
A gazdagép GPIO-ja vezérli az RS-485 adó-vevő DE lábát az átviteli mód beállításához. Egyetlen bájt kerül elküldésre az UART TXD vonalról az RS-485 adó-vevő adat (D vagy DI) vonalára. Az adó-vevő az egyvégű UART bitfolyamot differenciális bitfolyammá alakítja az A és B vonalon. Amint az adatok elhagyják az adó-vevőt, a gazdagép azonnal vételi módba kapcsolja az adó-vevőt.
A slave a masterhez hasonlóan működik. A slave vezérli az RS-485 adó-vevő /RE lábát, hogy vételi módba állítsa, fogadja a master által küldött bitfolyamot, egyvégű jellé alakítja, és a slave UART RXD vonalán keresztül veszi. Amikor a slave készen áll a válaszadásra, ugyanúgy továbbítja az adatokat, mint a master, miközben a master vételi módba kapcsol.
RS-232 átalakítás RS-485-re
Lehetőség van RS-232 és RS-485 közötti konvertálásra. Az egyik módszer az RS-232 konvertálása TTL-re, majd a TTL konvertálása RS-485-re. Természetesen vannak olyan chipek is, amelyek támogatják az RS-232-ről RS-485-re való közvetlen konvertálást, és sok ilyen modul elérhető az interneten.
RS-232-RS-485 átalakító modulok
Az RS-485 és a CAN közötti különbségek
Bár az RS-485 nem rendelkezik szabványos adatprotokoll formátummal, sok hasonlóságot mutat a CAN busszal. Például az A&B és a CANH&CANL is differenciáljelek; mindkettő adó-vevőt igényel a kommunikációhoz; és mindkettő 120 ohmos lezáró ellenállást használ, egyéb hasonlóságok mellett.
| A busz jellemzői | CAN busz | RS-485 busz |
| Hardver költségek | Kicsit magasabban | Olcsó |
| Buszhasználat | Automatikus prioritási döntés, magas kihasználtság | Szavazást használ; alacsony kihasználtság |
| Adatátviteli sebesség | Magas | Alacsony |
| Hibaészlelési mechanizmusok | A vezérlő tartalmaz egy ellenőrzőösszeg-mechanizmust, amely biztosítja az alacsony{0}}szintű adatátvitel pontosságát | Csak a fizikai réteg specifikációi; nincs adatkapcsolati réteg specifikáció |
| Egyetlen-csomóponthiba hatása | Nincs hatással a buszra | Buszbénulás |
| Fejlesztési költségek | Rugalmas szoftverfejlesztés, alacsony időköltség | Nehezen fejleszthető |
| Rendszerköltségek | Viszonylag alacsony | Magas |
Általános RS-485 áramkörök
Itt van egy általános RS-485 áramkör, amelyet az interneten találtam. Két pontot kell megjegyezni:
1. Az RE és DE engedélyezési jelek egyetlen GPIO-val vezérelhetők az erőforrások megtakarítása érdekében. Amikor a GPIO25 magas szintet ad ki, az RE és a DE 0 V, és az eszköz vételi módba lép; amikor a GPIO25 alacsony szintet ad ki, az RE és DE 3,3 V, és a készülék adási módba lép.
2. Egyes áramkörökben egy húzó-ellenállást adnak az A érintkezőhöz, és egy húzó-lehúzó ellenállást a B érintkezőhöz. Ennek fő oka az, hogy amikor az RS-485-ös busz üresjárati állapotban van, a feszültségszint nem rögzített-vagyis -200 mV és -200 mV között ingadozik a kimenet magas vagy alacsony szint. Az UART-nak magas szintet kell fenntartania üresjáratban; ha az adó-vevő ilyenkor alacsony szintet ad ki, az UART startbitként értelmezi, ami kommunikációs hibákat okozhat. Az R_u és R_d konkrét értékeit itt nem tárgyaljuk részletesen; Terveim szerint a jövőben részletes cikket írok erről a témáról.

A második ponttal kapcsolatban kérjük, vegye figyelembe a következőket:
① Ha felhúzó-ellenállást alkalmaz az A érintkezőre, és lehúzó-ellenállást a B érintkezőre, az adatkommunikáció meghiúsulhat a fordított kapcsolatok miatt.
② Ha az adó-vevő beépített -felhúzó-fel- és lehúzó{2}}ellenállásokkal rendelkezik, nincs szükség külső ellenállások hozzáadására.




