Pełnomodemowy monitor RS232
: środa 10 kwie 2019, 19:42
Jak o się czasami dziwnie składa. Monitor linii RS232 zacząłem
budować dosyć dawno temu. Potem temat trochę odleżał.
Po przerwie zająłem się wykombinowaniem zawartości
dla układu CPLD. Potem prace znowu trochę się wstrzymały.
Ostatnio postanowiłem dokończyć budowę.
Jak urządzenie było w pełni sprawne, następnego
dnia zaistniała konieczność jego użycia (co za przypadek,
przez kilka lat nic i nagle... bum). Jeden gostek zakupił sobie
taki spektrometr atomowy (taki trochę wiekowy, z przełomu
lat 80-tych na 90-te XX wieku, w sumie kawał maszyny,
na moje oko tak gdzieś ze ćwierć tony), który łączył się z kompem
via sieral RS232. By było śmieszniej, to złącze RS232 w spektrometrze
było jako DSUB25. Gostek zakupił odpowiedni kabelek
(z DSUB25 na DSUB9) podłączył i … nie działa (dokładnie to program
w kompie stwierdza błąd komunikacji z maszynerią).
Właśnie monitor RS232 stał się cennym przyrządem diagnostycznym.
Komunikacja pomiędzy PC-tem z spektrometrem oprócz danych
szeregowych używa 5 linii modemowych.
Po rozwiązaniu problemu okazało się, że złącze DSUB25
„nie trzyma standardu”, numery użytych styków w złączu są właściwe,
ale ich znaczenie odbiega od standardu.
Dziwne… jakby „komuś” zależało na tym bym dokończył budowę
urządzenia i co jakiś czas przypominały mi się „zaległości”.
Temat jest kontynuacją tematu Metalowa obudówka, ale z racji, że obecnie jest poświęcony elektronice, pozwoliłem sobie na wyodrębnienie jako oddzielnego wątku.
Urządzenie ma dwa złącza RS232 (jako DSUB9). Jedno (żeńskie) jest przeznaczone do połączenia z komputerem (w ogólności z wyposażeniem komputerowym), drugie (męskie) jest przeznaczone do połączenia z modemem (w ogólności z wyposażeniem modemowym). Samo jest „obserwatorem” zdarzeń zachodzących na liniach RS232.
Poniższa fota pokazuje połączony monitor z kompem, w którym jest odpalony emulator terminala, który jak widać wystawił dwie wyjściowe linie modemowe. Na każdy sygnał występujący w RS232 jest przewidziana dioda |LED do sygnalizacji stanu linii → lampek jest 8. Pierwszych 5 odpowiada sygnałom wejściowym (z punktu widzenia komputera), 3 ostatnie reprezentują sygnały wyjściowe (rzecz jasna z perspektywy komputera). Każdy sygnał (w RS232) jest reprezentowany przez dwie diody LED. Żółta pokazuje stan statyczny → taki jaki jest aktualnie na danej linii oraz czerwona odzwierciedla „dynamikę” sygnału → sygnalizuje błyskiem o określonym czasie każdą zmianę stanu.
Monitor jest zbudowany na bazie układu CPLD (XILINX). Jego schemat pokazują poniższe rysunki. Serial A (powyższy rysunek) zawiera interfejs RS232 (przetwarza sygnały z napięć typowych w interfejsie) na poziomy logiczne. Serial B zawiera konwersję napięciową z typowych sygnałów logicznych do wartości występujących w RS232. Pomiędzy tymi interfejsami znajduje się blok logiczny, który zajmuje się sterowaniem diodami LED. Interfejs RS232 w stronę wyposażenia komputerowego pokazuje powyższy rysunek. Zbudowany jest na bazie układu MAX3238 (zawiera 5 nadajników i 3 odbiorniki). Rozwiązanie lustrzane (interfejs w stronę wyposażenia modemowego) pokazuje powyższy rysunek. Tutaj dla odmiany występuje układ MAX 3243 (zwiera 5 odbiorników i 3 nadajniki).
Całe przetwarzanie sygnałów znajduje się w układzie CPLD, którego schemat pokazuje kolejny rysunek. Z punktu widzenia „cyfrówki”, układ CPLD (U20, XCR3128) jest automatem synchronicznym, co oznacza, że wymaga sygnału taktującego (typowy generator U202, o częstotliwości 1.8432MHz). Jego częstotliwość nie jest krytyczna (ot taki walał mi się w szufladzie) a z drugiej strony, jest typowy w rozwiązaniach transmisji szeregowej. Każdy automat synchroniczny wymaga reseta na dzień dobry. Do tego jest użyty układ (U205, NE555). Samo sterowanie diodami LED ma w torze układy 74HC541 (U203 i U204). Zastosowany układ nie wnosi „zmiany fazy”. Dioda świeci, jeżeli na jego wejście podany jest stan logicznego zera. Możliwe jest zastosowanie innego rozwiązania, ot choćby popularnego układu ULN2803. Ten jednak wnosi „negację” w tor, przyłączona dioda LED świeci, gdy na wejście ULN 2803 podany jest stan logicznej jedynki. Różnorodność rozwiązań samego „wyświetlania” została ujęta w układzie CPLD w ten sposób, że został wprowadzony sygnał POLS (polaryzacja statyczna) i POLD (polaryzacja dynamiczna). Jeżeli na tym wejściu panuje stan niski, to układ CPLD generuje sygnał do sterowania diodą LED ze aktywnym stanem niskim (zapala diodę LED). Jeżeli wejście polaryzujące będzie w stanie wysokim, to CPLD będzie zapalać diodę stanem wysokim.
Dioda LED, to mała płytka PCB mocowana do frontpanelu. Całość zamyka zasilacz. Układ U501 (ST1S10) jest stabilizatorem impulsowym, który produkuje +5V (zasila generator, układ NE555 oraz układy 74HC541 sterujące diodami LED). Konieczne dla układu CPLD napięcie zasilania produkuje układ U502 (LF33). PCB pokazują następujące rysunki.
budować dosyć dawno temu. Potem temat trochę odleżał.
Po przerwie zająłem się wykombinowaniem zawartości
dla układu CPLD. Potem prace znowu trochę się wstrzymały.
Ostatnio postanowiłem dokończyć budowę.
Jak urządzenie było w pełni sprawne, następnego
dnia zaistniała konieczność jego użycia (co za przypadek,
przez kilka lat nic i nagle... bum). Jeden gostek zakupił sobie
taki spektrometr atomowy (taki trochę wiekowy, z przełomu
lat 80-tych na 90-te XX wieku, w sumie kawał maszyny,
na moje oko tak gdzieś ze ćwierć tony), który łączył się z kompem
via sieral RS232. By było śmieszniej, to złącze RS232 w spektrometrze
było jako DSUB25. Gostek zakupił odpowiedni kabelek
(z DSUB25 na DSUB9) podłączył i … nie działa (dokładnie to program
w kompie stwierdza błąd komunikacji z maszynerią).
Właśnie monitor RS232 stał się cennym przyrządem diagnostycznym.
Komunikacja pomiędzy PC-tem z spektrometrem oprócz danych
szeregowych używa 5 linii modemowych.
Po rozwiązaniu problemu okazało się, że złącze DSUB25
„nie trzyma standardu”, numery użytych styków w złączu są właściwe,
ale ich znaczenie odbiega od standardu.
Dziwne… jakby „komuś” zależało na tym bym dokończył budowę
urządzenia i co jakiś czas przypominały mi się „zaległości”.
Temat jest kontynuacją tematu Metalowa obudówka, ale z racji, że obecnie jest poświęcony elektronice, pozwoliłem sobie na wyodrębnienie jako oddzielnego wątku.
Urządzenie ma dwa złącza RS232 (jako DSUB9). Jedno (żeńskie) jest przeznaczone do połączenia z komputerem (w ogólności z wyposażeniem komputerowym), drugie (męskie) jest przeznaczone do połączenia z modemem (w ogólności z wyposażeniem modemowym). Samo jest „obserwatorem” zdarzeń zachodzących na liniach RS232.
Poniższa fota pokazuje połączony monitor z kompem, w którym jest odpalony emulator terminala, który jak widać wystawił dwie wyjściowe linie modemowe. Na każdy sygnał występujący w RS232 jest przewidziana dioda |LED do sygnalizacji stanu linii → lampek jest 8. Pierwszych 5 odpowiada sygnałom wejściowym (z punktu widzenia komputera), 3 ostatnie reprezentują sygnały wyjściowe (rzecz jasna z perspektywy komputera). Każdy sygnał (w RS232) jest reprezentowany przez dwie diody LED. Żółta pokazuje stan statyczny → taki jaki jest aktualnie na danej linii oraz czerwona odzwierciedla „dynamikę” sygnału → sygnalizuje błyskiem o określonym czasie każdą zmianę stanu.
Monitor jest zbudowany na bazie układu CPLD (XILINX). Jego schemat pokazują poniższe rysunki. Serial A (powyższy rysunek) zawiera interfejs RS232 (przetwarza sygnały z napięć typowych w interfejsie) na poziomy logiczne. Serial B zawiera konwersję napięciową z typowych sygnałów logicznych do wartości występujących w RS232. Pomiędzy tymi interfejsami znajduje się blok logiczny, który zajmuje się sterowaniem diodami LED. Interfejs RS232 w stronę wyposażenia komputerowego pokazuje powyższy rysunek. Zbudowany jest na bazie układu MAX3238 (zawiera 5 nadajników i 3 odbiorniki). Rozwiązanie lustrzane (interfejs w stronę wyposażenia modemowego) pokazuje powyższy rysunek. Tutaj dla odmiany występuje układ MAX 3243 (zwiera 5 odbiorników i 3 nadajniki).
Całe przetwarzanie sygnałów znajduje się w układzie CPLD, którego schemat pokazuje kolejny rysunek. Z punktu widzenia „cyfrówki”, układ CPLD (U20, XCR3128) jest automatem synchronicznym, co oznacza, że wymaga sygnału taktującego (typowy generator U202, o częstotliwości 1.8432MHz). Jego częstotliwość nie jest krytyczna (ot taki walał mi się w szufladzie) a z drugiej strony, jest typowy w rozwiązaniach transmisji szeregowej. Każdy automat synchroniczny wymaga reseta na dzień dobry. Do tego jest użyty układ (U205, NE555). Samo sterowanie diodami LED ma w torze układy 74HC541 (U203 i U204). Zastosowany układ nie wnosi „zmiany fazy”. Dioda świeci, jeżeli na jego wejście podany jest stan logicznego zera. Możliwe jest zastosowanie innego rozwiązania, ot choćby popularnego układu ULN2803. Ten jednak wnosi „negację” w tor, przyłączona dioda LED świeci, gdy na wejście ULN 2803 podany jest stan logicznej jedynki. Różnorodność rozwiązań samego „wyświetlania” została ujęta w układzie CPLD w ten sposób, że został wprowadzony sygnał POLS (polaryzacja statyczna) i POLD (polaryzacja dynamiczna). Jeżeli na tym wejściu panuje stan niski, to układ CPLD generuje sygnał do sterowania diodą LED ze aktywnym stanem niskim (zapala diodę LED). Jeżeli wejście polaryzujące będzie w stanie wysokim, to CPLD będzie zapalać diodę stanem wysokim.
Dioda LED, to mała płytka PCB mocowana do frontpanelu. Całość zamyka zasilacz. Układ U501 (ST1S10) jest stabilizatorem impulsowym, który produkuje +5V (zasila generator, układ NE555 oraz układy 74HC541 sterujące diodami LED). Konieczne dla układu CPLD napięcie zasilania produkuje układ U502 (LF33). PCB pokazują następujące rysunki.