Sterownik 6 zwrotnic do TT

Schemat w formacie PDF
Dla każdej zwrotnicy przygotowanych jest 5 wyprowadzeń: jedno wspólne (oznaczone na schemacie jako gruba szyna), dwa sterujące (podłączone do kolektorów) oraz kontrolne (dwa pozostałe).

Uwaga ! Błąd na schemacie, zamiast układów z otwartym kolektorem UCY7406 należy zastosować układy UCY7404.

Program do mikrokontrolera 89C2051

Spis elementów potrzebnych do wykonania tego wszystkiego

Spakowana wersja wszystkich ww wymienionych danych


Dzialanie sterownika:

Po odebraniu ramki z informacją i odpowiednim numerem sterownik interpretuje kolejne bajty danych. Sterowanie odbywa się poprzez podanie napięcia (24V) na wspólną szynę i generowanie impulsu na kolejnych wyjœciach. Sprawdzanie stanu odbywa się przez podanie stanu niskiego na wspólną szynę i odczyt z poszczególnych wejœć.

Sposób komunikacji:

Do komunikacji z ww urządzeniami przewidziałem protokół zwany IntelHEX, a konkretnie jego pewną przeróbkę (format danych). Znaczenie poszczególnych bajtów oraz wartości są ustalone przeze mnie.

Przesyłana ramka informacji wygląda:
:[długość][adres_wezła][adres_urządzenia][komenda][Co zrobić] ... [CRC]

 Legenda:

  1. : znacznik poczatku danych,
  2. [xxx] bajt w hexadecymalnej postaci np: 1 = 01, 255 = FF, itp.,
  3. długosc - ilość bajtów {co zrobić},
  4. adres węzła - adres sterownika w sieci wielu podobnych urzadzeń,
  5. adres urządzenia - numer urządzenia do którego będzie odnosić się pierwszy bajt danych {co zrobić},
  6. komenda - określenie co zrobić z otrzymanymi danymi
  7. Co zrobić - co zrobić z określonym urządzeniem (pozycja 1, pozycja 2, pozycja 1 do skutku,pozycja 2 do skutku, itd...),
  8. CRC - suma kontrolna będąca dopełnieniem sumy wszystkich bajtów do wartości podzielnej bez reszty przez 100h.
Podczas jednej transmisji można wpisać do 64 (40h) bajtów danych (ograniczenie ze wzgledu na ilość pamieci w 89C2051). Pierwszy bajt dotyczy urządzenia o adresie={adres urządzenia}, a kolejne odpowiednio następnych urządzen.
Wszystkie sterowniki są w sieci tzw. slave-mi czyli same nie inicjują transmisji. Po odebraniu poprawnej ramki danych sterownik odpowiada albo ramką ok"={:00000001FF} lub danymi o stanie urządzeń.
W przypadku wymuszenia na lini transmisyjnej sygnału niskiego (normalnie znaczyłoby to w RS232 BREAK) w ciągu 5 sek. wszystkie sterowniki przechodzą w tryb identyfikacji. Każdy z nich posiada indywidualny czterobajtowy numer ID, z pomocą którego można ww układ rozpoznać w sieci. Układ zarządzający po rozpoznaniu wszystkich numerów ID zapamiętuje je w określonej konfiguracji i przy każdej inicjalizacji wszystkim znanych sterownikom przypisuje jednobajtowy numer, który jest używany jako adres urządzenia.
Powrot