Monitorowanie transmisji (ramek tekstowych) na szynie RS485

Pozostałe układy mikrokontrolerów, układy peryferyjne i inne, nie mieszczące się w powyższych kategoriach.
Awatar użytkownika
tasza
Geek
Geek
Posty: 1082
Rejestracja: czwartek 12 sty 2017, 10:24
Kontaktowanie:

Monitorowanie transmisji (ramek tekstowych) na szynie RS485

Postautor: tasza » niedziela 05 kwie 2020, 21:28

Dobry wieczór

W ramach izolacji społecznej i dla zabicia czasu podłubuję sobie w PIC i LabVIEW i zupełnie nieoczekiwanie wylęgło mi się zagadnienie monitorowania danych pomykających po magistrali RS485, zarówno podczas nadawania jak i odbioru ramek tekstowych. No cóż, klocki do MODBUS, które są dostępne w LabVIEW dały mi do wiwatu i napisanie części `slave` na PIC-a wymagało użycia środków ... nietypowych.

Poniższe rozwiązanie skrzętnie korzysta z faktu, że w komunikacji pół-dupleks (request-response, taką jest MODBUS) nie musimy się zamartwiać arbitrażem na szynie, wystarczy skrzętnie słuchać tego co urządzenia piszą na RS485 i jakoś logować czy pokazywać na terminalu. Sztuka polega na logicznym połączeniu strumieni nadawczego i odbiorczego - można to zrobić zwykłą bramką AND (a tak dokładnie to dwoma NAND-ami z 7400 bo takiego koleżkę zapewne mamy w szufladzie).

Aktywny stan na liniach TxD i RxD pomiędzy mikrokontrolerem a konwerterem RS485 to stan niski, podczas pracy tylko jedna z linii się aktywuje - zatem można je połączyć iloczynem logicznym - na wyjściu będziemy mieli ramki zarówno żądań jak i odpowiedzi, proste. Dodatkowy układzik można podrutować choćby prowizorycznie gdzieś na boku płytki stykowej. No i do kompletu potrzeba nam chińskiego kabelka TTL/RS232/USB lub innego konwertera, którego linia RxD będzie w stanie zasilić dodatkowy terminal celem pokazywania jak rozmawiają ze sobą urządzenia na szynie.

Reszta w obrazkach.

01_rs485mon.jpeg
02_IMG_20200405_192930.JPG


#slowanawiatr
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
______________________________________________ ____ ___ __ _ _ _ _
Kończysz tworzyć dopiero, gdy umierasz. (Marina Abramović)

Awatar użytkownika
tasza
Geek
Geek
Posty: 1082
Rejestracja: czwartek 12 sty 2017, 10:24
Kontaktowanie:

Re: Monitorowanie transmisji (ramek tekstowych) na szynie RS485

Postautor: tasza » poniedziałek 06 kwie 2020, 17:09

Inny wariant podglądania ruchu na magistrali RS485 to wykorzystanie dość popularnej kostki MAX485. Układ pracuje w stałej konfiguracji z zablokowanym nadajnikiem i cały czas aktywnym odbiornikiem. Zasilanie +5V i masa - bezpośrednio z chińskiego kabelka USB, z którego jak poprzednio wykorzystujemy jedynie linię RxD. Rezystor terminujący 120R dla porządku dorysowałam, ale o konieczności jego dołożenia zadecydują lokalne warunki (długość przewodów). U mnie na płytce stykowej nie był konieczny, ale po delegacji klamotów wraz z laptopem do drugiego pokoju - bez rezystora nic się nie pisało na terminalu.

Warto też zauważyć, że taka aplikacja zbiera dane bezpośrednio z szyny RS485, poprzedni wariant monitorował transmisję pomiędzy konwerterem a mikrokontrolerem, należy się zatem liczyć z faktem że możemy nie zauważyć przekłamań wykonywanych przez konwerter TTL/RS485 (wynikających z zarządzania nadajnikiem/odbiornikiem). Drugi wariant wnosi natomiast ryzyko przekłamań choćby ze względu na źle (lub wcale) dobrany R terminujący, warto o tym pamiętać.

03_rs485mon.jpeg
04_IMG_20200406_145457.jpg


#slowanawiatr
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
______________________________________________ ____ ___ __ _ _ _ _
Kończysz tworzyć dopiero, gdy umierasz. (Marina Abramović)


Wróć do „Inne mikroklocki, również peryferyjne”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 12 gości