Super IO čipy - něco málo z teorie
27.7.2006, Petr Mareš, článek
V recenzích základních desek narážíme na Super IO čip ve spojitosti se schopností řízení otáček ventilátorů. Primární účel čipu je ovšem jiný. Jeho úkolem je shromažďovat starší a pomalá rozhraní. Pojďme se tedy na něj podívat podrobněji a popišme si jeho základní funkce.
Kapitoly článku:
- Super IO čipy - něco málo z teorie
- Vysvětlení pojmů
- Porovnání modelů, závěr
Pojďme se teď na jednotlivé komponenty podívat podrobněji. Části čipu, které jsou zde jmenovány, se nacházejí v podstatě ve všech IO čipech a liší se pouze v detailech (například v počtech podporovaných disketových mechanik, počtu řízených ventilátorů apod).
FDC - Floppy disc controller (řadič disketové mechaniky)
Řadič disketové mechaniky podporuje alespoň dvě 3,5 a 5,25 palcové mechaniky o velikostech 360KB, 720KB, 1.2MB, 1.44MB nebo 2.88MB.
UART - Universal Asynchronous Receiver/Transmitter (univerzální asynchronní přijímač/vysílač)
Tato část čipu slouží k sériovému přenosu dat, tedy po jednotlivých bitech. Pokud chceme odeslat data pomocí tohoto zařízení, musíme nejprve naplnit datový registr nebo buffer. Data odešleme nastavením konkrétního bitu v řídícím registru. Až jsou data odeslána, dozvíme se to pomocí přerušení popř. stavového registru. Příjem dat je obdobný. UART využívají sériové porty, dále IrDA, čtečka karet Smart Card a některých případech MIDI port. U UART lze nastavit frekvenci (jakou rychlosti budou přenášena data), délku slova (kolik bitů bude poslánu za sebou) a počet start a stop bitů. Pro detekci chyb lze použít lichou nebo sudou paritu. V IO čipech jsou implementovány UART 16550, které nabízejí dva 16 bajtové buffery.
Infračervená rozhraní
Super IO čipy implementují dvě infračervená rozhraní. Již zmíněné IrDA a CIR (Consumer IR). První slouží k přenosu dat. Maximální rychlost IrDA 1.0 je 115,2 kbps. Druhé rozhraní je určeno pro dálkové ovládání, kterým lze i celý počítač spustit.
Smart card
Rozhraní UART umožňuje připojení čtečky karet typu Smart Card. Karty jsou stejné jako platební a taktéž slouží k autentizaci uživatele.
MIDI port
Slouží k připojení MIDI zařízení. V IO čipech je implementován standard MPU-401 pouze v UART módu. Dříve byl používán i inteligentní mód, který zpracovával zprávy od a pro MIDI zařízení, ale s výkonnými procesory tento mód ztratil smysl. UART mód vlastně jen přeposílá data po sériové lince.
Paralelní port
IO čipy implementují tři standardy SPP, EPP a ECP. Standard SPP (Standard Parallel Port) nabízí obousměrný provoz (full-duplex), tedy je možné komunikovat zároveň oběma směry. Zbývající dva standardy pracují v režimu half-duplex. Standard EPP (Enhanced Parallel Port) zlepšuje datovou propustnost z cílem umožnit provoz jiným zařízením než tiskárny např. scannery, vypalovačky, externí disky apod. Standard ECP (Extended Capabilities Port) naopak zlepšuje podporu a rychlost práce s tiskárnami. Navíc lze použít RLE kompresi či přímý přístup do paměti - DMA. Tyto standardy jsou voleny automaticky podle zařízení, které k paralelnímu portu připojíte popř. lze zvolit v BIOSu napevno.
Datová propustnost:
Game port
Ke Gameportu můžeme připojit analogové 2 joysticky o dvou osách a dvou tlačítkách.
General Purpose I/O Ports (vstupní/výstupní porty obecného určení)
Tyto porty nebo chceteli piny nabízejí jednoduché operace, které lze k dalším využít činnostem. Můžete třeba vyvést některou logickou hodnotu z IO čipu, provádět negace apod. Mimo základní operace je možné použít komplexnější vestavěné operace např. lze využít tzv. Watch dog timer - časovač, který odpočítává a pokud dorazí k nule vyvolá nějakou reakci. Můžeme ho třeba použít k čekání na nějaký vstup.
Poznámka: Watch dog timer je hojně využíván v mikrokontrolérech, kde zabraňuje zacyklení programu. Funguje to tak, že Watch dog timer vyresetuje mikrokontrolér, pokud je jeho hodnota snížena na nulu a aby se tak nestalo pokaždé, musí se tento timer programově nastavit na výchozí hodnotu. Tedy pokud program zůstane někde stát, dojde k vyresetování mikrokontroléru.
Hardware monitor
Monitoring je založen na měření hodnot napětí pomocí analogově digitálního převodníku. Převodník je v Super IO čipu pouze jeden a napětí jsou na něj přiváděna postupně. IO čip IT8712T implementuje 8bitový převodník o rozsahu od 0 V do 4,096 V rozdělených na 256 hodnot. Pokud je napětí vyšší, je třeba ho rozdělit pomocí sériově zapojených rezistorů. Pomocí převodníku měříme napětí a teploty v systému (termistory, tepelné diody). Napětí, kterými je napájen IO čip se měří automaticky, ostatní je třeba přivést.
Monitoring otáček ventilátorů probíhá na základě počítání pulzů čítačem. Rychlost otáčení ventilátoru můžeme ovlivnit změnou napětí a nebo můžeme použít PWM - Pulse Width Modulation. První varianta používá digitálně-analogový převodník, kterým přivedeme na ventilátor požadované napětí. Nevýhodou jsou tepelné ztráty a také velikost implementace DA převodníku. PWM tyto nevýhody nemá. Na ventilátor je přivedeno nejprve maximální napětí a poté je nechán zcela bez napětí. Různou délkou těchto dob dosáhneme požadované rychlosti otáčení. Opakování těchto stavů musí dosáhnout určité frekvence (> 20 Hz), aby nedocházelo k cukání ventilátoru. Současné IO čipy používají PWM.
Keyboard Controller - (řadič klávesnice)
Tato část IO čipu má na starost obsluhu klávesnice a myši. Mimo jiné ovlivňuje počet současně stisknutých kláves na klávesnici a také umožňuje spouštění počítače pomocí klávesnice a myši.
V další kapitole naleznete příklady konkrétních modelů IO čipů.
FDC - Floppy disc controller (řadič disketové mechaniky)
Řadič disketové mechaniky podporuje alespoň dvě 3,5 a 5,25 palcové mechaniky o velikostech 360KB, 720KB, 1.2MB, 1.44MB nebo 2.88MB.
UART - Universal Asynchronous Receiver/Transmitter (univerzální asynchronní přijímač/vysílač)
Tato část čipu slouží k sériovému přenosu dat, tedy po jednotlivých bitech. Pokud chceme odeslat data pomocí tohoto zařízení, musíme nejprve naplnit datový registr nebo buffer. Data odešleme nastavením konkrétního bitu v řídícím registru. Až jsou data odeslána, dozvíme se to pomocí přerušení popř. stavového registru. Příjem dat je obdobný. UART využívají sériové porty, dále IrDA, čtečka karet Smart Card a některých případech MIDI port. U UART lze nastavit frekvenci (jakou rychlosti budou přenášena data), délku slova (kolik bitů bude poslánu za sebou) a počet start a stop bitů. Pro detekci chyb lze použít lichou nebo sudou paritu. V IO čipech jsou implementovány UART 16550, které nabízejí dva 16 bajtové buffery.
Infračervená rozhraní
Super IO čipy implementují dvě infračervená rozhraní. Již zmíněné IrDA a CIR (Consumer IR). První slouží k přenosu dat. Maximální rychlost IrDA 1.0 je 115,2 kbps. Druhé rozhraní je určeno pro dálkové ovládání, kterým lze i celý počítač spustit.
Smart card
Rozhraní UART umožňuje připojení čtečky karet typu Smart Card. Karty jsou stejné jako platební a taktéž slouží k autentizaci uživatele.
MIDI port
Slouží k připojení MIDI zařízení. V IO čipech je implementován standard MPU-401 pouze v UART módu. Dříve byl používán i inteligentní mód, který zpracovával zprávy od a pro MIDI zařízení, ale s výkonnými procesory tento mód ztratil smysl. UART mód vlastně jen přeposílá data po sériové lince.
Paralelní port
IO čipy implementují tři standardy SPP, EPP a ECP. Standard SPP (Standard Parallel Port) nabízí obousměrný provoz (full-duplex), tedy je možné komunikovat zároveň oběma směry. Zbývající dva standardy pracují v režimu half-duplex. Standard EPP (Enhanced Parallel Port) zlepšuje datovou propustnost z cílem umožnit provoz jiným zařízením než tiskárny např. scannery, vypalovačky, externí disky apod. Standard ECP (Extended Capabilities Port) naopak zlepšuje podporu a rychlost práce s tiskárnami. Navíc lze použít RLE kompresi či přímý přístup do paměti - DMA. Tyto standardy jsou voleny automaticky podle zařízení, které k paralelnímu portu připojíte popř. lze zvolit v BIOSu napevno.
Datová propustnost:
- SPP 150 kbps
- EPP 1,5 Mbps
- ECP 2,5 Mbps
Game port
Ke Gameportu můžeme připojit analogové 2 joysticky o dvou osách a dvou tlačítkách.
General Purpose I/O Ports (vstupní/výstupní porty obecného určení)
Tyto porty nebo chceteli piny nabízejí jednoduché operace, které lze k dalším využít činnostem. Můžete třeba vyvést některou logickou hodnotu z IO čipu, provádět negace apod. Mimo základní operace je možné použít komplexnější vestavěné operace např. lze využít tzv. Watch dog timer - časovač, který odpočítává a pokud dorazí k nule vyvolá nějakou reakci. Můžeme ho třeba použít k čekání na nějaký vstup.
Poznámka: Watch dog timer je hojně využíván v mikrokontrolérech, kde zabraňuje zacyklení programu. Funguje to tak, že Watch dog timer vyresetuje mikrokontrolér, pokud je jeho hodnota snížena na nulu a aby se tak nestalo pokaždé, musí se tento timer programově nastavit na výchozí hodnotu. Tedy pokud program zůstane někde stát, dojde k vyresetování mikrokontroléru.
Hardware monitor
Monitoring je založen na měření hodnot napětí pomocí analogově digitálního převodníku. Převodník je v Super IO čipu pouze jeden a napětí jsou na něj přiváděna postupně. IO čip IT8712T implementuje 8bitový převodník o rozsahu od 0 V do 4,096 V rozdělených na 256 hodnot. Pokud je napětí vyšší, je třeba ho rozdělit pomocí sériově zapojených rezistorů. Pomocí převodníku měříme napětí a teploty v systému (termistory, tepelné diody). Napětí, kterými je napájen IO čip se měří automaticky, ostatní je třeba přivést.
Monitoring otáček ventilátorů probíhá na základě počítání pulzů čítačem. Rychlost otáčení ventilátoru můžeme ovlivnit změnou napětí a nebo můžeme použít PWM - Pulse Width Modulation. První varianta používá digitálně-analogový převodník, kterým přivedeme na ventilátor požadované napětí. Nevýhodou jsou tepelné ztráty a také velikost implementace DA převodníku. PWM tyto nevýhody nemá. Na ventilátor je přivedeno nejprve maximální napětí a poté je nechán zcela bez napětí. Různou délkou těchto dob dosáhneme požadované rychlosti otáčení. Opakování těchto stavů musí dosáhnout určité frekvence (> 20 Hz), aby nedocházelo k cukání ventilátoru. Současné IO čipy používají PWM.
Keyboard Controller - (řadič klávesnice)
Tato část IO čipu má na starost obsluhu klávesnice a myši. Mimo jiné ovlivňuje počet současně stisknutých kláves na klávesnici a také umožňuje spouštění počítače pomocí klávesnice a myši.
V další kapitole naleznete příklady konkrétních modelů IO čipů.