Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Połączenie modułów, taśma połączeniowa, zasilanie.

WaldekPrzybyłek 23 Feb 2007 14:55 1173 6
SterControl
  • #1
    WaldekPrzybyłek
    Level 14  
    Chciałbym "sklecić" sterownik z dużą ilością wej/wyj.Ponieważ zależy mi na szybkości działania, postanowiłem , że odczyt wejść i zapis wyjść odbędzie się szyną równoległą. Wej i wyj chcę pogrupować po 8 w osobnych obudowach na szynę 35mm.Połączenie pomiędzy modułami wykonałbym taśmą wieloprzewodową ze złączami idc a zasilanie osobnymi przewodami ze wspólnego zasilacza. Każdy moduł zaopatrzyłbym w zatrzask 573 i komparator 7485 do adresowania. W modułach wejściowych wyjścia( 573 ma wyj trójstanowe) chcę spiąć wszystkie razem a 7485 miałby sterować końcówką /OE danego zatrzasku. W modułach wyjściowych te same podzespoły ale 7485 sterowałby końcówką LE .Dałoby mi to 8bit danych i 4 adresu z wej i tyle samo z wyjść. Ponieważ szerokość każdego modułu to ok 5cm , to w całej okazałości szerokość to ok 100cm. Oczywiście wyj/wyj z separacją na transoptorach.
    Pytanie : czy na takiej odległości jest możliwa bezzakłóceniowa komunikacja pomiędzy modułami?
    Czy taśmę połączeniową jakoś ekranować?
    Czy można tak beztrosko zasilać moduły z jednego zasilacza?
    Zastosowałbym całą masę kondesatorów 100n+ jakieś dławiki przeciwzakłóceniowe w każdym module.
    Pobór prądu na moduł to ok 15mA - 20 mA.
    Ze swoimi projektami nigdy nie wychodziłem za 1 pcb dlatego proszę o opinie.
    Pozdrawiam.
  • SterControl
  • Helpful post
    #2
    genetix
    Level 24  
    WaldekPrzybyłek wrote:
    czy na takiej odległości jest możliwa bezzakłóceniowa komunikacja pomiędzy modułami?
    tak - w rozsądnych prędkościach.
    WaldekPrzybyłek wrote:
    Czy taśmę połączeniową jakoś ekranować?
    nie, np. magistrale IDE nie są ekranowane, a "wyciągają" niezły transfer...
    WaldekPrzybyłek wrote:
    Czy można tak beztrosko zasilać moduły z jednego zasilacza?
    tak, przy zastosowaniu kondensatorów odsprzęgających...
  • SterControl
  • #3
    WaldekPrzybyłek
    Level 14  
    Co do prędkości - "sercem" będzie M16 na budziku 16MHz a program będzie działał na zasadzie:
    - odczyt wejścia ( cały moduł na raz)
    - spełniony warunek- wysterowanie wyjścia
    i tak w pętli w kółeczko.
    Czyli prędkość w porównaniu do IDE znikoma- pewnie << 1MHz.
    Ale środowisko może być dość zakłócone - czy wtedy da radę pocignąć?
    Pozdrawiam.

    P.S.Oczywiście piszę o szybkości taktowania magistrali.
  • Helpful post
    #4
    al555
    Level 20  
    Proponowałbym oszacować rzeczywistą potrzebną prędkość odpytywania modułów.

    Może wystarczy transmisja szeregowa 115kb,
    gdy paczka danych paczka będzie 10 bajtów ( CRC16, dane itp) to ok. 1ms, pobieżnie licząc wystarcza to do odpytania 1000razy/sekunde modułów - może to wystarczy ?? ;-), dla 10 modułów to 100razy / sekunde !.

    Uważam że niepotrzebnie brniesz w skomplikowane połączenia
    A obawiam się że zabrniesz niepotrzebnie w uodparnianie na zakłócenia !
    A tak masz tylko 3 kable ( lub nawet 2 gdy zastosujesz RS485).

    Połączenia wiązką 12 przewodową kilku modułów - to naprawdę nie będzie sympatycznie wyglądało - a już na pewno niezbyt profesjonalnie



    Pozdrawiam.
  • #5
    WaldekPrzybyłek
    Level 14  
    Pierwotnie tak miało być - nawet zaprojektowałem płytkę - ale co do zakłóceń - ttl chyba bardziej są odporne od tiny2313 .
    Kolejny problem to zasilanie - dopiero dużo zabiegów aby atmelek się nie sypał.
    Co do estetyki - taśma ułożona prostopadle do modułów (nic nie odstaje) więc w oczy za bardzo nie będzie kłuć.
    Co do szybkości - chciałem, aby program pracował prawie real time, dlatego zacząłem się zastanawiać nad zmianą transmisji.
    Docelowo sterownik zainstalowany będzie w maszynie ,gdzie poszczególne segmenty będą pracować niezależnie- stąd nacisk na szybkość reakcji.
    Ciekawe , jak szybko odpytuje sterownik moduły u takich gigantów jak Siemens czy Omron
  • Helpful post
    #6
    al555
    Level 20  
    Wiem ze jak ktoś sobie coś umyśli to ciężko go przekonać - z własnego doświadczenia to wiem ;-)

    Ale spróbuj podejść do problemu metodycznie:

    - oszacuj ( lub przeczytaj w dokumentacji ) jak często sygnały z Twoich modułów będę analizowane.
    * jeśli stan wejść byłby odzwierciedlany tylko na diodach ( teoretycznie ) to aktualizacja klika razy na sekundę w zupełności by wystarczyła
    * jeśli z odczytu wejść i przetworzeniu w jednostce zarządzającej wynika algorytm sterowania wyjściami - a do tych wyjść podłączone są przekaźniki - to czas reakcji przekaźnika jest ok. 10ms.
    * jeśli istotą działania systemu jest np. tylko załączanie oświetlenia to czas reakcji ok 100ms jest super szybkim czasem .

    Określenie "Real Time" jest szerokie : dla układów logiki cyfrowej 1MHz to wartość znikoma, dla procesora który miałby odczytywać stan kilku wejść z taką częstotliwością i przetwarzać ( nie mylić z zegarem/kwarcem) to całkiem sporo ( dla ATmega z zegarem 16MHz to 16 cykli na jedną pełną operację odczytu - trzeba by się trochę nagimnastykować pisząc kod o ile jest to w ogóle możliwe, szczerze mówiąc wątpię), dla przetwornika ADC - to prawie jak HighEnd.

    Pamiętaj że nawet przy transmisji równoległej dobrze by było zadbać o kontrole prawidłowości transmisji. Spowolni rzeczywistą prędkość transmisji

    Wszystko się przekłada na cenę układu, koszt i czas pracy.

    A teraz konkrety - efekty zabrnięcia w ślepą uliczkę :

    Piszesz że moduły mają być 5 cm, z separacją na transoptorach.
    Ponieważ chcesz mieć real-time więc interesują cię tylko szybkie transoptory. powiedzmy że 6N136, ale one są tylko w obudowach DIP8. Pomijając kwestię ceny ( jeden 1,50 zł) to możesz się nie zmieścić w obudowie - 12 transoptorów w DIP8 ułożonych koło siebie to 13cm ! A gdzie inne układy i elementy. Oczywiście są elementy SMD, ale obawiam się że nie znajdziesz ich zbyt tanich, a do tego szybkich ( najtańszy 4 zł ).

    Kolejnym problemem będzie być może konieczność rozdzielenia magistrali zapisujące i odczytującej lub wprowadzenie dodatkowej linii która będzie blokować na zmianę linie/moduły odczytujące i zapisujące.
    Dlaczego tak jest zobaczysz jak sobie narysujesz schemat jednej linii wejściowej, wyjściowej i sterującej ( z głównego modułu) połączonych razem.

    Reasumując jeśli odległości są niewielkie to zrób wszystko na jednej płytce lub zastosuj transmisję szeregową. Jeśli odległości będą większe jak metr to obawiam się że nie przekroczysz 100kHz odczytu, więc zabawa w transmisję równoległą nie ma sens. Jeśli odległości są mniejsze jak metr to nie ma sensu ( chyba) rozdzielanie na kilka modułów.

    Wracamy do początku - analiza potrzeb to konieczność !

    Pozdrawiam
    i potraktuj uwagi życzliwie.

    P.S. Nie jestem teoretykiem ....
  • #7
    WaldekPrzybyłek
    Level 14  
    AL 555 - bardzo Ci dziękuję za tak wyczerpującą odpowiedź i zapewne masz rację .
    Zastosuję się więc do Twoich rad i wykonam komunikację na transmisji szeregowej stosując szybkie transoptory i pętlę prądową - co by transmisja była odporniejsza na zakłócenia.
    a obudowy chciałem zastosować takie -
    http://www.apar.pl/index.php?listing=25&id=36&b=27&a=3
    i miejsca jest prawie w sam raz.
    Jeszcze raz dziękuję.
    Pozdrawiam.