Podręcznik poleceń komunikacji szeregowej Hitachi Cp X430wac7s2

Hitachi CP-X430WA-C7S2 to profesjonalny podręcznik komunikacji szeregowej, stworzony z myślą o zaawansowanych użytkownikach systemów kontroli. Podręcznik ten zawiera szczegółowe instrukcje dotyczące konfiguracji i wykorzystania szeregowych portów wejścia-wyjścia w systemach sterujących. Jest to doskonałe narzędzie do tworzenia aplikacji szeregowych i monitorowania urządzeń peryferyjnych. Podręcznik poleceń komunikacji szeregowej Hitachi CP-X430WA-C7S2 jest wyposażony w szczegółowe informacje na temat konfiguracji, używania i debugowania portów szeregowych oraz w wyraźne instrukcje dotyczące tworzenia aplikacji szeregowych.

Ostatnia aktualizacja: Podręcznik poleceń komunikacji szeregowej Hitachi Cp X430wac7s2

Please add exception to AdBlock for elektroda. pl.
If you watch the ads, you support portal and users.

Thank you very much for proposing a new subject! After verifying you will receive points!

Miles! 16 Oct 2020 08:51 450

  • #1Level 21  

    #1

    Witam,

    Dopiero zaczynam zgłębiać tajniki komunikacji szeregowej więc z góry wybaczcie, jeżeli odpowiedź na zadane pytanie wyda się dla Was oczywista.Czy w komunikacji szeregowej przez RS-232 ramka danych zawsze wygląda tak samo? Oczywiście wiem, że można zmieniać ilość bitów danych, włączać kontrolę parzystości i wybierać ilość bitów stopu. Ale czy po za tymi zmianami mogą pojawiać się jakieś odstępstwa w standardzie RS-232? Problem polega na tym, że mam do odczytania za pomocą terminala (używałem hyper terminala, putty i tera term) informacje z centralki pożarowej wysyłane za pomocą RS-232 protokołem zwanym ASAP (Autronica Standard ASCII Protocol). Prędkość jest po obydwu stronach prawidłowa, ale na terminalu nie pojawia się zupełnie nic. Nowsza centralka tego samego producenta, która dostarcza informacje protokołem NMEA0183 bez problemu komunikuje się z terminalem. Zastanawiam się gdzie jest problem, skoro obydwa protokoły to protokoły ASCII więc terminal powinien sobie raczej poradzić z odczytem obydwu. No chyba, że się mylę i ramka danych w standardzie RS-232 może odbiegać od tej standardowej.Z góry dziękuję za podpowiedź.

  • #2krzysiek_krmLevel 40  #2

    Proponuję sprawdzić zgodność na poziomie napięciowym, najlepiej za pomocą oscyloskopu. Poza tym, może to urządzenie nie nadaje "samo z siebie" i trzeba mu wydać jakąś komendę.

  • #3adversusLevel 32  #3

    Masz czym podejrzeć wygląd tej ramki? Analizator oscyloskop? Chodzi by wyeliminować że nie działa, ewentualnie by mieć pewność że prędkość jaka jest skonfigurowana jest poprawna. Kolejna sprawa że czasem w komunikacji takich sprzętów używane są sygnały DTR, DSR czy tam RTS... To wszystko może mieć znaczenie i stąd problem z odbiorem...

  • #4JacekCzLevel 39  #4

    a nowe i stare nie różnią się ilością pinów RS-232, które są zaangażowane?

  • #5#5

    Niestety nie mam dostępu do oscyloskopu i analizatora. Ale mam kilka dodatkowych informacji.Port RS232 w obydwu centralkach to zwykłe zaciski śrubowe i są to tylko trzy zaciski: TX, RX i GND. Żadnych dodatkowych sygnałów.
    Porty nie są uszkodzone, bo stara centralka bez problemu komunikuje się z wizualizacją zainstalowaną na statku. Niestety są to systemy, które mają prawie 30 lat i dostęp do dokumentacji jest bardzo ograniczony.

  • Helpful post

    #6#6

    Miles! wrote:

    są to systemy, które mają prawie 30 lat i dostęp do dokumentacji jest bardzo ograniczony

    Czyli zostaje wsteczna inżynieria.

    Miles! wrote:

    stara centralka bez problemu komunikuje się z wizualizacją zainstalowaną na statku

    Czy to jest faktycznie RS232 czy serial TTL.
    Może trzeba się podłączyć i monitorować, jak wspominałem, mogą być potrzebne jakieś specyficzne komendy.

  • #7#7

    Udało mi się zdobyć kilka nowych informacji. Mianowicie ramka danych ma format 1200 baud, 7, E, 2. Po ustawieniu tych samych parametrów na terminalu wciąż cisza.
    Udało mi się zdobyć również wycinek dokumentacji modułu komunikacyjnego BSL-100 z którego wychodzi RS. Widać tam układ MAX232, który łączy się z zaciskami śrubowymi RSa. X11 to złącze taśmowe na płycie głównej centrali.

    Dokładne oznaczenie scalaka jakie widzę na płytce to SP232ACP.
    Co prawda na schemacie widoczne są też inne wyprowadzenia, jednak wykorzystane jest tylko TX, RX i GND.Edit:
    Okazuje się, że komunikacja nie ruszy dopóki centrala nie dostanie sygnału odpytującego. Także tutaj jest chyba pies pogrzebany. Zastanawiam się w jaki sposób to się odbywa i czy udałoby się stworzyć układ na arduino, który inicjowałby taką komunikację. Ale bez dokładniejszych informacji albo przynajmniej oscyloskopu nic nie zdziałam.

  • #8andrzejlisekLevel 29  #8

    Jak do centralki masz jakieś współpracujące urządzenie, z którym się komunikuje, to możesz próbować podsłuchać komunikację za pomocą dwóch modułów z RS232 na USB lub PCI (lub jeden moduł z dwoma portami). Mając jeden taki z jednym portem moduł podsłuchasz komunikację tylko w jedną stronę, jednak możesz wybrać którą. Kiedyś sam próbowałem czegoś takiego z powodzeniem.Do obu gniazd podłączasz piny GND, do pinu RX jednego gniazda podłączasz jedną żyłę danych (łączącą TX z RX Twoich urządzeń), a do pinu RX drugiego gniazda podłączasz drugą żyłę danych, która łączy RX z TX w drugą stronę.W komputerze powinny zgłosić się dwa porty RS232 po podłączeniu modułu z gniazdami RS232. Uruchamiasz dwie sesje Hyper terminal lub Tera term. W jednym ustawiasz komunikację z jednym portem RS232, a w drugim komunikację z drugim portem RS232. Jeżeli dane są tekstowe, to przy nieprawidłowych parametrach prędkości będą krzaki i śmieci, więc możesz dobrać te parametry doświadczalnie. Docelowo jeden terminal będzie pokazywać informacje od centrali do peryferyjnego, a drugi terminal pokaże przesłane dane w drugą stronę.Jeżeli uda Ci się odnaleźć jakieś prawidłowości, np. sposób rozpoczynania komunikacji, to wtedy równie dobrze możesz wysterować centralkę z Arduino, moduł Arduino musi wysylać dokładnie to samo, co urządzenie, z którym ta centralka może współpracować.

  • #9#9

    Bardzo dobry pomysł z tym podsłuchiwaniem. Jak będę miał ponownie dostęp do urządzenia to zrobię tak jak piszesz, coś powinno się wtedy wyjaśnić.

  • #10#10

    Miles! wrote:

    czy udałoby się stworzyć układ na arduino

    Przy 1200 bps arduino powinno "uciągnąć" dwa odbiorniki szeregowe programowo, będziesz mógł oba strumienie danych "skleić" i wysłać do komputera przez usb - serial, zrealizujesz monitorowanie obu linii (TX / RX), jak napisał

    andrzejlisek wrote:

    Do obu gniazd podłączasz piny GND, do pinu RX jednego gniazda podłączasz jedną żyłę danych (łączącą TX z RX Twoich urządzeń), a do pinu RX drugiego gniazda podłączasz drugą żyłę danych, która łączy RX z TX w drugą stronę.

    O ile nie ma w tej komunikacji jakichś dziwactw i perwersji, typu szyfrowanie, to uda się wywieść odpowiednie prawidłowości, jak zresztą w większości takich przypadków, jak już wspominałem - wsteczna inżynieria po prostu.

  • #11#11

    To dużo prostszym i szybszym sposobem podejrzenia co hula po Tx I RX jest pseudo oscyloskop zrobiony z karty muzycznej (dostępna w zasadzie w każdym komputerze). Wystarczy do tego programik typu WinScope itp, a jeśli masz jakiś komputer co ma dodatkowo port LPT to masz jeszcze wygodniej, bo możesz zrobić z niego bardzo prosto 8 kanałowy analizator stanów logicznych. Wszystko znajdziesz np. tu:
    http://mikrokontrolery. html
    I w zasadzie jesteś w stanie wtedy przy tych 1200 bodach zdiagnozować tego RS'a, będzie widać czy żyje i co po nim lata. Jeśli tak to wtedy można się zająć przechwytywaniem tego co po nim leci.

  • #12#12

    Znajdzie się jakiś stary laptop z portem LPT więc pewnie go wykorzystam. Dzięki za podpowiedzi!

Temat: Obsługa <strong>portu</strong> <strong>komunikacji</strong> <strong>szeregowej</strong> <strong>RS232</strong> w <strong>systemie</strong> <strong>STRC51</strong>. Ćwiczenie 3. (sd) 1 0 - tryb 2, transmisja asynchroniczna bez możliwości regulacji prędkości, 9 bitowy transfer, 1 1 - tryb 3, transmisja asynchroniczna z możliwością regulacji prędkości, 9 bitowy transfer, SM2 - Bit sterujący pracą tryb: punkt-punkt (0), wieloprocesorowa (1), 1. REN - Bit zezwolenia na odbiór danych przez łącze szeregowe (1), TR8 - Dodatkowy dziewiąty bit transmisji wieloprocesorowej, RB8 - Dodatkowy dziewiąty bit transmisji wieloprocesorowej, TI - Wskaźnik przerwania (opróżnienia) od bufora nadawczego (1), należy go kasować programowo, RI - Wskaźnik przerwania (napełnienia się) bufora odbiorczego (1), należy go kasować programowo. Rejestr TMOD opisany dokładnie w ćwiczeniu 3 – ustawia pracę Timera niezbędnego do prawidłowego funkcjonowania łącza szeregowego. Nie wchodzą w szczegóły dla poprawnej pracy, należy wykonać następującą sekwencję (ustawienie licznika w tryb samo przeładowywania): TMOD &= 0x0F; TMOD |= 0x20; Sprawi ona że licznik nr. 1 będzie dostarczał niezbędny dla układów UART sygnał zegarowy (zgodnie z ustawieniami TH1). Rejestr TCON umieszczony od adresem 0x88 w przestrzeni pamięci wewnętrznej rejestrów specjalnych (deklaracja: sfr at 0x88 TCON;). Poniższa tabela przedstawia organizacje i symboliczne oznaczenie bitów: 7 6 5 4 3 2 1 0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TF1 - Wskaźnik przerwania od licznika 1, zerowany sprzętowo podczas wykonywania procedury przerwania, TR1 - Bit włączenia(1)/wyłączenia(0) licznika 1, TF0 - Wskaźnik przerwania od licznika 0, zerowany sprzętowo podczas wykonywania procedury przerwania, TR0 - Bit włączenia(1)/wyłączenia(0) licznika 0, IE1 - Wskaźnik przerwania od wejścia /INT1, zerowany sprzętowo podczas wykonywania procedury przerwania, IT1 - Bit określający sposób reakcji na sygnał na wejściu /INT1: 0 - przerwanie wyzwalane niskim poziomem na wejściu, 1 - przerwania wyzwalane zboczem na wejściu, IE0 - Wskaźnik przerwania od wejścia /INT0, zerowany sprzętowo podczas wykonywania procedury przerwania, IT0 - Bit określający sposób reakcji na sygnał na wejściu /INT0: 0 - przerwanie wyzwalane niskim poziomem na wejściu, 1 - przerwania wyzwalane zboczem na wejściu, 1 Standardowo komunikacja wieloprocesorowa nie jest dostępna w komputerach PC.

Temat: Obsługa <strong>portu</strong> <strong>komunikacji</strong> <strong>szeregowej</strong> <strong>RS232</strong> w <strong>systemie</strong> <strong>STRC51</strong>. (sd) Rejestr PCON umieszczony pod adresem 0x87 w przestrzeni pamięci wewnętrznej rejestrów specjalnych (deklaracja: sfr at 0x87 PCON;). 7 6 5 4 3 2 1 0 SMOD - - - - - - - SMOD - Bit sterujący prędkością pracy łącza szeregowego (patrz wzór w dalszej części dokumentu). Rejestr SBUF umieszczony pod adresem 0x99 w przestrzeni pamięci wewnętrznej rejestrów specjalnych (deklaracja: sfr at 0x99 SBUF;). Jest on rejestrem nadawczo/odbiorczym, transmisji <strong>szeregowej</strong>. Czytana wartość z tego rejestru jest wartością ostatnio odebranego znaku (jeżeli został takowy odebrany), wartość wpisana do tego rejestru będzie transmitowana przez nadajnik. Uwaga nie można odczytać wartości wpisanej w poprzednim wpisie – wartość tak odczytana jest dokładnie wartością ostatnio odebraną a nie nadaną). 3. Użycie przerwań związanych z transmisją szeregową Przed przystąpieniem do obsługiwania łączności <strong>szeregowej</strong> z udziałem przerwań, należy prawidłowo zainicjować odpowiednie rejestry. - ustawiamy tryb transmisji łącza (SCON), - zezwolenie na obsługę odbierania danych z łącza (SCON), - ustawienie trybu pracy licznika 1 (TMOD, TCON) z pobudzaniem z wewnętrznego oscylatora, - ustawienie bitu SMOD (PCON), - ustalenie – wpisanie prędkości transmisji (TH1 i TL1), - zezwolenie na generowanie przerwań od łącza szeregowego (ES), - zezwolenie na obsługę wszelkich przerwań (EA). Na uwagę zasługuje sposób wyliczania wartości wpisywanej do TH1 w zależności od częstotliwości oscylatora zasilającego procesor. Najwygodniej jest używać w tym liczniku tryb z auto-przeładowywaniem, ustawiając licznik T1 w tryb 2. Prędkość transmisji wyznaczana jest ze wzoru: Baud = fosc * 2^SMOD / (32*12*(256-TH1)) fosc - częstotliwości oscylatora w <strong>STRC51</strong> równa 11059200 (co odpowiada częstotliwości rezonatora kwarcowego wmontowanego w <strong>STRC51</strong>), Po tak pracochłonnych czynnościach można uważać port transmisji <strong>szeregowej</strong> za skonfigurowany. Należy pamiętać, że: -procedura przerwania jest wywoływana raz dla każdego odebranego/nadanego znaku, -bufor SBUF może być tylko raz odczytany dla każdego znaku odbieranego i raz zapisany dla nadanego znaku, -sprawdzenie czy przerwanie wygenerował sygnał opróżnienia bufora nadawczego czy zapełnienie bufora odbiorczego może być przeprowadzone przez badanie bitu TI lub RI (odpowiednio). -po wykonaniu odpowiednich operacji związanych z SBUF należy wyzerować bity TI/RI. Poniższy pseudokod prezentuje szablon uruchamiania połączenia szeregowego z nadawaniem w poolingu jednego znaku jak i w podobny sposób jego odbieraniem.

Na naszych trzecich zajęciach powiedzieliśmy sobie o:

  • dalej o tablicach, bo są ważne!
  • programowanie strukturalne – tworzenie (niemych) funkcji, u nas void błysk(int czas) – jako podstawowych cegiełek, których będziemy często używać
  • poznajemy inne typy danych (czy wiesz, jakie wartości można w nich przechowywać? ):
  • bajt (o rozmiarze 1 bajt – no bo niby jak inaczej! ),
  • char (czyli znak, też 1 bajt) – przy tej okazji poznajemy ciapki (znaczki pojedynczego apostrofa \’ \’)
  • bool (prawda/fałsz, true/false) – 1 bajt
  • modyfikator unsigned
  • modyfikator long
  • stringi jak tablice znaków,  poznajemy też psie uszy – czyli znaki amerykańskiego cytowania \” \”
  • float – do przechowywania liczb rzeczywistych, np. float pi=3. 141592; (4 bajty)
  • o komunikacji szeregowej z zamierzchłych czasów PeCetowych – RS232
  • emulator portu RS232 w dzisiejszych kompach – wykorzystujemy port USB (w tym kilka zgryźliwych opinii o oprogramowaniu tego emulatora pod Windowsem – niestety, działa on słabiej niż analogiczne oprogramowanie pod Linuxa)
  • Serial. begin(9600) – rozpoczynamy transmisję szeregową z nasztm PCetem, ale „tracimy” piny #0 (nazwany RX – odbiór danych) i #1 (nazwany TX – transmisja danych) na naszej płytce Arduino (są one zajęte rozmową z PCetem). Dla bardziej dociekliwych dodam, że aby „odzyskać” te piny musimy zakończyć transmisję szeregową poleceniem Serial. end() – informacja dla zaawansowanych
  • Serial. print(„cokolwiek„)  – mówimy do PCeta, aby to usłyszeć, musimy otworzyć Monitor portu szeregowego w Arduino IDE. Trzeba pamiętać o konfiguracji Monitora tak samo, jak to zrobiliśmy od strony Arduino
  • Serial. println(„inny napis„) – napis zakończony przejściem do nowej linii
  • Serial. available() – sprawdzamy, czy są jakieś dane do odebrania przez Arduino
  • Serial. read() – czytamy jeden bajt. Przy tej okazji ćwiczyliśmy różnicę pomiędzy:
  • byte znak=Serial. read() // orazchar znak=Serial. read(). 

    Pamiętasz, o co chodziło? Co się wyświetlało w obu przypadkach po wpisaniu jednej literki, np. A? czy przypominasz sobie moją dygresję o znakach ASCII oraz o kodowaniu klawiatury?

  • wczytujemy napis (czyli ciąg znaków, np. wyraz pomidor) z Seriala – no i cóż? literka po literce?? Jak więc wczytać liczbę, powiedzmy 107?
  • Serial. parseInt() jako funkcja czytająca dane nadchodzące do Seriala i zamieniające je na liczbę całkowitą (integer) – czyli wczytując liczbę „107” nie mamy już trzech oddzielnych liczb (tj. 1, 0 i 7) tylko całą liczbę 107
  • Po tych zajęciach powinieneś znać:

  • umieć rozpoczynać komunikację PCta z Arduino przy pomocy obiektu Serial. begin(szybkość_transmisji)
  • pamiętać o roli pinów RX (#0) i TX (#1) w komunikacji szeregowej UART
  • znać podstawowe funkcje – przynajmniej Serial. println(„cokolwiek„)
  • umieć czytać znaki z klawiatury PCta, a także zamieniać te znaki na liczby
  • Praca domowa #1

    Arduino + LEDy: wczytać numer diody, która ma się zaświecić (podpowiedź: pamiętajmy o ciapkach, czyli '1′, '2′ itd). Dodatkowo: jeśli dioda juz była włączona, to ją zgasić (podpowiedź: użyjmy pomocniczych zmiennych typu bool).

    Praca domowa #2

    Arduino + LEDy: wczytac liczbę błysków dla wszystkich diód, czyli ile razy mają błysnąć LEDy (a potem nic ma się nie dziać). Podpowiedź: wykorzystać funkcję zamieniającą wczytane znaki na liczbę całkowitą.

    A co na kolejnych zajęciach?

    wyświetlacz 7-mio segmentowy! a może nawet rejest przesuwny?

    Podręcznik poleceń komunikacji szeregowej Hitachi Cp X430wac7s2

    Bezpośredni link do pobrania Podręcznik poleceń komunikacji szeregowej Hitachi Cp X430wac7s2

    Starannie wybrane archiwa oprogramowania - tylko najlepsze! Sprawdzone pod kątem złośliwego oprogramowania, reklam i wirusów

    Ostatnia aktualizacja Podręcznik poleceń komunikacji szeregowej Hitachi Cp X430wac7s2