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.