kategória | ||||||||||
|
||||||||||
|
||
Számítógép:
ˇ 757i89h logikai -aritmetikai egység - programtár - adattár - külvilág (IO)
ˇ 757i89h adatok is, parancsok is byte-okban vannak (k*8 vezeték + föld = busz)
ˇ 757i89h belül párhuzamos adatátvitel (ISA, PCI)
ˇ 757i89h külvilág felé rendszerint soros (pl egér, klaviatúra, modem, hálózat, USB); párhuzamos: printer (hagyományok miatt), GPIB, egyedi vezérlések
ˇ 757i89h memória: volatilis:RAM, permanens:ROM, EEPROM, flash memória, kis fogyasztású: CMOS;
ˇ 757i89h címek: bizonyos címeken rendszerparaméterek találhatók - táblázat; portcímek (IO célokra)
Mikroprocesszor:
ˇ 757i89h A logikai-aritmetikai egység egyszerű műveletekre képes: byte-ok összehasonlítása, összeadás, fixpontos számok szorzása; lebegőpontos művelet: koprocesszor
ˇ 757i89h timer: funkcionálisan 8254-es; ami 55 ms-onként a $46C-t megnöveli eggyel.
ˇ 757i89h két mikroprocesszorcsalád van: Motorola 6800 és Intel 8080 utódai.
Vezérlések:
ˇ 757i89h vezérlések elvégzéshez a logikai -aritmetikai egység - programtár - adattár külvilág (IO) egységek össze vannak integrálva - ezek a mikrokontrollerek.
ˇ 757i89h fejlesztőrendszer; program (1-2 kByte esetleg) beégetés, vagy letöltés
ˇ 757i89h nem programozhatók - mikrokontroller: mosógép, fényképezőgép, pH mérő
ˇ 757i89h programozható:PLC (bit ki, be, relés kapcsolások, ADC, DAC ) egyszerű, megbízható (közlekedési lámpa)
ˇ 757i89h bonyolultabb: folyamatvezérlő számítógép - ujabban PC (ipari PC: üzembiztonság, megbízhatóság, egyszerűség, párhuzamos, tartalék, watchdog)
ˇ 757i89h információ: AD-DA, timer (analóg) DIO, léptetőmotor vezérlő (digitális), frame grabber (kép)
ˇ 757i89h általános célu műszerek: sokcsatornás analizátor, oszcilloszkóp, spektrofotométer, potenciosztát
ˇ 757i89h egyedi berendezések vezérléséhez: 8255 alapu kártyák
ˇ 757i89h kommersz elektronikai megoldások felhasználhatók: DIO-ra a printerport, ellenállásmérésre a gameport, AD-DA (sajnos csak hangfrekvenciás AC alkalmazáshoz) hangkártyák
ˇ 757i89h jelkondicionálás (mechanikai csatlakoztatás, erősítés, szűrés, galvanikus leválasztás, szimultán mintavételezés) rendszerint a felhasználó feladata
ˇ 757i89h beállítandó (vagy plug&play beállítja): interrupt level, DMA channel, alapcím
Programozásuk
ˇ 757i89h címkiosztás, példaprogramokkal;
ˇ 757i89h driver - parancskészlet, (pascal,C), Labview driver
ˇ 757i89h komplett virtuális műszer program
Programozási példák:
1. példa: egy polarográfiás függőcsepp elektródot egy PCL-812 PG típusú kártya vezérel. A kapilláris zárt, ha a DIO14 nevű IO byte 6. bitje 1, nyitott, ha 0.
procedure PSDropHalt(b:byte);
begin
if b>0 then b:=1;
DIO14:=(DIO14 and 191);
if b=1 then DIO14:=DIO14+64;
port[base_address+14]:=DIO14;
end;
2. példa: feszültségmérés:
function MeasV:integer;
var i:integer; hib,lob:byte;
begin
port[base_address+11]:=1;
hib:=port[base_address+5];
port[base_address+12]:=1;
i:=0;
repeat
hib:=port[base_address+5]; i:=i+1;
until (hib<16) or (i=100);
lob:=port[base_address+4];
mv:=hib shl 8 + lob;
if i=100 then MeasV:=9999 else MeasV:=mv;
end;
3. példa: feszültségmérés 20 ms-os integrálással
function measV20ms:real;
var i:integer; vl:longint; mv: real; vv:integer;
begin
i:=0; vl:=0;
StartTimer;
repeat
vv:=MeasV;
if not (vv=9999) then begin
i:=i+1; vl:=vl+vv;
end;
until ReadTimer>0.02;
if i>0 then MeasV20ms:=vl/i else MeasV20ms:=9999.0;
end;
4. példa: Leállás elleni védekezés: keretprogramból (Main.exe) exec-kel hajtjuk végre magát a mérőprogramot (Measure.exe) ami pl. esc megnyomással állítható le.
Program Measure;
procedure EscTest; begin KeyTest; if EscPressed then CloseAll; halt(27); end;
begin repeat Measurements; EscTest; until világvége; end.
Program Main;
repeat
exec('Measure.exe',''); i:=DosexitCode;
WriteDEClogFile(i);
until (i=27);
end.
Ezzel csak a runtime error-ok küszöbölhetők ki, a tényleges lefagyások csak resettel - watchdog.
1. RS232C. Legegyszerűbb soros rendszer
Fizikailag:
ˇ 757i89h 3..12V; 0 (LO) = +3V..+15V; 1 (HI) = -15V..-3V
ˇ 757i89h minimum 3 vezeték (jel oda, vissza, föld), legáltalánosabban 9 vezeték (TxD, RxD (transmit data, recieve data: jel oda , vissza); RTS, CTS (request to send, clear to send: küldj, küldök), DSR, DTR (data set ready, data terminal ready: adatpuffer üres/tele), DCD (data carrier detect, van telefonvonal), RI (ring indicator: telefon kicseng), GND: jelföld.
ˇ 757i89h csatlakozó 9 pólusu, 25 pólusu (lásd még áramhurok)
ˇ 757i89h műszerhez (Data Communication Equipmenthez: modemhez, printerhez, műszerhez) direkt vezetékek (pl RxD <-> RxD, TxD <--> TxD, GND <-> GND; a kábelen számítógépnél anya, műszernél apa)
ˇ 757i89h másik számítógéphez (Data Terminal Equipmenthez) felcserélt vezetékek (pl RxD <-> TxD, TxD <--> RxD, GND <-> GND; anya-anya kábel)
ˇ 757i89h Handshake: RTS/CTS; handshake vonalak földelhetők.
Adatátvitel protokollja: megadandó a
baud rate (bit/s) szokásosan 9600 baud, 38400 stb, maximum 115200 baud 10kbyte/s.
adatátvitel: 7 vagy 8 bit (klasszikus vagy ékezetes karakterek is)
paritásbit, stopbit
Tipikus bitsorozat (frame):
2. Modern soros vonalak:
ˇ 757i89h RS 423A: 3.6 V; 2 koaxiális kábel (oda és vissza); 300kBaud 30m vezetékhossznál; efelett rohamosan lecsökken.
ˇ 757i89h RS 422A: 2 V; 2 csavart érpár; 2MBaud 60m vezetékhossznál; efelett rohamosan lecsökken.
ˇ 757i89h RS 485: ipari szabvány, csavart érpár, címezhető
ˇ 757i89h Modern soros kommunikációs lehetőségek: Ethernet, USB, Firewire
ˇ 757i89h Protokollok szerepe
3. Áramhurok (current loop, TTY interface)
20 mA (optocsatolt, zavarvédett); 4 vezeték (jel oda, jel vissza, + földek); max 1000 m távolságra használható.
Printerport - szükség esetén DIO (digitális vezérlési) célokra felhasználható
GPIB: General Purpose Interface Bus; HPIB (1965), Hewlett-Packard Interface Bus, IEEE-488, IEC-625
Általános felépítés: vezérlő(k) (controller (számítógép)); + max. 31 műszer; kábelezés (összes hossz < 2 méter*készülékek száma<20 m; 24 pólusu piggyback, Amphenol késes, csillag v. lánc; 25 pólusu tűs csatlakozó, metrikus - amerikai rögzítés) - open collectoros meghajtások (negatív logika, zajvédettség)
Használat:
Vezérlő: manapság rendszerint PC + NI (National Instruments) kártya + pascal, C, Labview, Labwindows software
Konfigurálás: címek beállításával + konfigurálóprogrammal: címek, szimbolikus nevek, adattranszfer adatai (hány bit, hogyan végződjön az adatforgalom (tipikusan CRLF), EOI jelezzen, timeout)
Tesztprogramok: egyedi parancsok kiadhatók pl ibwrt r2; ibrd; ibspoll;
Általában, a küldött adatok lehetnek vezérlőparancsok és mérési adatok (számok). A GPIB kompatibilis műszerekhez tartozik egy, az adott típusra jellemző parancskészlet (stringek) amelyekkel az előlapi kezelőszervek hatását lehet programból elérni. Például, egy adott típusú feszültségmérőnek a GPIB-n keresztül elküldött "R2" ill. "R3" stringek a 2 V-os ill. 20V-os méréshatárba állítják a műszert, a műszer által mutatott feszültség értékét pedig általában egy stringként (tehát digitenként 1 byte-ként) lehet kiolvasni.
A műszerek kezeléséhez tehát mérőprogramokat kell írni (vagy venni); a programozás manapság nem bonyolult: író és olvasó utasítások sorozatát kell megszerkeszteni. Például, az alábbi pascal nyelvű programban a WriteGPIB(fra, 'IP1,1'); WriteGPIB(fra, 'FR10000'); procedurák azt eredményezik, hogy az fra azonosítóju műszer az 'IP1,1' utasítás hatására a hátlapi csatlakozókon az 'FR10000' stringnek megfelelően 10000Hz-es frekvenciáju jelet fog kibocsájtani. Az s:=ReadGPIB(fra) függvény meghívása pedig azt jelenti, hogy az fra azonosítóju műszerből az s a vezérlő számítógép az s stringet kiolvassa (ez több szám együttese, amit persze majd egyedi számokra szét kell bontani). Egyszerűsíti a programozást, hogy az utóbbi időben a készülékgyártók igyekeznek azonos hatásu utasításoknak azonos nevet adni - tehát szabványos parancskészletek alakulnak ki.
Modern grafikus programozási nyelv a LabView, amely tartalmazza a GPIB-vel kompatibilis műszerek meghajtóit (tehát a fenti stringkészleteket). E nyelv különösen alkalmas arra, hogy szemléletes működésű mérőrendszereket hozzunk létre.
Működés:
8 adatvezeték + 8 vezérlővezeték (címbusz nincs, ha ATN, akkor ami megy az adatbuszon, akkor az adat az éppen cím)
A 8 vezérlővezeték 3 handshake és 5 rendszeradminisztrációs vonal.
A vezérlő a címmel azonosított egyes készülékeket beszélőknek illetve hallgatóknak jelöli ki; ezután a beszélő adatot küld a hallgatónak. Az adatátvitel hardware handshake szinkronizálással megy (hiszen különböző sebességű készülékek lehetnek jelen). A handshake vonalak jele DAV (Data Valid), NDAC (Not Data Accepted), és NRFD (Not Ready For Data). Ezek negatív logikájuak, tehát ha DAV logikailag igaz, akkor fizikailag LO állapotban vannak; un. nyitott kollektoros kimenetek, vagyis a vezetéken áram folyik és kis feszültség van. Két vagy több nyitott kollektoros kimenet ÉS kapcsolatot jelent, vagyis a vonal akkor lesz csak HI állapotban, ha mindegyik kimenet HI. Pl. a NRFD vonal akkor lesz HI állapotu (logikailag: az összes készülék kész adatot fogadni, fizikailag HI állapotu) ha minden egyes készülék NRFD kapuja HI állapotu. A handshake a következő időzítés szerint megy:
1. A kijelölt hallgatók felengedik a NRFD vonalat, amikor mindegyik felengedik, akkor az HI állapotba kerül ("mindegyikünk kész az adatfogadásra").
2. A beszélő a jelvezetékekre kiteszi az adatot (bájtot) és lehuzza a DAV vonalat ("van érvényes adatom")
3. A hallgatók beolvassák az adatot, és amelyik kész van, felengedné a NDAC ("megkaptam") és lehuzza a NRFD vonalat ("további adatot most nem tudok fogadni, meg kell emésztenem a mostanit").Ám a NDAC vonal akkor lesz ténylegesen fent, ha már mindegyik hallgató bevette az adatot. Ezt a beszélő felismeri, és a DAV-ot felengedi, az adatot törli a buszról. Ezt érzékelvén a hallgatók is lehuzzák a NDAC vonalat; majd idővel az NRFD vonalat is felengedik.
4. Innentől a következő byte küldése ugyanebben a sorrendben az 1. pontban leirtaktól kezdve történik.
Vegyes lehetőségek:
Egyszerre több vezérlő is lehet jelen, de csak mindig egy lehet aktív, és az egyiknek ún. rendszervezérlőnek kell lennie (ő a főnök). A vezérlés tehát átadható.
Hibalekezelés:
Parallel poll: ATN és EOI hatására az első 8 készülék - egy bizonyos feltételrendszert (parallel poll mask) kielégülése esetén kitehet 1 bitet.
Serial poll: Az a készülék, amelyiknek valamilyen baja van (a status byte 6. bitje 1) az lehuzza ezt a vonalat. Ezzel megszakítást (interruptot) lehet generálni. Ezután egyesével végig kell kérdezni az egyes készülékeket, lekezelni a bajt.
Törlés: IFC - interface clear; (interface reset); DCL - device clear (készülék reset) - vezérlővezetékek; SDC: selective device clear - csak a megcimzett készülékeket reseteli
GET (group enable trigger) parancs
REN - van local, remote és local lockout állás
Parancskészlet: egy adott készüléknek nem kell az összes funkciót teljesíteni tudnia - pl egy GPIB printernek lehet listen only, egy voltmérő talk only (és akkor nem is kell vezérlő), van ami nem érti a GET-et stb.
:
1984