DwukierunkowyPinterfejsJRS232/RS485 R O E K T Y Dwukierunkowy interfejs RS232/RS485 AVT-5006 Przedstawiamy opis prostego interfejsu, za pomocÄ… ktÛrego moÅ‚na m.in. poÅ‚Ä…czyĘ ze sobÄ… dwa odlegÅ‚e komputery lub doÅ‚Ä…czyĘ dowolne urzÄ…dzenie wyposaÅ‚one w interfejs szeregowy RS485. Szeregowyinter- fejs RS232 sÅ‚uÅ‚y do przesy- Å‚ania danych pomiÍdzy dwoma urzÄ…dzeniami. W taki ukÅ‚ad wej- Å›cia/wyjÅ›cia - port komunikacyjny O ile w interfejsie RS232, w jego - wyposaÅ‚one sÄ… chyba wszystkie minimalnej konfiguracji, do trans- komputery (najczÍÅ›ciej w dwa por- misji sygnaÅ‚Ûw wystarczÄ… trzy prze- ty), komputerowe myszy, modemy, wody (Tx, Rx i masa), to w RS485 niektÛre drukarki i pamiÍci maso- niezbÍdne sÄ… 4 przewody. JednÄ… we, a takÅ‚e wiele urzÄ…dzeÒ prze- dwuprzewodowÄ… pÍtlÄ… przesyÅ‚ane mysÅ‚owych. ZaletÄ… interfejsu, szcze- sÄ… sygnaÅ‚y nadawane (Tx), a drugÄ… gÛlnie w uproszczonej wersji, jest sygnaÅ‚y odbierane (Rx). jego powszechnośĘ. JeÅ‚eli jednak PoniewaÅ‚ przesyÅ‚anie sygnaÅ‚u trzeba poÅ‚Ä…czyĘ urzÄ…dzenia znajdu- za pomocÄ… pÍtli rÛÅ‚nicowo-prÄ…do- jÄ…ce siÍ w odlegÅ‚oÅ›ci wiÍkszej niÅ‚ wej jest bardziej odporne na za- kilka metrÛw, konieczne staje siÍ kÅ‚Ûcenia, dÅ‚ugośĘ linii RS485 moÅ‚e zastosowanie innego standardu siÍgaĘ setek, a nawet tysiÍcy met- przesyÅ‚ania sygnaÅ‚Ûw, np. RS485. rÛw. Dodatkowo, stosujÄ…c odpo- RÛÅ‚nice pomiÍdzy obydwoma wiedni protokÛÅ‚ transmisji, czyli interfejsami polegajÄ… m.in. na zbiÛr reguÅ‚, ktÛremu podporzÄ…dku- przyjÍtym sposobie przesyÅ‚ania je siÍ zarÛwno urzÄ…dzenie nadaw- sygnaÅ‚u. W RS232 bity danych sÄ… cze, jak i odbiorcze, moÅ‚na za przesyÅ‚ane przez zmianÍ pozio- poÅ›rednictwem jednej linii trans- mÛw napiÍcia. OkreÅ›lone sÄ… dwa mitowaĘ zarÛwno sygnaÅ‚y Tx, jak poziomy logiczne linii Tx (linia i Rx. Co wiÍcej, do jednej linii transmisji danych z nadajnika) i li- moÅ‚e byĘ podÅ‚Ä…czonych nawet nii Rx (linia odbioru danych). kilkadziesiÄ…t urzÄ…dzeÒ wyposaÅ‚o- Stanowi logicznemu ì0î odpowia- nych w interfejs RS485, co pozwa- da napiÍcie +6..+12V natomiast la stworzyĘ sieĘ wymiany danych logicznej ì1î napiÍcie -12V..-6V. pomiÍdzy wieloma urzÄ…dzeniami. W interfejsie RS485 do okreÅ›- DosyĘ Å‚atwo moÅ‚na skonstruo- lenia wartoÅ›ci logicznej transmi- waĘ najprostszy interfejs zamienia- towanego bitu uÅ‚yto, zamiast po- jÄ…cy sygnaÅ‚ standardu RS232 na ziomu napiÍcia linii, wartoÅ›ci na- RS485. Na rys. 1 pokazano ukÅ‚ad, piÍcia rÛÅ‚nicowego miÍdzy linia- dziÍki ktÛremu moÅ‚na np. poÅ‚Ä…- mi, czyli napiÍcie na ich obciÄ…- czyĘ dwa odlegÅ‚e komputery wy- Å‚eniu o okreÅ›lonej impedancji. posaÅ‚one w RS232 tak, aby syg- Elektronika Praktyczna 4/2001 25 Dwukierunkowy interfejs RS232/RS485 naÅ‚y byÅ‚y przesyÅ‚ane za pomocÄ… nych (w przeciwnym wy- pÍtli prÄ…dowej. UkÅ‚ady scalone U3 padku procesor ponowi i U4 peÅ‚niÄ… rolÍ poÅ›rednika zamie- prÛbÍ transmisji po okre- niajÄ…cego sygnaÅ‚ o poziomach sie wyczekiwania). RS232 z wyjÅ›cia COM komputera 2. Wymiana nastÍpuje na sygnaÅ‚ o poziomie TTL. Z kolei po ustawieniu linii TRF sygnaÅ‚ ten jest podawany na ukÅ‚a- w stan niski przez proce- dy bÍdÄ…ce interfejsami linii RS485. sor przesyÅ‚ajÄ…cy, a trans- Droga sygnaÅ‚Ûw jest nastÍpujÄ…ca. mitowany bajt pojawia 1. SygnaÅ‚ Tx z gniazda komputera siÍ na porcie P1. podawany jest na wejÅ›cie U4-8. 3. Procesor odbierajÄ…cy 2. Po konwersji na poziom bajt potwierdza ten fakt TTL sygnaÅ‚ z wyjÅ›cia U4-9 poda- ustawieniem linii ACKF wany jest na wejÅ›cie U1-4 inter- na poziomie niskim. fejsu RS485 skonfigurowanego ja- 4. Nadawca, majÄ…c ko nadajnik. pewnośĘ, Å‚e bajt zostaÅ‚ 3. Z kolei sygnaÅ‚ Rx podawany odebrany, zwalnia P1 jest na gniazdo COM komputera i ustawia na linii TRF z wyprowadzenia U4-7 i U5-1 skon- z powrotem poziom wy- figurowanego jako odbiornik RS485. soki. Linia transmisyjna Å‚Ä…czy wy- 5. Z kolei procesor od- prowadzenia sygnaÅ‚u Tx jednego bierajÄ…cy przywraca, po komputera z wejÅ›ciem Rx drugie- odebraniu bajtu, poziom go. Tak samo jest w przypadku wysoki na linii ACKF. drugiej pary sygnaÅ‚Ûw. Jak to Taki sposÛb wymiany widaĘ na rysunku, obie linie danych nazywa siÍ prze- danych krzyÅ‚ujÄ… siÍ. sÅ‚aniem z potwierdze- JeÅ‚eli chcielibyÅ›my do portu niem i zapewnia ich bez- RS232 doÅ‚Ä…czyĘ liniÄ… dwuprzewo- bÅ‚ÍdnÄ… wymianÍ. dowÄ… urzÄ…dzenie z portem RS485, UwaÅ‚ny Czytelnik to taki interfejs musi byĘ zbudo- moÅ‚e zapytaĘ, po co dwa wany inaczej i zawieraĘ nieco procesory i komplikacje ìinteligencjiî. z wymianÄ… danych, sko- ro pokazany na rys. Opis ukÅ‚adu 1 ukÅ‚ad dobrze pracowaÅ‚ Schemat takiego interfejsu po- bez Å‚adnego procesora? kazano na rys. 2. SÅ‚uÅ‚y on do Bierze to siÍ z koniecz- dwustronnej transmisji pomiÍdzy noÅ›ci rozwiÄ…zania prob- portem RS232 a dwuprzewodowÄ… lemÛw, ktÛre powstajÄ…, liniÄ… RS485. Jest on wyposaÅ‚ony gdy chce siÍ przesyÅ‚aĘ w bufory danych Rx i Tx, sygna- dane pomiÍdzy dwiema lizuje bieÅ‚Ä…cy kierunek transmisji, jednokierunkowymi li- potrafi takÅ‚e jednoczeÅ›nie praco- niami Rx i Tx portu waĘ z rÛÅ‚nymi szybkoÅ›ciami trans- RS232 i jednÄ… dwukie- misji po stronie RS232 i RS485. runkowÄ… liniÄ… portu UkÅ‚ad oparto na dwÛch proce- RS485. Dobrym przykÅ‚a- sorach U2 i U3 typu AT89C2051, dem podobnej sytuacji ktÛre sterujÄ… przepÅ‚ywem danych jest sytuacja w ruchu w obydwiestrony.JeÅ›li ktÛryÅ› z pro- drogowym, gdy na sku- cesorÛw odbierze ze swojej linii tek remontu pojazdy ja- danych kompletny bajt, przesyÅ‚a go dÄ…ce dwupasmowÄ… drogÄ… sÄ…siadowi, korzystajÄ…c z poÅ›rednict- muszÄ… przez pewien wa portu P1. Do zapewnienia bez- odcinek jechaĘ tylko jed- kolizyjnej wymiany danych pomiÍ- nym pasem. Øeby caÅ‚ko- dzy procesorami sÅ‚uÅ‚Ä… dwie linie wicie nie zablokowaĘ ta- sygnaÅ‚owe P3.5 ACKF i P3.7 TRF. kiego przejazdu, jedynym Wymiana danych przebiega na- rozwiÄ…zaniem pozostaje stÍpujÄ…co: ruch wahadÅ‚owy i Å›wiat- 1. Procesor chcÄ…cy przesÅ‚aĘ Å‚a peÅ‚niÄ…ce z obu stron sÄ…siadowi bajt danych sprawdza przewÍÅ‚enia rolÍ semafo- najpierw stan linii TRF. JeÅ‚eli jest ra. RolÍ takiego semafora na niej poziom wysoki, to ozna- peÅ‚ni w tym przypadku cza, Å‚e sÄ…siedni procesor jest kombinacja sygnaÅ‚Ûw na gotÛw przyjąĘ przesyÅ‚any bajt da- liniach TRF i ACKF. Rys. 1. Schemat elektryczny prostego interfejsu. Elektronika Praktyczna 4/2001 26 Dwukierunkowy interfejs RS232/RS485 Zastosowanie dwÛch proceso- rÛw wynika takÅ‚e z pewnych ogra- niczeÒ ukÅ‚adÛw AT89C2051. OtÛÅ‚ posiadajÄ… one wsparcie tylko dla jednego portu transmisji szerego- wej, z ktÛrym wspÛÅ‚pracujÄ… wypro- wadzenia P3.0 i P3.1. oznaczone dodatkowo symbolami RXD i TXD. PoniewaÅ‚ trzeba obsÅ‚uÅ‚yĘ dwa por- ty (RS232 i RS485), potrzebne sÄ… dwa procesory. OprÛcz niewÄ…tpli- wego podniesienia kosztÛw, daje to takÅ‚e pewne korzyÅ›ci. Po pierwsze, obie linie RS232, jak i RS485 mogÄ… pracowaĘ z rÛÅ‚nymi szybkoÅ›ciami transmisji, a ukÅ‚ad peÅ‚ni wtedy rolÍ inteligentnego konwertera. SzybkośĘ transmisji kaÅ‚dego z procesorÛw ustalana jest bezpoÅ›rednio po wÅ‚Ä…- czeniu napiÍcia zasilajÄ…cego. Oba procesory badajÄ… wtedy stan swo- jego portu P1, do ktÛrego doÅ‚Ä…czo- nych jest sześĘ przeÅ‚Ä…cznikÛw kon- figuracyjnych S1. PrzeÅ‚Ä…czniki te, poprzez diody D10...D15, poÅ‚Ä…czo- ne sÄ… z wyjÅ›ciem portu P3.4 pro- cesora U3, ktÛre bezpoÅ›rednio po zerowaniu ma stan niski. Zwarcie ktÛregokolwiek z przeÅ‚Ä…cznikÛw po- woduje, Å‚e odpowiadajÄ…ca mu linia portÛw P1 obydwu procesorÛw znajdzie siÍ takÅ‚e na niskim po- ziomie. KaÅ‚demu przeÅ‚Ä…cznikowi przypisana jest szybkośĘ transmisji, z jakÄ… bÍdzie wspÛÅ‚pracowaÅ‚ z por- tem szeregowym procesor. I tak: 19200 bd Å‚aden przeÅ‚Ä…cznik nie jest zwarty 9600 bd 1 przeÅ‚Ä…cznik zwarty 4800 bd 2 przeÅ‚Ä…cznik zwarty 2400 bd 3 przeÅ‚Ä…cznik zwarty 1200 bd 4 przeÅ‚Ä…cznik zwarty 600 bd 5 przeÅ‚Ä…cznik zwarty PrzeÅ‚Ä…cznik 6 zastosowano do ustawiania rÛÅ‚nych prÍdkoÅ›ci transmisji dla RS232 i RS485. JeÅ‚eli bezpoÅ›rednio po wÅ‚Ä…czeniu zasilania przeÅ‚Ä…cznik ten pozosta- nie rozwarty, oba procesory usta- wiÄ… jednakowe szybkoÅ›ci transmi- sji wyznaczone ustawieniem prze- Å‚Ä…cznikÛw 1...5. W takim przypad- ku diody LED D1 i D2 mignÄ… dwukrotnie, informujÄ…c o gotowoÅ›- ci ukÅ‚adu do normalnej pracy. JeÅ‚eli jednak przeÅ‚Ä…cznik 6 bÍdzie zwarty, po zerowaniu zaÅ›wieci siÍ dioda D1, sygnalizujÄ…c zaprogra- mowania prÍdkoÅ›ci transmisji pro- cesora U2 obsÅ‚ugujÄ…cego liniÍ RS485. PrÍdkośĘ ta bÍdzie zaleÅ‚na od ustawieÒ przeÅ‚Ä…cznikÛw 1...5. NastÍpnie naleÅ‚y ustawiĘ tymi przeÅ‚Ä…cznikami prÍdkośĘ transmi- Rys. 2. Schemat elektryczny interfejsu inteligentnego . Elektronika Praktyczna 4/2001 27 Dwukierunkowy interfejs RS232/RS485 sji procesora U3 obsÅ‚ugujÄ…cego wyprowadzeniu DE spowoduje WYKAZ ELEMENTÓW linie RS232. Po rozwarciu prze- wÅ‚Ä…czenie nadajnika i transmisjÍ Rezystory Å‚Ä…cznika 6 procesor U3 zostanie danych, ktÛre sÄ… podawane na R1, R2, R6: 10k&! zaprogramowany wybranÄ… szyb- wejÅ›cie DI. Poziom niski wyÅ‚Ä…cza koÅ›ciÄ… i na chwilÍ zaÅ›wieci siÍ nadajnik. NaleÅ‚y dodaĘ, Å‚e wypro- R3, R4: 1k&! dioda LED D2. Potem obie diody wadzenia A i B powinny siÍ Å‚Ä…- R5: 120&! dwukrotnie mignÄ…, co oznacza czyĘ z analogicznymi wyprowadze- Kondensatory gotowośĘ ukÅ‚adu do pracy. niami po drugiej stronie linii, C1, C2: 27pF DrugÄ… korzyÅ›ciÄ… z zastosowania czyli A z A i B z B (poÅ‚Ä…czenia nie C3, C9, C11, C12: 100nF dwÛch procesorÛw jest moÅ‚liwośĘ mogÄ… siÍ krzyÅ‚owaĘ). Dodatkowo, C4..C8: 47µF/16V buforowania pewnej liczby danych wejÅ›cia A i B moÅ‚na zabezpieczyĘ C10: 220µF/40V w przypadku, gdyby byÅ‚y one w tej przed przepiÍciem szybkÄ… dwu- C13: 100µF/25V samej chwili transmitowane zarÛ- stronnÄ… diodÄ… D3 oraz dopasowaĘ Półprzewodniki wno liniÄ… RS232, jak i RS485. opornośĘ wejÅ›ciowÄ… do opornoÅ›ci D1, D2, D5: LED np. czerwona, DziÍki temu pomimo kolizji (liniÄ… falowej linii przesyÅ‚owej oporni- zielona, żółta RS485 moÅ‚na w danym momencie kiem R5 o dobranej opornoÅ›ci. D3: 1.5KE6 dwustronna szybka przesÅ‚aĘ dane tylko w jednÄ… stro- Oba procesory pracujÄ… z takim dioda zabezpieczajÄ…ca nÍ) transmitowane dane nie zosta- samym programem i sÄ… taktowane D4: mostek prostowniczy nÄ… stracone, poniewaÅ‚ po zwolnie- takim samym sygnaÅ‚em zegaro- D10..D15: dowolne diody niu linii procesor je wyÅ›le, korzys- wym stabilizowanym kwarcem X1. U1: MCP101 lub DS1812 tajÄ…c z zapisu w buforze. Bufor ma Zapewnia to odpowiedniÄ… syn- U2, U3: AT89C2051 zaprogramo- rozmiar jedynie 16 bajtÛw, jednak chronizacjÍ koniecznÄ… przy wy- wane z pewnymi ograniczeniami moÅ‚li- mianie danych miÍdzy procesora- U4: MAX232 lub odpowiednik wa jest dziÍki temu symulacja mi. Jednak synchronizacja ta U5: MAX485, SN75176 lub transmisji dupleksowej. w pewnym przypadku mogÅ‚aby odpowiednik UkÅ‚ad U4 jest standardowym byĘ kÅ‚opotliwa. MoÅ‚e zaistnieĘ U6: 7805 interfejsem sygnaÅ‚Ûw RS232. Kilka sytuacja, gdy oba procesory bÍdÄ… Różne sÅ‚Ûw opisu poÅ›wiÍcimy ukÅ‚adowi chciaÅ‚y w tym samym momencie JP2, JP1: ARK2 U5, umoÅ‚liwiajÄ…cemu dwukierun- przesÅ‚aĘ sobie dane. Gdyby dzia- P1: zÅ‚Ä…cze DB9 żeÅ„skie do druku kowÄ… transmisjÍ liniÄ… RS485. UkÅ‚ad Å‚aÅ‚y idealnie synchronicznie, mog- S1: SW DIP-6 zawiera kompletne bloki nadawcze Å‚yby wpaśĘ w niekoÒczÄ…cÄ… siÍ i odbiorcze doÅ‚Ä…czone do wspÛl- pÍtlÍ oczekiwania i ukÅ‚ad po pros- X1: 11,059MHz nych wyprowadzeÒ rÛÅ‚nicowych tu przestaÅ‚by dziaÅ‚aĘ. Z tego po- A i B. O tym, ktÛry z tych blokÛw wodu kaÅ‚dy z procesorÛw ma in- i linii RS485. Przed zamontowa- doÅ‚Ä…czony jest do wyprowadzeÒ ny czas oczekiwania na zwolnie- niem ukÅ‚adÛw scalonych warto decyduje poziom sygnaÅ‚Ûw steru- nie siÍ linii TRF. Jak jednak jest sprawdziĘ, czy stabilizator dostar- jÄ…cych na wejÅ›ciach /RE i DE. to moÅ‚liwe, skoro oba pracujÄ… cza napiÍcia +5V. UkÅ‚ad moÅ‚na Niski poziom na wyprowadzeniu z takim samym programem? Jest zasilaĘ napiÍciem staÅ‚ym lub /RE oznacza przyÅ‚Ä…czenie do to moÅ‚liwe dziÍki zwarciu do zmiennym w szerokim przedziale wyprowadzeÒ A i B odbiornika, masy wyprowadzenia P3.4 proce- wartoÅ›ci, od 8 do 24V. Jest to a dane odebrane z linii RS485 bÍ- sora U2. To samo wyprowadzenie moÅ‚liwe dziÍki temu, Å‚e pobÛr dÄ… dostÍpne na wyprowadzeniu w drugim procesorze po procedu- prÄ…du nie przekracza 50mA i sta- RO. Wysoki poziom wyÅ‚Ä…cza od- rze programowania szybkoÅ›ci bilizator zbytnio siÍ nie nagrzewa biornik. Z kolei wysoki poziom na transmisji pozostanie na poziomie nawet przy wyÅ‚szym napiÍciu wysokim, dziÍki czemu ten zasilajÄ…cym. Po wÅ‚Ä…czeniu zasila- sam program jest w stanie roz- nia diody powinny mignąĘ dwu- poznaĘ, w ktÛrym procesorze krotnie. OznaczaĘ to bÍdzie goto- pracuje i dostosowuje do tego wośĘ ukÅ‚adu do pracy. swÛj czas oczekiwania na zwol- W ukÅ‚adzie bez zmiany Å›cie- nienie linii TRF. Å‚ek pÅ‚ytki drukowanej moÅ‚na zastosowaĘ procesory AT90S2313. MontaÅ‚ i uruchomienie MoÅ‚na wtedy osiÄ…gnąĘ wiÍksze MontaÅ‚ ukÅ‚adu i uruchomie- szybkoÅ›ci transmisji z przedziaÅ‚u nie sÄ… bardzo proste. Elementy 2400...115200 bd. OczywiÅ›cie, na- na pÅ‚ytce drukowanej (schemat leÅ‚y wtedy napisaĘ odpowiedni montaÅ‚owy pokazano na rys. dla tego procesora program. 3) moÅ‚na lutowaĘ w dowolnej Ryszard Szymaniak, AVT kolejnoÅ›ci, chociaÅ‚ najlepiej na ryszard.szymaniak@ep.com.pl poczÄ…tku zamontowaĘ te naj- mniejsze. Gniazdo P1 to gniaz- Wzory pÅ‚ytek drukowanych w for- do RS232 typu DB9 Å‚eÒskie do macie PDF sÄ… dostÍpne w Internecie druku. PozostaÅ‚e gniazda sÄ… pod adresem: http://www.ep.com.pl/ typu ARK2 i umoÅ‚liwiajÄ… przy- ?pdf/kwiecien01.htm oraz na pÅ‚ycie Rys. 3. Rozmieszczenie elementów krÍcenie przewodÛw zasilania CD-EP04/2001B w katalogu PCB. na pÅ‚ytce drukowanej. Elektronika Praktyczna 4/2001 28