Program ● ●
Standarní rozhranní – – – –
●
Rozhraní pro pevné disky –
●
Paralelní port Sériový port, IRDA Firewire USB, Bluetooth (příště) ATA, SATA, SCSI (příště)
Cvičení: Blikající stromeček, řízení křižovatky, infračervený příjímač, osciloskop ze zvukové karty, měření sběrnice I2C, měření sběrnice USB, měření komunikace klávesnice, zvuková karta z paralelního portu, stavba I2C převodníku do paralelního portu.
Paralelní rozhraní ● ● ● ● ●
Paralelní port, rozhraní centronics Běžně sloužil pro připojení tiskárny V dnešních počítačích se zachoval Podle módu se mění parametry (piny) portu Piny: –
vstupní ● ●
–
řídící datové (jen někdy podle módu portu)
výstupní ● ●
datové D0-D8 řídící
1. Compatibility Mode. 2. Nibble Mode. (Protocol not Described in this Document) 3. Byte Mode. (Protocol not Described in this Document) 4. EPP Mode (Enhanced Parallel Port). 5. ECP Mode (Extended Capabilities Mode).
Zapojení vývodů Pin No (D(Centroni Type 25) cs)
SPP Signal
Directio Hardware Register n In/out Inverted
1
1
nStrobe
In/Out
Control
2
2
Data 0
Out
Data
3
3
Data 1
Out
Data
4
4
Data 2
Out
Data
5
5
Data 3
Out
Data
6
6
Data 4
Out
Data
7
7
Data 5
Out
Data
8
8
Data 6
Out
Data
9
9
Data 7
Out
Data
10
10
nAck
In
Status
11
11
Busy
In
Status
12
12
Paper-Out / Paper-End
In
Status
13
13
Select
In
Status
14
14
nAuto-Linefeed
In/Out
Control
15
32
nError / nFault
In
Status
16
31
nInitialize
In/Out
Control
17
36
nSelect-Printer / nSelect-In
In/Out
Control
18 - 25
19-30
Ground
Gnd
Table 1. Pin Assignments of the D-Type 25 pin Parallel Port Connector.
Yes
Yes
Yes
Yes
Softwarový protokol ● ●
Jednoduše se řekne že posíláme tiskárně data Ona signálem odpoví že data přijala
Jaké porty používá „paralelní port“ ? ●
Standartní „base“ adresy – – – –
0x378 0x287 0x3BC (paralelní port na grafické kartě) Adresa portu je zapsána v BIOS data area ● ● ●
–
0000:0408 LPT1's Base Address 0000:040A LPT2's Base Address 0000:040C LPT3's Base Address
Datový port ● ● ● ● ● ● ● ● ●
base + 0 (pro zápis, čtení podle módu) Bit 7 Data 7 Bit 6 Data 6 Bit 5 Data 5 Bit 4 Data 4 Bit 3 Data 3 Bit 2 Data 2 Bit 1 Data 1 Bit 0 Data 0
Zvuková karta z paralelního portu ● ●
●
Známá pod názvem COVOX je to v podstatě D/A převodník složený z odporů (digitálně analogový převodník) D/A převodník: – – –
převádí binární reprezentaci na analogovou (spojitou) proud nebo napětí různé druhy používají se přepínače, odporové sítě, zdroje proudu
Úloha na cvičení - Knight Rider ●
Zadání: vyrobte 2 pruhy, „jezdících diod“, použijtte tyto IO: – – –
●
74LS164 nebo 74LS175 (registry) nejprve simulujte s tlačitky později připojte přes paralelní port
Postup návrhu: – –
seznámení s IO (integrovaný obvod) návrh schématu ●
– –
výstupy z posuv. registru přivedeme na diody, pokud je v registru 1 dioda svítí
prototyp na prototypové desce řídící program
Opakování – posuvný registr ●
Registr – – – – –
●
datový vstup D hodinový vstup CLK případně signál ENABLE výstup Q nebo i negace Q D flipflop – do registru zapíše hodnotu datového vstupu D na náběžnou hranu
posuvný registr – –
seriový vstup, paralelní výstup (jsou možné i další kombinace) funkce je podobná jako u instrukcí posuvu, s každým taktem posun o 1 jedním směrem
Co dělat pokud posuvný registr nemáme? ● ●
Stačí pokud máme např. k dispozici registry typu D (SN74LS154) když je propojíme sériově (vstup na výstup) dostaneme posuvný registr
Zpožďovací funkce ● ● ●
http://www.ctyme.com/intr/int.htm Použijte funkci BIOSu Int 15/AH=86h - BIOS - WAIT (AT,PS)
AH = 86h CX:DX = interval in microseconds Return: CF clear if successful (wait interval elapsed) CF set on error or AH=83h wait already in progress AH = status (see #00496)
Signály generované počítačem ● ●
Hodiny a sériový vstup vybereme např signály D0 a D1 – –
● ● ● ●
● ●
●
D1 budou hodiny D0 budou data
D1D0 0 0 hodiny jsou v nule, data také 0 1 data změníme 1 1 hodiny změníme, registr se posune o 1 (změna 0 na 1 = náběžná hrana) 0 X další cyklus Reprezentujeme Stavy LED diod 8mi bitovým registrem, kde je 1 bude LED svítit pokud změny provedeme rychle uživatel uvidí svítit správné diody
Sériový port obecně ● ● ●
sériové rozhraní „jeden datový“, více řídících na PC konektory: – –
● ● ●
●
●
DB9 devítipinový samec DB25 25-pinový samec
Podle rozhraní RS-232 typicky se připojuje myš nebo modem (spíše historie) dnes již spíše z historických důvodů, USB a Firewire jsou mnohem rychlejší ovšem různá speciální zařízení (čtečky čarových kódů, touch screen a „domácky vyrobené zařízení“ se stále přes sériovou linku připojují, platí především prosíťová zařízení mající operátorskou konzoli připojenou přes sériové rozhraní maximální rychlost přenosu cca 115000 bit/s
Seriový port zapojení ●
podle specifikace RS-232 se zařízení mohou jmenovat – –
Data Terminal Equipment (DTE) - počítač Data Communications Equipment (DCE) modem, tiskárna
Signal DB-25 DB-9 Common Ground 7 5 Transmitted Data (TD) 2 3 Received Data (RD) 3 2 Data Terminal Ready (DTR) 20 4 Data Set Ready (DSR) 6 6 Request To Send (RTS) 4 7 Clear To Send (CTS) 5 8 Carrier Detect (DCD) 8 1 Ring Indicator (RI) 22 9 ● signály jsou označeny z pozice DTE - TD, DTR, and RTS generuje počítač ● RD, DSR, CTS, DCD, a RI generuje DCE. Zem je společná, což může dělat problémy na větších vzdálenostech, nebo u zařízení pripojených k různým el. sítím.
Seriový port systémové prostředky ● ● ● ● ● ●
v Linuxu se jmenuji ttyS0 ttyS1 ... PORT NAME Interrupt # Starting I/O Ending I/O COM1 IRQ 4 0x3f8 0x3ff COM2 IRQ 3 0x2f8 0x2ff COM3 IRQ 4 0x3e8 0x3ef COM4 IRQ 3 0x2e8 0x2ef
Null modem kabel ● ●
K přímému propojení dvou počítačů, stačí 3 vodiče zkuste zjistit na internetu jak takový kabel zapojit
Více o rychlosti a komunikaci ● ● ●
●
Rychlost měříme v bitech za sekundu (baud) 300, 1200, 2400, 9600, 19200, etc. Obecně počítač i zařízení se musí na komunikační rychlosti předem domluvit (nebo ji nastavit ručně ve většině případů) Parametry co se nastavují: – – –
rychlost (už víme) stop bity (použito pro synchronizaci), posílají se za každým odeslaným byte parita ● ● ●
●
Notace zápisu konfigurace: –
●
8/N/1 -8 bitů v byte žádná parita 1 stopbit
Flowcontrol – tok požadavků –
●
jednoduchý kontrolní funkce sudá pokud je počet jedniček v byte sudý je 1 lichá parita opačně
XON/XOFF – pro hadshake se používají speciální data ne signály
RTS/CTS, DTR/DSR – klasika, přes signály
IRDA ●
Je zkratka pro The Infrared Data Association (IrDA) a definuje: – –
● ● ●
IrDA optická komunikace na krátké vzdálenosti IrDA se používá pro komunikaci mezi palmtopy/handheldy a PC IrDA specifikace zahrnuje –
●
komunikační protokoly fyzické parametry infračerveného rozhranní
IrPHY, IrLAP, IrLMP, IrCOMM, Tiny TP, IrOBEX, and IrLAN.
detekce funkce: –
neviditelné infračervené záření uvidíte pokud se podíváte digitálním fotoaparátem
LIRC ● ● ●
Přijímač i vysílač infra Příjmat data dálkovým ovladačem
Seriový jednoduchý teploměr ● ● ●
Měříme časovou konstantu za jak dlouho se nabije kondenzátor DTR 1 měříme za jak dlouho bude DSR jedna Čas se mění protože se mění i odpor s teplotou
Firewire IEEE1394 ● ● ●
Pro přenos digitálního videa mezi kamerou a počítačem Isochronní přenos (trvá stanovený čas) OHCI standard –
●
bezpečnostní problémy –
● ●
●
zajišťuje kompatibilitu mezi zařízeními DMA bez kontroly, lze přistoupit kamkoli do paměti
Není hotswap Přenosová rychlost: mezi 100, 200, or 400 Mbit/s (přesněhi 98.304, 196.608, nebo 393.216 Mbit/s, ale běžně S100, S200, and S400) délka kabelu max 4.5 metru, ovšem 16 kabelů můžeme spojit kříženě a dostaneme se na 64m
První krůčky v C ●
Datové typy: – – – – –
●
void – speciální typ nespecifikovaný/prázdný int, unsigned int, signed int = DWORD char (zase signed unsigned) = BYTE int * = Ukazatel na proměnou typu int int nazev[32] – pole 32 hodnot typu int (paměť 4*32 byte)
Funkce mají jeden návratový typ –
Deklarace: ● ● ● ● ●
●
navratovytyp nazev (prametry); int main(void) { deklarace proměných tělo programu }
P ROGRAM = algoritmus + data
Programové konstrukce ●
rozhodování –
if (podmínka) { ●
–
else ●
– ●
příkaz
}
Iterace – – –
●
příkaz
for (i=0;i<10;i++) { příkaz1; }
iterace s podmínkou – – –
while (podmínka) { příkaz2; }