Tartalmi kivonat
A BIOS A BIOS (Basic Input/Output System - alapvető ki-/beviteli rendszer) - mint neve is mutatja - a legelemibb ki-/beviteli funkciókat ellátó szoftver, amely minden PC-ben megtalálható. (Igazából a BIOS-okat nem is szoftvernek, hanem firmware-nek szokták hívni, mert olyan szoros egységet képeznek az alaplap hardverével.) A PC-kben több fajta BIOS is megtalálható. A rendszer BIOS-on kívül az EGA vagy fejlettebb videorendszert tartalmazó gépekben egy video BIOS is található ami a megjelenítő egység vezérlését végzi. A bővítő kártyák is rendelkezhetnek BIOS-okkal, amik speciális egységek vezérlését végzik (pl. LAN adapter - Boot eprom ; SCSI vezérlő - SCSI BIOS, stb.) Ezeken kívül minden rendszer tartalmaz egy billentyűzet-vezérlő BIOS-t (Keyboard Controller BIOS) is a billentyűzet-illesztőben. Bár a PC-kben több BIOS is található, a ROM BIOS szó alatt általában specifikusan a rendszer-BIOS-t (a továbbiakban BIOS) szokás
érteni. A BIOS nem más, mint inicializációs rutinok és primitív eszközmeghajtók gyűjteménye. A BIOS elsődleges feladata - szoftver-megszakításokon keresztül - olyan funkciók nyújtása, melyek segítségével egyszerű műveletek végezhetők el, mint olvasás vagy írás a merevlemezre, a hajlékonylemezes meghajtóra vagy a képernyőre. Ezen rutinok jelentősége absztraktságukban rejlik: olyan eszköz-független szolgáltatásokat bocsátanak az operációs rendszer és a programok rendelkezésére, melyek a rendszerben installált konkrét eszköz típusától függetlenül, minden környezetben egységes módon teszik lehetővé a minden egység által támogatott, de amúgy különböző módon kiváltható funkciók elérését. A gyakorlatban ez azt jelenti, hogy például a video-megjelenítő típusától függetlenül, ugyanazzal a BIOS funkcióhívással lehet egy karaktert kiírni a képernyőre, annak ellenére, hogy például a különböző
adapterek video-memóriája eltérő címeken helyezkedik el, így közvetlen elérésük esetén nem lehetne - ebből a szempontból - egységesen kezelni őket. E technika részint jelentősen csökkenti az alkalmazások méretét - hiszen azokat nem kell felkészíteni az összes ismert, de esetleg eltérő programozású egység kezelésére másrészt lehetőséget biztosít a rendszer, az alkalmazások számára "láthatatlan" bővítésére, átalakítására, esetlegesen emulációk közbeiktatására. Többek között ennek köszönhető, hogy még a legújabb SVGA kártyákon és SCSI illesztésű merevlemezeken is (nagyrészt) hibátlanul futnak a BIOS rutinokat használó olyan alkalmazások is, melyek megalkotásakor még csak hajlékonylemezes meghajtók és Hercules illesztők léteztek. A BIOS rutinok használatának azonban ára van Egyrészt - az absztrakció lényegéből adódóan - elérhetetlenné válnak az egységek specialitásai, másrészt
többek között az előző következményeként - a BIOS szervzirutinok legtöbbje meglehetősen lassú a közvetlen programozással elérhető sebességhez képést. Így minden egyes program esetében egyedi mérlegelés tárgyát kell, hogy képezze a BIOS rutinok vagy a közvetlen programozás alkalmazásának kérdése. Általánosságban elmondható, hogy a nem különösebben sebességkritikus feladatok esetén célszerűbb többek közt a kompatibilitás érdekében - a BIOS szervizrutinokra támaszkodni és csak akkor a hardver közvetlen programozásához folyamodni , ha a BIOS rutinok alkalmazása nem vezet elfogadható sebességhez vagy nem teszi lehetővé az egység által nyújott és az alkalmazás által megkövetelt speciális szolgáltatások elérését. Az újabb alaplapokon a BIOS általában ún. Flash-EPROM-ban van tárolva A FlashEPROM elektornikus úton - meglehetősen gyorsan - törölhető és újraírható memóriaegység Ezen BIOS-ok előnye, hogy
időközben megjelenő újabb változataik a ROM modul fizikai kicserlésése helyett egy egyszerű segédprogram segítségével betölthetők. A RENDSZER INDÍTÁSÁNAK MENETE A számítógép bekapcsolása vagy hidegindítása (RESET) után a processzor a vezérlést a 0FFFF0h fizikai címre adja. A memória ezen területére a ROM-BIOS van betükrözve A ROM-BIOS POST (Power-On Self Test - bekapcsolási önteszt) ezek után a következő műveleteket végzi el: • letiltja a megszakításokat (köztük az NMI-t is, mert a memóriacellák bitjei véletlenszerűen állítódnak be a reset után, és ez azok elérésekor "paritáshibát" okozhat), • teszteli a flageket és a CPU egyéb regisztereit, • ellenőrzi a ROM-BIOS ellenőrzöösszegét (checksum), • engedélyezi a megszakításokat, • inicializálja és teszteli a DMA vezérlőt, • ellenőrzi a memória első 64KB-ját (a megszakítás-vektor táblázat miatt), • inicalizálja és teszteli
a megszakítás-vezérlőt és beállítja a 10h-17h BIOS megszakításokat, • rendszer-konfiguárció (megjelenítő, memória, stb) megállapítása, • inicalizálja és teszteli a CRT-kontrollert, a video-memóriát és a video-BIOS-t, • inicalizálja és teszteli a programozható időzítőt, • inicalizálja, teszteli majd engedélyezi a billentyűzetet, • beállítja a hardver megszakítás-vektorokat, • memória tesztelése (kivéve, ha a CMOS-ban a reset word értéke 1234h), • a C8000h-EFFFFh közti területen ROM-bővítéseket keres és ha talál elindítja azokat, • inicalizálja és teszteli a floppy- és merevlemezes meghajtó(ka)t, ha van(nak), • megkeresi és inicializálja a soros és párhuzamos illesztőket, • engedélyezi az NMI-t, • az első hajlékony- vagy merevlemezes meghajtóról megpróbálja betölteni a bootszektort ill. a partíciós táblát, • ha ez nem sikerül, akkor egy INT 18h-val megpróbáljani
elindítani a ROMBASIC-et. Minden teszt megkezdése előtt a diagnosztikai porta a tesztnek megfelelő kódot ír ki. Ez a kód egy 16-bites (word) szám, melynek felső 8 bitje az egységet azonosítja, míg az alsó nyolc bitje a teszt eredményét tartalmazza (00h - ha a teszt sikeres volt). BŐVÍTŐ ROM-OK A bővítőkártyákon elhelyezhető ROM egységek lehetőségét biztosítanak a BIOS rutinjainak az adott egység igényei szerinti kiegészítésére vagy átalakítására. A bővítő ROM-okat a rendszer-BIOS a POST során keresi meg és inicializálja. A ROM-ok a C0000h-DFFFFFh memória-tartományban helyezkedhetnek el. Minden ROM BIOS egy egységes fejlécet tartalmaz, melynek felépítése a következő: RomHeader Offse t Méret Leírás 00h 2 AA55h (bővítő ROM szignatúra) 02h 1 a ROM blokk hossza 512 bájtos egységekben 03h n BIOS program-kód (0003h az inicializációs kód belépési pontja) A rendszer-BIOS a bővítéseket az AA55h
szignatúra alapján és a megadott hosszúságú kód 8 biten vett összegének (összeg modulo 256) 0-val való összehasonlításával ismeri fel. Ha a POST rutin érvényes fejlécet talál a megadott tartományban, akkor egy távoli ugrással (call far) a belépési pontra adja a vezérlést. A bővítő-BIOS inicalizációs rutinja az egység alaphelyzetbe állítása és a megfelelő megszakításvektorok esetleges átirányítása után visszaadja a vezérlést a POST rutinnak, ami tovább folytatja a bővítések keresését. Tesztjeinkben és Hardver elméleti írásainkban már sok alkatrészt teszteltünk és adtunk az alkatrészekről technikai leírásokat. Egy dologról viszont még nem beszéltünk bővebben, ez a BIOS - pedig nélküle nem is lehetne bekapcsolni a számítógépet. Mostani cikkünkben egy kicsit részletesebben foglalkozunk a BIOS beállításaival. A BIOS beállítása nem mindennapos dolog, de előbb-utóbb szükségünk lesz rá. Jobb, ha ekkor
már tudjuk, miként fogjunk hozzá. A BIOS (Basic Input/Output System) minden mai, komolyabb hardveregységben megtalálható, mint többé-kevésbé állandó alapszintű vezérlőprogram. Vezérli az áramkörök (együtt-)működését, illetve induláskor az alaphelyzetbe állítást és a kommunikáció megkezdését más hardveregységekkel. A DOS idejében a BIOS feladata volt az operációs rendszerrel való kapcsolattartás is, ma már inkább külön meghajtóprogramok végzik a hardverelemek vezérlését. A BIOS programja kis memóriachipben tárolódik. Ennek tartalma akkor is megmarad, ha nem üzemelnek az alkatrészek. Régebben ez ROM (Read-Only Memory - csak olvasható memória) volt, napjainkban inkább flash (egy menetben írható) memóriát használnak, hogy az idő múlásával javítható/frissíthető legyen a tartalma. Az energiaellátásról kikapcsolt állapotban kis telep gondoskodik, amely újabban töltődni is tud az üzemórák alatt. A BIOS-t olykor
összekeverik a CMOSszal – a CMOS valójában a BIOS beállításainak tárolásához használt memóriachip gyártási technológiája. A BIOS beállításai a legtöbb hardveregységen nem változtathatók. Az alaplap azonban egy olyan kitűntetett alkatrész, amelynek bonyolultsága és sokirányú feladatai miatt szükség van a beállíthatóságra. Az alaplapi BIOS-nak még egy feladata van: az operációs rendszert betöltő lemezterület, az úgynevezett boot record programjának kiolvasása és futtatása az operációs rendszert hordozó háttértárolóról. A rendszerindító háttértár kiválasztása csak egy a beállítások közül, melyeket most bemutatunk. A számítógép bekapcsolása után elsőként a videovezérlő BIOS-a jelentkezik be, ez teljesen független a többi alkatrésztől.Kis idő elteltével meglátjuk az alaplapi BIOS kiírásait, ezek elárulják a BIOS gyártóját, típusát, gyártási idejét és verziószámát. Ezt követheti a többi
bővítőkártya - például a SCSI vezérlő - bejelentkezése. Ha nem nyomjuk meg a BIOS beállító-programjába (BIOS Setup) irányító gombot (ez általában a [Del]), akkor megkezdődik az alaplaphoz csatolt alkatrészek inicializálása (alaphelyzetbe állítása), és lefut néhány egyszerű ellenőrzés a POST (Power On Self Test - indításkori önteszt) keretében. BIOS Setup Ha lenyomtuk a belépéshez szükséges gombot, egy menübe jutunk, amely gyártótól függően más-más kinézetű lehet. Általában a billentyűzetet kell használnunk, de például az AMI egyik BIOS-a egérrel kezelhető, ablakos kialakítású. Nézzük, mit rejtenek a menük! (Az itt tárgyalt menüpontok a legelterjedtebb Award BIOS-ból származnak. Más gyártók termékeinél kisebbnagyobb eltérések lehetnek ehhez képest, valamint hiányozhatnak egyes beállítási lehetőségek) A menüpontok beállításai általában számok, vagy egy „kétállású kapcsoló” állapotainak
egyike (például enabled/disabled - engedélyezve/tiltva). A menüpontokat tematikus oldalakra osztva tárja elénk a BIOS beállítóprogramja. Standard CMOS Setup: az alaplaphoz kapcsolt lemezmeghajtók és a rendszeridő beállításai. Ide tartozik továbbá az a kapcsoló, amellyel eldönthetjük, hogy billentyűzet nélkül is bootolhat (elindulhat) a gép vagy sem. Date and Time: itt adható meg a pontos dátum és idő. Hard Disks: Size: az itt szereplő adatokat általában megtaláljuk a merevlemez címkéjén. a lemez mérete. A BIOS számolja ki a következő paraméterek alapján: Cylinders - a cilinderek (az egymás felett levő lemeztányérok vagy -korongok adathordozó sávjainak) száma; Heads - az író/olvasófejek száma; Sectors - a sávonkénti szektorok száma. Write PreComp: a régi merevlemezek az összes sávon (körkörös adattároló gyűrűn) ugyanannyi szektort hordoztak, így azok hossza különböző volt. A beállítás az összeegyeztetéshez
kellett. Ez a mai meghajtóknál automatikus, beállításával fölösleges foglalkozni. az automatikus parkolás (író-/olvasófejek külső, nem használt sávra Landing zone: állítása) funkcióval nem rendelkező meghajtók parkolási helyének meghatározása. Mai meghajtókon nincs jelentősége A merevlemezek beállításánál még mindig találkozhatunk a Table nevű meghajtóadatbázissal, amely nagyjából ötven régebbi. 10-120 Mbyte-os merevlemez beállításait írja le. A sorszámok végigpörgetése után megtaláljuk a User-type és az Auto beállítást Előbbi a kézi paraméterezést, utóbbi a bootolás előtti automatikus felismerést teszi lehetővé. Az automatikus felismerés lassítja a gép indulását, de van egy automatikus felismerést végző menüpont (Auto Detect Hard Disks) a Setupban, ahol az előbbi paramétereket beállítja a BIOS. Floppy Drive A: a kábel végére csatlakoztatott floppymeghajtó kapacitása. Floppy Drive B: a kábel
közepére csatlakoztatott floppymeghajtó kapacitása. Floppy Mode 3 a Japánban használatos floppymeghajtók 1,2 Mbyte-ot tárolnak a Support: 3,5 colos lemezeken. Az ilyen típusú meghajtók használatához kell engedélyezni ezt az opciót. Primary Display: az elsődleges videokártya típusa; ma már mindig VGA. Landing zone: az automatikus parkolás (író-/olvasófejek külső, nem használt sávra állítása) funkcióval nem rendelkező meghajtók parkolási helyének meghatározása. Mai meghajtókon nincs jelentősége Keyboard: a BIOS utasítása a billentyűzet ellenőrzésére. Halt On: milyen hibáknál álljon le a bootolás. BIOS Features Setup: ez a leglátványosabb hatást kiváltó általános beállítások menüje. Virus Waming: figyelje-e a BIOS a merevlemez bootszektorának változását (ami vírustevékenységre utaló jel). Ha engedélyezzük, az ilyen kísérletkor a számítógép le fog állni. Quick Power On engedélyezése egyszerűsíti
és lerövidíti az öntesztet. Self Test: Swap Floppy a floppymeghajtók kábelre való feIfűzésének sorrendje eldönti a Drives: betűjeleket (A:/B:) is. Ezzel a beállítással logikailag meg lehet cserélni őket. Typematic Rate a billentyűzeten lenyomott gomb ismétlésének késleltetése és Programming: ismétlési sebessége. Az operációs rendszerből is beállíthatjuk Above 1 MB a bekapcsolás utáni memóriaellenőrzés kiterjesztése az 1 Mbyte Memory Test: fölötti tartományra. Ugyanez megtörténik az operációs rendszer töltése közben is, tehát itt csak fölösleges időhúzás. Boot Up NumLock Status: a [Num Lock] gomb állapota a gép bekapcsolása után. Floppy Drive a floppymeghajtók ellenőrzése. Idegesítő és fölösleges a lemezek Seek: felpörgetése, érdemes kikapcsolni. Megjegyzendő, hogy néhány régebbi típusú 5,25"-os meghajtó inicializálásához szükséges. Boot Sequence: itt adható meg az operációs
rendszert hordozó lemez. Lehet floppy, CD vagy valamelyik merevlemez. External/Internal az alaplapon/processzorban levő memóriacache (gyorsítótár) Cache Memory: ki/bekapcsolása. A legnagyobb sebességhez engedélyezzük mindkettőt. Fast Gate A20 a HMA (High Memory Area), vagyis az extended (kibővített) Option: memória első 64 Kbyte-jának elérését gyorsítja. Engedélyezzük a nagyobb teljesítmény érdekében. Security Option: eldönthetjük, hogy a beállított jelszót csak a Setuphoz, vagy minden induláskor kérje-e a rendszer. OS/2 Onboard OS/2 operációs rendszert használva engedélyeznünk kell a 64 Memory > 64M: Mbyte fölötti memóriaterület használatához. System BIOS az alaplapi BIOS gyorsítótárazása annak gyorsabb elérése Cacheable: érdekében. Video ROM BIOS a videokártya BIOS-ának, valamint a többi slotban ülő Shadow, C8000- bővítőkártyák BIOS-ainak átmásolása a rendszermemóriába azok CBFFF-től
gyorsabb elérése érdekében. DC000-DCFFFig, esetleg a fölötti területekre is kiterjedő Shadow: Chipset Features Setup: a memória/chipkészlet időzítési beállításai. Figyelem! A memória hibás beállítása váratlan és alattomos rendszerleállást, ezáltal adatvesztést okozhat! Automatic ezt engedélyezve a BIOS biztosan jó paraméterekkel vezérli a Configuration: memóriát akkor is, ha ez nem a leggyorsabb üzemmód. Amennyiben van SPD chip az SD modulon, akkor annak az utasításai érvényesülnek. Slow Refresh: a dinamikus memória frissítési ciklusának ritkítására engedélyezzük ezt a beállítást - ekkor a rendszer sebessége nagyobb, áramfelvétele kisebb lesz. Read/Write a CPU és a memória sebességkülönbsége miatt Wait States: várakozóciklusokat kell beépíteni a memóriát író, illetve olvasó műveletekbe. Minél kevesebb ilyen ciklust állítunk be, annál gyorsabbak lesznek ezek a műveletek. AT Bus Clock
a rendszer alap-órajelének és az ISA/VESA slotokban levő Selection: bővítőkártyák órajelének aránya. Érdemes olyan magas órajelet beállítani, amin még megbízhatóan működnek ezek a kártyák. 8 bit/ 16 bit a 8, illetve 16 bites ISA kártyák várakozóciklusainak száma. Minél I/O Recovery kevesebb ilyen ciklust állítunk be, annál gyorsabbak lesznek ezek Time: a kártyák. Video BIOS engedélyezésekor a videóvezérlő BIOS-át gyorsítótáron keresztül, Cacheable: vagyis gyorsabban kezeli a rendszer. Integrated Perlpherals: az alaplapi vezérlők letiltása/engedélyezése és üzemmódjai. Onboard FDD Controller: a floppyvezérlő engedélyezése/tiltása. Onboard Serial a soros portok engedélyezése/tiltása, illetve logikai címének és Port 1/2: sorszámának beállítása. A COM 1 címe 3F8h, a COM2 címe 2F8h Onboard Parallel a párhuzamos port engedélyezése/tiltása, illetve logikai címének Port: és sorszámainak
beállítása. Az LPT1 címe 378h Parallel Port választhatunk a normál egyirányú, a kétirányú gyors, illetve még Mode: gyorsabb (EPP, illetve ECP) üzemmód között. ECP DMA Select: az ECP beállítású párhuzamos port DMA-t (Direct Memory Access - közvetlen memória-hozzáférés) használ a legnagyobb sebesség eléréséhez, ennek sorszámát kell itt beállítanunk. Alapbeállítása 3, ez általában jó is. UART2 Use ha alaplapunk infravörös portját használni szeretnénk, Infrared: engedélyezzük ezt a funkciót. Ekkor a COM2 már nem fog működni Onboard PCI IDE Enable: az alaplapi IDE vezérlők engedélyezése. IDE1, 2, stb. Ultra az IDE merevlemezek Ultra DMA módjának meghatározása DMA Mode: Érdemes Autora állítani, ekkor a merevlemez a Iehetséges legnagyobb sebességgel fog működni. Megjegyzendő, hogy egyes régebbi típusú winyók hazudnak a PIO és UDMA módjaikat illetően, így auto beállítás mellett gondok lehetnek
velük Power Management Setup: az energiagazdálkodás és a működési felügyelet beállításai. Power a BIOS többféle gyárilag beállított lehetőséget (köztük kézi Management: beállítást is) felkínál. Ezek közül választhatunk itt Video Off After: kiválaszthatjuk, hogy melyik mélységű energiatakarékos funkció bekapcsolásakor sötétüljön el a monitor. Video Off Option: milyen szintű legyen a monitor kikapcsolása. A mai új monitorok ismerik a DPMS szabványt, tehát állítsuk be ezt. Power az energiagazdálkodás vezérlése az APM (Advanced Power Management Management) szabvány szerint. A mai operációs rendszerek ezt Controlled by támogatják, így érdemes onnan beállítani az alább felsorolt APM: jellemzőket. HDD Power azon visszaszámlálók beállítása, melyek nullára futásakor az adott Down - esemény (merevlemez kikapcsolása, órajel különböző mértékű Doze/Standby/Su csökkentése, ventilátorok
kikapcsolása) megtörténik. A spend visszaszámlálás a felhasználói beavatkozások (billentyűnyomások, Mode: egérmozgás stb.) megszűnésével indul PWR Button < 4 mi történjen, ha az ATX előlapi főkapcsolóját 4 másodpercnél Secs: kevesebb ideig tartjuk nyomva: csak standby, vagy teljes kikapcsolás. Power Up On telefonhívásra a modem bekapcsolja-e a gépet. Egyes BIOS-oknál Modem Act: ilyenkor a modem által használt megszakítást is meg kell adni. AC PWR Loss az ATX gép újrainduljon-e vagy maradjon kikapcsolva, ha a Restart: hálózati feszültség megszűnik, majd visszaáll. Automatic Power előre megadott időpontban induljon el a gép. Up: Fan amennyiben Ignore-t választunk, a kritikus értékeket figyelmen speed/ kívül hagyja a BIOS, egyébként kijelzi a ventillátorok Temperature/Volt fordulatszámát, a hőmérsékleteket és a feszültségeket, s ha age: bármelyik átlépi a határértéket, figyelmeztet
(csipogás), csökkenti az órajelet, vagy leállítja a gépet. PNP and PCI Setup: a megszakítások és a közvetlen memória-hozzáférés beállításai. PNP OS amennyiben Windows 9x-et használunk, nagyon fontos, hogy be Installed: legyen kapcsolva, ugyanis ez teszi lehetővé az alábbi paraméterek állítgatását az operációs rendszernek: Slot IRQ: megadhatjuk mindegyik PCI slotnál, hogy a benne ülő kártya milyen megszakítást használjon. Az automatikus beállítás általában jó, ezen csak akkor kell változtatni, ha valamelyik kártya csak egyféle beállítással működik. IRQ/DMA Used ha nem PCI vagy PnP (plug & play) ISA kártya van gépünkben, le By ISA: kell neki foglalnunk a rajta hardveresen beállított IRQ/DMA-t, hogy azt a rendszer ne akarja másnak kiosztani. Load Setup Defaults: az alapbeállítások betöltése a Standard CMOS Setup oldal kivételével. Reménytelenül összekuszált beállítások, vagy a CMOS-beli beállítások
törlődése esetén ez a végső mentsvár. User/Supervisor Password: jelszó a géphez, illetve a BIOS Setuphoz való hozzáféréshez. A jelszókérés üres jelszó megadásával tiltható le Auto Detect Hard Disks: a csatlakoztatott merevlemezek adatainak automatikus beírása. Cikkünk elején már volt róla szó Low Levet Formatting: ma már viszonylag ritka menüpont, a merevlemezek alacsony szintű formázását teszi lehetővé. Ha van ilyen a BIOS-unkban, vigyázzunk vele: az új merevlemezeknél ez a meghajtó belső hibatáblázatának felülírását is jelenti, ami után örökre használhatatlanná válhat az egység! Quit With/Without Saving: kilépés a beállítások elmentésével, illetve anélkül; majd a gép újraindítása. Az új alaplapok egy részénél a Setupból lehet állítani a processzor működési paramétereit is. Ha nem indul a gép a helytelen beállítások miatt, nem kell megijednünk - ekkor az alapbeállításokkal fog elindulni a
következő próbálkozáskor. Vagy sem A BIOS frissítése Az új alaplapokon a BIOS program flash memóriában tárolódik, így bármikor átírható. Ez lehetővé leszi új BIOS beírását, így hibajavítást és új alkatrészek támogatását is. Érdemes időnként megtekinteni az alaplap gyártójának Web-oldalait, hogy nincs-e újabb letölthető BIOS. Ehhez meg kell néznünk BIOS-unknak a gép bekapcsolásakor kiíródó dátumát és verziószámát. A gyártónál általában megtaláljuk az új fejlesztéseket a régiekhez képest, és ez alapján eldönthetjük, szükségünk van-e a frissítésre. Ha úgy döntünk, hogy igen, töltsük le az új programot, az újraírót (AWDFLASH.EXE vagy hasonló), majd készítsünk egy bootolható foppyt (SYS A: vagy FORMAT A: /S). Erre másoljuk rá (természetesen kicsomagolás után) az új BIOS-t tartalmazó fájlt, valamint az íróprogramot, és indítsuk el róla a gépet. Egyes alaplapokon egy jumpert is át kell
állítanunk az írás engedélyezéséhez. A DOS bejelentkezése után indítsuk el az íróprogramot, majd adjuk meg az új BIOS-fájl nevét, valamint az ekkor a floppyra kerülő előző BIOS-t tároló fájl nevét. Ha sikeres volt az írás, indítsuk újra a gépet. Ha nem, akkor az előbb elmentett régi BIOS-t írjuk vissza. Fontos, hogy hibás írás után ne reseteljük a gépet, mert valószínűleg nem fog újraindulni. Az írást addig kell újból megkísérelni, amíg sikeres nem lesz. Ehhez esetleg le kell töltenünk egy másik BIOS-t egy másik számítógéppel. Ha a hibás BIOS miatt nem indul az alaplap, vigyük szervizbe, s mondjuk el mi történt. Ha ismerősünknek hasonló gépe van, akkor kérjük el a BIOS-memóriát, indítsuk el vele a gépünket, majd üzem közben (!) kicserélve a két IC-t, kíséreljük meg újra az írást. Remélhetőleg ekkor már sikeresen fejeződik be a művelet. Intelligens memóriák A 100 MHz-es alapórajelű rendszerek
Achilles-sarka a memória-alrendszer. Ahhoz, hogy számítógépünk megbízhatóan működjön, olyan memóriamodulokat kell használnunk, amelyek képesek ezen a frekvencián is adatot szolgáltatni. Ehhez azonban nem elég, ha 10 ns feliratú memória-áramkörök vannak a modulon. A 100 MHz-es modulok terén ugyan kezd valamiféle rend kialakulni, de hogy az általunk használt modul megbízhatóan működik-e, csak kipróbálás után lehet eldönteni. Ebben az esetben a kipróbálás azt jelenti, hogy hosszú időn keresztül használjuk számítógépünket az új modullal, és lehetőleg intenzív memóriahasználatot igénylő alkalmazásokat futtatunk. Még az ilyen alapos tesztelésnél is számolnunk kell azonban azzal, hogy a melegedésből, időzítési problémákból eredő hibákat sok esetben csak hetek, hónapok múltával vehetjük észre. A 100 MHz-et is támogató rendszerekben használatos modulok kizárólag SPD áramkörrel felszerelve készülnek. Az
SPD (Serfal Presence Detect) egység egy 8 kivezetéses EEPROM chip, amely a DIMM modul méretét, sebességét, feszültségi adatait, illetve a sor- és oszlopcímeket, valamint a memóriachipés a modulgyártó adatait tárolja. Az egyéb kiegészítő adatokkal együtt összesen több mint 40 paraméter található meg az SPD-ben. Amikor a POST során a BIOS beolvassa ezeket a paramétereket, automatikusan beállítja a BIOS Setup Chipset Features Setup oldalán található értékeket a legnagyobb biztonság és teljesítmény elérése érdekében. Az SPD-ben lévő adatok ismerete nélkül a BIOS és a gép használója is csak megközelítőleg tudja beállítani a memória paramétereit, aminek következtében kisebb lesz a teljesítmény és nagyobbak a hibalehetőségek. Az SPD használata a régebbi EDO-RAM-nál nem volt ennyire fontos, ugyanis a memória a kisebb sebesség miatt kevésbé volt érzékeny a beállításokra. Az SDRAM-ok azonban legalább kétszer olyan
gyorsan működnek, mint az EDORAM-ok, ezért kevésbé hibatűrőek. Az alternatív alaplapi vezérlő áramkörök mellett természetesen az Intet chipkészletei is támogatják az SPD használatát - de a BX chipkészletű alaplapokhoz szinte kötelező SPD-s memóriát használni (bár nem követelmény a 440BX chipset részérôl, csak "ajánlott"). A VALÓS IDEJŰ ÓRA ÉS A CMOS Az eredeti PC-kben nem volt a gép kikapcsolt állapotában is működő valós idejű óra (RTC - Real Time Clock), így ahhoz, hogy a pontos időt és dátumot mutassa, a felhasználónak a gép minden egyes bekapcsolásakor meg kellett adnia azt. (E miatt kérdezi meg a DOS máig is a pontos időt és dátumot, ha nincs CONFIG.SYS és AUTOEXEC.BAT fájlunk) A gép ezután a programozható időzító áramkör (8253) segítségével már "fenn tudta tartani" a pontos időt - kikapcsolásáig. Bár már az XT-khez is fejlesztettek ki ezt a problémát áthidaló
bővítőkártyákat, a valós idejű óra csak az AT kategóriájú gépekben jelent meg standard kiegészítő áramkörként. Az idő tárolásához egy kis kapacitású, CMOS technológiával készült - és ennek megfelelően kis teljesítményfelvételű - akkumlátorral vagy elemmel táplál RAM memóriát alkalmaznak, amely így a gép kikapcsolt állapotában is működőképes marad. Ugyanez az áramforrás táplálja a memóriaegységgel egybeépíttet órajelgenerátort is, amely az idő számlálásáról gondoskodik. Az óraáramkör az aktuális dátum és idő karbantartásán kívül egy tetszőleges "ébresztési" időpont bekövetkeztekor, az időadatok frissítésekor, valamint periodikusan is képes megszakítás generálására a 8. szinten (IRQ8). Az egység alapértelmezett órajele 32768 Hz, ami azonban a frekvencialeosztás állításával változtatható A CMOS memóriaegységek mérete 64 ill. 128 bájt lehet Mivel azonban az óraáramkör ebből
csak az első 14 bájtot használja, a fennmaradó cellákat a számítógép konfigurációs adatainak tárolására alkalmazzák, ezáltal kiváltva a PC-k és XT-k esetén alkalmazott, kissé nehézkes DIP-kapcsolós megoldást. A CMOS memória-egység írása és olvasása a megcímezni kívánt memóriacella sorszámának a 70h portra írása után a 71h porton keresztül lehetséges. Cím Típus Jelentés 70h Csak írható CMOS memória címregisztere 7 : a NMI tiltása 6-0 : elérni kívánt CMOS memóriacella sorszáma 71 Írható, a CMOS memória kiválasztott rekesze olvasható Minden a 70h portra történő írás után - így az NMI tiltásakor/engedélyezésekor is - a 71h porton keresztül is el kell végezni egy adatmozgató műveletet, különben a RTC definiálatlan állapotban maradhat. A RAM memória méretének 128 bájtos felső határát a 70h port kiosztása határozza meg, hiszen legfelső bitje az NMI tiltására használható fel. Bizonyos PS/2
modellek 2048 bájtos CMOS memóriával is rendelkezhetnek, azonban ezek a memóriacellák nem ezen a csatornán keresztül érhetők el Amennyiben a CMOS memória csak 64 bájt úgy a felső 64 cella megcímzése esetén is az első 64 cellát érthetjük el. A CMOS memória tartalma három csoportra bontható: a RTC által használt cellák, a szabványos konfigurációs területek és a (BIOS)-gyártó-specifikus konfigurációs adatok. A valós idejű óra adatait minden rendszer ugyanúgy használja fel és értelmezi. A szabványos konfigurációs adatok értelmezése gyakorlatilag szinte minden BIOS típus esetében megegyezik, csak az eredetileg nem definiált bitek értelmezésében ill. a merevlemez-típuskódók értelmezésében adódhatnak eltérések. A BIOS-specifikus konfigurációs adatok értelmezése mindig magától a renszer-BIOS-tól feldolgozására csak a beépített BIOS típusának ismeretében van lehetőség. Az RTC a CMOS memória 00h-0Dh
sorszámú celláit használja fel. Cím Típus Felhasználás 00h Írható, valós idő - másodperc olvasható 01h Írható, időzítés - másodperc olvasható 02h Írható, valós idő - percek olvasható 03h Írható, időzítés - perc olvasható 04h Írható, valós idő - óra olvasható 05h Írható, időzítés - óra olvasható 06h Írható, dátum - a hét napja (1-vasárnap,2-hétfő, .) olvasható 07h Írható, dátum - nap olvasható 08h Írható, dátum - hónap olvasható 09h Írható, dátum - év-1900 olvasható 0Ah Írható, Státus-regiszter A olvasható 7 : számlálók frissítése folyamatban (csak olvasható) 64 : órajel-frekvencia-leosztás ( 010 32768 Hz) függ, 3- : periódikus megszakítása ráta 0 000 nincs 0 001 122 ms (minimum) 1 011 976.562 ms 0 111 500 ms 1 0Bh Írható, Státus-regiszter B olvasható 7 : ciklikus frissítés engedélyezése 6 : periódikus megszakítás engedélyezése 5 :
időzítés-megszakítás engedélyezése 4 : frissítési megszakítás engedélyezése 3 : négyszögjel-kimenet engedélyezése 2 : mód ( 0 - BCD, 1 - bináris) 1 : 24/12 órás üzemmód ( 0 - 12, 1 - 24) 0 : nyári időszámításra átállás engedélyezése 0Ch Csak Státus-regiszter C olvasható 7 : megszakítás-jelző flag (1 ha 6-4 bitek közül bármelyik és a neki megfelelő engedélyezési bit 1) 6 : periódikus megszakítás történt 5 : időzítés-megszakítás történt 4 : frissítési megszakítás történt 3- : fenntartva 0 2 : mód ( 0 - BCD, 1 - bináris) 1 : 24/12 órás üzemmód ( 0 - 12, 1 - 24) 0 : nyári időszámításra átállás engedélyezése 0Dh Csak Státus-regiszter D olvasható 7 : 1 - elem/akku rendben, 0 - lemerült vagy hiányzik 6- : fenntartva (0) 0 Az A státusz-regiszter a frissítési frekvencia valamint az esetleges periódikus megszakítás ütemének meghatározására alkalmas. Az adatok
frissítésének ideje alatt a regiszter legfelső bitje 1. A pontos idő és dátum kiolvasása előtt ezért érdemes egy, a bit 0-ra állapotára várakozó ciklust beiktatni, mert az időadatok frissítése alatt a tárolóregiszterek értéke definiálatlan (általában 255). A B státusz-regiszter megfelelő bitjei határozzák meg, hogy mely események bekövetkezése esetén generáljon az áramkör megszakítást. Figyelem! Mivel általában az IRQ8 megszakítás indiítás után maszkolásra kerül, ezért a második megszakításvezérlő megfelelő bitjének törlésével (A0h port 0. bit) engedélyezni kell a megszakítások befutását is. Több engedélyezett megszakítás-típus esetén a megszakítás-kezelő rutin a C státusz-regiszter vizsgálatával döntheti el a generálás okát. Az időzítés-megszakítás - ha engedélyezve van - mindhárom regiszterpár egyezése esetén generálódik. Ugyancsak a B státusz-regiszter segítségével határozható meg,
hogy az áramkör BCD vagy bináris ábrázolási módban tárolja -e a valós időt és dátumot. 12 órás módban a valós idő és az időzítés órájának legfelső (7.) bitje határozza meg, hogy az időpont délelőtti (0) vagy délutáni (1).Amennyiben a nyári időszámításra történő átállás (Daylight Savings) engedélyezve van, úgy automatikusan minden évben április utolsó szombatján 02 órakor nyári, október utolsó szombatján 02 órakor pedig téli időszámításra tér át. Az idő ill. dátum állítása esetén az átírás idejére érdemes a B státusz-regsizter 7 bitjének maszkolásával a frissítést tiltani, hiszen nem tudjuk az adatokat egyetlen utasítással beírni és így esetleg könnyen "átfordulhatnak" a percek esetleg órák a frissítés alatt. Amennyiben a CMOS memóriánk gyakran "felejt", úgy a D státusz-regiszter vizsgálata segítségével dönthetjük el, hogy a hibát az akkumlátor alacsony
feszültség-szintje vagy esetleg valami más hiba okozza -e. (A gép bekapcsolt állapotában természetesen lemerült akkumlátor esetén sem felejt a CMOS, hiszen ez idő alatt az alaplapon keresztül kerül táplálásra.) A FLASH MEMÓRIA Flash avagy a gyakran használt szó, amiről szinte semmit nem tudunk A számítástechnikában is egyre gyakrabban használatos kifejezés a Flash, de ezt a szót is egy kis homály fedi. Ebben a hónapban annak jártam utána, hogy pontosabban mit is takar ez a technológia. Mivel a számítástechnikában már ismerős az Intel cég, ezért az általuk gyártott Flash termékén mutatom be ezeket az eszközöket. Bevezetés Az Intel StrataFlash memória technológiája jelentősen megnöveli a területenkénti bitek számát, ezért jelentősen csökken az ár per megabyte hányados. Az Intel StrataFlash technológiát megelőzte az Intel által kifejlesztett ETOX™ flash memória. Az Intel NOR-bázisú, sokszintű cella
technológiája gondoskodik a közvetlen memóriacella elérésről, amely lényege, hogy gondoskodik a pontos töltés érzékeléséről, a töltési szint ellenőrzéséről és a tárhármas kulcs megjelenéséről a StrataFlash technológiában. Ez a direkt memóriacella elérés eredményezi a megbízhatóságot ebben a robusztus technológiában. A flash memóriák egyesítik EPROM-típusú programozási és az EEPROM-hoz hasonló törlési technikát. A nagy memóriatömbben kisebb törlési blokkok vannak, amelyekben összekapcsolódik a chipben lévő program és törlési algoritmus, ehhez még hozzáadódik a már hatékony és megbízható flash memória technológia. Ez a funkcionalitás kombinálódik az Intel évek alatt felhalmozott gyártási tapasztalatával. A tipikus flash memóriacella (Standard ETOX™ Technology Cells) egy cellában egy bitnyi adatot tárol. Mindegyik cellát jellemzi egy adott feszültségszint Elektromos töltést minden cellánál egy
lebegőpontos kapu tárol. Mindegyik cellán vagy tranzisztoron belül kétféle feszültségszint létezik.(1 ábra) Intel StrataFlash™ Memory Technology Az Intel StrataFlash memóriája sokszintű cella (MLC) technológiával dolgozik, amely engedélyezi a több bit per memóriacellát. Az Intel MLC technológiában egy adott feszültségszinthez egy előre meghatározott bitmintát feleltetnek meg. Ez a technológia effektív csökkenti a cella méretét. Ez jelentősen csökkenti az ár per megabyte hányadost. Egy Intel StrataFlash memória cella képes tárolni kétbitnyi adatot (1 B ábra) A NOR-bázisú MLC technológiával könnyen megvalósítható a három bit per cellatárolás is, ezzel még jelentősebben csökken a memória mérete (1. C ábra) A cellán belül a feszültség eloszlik két szintre. 1. ábra Cella struktúra A lebegő poly-szilikon kapu (poly-1) gondoskodik a töltéstároló mechanizmusról és használja az ETOX flash és EPROM
technológiákat. Az Intel ultra-tiszta higany-oxid technológia miatt a meghibásodási esély is jóval alacsonyabb. A cellakonstrukció magában foglalja a poly-2 vezérelt kaput, ami közvetlenül a lebegő kapu felett helyezkedik el. Az inter-poly ONO dielektrikum elkülöníti a lebegő kaput a kontroll kaputól. A lebegő kapu hozzájárul a forrás/nyelő leválasztáshoz A dielektrikum réteg elszigeteli a metal-1-et a vezérlőkaputól. Metal-1 hordozó bitsoros adatátvitelt biztosít az érzékelő erősítő és útvonal feszültség között a cella irányába. Metal-2 öv pedig a szóvonallal csökkenti az ellenállást A két fémtechnológia csökkenti a hozzáférési időt, mert több tömböt is össze tud fogni. Az olvasás-hozzáférés ütemezés is fejlődött. 2. ábra Cellaműveletek Az Intel StrataFlash memóriánál fontos a pontos, precíz cellafeltöltés. Az Intel StrataFlash memóriavezérlőnek, muszáj a precíz cellafeltöltésről, a
precíz feszültségérzékelésről és a töltés megőrzéséről gondoskodni. Ez a követelmény találkozik a NOR architekturával. Direkt kapcsolatban van a kapu, forrás és a nyelő mindegyik memóriacellával. A program A programozás alatt megfelelő töltésnek kell lennie a lebegő kapunál. Analóg feszültség kerül mindegyik cellára és ez szétoszlik a többszörös Vt szintek között. Ezt a fajta töltésbefecskendezést Channel Hot-Electron-nak (CHE) is nevezik. A programozás alatt minden cellában a direkt föld, bitvonal és szóvonal csatlakozások engedélyezik a pontos töltés elhelyezést. A cellák ellenőrző kapuja kapcsolatban van a belül előállított feszültséggel, és közvetlenül irányítja a szóvonali csatlakozást és a sordekódolást. A nyelő impulzust rak a konstans feszültségbe, és ezzel jön létre a bitvonali csatlakozás és az oszlopdekódolás. A forrás pedig azonnal csatlakozik a földhöz. A feszültség és a kontroll
kapuban lévő kapacitás összekapcsolódik a lebegő kapuban lévővel és ezáltal a dielektrikum megváltozik. Ez összekapcsolódik a lebegő kapunak a programozott feszültség előfeszítésével, amelyik inverzbe állítja a p-típusú csatorna alját. A csatorna invertáció után (most már megfelelő a karakterisztika az n-típusú anyagban), az átmeneti szintű feszültség a nyelőbe kerül. Ez okozza, hogy a nyelő magához vonzza az elektront, de a többségi töltést vivő jel pedig az n-típusú részbe, azaz a forrásba kerül. A programozás végrehajtása alatt gyorsított elektronok kerülnek a csatornára, ahol végül elegendő energiájuk lesz legyőzni a lehetséges akadályokat és beépülnie az oxidba. Minthogy a nyelő feszültség megnő, ez növeli a csatorna elektromos sodrását, amely megnöveli a kinetikus energiát. 3. ábra Elektront tárolódik a lebegő kapuban, a töltésnek muszáj legyőznie a vezérlő kaput. Ez a potenciál
eredményezi a magas bekapcsolási küszöbfeszültséget (Vt) a tranzisztorban (memóriacellában). Irányított és pontos kapu és nyelő irányítású elhelyezés található meg ezekben az eszközökben. Az Intel StrataFlash memória technológiában a feszültség eloszlik a cellák között. A 4 ábrán az eloszlás mellett a feszültségszintek és a hivatkozási pontok (P1,P2,P3) is megtalálhatóak a két bit per cella technológia esetén. A programozási adat, megadott memóriacímek átmeneti megadása a következő lehet: 11 : törölt 10,01,00 : programozói szint. 4. ábra Ez a feszültségszint meghatározott a küszöbfeszültség a cellaolvasás folyamata: Vt< Vt(R1) nullás szint, Vt(R1)< Vt< Vt(R2) egyes szint, Vt(R2)< Vt< Vt(R3) kettes szint, Vt> Vt(R3) harmadik szint. Intel StrataFlash memória programozói algoritmus megvalósított a chip-ben, aminek a neve író állapot gép (WSM). Amikor a programozás véget ért a WSM frissíti a
státuszbitet (STS) és az eszköz belső státusz regisztereit. Kiegészítő állapot bitek részleges siker/hiba információkat és a valószínűsített hibákat jelzik, ha előfordulnak. 5 ábra a programozói algoritmust mutatja. 5. ábra Olvasás Adatolvasás közben a töltésérzékelés nagyon fontos. Az olvasási sebesség összehasonlítható az egy bit per cella technológiával. Az adatolvasás műveleténél a négyszintű memória csökkenti az olvasási feszültség mértékét és növeli az olvasás sebességét. A referencia cellák előfeszítései arányosak a kiolvasandó cella Vt-jével. Az olvasási feszültség az ellenőrző kapuba kerül, a forrás a földre és a nyelőnél előfeszítést alkalmaznak. Törlés A törlési folyamatnál a nagy elektromos téren keresztül az oxid rétegből kiszakad az elektron. Minden memóriacella a 0 szintet kapja, azaz 11 értéket vesz fel A törlés folyamán a pozitív feszültség lesz az adatút az összes
forrás csatlakozásán. Az ellenőrző kapu kapcsolódik a negatív feszültségre, a nyelő pedig törli a töltést. (6. ábra) 6. ábra BUSZOK, BUSZRENDSZEREK IDE SZABVÁNYOK Valamikor a 80-as évek elején, talán 1981-ben született meg egy masina, melynek nevét az utókor soha nem fogja elfeledni: IBM PC. Már ebben az őskövületben is találhattunk kis fekete csatlakozókat, melyek az ún. ISA buszok máig is fennmaradt példányainak első képviselői voltak. Mit is jelent maga a busz, mint fogalom? Nem más, mint egy összeköttetés a központi egység (CPU) és a perifériák között. Az első ISA buszok mai mércével mérve nevetséges, alig pár száz KB/s-os adatátvitelt bonyolítottak. Később kialakult a mai ISA buszok végleges, standard formája, a 16 bites ISA busz. Ez a maga 8 MHz-es frekvenciájával a gyakorlatban közel 5 MB/s-os csúcssebességre képes (az elméleti maximum 8 MB/s, ez azonban a fellépő késleltetések miatt nem érhető
el). Ez a 80-as évek közepén még bőven megfelelt minden eszköznek, azonban az idő múlásával szükségessé vált egy jóval nagyobb sebességű buszrendszer kifejlesztése. 1991-ben kezdődött a PCI specifikáció gyakorlati megvalósításának kidolgozása az Intel laboratóriumaiban. Természetesen a vezető hardvergyártó cégek képviselőinek bevonásával folytak a fejlesztések, melynek gyakorlati eredményét (a PCI ipari szabványt) alig 4 év leforgása alatt közel 170 cég licenszelte. Így vált a legnépszerűbb PC-s buszrendszerré a PCI. A PCI erényei Az ISA 8 MHz-es órajelét 33 MHz-re emelve, a sávszélességet pedig 32 bitre növelve a PCI maximális átviteli sebessége közel 132 MB/s lett. Ez a 3D grafikus kártyákat leszámítva minden korszerű perifériát ki tud szolgálni. Ha azonban ez a közeli jövőben mégis szűkössé válna, bármikor bevezetésre kerülhet a dupla PCI, a PCI busz 66 MHz-es, 64 bites változata, mely elméletben
264 MB/s-os csúcssebességre képes. A PCI másik előnye, hogy nem a jól bevált ISA buszrendszer leváltására tervezték, hanem annak kiegészítésére, patchelésére. Így a PCI minden további nélkül alkalmazható bármely régebbi rendszerrel együtt. Külön chipkészlet, az ún PCI bridge felelős a CPU és a PCI perifériák közötti forgalom bonyolításáért. Speciális pufferrel rendelkezik, melynek segítségével a CPU a transzfer befejezése előtt már más feladattal foglalkozhat: a puffer és a perifériák közötti tényleges adatátvitelt a CPU helyett a PCI bridge vezérli! Erről az ötletes megoldásról nevezik a PCI-t lokális busz-nak, bár valójában csak egy átmenet a valódi lokális busz (CPU+cache+memória) és a periféria buszok (pl. ISA busz) között Továbbá a PCI buszon megvalósítható az ún. bus mastering is, mely az intelligens perifériák működésének támogatását jelenti. Bus mastering tulajdonsággal rendelkező
perifériák képesek a PCI buszon keresztül egymással kommunikálni: működést összehangolni, információt cserélni, akár nagy mennyiségű adatot is mozgatni. S ami a lényeg: mindezt a CPU teljes kikerülésével! Jogos lehet azonban a kérdés: ebbe az adatforgalomba hogyan tud a CPU beleszólni ? Miképpen tud az egymás közötti kommunikációba a külsős CPU is bekapcsolódni? Nos, erre a problémára a PCI concurrency technika jelent megoldást, melynek alkalmazásával a PCI bridge képes a CPU-periféria és a bus mastering perifériaperiféria adatforgalmat egymástól függetlenül bonyolítani. E sok misztikus fogalom után talán nem haszontalan egy példát felhozni :) Milyen perifériák használnak bus mastering-et? Az egyik legegyszerűbb, könnyen vázolható példa a korszerű PCI TV tuner kártyák kép megjelenítése. Az általam is használt miroVIDEO PCTV az antennáról fogott (vagy egyéb bemeneti portról kapott) analóg jelet a kártyára
integrált BrookTree/848 chippel digitalizálja, és másodpercenként 25 képkockát küld át egyenesen a videokártyához (természetesen a CPU teljes kikerülésével, a helyi PCI buszon át). A megjelenítés módjától függően az adatok mehetnek egyből a videomemóriába, vagy további feldolgozás céljából előbb a videochiphez is. Gyors fejszámolás: egy PAL formátumú jel (768 x 576 pixel, 32 bit színmélység, 25 frame/s) folyamatos bus mastering átvitele konstans 44 MB/s-ot használ a PCI 132 MB/s-os sávszélességéből. Tehát még bőven marad a többi perifériának :) Buszrendszerek összehasonlítása ISA ISA EISA VESA PCI Sávszélesség 8 bit 16 bit 32 bit 32 bit 32 bit Buszsebesség 5.33 MHz 833 MHz 8.33 MHz 33 MHz 33 MHz Max. átviteli sebesség 5.33 MB/s 833 MB/s 33 MB/s 132 MB/s 132 MB/s Nincs Nincs Van Van Van Adat / cím paritás Nincs Nincs Nincs Nincs Van Kártya ID (automatikus konfiguráció) Nincs Nincs Van
Van Van Bus mastering támogatás A 90-es évek elején kifejlesztett PCI busz akkor még rendkívül nagynak vélt sávszélessége a real-time 3D alkalmazások térhódításával kezdett szűkössé válni. Az elméletben 132 MB/s-os csúcssebességre képes 32 bites, 33 MHz-es PCI valójában még burst módban sem tud 110 MB/s-os gyakorlati sebesség fölé kapaszkodni. Ez egy átlagos 128 bites, 100 MHzes lokális busszal szerelt videokártya belső átviteli sebességének (max 16 GB/s) csak töredéke. Könnyen belátható tehát, hogy a képadatok (főleg textúrák) rendszermemóriából a videokártyához való eljuttatása a PCI buszon csak alacsony felbontásban oldható meg. Hogyan tovább? A kép bonyolultságának és a felbontásnak növelésével az adatokat a videokártya memóriájában kell tárolni, ha elfogadható sebességet akarunk elérni. Ez bizonyos határokon belül működik csak, hiszen pl. 1280x1024-es felbontásban, 32 bites színmélységű (32
bit Zbuffer, Double Frame Buffer) képfolyam folyamatos renderelése 15 MB videomemóriát igényel! Így egy manapság átlagosnak tekinthető 16 MB-os videokártya esetén mindössze 1 MB videomemória marad a textúráknak. Ezen aztán lehet segíteni az S3 Savage3D-ben debütált textúratömörítéssel, mely nem csak a textúramemória, hanem a sávszélesség szűkösségére is gyógyír lehet. Ez a technológia azonban ront a textúrák minőségén, és sajnos egyelőre gyakorlatilag nulla a támogatottsága. További gyorsító megoldás lehet az ún. bus mastering megoldás használata Bus mastering tulajdonsággal rendelkező perifériák képesek a PCI buszon keresztül egymással kommunikálni: működést összehangolni, információt cserélni, akár nagy mennyiségű adatot is mozgatni. S ami a lényeg: mindezt a CPU teljes kikerülésével Ez a 3D gyorsító kártyáknál remekül alkalmazható a textúrák vagy egyéb képadatok mozgatására a
rendszermemóriából a videokártya lokális memóriájába. Közben természetesen a CPU már az elkövetkező képek adataival foglalkozhat, hiszen a bus mastering csak a PCI buszt terheli, a CPU-t nem. A feldolgozás tovább gyorsítható, ha a geometriát és a kép előállításához szükséges adatokat a processzor előre kiszámolja, és valamilyen feladatleíró nyelvvel szekvenciális utasítások sorozataként tárolja a memória meghatározott részén. Ez nagy segítség lehet bus mastering-et támogató rendszerben, hiszen így a kép-információkat teljes egészében a CPU kihagyásával lehet a videokártyához szállítani. AGP Az imént vázolt megoldások azonban egytől-egyig csak átmenetileg jelentenek gyógyírt a sávszélesség problémára. Végső megoldásként 1996-ban jelentették be az AGP-t (Accelerated Graphics Port). Az új szabvány a már létező 66 MHz-es PCI 21 specifikációra épül, azt egészíti ki néhány optimalizációt célzó
újítással. Az AGP szoftverszinten megegyezik a PCI-jal, tehát lefelé kompatibilis vele, azonban minden más tekintetben eltér tőle. A PCI eszközök egy lokális buszon helyezkednek el, s ez a busz az alaplapi chipkészletre csatlakozik. Az AGP teljesen független a PCI busztól, egyetlen portjával közvetlenül a chipkészlettel kommunikál (point-to-point kapcsolat). Sem logikailag, sem fizikailag nem egyeztethető össze a PCI specifikációval, ám mégis kompatibilis azzal. Az első AGP-s videokártyák (pl. Matrox Millennium II AGP) minden tekintetben megfeleltek az AGP leírásnak, azonban csak PCI tranzakciókat bonyolítottak, semmilyen AGP specifikus műveletre nem voltak képesek. Jogos lehet a kérdés: minek akkor az AGP? Nos, elsősorban marketing fogás, hiszen egy hiper-szuper újdonságokat felvonultató termék jóval könnyebben eladható, mint egy bevált technológiával felvértezett - amiből kismillió van már a piacon. Nem szabad azonban azt hinni,
hogy semmi értelme az ilyen AGP-s videokártyáknak. Először is, az AGP független a PCI busztól, így a videokártya AGP-n keresztüli adatforgalma felszabadítja a PCI buszt. Kérdés, hogy ez mennyire számít, hiszen lehet, hogy a busz eleve nem volt terhelve :) Másodsorban, az AGP kétszer akkora órajelen működik, és a tranzakciók lebonyolítása is hatékonyabb, mint a PCI buszon. Sebesség A PCI busz burst módban 4 db 32 bites adatot képes átvinni 5 órajelciklus alatt (1 ciklus szükséges a címzéshez). Így a PCI effektív sebessége 33 MHz-en 110 MB/s Az AGP eleve duplaakkora órajelen működik, ráádásul az ún sideband addressing-nek köszönhetően egy 32 bites adat átvitele pontosan 1 órajelciklus alatt megy végbe. Ugyanis az AGP speciális címbusszal rendelkezik, ezen keresztül már jóval az adatok mozgatása előtt megtörténik a címek átvitele. Így végül az AGP effektív sebessége 32 bit x 66 MHz = 264 MB/s Ha azonban
utánaszámolunk, ezt az első ránézésre tekintélyes sávszélességet nem is olyan nehéz kihasználni. Vegyünk egy egyszerű példát: 3D lövöldözős játék, nagy teremben állunk, és forgunk körbe-körbe. Egy nagyon jó képminőségű játékhoz elengedhetetlen a legalább 512 x 512 pixeles textúrák és az 1280x1024-es, 32 bites színmélységű felbontás használata, természetesen min. 30 FPS (30 képkocka/s) képfrissítéssel Ha a geometria adatoknak lefoglalunk 4 MB-ot másodpercenként, akkor 260 / 30 = 8.66 MB/s marad a textúráknak. Ez 512 x 512-es textúrákból mindössze 8 db-ra elegendő! (512 x 512 x 32 bit = 1 MB) Más kérdés, hogy általában nem szokott minden képkockában cserélődni az összes textúra - de mi vegyük csak a legrosszabb eshetőséget :) Szükség van tehát egy nagyobb sebességre, amit jelenleg az AGP 2x szabvány képvisel. Egy órajelciklus alatt 2 adatot képes mozgatni az új AGP port, mely minden más tekintetben
megegyezik az eredeti AGP-vel. Az effektív sebesség ezzel a duplájára, 528 MB/s-ra nőtt A jelenleg kapható második generációs 3D gyorsítók AGP változatai egytől-egyig támogatják az AGP 2x szabványt. A sávszélesség éhség növekedése elvezetett a manapság teret hódító AGP 4x szabvány bevezetéséhez. Ez az AGP 2x-szel megegyező megoldás, azonban az eddigi adat- és címbuszt megduplázták, így effektíve 133 MHz-es sebesség érhető el. Elgondolkodtató, hogy az AGP 4x-et támogató alaplapokon a PC100-as memória és a chipkészlet közötti sávszélesség kisebb, mint a videokártyáé (AGP 4x: 1 GB/s, PC100: 800 MB/s). Újdonságok Az eddigiekben felvázolt technikák lehetővé teszik a sávszélesség növelését, azonban a gyakorlatban nem jelentenek igazi megoldást a videokártyák textúra éhségének kielégítésére. Lássuk tehát, mit is tud valójában az AGP! A PCI bus mastering lehetősége remekül alkalmazható kis mennyiségű
adatok mozgatásánál, azonban nagyméretű textúrák átvitelénél nincs értelme minden egyes textúránál újra felprogramozni az alaplapi chipkészletet. Nem erre találták ki a bus mastering-et, ez tény. Emellett, a videokártya számára sem túl könnyű állandóan a chipkészlethez fordulni, ha újabb textúrára van szüksége, és ráadásul tudnia is kell, hogy a fizikai memóriában éppen hol helyezkedik el a kívánt adat. Ráadásul teljesen fölöslegesen töltögeti át a saját memóriájába a textúrákat. Ez úgy, ahogy van, alkalmatlan a feladatra Az igazi megoldást már jóval előbb kidolgozták, bár nem PC-re, hanem nagyteljesítményű grafikai munkaállomásokra (pl. Silicon Graphics) Minden címzési nehézséget el lehet kerülni, ha a videokártya memóriáját kiterjesztjük a rendszermemória meghatározott részére. Ezt természetesen az alkalmazások számára el kell rejteni, mindent az AGP vezérlőre és a videokártyára kell bízni.
A rendszermemóriában lefoglalt címterületet hívja a szakma AGP aperture-nek. Ez a címterület a rendszermemóriában a videokártya Linear Frame Buffer-ének (videomemória leképezése a virtuális memóriába) területe alatt helyezkedik el. A címterület nagyságát a BIOS setup-ban beállítható AGP Aperture Size határozza meg, de a méretről meg lehet győződni Win98 alatt is, a Vezérlőpult / Rendszer / Eszközkezelő / Rendszereszközök-ben rákeresve az alaplapi AGP vezérlőre. Az AGP vezérlő által lefoglalt címtartomány nagysága pontosan az AGP aperture méretét adja. Az AGP aperture-ben elhelyezkedő adatok kiterjesztett videomemóriába való elhelyezését a GART (Graphics Aperture Remapping Table) írja le. A Minden egyes AGP aperture hivatkozást a GART segítségével lehet átkonvertálni fizikai rendszermemória címmé. A GART az alaplapi chipkészletben helyezkedik el, és az operációs rendszer programozza fel (emiatt van szükség Windows
alatt az AGP driverekre). A GART szerkezete a flexibilitás érdekében fizikailag nem meghatározott, szoftverszinten kell a megfelelő struktúrát felépíteni (AGP driver feladata). Az AGP optimális működését DIME-nak (DIrect Memory Execution) nevezik, mely egyszerűen csak az AGP aperture és a GART használatát jelenti. Az alapvető különbség a DIME és a klasszikus DMA (Direct Memory Access) megoldás között mindössze annyi, hogy DIME használatával nincs szükség minden memória műveletnél az alaplapi vezérlő felprogramozására, hiszen azt automatikusan végzi az AGP aperture és a GART segítségével. DMA módban a kevésbé effektív bus mastering technikával történik az adatátvitel - akárcsak a klasszikus PCI buszon -, mindössze a sávszélesség duzzad fel min. 264 MB/s-ra. Problémák DIME a kulcsszó. Ezt szokták leegyszerűsítve AGP texturázásnak (AGP texturing) hívni Sajnos még a legújabb, csillogó-villogó videokártyák közül
sem képes mind DIME-re, ezeknél a felbontás ill. a színmélység csökkentésével lehet videomemóriát felszabadítani a textúrák számára. A sok kritikát kapott Voodoo3 esetén ez nem is nagy probléma, hiszen a kártya csak 16 bites megjelenítésre képes, így ha nem vesszük figyelembe az ominózus 22 bitet, akkor 1280x1024-ben (16 bit Z-buffer, Double Frame Buffer) a kép megjelenítéséhez még 8 MB videomemória sem szükséges, s így a textúráknak bőven marad még hely. Az ilyen kártyáknál a probléma csak akkor fog jelentkezni, ha elterjednek a nagy méretű textúrát használó játékok. Ha ugyanis a videomemória megtelik, a sebességet csak a felbontás csökkentésével lehet visszanyerni. DIME-ot DOS alatt a megfelelő GART driver és természetesen a védett mód hiányából adódóan nem lehet használni. Néhány alaplapi chipkészlet nem tud egyszerre AGP 2x és DIME módban működni, ezeknél az AGP 1x mód DIME-vel általában gyorsabb, mint
az AGP 2x DIME nélkül. 3D szótár Anti-aliasing: A kontrasztos színek határán megjelenő cakkos élek eltüntetésére született. A két szín közötti különbséget színátmenet segítségével tünteti el, ennek eredménye azonban kissé elmosódott kép lesz. Az Anti-aliasing mértéke erősen befolyásolja a kép minőségét, túlzott alkalmazása homályos (mosott) képhez vezethet (Voodoo) Back Buffer: A Double és Triple Buffering technikánál használt tárterület. Bilinear Filtering: Olyan Texture Filtering eljárás, melynek folyamán a texel színe a saját és a szomszédos 4 texel színéből átlagolódik. Bitmap: 2D kép vagy valamilyen anyag mintázat. Textúrázáshoz használatos Culling: A renderelési folyamatból eltávolítja a nem látható objektumokat. A pipeline ezáltal felszabadul, a feldolgozás gyorsul. Depth Cueing: A valóság minél jobb megközelítése érdekében a távolban lévő tárgyak színének élénkségét tompítja. Double
Buffering: A látható mozgás folyamatosságát biztosítja. A megjelenített képet reprezentáló Frame Buffer a renderelés alatt nem változik, a következő képkocka a Back Buffer-ben jön létre. A renderelés végeztével a videokártya egyszerűen átváltja a megjelenítésért felelős DAC-ot a Back Buffer területére, és az eddigi Frame Buffer lesz a Back Buffer Fogging / Haze: Ködeffektus, a távolban lévő tárgyak láthatóságát csökkenti. Általában úgy oldják meg, hogy egészen egyszerűen minden pixel színéhez hozzáadnak egy ún. fog color értéket Frame Buffer: Képek tárolására alkalmas memóriaterület. Nagyságát a kép felbontása és színmélysége determinálja. Linear Frame Buffer: A Frame Buffer olyan ábrázolása, ahol az egymást követő memóriacímek sorra az egymás mellett lévő pixelekre vonatkoznak, sorvégen a következő sor elején folytatódik a pixelfolyam. A teljes LFB terület megcímezhető egy 32 bites mutatóval.
MIP Mapping: Speciális texturázási eljárás, melynek lényege, hogy a tárgyakhoz többféle textúrát rendel. Különböző távolságból nézve a tárgyat, nincs mindig szükség a legnagyobb felbontású textúrára, ilyenkor több MIP szintet (MIP Level) definiálnak, az egyes szintekhez külön textúrát rendelnek (pl. 4 szint: 128 x 128, 64 x 64, 32 x 32, 16 x 16). Rendereléskor kiválasztódik a megfelelő textúra, vagy épp két szint közötti átmenetként - interpolációval - jön létre a megjelenített textúra (= Trilinear Filtering). Pixel: A Picture Element kifejezésből. A megjelenített kép legkisebb egysége, csak szín-információval rendelkezhet. Poligon: 3, 4 vagy több oldalú sokszög, belőlük épülnek fel a bonyolultabb objektumok (akár több tízezer poligonbol is állhatnak). A poligonokra leginkább a hardveres gyorsítás miatt van szükség. Rendering: Magasszintű nyelven leírt objektum (pl. poligonok + textúrák + köd + Anti-aliasing
+ stb.) pixelekké, vagyis képpé alakítása Texel: Textúrákat építenek fel, alapvetően egy színnel rendelkező pixel. Textúra: 2 dimenziós bittérkép (Bitmap), mely a tárgyak realisztikus megjelenítéséhez szükséges. Texture Filtering: Textúrák határán lévő pixelek színét a két (vagy több) szomszédos texel színének átlagaként határozza meg. Meglehetősen számításigényes feladat. Trilinear Filtering: Olyan MIP Mapping, melynek során a két szomszédos MIP szintre Bilinear Filtering eljárást alkalmazunk, hogy a végleges textúrát megkapjuk. Z-buffer: A nem látható élek, objektumok eltüntetését végzi. Minden egyes pixel kirajzolása előtt megnézi, hogy a Z-bufferben tárolt Z koordináta értékhez képest előtte vagy mögötte helyezkedik el az új pixel. Ha mögötte, akkor figyelmen kívül hagyja, ha előtte, akkor kirajzolja, és az új Z értéket beírja a Z-bufferbe. Buszrendszerek összehasonlítása VESA PCI AGP
1x AGP 2x AGP 4x Sávszélesség 32 bit 32 bit 32 bit 32 bit 32 bit Buszsebesség 33 MHz 33 MHz 66 MHz 66 MHz 66 MHz Max. átviteli sebesség 132 MB/s 132 MB/s 264 MB/s 528 MB/s 1 GB/s Bus támogatás Adat / cím paritás mastering Van Van Van Van Van Nincs Van Van Van Van Van Van Van Van Kártya ID (automatikus konfiguráció) Van USB technikai leírás Mikor az Universal Serial Bus (USB) eszközt csatlakozatjuk vagy leválasztjuk az USB hots-ról, egy előre beállított esemény generálódik. Az USB Specifikáció, Rev 10, megmagyarázza ezen eseményeket, parancsokat és a követelményeket az USB eszközökkel és az USB host-tal szemben. A célom ezzel a cikkel, hogy megvilágítsam az USB Specifikáció kapcsolatát ezekkel az eseményekkel. Az Intel 8x930 USB mikrokontroller használja ezt a szemléletet a megvalósítást és a programozási modellt. Bevezetés A megnövelt követelmény a számítástechnikában és az automatizálásban
szükségessé tette az Universal Serial Bus kifejlesztését, ez egy rugalmassággal rendelkező technológia és könnyű a használata. Az USB kommunikációs protokoll soros átvitelt tesz lehetővé, az USB gazdagép és az USB csatlakozó közötti kapcsolatot biztosítja. A gazda nyújtja a szolgáltatást az USB sínen. A soros adatátvitelnek két módja van: teljes sebesség módban az átviteli sebesség 12Mbs, és alacsony sebességű módnál az adatátvitel 1.5 Mbs. A szolgák csatlakoztatása azonnal megtörténik a gazdákon vagy hub-okon keresztül, sorba csillag topológia szerint, a gazda a csillag topológia közepén helyezkedik el. USB címzések kiosztása hasonló, mint összekapcsolhatóság a PC felé, könnyű használat, rugalmasság és alacsony költség magvalósításával. Ez összeadódik a “plug and play” tulajdonsággal, amelyik egy erős ok az USB mögött. USB-vel, a felhasználók tudják csatlakoztatni vagy lekapcsolni a perifériát
anélkül, hogy újra kellene konfigurálni a rendszert, vagy újra csatlakoztatni a gép kikapcsolása nélkül. Az újra csatlakozatáskor a rendszer automatikusan felismeri az eszközt, és automatikusan betölti a meghajtóprogramot. Az USB gazda (Host) USB gazdák a PC-k körül épülnek fel: az USB-t fogadni képes alaplapok és felszerelt USB program struktúra. Az alaplapon, az USB Serial Interface Engine (Soros Csatlakozó Eszköz) modul bejegyzett, mint alkatrész az USB gazdavezérlőbe. Az Intel megvalósította az USB funkcionalitást, mint alkotórészét a PCI chip készletnek. A program struktúra szétválasztható három rétegre: • A gazda vezérlőegység eszközmeghajtó összeköttetést biztosít a különböző gazdavezérlő eszközök és az USB program között. • Az USB rendszer program úgy viselkedik, mint egy réteg a gazdavezérlő és az ügyfél program között. • Az ügyfélprogram, ami engedélyezi az ügyfelek kommunikációját és
leválasztja a beállítási információkat a hasznos információktól. Ez csak egy USB gazdás USB rendszerben van így. Használt USB hardver és program struktúrákat a gazda működteti, mint elsődleges eszköz a sínen. Nyugtázza a csatlakoztatott és eltávolított maghajtókat és kezdeményezi a felsorolási folyamatot és összegyűjti az éppen működő eszközök adatait. Ha lecsatlakoztatunk egy eszközt, akkor az egy nyugta jelet generál, ami arra hívatott, hogy felderítse a még üzemben lévő eszközöket és megbízhatóan összegyűjtse az éppen üzemelőket, ezen kívül ellenőrzi az elektronikus kapcsolatokat is. Ezekről az eszközökről egy listát készít és természetesen ezt az USB vezérlő tárolja is. A nyugtajel körbefutása alatt semmilyen adatforgalom nem mehet. Az USB kábel Az USB kábel négy vezetékből áll. Két vezeték (D+ és D-), használja az adatátvitelre és a nyugta jel körbeküldésére. A másik kettő vezetéken a
perifériához megy a feszültség (powerVbus) és a földvezeték (groundGnd). Alacsony költségű, nem zavarvédett kábel esetén a maximális átvitel csak 1.5 Mbs, ez megfelel az alacsony sebességű USB átvitelnek Zavarvédett (árnyékolt) kábel esetén a sebesség 12 Mbs, ami a teljes sebességű USB átvitelnek felel meg. USB kábelen az A típusú csatlakozó felé megy a jel (az USB gazda felé), a B típusú csatlakozó felöl (a periféria csatlakozó). Sorrendben kiküszöböli a vevő a zavarokat és ezért nem megengedett az A és B típusú csatlakozók megcserélése. Az USB specifikáció gondoskodik a mechanikai védelemről (az A és a B típusú csatlakozókat fizikailag sem lehet megcserélni) mindkét csatlakozónál. Az összes B típusú csatlakozókon lévő ellenállásokat lehúzhatjuk mindkét vezetékről, a D+ és D- vezetékről. Teljes sebességű eszköznél az ellenállást a D+ vezetékre kell rakni, az alacsony sebességű eszköznél pedig a D-
vezetékre. Ez az ellenállás az oka, hogy különböző feszültség szintek fordulnak elő a D+ és D- vonal között. Ez a megvalósítás a gazda irányába jelentést csatol, és a gazda eldönti, hogy milyen sebességgel csatlakozzon a periféria. Az USB perifériák USB perifériák (eszközök) két féle módon működhetnek az USB sínen: hub-ként (gazdaként) és üzemben lévő eszközként. Tipikus esetben a gazda egyben repeater (ismétlő) is lehet. Egyes gazda átalakítja az egyedüli csatlakozási pontot, azaz a bejövő jelet egyszerre több csatlakozóba továbbítja. Egy példa: a gazdán 4 csatlakozó van, amire másik gazdát (hub-ot) és/vagy üzemelő eszközt (végeszközt) lehet csatlakoztatni. A végeszközök lehetnek: egér, billentyűzet, joystick, kamera, stb. Gazdák lehetnek monitorok vagy billentyűzetek. Általában az USB eszközök három részből állnak: • A Soros Csatoló Eszköz (SIE), hardverben megvalósított. Ez megbízható
átvitelt és vételt tesz lehetővé az USB strukturált adataiban. • A hardver és a firmware (hardverrel egybeépített célprogram) kombináció megbízhatósága miatt az adatátvitelek között (SIE és az eszköz végpontok) megfelelő kommunikációs csatornák vannak. • A harmadik elem megfelel az aktuális képességnek vagy funkcionalitásnak. A végpont a legtávolabbi forrás vagy elmenő adat az USB perifériába. A megvalósítási szint törődik a lokális memória beállításával, amelyik adatot tud írni vagy olvasni. Az USB protokoll Az USB gazda a sínen 1 másodpercenként küld egy start of frame (SOF) csomagot. A rendelkezésre álló sín sávszélessége megosztott az egyidejűleg csatlakoztatott eszközök között. Minden eszköz 1 másodpercig “beszélhet”. Általánosságban az USB műveletek három csomagból állnak: a vezérjel csomagból, adatcsomagból és a handshake (párbeszéd elektronikus eszközök között)
csomagból. A csomagok felépítése Mindegyik csomagban található egy Packet ID (PID), ami a csomagok azonosítására szolgál, vagy ha csak a PID van a sínen, akkor az a “kézfogást” jelenti. A művelet indítása az, amikor a gazdavezérlő vezérjel csomaggal küldi az eszköz címét és a végpont számát, a közvetlen adat átvitelt és a logikai vezérlő csatorna típusát. A megcímzett eszköz maga kiválasztja és dekódolja a címét a vezérjelből. Ha a címzés mező a vezérjelen jelez, akkor a gazda kéri az adatot Amikor az eszköz válaszol az adatcsomaggal, a gazda az adatcsomagot veszi. Általában adatfogadás után a gazda vagy az eszköz egy “kézfogás” csomagot küld. A “kézfogás” csomag lehet ACK, NAK vagy STALL. Az USB adatátviteli kategóriái Az adat csere a gazda program között és az eszköz végpont között valósul meg. Információ áram folyhat mindkét irányban vagy csak egy irányban. A gazda kezdeményezi az
adatátvitelt, és adatcserét biztosít mindkét végpont között. Négy típust támogat az USB: vezérlés, megszakítás, izokrón és terjedelem. 1. Vezérlő átvitel támogatja a kétirányú kommunikációt Ez az átvitel többnyire használja a csatlakoztatott eszközről begyűjtött információkat. Azonban, ha ezeket nem tudja használni, akkor a meghajtóprogramtól kapott információkat használja. Minden periféria eszköz támogatja a vezérlés átvitelt. A gazda feltételezi a végpont 0 és a vezérlő csatorna használatát. 2. Megszakítás átvitel egyirányú adatátvitelnél van Ezt a típusú átvitelt használja az egereknél, billentyűzeteknél és joystickoknál. Mivel az USB gazda a master minden USB rendszerben, ezért nem megszakítható. Ez általában nyílt a végfelhasználók felé és a fejlesztők tekintetbe veszik. Ez az USB protokoll szint, megszakítást indít a vezérjellel a gazda irányába (IN). A periféria válaszol NAK-al, ha nem új
megszakítás információval tér vissza. Ha új megszakításra vár a függvény, akkor az információt, mint adatcsomagot adja vissza. A gazda válaszol ACK-val, ha az adatot fogadta és hibátlan volt, ha hibás volt, akkor nem válaszol. Ha a megszakítási végpont késleltetett, ha a visszatérés STALL-t jelez, akkor a gazdaprogramnak szükséges beavatkoznia. 3. Izokrón átvitel egyirányú kommunikációnál van Az irány lehet a végponttól a gazda felé, vagy a gazdától a végpont felé. Ennél a protokollszintnél, izokrón átvitel indul az IN vagy az OUT vezérjelen. Egy példa: ha IN van a vezérlőjelen, a visszatérés értéke adat lesz. Ha OUT van a vezérlőjelen, a gazda követi adattal Az izokrón átvitel irányában nincs “kézfogás” vagy újra próbálkozás. Ezért ebben a pontban az adat elveszhet Ezt figyelembe véve a telefonok és hangszórók használják csak ezt az átvitelt. 4. Terjedelem átvitel egyirányú átvitelnél használható A
címzés kétirányú lehet, a végpont felől a gazda felé és a gazda felől a végpont felé. Ennél a protokoll szintnél, a terjedelem átvitelnek három mozzanata: vezérjel, adat, és “kézfogás”. Abban az esetben, ha a kapcsolat akadályoztatott, nincs adatátvitel és tranzakció sem, akkor egy redukált vezérjel és egy redukált “kézfogás” jön létre. Csatlakozási művelet Az eszköz csatlakoztatása után a gazdavezérlő figyelmeztet és kiválasztja a feszültségvonalat. A gazda bejegyzi a portválasztást. Az eszköz ellenőrzi a csatlakozási állapotot és a gazda felfüggesztett módba kerül, amíg az eszköz nem csatlakozik. Egyszer a gazda ellenőrzi, hogy az eszköz csatlakozott-e a meghatározott portra, ha igen, akkor a portot engedélyezi. A gazda ezek után kibocsát egy alaphelyzet beállító jelet, amit 10 ms-ig tart fent. A 10 ms lejárta után veszi csak figyelembe az engedélyezett portot. Az eszköz nem mindig tudja a rendelkezésre
álló időben az alaphelyzetbe állítást megtenni. Erre a problémára folyamatosan keresik a megoldást, az Intel 8x930 USB mikrokontroller megvalósítja az osztott alapbeállítást. Ez a tulajdonság megengedi a mikrokontrollernek, hogy folytassa a kód ismétlését, addig amíg az USB eszköz nem kerül alaphelyzetbe és nem válaszol. Az alapbeállítás előtt a gazda gondoskodik az eszköz vagy hub áramellátásáról, 100 mA energiát kapcsol a Vbus/Gnd vonalra. Lehetnek olyan eszközök, amelyek nem igénylik az energiaellátást a csatlakozóról. Felsorolás folyamata A csatlakozó eszköz kér egy csatlakozási címet és ehhez a címhez hozzárendeli a gazda a csatlakozási értéket. A folyamat négy lépése: 1. lépés: A gazda kibocsát egy Get Descriptor parancsot, amire az eszköz elküldi magáról az informáciokat: eszközosztály, gyártó információ, maximális csomag méret a végponton, stb. 2. lépés: A gazda küldi a címet egy adatcsomagban, amit
az eszköz használ, ez a Set Address parancs. 3. A gazdák kérésére az eszköz beolvassa a konfigurációs leírót a Get Configuration parancs hatására. Az eszköz erre a következő információkat adja vissza: csatolók és végpontok számát, végpont átvitel típusát, csomagméretet és címzést, maximális energia szükségletet, energiaforrást (külső vagy belső), stb 4. Az utolsó lépésben a folyamat feldolgozás kezelő használja a Set Configuration parancsot, amelyiken keresztül a gazda megfelelteti a konfigurációs értékeket az eszközzel. A felsorolási folyamat végén az eszköz be van konfigurálva, készen áll az USB adatátvitelre és a tranzakciók fogadására. Amikor a gazda begyűjtötte és felsorolta az eszköz információkat átadja a gazda rendszerprogramjának. A rendszerprogram mindegyik felismert eszköz vezérlőprogramját telepíti, ha a rendszerben nincs telepítve a vezérlőprogram, akkor egy felszólítás jelenik meg,
hogy tegyük be az eszköz telepítőlemezét. Leválasztás művelete Azonnal az eszköz leválasztása után a gazda letiltja a portot. Az USB rendszerprogram (ami része az operációs rendszernek) nyugtázza az eszköz lecsatlakoztatását és felszabadítja azokat az erőforrásokat, amiket az eszköz használt. A eszköz leválasztása után éppen az eszközt használó program nem záródik be. Például, ha egy telefon van a rendszeren és lecsatlakozatjuk a gazdáról, akkor a tárcsázó program nem fog bezáródni. Programozási modell, amit az i8x930 használ A 8x930 USB mikrokontroller részei: 8 bites mikrokontroller, a chip-ben lévő memória. Mindegyik végponthoz tartozik egy FIFO adatfogadó puffer. Függ az alkalmazás és az adatátvitel típusától, a felhasználó választani tud a különbözően beállított FIFO méretek közül. Átveszi a FIFO az írást, ami a CPU felé történik. Működés közben közvetlenül használja a Special Function
Registers (SFRs) (Speciális Funkciójú Regiszterek-et). USB gyakorlati tapasztalatok Plug and Play tökéletes formában – legalábbis azt ígérték az új csatlakozási szabvány, az USB (Universal Serial Bus) fejlesztői. Ez azonban még csak ígéret Majdnem három éve jelen vannak már USB eszközök a nemzetközi vásárokon. Újra és újra hallhattunk a közleményekben: “Végre elkészültek és használhatók az új eszközök!” De aztán mindig kiderült: alapvetően nem történt semmi. Csak a Windows 98 bevezetése óta sietnek a hardvergyártók piacra dobni USB termékeket, habár ezt már a Windows 95-höz is megtehették volna. (Windows 95 csak akkor ismeri fel az USB-t, ha külön telepítve van rá az USB támogatás Ezt a Windows 95 CD-n megtalálható vagy az Internetről le is tölthető.) Az alábbiakban azt vizsgáltam, hogy a kereskedelemi forgalomban kapható készülékek valóban kielégítik-e a felfokozott várakozást. Több USB eszközzel
szerzett tapasztalataimat adom közre, de előtte nézzük meg, hogy mi is a gyakorlatban az-az USB Mi az USB? Az USB az Universal Serial Bus – univerzális soros busz – rövidítése. A közepes sebességű perifériák asztali PC-kre és noteszgépekre történő csatlakoztatására szolgál. Egy USB eszközt csak kábele vagy csatlakozója alapján lehet megkülönböztetni a hagyományos termékektől. Természetesen a belső felépítésük teljesen más Az USB kábel nem csak adatokat szállít a készülékhez, hanem áramot is. Így fölöslegessé válik a hálózati kábel Ez alól csak azok az eszközök kivételek, melyek 500 mA-nél több áramot igényelnek, mert ezek az USB kábelben alkalmazott megoldással már túlterhelnék a gép tápegységét. Az USB 1 bites bitsoros átvitelt tesz lehetővé multiplexszereken keresztül. USB használatakor magából a PC-ből csak egy-két kábel indul ki (ez abban az esetben van így, ha minden lehetséges eszköz USB
csatlakozóval rendelkezik), mivel a kiegészítő eszközökhöz szükséges interface-ek az USB eszközökön, a monitoron vagy billentyűzeten is megtalálhatók. Az ilyen illesztő-helyekkel rendelkező eszközöket hub-nak nevezzük. A hub növeli az USB teljesítményét, frissíti és továbbítja a digitális jeleket. Az USB eszközök tehát láncba fűzhetők, így rendet vághatunk a kábeldzsungelben. A maximálisan öt méter hosszú kábelen vagy buszon folyó adatátvitel elérheti a 12Mbit/s-ot. Az USB különlegessége, hogy lehetővé teszi az úgynevezett hot plug-int, azaz az eszközök csatlakoztatását vagy leválasztását a programok futása közben. Előnyök • Az eszközök rövidebb idő alatt, automatikusan és problémamentesen telepíthetők. • A gép körül ritkul a kábeldzsungel. • Kevesebb külső áramforrásra lesz szükségünk. • Az USB több interface-t biztosít, mivel a huboknak köszönhetően nem korlátozza a bővítést a
PC-ben lévő csatlakozók száma. • Windows 98 alatt kezdők számára is könnyebb az eszközök telepítése a jobb drivertámogatás miatt. Hátrányok • Néhány USB eszköz jelenleg még nagyon drága. • Az eszközök Windows 95 alatt gyakran nem üzemelnek. • Az USB-t egyelőre nem támogatja más operációs rendszer, például OS/2, a Linux vagy az NT. Követelmények az USB eszközökhöz Hardver Gépünk alaplapjának rendelkezni kell egy USB vezérlővel és megfelelő illesztő-helyekkel. Az alaplapra utólag is szerelhető USB illesztő-hely. Azonban célszerű az alaplapgyártótól rendelni az illesztőt és a csatlakozót, ugyanis ezek mindig alaplap-specifikusak. Operációs rendszer Egyenlőre csak a Windows 95 és a Windows 98 támogatja az USB-t. Ahhoz, hogy a Windows 95 hozzáférhessen az USB porthoz és a perifériákhoz, először egy driver-programot kell telepíteni. Erre szolgál a Microsoft USB-Supplementje, mely csak a Windows 95 B
verziójától kezdve telepíthető. Először is állapítsuk meg, hogy melyik verziót használjuk Ehhez kattintsunk a jobb egérgombbal a My Computer ikonra, és az ennek hatására megjelenő System Properties ablak General fülét választva a regiszterkártyában láthatjuk a pontos verziószámot. Csak akkor telepíthetők az USB-Supplement driverei, ha itt a 4.00950B verziószámot látjuk A 400950 verzió tulajdonosainak azonban át kell állniuk Windows 98-ra. A driver-programokat tartalmazó Supplement a Windows 95 2.1 CD-jén található az /OTHER/USB rendezőben A Device Manager fülre kattintva ellenőrizhetjük, hogy az USB driver már a gépünkön van-e. A telepítés után a listában megjelenik a PCI to USB universal Host Controller és az USB Root-Hub sor. Eszközkezelő Ha USB eszközöket szeretnénk csatlakoztatni, akkor előzőleg ellenőrizzük, hogy nincs-e hiba a rendszerben. Lépjünk be a System -> System Properties -> Device Managerbe
(Rendszervezérlő -> Rendszer -> Eszközkezelő). Ha a felsorolt eszközökben és csatlakozásokban egy piros vagy sárga kör és egy felkiáltójel látható, az a hiányos telepítésre vagy hibás működésre utal. Ismételjük meg a telepítést az USB-s eszköz csatlakoztatása előtt, mert különben hibajelzéseket kapunk. USB eszközök Windows 95 alatt Néhány gyártó nem tartja szükségesnek, hogy a vásárlónak a kezelési útmutatóban vagy a csomagolásban jelezze, hogy melyik Windows-verzióval használható az eszköz. Ennek következtében a vevő abból indul ki, hogy szerzeményét Windows 95-tel és 98-cal egyaránt használhatja. Pedig ez nem mindig van így, amit a Charry billentyűzet, a TrustMaster joystick és a Genius egér is bizonyít: ezeket ugyanis Windows 95 alatt nem lehetett üzembe helyezni. Bár a BIOS probléma nélkül felismerte a billentyűzetet, a driver-program hiába nem működött Windows 95 alatt. Az Adi 19 color USB-s monitora
egyik operációs rendszer alatt sem akart hubként dolgozni. A rendszer ugyan felismerte, de a rákapcsolt eszközöket nem lehetett elindítani. USB eszközök Windows 98 alatt Windows 98 alatt csak a Kodak videokamera és az Adi monitor hagyott cserben. A rendszer automatikusan felismeri a kamerát, és kér egy driverfrissítést, amely a mellékelt CD-ről telepíthető. Ezután azonban megjelent a Can not connect to camera üzenet, magyarán: nincs kép. Az Adi monitor a Windows 98 a 95-höz hasonlóan Generic hubként ismeri fel, de az új operációs rendszer alatt sem lehet további eszközöket hozzákapcsolni. A hot plug-in Próbára tettem a készülékeket, hogy egymáshoz kapcsolva üzemelnek-e, szét- és újra összekapcsolhatók-e működés közben (hot plug-in) anélkül, hogy ez a rendszerben és a többi perifériában zavart okozna? Először Windows 95 alatt fűztem össze őket. Hubnak az Eizo monitort választottam, mivel ez minden gond nélkül
működött mindkét operációs rendszer alatt. A tesztelt berendezések Windows 95 alatt helytálltak ebben a vizsgában. Windows 98 alatt ugyanez az eredmény született: ott az Eizo monitor és a Cherry billentyűzet töltötte be a hub szerepét, hozzájuk kapcsolódott a Logitech PageScan scanner, a Genius egér, a ThrustMaster Top Gun joystick, valamint az AVM ISDN-adapter. A programfutás közbeni szét- és összekapcsolás semmit nem változott az USB-részek működése. Az USB csatlakozó és a hub minden egyes összekapcsolódáskor megjelent a monitoron az ismeretlen eszközre utaló jelzés, amit azonnal követett az eszköz automatikus rendszerbe illesztése. IDE SZABVÁNYOK A winchesterek környékén mindig is zavar volt. Először (vagy már sokadszor?) az 504 megás korlát áttörése okozott fejtörést, majd később a 2 gigás, 8 gigás határok. Nemrég mindenki az UDMA-ért volt megőrülve, most pedig? Talán kicsit ülepedni kezdett az IDEtéma, mindenki
beszerezte magának az UDMA-s vinyót, és kezdi törni az agyát egy SCSI-s CD írón - mert hogy erősen esik az ára, és egyébként is a szomszéd Pistikének is van már, meg a Gézának is az utca végén :) Szabvány-hegyek Maga az IDE (Integrated Drive Electronics) szabvány a nevében foglalja az általa megvalósított célkitűzést: egyszerűbb és olcsóbb felület biztosítható a vezérlőelektronika közvetlenül a winchesterbe integrálásával. A 80-as években az IDE vált a PC merevlemezek szabványává, és az átlag felhasználók olcsó SCSI alternatívájává. Az IDE-vel kapcsolatban gyakran emlegetik az ATA-t (AT Attachments). Az ATA azonban nem külön fogalom, hanem lényegében az IDE-vel megegyező szabvány, mely mint szabványnév, alapját jelenti a későbbi fejlesztéseknek. Az ATA első továbbfejlesztése az ATA-2, melynek szükségességét a winchesterek egyre növekvő adatátviteli sebessége jelentette. Ezzel a szabvánnyal vezették be a
PIO mode 3, 4-et és a DMA módokat (0, 1, 2), valamint a Plug-and-Play támogatást. Az új átviteli módszereknek köszönhetően az ATA mindössze 4 MB/s-os sebességét 16 MB/s-ra sikerült emelni. Az ATA-2 újdonságait felhasználva rukkolt elő a Western Digital az EIDE (Enhanced IDE) leírással, ami azonban nem tekinthető az ATA-hoz hasonló szabványnak, hiszen az ATA-2 és az ATAPI (ATA Packet Interface) alapjaira épül. Az EIDE vezette be a másodlagos IDE vezérlőt, mellyel lehetőség nyílt maximálisan négy ATA/ATA-2 winchester vagy ATAPI egység egyidejű csatlakoztatására. A másodlagos IDE új portokat és IRQ-t kapott, így az elsődleges vezérlővel nem akadhat össze. Az EIDE további újdonsága az LBA mód és az 504 MB feletti winchesterek kezelése. A köztudatban ez a két fogalom szorosan összekapcsolódik, a valóságban azonban két teljesen eltérő, egymástól abszolút független újításról van szó. Az LBA lineáris címzésmódot
vezet be, melynek lényege, hogy a klasszikus CHS (Cylinder-Head-Sector) móddal szemben az első szektor (Cyl. 0, Head 0, Sector 1) sorszáma LBA 0, az ezt követő szektorok pedig folyamatosan kapják LBA sorszámukat: 1, 2, 3, 4 stb. A legfontosabb azonban: az LBA segítségével sem lehet több szektort megcímezni, mint a klasszikus CHS módon! A másik ATA-2-re épülő leírást Fast-ATA néven a Seagate adta ki. Ez csak az ATA-2 PIO 3, DMA 0 és 1 módját és az LBA címzést tartalmazta, azonban ebben vezették be az ún. block mode-ot, melynek segítségével az interfész több szektor egyidejű olvasását ill. írását képes egy kérésre végrehajtani. Ez azért fontos, mert a processzort az interfész gyakori felprogramozása nagyon leterheli, és pl. 20 ezer szektor egyenként való átvitele a mai gyors winchesterekkel még egy erősebb processzort is megviselne, noha a winchesternek maga a művelet csupán egyetlen másodpercig tart :) A Fast-ATA-ra épül a
Fast-ATA-2, mely mindössze a PIO mode 4 és DMA mode 2 támogatását vezette be. Az utolsó rögzített ATA szabvány az ATA-3: adatbiztonsági fejlesztések (főleg a PIO mode 4 igényelte) jelszóalapú adatvédelmi rendszer (csak írásvédelem) kifinomult energiagazdálkodás (Power Management) S.MART (Self Monitoring Analysis & Report Technology) nincs újabb PIO ill DMA mód A következő szabvány, az ATA-4 kidolgozása jelenleg zajlik, alapvetően az ATA-3, ATAPI és Ultra DMA leírások összefonódására lehet számítani, és a piac gyors fejlődését látva, valószínűleg az újabb sebességhajhász módszerek (pl. Ultra DMA/66) is helyet kapnak majd benne. ATAPI A 80-as években még tökéletesen elegendő volt egy, esetleg két 40 megás winchester egy PCben. A 90-es évek követelményeinek azonban az öreg ATA már nem felelt meg, a drága és egymással inkompatibilis CD-ROM interfészek helyett igény mutatkozott egy költségkímélőbb és
egyszerűbb csatlakoztatási formára. Ez hívta életre az ATA Packet Interface-t, melynek segítéségvel lehetőség nyílt a CD-ROM-ok és winchesterek egy vezérlőre való csatlakoztatására - és ezzel egy egységes szabvány kidolgozására. Az ATAPI egységek bármely jelenleg forgalomban lévő IDE vezérlőre csatlakoztathatók, a winchesterekhez hasonlóan master ill. slave módban, valamint az újabb alaplapok már akár bootolni is tudnak ATAPI egységekről. A CD-ROM-ok mellett az ATAPI nyújtotta flexibilitást más egységek csatlakoztatására is felhasználták, így jelentek meg az IDE felületű cserélhető lemezes írható-olvasható egységek, pl. az LS-120 (A:drive), a ZIP drive ATAPI változata, és újabban már CD (újra)írók (CD-R / CD-RW) is készülnek IDE változatban. Ultra DMA A PIO mode 4 és DMA mode 2 által biztosított 16 MB/s-es átvitel az ATA-3 megjelenése után nem sokkal kezdett kissé szűkössé válni. Noha a winchesterek még nem
tudnak ilyen mennyiségű adatot átvinni, a fejlődés rohamlépteit követve a Quantum már jó előre kidolgozta az ATA-3 és ATA-4 közötti rést kitöltő Ultra DMA szabványt. Ez egy új, 33 MB/s-os átvitelt biztosító DMA módot vezetett be, a DMA/33-at. Ezt az átviteli módot mind a mai napig nem sikerült kihasználni, azonban a Quantum a jövő igényeire való tekintettel nemrégiben hozzálátott a DMA/33 sebességének duplázását célzó Ultra DMA/66 fejlesztéséhez. S.MART A S.MART leírást a Quantum adta ki, és az ATA-3 részeként vált szabvánnyá Lényege, hogy a winchester belső szoftvere folyamatosan figyelemmel kíséri a motor, a lemezek, a fejek és az elektronika teljesítményét, és összehasonlítja az előzőleg mért értékekkel. Ha bármi gyanúsat észlel, az operációs rendszer felé jelzést ad. Ezután a probléma feltárása és az esetleges óvintézkedés már a felhasználóra ill. az operációs rendszerre hárul Fejlettebb
hálózati rendszerekben lehetőség van ennél kifinomultabb hibakezelésre, pl. a hálózati munkaállomás winchester hiba érzékelése esetén átadhatja feladatát egy másik PC-nek, és a szükséges állományokat a hálózati kiszolgálóra mentve felfüggesztheti működését (a karbantartók megérkezéséig). Többek között a következő paramétereket figyeli a S.MART: fej repülési magassága adatátviteli sebesség felpörgési idő (sérülés miatt) áthelyezett szektorok száma fejpozicionálási hibák gyakorisága fejpozicionálási idő kalibrációs próbálkozások száma Jelenleg a PC-s grafikus környezetek közül a Windows 95 OSR2 és Windows 98, az operációs rendszerek közül pedig a Windows NT 4-es verziója, a Windows 2000 és az OS/2 Merlin (4.0) támogatja a S.MART rendszert IDE kábel? Gyakran feltett kérdések: "Hogyan kössem be a winchestereimet és a CD-ROM-omat? Melyiknek kell slave-nek lennie? Régi winchester vagy CD-ROM nem
lassítja az UDMA-s csodákat? Milyen hosszú kábelt használhatok? . " Nos, a kábelhossz max. 45 cm lehet, ezt az árnyékolás hiánya miatt szigorúan be kell tartani, különben a régebbi winchestereknél adatvesztés léphet fel, az újabbak pedig iszonyatosan lelassulhatnak (az interfész érzékeli a hibát, és addig kéri újra az adatot, amíg az ellenőrző összeg hibás). Egyetlen egység csatlakoztatása esetén a winchesternek kötelezően masternek kell lennie, a CD-ROM slave-ként is működik, azonban a DOS alatti driverek nem mindig kezelik az árván slave CD-ket (pl. a Sony CD-ROM-ok ATAPI CDSYS drivere is ilyen) Az egyetlen egységet illik a kábel végére tenni, ez fokozottan igaz az PIO mode 4-es és újabb winchesterekre. Két egység egy IDE portra való csatlakoztatásánál a következőkre kell ügyelni: a régebbi egységek általában csak a winchester-master, CD-ROM-slave összeállításban működnek a winchesterek tetszőlegesen
variálhatók, arra azonban ügyelni kell, hogy a régi darabok közül nem mindegyik rendelkezik slave beállítási lehetőséggel a közhiedelemmel ellentétben a régi egységek nem lassítják a PIO 4-es ill. Ultra DMA-s winchestereket, tehát akár egy ósdi 40 megás winchestert is slave-ként mellé lehet tenni a legújabb UDMA-s csodáknak ha azonban két egységet egyszerre kell elérni, akkor érdemes őket külön IDE portra tenni - erre főleg Linux és OS/2 esetén érdemes figyelni. Miért jó az alacsonyabb elérési idő? Ha a vinyón csak pár száz, töredezettségtől mentes nagyméretű fájl lenne, melyeket a programok végigolvasnának, nem lenne szükség az alacsony elérési időre. Ha azonban sok apró fájllal dolgozunk, a vinyónak állandóan pozicionálnia kell a fejet a lemezek különböző területeire, és ez bizony sok időt vesz igénybe, ha az elérési idők magasak. Angolul "average access time" a hivatalos megnevezése annak az
átlagos időintervallumnak, mely egy véletlenszerű elhelyezkedésű szektor leolvasásához szükséges. A nagysága a modern 5400 RPM-es vinyók esetében 10 ms körül mozog. A forgási sebesség növelésével az elérési idő is csökken, így a 7200 RPM-es vinyóknál ez az érték 8 ms nagyságrendű. A gyakorlatban a winchesterek sebességét az olvasási sebesség és az elérési idő határozza meg. Mi a különbség az elérési idő és a pozicionálási idő között? Az átlagos elérési idő ("average access time") megadja, hogy egy véletlenszerű elhelyezkedésű szektor leolvasásához mennyi idő szükséges. Az átlagos pozicionálási idő ("average seek time") a fej egy véletlenszerű sorszámú sávra való állításához szükséges időt jelenti. Értelemszerűen a pozicionálási idő valamivel rövidebb, mint az elérési idő, hiszen a szektor leolvasása is a fej pozicionálásával kezdődik, de meg kell várni a lemez megfelelő
körcikkjének a fejhez való befordulását, mielőtt a szektort le tudnánk olvasni. Az átlagos pozicionálási idő a mai vinyóknál 5400 RPM esetén 7-10 ms, 7200 RPM esetén pedig 4-6 ms szokott lenni. Mi a különbség a lineáris és a pufferelt olvasási sebesség között? A lineáris olvasás (linear read) egymás utáni szektorok folyamatos leolvasását jelenti. A winchesterek általában a logikai lemezfelület elején a leggyorsabbak, vagyis a maximális lineáris olvasási sebesség a vinyó legelejétől induló olvasással mérhető le. A pufferelt olvasás (buffered read) azonos szektorok egymás után sokszor végrehajtott leolvasását jelenti, méghozzá úgy, hogy az olvasott blokk beférjen a winchester gyorsítótárába (cache). A modern vinyók cache mérete 512 KB és 2 MB közé esik, így a pufferelt olvasási sebesség pl. a vinyó bármely 64 KB nagyságú területének leolvasásával könnyedén mérhető. A lineáris olvasási sebesség az a
jellemző adat, mely tükrözi a vinyó használhatóságának mértékét. A pufferelt olvasási sebesség a winchester adatbuszának maximális áteresztő képességét (maximum throughput) adja meg. Ultra ATA/33 esetén ez az érték 30 MB/s, míg Ultra ATA/66-tal erősített IDE buszon 60 MB/s körül mozog. A pufferelt olvasási sebesség csak közvetve befolyásolja a vinyó gyakorlatban észlelhető átviteli sebességét, mely elsősorban lineáris olvasással mérhető. BILLENTYŰZET- ÉS PERIFÉRIA INTERFÉSZ KOMMUNIKÁCIÓ A billentyűzet- és periféria-interfész Az IBM PC-k billentyűzete egy önálló mikroprocesszorral rendelkező "intelligens" egység, mely a COM portokhoz hasonló soros átvitellel kapcsolódik a géphez. A billentyűzet gombjai három nagy csoportra oszthatók. Az első - egyben legnagyobb csoportot az alfanumerikus blokk alkotja Ez tartalmazza a betűknek, számoknak és egyéb írásjeleknek megfelelő billentyűket. Általában
ebbe a csoportba szokták sorolni a speciális ún shift (SHIFT, CTRL, ALT) módosító-billentyűket is, valamint az ENTER, BackSpace, TAB és Caps Lock gombokat is. A második csoportot a billentyűzet jobb oldalán elhelyezkedő, a pénztárgépek és számológép billentyűzetének mintájára kialakított numerikus blokk alkotja. A harmadik blokk az XT billentyűzet esetében 10, míg AT kategóriájú gépeken 12 gombot tartalmazó funkció-billentyűk csoportja (F1-F12). Ezek AT billentyűzeteken általában azok tetején egy sorban, míg XT gépeken a numerikus blokk melett két oszlopban helyezkednek el. A negyedik csoportot a kurzorvezérlő gombok alkotják melyek csak AT billentyűzeteken kerülnek kialakításra a fő és a numerikus blokk között. Az eredeti XT billentyűzet így összen 84 gombból áll, melyből a numerikus blokknak kettős funkciója van, hiszen ennek segítségével lehet a kurzormozgató funkciókat is elérni. Az AT gépekhez alkalmazott
billentyűzeteknek kettővel több funkció-gombja és különálló kurzormozgató billenytűi is vannak, melyek az összes gombok számát 101-re növelik. A 102 gombbal szerelt billentyűzetekenk egy speciális, az Alt gombéhoz hasonló funkciót ellátó ún. Macro billentyű is található. A legújabb - a Microsoft Natural Keyboard - mintájára kialakított 106 gombos billentyűzetek plusz gombjai csak a Windows 95 és Windows NT 4.0 operációs rendszerekben használhatók ki. A beépített mikroprocesszor feladata a billentyűzet-mátrix elemeinek lenyomásakor és felengedésekor a megfelelő scan-kódok generálása, valamint azok pufferlése és továbbítása a számítógépben elhelyezett billentyűzet-illesztő felé. Az AT típusú billentyűzetekben elhelyezett mikroprocesszor ezenkívül bizonyos elemi parancsok fogadására és azok végrehajtására is képes. A billentyűzet működése A billentyűzet gombjai kábelezés szempontjából egy ún.
billentyűzet-mátrixban vannak elhelyezve. Egy meghatározott billentyű lenyomásának vagy felengedésének észlelésekor a belső mikroprocesszor egy, az adott billentyűt egyértelműen azonosító ún. scan-kódot küld a számítógép felé. Ugyanezen billentyű felengedésekor a mikroprocesszor egy másik, felengedési scan-kódot továbbít a billentyűzet-illesztő áramkör felé. Ezáltal részint kiküszöbölhető a több billentyű közel egyidejű lenyomásából adódó jelenség, a karakterek "elvesztése", másrészt rendkívül leegyszerűsödik a módosító-billentyűk (Ctrl,Alt,Shift) kezelése is. A megfelelő gomb vagy kombinációk értelmezése és feldolgozása így teljesen a számítógép billentyűzet-kezelő rutinjának feladata. Hagyományos rendszerekben a billentyűzet minden egyes gombjához a lehetséges módósítókombinációknak (pl. Ctrl+billentyű, Shift+billentyű, stb) megfelelő számú billentyűzet-kód tartozik, melyeket -
kialakítástól függően - azok lenyomásakor vagy felengedésekor továbbít a billentyűzet a gép felé. Ezzel szemben a PC-k billentyűzetében egy jóval fejletteb technikát alkalmaztak kifejlesztői a lenyomási és felengedési kódok bevezetésekor. Ha az egyik billentyű (pl. Alt) lenyomva tartása mellett megnyomunk egy másik gombot is, akkor a számítógép az első billentyű lenyomási, valamint a második billentyű lenyomási és felengedési kódját fogja megkapni. A gép nyilvántartja a módosító billentyűk állapotát és mivel a második billentyű lenyomásának pillanatáig még nem kapta meg az első gomb felengedési kódját, így tudni fogja, hogy a két billentyűt "egyszerre" nyomtuk meg és egy ennek megfelelő billentyű-kódot fog az alkalmazás felé továbbítani. Bár a rendszer-szoftverek (BIOS) csak a Ctrl, Shift és Alt (esetleg Macro) gombokat kezelik külön, a fenti elv alapján gyakorlatilag bármelyik billentyű működhetne
módosítóként, hiszen pontosan úgy viselkednek mint az összes többi billentyű. A módosító-billentyűkhöz hasonlóan tartja nyilván a BIOS a Caps, Num és Scroll Lock valamint az Insert gombok állapotát is. Ugyanakkor sajnos a standard billentyűzet-kezelő rutin meglehetősen sok - főleg a Ctrl gomb lenyomva tartása mellett kiváltható - kódot egyszerűen "lenyel", azaz a megfelelő kombinációk leütésekor semmilyen, vagy a Ctrl állapotától független kódot továbbít az alkalmazások felé. Érdekes módon a BIOS nem nyújt lehetőséget a numerikus és a fő-blokkban elhelyezett két perjel (/) megkülönböztetésére sem, amikor az ugyanezen blokkokban szintén két példányban elhelyezkedő csillag(*), plusz(+) és minusz (-) gombok lenyomásakor különböző kódokat generál. Kommunikáció a bilentyűzet és a gép között A számítógép billentyűzet-kezelő rutinjának minden gomb lenyomását hibátlan átvitel esetén egy FAh,
paritás-hiba fellépésekor pedig FEh kóddal kell nyugtáznia. Ez utóbbi hatására a billentyűzet az utolsó bájtot újra elküldi. A billentyűzet reset után folyamatosan hibás paritással AAh bájtokat továbbít a számítógép felé. Amikor a számítógép a POST rutin során elér a billentyűzet teszteléséhez észleli a hibát és egy FEh bájtot küld a billentyűzetnek kérvén az utolsó bájt újraküldését. A billentyűzet ekkor abbahagyja a hibás AAh bájtok küldését és az öntesztnek megfelelően AAh (OK), FCh vagy FDh (hiba) kódot küld vissza az illesztőnek. Erre, az első látásra bonyolultnak tűnő inicializálásra a számítógép és a billentyűzet resetjének aszinkronitása miatt van szükség, ugyanis egy lassabb POST rutin könnyen "lemaradhatna" a "csak úgy", közvetlenül a belső reset után elküldött önteszt-kódról . A PC-k soros portja Bár a szokványos PC-kben akár összesen 8 aszinkron port
beépítésére is van lehetőség, azonban a BIOS szervíz-rutinok csak az első 4 port kezelére képesek. Alapkiépítésben a legtöbb gépben csak két soros port található, ami általában elég szokott lenni a felmerülő igények kielégítésére (ált. egy egér ill egy modem szokott a géphez kapcsolódni) Amennyiben ez mégis kevésnek bizonyulna, úgy egy multi-I/O kártya beépítésével az elérhető soros portok száma négyre növelhető. További portok kialakítása már csak speciális, erre a célra készült kártyák segítségével lehetséges. Az első négy adaptert a BIOS meghatározott címeken keresi, de a fennmaradó csatolók a szabad adapter-tartományban bárhol elhelyezkedők. Port Báziscím IRQ COM1 3F8 4 COM2 2F8 3 COM3 3E8 4 COM4 2E8 3 Mint a fenti táblázatból kitűnik a COM1 és COM3, valamint a COM2 és COM4 ugyanazt a megszakításvonalat használja, ez azonban csak a portot közvetlenül kezelő alkalmazói programok
számára érdekes, mivel a szabvány BIOS rutinok nem kezeli ezeket a megszakításokat. A BIOS szervízrutinok adatbájtok küldésére, a vonal-állapot lekérdezésére, valamint adatok polling-jellegű fogadására képesek. (Ez utóbbi azt jelenti, hogy az érkező bájtokat csak a port állandó monitorozásával tudja észlelni és nem képes az adapter által egyébként biztosított megszakítások felhasználására). A BIOS a gépbe épített soros portok számát a bekapcsolási önteszt során állapítja meg és azok báziscímeit a BIOS adatterületen a 0400h fizikai címen kezdődő 4 darab word-ön tárolja el. Mivel maguk a szervízrutinok az itt tárolt báziscímek felhasználásával kommunikálnak a soros portokkal, így ezen adatterület utólagos módosításával az eredeti sorszám-adapter hozzárendelések tetszőlegesen megváltoztathatók. Mivel a BIOS rutinok a komolyabb felhasználást nem teszik lehetővé, ismerkedjünk meg az adapter
közvetlen programozásával. A kommunikációs chip A kommunikáció vezérlését a PC-kben egy i8250, vagy azzal kompatibilis UART áramkör látja el. Az újabb adapterekben általában már csak 16450, ill 16550-es, vagy azok funkcióit (is) magukban foglaló integrált áramköröket alkalmaznak. A 16550-es chipek 16 bájtos FIFO-val (belső puffer) is rendelkezik, amiben küldés ill. fogadás esetén a szokásos eggyel szemben akár 16 bájtot is eltárolhatnak, ezáltal a CPU-t az időrabló várakozástól megszabadítva. Az áramkörök természetesen felülről kompatibilisek egymással. Az UART nyolc porton (itt már természetesen a CPU port értendő) keresztül kommunikál a számítógéppel. Az egyes portok felhasználása a következő (B az adott soros port báziscímét jelenti): Cím Típus B+0 B+0 B+1 B+2 Jelentés Adó adat-regiszter (DLA=0), vagy frekvenciaosztó alacsony Csak írható helyiérték? bájtja (DLA=1) Csak olvasható Vev? adat-regiszter
ÍrhatóMegszakítás-engedélyez? regiszter (ha DLA=0), vagy frekvenciaosztó olvasható magas helyiérték? bájtja (DLA=1) Csak olvasható Megszakítás-azonosító regiszter 7-3 : nem használt (0) 2-1 : megszakítás azonosító: vonal állapot-változása 11 bájt vétele 10 01 - bájt elküldve - 00 B+3 B+4 Írhatóolvasható Írhatóolvasható modem állapotváltozása Parancsregiszter 7 : 6 5 4 1 : : : regiszter-kiválasztó (DLA): 0 - adat-regiszter, 1 frekvenciaosztó) BREAK, adási adatvonal szintjének 0-ra húzása ha 1, a paritás-bit fixen a 4.bit invertáltja lesz paritás kiválasztása, ha 5. bit 0: páratlan (odd) paritás - 0 3 : 2 : 1-0 11 : páros (even) paritás 0: tiltja a paritás, 1 : a paritást az 5.-4 bitek határozzák meg stop-bitek számának meghatározása: 0 - 1 stop bit, 1 - 2 stop bit adatszó hosszának (adatbitek számának) meghatározása 8 adatbit 10 - 7 adatbit 01 - 6 adatbit 00 - 5 adatbit Modem-vezérl?
regiszter 7-5 4 : : nem használt (0) diagnosztikai mód bekapcsolása OUT2 ill. OUT1 (ált nem bekötött vezetékek) invertált 3-2 : vezérlése 1 : RTS jel vezérlése (invertált) 0 : DTR jel vezérlése (invertált) B+5 Csak olvasható Vonal állapot-regiszter nem használt (0) (16650+: a FIFO-ban legalább egy 7 : hibásan érkezett bájt található) 6 : nincs adás folyamatban 5 : az adó adatregisztere üres 4 : a vonal BREAK állapotban (lásd B+3 6. bit) 3 : keret-hiba történt (vételkor hiányzott a stop-bit) 2 : paritás-hiba történt ráfutás történt (adat veszett el a vezetéken, mert az el?z? 1 : bájt nem lett id?ben kiolvasva) 0 : a vev? adat-regiszterében érvényes adat van B+6 Csak olvasható Modem állapot-regiszter 7 : adatátviv? jelen (Data Carrier Detect) 6 : csengés felfutó ágban (Ring Indicator) 5 : az adatátviteli berendezés kész (Data Set Ready) 4 : Adásra kész (Clear To Send) 3 : A DCD megváltozott az utolsó olvasás óta (Delta DCD)
az RI inaktív állapotra váltott az utolsó olvasás óta (Delta 2 : RI) 1 : a DSR megváltozott az utolsó olvasás óta (Delta DSR) 0 : a CTS megváltozott az utolsó olvasás óta (Delta CTS) B+7 ÍrhatóScratch register olvasható Csak 16450 v. újabb UART-on létez? általános célú regiszter Általában nem használt. A kommunikáció megkezdése előtt a chipet a kommunikációs paramétereknek (átviteli ráta, paritás, stop- ill. adatbitek száma) megfelelően fel kell programozni A baudráta beállításához előszőr a DLA-t 1-re kell állítani a [B+4] címre történő 80h érték kiírásával, majd az osztó értékének alsó és felső bájtját a [B+0] ill. [B+1] portokra kell írni Ez után a paritás, stop- ill adatbitek beállításával párhuzamosan a DLA-t 0-ra állítjuk a [B+3] port írásával. Ezek után az adapter már kész a kommunikációra. Amennyiben megszakítás-vezérelt kommunikációt szeretnénk úgy a megszakításvezérlő megfelelő
felprogramozása után a [B+1] portra történő írással választhatjuk ki, hogy mely események bekövetkeztekor kérünk megszakítást. A megszakítás-kezelő rutin a [B+2] olvasásával állapíthatja meg a megszakítás okát. A modemek kora a kezdetektől A számítógépek a modemek segítségével tanultak meg beszélgetni. A hanggá alakítás eszköze maga régebbi, mint a számítógép ugyanis a modemet eredetileg arra találták ki, hogy a telexgépeket össze lehessen kötni a katonai telefonvonalakon. A legelső modemek még szimplex rendszerűek voltak. Azaz amíg az egyik oldal adott, a másik oldal hallgatott. Csak később jelentek meg a félduplex, majd teljes duplex eszközök a számítástechnikában. A cégek növelték a sebességet, de szabványaik csak önmagukkal voltak kompatibilisek. A leghíresebb ilyen rendszert a US Robotics alakította ki. Ők ismerték fel többek között azt, hogy a telefonvonalon történő biztonságos nagysebességű
információtovábbításnak két kemény korlátja van. Az egyik a telefonvonal korlátozott sávszélessége. A másik a telefonrendszerek zavarérzékenysége, melyek elronthatják az adó és a vevő oldal szinkronját, illetve hibát okozhatnak az adatfolyamban. A továbblépést egy ma már szintén önállóan nem létező cég, a Microcom kínálta, amely kitalálta az MNP hibajavító szabványok sorozatát. Modem alapok Az előfizetői hurok egy, az előfizető telefonja és a végközpont között húzódó huzalpár. Ha nem lennének az alábbi problémák, akkor egy ilyen vezető minden probléma nélkül 1 vagy 2 Mbit/s-os sebességű forgalmat bonyolíthatna le. Az előfizetői hurkon váltóáramú jeleket használnak, amelyek frekvenciáját szűrőkkel 300 és 3000 Hz között tartják. Ha a vonal egyik végét digitális jelekkel hajtanánk meg, akkor - a vonalon jelentkező kapacitív és induktív hatásoknak köszönhetően - a túloldal nem
négyszögletes alakú, hanem teljesen ellaposodott fel- és lefutó élekkel rendelkező hullámformákat venne. Ez a hatás az alapsávú (DC) jelátvitelt célszerűtlenné teszi, kivéve kis sebességeken és rövid távolságokon. A jelterjedési sebesség frekvenciával való növelése a jeltorzítást is növeli. Az egyenáramú jelzés nehézségei miatt végül is a váltóáramú jelzést használják. Az alkalmazott szinuszos vivőhullám (sine wave carrier) frekvenciája: 1000 és 2000 Hz között folyamatosan változik. Amplitúdójának, frekvenciájának vagy fázisának modulálásával információt lehet átvinni. Amplitúdómodulációkor (amplitude modulation) két különböző feszültségszintet használnak a logikai 0 és 1 ábrázolására. Frekvenciamoduláláskor (frequency modulation), nevezik frekvencia billentyűzésnek is (frequency shift keying), két (vagy több) frekvenciát alkalmaznak. A legszélesebb körben használ:
fázismoduláció (phase modulation) során a vivőhullám fázisát egyenlő időközönként szisztematikusan 45, 135, 225, ill. 315 fokokra változtatják Minden fázisváltoztatás 2 bitnyi információ átvitelét jelenti. Azt az eszközt, amely bemenő jelként bitfolyamot vesz, és kimenő jelként modulált vivőjelet állít elő (és fordítva), modemnek nevezik (a modulátor- demodulátor páros nyomán). A modemet a (digitális) számítógép és a (analóg) távbeszélőrendszer közé illesztik. A fázisváltozások közül nyolchoz csak egyetlen legális amplitúdószint tartozhat, a maradék négyhez kettő, így összességében 16 kombináció létezik. Amikor a 2400 baud-os vonalon 9600 bit/s átvitelre használják, akkor megkülönböztető módon QAM-nek (Quadrature Amplituda Modulation-kvadratúra amplitúdó moduláció) nevezik. A modemek azért léteznek, mert alapvető a különbség a számítógépek és a telefonrendszerek működése között. Amíg a
számítógépek 0-kat és 1-ket használnak, addig a telefonvonalakon analóg jeleket továbbítanak. Az adatok a számítógépből a modemen keresztül jutnak a nyilvános telefonhálózatba. Ahhoz, hogy a számítógépet képessé tegyük egy másik számítógéppel kommunikálni telefonvonalon keresztül szükségünk van egy eszközre, amelyik a digitális jeleket analóg jelekké alakítja át és vissza. A modemek ezt a funkciót töltik be A modem szó a modulate és a demodulate szavakból ered, ami ezen eszközök elsődleges feladatára utal. Először a modem modulálja a számítógép digitális jelét (vagy adatát) analóg formára ahhoz, hogy átvihető legyen a telefonvonalon. Ezt az analóg hullámot vivőhullámnak hívjuk. Másodszor a modem demodulálja az átvitt jelet vissza digitális formára ahhoz, hogy a vevő számítógép megértse. Azt a specifikus eljárást, amit a modemek használnak a digitális jelek analóg jelekké alakítására és
visszaalakítására modulációs protokolloknak nevezzük. A modemeket általában az átviteli alapsebességük (raw speed) szerint osztályozzuk. Az alapsebesség az, amit a modem el tud érni adattömörítéses eljárás nélkül. A modemek alapsebességét az általuk használt modulációs protokoll határozza meg. A nagysebességű modemek azok, amelyek 9600 bits/sec-os vagy annál nagyobb sebességen üzemelnek. Az alacsony sebességű modemek 2400 bits/sec-os vagy alacsonyabb sebességen üzemelnek. A sebességre többféle mérőszám is létezik, így a baud, a cps(characters per second) és a bps(bits per second). A telefon terminológia Legáltalánosabban a lakásokban levő telefonvonalak használatosak, ezek két vezetékesek és kapcsoltak (dial-up-line). Lehetséges a négy vezetékes vonal is, azt azonban inkább a bérelt vonalakon használják. Ez utóbbiban az egyik érpáron folyik az adatküldés, a másikon a vétel. A bérelt vagy privát vonalak
dedikáltak, amelyeket a telefontársaság egy vagy több ponttal állandó jelleggel összeköt. A bérelt vonal akkor javasolható, ha nagy mennyiségű adatról van szó, mert ilyenkor a költség kisebb, a vonal karakterisztikája megállapítható és kedvezőbb a jel/zaj teljesítmény. A bérelt vonalat adatvonalnak is hívjuk, miután alkalmasabb az adatátvitelre. A telefoncsatorna alkalmas mind hang, mind adat átvitelre és a frekvenciája 300 és 3400 hertz között van, a sávszélessége tehát 3100 hertz. A modem terminológia Elsőként a baud ráta (baud rate) és másodpercenkénti bitek száma (bps = bits per second) kifejezéseket vesszük, amelyek a másodpercenkénti jelváltozást jellemzik. Egy egyszerű rendszerben, ahol a jelváltozás egy bit információt jelez a két mérőszám egybeesik. A baud ráta másodpercenkénti jelváltozást jelenti Ha speciális modulációs eljárást használunk, akkor a két fogalom nem azonos, miután egy jelváltozás
több bit változását is jelentheti. A baud rátát a telefonvonal sávszélessége korlátozza, de a másodpercenkénti bitek számát nem. Ez azért van, mert a modulációs eljárás egy baud-ba egynél több bitet is becsomagolhat. Következésképpen világosabb a másodpercenkénti bitek számát használni, mint a baud-ot. A modemek egymás között két módon kommunikálhatnak: half-duplex vagy full-duplex módon. A half-duplex esetben az összeköttetésben egyidejűleg az adatot csak egy irányban lehet küldeni, a küldő modemnek meg kell várni amíg a vevő modem nyugtázza a vételt mielőtt a következő blokkot elküldené. De full-duplex módnál mindkét irányban küldhetők az adatok egyidejűleg. A full-duplex kommunikáció rendszerint kétszer olyan gyors, mint a half-duplex mivel az nem használja a half- duplex nyugtázását. Teljességgel lehetséges, hogy a modemek gyorsabban cserélnek adatot, mint ahogy azt a csatlakozó számítógépek képesek
feldolgozni. Ilyen esetekben az adatvesztés ellen a modem-számítógép kapcsolatban valamilyen folyamatvezérlést (flow control) kell használni. A flow control rendszerint szoftver vagy hardver kézrázást (handshake) alkalmaz. A szoftver handshake (vagy inband flow control) speciális karaktereket a CtrlS-t (amit XON-nak is hívunk) és a Ctrl-Q (vagy XOFF) helyez az adatfolyamba az adatátvitel vezérlésére az adatvesztés megelőzése céljából. Így például a modem egy XOFF-ot fog küldeni a számítógépnek, ha az adatokat túl gyorsan küldi. A modem XON-t fog küldeni, ha már kész a többi adat fogadására. A hardver handshake (vagy out-of-band flow control) villamos jelet használ a számítógép és a modem közötti kábel egy vezetékén. Az EIA-232 modem interfész szabvány a 4-es póluson (RTS vagy Ready-to-Send) küldi és a modem az 5-ös póluson (CTS vagy Clear-to-Send) fogadja a handshake jelet. A hardver handshake megoldást az indokolja, hogy nem
keverednek össze a vezérlő jelek az aktuális adatjelekkel, miután bizonyos kódoló eljárások feldolgozzák a vezérlő jeleket is, ami hibához vezet. A flow control megvédi a számítógépet a feldolgozási sebességénél gyorsabb adatvételtől. Modem protokollok A szabványok három forrása: • Bell szabványok (az AT&T-től) • CCITT ajánlások • CIA/TIA szabványok Napjainkban a legújabb modem szabványokat a CCITT hozza létre, ezek közül a legfontosabbak, a V-sorozatú szabványok, a nemzetközi adatforgalomra vonatkoznak. A modemek háromféle szabványt használnak: • modulációs szabványt; • hibajavító szabványt és • adattömörítő szabványt. Modulációs szabványok A modemek a digitális adatokat modulálják az analóg vivőhullámba. A digitális adatok ábrázolására a modemek a vivőhullám frekvenciáját, amplitúdóját és fázisát változtatják meg. Az alacsony sebességű modemek rendszerint csak két
frekvenciát használnak az átvitelre. Ezt a két frekvenciát a vivőhullám állapotának mondjuk Miután a telefonvonal korlátja 3100 Hz, a nagyobb sebességű modemek kettőnél több állapotot használnak. Ugyanazon állapotok használatának a biztosítása a modemek között a modulációs eljárásának (modulation scheme) a feladata. Napjaink legelterjedtebb alacsony sebességű modemjei a 2400-bps Hayes-kompatibilis modemek. A 2400-bps modemek tipikusan az alábbi négy modulációs szabványnak felelnek meg: Bell 103, Bell 212A, CCITT V.22 és CCITT V.22bis A Hayes-kompatibilis modemek a Hayes Microcomputer Products, Inc. által elsőként szabványosított parancs készletet használják. A többi modemgyártó a Hayes parancs készletettel kompatibilis modemeket ajánl, kiegészítve saját parancsaikkal. A Bell szabványokat az AT&T Bell Labs dolgozta ki (USA szabvány). A Bell 103 szabványnak megfelelő modemek 300 bps sebességen működnek, míg a Bell 212A
szabvány 1200 bps-t tesz lehetővé. A 2400-bps modemek együtt tudnak működni a 300-bps vagy az 1200-bps modemekkel. A CCITT V.22 szabvány 1200-bps szabvány, hasonló a Bell 212A-hoz, de nemzetközi használatra is alkalmas. Egy 2400-bps szabvány van használatban a CCITT V.22bis, ahol a bis azt jelzi, hogy második vagyis a V.22 szabvány javított változata A 2400 bits/sec-os adatátvitelre a V.22bis modemek két vivőjelet (vagy állapotot) használnak, az egyiket a kezdeményező (originating) modem, a másikat a válaszoló (answering) modem számára. A kezdeményező modem 1200 Hz-en válaszoló modem 2400 Hz-en működik. A vivőhullámokat 600 baud-on modulálják, így baud-onként a modemek 4 bitet küldenek (emlékeztetőül a baud a jelváltozással egyenlő). A modulációs eljárásokat a nagysebességű modemekre a CCITT ugyancsak kidolgozta. A kapcsolt vonalakon a 9600-bpses full-duplex kommunikációra szolgál a V.32 Adatküldéshez a V.32 modemek az
adatokat 4 bites szimbólumokká kódolják és 2400 baud-on továbbítják. A full-duplex egyidejű jelátvitelt jelent. Minden modemnek, amelyik ugyanabban az időben küldi a jeleket, amikor a másik, szét kell választani az adott jeleket a vett jelektől. Ehhez a V.32 modemek az ún echo törlést (echo cancellation) alkalmazzák Az adott jeleket az echózó áramkör kivonja a vett jelekből, mielőtt a vett jeleket feldolgozná. A V.32 adatjelek tipikusan gyengébbek, mint az alacsonyabb sebességű modemeké, részben azért mert másodpercenként több adatot továbbít. Ez a sebesség nehezebbé teszi az egyedi adatdetektálást. Ez ellen a V32 egy javított kódolási technikát alkalmaz, ami megengedi a modemnek, hogy ismert mintájú egymást követő jeleket vizsgáljon meg mielőtt értelmezné azokat (trellis encoding). A szokásos telefon vezetéken a 9600 bps-nél nagyobb sebesség is elérhető. 1991-ben a CCITT létrehozta a V.32bis szabványt, amely 14400 bps
adatátviteli rátát is megenged. Ennek biztosítására a V32bis modemek még jobb echótörlést és javított vételi eljárást használnak. Ha a lehető legtöbb adatot akarjuk elküldeni a legkisebb idő alatt, akkor figyelembe kell vennünk a modulációs eljárásokat, de ugyanúgy fontos a hibajavítás és az adattömörítés is. K56flex: a Rockwell házi 56k-s szabványa. A V90 megjelenésével elavult V.90: a Nemzetközi Távközlési Unió (ITU) hivatalos 56k-s szabványa (a 33,6 k-s szabvány jele például V.34) Már kaphatók az első V90-et is ismerő modemek, és letölthetők lesznek a flash memóriás, régebbi K56flex vagy x2 szabványú modemekhez a V.90-essé alakító szoftverfrissítések x2: a U.S Robotics (3COM) házi szabványa A V90 megjelenésével idejétmúlttá vált Hibajavító szabványok A hibajavító szabványok nélkül a modemek képtelenek hibátlanul működni. A zaj és egyéb vonali rendellenességek megakadályozzák a hibátlan
adatátvitelt. Jelenleg két fő hibajavító szabvány használatos, az egyik a CCITT V.42, a másik a Microcom MNP hibavezérlő szabványa (ld. a táblázat 2-4 sorát) Ez utóbbi egy ad hoc szabvány, de széleskörűen elterjedt. A modemek Microcom Networking Protokollja (MNP) Szint Funkció 1 Aszinkron, bájt-orientált, half-duplex adatcsere 2 Aszinkron, bájt-orientált, full-duplex adatcsere 3 Szinkron, bit-orientált, full-duplex adatcsere 4 Szinkron, adaptív csomagméretű, bit-orientált adatcsere 5 Adattömörítés 6 Egyeztetés (negotiation) és nagyobb sebességű alternáló moduláció (hasonló a V.29-hez) 7 Javított adattömörítés Magasabb sebességeken a modemek érzékenyebbek a hibákra. A V42 hibajavító szabvány a CRC-t (cyclic redundancy check) használja, ami hasonló, a legtöbb mikrogépes protokolléhoz. telekommunikációban A V.42 azonban alkalmazott, minden XMODEM adatátvitelhez, állománytovábbítási és nem csak az
állománytovábbításhoz, használja. A V42-nek, mint minden hibajavító módszernek, az a hátránya, hogy ha sok hiba jelentkezik, akkor az áteresztő képessége lecsökken, az újraadások következtében. A CCITT kompromisszumként vette be az MNP 2-4 szintjét mint opciót, tekintettel a népszerűségére. De a jövőbeni javításoknál a V42 LAP-M protokollt fogja használni, nem az MNP protokollt. A LAP-M (Link Access Protocol-Modem) protokollt a CCITT más kapcsolatokra is kidolgozta, mint például az X.25-re és a megelőző szabványokra építette. A CCITT szabványok mellett még használnak néhány ad hoc szabványt. A leginkább említésre méltó a PEP (Packetized Ensemble Protocol) és az MNP (Microcom Networking Protocol). A PEP a Telebit hibajavító és adattömörítő magán protokollja, amelyik 14.400 bps-en működik Néhány Unix gép használja a Trailblazer modemeket a nagyobb áteresztő képesség elérésére. Az MNP 1-től 9- szintig
definiált protokollsorozat Sok más gyártó is alkalmazza az MNP protokoll-osztályokat. Adattömörítő szabványok Az eljárását tekintve az adattömörítés nem más, mint az adatokban levő redundacia kiküszöbölése átkódolással rövidebb kódba. Az áteresztő képesség arányosan növekszik a kód hosszának csökkenésével. Ezt tömörítési aránynak (compression ratio) mondjuk, például a 4:1 azt jelenti, hogy az eredeti méret egynegyedét kell átvinni. Megjegyezzük, hogy a tömörítési arány függ az adattípustól. Az adattömörítő algoritmus az adatokban ismétlődő mintákat az azoknak megfelelő rövidebb szimbólumokkal helyettesíti. Ilymódon, ha több ismétlődés fordul elő, akkor a tömörítés is hatékonyabb lesz. Általában az olyan állományok esetén, mint a grafikus képek, a dinamikus táblák és a szövegállományok a tömörítési arány a 2.7 és 35 tartományba esik A V.42bis volt az első hivatalos szabvány, amelyik
adattömörítő és helyreállító (compressing and decompressing data) módszert támogatott a modemeknél. A Microcom MNPS eljárása ugyan létezett de az magánszabvány volt és így nehezen volt összeegyeztethető más gyártókkal. A V42bis nemzetközi szabvány célul tűzte ki ezen probléma megoldását és a számítógépeknél használatos olyan eljárást követett az algoritmus, mint a DOS ARC és ZIP ill. a Macintosh StuffIt állományainál szokásos A V.42bis valamennyi adatkommunikációra alkalmazza az adattömörítést nem csak az állománytovábbításra. Elérhető a 4:1 tömörítési arány is MNP hibajavítás és adattömörítés Az MNP az adatfolyamot az átvitel előtt blokkokra bontja. A blokkokat a vevő oldal ellenőrzi. Ha az adatok hibátlanok voltak, akkor erről nyugtát küld az adónak. Ha hibát talál, akkor újraküldést kezdeményez. Az MNP Level 3 az adatokat inkább szinkron, mint aszinkron módon küldi. Miután nem küld start és
stop bitet minden bájtra, a sebesség nagyobb lesz. Az MNP Level 4 automatikus blokkhossz beállítást végez, ha zajos a vonal. Ha a vonal jó, akkor hosszabb blokkokat küld, amit lecsökkent, ha sok az újraküldés. Az MNP Level 5 adattömörítést végez, ami további sebességnövelést eredményez 10-től 80 %-ig, az adatoktól függően. Az MNP Level 7 képes 3:1 arányú tömörítésre Természetesen mindkét oldalnak használni kell az MNP-t. CCITT kódok és magyarázat V.21 V.22 V.22bis V.23 V.26ter V.27ter V.29 V.32 V.32bis V.34 V.42 V.42bis V.Fast 0-300 bps full duplex Még használják. 1200 bps full duplex 2400 bps full duplex Az egész világon elterjedt. 600 és 1200 bps. Half duplex Főleg Európában használatos. 2400 bps full duplex Főleg Franciaországban használatos 2400/4800 bps half duplex Group III fax 4800, 7200 and 9600 bps half duplex Group III fax és néhány amerikai modem. 4800/9600 bps full duplex A 9600 bps modemek szabványa
4800/7200/9600 vagy 12000/14400 bps Full duplex gyors egyeztetéssel. 14400 bps szabvány Hibajavító protokoll (V.22, V22bis, V26ter és V32) Adtatömörítő a V.42 modem számára Az MNP és a LAP kiváltására hozták létre. A szöveget háromszor gyorsabban továbbítja, mint az MNP, azaz 38400 bps-ig ha 9600 bps modemet használunk. Nagyon elterjedt Készülő szabvány. Ha a CCITT elfogadja, akkor a 28800 bps sebességet fogja tudni tömörítetlen adatokat, kapcsolt hangátviteli vonalakon. A V42bis adattömörítéssel a 86.400 bps is elérhető A Hayes szabvány A Hayes Microcomputer Products, Inc. társaság úttörő szerepet vállalt a parancsvezérlésű modemek területén. Sikeressé vált az általuk gyártott Smartmodem és az intelligens modemeknek a "Hayes kompatibilitás" az alapja. Az automatikus hívás (autodial = automatic dialing ) volt a Smartmodem egyik legfontosabb képessége. A modem tudott számot hívni és
előkészíteni a kommunikációt az összeköttetés létesítése után. Ha a vonal foglalt volt képes volt várni és újrahívni. A modemnek automatikus válaszoló képessége (autoanswer = automatic answer) is volt, vagyis bejövő hívás esetén létrehozta az összeköttetést a távoli modemmel. A modem a csatlakozó számítógépet automatikus válaszoló géppé alakította. A Hayes kompatibilis modemek a hívási folyamatot képesek a helyi képernyőn megjeleníteni rövid számkódokkal vagy olyan szavakkal, mint CONNECT, CONNECT 1200, CONNECT 2400, NO CARRIER, NO DIALTONE, BUSY, NO ANSWER, RING stb. Az egyes modemek között lehetnek apró különbségek, például DIALTONE helyett DIAL TONE, de legtöbb valamennyi gyártónál azonos. Az automatikus sebességérzékeléssel a modem megtudhatja a távoli modem sebességét és a saját sebességét erre állítja be. Példa a modem konfigurálásra: AT S0=0 +C0 S7=40 S9=4 &D2 A kódok jelentése az
alábbi: AT "Figyelem modem. Parancsok következnek" S0=0 Nincs automatikus válasz +C0 Nincs automatikus sebességérzékelés(fixsebességű) S7=40 40 másodperc várakozás a távoli modem válaszhangjára. S9=4 4/10 másodperc várakozás a vivő érzékelésére &D2 Hurok, ha a DTR jel változik. Ha távoli modem ERROR-ral válaszol, akkor általában egyik utasítást sem fogadta el. Ez a beállítás a modem memóriájában van és ha a Procomm tárcsázási parancsot küld ATDT1234567890 formában, akkor aktivizálódik. Az AT az ATtention (figyelem), a DT a DIAL TONE jelölésére szolgál vagyis impulzus tárcsázás helyett hangjelzést használunk. A 1234567890 a hívott szám Az ISDN rendszer a modemek alternatívája Az ISDN (Integrated Services Digital Network) telefonrendszer az összes analóg szolgáltatást digitálisra váltja fel. Az ISDN-ben a jelek digitálisak az otthoni telefontól vagy számítógéptől kezdve az egész hálózaton
át. Az ISDN-nek nincs szüksége modemre (bár ISDN-modem hirdetésekkel találkozhatunk). Az ISDN-csatoló(adapter) formálja az adatokat az ISDN telefonvonal számára és így ez veszi át a modem helyét. Az alapsávú ISDN (Basic Rate Interface vagy BRI) 128 kbits/sec sebességet biztosít. Akkor indokolt, ha nagy grafikus állományokat vagy mozgóképeket akarunk átvinni távoli pontról (vagy pontra), illetve ha nagy sebességgel akarjuk elérni a távoli lokális hálózatot. Ha digitális adatot akarunk átküldeni a partnerünknek az ISDN vonalon keresztül, akkor a vevőnek is rendelkezni kell digitális összeköttetéssel vagy interfésszel. Létezik néhány modem, amelyik mind a digitális, mind az analóg átvitelre alkalmas. Minden ISDN összeköttetés igényel egy hálózati terminátort (network terminator NT1, ami egy fekete doboz az ISDN vonal aktív végén) és egy terminál adaptert (TA, ami egy interfész az ISDN vonal és a számítógép között). A
jelenlegi problémát a szolgáltatások elérhetősége jelenti, mivel inkább csak a nagyobb városokban működik. Hogyan használjuk a modemeket a hálózaton A hálózaton a modemet kétféleképpen használhatjuk, egyrészt a hálózatról kifelé hívással, másrészt kívülről belépve a hálózatba. A hálózati használatra célszerű modem poolt létesíteni, mert ekkor az egyedi terminálokat nem kell felszerelni modemmel, hanem a modem poolban levő modemeket használhatják megosztva. A kívülről való belépés biztonsági kérdései nagyon fontosak a hálózati modemek esetében. A modemek A modemek nevüket a MOdulator-DEModulator szavak összevonásából kapták, mivel feladatuk a számítógép soros portja és valamilyen telefon-vonal kapcsolódásának ill. azon keresztül adatok küldésének és fogadásának biztosítása. A modern modemek feladatköre és funkciója azonban már jóval túlmutat ezen: a hibamentes adatátvitel biztosítása, hívások
kezdeményezése (tárcsázás) ill. fogadása Ezen kívül a mai modemeket a gyorsabb és biztosabb adatátvitel érdekében már adattömörítési ill. hibakorrekciós képességekkel is felruházzák A modemek intelligens egységek melyek maguk is saját mikroprocesszorral rendelkeznek és amelynek segítségével az illesztési funkciókon túl számos más, bonyolultabb feladat ellátására is képesek. A modemeknek két működési módjuk van: a parancs- és az adat(átviteli-)mód. A bekapcsolás után a modemek parancs módba kerülnek. Parancsmódban a számítógép soros portja felől érkező adatokat nem továbbítják, hanem parancsokként értelmezik. A legtöbb modem az ún Hayesparancskészlet egy többé-kevésbé módosított és/vagy bővített változtatát ismeri A Hayesparancsok mindegyike az AT (ATtention - figyelem) karaktersorozattal kezdődik; a modem innen tudja, hogy a következő karakter(sorozato)t parancsként kell értelmeznie. A parancs végét a
sorvége (carriege return, ASCII 13) karakter jelzi. A parancsok (a +++ kivételével) végrehajtását a modem a parancsot lezáró carriege return fogadása után kezdi el A parancs sikeres végrehajtását a modem az OK, sikertelenségét az ERROR üzenet küldésével jelzi. A legfontosabb Hayes-parancsok a következők: A/ Utolsó parancs ismétlése A parancs kiadása ekvivalens az utolsó parancs ismételt elküldésével. A Válasz (Answer) A parancs a modemet válasz módba helyezi. Hatására a modem fogadja a bejövő hívást, vagy átveszi a vonalat, és megpróbál kapcsolatot létesíteni a másik modemmel. Amennyiben az S7 regiszterben megadott időn belül nem kap vivő (carrier) jelet, úgy NO CARRIER üzenetet ad vissza. A sikeres kapcsolatfelépítést CONNECT v CONNECT XXXX (ahol XXXX a kapcsolódáskori átviteli sebesség) üzenet küldésével jelzi és a modemet adatátviteli módba helyezi. D Tárcsázás (Dial) A parancs a modemet hívó (originate)
módba helyezi. Tárcsázandó szám megadása nélkül a modem átveszi a vonalat és megpróbál kapcsolatot létesíteni a másik modemmel. A tárcsázási sztring tárcsázási számok és módosítók kombinációja. A tárcsázási módosítók a következők lehetnek: 0-9 A B C D # * - Tárcsázandó számok/karakterek P - impulzus-tárcsázás (Pulse dialing) kiválasztása R - a tárcsázás után a modemet válasz (answer) módba helyezi (Reverse dialing) T - hang-tárcsázás (Tone dialing) kiválasztása W - várakozás második tárcsahangra (Wait for dial tone) , - várakozás az S8 regiszterben meghatározott ideig ! - flash (vonal bontása 1/2 másodpercre) ; - tárcsázás után a modem azonnal parancsmódba tér vissza a vonal bontása nélkül (csak a parancs végén használható) A kapcsolat sikeres felépítését CONNECT v. CONNECT XXXX üzenet küldésével jelzi és a modemet adatátviteli módba helyezi. A foglalt vonalat BUSY, a tárcsázási hang hiányát
NO DIALTONE Hn Vonal ejtése/emelése (Hang-up) Az ATH ill. ATH0 parancs hatására a modem bontja a vonalat In Modem státusz- és diagnosztikai információinak megjelenítése (Information) Az n paraméter értékétől (0-9) függően különböző információkat jelenít meg. Általánosságban teljesen használhatatlan, mert minden modem másféleképpen jeleníti meg az adatokat. Ln Hangerő állítása (speaker Loudness) A parancs a modembe épített hangszóró hangerejének állítására ad lehetőséget. L0 a legkisebb, L9 a legnagyobb hangerpőt állítja be. Mn Hangszóró vezérlése (Monitor control) A parancs segítségével a beépített hangszóró használatát tilthatjuk/engedélyezhetjük. Az n paraméter jelentései : 0 - a hangszóró mindig kikapcsolva 1 - a hangszóró a vivő-jel észleléséig bekapcsolva 2 - a hangszóró mindig kikapcsolva Sr=n Regiszter állítása (Set register) A parancs a modem r-edik (0-ő) belső regiszterébe n (0-255)
értéket ír. A belső regiszterek tartalmának értelmezése néhány szabvány-regisztertől eltekintve teljesen modem-specifikus. Sr A r-edik belső regiszter tartalmának lekérdezése. +++ A szekvencia a modemet újra parancsmódba helyezi. Azért, hogy az esetlegesen az átviendő adatfolyamban előforduló azonos szekvencia ne váltson ki parancsmódot a szekvencia küldése előtt legalább 1 másodperces adásszünetet kell tartani. Az egyes modemek által ismert egyéb parancsok, a belső regiszterek tartalmának értelmezése és egyéb specifikus tulajdonságok leírása a modemhez mellékelt kézikönyvben olvashatók. A kapcsolat A modemes kapcsolat felépítése a hívás kezdeményezésével történik. A hívó fél ezt az ATDT parancs kiadásával teheti meg, minek hatására a modem a megadott számot tárcsázza (pl. ATDT06w72345345). A hívott fél a bejövő hívást a kicsengés mellett a vonalra kapcsolt modem által küldött RING v. RINGING üzenet
segítségével észlelheti Amennyiben modemmel kívánja fogadni a hívást, úgy ezt az ATA parancs kiadásával teheti meg. A parancs kiadásának hatására a modem "felveszi" a vonalat és magas frekvenciájú zörejek közepette megpróbál összekapcsolódni a hívó féllel. E folyamat során a modemek lehetőségeik és a vonal minőségének függvényében próbálnak "közös nevezőre" jutni. Amennyiben a kapcsolatfelvétel sikeres úgy ezt mindkét oldali modem a CONNECT üzenettel jelzi. Az ezek után a modemnek küldött adatokat az a másik oldal felé továbbítja. A parancs módba a legalább 1 másodperces adásszünet után kiadott +++ szekvenciával lehet visszatérni. Az ATH parancs kiadásával a kapcsolat a vonal bontásával megszakítható (a túloldalon a kapcsolat megszakadását a modem a NO CARRIER üzenettel jelzi). Lehetőség van azonban már fennálló vonali kapcsolat (kézi tárcsázás, beszélgetés) esetén is a
modemes kapcsolat felépítésére. Ez esetben megegyezés alapján az egyik félnek az ATD, míg a másiknak az ATA parancsot kell kiadnia, aminek hatására a modemek a tárcsázási/vonalfelvételi fázis kihagyásával próbálnak meg összekapcsolódni. A TELEKOMMUNIKÁCIÓ TÖRTÉNETE A kezdeti időkben az emberek számára a hallótávolságon túli üzenetváltás egyetlen módját a futárok ill. optikai jelek jelentették Az idő haladtával azonban egyre nagyobb igény mutatkozott mind az átvivendő információ mennyiségének, mind az átvitel sebességének növelésére. Ez újabb módszerek kidolgozását tette szükségessé Az első elektromos elven működő távközlő berendezést nem sokkal Volta korszakalkotó találmánya, az első elektromos áramforrás: a Volta-oszlop feltalálása után egy Sömmering nevű német professzor készítette el 1809-ben. Sömmering elektrokémiai távírója mindössze egy lapos víztartályból és az annak alján
elhelyezkedő - a latin ABC 25 betűjének és a tíz számjegynek megfelelő - 35 darab aranyozott fémtűből állt - ez utóbbiak voltak a vízbontáshoz szükséges elektródok. Kísérletei során a száz méter távolságban elhelyezett adó-berendezés segítségével egy Volta-oszlop energiáját a vevő oldal (a víztartály) felé futó 35 kábel valamelyikére a negatív, másikára a pozitív kivezetést vezetve a víztartályban a két éppen aktivált elektród segítségével - felszálló buborékok formájában észlelhető - vízbontást idézett elő. (A betűk kettesével történő elküldése könnyen kiküszöbölhető lett volna egy 36. vezeték alkalmazásával - de úgy látszik, Sömmering erre nem is gondolt.) A következő nagy lépést Cooke és Wheatstone 1837-ben szabadalmaztatott távírója jelentette, amely nehézkes kódok helyett már közvetlenül olvasható szöveg közlésére is alkalmas volt. A távíró a memória-áramkörökben is
alkalmazotthoz hasonló mátrixkiválasztásos elven alapult A távíró vevő oldalán ugyanis 5x5-es mátrixba rendezve voltak megtalálhatók az ABC betűit, amelyek közül az egyik átló mentén elhelyezett 5 darab mágneses tű közül 2-2 segítségével bármelyik betűt "ki lehetett választani". (Az átló menti tűk miatt a mátrixban már csak 20 betűnek maradt hely, így kényszerűségből a C,Q,U betűket az adáskor más betűkkel helyettesítették, az X,Z betűket pedig kihagyták.) Az első igazi, a gyakorlatban is alkalmazott elektromos távíró bemutatóját 1844. május 24-én tartotta Samuel Finley Breese Morse a washingtoni Capitoliumban. A bemutató során Morse az általa feltalált (és Joseph Henry segítségével tökéletesített) távíró segítségével Washingtonból a 65 km távolságban elhelyezkedő Bostonba a következő mondatot küldte el: "What hath God wrought" (azaz, "Mit művelt Isten!"). 1848-ban a
Missisippitől keletre Florida kivételével az Egyesült Államok mindegyik államában működött már távíróvonal. A technika fejlődésével megjelentek az első ún. telexek is, amelyek úgy működtek mint az írógépek, azzal az apró különbséggel, hogy a gépelt betűk nem csak helyben, de egy másik gépen is megjelentek. A mai táv-adatátvitelben alkalmazott technológia alapelvében nem sokban különbözik a telexben alkalmazottaktól. A kommunikációs hardver A PC-k egyik legsokrétűbben felhasználható része az UART (Universal Asynchronus Receiver/Transmitter - univerzális aszinkron adó/vevő), azaz a közismertebb nevén a soros port. A soros portok segítségével kétirányú kommunikáció valósítható meg a számítógép és egy másik eszköz, vagy esetlegesen két számítógép kötött. A PC-k UART-jai által is alkalmazott RS-232-es protokoll szigorú szabályokat határoz meg a zökkenőmentes átvitel biztosításának érdekében. Az
átvitelhez a szabvány 6 standard jelvezetéket definiál, amiket a PC-kben alkalmazott egységek további két jelvezetékkel egészítenek ki. A PC-k soros portjai univerzális 9 ill 25 tűs SUB-D csatlakozókra vezetik ki ezeket a jeleket, ezáltal lehetővé téve igen sokfajta eszköz illesztését. A csatlakozók szerkezete és a jelvezetékek kiosztása a következő: Név Láb Láb (25) (9) Irány Jelentés (a számítógép részére) TxD 2 3 kimenet Transmit Data (adatátvivő) RxD 3 2 bemenet Receive Data (adatfogadó) RTS 4 7 kimenet Request To Send (küldési kérelem) CTS 5 8 bemenet Clear To Send (kész a küldésre) DTR 20 4 kimenet Data Terminal Ready (adatterminál kész (jelen)) DSR 6 6 bemenet Data Set Ready (adategség kész (jelen)) RI 9 bemenet Ring Indicator (kicsengés jelz?) DCD 8 1 bemenet Data Carrier Detect (adatviv? jelen) GND 7 5 - Singal Ground (jelföld) - - - Protective Ground (védőföld) 22 1 Az
adatkommunikáció folyamatában mind a 8 vonal nélkülözhetetlen szerepet tölt be. Az adatkommunikáció kezdetén általában minden jelvezeték alacsony szinten van. Az adatkommunikáció két módon jöhet létre attól függően, hogy azt a saját gép, vagy egy külső egység kezdeményezi. Az első esetben a gép adási szándékát a külső egység (általában a modem) felé a DTR vezeték "felhúzásával" (jelszintjének magasra emelésével) jelzi. A csatlakoztatott eszköznek erre a DSR vezeték megemelésével kell válaszolnia ; amennyiben a külső egység nincs jelen, vagy nem üzemkész a DSR vonal alacsony állapotban marad. A kommunikáció ilyen, szabályozott módon történő megnyitását handshake-nek (kézfogás) nevezik. A kommunikáció megnyitása után az adatáramlást a két eszköz az RTS és CTS vonalak segítségével szabályozhatja. Nevükkel ellentétben e vonalak nem csak az adás, de a teljes adatkommunikáció szabályozására
képesek. A CTS szint magasan tartásával az adateszköz, míg az RTS jel felemelésével a számítógép jelzi, hogy kész a másik oldal felől érkező adatok fogadására. A másik esetben a kapcsolatot a külső adategység kezdeményezi. Modemek esetében a fent megismerthez hasonló handshake-et a kicsengés-jelző (RI) vonal a kicsengés ütemének megfelelő vezérlése el?zi meg. Ennek figyelésével szerezhet tudomást a számítógép a bejövő hívásról és utasíthatja a modemet annak fogadására (a vonal "felvételére"). A vonal felvétele után a modem el?ször - furcsa, magas hangú "zörgések" közepette - megpróbál kapcsolatot teremteni a telefon-vonal túloldalán elhelyezked? másik modem-egységgel. A vonali kommunikáció sikeres felépítését a számítógép felé a modem DCD vonal felemelésével jelzi. Az adatáramlás vezérlése ezek után a már megismert módon történik Az eddig nem tárgyalt két vezeték (TxD, ill. RxD)
funkciója a két egység közti tényleges adatátvitel (az adatbitek jeleinek) biztosítása. Az aszinkron soros kommunikáció során az elküldend? adatot (bájtot) soros formára alakítva küldik át e vezetékek egyikén - az adatiránynak megfelel?en -, ahol azt a vétel helyén ismét párhuzamos formára alakítva dolgozzák fel. Az átvitel kezdetén az adat-vonal logikai 1 szinten van. Az adás megkezdése előtt az adó a vonalat egy bitnyi id?re logikai 0 szintre húzza. E bevezet?, ún start-bit jelzi a másik egység felé az adás megkezdését. A start bit után az adatbitek (6,7 vagy 8 darab) továbbítása következik. A legmagasabb helyiérték? bit átvitele után az esetleges paritásbit, majd az adatbájt átvitelét lezáró 1 vagy 2 bit-ideig tartó, logikai 1 szint? stopbit(ek) átvitele következik. A paritás-ellenőrzést az fogadott adatok helyességének ellen?rzésére használják. Páros ill. páratlan paritás esetén a paritásbit értékét
adáskor úgy választják meg, hogy az adatbájtban fellelhető 1-es bitek számát párosra vagy páratlanra egészítse ki. Space ill. mark paritás esetén a paritásbit értéke mindig fixen logikai 0 ill 1 A vevő oldali egység az esetleges paritásbit újragenerálásával és a vettel történ? összehasonlításával ellenőrizheti az átvitel hibamentességét. Az adatátvitel ütemét (egy adatbit hosszúságát) és ezáltal a kommunikáció sebességét egy programozható sebesség? ütemgenerátor határozza meg. E generátor segítségével az átviteli sebesség 120 és 112000 baud között változtatható. A terminál-emuláció Mi is az a terminál-emuláció? Bár modemes körökben bevett és mindennapos a terminálemulációs program (röviden terminál-program) szó használata, valójában kevesen tudják valójában honnan is származik és mit jelent ez a név. A terminál tipikusan a UNIX operációs rendszerhez vagy az azzal azonos
architekturájú megoldásokhoz kapcsolható kifejezés, ahol is az egész rendszert egy nagy teljesítményű központi mag (pl. szerver) valamint több - előbbihez mérve - kisebb teljesítményű ún. terminál alkotja A terminálok - legalábbis a központi géphez képest - meglehetősen "buta" szerkezetek melyeknek funkciói és képességei a legegyszerűbb rendszerekben mindössze a billentyűzet és a képernyő kezelésére korlátozódnak (ezáltal gyakorlatilag csak a központi gép kihelyezett monitorát és billentyűzetét alkotják), míg a számítás-igényes feladatokat és a háttérműveleteket a központi gép végzi el. A központi gép minden egyes terminálhoz egy-egy teljesen külön ún. virtuális gépet (virtual machine - VM) hoz létre, ami a kihelyezett billentyűzeten és megjelenítőn, azaz a terminálon keresztül kommunikál a felhasználóval. Bár a "terminál" és a "központi gép" teljesen logikai fogalmak
általában mégis nem egyetlen gépen (processzoron) kapnak helyet, hanem fizikailag is jól elkülöníthető egységet alkotnak; előbbi esetlegesen magasabb rendű funkciók elvégzésére is alkalmas eszközökkel kiegészítve. A terminál és központi gép közti "párbeszéd" szabályainak meghatározására számos ún. terminál-protokollt dolgoztak ki (pl. ANSI, VT100, VT102, stb) E protokollokat úgy alakították ki, hogy a legkülönbözőbb környezetekben, a legkülönbözőbb hardveren is elláthassák feladatukat. Ezt teljesen általános célú ún vezérlő-szekvenciák (parancs-sztringek) kialakításával oldották meg, amelyek bármilyen célú felhasználás esetén egységesen és effektíven, a konkrét (terminál-)futtató-hardver ismerete nélkül alkalmazhatók. A terminál-emulációs programok gyakorlatilag valamilyen fizikai illesztésen (általában modem) keresztül az esetleges eszköz-kezelésbeli eltéréseket áthidalva kapcsolódnak
a központi géphez, azaz, az alkalmazott terminál-protokollnak megfelelően - a terminál konkrét fizikai megvalósításait elfedve - vezérlik a képernyőt és továbbítják a központi gép felé a billentyűzeten kiadott utasításokat (gombnyomásokat). Az ANSI vezérlő-szekvenciák Az egyik leginkább elterjedt és leggyakrabban alkalmazott terminál-emulációs protokoll az ANSI. Az ANSI egyértelműen legerősebben a képernyő-kezelést támogató protokoll, amely kevés lehetőséget nyújt a billentyűzet funkcióinak átdefiniálására, vagy intelligens terminálműveletek és lekérdezések végrehajtása. Éppen ezen tulajdonságainak és egyszerűségének köszönheti a BBS-ek vezérlőszoftverei által támogatott protokollok között elfoglalt előkelő helyét. Általánosságban elmondható minden terminál-emuláció esetén, hogy a központi gép felől érkező adatok a terminál kijelzőjén kerülnek megjelenítésre, míg a terminál billentyűzetének
lenyomásait az a központi gép felé továbbítja. Az átviteli protokollok speciális, az átvitel során egyéb helyzetekben nem generált szekvenciákat (karaktersorozatokat) definiálnak, melyek a terminált valamilyen művelet végrehajtására utasítják. Az ANSI-protokoll a képernyő vezérlésére meglehetősen sokrétű és általános utasítások kiadását teszi lehetővé. Minden ANSI vezérlőszekvencia az ESC+[ karaktersorozattal (dec 27, 91) kezdődik - a terminál innen tudja, hogy a következő karaktereket ANSI parancsként kell értelmezni ; a speciális prefix nélkül érkező karaktereket a terminál egyszerűen a soron következő karakter-pozicíóba írja, majd lépteti a kurzort. A lenyomott billentyűknek megfelelő ASCII kódokat pedig egyszerűen elküldi a központi gép felé. A leggyakrabb ANSI szekvenciák a következők: Szekvencia Jelentés/hatás ESC[#;#H Kurzor mozgatása a #.sor, # oszlopába ESC[#A Kurzor mozgatása # sorral felfelé
ESC[#B Kurzor mozgatása # sorral lefelé ESC[#C Kurzor mozgatása # pozícióval jobbra ESC[#D Kurzor mozgatása # pozícióval balra ESC[#s Kurzor-pozíció elmentése későbbi visszatöltés céljára ESC[#u Utolsó elmentett kurzor-pozíció visszatöltése ESC[2J Képernyő törlése és a kurzor pozícionálása a bal felső sarokba ESC[#;#;.;#m Attribútumok állítása (színek, villogás, aláhúzás, stb.) A táblázat szekvenciáiban #-tel jelölt helyekre a numerikus konstansoknak megfelelő sztringek/karakterek illesztendők Az e havi lemezmellékleten található LIGHTERM egy egyszerű ANSI-terminál emulációs program. A program szolgáltatásai mindössze a modemes kapcsolat felépítésére, valamint a terminál-emulációra korlátozódnak, mégis eredményesen használható bármilyen az ANSIprotokkolt támogató BBS-sel való kommunikációra. A program kezelése teljesen intuitív, így arra nem is vesztegetnék szót. Ja, még valami: a programot -
és persze a GLOBCOMM-ot is - TVSUPPORT és HUN direktívákkal kell lefordítani (lásd a Pascal Options|Compiler menüpontjának Compiler directives sorát). A GlobComm használata Nos, a unit használata nagyon egyszerű. A GlobComm mindent elvégez helyettünk nekünk csak azt kell megmondani neki, hogy melyik soros porton milyen paraméterek mellett kommunikáljon. A port megnyitását a ComOpenPortS eljárás meghívásával tehetjük meg átadva a port számát, az alkalmazni kívánt baudrátát és kommunikációs paramétereket, hogy kívánunk -e alkalmazni flow-controlt és hand-shake-et, valamint a fogadási- és küldési gyűrűpuffer méretét. A kommunikációs paraméterek megadására értelemszerűen a deklarált konstansokat alkalmazzuk, amik úgy vannak kialakítva, hogy sorrendjük esetleges összekeverése se okozzon gondot. Az eljárás sikeres megnyitás esetén true értékkel tér vissza; false esetén valami nem jött össze. Ezek után adatokat a
ComSendChar ill. ComSendString utasítások segítségével helyezhetünk a küldési gyűrű-pufferbe, amit a program alkalom adtán elküld. A még éppen a gyűrű-pufferben "tartozkódó" bájtok számát a ComGetSendDataSize függvénnyel kérdezhetjük le. A fogadott, de a pufferből még ki nem olvasott bájtok számát a ComGetDataSize függvény adja vissza, aminek zérustól eltérő értéke esetén az adatokat a ComGetChar segítségével olvashatjuk ki. A küldési ill. fogadási gyűrű-puffer bármikor üríthető (törölhető a benne lévő bájtok elküldése nélkül) a ComClearSendFIFO ill. ComSendFIFO utasításokkal A kommunikáció befejeztével a portot a ComClosePort-tal kell lezárni. Amennyiben több, azonos IRQ-t használó portot is megnyitottunk egyszerre, figyeljünk rá, hogy a megnyitással ellentétes sorrendben zárjuk le őket, mert csak így áll vissza helyesen a megszakítási lánc. Még egy dologra szertném felhívni a figyelmet:
a ComSendChar ill. ComSendString eljárások végrehajtása nem feltétlenül jelenti az átadott bájtok elküldését is, hiszen azok azt csak a gyűrűpufferbe helyezik el - az adatok elküldését a megszakítási rutinok intézik. Az adatok elküldése csak a ComSendDataSize=0 feltétel vizsgálatával állapítható meg. VIDEO SZABVÁNYOK VESA (Video Electronics Standards Association) Jelenleg a VESA 1.2 a szabvány, ez már minden videokártyán megtalálható, de már 20 is, ami terjedőben van. A kártyák általában nem tudják, de ugye mindenki találkozott már univbe-vel Na ez az. Ennyi általános rizsa után nézzük a szabványos VESA módokat: GRAFIKUS MÓDOK 15-bit mode number 100h 101h 102h 103h 104h 105h 106h 107h 7-bit mode number 6Ah - SZÖVEGES MÓDOK Resolution Colors 640×400 640×480 800×600 800×600 1024×768 1024×768 1280×1024 1280×1024 256 256 16 256 16 256 16 256 15-bit mode number 108h 109h 10Ah 10Bh 10Ch 7-bit mode number - Rows
Columns 80 132 132 132 132 60 25 43 50 60 HICOLOR ÉS TRUECOLOR GRAFIKUS MÓDOK Felépítés 15-bit mode number 7-bit mode number Resolution Colors 10Dh 10Eh 10Fh 110h 111h 112h 113h 114h 115h 116h 117h 118h 119h 11Ah 11Bh - 320×200 320×200 320×200 640×480 640×480 640×480 800×600 800×600 800×600 1024×768 1024×768 1024×768 1280×1024 1280×1024 1280×1024 32K 64K 16.8M 32K 64K 16.8M 32K 64K 16.8M 32K 64K 16.8M 32K 64K 16.8M (fenntartott:piros:zöld:kék) (1:5:5:5) (5:6:5) (8:8:8) (1:5:5:5) (5:6:5) (8:8:8) (1:5:5:5) (5:6:5) (8:8:8) (1:5:5:5) (5:6:5) (8:8:8) (1:5:5:5) (5:6:5) (8:8:8) Amint látható, a VESA módok 100h-tól kezdődnek. Persze ez nem azt jelenti, hogy VESA-n keresztül ne lehetne beállítani a stdandard VGA módokat. A mode number formátuma: (Di=i edik bit) D0-D8 = Mode number D8 == 0, nem VESA mode D8 == 1, VESA mode D9-D14 = fenntartott (= 0) D15 = fenntartott (= 0) Tehát a VESA módok 15 bitesek. Fontosabb VESA funkciók: Minden VESA
funkció az AX-ben adja vissza az eredményét. Status: AL == 4Fh: a funkció létezik Al != 4Fh: a funkció nem támogatott AH == 00h: sikerült AH == 01h: nem nyert VESA Információ lekérdezése: Input:AH = 4Fh VESA használat AL = 00h funkciókód ES:DI = Pointer az információs blokkra. Output: AX = Status Az Információs blokk: TVgaInfoBlock=RECORD VESASignature : array[1.4] of char;{ VESA } VESAVersion : word; { verzioszam} OEMStringPtr : ^char; { Pointer az OEM stringre} Capabilities : array[1.4] of byte; { lehetőségek} VideoModePtr : ^word; { pointer a támogatott módokra} TotalMemory : word; { Videomemória 64kb-os blokkokban} Reserved : array[1.236] of byte;{Fejlesztésre fenntertva} end; A támogatott módokra mutató pointer egy sima word-os tombre mutat, minden word egy mód száma. A végét FFFFh jelzi Vajon mi az a Capabilities: D0 : színösszetevők hossza változtatható-e 0 = csak 6 bit lehet 1 = változtatható D1-31 = fenntartva VESA mód információk
lekérdezése: Input AH = 4Fh VESA használat AL = 01h funkciókód CX = mód ES:DI = mutató az információs blokkra Output: AX = Status Módinformációs blokk: TModeInfoBlock=RECORD {általános információk} ModeAttributes : word; { mode attributes} WinAAttributes : byte; { A ablak(window) attributumai} WinBAttributes : byte; { B ablak(window) attributumai} WinGranularity : word; { ablak sűrűség (window granularity)} WinSize : word; { ablak méret (window size)} WinASegment : word; { A ablak szegmense (window A start segment) (a000)} WinBSegment : word; { B ablak szegmense (window B start segment) (b000)} WinFuncPtr : longint; { mutató az ablaklapozó függvényre (pointer to window function)} BytesPerScanLine: word; {bytes per scan line} { formális információk} XResolution : word; { horizontális felbontás} YResolution : word; { vertikális felbontás} XCharSize : byte; { karakter szélesség} YCharSize : byte; { karakter magasság} NumberOfPlanes : byte; { planek
száma (VESA módoknál mindig 1, csak a régebbi VGA módok használnak plane-eket } BitsPerPixel : byte; { bits per pixel} NumberOfBanks : byte; { bankok száma} MemoryModel : byte; { memóriamodell} BankSize : byte; { bankméret} NumberOfImagePages:byte; { képernyőlapok száma} Reserved : byte; { fenntartva} { VESA Super VGA Standard VS911022-15} RedMaskSize : byte; { piros színösszetevő hossza bitekben} RedFieldPosition : byte; { piros színösszetevő bitbeli eltolása } GreenMaskSize : byte;{ zöld színösszetevő hossza bitekben} GreenFieldPosition : byte; { zöld színösszetevő bitbeli eltolása } BlueMaskSize : byte; { kék színösszetevő hossza bitekben} BlueFieldPosition : byte; { kék színösszetevő bitbeli eltolása } RsvdMaskSize : byte; { fenntartott hely hossza bitekben} ReservedFieldPosition : byte; { fenntartott hely bitbeli eltolása} DirectColorModeInfo : byte; { attributumok} {VBE v2.0+} PhysicalAddress : longint; {linear frame buffer Címe}
reserved2 : array[1.212] of char; {fenntartva} end; Egy pár dolog magyarázatra szorul: mode attributes: D0 = 0 : Az adott módot nem bírja a hardware 1 : bírja a hardware D1 = 1 (Reserved) D2 = 0 : Output funkciókat nem támogatja a BIOS 1 : Output funkciókat támogatja a BIOS D3 = 0 : Mono 1 : Color D4 = 0 : Szöveges 1 : Grafikus D5-D15 : fenntertva Mik azok az ablakok. Nos mivel a CPU-val egyszerre címezhető memória 64K, egyszerre csak ennyit lát a video memóriából. Ez egy ablak (A window) az A000 szegmens A legtöbb módnál azonban be lehet hozni még egy ablakot a B000 szegmenst (B window). Az így látható memória már 128K. Ezeket pedig össze vissza lehet lapozgatni, így be tudjuk járni az egész videomemóriát. Ezeknek az ablakoknak vannak attributumai: Window Attributes D0 = Window supported 0 = Window is not supported 1 = Window is supported D1 = 0 : nem olvasható 1 : olvasható D2 = 0 : nem írható 1 : írható D3-D7 : fenntartott. A window
Granularity az ablaksűrűséget határozza meg. Ez azt jelenti, hogy milyen távolságra vannak egymástól az ablakok. A régebbi kártyáknál még előfordul, hogy ez 4K-ban van meghatározva, ami persze nekünk nem jó, mert 64k-t már úgy is látunk, így az a jó, ha 64K-ként kezdődnek a lapok. Ez majdnem az összes kártyánál így van Winsize az ablakok méretét határozza meg. (64K) WinFuncPtr mutató az ablaklapozó függvényre. Ez a cucc szintén elérhető a VESA 05-ös funkciójával, de ennél gyorsabb hozzáférést biztosít. Ha ez a mező nulla, akkor csak a VESA BIOS 05-t -t használhtjuk. Ablaklapozás : Input : ah=4fh al=05h bx=Window num (0=A, 1=B) dx=page Output : ax : Status A többi dolog vagy magától értetődő, vagy soha nem fog kelleni. A linear frame buffer még azért jöhet. Ez a dolog a VESA 20-tól vann bent Főleg a protected módú programok számára hasznos, segítségével együtt tudja címezni az egész videomemóriát. nem kell
lapozgatni Tehát ugyanúgy tudjuk kezelni egy 640X480 as képet, mintha mondjuk 320X200 lenne. Egy sima rep movsd és már kinn is van a képernyőmemóriában. A linear frame buffer által meghatározott cím jelenti a kép kezdetét. Nos ennyi egy alapvető VESA detektáló/használó program megírásához elég. ld detectpas Ja, és a legfontosabb, VESA mód beállítása: Input:AH = 4Fh AL = 02h BX = mód D0-D14 = Video mód D15 : 0 = törli a video memórát 1 = nem törli a video memóriát Output: AX = Status Ennyi a száraz, elmélet nagyon röviden. Egy pár gyakorlati dolog. Egy VESA információt lekérdező cucc: function GetVgaInfo(var block : TVgaInfoBlock) : word;ASSEMBLER; asm push es les di,block mov ah,4fh mov al,00h int 10h pop es end; Egy mód információt lekérdező: function GetModeInfo(var block : TModeInfoBlock;num : word) : word;ASSEMBLER;asm push es les di,block mov ah,4fh mov al,01h mov cx,num int 10h pop es end; Az egyik példaprogram egy VESA
detektáló pascalban, a másik meg a bump mapping 320X200 truecolorban egy zöld, egy kék, és egy piros színösszetevővel Watcom C-ben. A program kicsit (nagyon) lassú (de szép). Fel lehetne dobni , ha mondjuk a lapozásra nem a BIOS-t használná, hanem a mód információknál visszaadott lapozó függvényt hívná. Vagy, ha már protected mód, akkor legyen linear fame buffering. Vagy legyen teljesen assembly Lehet mit csinálni rajta A VIDEO-RENDSZER A PC-k alkotóelemei közül az egyik legnagyobb fejlődésen a megjelenítők mentek keresztül. Az idők folyamán fantasztikus léptekben nőtt az egyre újabb és újabb egységek által megjeleníthető felbontás és színek száma. A kompatibilitás érdekében a nagyobb felbontású kártyák képesek a kisebb felbontású kártyák üzemmódjaink emulálására (utánzására), azaz azokkal felülről kompatibilisek. A legáltalánosabban elterjedt megjelenítőket és tulajdonságaikat az alábbi táblázat foglalja
össze: Típus Megjelenítési üzemmódok Megjeleníthető Programozható színek max. karakterszáma generátorok MDA csak szöveges 2 HGC szöveges és grafikus 4 HGC+ szöveges és grafikus 4 1 InColor szöveges és grafikus 16/64 1 CGA szöveges és grafikus 16/4 EGA szöveges és grafikus 16(64)/4(64) 4 MCGA szöveges és grafikus 256(256K)* 8 VGA szöveges és grafikus 256(256K)* 8 XGA szöveges és grafikus 65536/(256K)* 8 SVGA szöveges és grafikus 16.8M* 8 *a megjeleníthető színek szabadon definiálhatók ; zárójelben a színek száma, amik közül az egyszerre megjeleníthetőek kiválaszthatók A HGC és CGA kártyák nem tartalmaznak különálló video-BIOS-t ; azok kezelését a rendszer-BIOS látja el. Ezzel szemben az EGA v fejlettebb kártyák már speciális, a kártya típusára jellemző egyedi video-BIOS-szal rendelkeznek, amit a rendszer-BIOS a POST során inicializál. Az eltérő típusú video-adapterek eltérő módokon (is) képesek
video-információk megjelenítésére. Az információ-megjelenítés módját és mikéntjét az alkalmazott felbontás, valamint a megjeleníthető színek száma együtt határozza meg. Az egyazon megjelenítési paramétereket azonosító ún. video-módokat minden adaptertípuson azonos, egyedi számokkal, az ún. video-móddal azonosítják Ez biztosítja, hogy adott megjelenítési formátumot minden - azt támogató - adapteren azonos módon lehessen aktivizálni. A standard video-módokat és jellemzőiket a következő táblázat mutatja: Mód (hex) Típus Vízszintes Video-lap felbontás * kezdete függőleges felb. * (hex) színek száma 40*25 B800 80*25 B800 320*2004 B800 640*2002 B800 80*25 B000 160*20016 320*20016 640*2004 Karakterméret Minimális adapter 00,01 szöveges 8x8* CGA 02,03 szöveges 8x8* CGA 04,05 grafikus 8x8 CGA 06 grafikus 8x8* CGA 07 szöveges 9x14 08 grafikus Pcjr 09 grafikus Pcjr 0A grafikus Pcjr 0B EGA BIOS 0C EGA BIOS 0D grafikus 320*20016
A000 8x8 EGA 0E grafikus 640*20016 A000 8x8 EGA 0F grafikus 640*3503 A000 8x14 EGA 10 grafikus 640*3504/16 A000 8x14 EGA 11 grafikus 640*4802 A000 8x16 MCGA,VGA 12 grafikus 640*48016 A000 8x16 MCGA,VGA 13 grafikus 320*200256 A000 8x16 MCGA,VGA a karakter mátrix mérete az adatpter típusától függ: CGA=8x8, EGA=8x14, * ill. *: VGA=9x16 ill. MDA,EGA=9x14, VGA=9x16 Egy rendszerben általában csak egy video-adaptert szoktak alkalmazni, de CGA, EGA, MCGA, VGA, XGA és SVGA kártyák alkalmazása esetén lehetőség van egy másik MDA vagy Hercules típusú (HGC, HGC+, InColor) illesztő beépítésére is. A mindkét video-adaptert csak az ilyen konfigurációt támogató rendszerek (pl. CAD programok, Turbo Pascal, stb) tudják kihasználni különböző típusú információk megjelenítésére. A video-vezérlő A video-vezérlő (v. video kártya ) feladata a kép előállításához szükséges vezérlőjelek generálása és azok továbbítása a monitor felé. A
megjelenítendő képre vontakozó információkat egy, a video-kártyán elhelyezett RAM egység, az ún. video-memória tárolja Ez az egység a processzor által megcímezhető tartományban fekszik, így a programok ugyanolyan módon írhatják/olvashatják, mint a memória bármely más területét. A video-memória tartalmának értelmezése és feldolgozása a megjelenítési módtól függ. Szöveges módban a teljes képet a karakterek ábrájának sokasága alkotja. A karakterek képét leíró pixel-mátrix táblázato(ka)t az adapter a karaktergenerátorban, egy belső, ROM vagy RAM memóriában tárolja. Előbbi esetben a megjelenítő csak a gyártáskor beégetett karakterképek megjelenítésére alkalmas, míg utóbbi alkalmazása estén lehetőség nyílik a karakterek képének átdefiniálására is. A karakterek képét mindig egy 8 pixel széles és a megjelenítőtől ill a videomódtól függő magasságú mátrix tárolja A mátrix minden egyes eleme azt
határozza meg, hogy az adott helyen látható -e pont vagy sem ; ha a megfelelő bit be van kapcsolva, akkor a megfelelő pixel az előtér, míg egyébként a háttér színével jelenik meg. A karakterek képét definiáló 8xN-es mátrix minden bájta a karakter alkotó egy-egy sort határozza meg, így az összesen N bájton ábrázolható. A karakter-generátor egy elemét az Ábra 1 mutatja 1. ábra A nagy "A" betű képét leíró 8x8-as mátrix A legtöbb video-kártya jóval több video-memóriát tartalmaz, mint amekkora tárterület egy adott video-módban egy teljes képernyő tárolásához szükséges. Ebben az esetben lehetőség nyílik több képernyő szimultán tárolására a video-memóriában. Ez rendkívül hasznos lehet animációk készítésénél, ugyanis a látható képernyő módosítása nélkül generálható az animáció következő fázisa, majd egy pillanat alatt megjeleníthető. Az egy-egy képernyőnek megfelelő
információegységet lapnak nevezzük. A lapok kezelésével a későbbiekben ismerkedünk meg. Az ún. accelerator (gyorsító) kártyák a standard CRT-vezérlő chipen kívül egyéb, elemi rajzolási funkciók önálló ellátására képes speciális céláramköröket is tartalmaznak. Ezen áramkörök olyan egyszerű, általános funkciók ellátására képesek, mint például vonal, téglalap, ellipszis rajzolása a képernyőre, vagy egy terület kitöltése. A fejlettebb gyorsítókártyákon már bittérkép manipulációra (kitöltés mintával, nagyítás/kicsinyítés, stb.) képes áramkörök is találhatóak Az ezen kártyák speciális tulajdonságait ismerő és azokat kiaknázó programok a gyorsító-áramkörök által támogatott funkciókat a CPU igénybevétele nélkül képesek végrehajtani. A programoknak a támogatott objektumok megrajzolásához mindössze azok paramétereit kell megadniuk a video-vezérlő számára, ami ezek felhasználásával maga
"rajzolja be" azokat a video-memóriába. Ezen lehetőség kihasználása nem csak a processzort mentesíti a megjelenítéshez kapcsolódó számítási feladatok egy része alól, de a rendszer-buszt is jóval kevésbé terheli a minimális adat-átvitel miatt. Az általános tévhittel szemben azonban a gyorsítókártyák - lényegükből adódóan - a használatukra fel nem készített, esetleg azt nem is igénylő programok grafikus képességeiben semminemű gyorsulást nem idéznek elő. Az accelerator kártyák egy speciális vállfaját képezik a 3D gyorsító-kártyák melyek a fenti funkciókon kívül rendkívül erős támogatást nyújtanak a térbeli objektumok képernyőn történő "három dimenziós" megjelenítéséhez (renderelés). MÁGNESES ÉS OPTIKAI TÁRAK Mágneslemezes egységek Az IBM PC-khez meglehetősen sok mágneslemezes egységet is kifejlesztettek. Bár többféle-képpen is csoportosíthatóak, talán érdemes a
kapacitásukat, sebességüket, felhasználási területüket és megjelenésüket legjobban meghatározó jellemzőjük, a tároló-médium kezelése és típusa alapján csoportosítanunk őket. E szerint a mágneslemezes meghajtók két nagy csoportra oszthatók: a hajlékonylemezes és merevlemezes meghajtókra, melyek közül idegen szóval az előbbit floppy-, míg utóbbit winchester-meghajtónak is szokás nevezni. A fent megemlített két típuson kívül természetesen még számos más mágneslemezes tároló egységet is kifejlesztettek. Ezek közül talán még a cserélhető "kazettás" merevlemezt érdemes megemlíteni, melyben a tároló médium (a kemény mágneslemezek) cserélhető. Fizikai lemezkezelés A mágneses lemezeken található információ olvasására és azok felírására a lemezegységekben az ún. író-olvasó fejek szolgálnak Mint nevük is mutatja ezek kombinált alkatrészek, melyek mind elektromágneses mezők keltésére,
mind ezen mezők fluxus-változásai által indukált elektromos áram felfogására képesek. A lemez írása során a fej író részében elektromágneses teret keltenek, ami a lemez - éppen a fej alatt elhelyezkedő - mágnesezhető rétegére is kiterjed, ami megőrzi állapotát. Olvasás során az olvasó fejben indukált elektromos áram változásainak dekodólásával nyerhetők vissza az információk a lemezről. Egy adott lemezes egységben használt íróolvasó fejek számát a meghajtóban használt lemezek (pontosabban azok oldalainak száma) száma határozza meg. Az adatok olvasásához és írásához egy időben mindig csak egy fejet használnak fel, bár a fejek - mechanikájukból eredően - általában mind együtt mozognak a lemez(ek) felett. A digitális információ tárolása a mágneses adathordozókon azonban meglehetős techinkai problémát jelent. Az olvasó fejben ugyanis maga az elektromágneses mező nem, csak annak fluxus-változásai
indukálnak áramot ; azonos állapotú szemcsék felett elhaladva az olvasó fej kivezetésein nem mérhető feszültség. Kézenfekvőnek tűnik az ötlet, hogy a digitális 0 és 1 jelek mindegyikének a két pólus egyikét feletessük meg. Ez azonban - mint azt majd a későbbiekben meglátjuk - nem járható út. Ebből eredendően egy digitális jel (pl. a bináris 1) tárolásához a két-állapotú mágneses mező mindkét állapotát "fel kell hogy használjuk". Kézenfekvő az ötlet, hogy ha az első digitális jelet a mágneses tér változásával kódoltuk, akkor a másik (bináris 0) digitális jelnek a mágneses mező változatlansága feleljen meg. Így a kódolt jelek közül mindig csak az egyiket (esetünkben az 1-esnek megfelelőt) tudjuk azonosítani - a másikra csak az előző hiányából következtethetünk. Több szomszédos 1 jel diszkréten azonosítható, míg a 0 jelek számát - egyenletes forgási sebességet feltételezve - a határoló
jelek (1) olvasása közt eltelt időből állapíthatjuk meg. Csakhogy a lemezek forgási sebessége koránt sem tekinthető egyenletesnek, így több egymást követő "nincs-jel" (0) különböző forgási sebességek mellett - a forgási-olvasási szinkront elvesztve - különböző számú jelnek olvasható. Így az információ tárolása során biztosítani kell, hogy a lemezre vitt jelek információtartalmától függetlenül korlátozva legyen az egymást követő "nincs-jel"ek száma. E problémára megoldására többfajta kódolási algoritmust is kidolgoztak A legkézenfekvőbb ötlet, hogy az egyik digitális jelnek a 10 ("van jel"+"nincs jel"), míg a másiknak az 11 (két "van jel") mágneses kódot feleltessük meg, ezáltal biztosítva, hogy két 1-es ("van jel") között maximum egy darab 0 ("nincs jel") lehessen. Ezt a kódolást hívják FM (frekvencia-modulált) kódolásnak. A kódolás
előnye egyszerűsége, hátránya viszont meglehetős helyigénye, hiszen alkalmazása esetén n bit tárolásához 2*n mágneses jel szükséges. A FM továbbfejlesztett változata az MFM (módosított frekvencia-moduláció) kódolás, mely során - az FM-val szemben - csak egymást követő digitális 0 jelek esetén illesztenek szinkron 1-eseket a jelek közé. A kódolás előnye az FM-mel szemben kisebb helyigénye, hiszen azonos területen utóbbival átlagosan 1,5-ször annyi információ tárolható. A egyre növekvő igények a háttérkapacitások növelése iránt újabb kódolási algoritmusok kidolgozását tették szükségessé. A lemezen az adatok nem folyamatosan, hanem logikai egységekbe, ún. szektorokban találhatóak. A szektor a lemezes egységek által kezelhető legkisebb egység A szektorok két részből állnak: a szektor pozícióját (oldal, sávszám, szektorsorszám) és hosszát tartalmazó fejlécből, valamint az adatblokkból. A fejlécet és
az adatblokkot egyegy speciális jel vezeti be, ami egyértelműen azonosíthatóvá teszi kezdetüket A szektor felírásakor a vezérlő mindkét blokkot ellenőrző összeggel látja el ezáltal biztosítva az adatintegritást. Az ellenőrzőösszeg generálásának módja eltérő lehet: floppy-lemezeken általában a csak a hibák detektálására alkalmas ún. CRC (Cyclic Redundancy Check - ciklikus redundancia-vizsgálat) módszert, míg merevlemezes meghajtók esetén az esetlegesen adatok javítását is lehetővé tevő ECC-t (Error Cheking and Correcting - hibaellenőrző és -javító) alkalmazzák. Mivel a meghajtók minden sávon azonos szektorszámmal és -mérettel dolgoznak, így a lemez szektorainak számát a legkisebb sávgyűrű és a szektor mérete határozza meg. A szektorok között elhelyezkedő kitöltő területek (GAP) célja a meghajtó számára a következő szektor adatainak fogadására való felkészüléséhez szükséges idő biztosításán
kívül, a nagyobb sávokon a szektorok közötti "űr" kitöltése is. Régebbi típusú meghajtókon az első szektor pozíciójának meghatározásához a lemezen egy fizikai jelet, egy ún index-lyukat helyeztek el. A lemez forgása közben a fénykibocsátó dióda fölé érő lyukon át előbbi fénye a fotocellára esett, jelezvén az első szektor kezdetét. Az adatátviteli sebesség növelésére nyújt lehetőségét az ún. szektor-fésűlés (interleaving). Egy szektor beolvasása után a meghajtónak ellenőriznie a szektor tartalmának helyességét ellenőrzőösszegén keresztül, el kell küldenie azt a gépnek, valamint újabb műveletek elvégzéséről kell döntenie. Mindezen folyamatok időt vesznek igénybe, ami alatt a lemez a fej alól továbbfordul. Ha fizikailag is szigorúan sorszámuk szerint helyeznénk el egymás után a szektorokat a lemezen, akkor - a lemez továbbfordulásának köszönhetően - minden szektor beolvasása után egy
teljes fordulatot kellene kivárnunk, amíg a következő szektor kezdete újból a fej alá érkezne. Ha azonban ezeket a szektorokat már eleve az egyik szektor beolvasásának kezdete és a következő szektor olvasásának megkezdése közötti elfordulás mértékének megfelelően eltolt sorrendben sorrendben írjuk fel a lemezre, a következő szektor a teljes fordulat kivárása nélkül beolvasható. Ekkor a meghajtó olvasó része - több szektorra kiterjedő műveletek esetén is - közel 100%-os kihasználtsággal működhet.A két, sorszámukban egymást követő szektor között elhelyezkedő szektorok száma (plusz 1) adja meg az interleave faktorát (tehát pl. ha az interleave-faktor 2 és a szektorok száma 17, akkor a szektorok 0,9,1,10,2,11,3,12,4,13,5,14,6,15,7,16,8 fizikai sorrendben kerülnek felírásra). A hajlékonylemezes illesztő egység A floppy-meghajtó az eredeti PC-k azon - meglehetősen kevés - alkatrészeinek egyike volt, amelyet nem az Intel vagy
az IBM fejlesztett ki, hanem egy külső cég, a NEC által előállított komponens volt. Ez a meghajtó 5,25"-es, duplasűrűségű (DD - Double Density) lemezek kezelésére volt képes, melyeket 360KB adatkapacitásra formázott. Később megjelentek ennek a meghajtónak továbbfejlesztett változatai, melyek a 360KB-os lemezformátum további támogatása mellett az 1.2 MB formázott kapacitású HD (High Density - nagysűrűségű) lemezek kezelésére is képesek voltak. Ezen meghajtókkal egyidőben jelentek meg az 5,25 inches hajlékony-lemezeknél sokkal kompaktabb, parktikusabb és biztonságosabb tokozásban megjelenő 720KB formázott kapacitású lemezekkel dolgozó, 3,5"-es meghajtók is. Mára már szinte egyeduralkodóvá váltak e meghajtó továbbfejlesztett, 1.44MB-os kapacitású lemezekkel is dolgozni tudó változatai. Az ez után kifejlesztett 288MB-os ED (Extra Density - extra- sűrűségű) meghajtók és lemezek azonban - viszonylag
magas árunknak köszönhetően - nem igazán terjedtek el. Az eredeti PC-k összesen 4 darab mágneslemezes meghajtó illesztését tették lehetővé, amelyek maximális számát azonban az AT-kben - a merevlemezes meghajtók megjelenésének köszönhetően - két darabra csökkentették. Az eredeti illesztőkártya i8272 típusú perifériavezérlő áramkör köré épült, melyeket később a jóval fejlettebb i82077 ill NS 82C765 áramkörökkel helyettesítettek. Bár az AT-k BIOS-a már nem támogatja, egy gépbe két darab illesztőkártyát is el lehet helyezni. Az adapterek báziscímei a következők lehetnek: Adapter sorsz. 1 2 Báziscím 3F0h 1F0h Az első adapter szabványosan a IRQ6 megszakításvonal és a 2. DMA csatorna segítségével bonyolítja az adatforgalmat, míg a második vezérlőhöz a betölthető illesztőprogram bármelyik szabad megszakítást és bájt szervezésű DMA csatornát felhasználhatja. A lemezvezérlő parancsok végrehajtása mindig a
vezérlőprogram részéről a megfelelő paraméter-regiszterek feltöltésével, majd a parancskód kiadásával kezdődik, melyek után az esetleges paraméterek elküldésére kerül sor. A meghajtó a parancs végrehajtása után az IRQ6 vonal aktiválásával jelzi, hogy befejezte a feldolgozást. A parancs végrehajtásának eredményességéről a státusz-regiszter és a belső állapotregiszterek kiolvasásával tájékozódhatunk. A vezérlő a következő parancsok végrehajtására képes: Parancs Teljes sáv beolvasása Bájtok száma 9 0 Paraméterek beállítása Meghajtó állapotának lekérdezése 3 2 Szektor(ok) írása 9 0 0 0 0 MT Szektor(ok) olvasása 9 0 MT Újrakalibrálás (fej mozgatása a 0. sávra) 2 Megszakítás generálása Töröl szektor(ok) írása 1 9 0 0 0 0 MT Szektor-fejléc beolvasása 2 0 0 Töröl szektor(ok) olvasása 9 0 MT Teljes sáv formázása 10 0 0 Belső regiszterek olvasása* Fejmozgatás (seek) 1
3 Verzió lekérdezése* Egyenlőség vizsgálata* 1 9 0 0 0 0 0 MT MF M 0 0 0 0 MF M 0 MF M 0 0 0 0 MF M 0 MF M 0 MF M 0 MF M 0 0 0 0 0 MF M Parancskód (binárisan) 76543210 0 0 0 0 1 0 0 0 0 0 0 0 O 0 0 0 0 O 0 0 0 HDS O 1 HDS 1 DS1 DS0 1 1 0 0 DS1 DS0 0 1 0 SK 0 0 0 0 HDS 1 DS1 DS0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 HDS 1 0 0 0 DS1 DS0 1 1 DS1 DS0 0 0 0 1 0 0 0 0 0 1 HDS 0 DS1 DS0 1 0 0 SK 0 0 0 1 HDS 1 DS1 DS0 0 0 0 0 0 0 0 1 HDS 1 DS1 DS0 0 0 0 0 0 0 0 SK 0 0 0 0 1 1 0 1 1 0 0 0 HDS 1 1 HDS 0 0 DS1 DS0 1 0 1 1 DS1 DS0 0 0 0 1 Perpendikuláris mód* 2 0 0 0 Konfigurálás* Szektor(ok) ellenőrzése 4 9 0 MT Kisebb vagy egyenlőség vizsgálata* 9 EC MT Nagyobb vagy egyenlőség vizsgálata* 9 0 MT Relatív fejmozgatás* 3 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 HDS 0 0 0 MF M 0 MF M 0 MF M 0 DIR 0 0 SK 1 1 0 0 0 1 DS1 DS0 1 0 WG GAP T 1 1 1 0 0 SK 0 1 0 1 HDS 0 DS1 DS0 0 1 0 SK 0 1 0 1 HDS 1 DS1 DS0 0 1 0 0 0
0 0 0 0 1 0 HDS 1 HDS DS1 DS0 1 1 DS1 DS0 - a *-gal jelölt parancsokat az i82077AA áramkör köré épülő vezérlők nem ismerik - a * jelzésű parancsok csak EHD vezérlőkön alkalmazhatók Minden parancsot az elsőnek átadott bájt alsó 5 bitje alapján ismer fel a vezérlő, míg a parancs fennmaradó bitjeit különböző paraméterek átadására használja ki. Az alábbi táblázatban e paraméterek rövidítéseinek jelentései találhatóak meg: - Az MFM bit a kódolás módját határozza meg: - MFM = 0 esetén FM, míg - MFM = 1 esetén MFM kódolást alkalmaz a vezérlő. - Az MT (MultiTrack) bit bekapcsolásával jelezhetjük, hogy a műveletet több szektorra is ki akarjuk terjeszteni. - A DIR (DIRection) bit a relatív fejmozgatás irányát határozza meg: - DIR = 0 esetén a 0. sáv felé, míg - DIR = 1 esetén a magasabb sorszámú sávok felé mozdul el a fej. - Az SK (SKip deleted data mark) bit a töröl jelzésű szektorok kezelésének módját
adja meg: - SK = 0 esetén a törölt szektorokat is figyelembe veszi, míg - SK = 1 esetén ignorálja azokat. - HDS (Head Select) fejkiválasztás bit - DS1,DS0 (Drive Select) meghajtó sorszámának 1. és 0 bitjei A parancsok esetleges paramétereit közvetlenül a parancskód kiadása után folyamatosan kell a vezérlőnek elküldeni. Az egyes parancsokhoz tartozó paraméterek a funkciók leírásánál találhatók. A parancs végrehajtása után a funkcióknál felsorolt visszatérési értékeket ki KELL olvasni. A táblázatban nem definiált parancsok vagy várakozó állapotba hozzák a vezérlőt, vagy gyártónként eltérő, speciális funkciókat aktiválnak. A parancsok leírásánál használt paraméterek neveit és jelentésüket a következő táblázat tartalmazza. Az egyes paraméterek mind bájt méretűek Kód DRV CYL HEAD SEC SIZE Jelentés fej és sáv kiválasztása 7-3 : fenntartva (0) 2 : fej kiválasztás 1-0 : meghajtó száma (0-3) sávszám
(cylinder) fej sorszáma szektor száma szektorméret kódja ( szektorméret = 2^SIZE * 128 bájt ), vagy 0, ha DTL határozza meg a méretet CNT GAP DTL ST0 ST1 ST2 szektorok száma (teljes sáv esetén a legutolsó szektor sorszáma) a szektorok közötti szinkronizációs terület mérete bájtban ha a SIZE kód 0, akkor DTL határozza meg a szektor méretét bájtokban Belső állapotregiszter 0: 7-6 : művelet eredménye: 00 : a művelet sikeresen befejezve 01 : a végrehajtás megszakadt 10 : érvénytelen parancs 11 : a végrehajtás a készenléti jel megváltozása miatt megszakadt 5 : fejmozgatás befejezve 4 : hiba 3 : a meghajtó nem kész az adatátvitelre 2 : fej sorszáma a megszakításkor 1-0 : meghajtó sorszáma Belső állapotregiszter 1: 7 : sáv vége (a megadottnál kisebb sorszámú az utolsó szektor a sávon) 6 : fenntartva (0) 5 : CRC hibás fejléc vagy adatblokk 4 : túlfutás miatt adatvesztés 3 : fenntartva (0) 2 : a szektor ID-je nem található
1 : írási kísérlet írásvédett lemezre 0 : ID kezdete jel nem található Belső állapotregiszter 2: 7 : fenntartva (0) 6 : törölt (deleted) jelzésű szektor 5 : CRC hibás adatblokk 4 : hibás sávszám (az olvasott nem egyezik meg a megadottal a rossz fejpozíció miatt) 3 : egyenlőség-vizsgálat sikeres (a tárolt és átvitt adatok megegyeznek) 2 : vizsgálat sikertelen, szektor nem található 1 : hibás sáv, az ID nem található 0 : adatblokk kezdete nem található Az illesztő egység regiszterei az eddig megszokotthoz képest kicsit "furcsán" helyezkednek el (nem lineárisan) ami valószínűleg a korai integrált floppy- és merevlemez-illesztő kártyák miatt lett így kialakítva. Cím B+2 B+4 Típus Funkció W/O Digitális kimeneti regiszter (DOR - Digital Output Register) 7-4: 3.-0 meghajtómotor vezérlése (0 - ki, 1 - be) 3: DMA átviteli mód engedélyezése (PS/2) 2: 1-es írására a meghajtó alaphelyzetbe áll (FDC reset) 1-0:
meghajtó kiválasztása (drive select) R/O Állapotregiszter 7: adat kész (kiolvasható az adatregiszteren keresztül) 6: adatáramlás iránya ( 1 - olvasás a lemezről, 0 - írás a lemezre) 5: nem-DMA (porton keresztüli) mód 4: a vezérlő foglalt (nem fogad kéréseket) 3-0: 3.-0 meghajtó foglalt (pozícionálás folyamatban) B+4 W/O Kontroller adatátviteli sebesség kiválasztó regisztere 7: szoftver reset (1-es írásával) 6: power down 5: fenntartva (0) 4-2: írási előkompenzáció (alapérték 000) 1-0: átviteli sebesség kiválasztása 00: 500 kb/s MFM ill. 250 kb/s FM mód esetén 01: 300 kb/s MFM ill. 150 kb/s FM 10: 250 kb/s MFM ill. 125 kb/s FM 11: 1000 kb/s MFM ill. érvénytelen FM mód esetén B+5 R/O Meghajtó parancs-/státusz-regiszterek (ST0,ST1,ST2,ST3) B+5 W/O Meghajtó parancs- és adat-regiszter B+7 R/O Digitális bemeneti regiszter (DIR - Digital Input Register) 7: lemezcsere történt 6-0: FDC tri-state B+7 W/O Konfigurációs vezérlő
regiszter 7-2: fenntartva 1-0 ua. mint a B+4 esetén, de csak MFM mód érvényes *"B" a vezérlő báziscímét jelöli Parancsok végrehaj(ta)tása Az i8272 meghajtó-vezérlő áramkör vezérlése három fázisra bontható. A parancskiadási fázis során a processzor a parancskódot ill. a művelet elvégzéséhez szükséges bájtokat adja át a meghajtó-vezérlő áramkörnek a B+5 regiszteren keresztül. A végrehajtási fázis során a kontroller elvégzi a rá bízott feladato(ka)t, majd a válasz fázis során azokat az átviteli módnak megfelelően az adatregiszteren keresztül vagy DMA felhasználásával továbbítja a számítógép felé. A parancskiadási fázis során először a parancskódot majd a paraméter-bájtokat kell továbbítani a kontroller felé. Az utolsó bájt átadása után a kontroller automatikusan elkezdi a végrehajtást. Az adatok küldése (parancs fázis) ill PIO mód esetén az adatok vétele (válasz fázis) során a
processzornak minden egyes bájt írása ill. olvasása előtt a B+4 státusz-regiszter olvasásával meg kell vizsgálnia, hogy a vezérlő kész -e az adatok fogadására ill. azok küldésére A végrehajtási fázis során nem szükséges a státusz-regiszter folyamatos vizsgálata (polling), mert PIO (nem-DMA) mód alkalmazása esetén a kontroller minden egyes újabb kiolvasható bájt fogadása esetén megszakítással jelzi azt a processzor felé. A válasz fázis során a parancsoknál leírt összes státusz bájtot ki kell (!) olvasni, mert azok kiolvasásáig a kontroller semmilyen parancsot sem fogad. Az utolsó válasz-bájt kiolvasása után a kontroller automatikusan befejezi a parancsot és kész újabb művelet végrehajtására. A táblázatban nem definiált parancsok vagy várakozó állapotba hozzák a vezérlőt, vagy gyártónként eltérő, speciális funkciókat aktiválnak. A parancsok leírásánál használt paraméterek neveit és jelentésüket a
következő táblázat tartalmazza. Az egyes paraméterek mind bájt méretűek A vezérlő által értelmezett parancsok leírása A sorozat előző részben található volt egy táblázat, amely a hajlékonylemezes meghajtó-vezérlő áramkör által ismert parancsokat és az átadandó bájtok számát valamint egy másik, amelyek a paraméterek jelentéseit ismertette. Nos, az ott felsorolt parancsok és paramétereik részteles leírása itt található: Fázis Parancs R/W W W W W W W W W W Adat (bitek 7-0) MT 0 MF 0 Szektor(ok) olvasása SK 0 0 1 1 0 0 0 0 HDS DS1 DS0 CYL HEAD SEC SIZE CNT GAP DTL Végrehajtás Válasz Parancs R R R R R R R W W W W W W W W W ST0 ST1 ST2 CYL HEAD SEC SIZE MT 0 MF 0 Törölt szektor(ok) olvasása SK 0 1 1 0 0 0 0 0 HDS DS1 DS0 CYL HEAD SEC SIZE CNT GAP DTL Végrehajtás Válasz R R R R R ST0 ST1 ST2 CYL HEAD Megjegyzés Szektor-fejléc adatok Adatátvitel (olvasás) a kontroller és a processzor között PIO v. DMA útján
Vezérlő állapotregiszterek Szektor-fejléc a végrehajtás után Szektor-fejléc adatok Adatátvitel (olvasás) a kontroller és a processzor között PIO v. DMA útján Vezérlő állapotregiszterek Szektor-fejléc a végrehajtás után R R Parancs W W W W W W W W W SEC SIZE MT 0 MF 0 0 0 szektor(ok) írása 0 0 1 0 1 0 0 HDS DS1 DS0 CYL HEAD SEC SIZE CNT GAP DTL Végrehajtás Válasz R R R R R R R ST0 ST1 ST2 CYL HEAD SEC SIZE Szektor-fejléc adatok Adatátvitel (írás) a processzor és a kontroller között PIO v. DMA útján Vezérlő állapotregiszterek Szektor-fejléc a végrehajtás után törölt szektor(ok) írása Paranc W M M 0 0 1 0 0 1 s T F W 0 0 0 0 0 H DSDS DS 1 0 W CYL Szektor-fejléc adatok W HEAD W SEC W SIZE W CNT W GAP W DTL Végreh Adatátvitel (írás) a processzor és a kontroller között PIO v. DMA ajtás útján Válasz R ST0 Vezérlő állapotregiszterek R ST1 R ST2 R CYL Szektor-fejléc a végrehajtás után R HEAD R SEC R SIZE
teljes sáv olvasása Paranc W 0 M SK 0 0 0 1 0 s F W 0 0 0 0 0 H DSDS DS 1 0 W CYL Szektor-fejléc adatok W HEAD W SEC W SIZE W CNT W GAP W DTL Végreh Adatátvitel (írás) a processzor és a kontroller között PIO v. DMA ajtás útján Válasz R ST0 Vezérlő állapotregiszterek R ST1 R R R R R ST2 CYL HEAD SEC SIZE Szektor-fejléc a végrehajtás után szektor-fejléc olvasása Paranc W 0 M 0 0 1 0 1 0 s F M W 0 0 0 0 0 H DSDS DS 1 0 Végreh Az első olvasott érvényes szektor-fejléc az adat-regiszterbe kerül ajtás Válasz R ST0 Vezérlő állapotregiszterek R ST1 R ST2 R CYL Az olvasott szektor-fejléc adatok R HEAD R SEC R SIZE sáv formázása Paranc W 0 M 0 0 1 1 1 0 s F M W 0 0 0 0 0 H DSDS DS 1 0 W SIZE Szektor-méret W CNT Sávonkénti szektorok száma W GPL GAP mérete W D Feltöltő bájt (ált. F8) Végreh A kontroller megformáz egy teljes sávot a megadott paraméterek ajtás alapján Válasz R ST0 Vezérlő állapotregiszterek R ST1 R ST2 R CYL Ezeknek a
bájtoknak itt nincs R HEAD jelentőségük R SEC R SIZE Fázis Parancs R/W W MT W W W W W W W W 0 Adat (bitek 7-0) Egyenlőség vizsgálata (ellenőrzés) MF SK 1 0 0 0 0 M 0 0 0 0 HDS DS1 DS0 CYL HEAD SEC SIZE CNT GAP DTL Végrehajtás Válasz R R R R ST0 ST1 ST2 CYL Megjegyzés Szektor-fejléc adatok A kontroller által olvasott és a processzor által (PIO v. DMA útján) küldött adatok összehasonlítása Vezérlő állapotregiszterek Szektor-fejléc a végrehajtás után R R R HEAD SEC SIZE A "Kisebb egyenlőség" ill. "Nagyobb egyenlőség" parancsokat nem írom le külön, teljesen paramétereik megegyeznek az egyenlőségvizsgálatéval és gyakorlati jelentőségük 0. Parancs W W 0 0 0 0 0 0 Rekalibráció 0 0 1 0 0 0 1 1 DS1 DS0 Végrehajtás Parancs Válasz Parancs A kontroller az író-/olvasó fejet a 0. sáv fölé állítja (mechnanikus vissza-csatolás segítségével) W R R 0 Megszakítás
nyugtázása/állapot lekérd. 0 0 0 1 0 0 0 ST0 PCN Specify (időparaméterek beállítása) W 0 0 0 0 0 0 1 W SRT SRT SRT SRT HUT HUT HUT 3 2 1 0 3 2 1 W HLT HLT HLT HLT HLT HLT HLT 6 5 4 3 2 1 0 Végrehajtás Parancs Vezérlő 0. állapotregisztere Aktuális fej-pozíció (cylinder) 1 HUT0 ND A kontroller eltár léptetési idő (SR (HUT) ill. a fej-tö értékeit, valamin W W 0 0 Meghajtó állapotának lekérdezése 0 0 0 0 1 0 0 0 0 0 0 HDS DS1 DS0 Végrehajtás Válasz R Parancs W W W ST3 0 0 0 0 Seek (pozícionálás sávra) 0 0 1 1 1 1 0 0 0 HDS DS1 DS0 NCN Végrehajtás Kontroller újrakérdezi a meghajtó állapotát Vezérlő 3. állapotregisztere Új sávszám A kontroller megpróbálja az íróolvasó fejet a megadott cylinderre állítani Manapság a CD-ROM-ok és CD-írók ára nagy sebességgel zuhan, ezért egyre többen vásárolnak CD-írót, hogy a felgyülemlett anyagukat “megörökítsék” a jövő számára és a merevlemezen egy kis
helyet szabadítsanak fel vele. Ez így elmondva mind szép és jó, de azért nem olyan egyszerű a dolog, mint ahogy első ránézésre látszik. A CD-írásnak is, mint minden területnek a számítástechnikában megvannak a maga buktatói is. Ezzel a cikkel egy kicsit közelebb szeretném hozni a CD-k misztikus világát az olvasóhoz. Még mielőtt elkezdenénk magával a CD-írással foglalkozni, lássunk egy kis elméletet a CDROM-okkal kapcsolatban: Az ISO 9660-CD-ROM szabvány: Az audio (zenei) CD-k technológiáját 1982-ben fejlesztették ki a Philips és a Sony cégnél. Felismerve a technológiának a számítástechnikában nyújtott lehetőségeit, hamarosan elterjedt ebben a szférában is. A CD nagyon gyorsan fejlődő technológia volt, de a fejlesztések még nem voltak szabványosítva. A vállalatok eltérő formában kívánták előállítani termékeiket, ezért számos különböző technológia alakult ki, az iparág vezetői 1985-ben létrehozták a
szükséges szabványokat. Az elfogadott szabványok meghatározták a tartalomjegyzék és a címtárak szerkezetét, valamint a logikai, az adatszerkezeti és az adatrögzítési rendszereket. A szabvány megalkotásában részt vett a Microsoft is, amely elkészítette azt a szoftvert, amely lehetővé tette a CD-ROM elérését a hagyományos DOS parancsokkal. A szoftver neve MSCDEX, amely a Microsoft Compact Disc Extensions rövidítése. Ezt az új szabványt High Sierra Specificationnek nevezték el Ezt a specifikációt fogadta el az ISO nemzetközi szabvány is ISO 9660 néven Számos egyéb szabványt is kifejlesztettek, pl. : • a zenére, ill. a CD-ROM lemez digitális zenéjére vonatkozó szabványokat • az adatállományok (DOS, APPLE vagy AMIGA) tárolásának szabályozását • az interaktív CD és a kiterjesztett architektúrájú CD definícióit • az egyszer írható - többször olvasható típusú meghajtókra és a magnetooptikai meghajtókra
vonatkozó szabványokat. A CD-ROM működési elve, a lézeres technológia: A LASER a Light Amplification by Stimulated Emission of Radiation kifejezésből képzett mozaikszó, jelentése: fényerősítés a sugárzásnak gerjesztett emissziója révén. a lézer jellemzői: A lézert két párhuzamos tükör közötti optikai közeg alkotja, amelyben elektro-, vagy fotolumineszcencia idézhető elő. Az elektro-, ill fotolumineszcencia alatt azt a jelenséget értjük, melynek során az elektromos tér változásai, vagy fény hatására egyes atomok, molekulák gerjesztődnek, s a gerjesztés hatására a részecskék (spontán emisszió révén) fényt bocsátanak ki. Az alkalmazott optikai közeg anyagi minőségétől függően beszélhetünk folyadék, gáz vagy szilárd-kristályos lézerről. A lézerbeli kvantumszerű energia-átalakulások statisztikai átlagokban értve a következő hullámfolyamatok egymásutánjából állnak. A feltöltés (pumpálás) nyomán
egy molekula (atom) spontán emisszióval egy rövid haladó, gömbi fényhullámvonulatot bocsát ki, amelynek azonban általában hosszú utat kell megtennie ahhoz, hogy a közegben egy másik feltöltött molekulát idő előtti fénykibocsátásra indukáljon. Ezért ennek a gömbi nyalábnak egy része a párhuzamos tükrök között oda-vissza verődik, miközben sorozatos leszűkülése következtében fokozatosan gyengül, de iránya a tükrökre mindinkább merőlegessé válik. Eközben ott szükségszerűen álló fényhullámteret tölti fel fényenergiával, a nyalábnak leszabdalt részei azonban a tükrök közötti térből kiszóródnak. Indukált emissziók tehát általában már álló fényhullámtérben kezdődnek, éspedig szükségképpen a térrel azonos fázisban. Ezért az ekkor koherensen kibocsátott gömbi fényhullámoknak a burkoló felülete a csomósíkkal párhuzamos, a hullámok eredőjének terjedési iránya tehát a csomósíkra merőleges lesz.
Az eredő fényhullámok pedig az állóhullámteret interferenciásan mindinkább erősítve fényenergiával töltik tovább (öngerjesztés). Ha azonban az egyik tükör félig áteresztő, ezen az állóhullámtér energiája kiszivárog, éspedig szükségképpen haladó fényhullámok alakjában, megtartva nagy energiasűrűségét és szigorú párhuzamosságát: • monokromatikus a keletkező fény-nyaláb (egyszínű) • térben és időben koherens • nagy intenzítású • párhuzamos sugarakból álló nyalábnak tekinthető. • A jelenlegi CD-ROM-ok többsége olyan fényt használ, amely a színspektrum kisebb frekvenciájához tartozik, mint például a vörös és a sárga. A magasabb frekvenciájú lézerrel dolgozó CD-ROM-ok esetében még több adatot lehet ugyanakkora helyen tárolni. A CD-ROM működése: sűrűségi határ: A mágneses felvételnek és lejátszásnak van egy sűrűségi határa. Ennek egyik oka az anyag mágneses
tulajdonsága (minden sáv között egy meghatározott távolságnak kell lennie, hogy az egyik sávon lévő jel ne zavarja a másikat). Ezenkívül az író/olvasó fejek érzékenysége is határt szab a sűrűségnek. Az optikai technológiával készült lemezeknél ez a határ sokkal kedvezőbb, mivel az egyes jelek nem zavarják egymást, és a lézersugarat jól lehet fókuszálni. adattárolás: A hajlékonylemezek és merevlemezek koncentrikus sávokat használnak, ezzel szemben a CDROM lemezek a hagyományos hanglemezekhez hasonlóan egy spirálban tárolják az adatokat. A spirál azonban nem kívülről, hanem belülről indul. Két szomszédos csíkja a spirálnak 16 mikron távolságra van egymástól, így egy 25 mm-es sávban 16000-szer fordul meg a sprirál, ami kinyújtva kb. 48 Km hosszú lenne A mágneslemezeknél egyes területek mágnesezve vannak, jelezve az 1-es állapotot, mások nincsenek mágnesezve, jelezve a 0-s állapotot. A CD-ROM lemezre
felvételkor a lézer vagy barázdákat éget (1-es állapot), vagy ép felületet hagy (0-s állapot). A lemez lejátszásakor a sávra lézersugár fókuszálódik, s a lemez hátoldalán lévő rétegről visszaverődik. Az épen hagyott felületről sokkal több fény verődik vissza, mint a barázdált felületről, így a visszavert fényt érzékelve lehet az 1-es és 0-s állapotokat meghatározni. A CD-ROM lemezek esetén a szektorok 2048 byte-osak. Minden szektor eleje egy 12 byte-os szinkronmezőt és egy 4 byte-os fejlécmezőt tartalmaz. Mivel csak egy spirál van, a fejlécmező a szektor címét perc:másodperc:századmásodperc formában tartalmazza. A kódolásra két különböző módszer van. Az első (mode 1) 288 byte-ot ad minden szektorhoz hibadetektáló (EDC, Error Detection Codes) és hibajavító kódok (ECC, Error Correction Codes) számára, így egy szektor a szinkronmezővel, a fejlécmezővel, az EDC/ECC-vel, és az adattal összesen 2352 byte hosszú.
Ezt a kódolási módot akkor használják, ha fontos az adatok biztonsága. A spirális sávon kb270000 szektor van, így 270000 szektor * 2048 byte/szektor, 552 960 000 byte, azaz 552 Mbyte hely van az adattárolásra. A másik módszer, a kettes mód (mode 2) nem használ hibadetektáló és javító kódokat, így a tárolható adatmennyiség 630 Mbyte. Az információkat egy spirál alakú, belülről kifelé vezető barázdákkal ellátott sáv tárolja, amelyeket a gyártásnál sajtolnak bele. Ezeket a mélyedéseket piteknek nevezzük, a fényvisszaverő alapot, amelyben ezek a pitek vannak, landnak. Egy pit mélysége 0,1 mikrométer, szélessége 0,6 mikrométer és a sávok közti távolság 1 mikrométer. A pitek hossza 0,8-3,5 mikrométer között változik sebesség: A mágneses lemezek esetén problémát okozott az, hogy minden sávban ugyanannyi szektor van, ezzel a lemez belső részén nagyobb lesz az adatsűrűség. Ennek kiküszöbölésére szolgált a Zone
Bit Recording eljárás. A CD-ROM lemezeknél ilyen gond nincs, mivel a szektorok fizikai hossza állandó. Ha a forgási sebesség (szögsebesség) állandó, akkor a spirálnak az olvasófejhez viszonyított sebessége a lemez külső részén sokkal nagyobb lenne, mint a belső részeken. Ezért a CD-ROM olyan rendszert használ, amely képes változtatni a meghajtó sebességét attól függően, hogy a lemez melyik részét olvassa. Ezzel biztosítják, hogy a fej és a lemez egymáshoz viszonyított sebessége állandó. Ezt állandó lineáris sebességnek (CLV, Constant Linear Velocity) nevezik. Például a külső részen a meghajtó kb 200 ford/perc fordulatszámmal, míg a belső részen kb. 530 ford/perc fordulatszámmal forog A CD-ROM-ok fejlődésével egyre gyorsabb CD-ROM olvasókat készítettek. Először az említett sebességeket kb. megkétszerezték, ezeket a meghajtókat nevezték 2X -es sebességű CD-ROMoknak Természetesen a fejlesztés tovább folytatódott,
így ma már a 40X-es sebességű CD-ROM olvasók kaphatók. Sőt, megjelentek elérhető áron a CD-ROM olvasó/írók is Sokáig az átviteli sebesség egyáltalán nem változott, maradt a kezdeti 75 szektor/másodperc, azaz kb. 150 Kb/s érték Majd a CLV növelésével az átviteli sebesség is elkezdett nőni, így a 2Xes sebességű CD-ROM-ok már 300 Kb/s, a 4X-esek már 900 Kb/s átviteli sebességgel rendelkeznek. A 6X-os sebességű CD-ROM-ok már lehetővé teszik a videofilmek finom, életszerű lejátszását. A hagyományos zenei lemezeket továbbra is az eredeti 150 Kb/s -os átviteli sebességgel kell lejátszani. pufferelés: A lemezről beolvasott adatok először egy puffertárba, vagy gyorstárba kerülnek, s csak ezután dolgozza fel őket a PC. Az eredeti MPC specifikáció 64 Kbyte-os puffert ír elő, de sok új rendszernek már 256 Kbyte-os, sőt akár 2 Mbyte-os puffere van. Általánosságban azt mondhatjuk, hogy minél nagyobb az átmeneti tár, annál
finomabban lehet animációkat, filmszerű videókat futtatni (ne felejtkezzünk el a szoftveres gyorsítótáraktól sem!). elérési idő: A CD-ROM meghajtók elérési ideje az MPC specifikáció szerint legalább 1000 ms. Ez meglehetősen lassúnak mondható, de ez csak elméleti érték, a valóságban a régebbi meghajtóknak is kb. 300-400 ms, az újabbaknak pedig 100 ms körül alakul az elérési idejük Ez várhatóan a jövőben csökkenni fog. A CD-ROM lemez: Az üres lemezek műanyagból készülnek, átmérőjük 120 mm. Préselés után egyik oldalát fényvisszaverő alumíniumréteggel vonják be. A bevonat vastagsága 2 mikron, amit vékony védőlakkal látnak el azért, hogy megakadályozzák az alumínium oxidációját és elszennyeződését. Az alumíniumréteg sérülése esetén a lemez azon szektorai, amelyekre a sérülés kiterjed, olvashatatlanná válnak. Ugyanezt az eljárást használják a zenei CD-k készítésénél is. A CD-írás
kezdetei és rejtelmei 1984-ben a Philips és a Sony leírta a CD-ROM specifikációját a Yellow Bookban, még nagy kapacitásnak számított a CD-ken található 650 Mbyte. Az adatsűrűsége jóval nagyobb, mint a merevlemezeké és ez még el van látva jócskán hibajavító kódokkal is. A Photo CD formátum, megjelenésével megindult a kis tételben, egyénre szabott CD-írás. Ez úgy működött, hogy egy Photo CD írásával foglalkozó céghez bárki bevihette a fényképeit vagy csak a negatívot és ott beszkennelték, és a CD lemezre írták őket. Ezeket a lemezeket egy arra alkalmas eszközzel meg lehetett nézegetni. A Photo CD képformátum, tartalmazza a képnek 5 különböző felbontású változatát. Ezt a technikát még ma is előszeretettel alkalmazzák A CDROM-okkal a Photo CD megnézhető Mivel a Photo CD kisebb, mint a ma használt CD lemezek ezért található a CD-ROM tálcáján egy kisebb kör alakú bemélyedés, ezen CD-k számára. A Kodak Photo
CD-hez kapcsolódik a többmenetes (multisession) felírási lehetőség, vagyis egy írható lemezre több részletben is lehessen adatot írni, úgy, hogy az újonnan felírt adatok és a régiek együttesen látszódjanak. A legtöbben a CD-írókat adatok (adat-CD-k) írására használják, egy menetben vagy multisession üzemmódban. A ma hozzáférhető kereskedelmi CD-író programok is leginkább erre vannak kihegyezve. A speciális igényekhez (Karaoke CD) már speciális programokat kell beszerezni Egy írható CD-re 650 Mbyte adatot vagy 74 perc zenét lehet rögzíteni, de létezik 63 perces változat is, amely kapacitása 553 Mbyte. Ezek az értékek a gyakorlatban változhatnak, a pontos érték az írható CD-n lévő szektorok számától függ. A lemezen lévő összes szektor nem használható fel adattárolásra, mert le kell számítani a bevezetés és a kivezetés, valamit a tartalomjegyzék (TOC) számára fenntartott területet. Egy szektor látható mérete
2048 byte Egyszeres sebességgel egy másodperc alatt 75 szektort olvas egy meghajtó, ebből byte-ra kiszámolható a kapacítás. Az írható CD-k gyárilag előformázottak, vagyis a sávok nyomvonalát a gyárban előkészítik, ezzel garantálják, hogy az írt CD-ket is bármely maghajtó és nem csak az író tudja elolvasni. Egy CD-re legfeljebb 99 részletben (sessionben) lehet írni. Ennek az az oka, hogy minden írás előtt kalibrálni kell az íróáramot, vagyis a lézer teljesítményét, az erre fenntartott lemezterület pedig véges. A legjobban akkor lehet kihasználni a lemez kapacitását, ha csak egy menetben írunk rá. Ha több menetben írunk, akkor számolni kell azzal, hogy minden session-höz külön-külön tartozik egy bevezetés és egy kivezetés. A bevezetés 4500 szektor (9 Mbyte), a kivezetés pedig 6750 szektor (13 Mbyte). Többmenetes írás beállításakor a kivezető szakasz mérete csupán 2250 szektor (4 Mbyte), de a következő session-höz
megint tartozik egy bevezető. Egy fontos dolog, hogy a többmenetes íráskor figyelni kell arra, hogy az újonnan felírt anyaghoz adjuk hozzá a CD előző tartalmát is, különben csak a legutoljára írt adatokat lehet elérni. A sikeres CD-írás legfontosabb kelléke (a CD-íron kívül) a megfelelően gyors hardver, de ez még nem minden, mert az se utolsó szempont, hogy milyen módon történik az írás. A “röptében”, disc image nélkül végzett íráshoz gyors merevlemez, sok pufferrel rendelkező író ajánlatos, különösen akkor, ha sok kisméretű file-ból áll a felírandó anyag. Ha nem áll rendelkezésünkre megfelelően gyors hardver, vagy az adatátviteli lánc nem elég gyors, de van elég lemezhely, akkor érdemes a felírandó anyagból úgynevezett disc image-et készíteni. Ennek felírása sokkal kisebb teljesítményt igényel, mert a disc image-en belül már létre van hozva a CD-re kerülő file-rendszer. Ez a módszer így egyetlen file
(track) egyszerű másolásának felel meg, mivel a CD-író programnak nem menetközben kell összeszedni a felírandó file-okat. Ha bizonytalanok vagyunk a gépünk teljesítményében, akkor célszerű igénybe venni a CDíróban megtalálható tesztírás lehetőségét. Ilyenkor az íróprogram majdnem a teljes írási folyamatot végigjátssza, de nem kapcsolja be az írófejet. Azért csak majdnem, mert a szimulálásba nem veszi bele azokat a műveleteket, amelyek tisztán az íróra vannak bízva, például az írás végén a tartalomjegyzék felírását. Ez elvileg elégséges is lenne, azonban előfordulhat már, hogy buffer underrun hibaüzenetet kapunk a tartalomjegyzék felírása közben is. Szintén nem véd a médiahibák ellen, ezért érdemes a lehető legjobb minőségű nyersanyagot használni. Egy másik módszer, hogy a CD-író programban lefuttatunk egy tesztet - ha van rá lehetőség - és ott információt kapunk az átvitel sebességéről, de ez csak az
átvitel sebességét teszteli !!!! A CD-írás 10 parancsolata 1. Az író mellett ne legyen más eszköz ugyanazon az IDE sínen, és pláne ne írjunk arról, mert a puffer töltöttsége alacsony szintre süllyed, és ha a puffer kiürül, akkor az írás megszakad és lesz egy rontott CD-nk. 2. Ha sok apró file-t akarunk felírni, akkor mindenképpen készítsünk image-t előtte, mert különben az író a TOC felírása közben kiakadhat. 3. Mielőtt másolnánk CD Copy-val vizsgáljuk meg a másolandó lemezt, hogy hányszorosan tudja olvasni maximálisan, mert ha az olvasási sebesség az írási alá csökken, máris megszakad az írás. Célszerű a maximális írási sebességet az olvasási sebesség felére venni. 4. Ha nagyon karcos a CD, akkor mindenképpen írás előtt csináljunk róla image file-t Ha a CD rossz minőségű és/vagy nagyon karcos és az olvasás megakad írás közben, mert nem tudja elolvasni elsőre csak többszöri próbálkozásra, a puffer
kiürül és lesz egy sörösüveg alátétünk. 5. Ha nem sietünk sehová, akkor 2x írási sebességnél ne írjunk nagyobbal, mert minél nagyobb az írási sebesség, annál nehezebben olvassa el a CD-ROM. A 2x-es sebesség az optimális a teszt szerint. 6. Ha lehet, akkor kerüljük a többszöri írást, mert a régebbi CD-ROM-ok csak az egyik sessiont fogják látni, ez tapasztalati tény. 7. Mindig jó minőségű alapanyagot vegyünk! Ha nem vagyunk biztosak a “nyers” CD minőségében, akkor írás előtt egy tesztet futtassunk le. 8. Olyan CD-ket, ahol egyszerre van adat és hanganyag - lehetőleg, ha nem karcos -, akkor CD Copy-val másoljunk. 9. CD-írás előtt teszteljük le gépünket, hogy milyen programokat futtathatunk az író mellett biztonságosan, mert ha kifagy a rendszer vagy nem tudja a puffert elég gyorsan tölteni az írás leáll. 10. Mindig csak legálisan írjunk CD-t!! CD - A kezdetek kezdete Az optikai adattárolás területén a kutatások már
a 60-as években megkezdődtek, de ekkor még főként katonai célokra szánták az új technológiát, mivel a polgári ipar akkori színvonala jóval elmaradt a követelményektől. A mai piacot meghatározó kompaktlemez (CD) fejlesztését a Philips cég a 70-es évek közepén kezdte. Az első működőképes CD-lejátszó 1980-ban jelent meg, melynek kifejlesztésében a piac másik óriása, a Sony is segédkezett. A két cég 1982-ben szabványosította az új hanglemezt, a Compact Disc Digital Audio-t (CD-DA). A specifikáció leírását az ún. Red Book-ban (Vörös Könyv) rögzítették, mely később más-más színekben megjelenő CD formátum leírások alapját jelentette: Év 1982 1984 1987 1988 1990 CD formátum CD-DA CD-ROM CD-I CD-ROM/XA CD-R 1990 CD-MO 1990 CD-WO 1991 1993 1995 Photo CD CD-V CD+ / Music CD 1995 CD-E / CD-RW Specifikáció Red Book Yellow Book Green Book Yellow Book Orange Book Orange Book Part I Orange Book Part II Yellow Book White
Book Blue Book Orange Book Part III Szabványosító cégek Philps, Sony Philps, Sony Philips, Sony Philps, Sony, Microsoft Philips, Sony, Taiyo Yuden Philips, Sony Philips, Sony Philips, Sony, Kodak Philips, Sony, JVC, Matsushita Philps, Sony, Microsoft Philips, Sony, Ricoh, IBM HDCD, SDCD - Útkeresés A Philips és a Sony a 90-es években kutatásokat végzett egy új, megnövelt kapacitású CD formátum (HDCD - High Density CD, New Red Book szabvány) kidolgozása irányában, melynek első eredményeit 1994. decemberében publikálták A következő hónapban feltűnt egy több neves céget tömörítő konzorcium, mely a HDCD-től teljesen eltérő formátummal, az SDCD-vel (Super Density CD) rukkolt elő. A Philips-Sony-3M HDCD-je kétrétegű, rétegenként 3,7 GB-nyi kapacitást kínált, a CD átmérőjével és vastagságával megegyező méretű korongon. A Toshiba-Matsushita-Pioneer-Hitachi-Time Warner konzorcium SDCD-je egyrétegű, a CD átmérőjével megegyező, ám
mindössze fele olyan vastag lemezt mutatott be, melynek maximális kapacitása 10 GB volt. A CD-vel való fizikai kompatibilitás megőrzéséhez az SDCD-t szendvicsszerűen alakították ki, vagyis két 0,6 mm vastag 5 GB-os lemezt háttal egymásnak fordítva összeragasztottak, és így kapták meg a 120 mm x 1,2 mm-es CD méretet: a 10 GB-os kétoldalas SDCD-t. 1995. márciusában a Sony-Philips bemutatta az első működő HDCD rendszert, majd az áprilisban tartott HDCD-világkonferencián elnyerték több számítástechnikai óriáscég, így a Microsoft, a Compaq, az IBM és az Apple támogatását is. DVD - Az új szabvány Hosszú tárgyalások eredményeképpen végül is megszületett a megállapodás a két óriáscégtömörülés között, s ezáltal a szabványosítás elől is elhárultak az akadályok. Az új formátum neve DVD lett, mely először Digital Video Disc (digitális videolemez), később a felhasználás sokféleségét jobban kifejező Digital
Versatile Disc (sokoldalú digitális lemez) rövidítését adja. Az új formátum a HDCD és az SDCD jól sikerült ötvözetének tekinthető: a 80 és a 120 mm-es DVD korongok a HDCD-hez hasonlóan 1 vagy 2 rétegűek lehetnek, valamint készülhetnek 1 vagy 2 oldalról olvasható változatban - akárcsak az SDCD. Így az alap DVD specifikáció összesen 8 fizikai struktúrát rögzít, ehhez jön még hozzá a két speciális típus: a DVD-R és DVDRAM formátum: Típus Átmérő DVD-ROM DVD-ROM DVD-ROM DVD-ROM DVD-R DVD-R DVD-RAM 80 mm 80 mm 120 mm 120 mm 80 mm 120 mm 120 mm Adattároló rétegek száma 1 2 1 2 1 1 1 1 oldalas lemez kapacitása 1,4 GB 2,7 GB 4,7 GB 8,5 GB 1,23 GB 3,95 GB 2,58 GB 2 oldalas lemez kapacitása 2,9 GB 5,3 GB 9,4 GB 17 GB 2,46 GB 7,9 GB 5,16 GB DVD-Video - Csúcsminőség A DVD első és ezidáig legjobban támogatott változata a DVD-Video, mely a CD-I-t és a Laser Disc-et is messze túlszárnyaló képességekkel bír: 135 percnyi
csúcsminőségű digitális videojel (egyrétegű, egyoldalas lemezen), MPEG-2 tömörítéssel maximálisan 8 órányi video (kétrétegű, kétoldalas lemezen) szélesvásznú (16:9) és hagyományos (4:3) TV támogatás 8 audiosáv (több szinkron támogatás), max. 8 audiocsatornával, 7 féle hangrendszerrel: • 1-8 csatornás LPCM: tömörítetlen, 48/96 kHz, 16/20/24 bit • 5.1 MPEG-1/MPEG-2: tömörített PCM, 48 kHz 16 bit • 7.1 MPEG-1/MPEG-2: tömörített PCM, 48 kHz 16 bit • 5.1 Dolby AC-3: tömörített PCM, 48 kHz, 16/20/24 bit • 5.1 DTS (Digital Theater System): tömörített PCM, 48 kHz, 20 bit • 5.1 SDDS (Sony Dynamic Digital Sound): tömörített PCM, 48 kHz • 7.1 SDDS (Sony Dynamic Digital Sound): tömörített PCM, 48 kHz 32 szöveges sáv (feliratozás) automatikus szétágaztatás (többféle cselekmény ill. végkifejlet) lejátszás közben szabadon váltogatható, maximum 9 féle kameraállás egyszerűbb interaktív képességek (pl.
menük) előre és visszafelé keresés, fejezet- ill főcím szerint is a videokazettával összevetve jóval hosszabb élettartam, könnyebb kezelhetőség, kisebb méret, alacsonyabb előállítási költség DVD-ROM - Biztos siker A számítástechnikai felhasználásra tervezett DVD-ROM-okhoz már 1997-ben elkészültek az első DVD-ROM meghajtók, melyek a 10-12-szeres CD-ROM-okkal összevethető sebességet produkáltak. Hamarosan azonban a CD-ROM-ok fejlődésével párhuzamosan megérkeztek a többszörös sebességű DVD-ROM-ok is: 1x, 2x, 5x DVD-ROM: sávraállási (seek) idő: 100-200 ms 1x, 2x, 5x DVD-ROM: elérési (access) idő: 150-200 ms 1x DVD-ROM: átviteli sebesség (lineáris olvasás): 1,3 MB/s, átviteli sebesség (burst mód): 12 MB/s 2x DVD-ROM: átviteli sebesség (lineáris olvasás): 2,6 MB/s, átviteli sebesség (burst mód): 22 MB/s 5x DVD-ROM: átviteli sebesség (lineáris olvasás): max. 4,6 MB/s CD-ROM-okat a DVD lemezeknél mintegy 15%-kal
gyorsabban olvassák csatolófelület: EIDE (ATAPI) vagy SCSI-2 a legtöbbjük le tudja játszani a CD-DA lemezeket, de a DVD-Video-t és a DVD-Audio-t nem csak a 2x és 5x meghajtók képesek a CD-R lemezeket lejátszani DVD-R, DVD-RAM, DVD-RW, +RW - A bőség zavara A DVD-R technológiája nagyon hasonló a CD-R-éhez, és a DVD-R lemezeket csaknem az összes DVD-ROM meghajtó tudja olvasni. A DVD-R kapacitása jelenleg 3,95 GB oldalanként, ezt azonban a jövő év közepén megjelenő új Book "E" 4,7 GB-ra fogja kiterjeszteni. A DVD-RAM azonban sajnos nem kompatibilis egyik jelenleg forgalomban lévő DVD-ROM meghajtóval sem, mert egy speciális, ún. fázisváltásos technológiával érik el az újraírhatóságot, melynek megvalósításához a DVD-ROM formátumot némileg át kellett alakítani. A fázisváltásos technológia lényege, hogy az adattároló réteg a nagyteljesítményű író/törlő lézer hatására képes megváltoztatni a fényvisszaverő
képességét, míg a jóval kisebb teljesítményű olvasó lézer nem változtatja meg a réteg jellemzőit. Az egyoldalas DVD-RAM-ok tokkal ill tok nélkül is kaphatóak lesznek, míg a kétoldalas DVD-RAM-ot lezárt tokban (125 x 136 x 8 mm) hozzák forgalomba. Több cég is végez kutatásokat a DVD-RAM kapacitásának növelése irányában, ennek első eredményét a Hitachi mutatta be: az új lemez oldalanként 4,7 GB-os kapacitással rendelkezik, és a DVD szabványban meghatározott fizikai paraméterek (pithossz, pitosztás) lefaragásával érték el a nagyobb adatsűrűséget. Jelenleg a Pioneer által kifejlesztett DVD-RW tűnik a legkönnyebben adaptálható többször írható formátumnak, mely a DVD-R specifikációban foglalt fizikai paramétereknek megfelelve oldalanként 4,7 GB-nyi adatot képes tárolni. Így a legtöbb DVD-ROM változtatás nélkül képes lejátszani a DVD-RW lemezeket is. A másik újraírható formátumot a Philips-Sony a HP és más
nagyvállalatok támogatásával dolgozta ki, a DVD és CD-RW specifikációra alapozva. A +RW lemezek kapacitása "mindössze" 2,8 GB oldalanként, azonban a jövőben megjelenő +RW meghajtók képesek lesznek a CD-R és CD-RW lemezeket is írni, s ezzel a PC piacon nagy sikerre számíthatnak (megj.: a +RW formátum nem élvezi a DVD konzorcium támogatását, ezért nem kerülhetett elé a DVD- prefix). A DVD formátumok szabványosítása a DVD-Audio és a DVD-RW kivételével már befejeződött, a végleges 5 könyvből álló specifikáció 1999 közepére készül el. DVD formátum DVD-Video DVD-ROM Specifikáció Leírás Book "A" Book "B" 2x135 perc csúcsminőségű MPEG-2 video + surround audio Max. 17 GB adat 96 kHz, 24 bit, 6 audiocsatorna (5.1 Dolby AC-3 surround) vagy 192 kHz, 24 bit, 2 audiocsatorna (sztereo) Max. 5,16 GB adat Max. 7,9 GB adat Max. 9,4 GB adat (?) DVD-Audio Book "C" DVD-RAM DVD-R DVD-RW Book
"D" Book "E" Book "F" (?) A DVD minden kétséget kizárva aratni fog, s nemcsak a CD-ROM-okat és a VHS videókat fogja leváltani, hiszen az 1998. végére ígért végleges DVD-Audio formátumnak is minden esélye megvan az abszolút sikerre. A DVD-k világméretű elterjedése azonban ebben az évezredben már nem fog bekövetkezni, hiszen nincs rájuk olyan égető szükség, mint annak idején a CD esetében volt. A fejlesztések a DVD lassú befutása ellenére sem álltak meg, így a Toshiba már fejleszti a jövő évszázad követelményeinek eleget tevő Toshiba Terabit Molecular Memory technológiát, melynek felhasználásával akár 125 GB-nyi adatot is képesek lesznek egyetlen CD méretű korongra felírni! A Toshiba 2010-re jósolja az új lemez forgalomba kerülését. A magneto-optikai lemez (MOD) a CD-ROM rokona, de a merevlemezhez hasonlóan tetszés szerint írható és törölhető. A MOD az optikai és a mágneses eljárás
keveréke Itt a lézersugár egy spirális mágneses tárolón olvas. Nagy tárolókapacitása miatt nagy adatmennyiségek tárolására kiválóan alkalmas. A mágnesezhető réteg olyan anyagból készült, amely szobahőmér-sékleten nem magnetizálható, magasabb hőmérsékleten (180°C) viszont nagyon jól. A lézer az adatok felvételekor a magneoptikai anyag egy kis részét melegíti fel, ezáltal ez a hely magnetizálhatóvá válik. Egy mágnes segítségével a forró anyag szerkezete a tárolandó információktól függően megváltozik. Amikor a felület kihűlt, az információk rajta maradnak, és egy gyengébb lézersugár akárhányszor el tudja olvasni. A látszólag agresszív írástechnika ellenére a MOD lemezeket sok milliószor meg lehet írni és olyan tartósak, mint a CD-k, mert ennél az eljárásnál sincs az írófejnek fizikai kapcsolata a lemezzel. A MOD-okat kétféle kivitelben kapjuk: a 3,5 collos lemez csak egyoldalasan írható és 128 vagy
230 Mbyte-nyi adatot tárol. Az 5,25 collos 650 vagy 594 Mbyte-ot tartalmaz két oldalon A kétoldalas tárolást úgy érték el, hogy két lemezt egymásra ragasztottak. Az új MOD-ok már oldalanként akár 2 Gbyte-ot is tárolhatnak. Az elmúlt években több, FMV-t (Full Motion Video) is lejátszó rend-szer jelent meg a piacon (LaserVision, CD-ROM XA, CDTV, VIS, Digital Video Interactive = DVI, Compact Disk Interactive = CD-I), de ezek sokáig nem tudtak széles körben elterjedni, részben áruk miatt, részben azért, mert nem állt rendelkezésre a megfelelő mennyiségű lejátszó hardver-berendezés. A programfejlesztők egy része tartózkodóan viselkedett, nem tudták és nem akarták magukat elkötelezni egyik rendszer mellett sem, kivárták azt az időpontot, amikorra eldőlni látszott, melyik rendszer válik "szabvánnyá". Időközben a LaserVision csendben kimúlt (nem tudták leszorítani a hardver és szoftver árakat), a CD-I kivételével a többiek
igazán el sem jutottak odáig, hogy a nagyközönség elé kerüljenek. Az igazi (teljes értékű videót is lejátszó) multimédia területén az áttörést a CD-I FMV technológia megjelenése jelentette. Az alapkonfiguráció már 1992 elején a piacra került, méghozzá olyan formában, hogy a képet bármilyen TV készüléken meg lehet jeleníteni. A gyártók nem titkolt szándéka, hogy a CD-I-t szórakoztató elektronikai eszköznek szánták. További előny, hogy már az alapkészülék is alkalmas photo és audio anyagok lejátszására is. Az 1992. év legvégén jelentek meg azok az FMV cartridge-ok (400 MIPS sebességű processzorral), amelyek lehetővé tették a teljes képernyős, true color videoanyagok lejátszását, mindezt olyan áron, hogy gyakorlatilag a magánszemélyek számára is elérhető. Egyetlen ellenérv maradt a CD-I-vel szemben: a CD-I anyagokat nem lehet a klasszikus számítógépekkel lejátszani, szabványos CD-I-k nem kompatibilisek a
semmilyen megszokott, más számítógép-rendszerrel. 1994. novemberében ez a probléma is megoldódott: az IBM (amelyik ezt megelőzően két éven keresztül a DVI mellett lobbyzott) beadta a derekát és a Philips-szel közösen megjelentette a PC-be való CD-I kártyát. Úgy tűnik, hogy 1995. elején eldőlt a kérdés: a multimédia alkalmazások területén az ezredfordulóig a CD-I terjedését és uralmát semmi sem veszélyezteti. A magyarországi multimédia helyzet korántsem tükrözi a CD-I robbanásszerű elterjedését. A CD-I alapú multimédiafejlesztéshez, mint az érzékelhető, meglehetősen speciális hardver és szoftver eszközök szükségesek és ezek - újdonságuknál fogva - meglehetősen drágák. Ezzel magyarázható, hogy jelenleg csak egyetlenegy intézet kezdett CD-I fejlesztéssel foglalkozni - ez a Fővárosi Oktatástechnológiai Központ (= FOK). Az igazi lézerlemez Ha elhangzik a laserdisc kifejezés, legtöbben a CD-re vagy a DVD-re
gondolnak. Pedig a LaserDisc (LD) külsejében csak hasonlít, mûködési elvét tekintve pedig merõben más, mint a manapság oly népszerû digitális optikai médiák. A VHS-sel egyidõben született meg egy, a VHS-nél lényegesen jobb minõségû videojel hordozó média. A optikai adattárolás területén a Philips már a 60-as években szép sikereket ért el Visszagondolva talán hihetetlennek tûnik, de a cég már 1972-ben bemutatott egy mûködõképes LaserDisc rendszert! Majd végül a filmkiadókkal való hosszas tárgyalások után 1978-ban lépett a piacra a LaserDisc. Kudarcra ítélve? Kétséges volt az LD sorsa, hiszen a VHS a maga olcsóságával, könnyebb kezelhetõségével, s nem utolsó sorban a film rögzítésének lehetõségével csábítóbbnak hatott. Ráadásul a bevált szalagos média sokkal kevesebb buktatót, hibalehetõséget hordozott magában. Az elsõ LD lejátszók - mint pl. az itt látható, 1980-tól gyártott Pioneer VP-1000 - még
gázalapú lézerrel mûködtek, és nagyon sok probléma volt velük. Az LD közel két évtizedes pályafutása során csekély piacot hódított el a VHS elõl. Az Egyesült Államokban 2 millió, Japánban 5 millió LD lejátszó talált gazdára az elmúlt 20 évben. Ez a százmilliós nagyságrendû VHS lejátszó forgalomhoz képest elenyészõ. Miért vesztett? Logikus feltevés: ha a VHS nyert, akkor jobb paraméterekkel rendelkezett, mint az LD. Nos, ez jelen esetben nem igaz: az LD sokkal jobb minõségû volt, mint a VHS! A Pioneer szerint az LD 60 %-kal élesebb képet ad, mint a VHS. Az LD még a TV adásnál is jobb képminõséget produkált: Video szabvány NTSC PAL VHS felbontása 320x482 320x560 Mûsorszórás felbontása 440x482 533x560 LaserDisc felbontása 567x482 600x560 Jól látszik, hogy a LaserDiscnek megjelenése idején a képminõséget tekintve nem volt ellenfele. Mi a helyzet a hangzással? Audio variációk Az LD-n kezdetben 2
analóg csatorna állt rendelkezésre a hangok tárolására, mely a VHS-en található Hi-Fi sztereó hangsávnál némileg rosszabb minõséget produkált. Ezáltal kezdetben monó ill. sztereó, késõbbiekben pedig bármely 2 csatornán megférõ analóg formátum (pl Dolby Surround) erõsítette az LD-t. A 80-as évek végén készültek az utolsó, csak analóg hangot tartalmazó LD-k, és egyre nagyobb teret hódítottak a 2 digitális csatornát hordozó lemezek. A Compact Disc Digital Audio szabványhoz hasonló, 16 bites, 44 kHz-es sztereó jel biztosította a zajmentes, tiszta hangzást - melyet a VHS sosem ért el. A 90-es évek közepétõl, a tömörített, sokcsatornás digitális hangformátumok elterjedésével az LD végül a hanghatások netovábbját nyújthatta a Dolby Digital 5.1 és a DTS (Digital Theatre System) hangrendszerek támogatásával. Sajnos azonban csak az amerikai és japán piacra szánt, vagyis NTSC szabványú lemezeken fértek el ezek a
sokcsatornás jelek, az európai (PAL) LaserDisc-ek csak a 2 csatornás, tömörítetlen digitális jel tárolását támogatták. Még az NTSC lemezeken sem fért meg a sokféle hangformátum egymás mellett, így a lemezek készítésekor a következõ variációk közül kellett a studióknak választaniuk: NTSC szabvány: 2 analóg csatorna 2 analóg csatorna + 2 tömörítetlen digitális csatorna 1 analóg csatorna + 2 tömörítetlen digitális csatorna + Dolby Digital 5.1 csatorna 2 analóg csatorna + DTS csatorna PAL szabvány: 2 analóg csatorna 2 tömörítetlen digitális csatorna Analóg csatornák A 80-as évek elején az LD-n található analóg jel nagyon jó minõséget képviselt. A fõleg a jobboldali csatornában gyakran fellépõ torzítás elkerülésére ún. CX zajcsökkentést alkalmaztak, melyet a lejátszás folyamán bármikor ki, majd újra be lehetett kapcsolni. A CX zajcsökkentés lényegében a Dolby-B-vel megegyezõ elven mûködik. A digitális
kor eljövetelével az analóg csatornák szerepe csökkent, ám az NTSC szabványú lemezeken gyakran felhasználták az analóg csatornákat extra információk (pl. kommentár sávok) tárolására. Ez természetesen monó jel esetén akár két különálló, független hangsáv is lehetett Digitális csatornák A tömörítetlen, sztereó digitális csatorna CD audió hangzást nyújtott, így pl. koncertfelvételek jó minõségû rögzítését is lehetõvé tette. A kezdetben sztereó, késõbb 4 csatornás Dolby Surround formátumú hanggal erõsített LD egyre messzebb került az évek óta változatlanul gyenge minõségû VHS-tõl. A Dolby Digital 51 és DTS támogatás pedig végképp eldöntötte a kérdést: házimozira csak az LD volt alkalmas. 1995 óta készülnek Dolby Digital sávot tartalmazó LaserDisc-ek, melyeken a hang AC-3 kódolással kerül rögzítésre, és az LD-be épített dekóder állítja elõ a 6 különálló csatornát (bal elsõ, közép, jobb
elsõ, bal hátsó, jobb hátsó, subwoofer). Az AC-3 kódolás lényege, hogy a teljes, 6 csatornás jelfolyam sávszélességét (veszteséges) tömörítéssel 384 kbit/s-ra redukálja. Ez alig tizede a tömörítetlen, 6 csatornás, 44 kHz-es, 16 bites digitális jelnek! A tömörítés azonban speciális módon történik, így a filmek dekódolt hangjában csak nagyon ritkán lehet tömörítésbõl adódó veszteséget észlelni. A veszteséges, erõteljes tömörítésbõl adódóan a DD 51 nem alkalmas csúcsminõségû zenei felvételek rögzítésére. A DTS ugyanazt a 6 hangcsatornát kínálja, mint a Dolby Digital, azonban annál jóval nagyobb sávszélességet (1411 kbit/s) biztosít. A legtöbb filmnél alig észlelhetõ a különbség a DD és a DTS formátumok hangzása között, azonban komolyabb hangzásvilág visszaadására a DTS sokkal jobb választás. Mindenben jobb? Láthatjuk, hogy a LaserDisc kép- és hangminõségét tekintve túlszárnyalja a legjobb
VHS rendszereket is. Akkor mégis mi okozhatta a langyos fogadtatást? A minõség biztosan nem, hiszen az a kor igényeinek tökéletesen megfelelt. A TV és a VHS 4:3 arányú felvételeihez képest a LaserDisc felkínálta a szélesvásznú megjelenítés lehetõségét is: ezt a mozin felnõtt generáció örömmel fogadta. A több audio csatorna lehetõvé tette plusz információk rögzítését, majd a digitális csatornák bevezetésével CD minõségû koncertfelvételek rögzítését. Ez utóbbit a VHS még a mai napig sem tudta utolérni A VHS-nél megszokott hosszadalmas, unalmas és gyakran bonyolult tekergetéses keresés helyett az LD néhány másodpercen belül képes volt a film bármely részére, másodperces pontossággal pozicionálni. Késõbb, a CAV formátumú lemezek megjelenésével képenkénti léptetést, oda-vissza, akár tízszeres sebességû lejátszást is támogatták a lejátszók! Végül, de nem utolsósorban pedig a szalagos médiákkal
ellentétben a LaserDisc optikai úton olvasható, így akár több tíz éven át, többezer lejátszás után is képes ugyanazt a minõséget produkálni. Ennyi jó után jöjjenek az LD hátrányai. Az elsõ és talán mind közül a leglényegesebb: az LD csak lejátszható (read-only) média. A felvétel lehetõsége ugyan többször is felmerült, ám a technológia bonyolultsága, és a vásárlók érdektelensége megakadályozta a rögzítésre is alkalmas LaserDisc lejátszók bevezetését. Ráadásul, mire a lézeres letapogatásból adódó számtalan problémát kiküszöbölték, a VHS már túl nagy teret hódított el: az LD jóval drágább megoldásának addigra már esélye sem volt. A második, az LD hátrányai közül a legidegesítõbb: egyetlen lemezoldal 60 (CLV) ill. 30 (CAV) percnyi videót tudott tárolni, így a filmet csak többszöri, néhány másodperces megszakításokkal lehetett végignézni. A lemezfordítás ill -csere pedig a lemez
sérülékenységébõl adódóan fokozott körültekintést igényelt, mely pl. egy elfüggönyözött, vaksötét házimozi szobában nem mindig kivitelezhetõ. A kétoldalas, vagyis a megszakítások számát felére redukáló lejátszást támogató egységek csak késõn, és meglehetõsen magas áron kerültek bevezetésre. Ár: a lejátszók és a filmek is másfél-kétszer annyiba kerültek, mint a VHS változatok. Az ár/érték arány ugyan kiegyenlítette a nagy eltérést, azonban a legtöbb vásárlót nem gyõzte meg az LD bõvebb szolgáltatási köre és jobb minõsége, és inkább a jóval olcsóbb VHS vásárlása mellett döntött. Európában a LaserDisc elterjedését a PAL szabványú filmek hiánya akadályozta meg. Végül pedig a vásárlók többsége riasztónak, de legalábbis nehezen kezelhetõnek találta a 30 cm átmérõjû korongokat :) A lemez Három LD változat létezik: 12 inch (30 cm) átmérõjû 8 inch (20 cm) átmérõjû 5 inch (12 cm)
átmérõjû (CDV5) Nagy tömegben a legelsõ verzió terjedt el, a másik kettõ igazán csak Japánban talált szívélyes fogadtatásra. A LaserDisc alapesetben mindig kétoldalas, vagyis nem más, mint két lemez háttal egymásnak összeragasztva. Az egyoldalasnak tûnõ, egyik oldalon címkét viselõ lemezek is két lemez összeragasztásával készülnek, mert a régebbi lejátszók mechanikája a vékonyabb lemezeket nem tudta megfogni. Az újabb lejátszókban ezt a problémát már kiküszöbölték, sõt: minden jelenlegi LD lejátszó képes az audio CD lemezek olvasására is. A LaserDisc forgatása eredetileg a CD-vel megegyezõ elven, vagyis állandó lineáris sebesség (CLV - Constant Linear Velocity) tartásával történt. Ez azt eredményezte, hogy a lemez belsejének (elejének) olvasásához szükséges 1800 RPM (Rotation Per Minute: fordulat/perc) forgási sebesség a lemez külsejéhez (végéhez) közeledve fokozatosan 600 RPM-re csökkent. Ezt eleinte úgy
oldották meg, hogy a forgási sebesség csak nagyon rövid ideig volt állandó, vagyis szépen apránként csökkent. Késõbb - ugyan még mindig CLV jelzéssel - már úgy készültek a lemezek, hogy a forgási sebesség egy darabig állandó volt, majd hirtelen viszonylag nagyot esett. Ez a technika néhány bosszantó zavarjel kiszûrését tette lehetõvé. A CLV formátumú lemezek oldalanként 60 percnyi analóg videojel tárolására voltak képesek, és nem támogatták a képenkénti léptetést, valamint a megnövelt sebességû lejátszást (gyorstekerés). A jelenetek elérése másodpercre pontosan mûködött, és az ugrás távolságától függõen max. 6 másodpercet vett igénybe A CAV (Constant Angular Velocity), vagyis állandó forgási sebességû lemezek bevezetésével lehetõség nyílt a képkockára való ugrásra, a képenkénti léptetésre, és a jelenetek sokkal gyorsabb elérésére. A CAV hátránya, hogy feleannyi, oldalanként mindössze 30 percnyi
analóg videojel tárolására képes, és a lejátszásból adódó zaj a lemez végéhez közeledve nem halkul el (mivel a forgási sebesség a teljes lejátszás folyamán 1800 RPM marad). A méregdrága, high-end lejátszók egy különleges eljárás (DFS - Digital Field Store) segítségével képesek voltak a CLV lemezeken is támogatni minden CAV újdonságot. Szempont VHS Oldalankénti lejátszási idõ min. 120 perc Normál sebességû elõre/visszajátszás Gyorsított elõre/visszajátszás Lassított elõre/visszajátszás OK OK OK LD CAV LD CLV 30 perc OK OK OK 60 perc OK - LD CLV, DFS DVD 60 perc min. 135 perc OK OK OK OK OK OK Képkimerevítés Képenkénti léptetés Jelenetre ugrás Analóg hangcsatornák Digitális hangcsatornák OK OK - OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK A lejátszók Mivel maga a technológia a DVD-nek köszönhetõen a kihalás szélére került, eltekintek a lejátszók ismertetésétõl. Ehelyett
álljon itt néhány érdekes képecske: 1983: Pioneer LD-1000 1996: Pioneer CLD-925 1996: Pioneer CLD-925 1983: Pioneer LD-V6000 - elölrõl . . és hátulról A filmek Csaknem 10000 film jelent meg LaserDisc-en az elmúlt 20 évben. A DVD iparnak még rengeteg idõre lesz szüksége, hogy minden LD-n kapható film megjelenhessen DVD-n is. Egy példa az LD-n már réges-rég, DVD-n azonban még meg nem jelent filmre; s kettõ arra, hogy még mindig jelennek meg új LaserDisc-ek: Képminõség? Mivel PC-s LaserDisc lejátszó nem létezik, így jó minõségû állóképeket az Interneten nem igazán lehet találni. Kis hazánkban - mint ahogy Európában általában - nem túl népszerû ez a média, így lejátszót sem tudtam hirtelen keríteni. Végül úgy döntöttem, közzéteszek néhány jó minõségû Video CD-rõl, VHS szalagról, TV adásból és DVD-rõl elcsent képet. A LaserDisc képminõsége kb. a VHS és a DVD közé tehetõ :) A CD-meghajtó
programozása A Microsoft CD-ROM Extension (MSCDEX) a DOS egy olyan bővítése ami lehetővé teszi mind High Sierra, mind ISO-9660 formátumú CD-ROM lemezek olvasását. Az alkalmazásokkal való kompatibilitást biztosítandó azok a CD-ROM lemezt úgy "látják", mintha az egy szokványos mágneses tároló (pl. floppy, winchester) lenne A teljes CD-rendszer két komponensből áll: a CD-meghajtóval szállított hardware-függő eszközmeghajtóból (pl. SJCDAPISYS) és az MSCDEXEXE nevű eszközfüggetlen programból Az előbbi program olyan elemei műveletek elvégzésére képes, mint a fej mozgatása, egy szektor olvasása/írása, vagy a meghajtó állapotának lekérdezése (pl. van -e lemez az egységben), míg utóbbi egy IFS (Installable File System - telepíthető file-rendszer), ami “emészthetővé” teszi a CD-lemezeket a DOS számára. Az eszközmeghajtó Az MSCDEX program nem közvetlenül, hanem az eszközmeghajtón keresztül kommunikál a CD-ROM
meghajtóval. Ez lehetővé teszi különböző eszközmeghajtók alkalmazásával különböző fizikai karakterisztikájú és illesztési módú CD-meghajtók egységes kezelését az MSCDEX szintjén. Az eszközmeghajtó feladata a standard MSCDEX parancsok “lefordítása” a hardver (a CD-ROM meghajtó) számára, ilyen szinten elrejti az MSCDEX elől, hogy valójában milyen meghajtó is van a gépben. Az eszközmeghajtó a CONFIG.SYS-ben kerül betöltésre mint akármelyik másik eszközmeghajtó. A szintaxis a következő: DEVICE = <filenév> /D: <eszköznév> /N: <meghajtók száma> A megadott eszköznevet át kell adni majd az MSCDEX számára is annak indításakor, hogy az megtalálhassa a CD eszközmeghajtóját és kommunikálni tudjon vele. Az eszközmeghajtó egy ill több CD-ROM meghajtó használatát is támogathatja. Előbbi esetben a /N kapcsoló elhagyható, de több meghajtó használata esetén minden egyes meghajtónak külön
<eszköznev>-et kell adni. A DOS az eszközmeghajtóval (mint minden más device driverrel is) ún. IOCTL parancsok segítségével kommunikál. Az érvényes parancskódok a következők: Kód 0 1 2 3 4 5 Kód 6 7 8 9 10 11 Jelentés INIT MEDIA CHECK BUILD BPB IOCTL INPUT INPUT NON-DESTRUCTIVE INPUT NOWAIT Jelentés INPUT STATUS INPUT FLUSH OUTPUT OUTPUT WITH VERIFY OUTPUT STATUS OUTPUT FLUSH 12 Kód 13 14 15 16 128 130 Kód 131 132 133 134 135 135 IOCTL INPUT Jelentés DEVICE OPEN DEVICE CLOSE REMOVABLE MEDIA OUTPUT UNTIL BUSY READ LONG READ LONG PREFETCH Jelentés SEEK PLAY AUDIO STOP AUDIO WRITE LONG WRITE LONG VERIFY RESUME AUDIO A Microsoft az MSCDEX kidolgozásakor specifikált egy minimális, minden - az MSCDEX-szel kompatiblis - CD-ROM eszközmeghajtók által ismert és értelmezett utasításcsoportot (magyarul, amelyik eszközmeghajtó ezeket nem tudja avval nem - vagy legalábbis nem helyesen - működik az MSCDEX). A minimális CD-ROM eszközmeghajtó Cooked
Mode 1-ben (lásd később) adatszektorok olvasására képes HSG címzéssel (lásd később) és megfelelően kezeli az IOCTL hívásokat. Az eszközmeghajtók által minimálisan ismertnek feltételezett parancsok és paraméterezésük a következő: Init Parancskód = 0 ES:BX = INIT Init Offs Típu Érték et s 00 DB 13 dup (?) 0D DB 0 * 0E DD ? */- 12 DD ? Mező jelentése request header az alegységek száma (0) végcím mutató a BPB-re/parancssori paraméterek 16 DB 0 blokk-egységszám * az eszközmeghajtó állítja be a funkcióhívás alatt Ezt a funkciót a DOS (nem az MSCDEX) csak egyszer, az eszköz installálásakor (az eszközmeghajtó betöltésekor) hívja meg. Ez az egyetlen CD-ROM eszközmeghajtó-parancs amit maga a DOS ad ki (normális esetben); a többit mindig az MSCDEX vagy a felhasználói programok használják. Az végcímet a hívás során az eszközmeghajtónak kell beállítani a rezidenssé tenni kívánt rész méretének megfelelően. A
funkció hívásakor eszközmeghajtó paramétereire (a DEVICE= ill DEVICEHIGH= utáni karakterekre) a BPB (BIOS Parameter Block) pointer mutat. Ez lehetőséget nyújt az eszközmeghajtó számára esetleges parancssori paraméterek átvételére. Az inicializálás alatt az eszközmeghajtónak - az esetleges paramétereknek megfelelően - be kell állítania device header-jében az eszközmeghajtó nevet. Read (IOCTL input) Parancskód = 3 ES:BX = Ř IOCTLI IOCTLI Offs Típu Érték et s 00 DB 13 dup (?) 0D DB 0 * 0E DD ? 12 DW ? 14 DW 0 16 DD 0 Mező jelentése request header média-leíró bájt a BPB-ből átviteli cím átvivebdő bájtok száma kezdő szektor mutató a volume ID-re 0f hiba esetén A média-leíró, kezdő szektor és volume ID mezők tartalma mind 0. Az átviteli cím egy vezérlő-blokkra (control block) mutat, amin keresztül az eszközmeghajtóval kommunikálhatunk. A felépítése a következő: CDIReqBu Offs Típu Érték Mező jelentése f et s
00 DB ? végrehajtandó parancs kódja 01 DB n a parancs paraméterei dup(?) A parancskódok, a szükséges Request Buffer mérete (IOCTLI rekord “átvivendő bájtok száma” mezője) és jelentéseik a következők: Kód 0 Méret Jelentés 5 Device Header címének 1 6 lekérdezése Fej pozíciójának lekérdezése 2 3 4 5 6 7 Kód 8 ? ? 9 130 5 4 Fenntartott Hiba-statisztika Információ audio-csatornáról Közvetlen meghajtó-vezérlés Eszköz állapotának lekérdezése Szektor-méret lekérdezése Méret Jelentés 5 Lemez-méret lekérdezése 9 10 11 12 13 14 15 16255 2 7 7 11 13 11 11 ? Lemez-csere lekérdezése Audio-lemez információ Audio-sáv információ Audio Q-Channel info Audio Sub-Channel info UPC Code beolvasása Audio-állapot lekérdezése Fenntartott • Device header címének lekérdezése DevHeaderA Offs Típu Érték Mező jelentése ddr et s 00 DB 0 Parancs-kód * 01 DD ? A meghajtó device header-ének címe A funkció meghívásásakor
az eszközmeghajtó a device-header címét helyezi a requestbufferbe. • Fej pozíciójának lekérdezése LocationOfh Offs Típu Érték Mező jelentése ead et s 00 DB 1 Parancs-kód 01 DB ? Címzési mód * 02 DD ? Az olvasófej pozíciója Az eszközmeghajtó fej pozícióját adja vissza a címzési módnak megfelelő formában. • Hiba-statisztika lekérdezése ErrorStatisti Offs Típu Érték Mező jelentése cs et s 00 DB 3 Parancs-kód * 01 DB N dup Hiba-statisztika (?) A hiba-statisztikák még nem lettek definiálva. • Audio-csatorna információ Audio-chnl Offs Típu Érték Mező jelentése info et s 00 DB 4 Parancs-kód * 01 DB ? A 0. kimeneti csatornához kapcsolódó bementi csatorna (0,1,2,3) * 02 DB ? A 0. kimeneti csatorna hangerőssége (0-255) * 03 DB ? A 1. kimeneti csatornához kapcsolódó bementi csatorna * 04 DB ? A 1. kimeneti csatorna hangerőssége * 05 DB ? A 2. kimeneti csatornához * * 06 07 DB DB ? ? * 08 DB ? kapcsolódó bementi
csatorna A 2. kimeneti csatorna hangerőssége A 3. kimeneti csatornához kapcsolódó bementi csatorna A 3. kimeneti csatorna hangerőssége Az audio-csatornák aktuális állapotát kérdezi le. Alapbeállításban minden kimeneti csatornához a vele egyező sorszámú bementi csatorna van hozzárendelve és minden csatorna hangereje maximális (255). • Közvetlen meghajtó-vezérlés (olvasás) DrvDirectCtr Offs Típu Érték Mező jelentése lI et s 00 DB 5 Parancs-kód * 01 DB ? Átvitt bájtok száma * 02 DB 128 Adat-buffer DUP(?) E funkció és párja ( Write(IOCTL Ouput) - Közvetlen Meghajtó-vezérlés (írás) ) használatával nyílik lehetőség közvetlenül a meghajtóval való kommunikációra. A funkció hívása után az átvitt bájtok számát a megfelelő mező adja meg, ez azonban nem lépheti túl a 128 bájtot. Ennél több információ átvitele több egymás után funkcióhívás alkalmazásával lehetséges. A funkció alkalmazása és paraméterei
teljesen eszközfüggőek, mindössze csak azért került definiálásra, hogy szabványos lehetőséget biztosítson a specifikációban nem definiált, de különböző meghajtók által támogatott funkciók használatára. • Meghajtó állapotának lekérdezése DeviceStatu Offs Típu Érték Mező jelentése s et s 00 DB 6 Parancs-kód * 01 DD ? Státusz Az eszközmeghajtó által visszaadott állapot-leíró bitjeinek jelentése a következő: Bit 0 1 Ha kikapcsolt (0) A meghajtó ajta be van csukva A meghajtó tálcája nyitható 2 Csak cooked olvasást támogat 3 4 Csak olvasható Csak adat-sávok elérését támogatja Ha bekapcsolt (1) A meghajtó ajta nyitva van A meghajtó tálcája zárva van (locked) A raw olvasási módot is támogatja Írható-olvasható Audio/video sávokat is kezel 5 Nem támogatja az "szektorfésülést" (interleaving) 6 Fenntartott 7 Nem támogatja az előre-olvasást (prefetching) 8 Nem támogatja az audiocsatornák
vezérlését 9 Csak a HSG címzési módot támogatja 10-31 Fenntartott Támogatja az interleaving-et Támogatja az előre-olvasást Támogatja az audi-csatorna manipulációkat A HSG és a Red Book címzést is támogatja - • Szektor-méret lekérdezése SectorSize Offs Típu Érték Mező jelentése et s 00 DB 7 Parancs-kód 01 DB ? Olvasási mód (cooked/raw) * 02 DW ? Szektor-méret A szektorméret CD-ROM esetében cooked módban 2048, míg raw módban 2352 bájt. • Lemez-méret lekérdezése VolumeSize Offs Típu Érték Mező jelentése s et 00 DB 8 Parancs-kód * 01 DD ? Lemez-méret (szektorokban) Az eszközmeghajtó a lemez TOC-jából (Table Of Contents - tartalomjegyzék) beolvassa a lead-out track (lásd később) pozícióját és ezt adja vissza a lemezen található szektorok számaként. • Lemez-csere lekérdezése MediaChang Offs Típu Érték Mező jelentése e et s 00 DB 9 Parancs-kód * 01 DB ? Lemez-csere állapotkód Az eszközmeghajtó által
visszadott állapotkód értelmezése: Érték 0 1 255 (-1) Jelentés Nem történt lemez-csere Nem állapítható meg lemezcsere Lemez-csere történt • Audio lemez-információk lekérdezése AudioDiskInf Offset Típus Érték Mező jelentése o 00 01 02 03 DB DB DB DD 10 ? ? ? Parancs-kód * Legalacsonyabb sáv-sorszám * Legmagasabb sáv-sorszám * A lead-out track kezdőpozíciója (Red Book formátumban!) Az eszközmeghajtó a lemez lead-in (legelső) sávjából beolvasott információkat adja vissza. A sávsorszámok mind bináris értékek (nem BCD), a lead-out track pozíciója pedig Red Book formátumú cím. • Audio-sáv információk lekérdezése AudioTrackI Offs Típu Érték Mező jelentése nfo et s 00 DB 11 Parancs-kód 01 DB ? Sáv száma * 02 DD ? A sáv kezdőpozíciója (Red Book formátumban!) * 06 DB ? Sáv-típus Az eszközmeghajtó a megadott sáv kezdőpozícióját adja vissza Red Book formátumban. A sáv-típus értelmezése a következő:
Bitmaszk Jelentés 00x00000 2-csatornás, hangkiemelés nélkül 00x10000 2-csatornás, hangkiemeléssel (pre-emphasis) 10x00000 4-csatornás, hangkiemelés nélkül 10x10000 4-csatornás, hangkiemeléssel 01x00000 Bitmaszk 01x10000 11xx0000 xx0x0000 xx1x0000 adat-sáv Jelentés fenntartott fenntartott digitális másolás tilos digitális másolás engedélyezve • Audio Q-csatorna információk lekérdezése AudioQChnl Offs Típu Érték Mező jelentése Info et s 00 DB 12 Parancs-kód * 01 DB ? Control és Adr bájt (halvány lila gőzöm sincs, hogy ez mi) * 02 DB ? Sávszám * 03 DB ? Index (essemtommi) * 04 DB ? MIN (Lejátszási pozíció a sávon belül) * 05 DB ? SEC * 06 DB ? FRAME * 07 DB 0 Fenntartott * 08 DB ? PMIN (Lejátszási pozíció a lemezen) * * 09 0A DB DB ? ? SEC FRAME E funkció segítségével állapítható meg, hogy hol tart az audio-sáv lejátszása. A visszaadott a sávon elejéhez képesti relatív ill abszolút pozíció mezői a Red Book
címzésnek megfelelően értelmezendők. • Audio Sub-Channel információk lekérdezése SubChnlInfo Offs Típu Érték Mező jelentése et s 00 DB 13 Parancs-kód 01 DD ? Kezdő frame címe (Red Book!) 05 DD ? Átviteli cím 09 DD ? Beolvasandó szektorok száma Az eszközmeghajtó a megadott kezdőpozíciótól kezdve szektoronként 96 bájt nyers sub-channel információt olvas be a memóriába a megadott átviteli címre. • UPC kód beolvasása SubChnlInfo Offs Típu Érték Mező jelentése et s 00 DB 14 Parancs-kód * 01 DB ? Control és Adr bájt (lásd fent) * 02 DB 7 UPC/EAN kód DUP( ?) 03 DB 0 Fenntartott * 04 DB ? AFrame A funkció a CD-meghajtóban található lemez UPC-ját (Universal Product Code - Egyedi Termék Azonosító, magyarul katalogizálási szám) adja vissza. Az UPC 13 darab számjegyből áll, melyek mindegyike 4 biten van kódólva, így az UPC utolsó 4 bitje mindig 0. Amennyiben a lemezen nem található UPC bejegyzés Sector Not Found
hibakódot kapunk vissza. • Audio státusz lekérdezése AudioStatus Offs Típu Érték Mező jelentése et s 00 DB 15 Parancs-kód * 01 DW ? Audio-státusz (0. bit lejátszás felfüggesztve, 1.-15 fenntartva) * 03 DD ? Az utolsó Play v. a következő Resume (lásd később) kezőpozíciója * 07 DD ? Az utolsó Play v. a következő Resume végpozíciója Write (IOCTL Output) Parancskód = 12 ES:BX = IOCTLO IOCTLO Offs Típu Érték et s 00 DB 13 dup (?) 0D DB 0 0E DD ? 12 DW ? 14 DW 0 16 DD 0 Mező jelentése request header média-leíró bájt a BPB-ből átviteli cím átvivebdő bájtok száma kezdő szektor mutató a volume ID-re 0f hiba esetén A mezők jelentése megegyezik a Read (IOCTL Input) parancsnál leírtakkal. CDOReqB Offs Típu Érték Mező jelentése uf et s 00 DB ? végrehajtandó parancs kódja 01 DB n a parancs paraméterei dup(?) A parancskódok és jelentéseik a következők: Kód 0 1 2 3 4 5 6-255 Méret 1 2 1 9 ? 1 ? Jelentés Lemez-tálca
nyitása Lemez-tálca zárása/oldása (lock/unlock) Meghajtó alaphelyzetbe hozása (reset) Audio-csatornák vezérlése Közvetlen meghajtó-vezérlés Lemez-tálca behúzása Fenntartott • Lemez-tálca nyitása EjectDisk Offs Típu Érték Mező jelentése et 00 s DB 0 Parancs-kód Az eszközmeghajtó feloldja a lemez-tálca zárat (ha volt) és kinyitja a lemez-tálcát. Csak motorikus meghajtókon használható. • Lemez-tálca zárása/oldása LockDoor Offs Típu Érték Mező jelentése et s 00 DB 1 Parancs-kód 01 DB ? Funkció ( 0 - zárás, 1 - oldás) A funkciónak megfelelően zárja/oldja a lemez-tálcát. Zárt állapotban a meghajtó nem nyitható kívülről (nem programból). • Lemez-tálca zárása/oldása ResetDrive Offs Típu Érték Mező jelentése et s 00 DB 2 Parancs-kód A funkció hatására az eszközmeghajtó reseteli és inicializálja a meghajtót. • Audio-csatorna vezérlése AudioChnlCtrl Offset Típus Érté Mező jelentése k 00
DB 3 Parancs-kód 01 DB ? A 0. kimeneti csatornához kapcsolódó bementi csatorna (0,1,2,3) 02 DB ? A 0. kimeneti csatorna hangerőssége (0255) 03 DB ? A 1. kimeneti csatornához kapcsolódó bementi csatorna 04 DB ? A 1. kimeneti csatorna hangerőssége 05 DB ? A 2. kimeneti csatornához kapcsolódó bementi csatorna 06 DB ? A 2. kimeneti csatorna hangerőssége 07 DB ? A 3. kimeneti csatornához kapcsolódó bementi csatorna 08 DB ? A 3. kimeneti csatorna hangerőssége Az audio-csatornák állapotát állítja be. A paraméterek és értelmezésük megegyezik a Read(IOCTL Input) Audio-Csatorna Információk Lekérdezése funkciónál leírtakkal. A funkció segítségével lehetőség nyílik pl. többnyelvű CD-k készítésére, amikor is két különböző nyelvi anyagot csak 2-2 csatornán párhuzamosan tárolják, majd visszajátszáskor a nem használt nyelvnek megfelelő két csatorna bemenetét a másik két csatornára irányítják át. Egy másik
lehetőség a virtuális hangforrás térbeli mozgásának imitálása a használt csatornák megfelelő változtatásával. • Közvetlen meghajtó-vezérlés (írás) DrvDirectCtrlO Offset Típus 00 DB 01 DB Érték 4 128 DUP(?) Mező jelentése Parancs-kód Adat-buffer A funkció segítségével közvetlenül küldhető parancs a meghajtónak. A paraméterek teljesen eszköz-függőek, értelmezésük a meghajtótól függ. Használtával kapcsolatban lásd a Read(IOCTL Input) - Közvetlen meghajtó-vezérlés (olvasás) funkciót. • Lemez-tálca behúzása CloseTray Offs Típu Érték Mező jelentése et s 00 DB 5 Parancs-kód Az eszközmeghajtó behúzza a lemez-tálcát. Csak motorikus meghajtókon használható Az MSCDEX Mint láttuk a CD-meghajtó "érdemi" kezelését az eszközmeghajtó látja el. De akkor mit csinál az MSCDEX? Az MSCDEX feladata a DOS alkalmazások számára "láthatóvá" és egyben "átlátszóvá" tenni a
CD-meghajtót egy olyan interfész definiálásával ami adatformátumaiban és szolgáltatásaiban megfelel a DOS által a standard mágneses meghajtók elérésére alkalmazotakkal. Így az alkalmazások - hacsak nincsenek külön felkészítve az MSCDEX kezelésére - észre sem veszik, hogy az adott fájlt éppen CDmeghajtóról töltik be, hiszen ugyanazt a funkcióhívást alkalmazhatják - és alkalmazzák a CD-meghajtón lévő fájlok, mint az egyéb mágneses egységeken lévők elérésére (természetesen csak a CD nyújtotta keretek között, pl. a fájlt nem lehet létrehozni, vagy írni, stb.) Az MSCDEX és plusz, CD-specifikus szolgáltatásainak elérésére a 2Fh megszakításon keresztül nyílik lehetőség. A megszakítás meghívásával a következő szolgáltatások érhetők el: Get Number of CD-ROM drive letters AX 1500h ( majd INT 2Fh) R: BX a használt CD-ROM meghajtók száma CX az első CD-ROM meghajtó (A=0, B=1, ., Z=25) Figyelem! A funkció nem
igazán alkalmas annak eldöntésére, hogy egy adott meghajtó CD-meghajtó -e vagy sem, mert a CD-ROM meghajtók betűjeleinek folytonossága nem biztosított. Erre alkalmasabb a Get CD-ROM drive letters funkció Get CD-ROM drive device list AX 1501h ES:BX buffer a CD-meghajtók adatainak tárolására R: Az ES:BX buffer feltöltve az adatokkal A buffer elemei 5 bájtos rekordok, melyeknek első 4 bájtja egy pointert tartalmaz az adott meghajtó device driver header-jére, míg a következő bájt a meghajtóhoz tartozó sub-unit kódot tartalmazza. A buffernek elég hosszúnak kell lennie az adatok tárolására A buffer szükséges hossza az előző funkció meghívásával dönthető el, de célszerű a maximum 26 darab meghajtó számára szükséges helyet lefoglalni, hiszen ez is csak 130 bájt. Get Copyright file name AX 1502h ES:BX 38-bájtos buffer a fájlnév tárolására CX CD-ROM meghajtó (A=0,.) R: Az ES:BX buffer feltöltve Az az igazság, hogy nekem még mindig
null-sztringet adott vissza ez a funkció, úgyhogy nem tudtam kitalálni, hogy valójában mire is jó. Állítólag a VTOC-ból kimásolja a copyright file nevét. Get Abstract file name AX 1503h ES:BX 38-bájtos buffer a fájlnév tárolására CX CD-ROM meghajtó (A=0,.) R: Az ES:BX buffer feltöltve U.a mint az előző funkciónál Get Bibliographic Documentation file name AX 1504h ES:BX 38-bájtos buffer a fájlnév tárolására CX CD-ROM meghajtó (A=0,.) R: Az ES:BX buffer feltöltve U.a mint az előző kettő funkciónál Read VTOC AX 1505h ES:BX 2048-bájtos buffer az adatok tárolására CX CD-ROM meghajtó (A=0,.) DX szektor index (0.n) R: Az ES:BX buffer feltöltve AL 1 - ha ez volt a standard , 0ffh - ha ez volt az utolsó VD, 0 - többi A funkció az ún. Volume Descriptorok (VD) beolvasására alkalmas Turn debugging On AX 1506h BX ez engedélyezni kívánt nyomkövetési funkció Feljesztésehkez fenntartva. (Magyarul a kereskedelmi verziókban nem csinál
semmit) Turn debugging OFF AX 1507h BX ez tiltani kívánt nyomkövetési funkció U.a mint az előző Absolute disk Read AX 1508h ES:BX buffer CX CD-ROM meghajtó (A=0,.) DX olvasandó szektorok száma SI:DI kezdő szektor A funkcióhívást az MSCDEX egy READLONG devcie driver request-té alakítja és továbbítja az eszközmeghajtó felé. Absolute disk Write AX 1509h ES:BX buffer CX CD-ROM meghajtó (A=0,.) DX olvasandó szektorok száma SI:DI kezdő szektor A funkcióhívást az MSCDEX egy WRITELONG devcie driver request-té alakítja és továbbítja az eszközmeghajtó felé. CD-ROM drive check AX 150Bh BX DADAh CX CD-ROM meghajtó (A=0,.) R: BX = ADADh ha CD-ROM meghajtó Amennyiben a megadott meghajtó CD-ROM meghajtó a BX regiszter értéke ADADh visszatérés után. MSCDEX version AX 150Ch R: BX = MSCDEX verziószám (főverzió - felső bájt; alverzió - alsó bájt) A verziószám bináris formában van, tehát a 2.23 verzió 0217h-t ad vissza Get CD-ROM drive
letters AX 150Dh ES:BX buffer a meghajtó-azonosítók számára R: ES:BX buffer feltöltve A buffernek elég hosszúnak kell lennie az adatok tárolására. A buffer szükséges hossza a Get number of CD-ROM drive letters funkció meghívásával dönthető el, de célszerű a maximum 26 darab meghajtó számára szükséges helyet (26 bájt) lefoglalni. Send device driver request AX 1510h CX CD-ROM meghajtó azonosítója (A=0,.) ES:BX device driver request buffer A funkció a megadott request buffer továbbítja az eszközmeghajtó felé. Segítségével egyszerűbbé válik a CD-ROM meghajtókkal való kommunikáció és lehetővé válik azok multitaszkos rendszerekben való konfliktusmentes alkalmazása