Monitorowanie transmisji (ramek tekstowych) na szynie RS485
: 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.
#slowanawiatr
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.
#slowanawiatr