Univerzális vezérlő interfész PC-hez     ASTLAB © 2007

A CI4A hardver felépítése

1. A hardver működése

2. Az alaplap

3. Meglévő periféria kártyák

3.1 Digitális IO kártya 6 be 6 kimenettel

3.2 RC szervó vezérlő kártya 8 kimenettel

3.3 DC motor vezérlő kártya 2 kimenettel (2 motor vezérlése)

4. Tervezett perifériakártyák

5. Bedobozolás

6. A hardver IP címének megváltoztatása

7. A hardver felhasználása


1. A hardver működése

Vizsgáljuk meg funkcionálisan, hogy mit is kell tudjon a hardver. Először is csatlakozni kell egy számítógéphez amitől a vezérlő parancsokat kapja, illetve aminek a beolvasott bemeneti információkat küldi. A csatlakozáshoz a kor követelményeinek megfelelően valami gyors adatátvitelt biztosító eszközt kell használni. Ez lehetne USB is, de ekkor igen szűkösre korlátozódik a távoli vezérlés lehetősége, ezért inkább a LAN mellett döntöttem, hiszen a mai PC-ken már defaultban van minimum 100 MBit-es ethernet is, de a legtöbb bitbuzerátor ketyerekedvelő rendelkezik olyan WIFI routerrel amin biztos van még egy szabad LAN port. Másodszor a PC-től kapott számadatokat át kell tudja alakítani olyan formátumú elektromos jelekké, amit az adott periféria igényel, illetve a bemeneti perifériákon keletkezett információkat olyan számokká amit a PC megért.
Mivel nagyon sokoldalú, sokszor nagy számításigényű részfeladatokból álló cuccal van dolgunk célszerű egy olyan osztott intelligenciával működő rendszert létrehozni, ahol minden fontosabb részfeladatot önálló mikroprocesszor végez, így mindenkinek jut ideje a saját feladata elvégzésére, valamint a feladatokat megoldó szoftverek valóban párhuzamosan tudnak futni egymás mellett. Ezzel a kisebb teljesítményű de olcsó mikrokontrollerekkel szinte csodákat lehet művelni. Az osztott intelligenciás rendszer elemei jelen esetben a perifériavezérlést végző kártyák lesznek. Ezek az elemek soros porton kapcsolódnak össze és a 115200-8-N-1 formátumú adásmódot használják kommunikációra.
Mivel a csatlakozás egy olyan LAN modullal történik aminél egyetlen soros port kapcsolódik a mikrokontrolleres rendszer felé, biztosítani kell némi jelerősítést, hogy minden a rendszerben levő elem párhuzamosan megkaphassa a PC-től érkező adatcsomagokat. A csomagok leválogatását a periféria vezérlők végzik, mindenki csak a saját csomagját fogja értelmezni. Kicsit bonyolultabb a helyzet az adást tekintve, mert az adóvonalak nem közösíthetők galvanikusan. Ehhez egy multiplexert kell használni, ami biztosítja, hogy egyszerre mindig csak egy periféria lógjon az adóvonalon. Ezzel párhuzamosan kell egy ütemező ami megmondja, hogy ki mikor adhat. A rendszer logikai vázlata így néz ki:




Mivel a kommunikáció full duplex a PC vel, az adásokat csak egymáshoz képest kell ütemezni. Ez itt úgy működik, hogy a plug and pray rendszer felismeri a perifériakártyákat, és csak azoknak ad kiválasztó jelet, amelyek rendelkeznek valamiféle bemenetekkel. Amelyik kártya kiválasztó jelet kapott, leolvassa a bemenetei állapotát és amennyiben az változott az előző leolvasás óta, akkor elküldi az új értéket CI4A driver programnak. Az ütemező természetesen ekkor a TX multiplexert is abba az állapotba vezérli, hogy az épp kiválasztott kártya adóvonala legyen a LAN modulra kötve. A kártyák kiválasztó és multiplexer kapcsolásának vagyis a bemenet scannelésének sebessége változtatható, ezt a driver optimálisan a kártyák számának függvényében be is állítja, amit persze felülbírálhatsz ha nem tetszik az értéke.

A hardver egy alaplapból és a perifériakártyákból tevődik össze.

2. Az alaplap

Az alaplap tartalmazza a LAN modult, a kártyakiválasztó és multiplexer vezérlőt, a multiplexert a jelerősítőket, egy RS232 illesztőt ami csak a LAN modul első IP cím beállításához illetve a firmware updatjéhez szükséges, így nincs is a MAX232 IC beletéve. Ezen kívül az alaplapra került egy olyan kapcsolóüzemű tápegység, ami 5V 3A-t tud az alaplap, a kártyák, és a kártyák után levő cuccok (pl SZERVO, optocsatolók) tápellátásához biztosítani. Az alaplap kapcsolási rajza így néz ki:



A kártyák kiválasztását, a multiplexer vezérlését IC2 végzi. Ezen kívül ez a tok állítja elő az egész rendszernek való órajelet, amit az IC5 változtat combosabbá. Az elméleti blokkdiagrammhoz képest az RX vonali erősítő és az órajel erősítő is ketté van választva. Ezek egyenként négy SLOT-ot látnak el, igy biztosítható minden kártya biztonságos működtetése. Minden SLOT-ban (CS15-22) van +5V, GND, RX, CLK vonal, EXT1 ami későbbi funkcióbővítéseknél jól fog majd jönni, valamint EXT2 amin pillanatnyilag minden kártyára felmegy a +Vin (jelen esetben 13.6V) is. A SLOT-ban van még darabonként egyedi TX illetve EAN vonal, az EAN szolgál a kiválasztásra, a TX-en pedig a kártya adatokat közöl a driver programnak. A rajz baloldali tetjén lakik a LAN modul, ami két jumperral a MAX232-re illetve az alaplap RX-TX vonalára jumperolható.



A SLOT-ok egy 90 fokban elfordított a CS26-28 által tartott panelra vannak felszerelve, így a kártyákat előről lehet bedugdosni az alaplapba. Az alaplap tápellátását egy MW7H30GS típusú hálózati tápegység biztosítja, a táp DCJACK-en át jut a panelra, ahol D1 Graetz megakadályozza a fordított tápadásból következő sűrű büdös füst keletkezését. A bemenő feszültség 15V DC, ebből lesz 13.6V ami a panel szélén levő sorkapocsra is ki van vezetve, így ezt a CS14-en megjelenő feszültséget használhatjuk MAX 3A-es cuccok (pl. 12V-os DC motor) meghajtására is. A TTL alkatrészek számára a panelra szerelt kapcsolóüzemű tápegység szolgáltatja az 5V-ot. CS11-re a főkapcsolót, CS12-re az 5V-os kör kapcsólóját lehet beiktatni. Az 5V a CS13-ról is levehető, és természetesen mint ahogy CS14, ez is ki lesz a doboz elejére banánhüvellyel vezetve.

3. Meglévő periféria kártyák

A perifériakártyák közül a most egyelőre csak 3 alapvető funkciót kielégítő készült el, ezek voltak feltétlenül szükségesek a mikrokontroller égető robot vezérléséhez. Minden kártya soros vonalon kommunikál az alaplappal, a csatlakozóján át megkapja a tápfeszültségeket, a működéséhez szükséges órajelet, és kiválasztó jelet. Minden kártya önálló RESET áramkörrel rendelkezik.

3.1 Digitális IO kártya 6 be és 6 kimenettel

Ezen a digitális IO kártyán ugyan csak 6 kimenet van, viszont cserébe csatornánként állítható a kimenet polaritása, ami azt jelenti, hogy +5V-ot vagy GND-t tud kapcsolni a jumpereléstől függően. Mivel a kártyán levő mikrokontroller IO vonalai és a kártya fizikai méretei korlátozottak ezért a 6 kimenet mellett 6 bemenetet lehetett még rá applikálni. Egyszerűbb vezérlési feladatokhoz ez az IO vonalszám megfelelő. A kártya kapcsolási rajza a következő:



Az IC1 fogadja az alaplapból érkező információkat. A kártya az alaplap RX vonalán küldött frame-kből kiválasztja azokat, amiket neki címeztek. Új kimeneti adat érkezésekor frissíti OUT0A-OUT5A kimeneteit. Ezek a kimenetek vagy direktben, vagy T1-T6 tranzisztorokon keresztül fázisukat megforditva jutnak a kimeneti csatlakozókra. A kimenetek terhelhetősége mindkét üzemmódban 20 mA, amivel egy LED-et már jól meg lehet hajtani. Ez bőven elég, mert nagyobb feszültségű és áramfelvételű cuccok kapcsolgatásához amúgy is ajánlott optocsatolót használni. A bemenetek leolvasása akkor történik, amikor az alaplap EAN jelet ad a kártyának. Mivel az előző leolvasáskor fennálló bemeneti állapot tárolva van, IC1 ezt az aktuálissal összehasonlítja, és csak akkor történik adatküldés, ha a bemenetek azóta megváltoztak.



Az előző képek a kártya mechanikus felépítését mutatják. A ki és bemeneti csatlakozók a kártya előlapján lettek elhelyezve. Az előlap szintén üvegszálas nyák, ami 90 fokos tüskesorpárokkal van a kártyához forrasztva. A csatlakozók olyan kiképzésűek, hogy ne lehessen fordítva beléjük erőszakolni a kábelt. A kártya előlapjára matrica van ragasztva, ezen vannak a ki és bemenetekhez tartozó feliratok.

3.2 RC szervó vezérlő 8 kimenettel

Ez az RC szervó vezérlő kártya 8 kimenettel rendelkezik, az az 8 db RC szervót képes egyszerre meghajtani. Kapcsolási rajza a következő:



Két IC helyezkedik el rajta, itt is az IC1 fogadja az alaplapból érkező információkat. Ennek a chipnek a feladata az érkezett csatorna adatokat bufferelni. A bufferre azért van szükség, mert vezérlő frame bármikor érkezhet a driver program felől. Na most ha ez éppen akkor érkezik, amikor az egyik szervó vezérlő impulzusát generálom - amit nagyon pontosan kell megtenni - akkor a csomag csak abban az esetben nem vész el, ha az impulzusgeneráló ciklust egy vételi interrupt megszakítja. Ebben az esetben viszont az impulzus hossza megnő a vétel idejével, amitől a szervó megrándulna. Az IC2 így tisztán tudja generálni az impulzusokat, és minden impulzus szünetben a DAT,SCK,NDFB,RDY (ez egy kurvagyors szinkron soros handshakes adatátviteli interface) vonalakon keresztül lekérdezi a buffert, hogy történt-e változás. Ezzel elkerülhető a szervók rángatózása.

A következő képek a kártya mechanikus felépítését mutatják. A kimeneti csatlakozók itt is a kártya előlapján lettek elhelyezve. Ezeken a csatlakozókon a szervó tápja és vezérlő impulzusa jut a külvilágba. Ugyan itt is fordtásvédős csatlakozók kerültek alkalmazásra, de ha nem használsz hosszabbítókábelt a szervók csatlakoztatására, akkor vigyázni kell, nehogy fordítva dugd be a szervó drótját, mert a szervó gyári csatlakozóján nincs fordításvédő horony!



(A fotón látható kártyán el lett szúrva egy route, ezért van rajta ez a ronda piros madzag.)

3.3 DC motor vezérlő 2 kimenettel (2 motor vezérlése)

Ez a DC motor vezérlő kártya 2 motort tud egyszerre vezérelni. Kapcsolási rajza a következő:



Működési elve teljesen hasonló a szervó vezérlőhöz, ebben is van buffer, ami ugyanazt a célt szolgálja, ez is szinkron soros interface-en vesz adatot a buffertól a két PWM jel közti szünetben. A DIR kimeneteken az irány, A PWM kimeneteken a PWM vezérlő jelek jönnek ki a két meghajtó IC-ből. A PEB(PWM enable backward), PEF(PWM enable forward), POB(PWM output backward), POF(PWM output forward) kimenetek segítségével pedig közvetlenül meghajtható a következő motorvezérlő hídkapcsolás:



A kártya mechanikus felépítése hasonló az 3.1, 3.2 pontban tárgyaltakhoz. Ezen a kártyán ki van vezetve a külön csatlakozóra a +5V és a GND is , ami pl. a hídkapcsolás optocsatolójának tápellátásánál pont jól jön.



/ A fotón látható kártyán nincs betéve a második motor vezérlésere szolgáló IC, mert arra a robotnál egyenlőre nem volt szükségem. Ha majd kelleni fog, akkor 5 perc alatt a helyére kerül. :) /

4. Tervezett periféria kártyák

Amikor felmerül a konkrét igény egyéb perifériák vezérlésére, akkor újabb kártyákkal fog kiegészülni a rendszer. Egyelőre csupán a fantáziálgatás szintjén nézzük meg melyek lehetnek ezek:
  1. Digitális input 12 bemenettel
  2. Digitális output 12 kimenettel
  3. Digitális input 24 bemenettel
  4. Digitális output 24 kimenettel
  5. Analóg input 6 bemenettel
  6. Analóg output 2 kimenettel
  7. Mátrixbillentyűzet és rotary encoder olvasó, LCD meghajtó
  8. Léptető motor vezérlő 3 kimenettel (3 motor vezérlése)
  9. 3 fázisú motor vezérlő
  10. CNC mérőrendszer leolvasó
  11. RS485 meghajtó ipari drótos kommunikációhoz
  12. 430MHz ISM rádióinterface drótmentes kommunikációhoz

5. Bedobozolás

Az egész cucc egy olyan műanyag dobozba került, ami középen szétnyitható és az eleje meg hátulja is könnyen kivehető. A könnyen kivehető előlapba egy jókora téglalap alakú luk lett bemarva, ezen keresztül lehet a kártyákat bedugdosni. Az előlapra kerül még az 5V DC kapcsolója és a működést jelző LED is. Ezeken kívül látható még 4 banánhüvely helye, ezeken a +5V, a +Vin és GND jön ki, hogy a dobozban lévő tápfeszültségeket a meghajtó elektronikához könnyen el lehessen vinni. A hátlapon a fektetett téglalap alakú lukon kandikál kifelé a LAN modul, kis köralakún pedig a tápcsatlakozó. Az egész cucc főkapcsolója helyhiány miatt hátra kerül és a függőleges téglalap alkú lukba lesz bepasszintva .


A kártyák rögzítését a képen látható trükkel sikerült megoldani: Az a keskeny műanyag sáv, ami a doboz elején alúl-felűl megmaradt nem tartana már semmit. Ezért erre két vékony panelcsík lett kétoldalas TESA tükörragasztó szalaggal felragasztva. Ezen forrasztással vannak rögzítve a menetes rézhüvelyek, amelyek már kellő tartást biztosítanak a becsavarozott paneleknek.


A következő kép a dobozt felűlnézetből mutatja a becsavarozott kártyákkal. Az alaplap távtartókkal van a doboz aljához rögzítve.



6. A hardver IP címének megváltoztatása

A hardver IP címének megváltoztatása a LAN modul gyártója által adott DS manager nevű birizgáló programmal lehetséges. Ez a szoftver nem csak az IP cím, hanem rengeteg más paraméter beállítására is szolgál. Az IP ADDRESS és a DEFAULT GATEWAY paraméterek szabadon átállíthatók. Lehetséges még a portszám átállítása is, de ekkor a ci4adrv konfigurációjában is át kell állítani a [HARDWARE] PORT paramétert ugyan erre az értékre.

Ezen kívül minden más paraméter megváltoztatása a hardver hibás működéséhez vezethet!

A hardver default IP címe 10.1.16.50, portszáma 1001. Ha ezt meg akarod változtatni, akkor windows-on a következőket kell tenni:
  1. Ha routered van húzd ki belőle a gépedet
  2. Szerezz egy fordítós LAN kábelt és ezzel kösd össze a CI4A hardvert a gépeddel
  3. Ha nem a 10.1.16.X tartományt használod akkor ird át a géped IP címét 10.1.16.51-re( My Network Places-jobb klikk Properties gomb; Local Area Connection-jobb klikk Properties; General fül listájából Internet Protocol kiválaszt-Properties gomb; General fül-IP Address; majd néhány OK gomb
  4. Inditsd el a DS managert (Ez elkezdi keresni a subneteden levő LAN modulokat, majd kilistázza őket)


  1. Válaszd ki az ASTLAB/CI4A device-ot
  2. Nyomd meg a Change IP gombot
  3. Adj meg az általad használt tartományból egy szabad IP címet majd OK gomb (Ekkor a DS manager átírja az IP címet majd közli, hogy azt a következőkben nem fogja megtalálni. Ez nem baj, hiszen vissza fogjuk állítani az eredeti IP címedet)
  4. Lépj ki a DS managerből
  5. Írd vissza a géped régi IP címét
  6. Ha van routered állítsd vissza a régi kábelezést, majd kösd a routerre a CI4A hardvert. Egyébként marad a fordítós kábel!
Ezek után a hardver az általad megadott IP címmel már használható is a lokális hálódon.


7. A hardver felhasználása

Ez a hardver, mint ahogy a fent leírtakból következik, egy teljesen általános vezérlő interface, melynek fizikai be és kimenetei TTL szintűek, nem tartalmaznak meghajtó elektronikákat. Ezzel a hardverrel könnyen lehet mindenféle okos cuccot fejleszteni, ahol lényeges szempont, hogy a vezérlő kártyák cserélgethetők, az IO vonalak bővíthetők, igy ha kell még bemenet csak egy újabb kártyát kell bedugni. A hardver architektúra azonban alkalmas egyedi vezérlők kifejlesztéséhez is, ahol nem ilyen SLOT-os megoldást alkalmazunk, hanem tervezésnél összerajzoljuk az alaplapot a megfelelő periféria vezérlő kártyákkal, így egy panelre kerül minden ami az adott ketyere vezérléséhez kell. A mikrokontrollerekben a programok változatlanok, a driver is ugyan az marad. Ezeket az alkatrészeket mind meg lehet kapni SMD kivitelben is, így egy 4 réteges panelon akár tenyérnyi helyen elférő vezérlést lehet belőlük létrehozni.


VISSZA