Karakterek ábrázolása - az ASCII kódrendszer
A számítógép és a külvilág, vagy egy másik számítógép közötti kapcsolat megvalósítása során az információk átvitele kódolva történik. A bitcsoportoknak — amelyek elvileg tetszõleges számú bitbõl állhatnak — jelentést tulajdonítunk (kódolást végzünk). Az információátvitele során ezeket a bitcsoportokat továbbítjuk és a vevõ oldalon a jelentésének megfelelõen értelmezzük (dekódoljuk).
Természetesen a bitcsoportokban lévõ bitek száma, és a bitcsoportokhoz rendelt jelentés számtalan féle lehet, azonban a karakterek ábrázolásánál — a számítástechnika és informatika fejlõdése során — csaknem kizárólag az ASCII kódrendszer vált egyeduralkodóvá.
Az ASCII rövidítés az American Standard Code for Information Interchange (=Amerikai szabványos kód az információ kölcsönös cseréjére) kifejezés rövidítése. Az ilyen módon kódolt bitcsoportokat ASCII karaktereknek nevezzük. Az ASCII karakterkészlet 128 hétbites, különbözõ kódot tartalmaz, amelyik mindegyike egy egyedi karaktert reprezentál.
Természetesen felmerülhet a kérdés, hogy miért 7, és nem 8 bites kódot választottak, hiszen ekkor 256 különféle kód volna lehetséges (és ez a bájtos tárolási módhoz is illeszkedne). Az ASCII kód ANSI X3.4-1977-es szabványának függelékében szerepel az a megállapítás, hogy minimum 7 bit a legtöbb felhasználásban elegendõ. Ez érthetõ is, mert ha az angol ABC-t tekintjük, annak 26 kis, 26 nagybetûje, az írásjelek (vesszõ, kérdõjel, stb.) valamint a 10 szám együttesen már 64 különféle karaktert jelent, aminek kódolásához már 6 bit szükséges.
Az ANSI szabvány az ASCII karakterkészlet definiálásakor a kódokat két fõ csoportba osztotta: grafikus karakterek és vezérlõ karakterek csoportjába.
Grafikus karakterek alatt a megjeleníthetõ, látható, nyomtatható karaktereket értjük, míg a vezérlõ karakterek, a megjelenítés vezérlésére, formájának kialakítására, valamint az információcsere vezérlésére szolgálnak.
A vezérlõkaraktereket három kategóriába soroljuk: — információcsere vezérlõk, — formátumot befolyásolók — információ elkülönítõk. Az elsõ 32 karakter, és az utolsó DEL karakter tartozik ezekbe a kategóriákba.
Információcsere vezérlõ karakterre példa a 04H kódú EOT karakter, amit annak a jelzésére használnak, hogy a karakterek átvitele befejezõdött és ez a kód jelöli, hogy nincs több átviendõ karakter.
Formátum befolyásoló karakterekkel lehet a karaktersorozat megjelenési formáját befolyásolni. Például az LF (0AH) Line Feed (Soremelés) karakter hatására a karakterek megjelenítése az adott pozícióban, de új sorban folytatódik. Pl. az A,B,C,D,LF,E,F karaktersorozat az
ABCD
EF
formában jelenik meg.
Az információ elkülönítõ karakterek az információ logikai értelemben való elkülönítésére szolgálnak. Ilyen módon lehetséges különbözõ hosszúságú karaktersorozatok — rekordok — átvitele. Ha például három különbözõ hosszúságú rekordot akarunk átvinni, akkor a rekordokat a Rekord Separator (RS) (1EH) karakterrel lehet egymástól elválasztani. A vezérlõkarakterek némelyike a fentiek egyikébe sem sorolható be, ezeket általános vezérlõkaraktereknek nevezzük.
A vezérlõ karakterek jelentése
Az ANSI szabvány minden ASCII karaktert részletesen meghatároz. A vezérlõkarakterek értelmezése és jelentése általánosan nem közismert, ezért a következõkben ezeket ismertetjük, így jobban megértjük egy adott készüléknél, berendezésnél való felhasználásuk célját és értelmét.
Ahogy ezt már az elõbb is említettük, az ASCII vezérlõkódokat információátvitelnél használják. Az adatátvitel során az ADÓ valamilyen összeköttetésben van a VEVÕ-vel, és a kódolt információt átadja. Ez az információátvitel általában ASCII kódú karakterek segítségével történik és a vezérlõkarakterek szolgálnak az adatátvitel tényleges végrehajtásának megvalósítására.
Minden ASCII vezérlõkarakter speciális vezérlési feladat megvalósítására szolgál. A következõkben röviden ismertetjük jelentésüket:
NUL (null) : ez a karakter bárhol elhelyezhetõ az adatfolyamban, annak információ tartalmának megzavarása nélkül. Például lassú nyomtatóknál a kocsi-vissza (CR), soremelés (LF) karaktereket egy, vagy több NUL karakter követhet, aminek az a szerepe, hogy a mechanika képes legyen a parancsokat végrehajtani, azaz a nyomtatófejet a sor balszélére visszavinni.
SOH (Start of Heading): Adatátvitelnél a tényleges adatok átvitele blokkonként (karaktercsoportonként) történik. Az adatokra vonatkozó információkat (hány adat, milyen fajta, típusa, stb.) egy külön blokkban viszik át. Ennek a speciális blokknak a kezdetét jelöli a SOH karkter.
STX (Start of Text): Az elõbbi speciális blokk az STX karakterrel fejezõdik be, és egyben jelöli, hogy ezután adatblokkok (szöveg) átvitele következik.
ETX (End of Text): Az utolsó adatblokk befejezését jelöli (szövegvége).
EOT (End of Transmission): Ezt a karaktert szokás használni a teljes átvitel befejezésére. Maga az átvitel több speciális blokkból, és az azokat követõ adatblokkokból állhat.
Hogy jobban megértsük ezeknek a vezérlõ karaktereknek a jelentését, tegyük fel, hogy egy terminálra (aminek címe mondjuk legyen 16-os), ki akarjuk vinni a "STOP" üzenetet. Az üzenet négy karakter hosszúságú. A szabványos átvitel szerinti karakter sorozat:
SOH,1,6,STX,S,T,O,P,ETX,4,EOT
Természetesen a konkrét megvalósításokban még más specifikus részek is lehetnek az üzenetben.
ETB (End of Transmission Block): ez a karakter használható egy-egy adatblokk átvitelekor a végsõ lezáró karakterként.
ENQ (Enquiry): Az adatátviteli rendszerekben, ha választ várunk egy távolabbi állomástól, ezt a karaktert küldjük ki (ki vagy?), hogy az beküldje az azonosítóját, és az állapotára (státuszára) vonatkozó információt.
ACK (Acknowledge): ezt a jelet a vevõ küldi ki, azért, hogy választ kapjon a küldõtõl.
NAK (Negative Acknowledge): a vevõ küldi ki az adónak, ha valamilyen okból nem képes az adóval együttmûködni, mert foglalt.
Az ENQ,ACK, és NAK általában a tényleges átviteli protokoll kialakítására szolgál.
BEL (Bell): vezérlõ karakter a figyelem felhívására, ha a vevõ ezt veszi, általában hallható hangjelzést ad (csengõ).
BS (Backspace): a formátumot befolyásolja, kiküldésével a vevõben ugyanabban a sorban egy pozicióval való visszalépés (és esetleg az utolsó karakter törlése) hajtódik végre.
HT (Horizontal Tabulation): szintén formátum vezérlõ, a vevõ a jel hatására az aktuális karakter pozícióból a következõ, elõre meghatározott tabulátor pozícióba lép.
LF (Line Feed): soremelés az aktuális pozícióban, de a következõ sorban folytatódik a nyomtatás. Sok esetben ezen karakter vétele, nem a fenti hatást, hanem új sor parancsot is jelent.
VT (Vertical Tabulation): formátumvezérlõ, ugyanabban a pozícióban, de elõre meghatározott sor átlépése után folytatódik a nyomtatás.
FF (Form Feed): formátum vezérlõ, ugyanabban a pozícióban, de a szövegformátum (pl. lap) következõ oldalának elõre meghatározott sorában folytatódik a nyomtatás. Megállapodás esetén itt is lehetséges az elsõ karakterpozícióra lépés (a gyakorlatban egyszerûen a következõ lap elejére lép).
CR (Carriage Return): kocsi-vissza, ugyanazon sor elsõ pozíciójába lép.
SO (Shift Out): az SI karakterrel együtt a grafikus karakterkészlet kiterjesztésére szolgál. Ekkor az SI karakter vételéig az ASCII grafikus karaktereknek más (pl grafikai szimbólumok) jelentése van.
SI (Shift In): vétele után visszaáll az eredeti állapot és karakterértelmezés.
DLE (Data Link Escape): átvitel vezérlõ karakter, ami az ezt követõ korlátozott számú karakter jelentését megváltoztatja. Kizárólag további adatátviteli vezérlõ funkciók biztosítására szolgál.
DC1,DC2,DC3,DC4 (Device Controls): vezérlõkarakterek A szokásos. használata a DC1 és DC3 karaktereknek a különbözõ átviteli sebességû adók és vevõk közötti adatátvitel vezérlése az un. XON/XOFF protokoll szerint.
SYN (Synchronous Idle): átvitel vezérlõ karaktert a soros szinkron adatátviteli rendszerekben használják.
CAN (Cancel): vétele azt jelzi a vevõnek hogy a küldött adatban hiba van, vagy az adatot törölni kell. Pontos jelentését adott esetben külön kell definiálni.
EM (End of Medium): vezérlõ karakter, ami az adatokat tartalmazó adathordozó fizikai végét, befejezõdését jelzi. SUB (Substitute): vezérlõkarakter amit hibás, vagy érvénytelen karakter helyettesítésére használják.
ESC (Escape): vezérlõkarakter, a kódrendszer kiterjesztésére. A karakter maga egy jelölõkarakter, ami az utána következõ véges számú bitalakzat speciális értelmezését jelzi. Szokásos megoldás nyomtatóknál, a nyomtató paramétereinek beállításához, felhasználó által definiált karakternek a nyomtató elektronikába való betöltéséhez, az ún."escape szekvencia" használata.
FS,GS,RS,US (File-,Group-,Record-,Unit-Separator): elválasztók, melyek fájl, csoport, rekord struktúrájú adatok elválasztására használhatók. FS a legmagasabb "rendû" elválasztó (azaz a struktúra legmagasabb szintjén álló egységek szétválasztására szolgál), mig US a legalacsonyabb.
DEL (Delete): karakter, ami az utolsónak bevitt karaktert helyettesíti, felülírja, gyakorlatilag törli. Mivel nem nyomtatható, és egyéb jelentése nincs, ezért adatátvitel során kitöltõ (helyet és idõt) karakternek használható.
Ahogy a felsorolásból is látható volt, az ASCII vezérlõ karakterek alapvetõen a karakter orientált átviteli eljárások kialakításának támogatását végzik. Ilyen szempontból az ASCII karakterkód készletet egy adatátviteli (kommunikációs) kódnak is nevezhetjük.
ASCII kódtábla, vezérlõkódok jelentése
DEC |
HEX |
KAR |
DEC |
HEX |
KAR |
0 |
00 |
NUL |
64 |
40 |
@ |
1 |
01 |
SOH |
65 |
41 |
A |
2 |
02 |
STX |
66 |
42 |
B |
3 |
03 |
ETX |
67 |
43 |
C |
4 |
04 |
EOT |
68 |
44 |
D |
5 |
05 |
ENQ |
69 |
45 |
E |
6 |
06 |
ACK |
70 |
46 |
F |
7 |
07 |
BEL |
71 |
47 |
G |
8 |
08 |
BS |
72 |
48 |
H |
9 |
09 |
HT |
73 |
49 |
I |
10 |
0A |
LF |
74 |
4A |
J |
11 |
0B |
VT |
75 |
4B |
K |
12 |
0C |
FF |
76 |
4C |
L |
13 |
0D |
CR |
77 |
4D |
M |
14 |
0E |
SO |
78 |
4E |
N |
15 |
0F |
SI |
79 |
4F |
O |
16 |
10 |
DLE |
80 |
50 |
P |
17 |
11 |
DC1 |
81 |
51 |
Q |
18 |
12 |
DC2 |
82 |
52 |
R |
19 |
13 |
DC3 |
83 |
53 |
S |
20 |
14 |
DC4 |
84 |
54 |
T |
21 |
15 |
NAK |
85 |
55 |
U |
22 |
16 |
SYN |
86 |
56 |
V |
23 |
17 |
ETB |
87 |
57 |
W |
24 |
18 |
CAN |
88 |
58 |
X |
25 |
19 |
EM |
89 |
59 |
Y |
26 |
1A |
SUB |
90 |
5A |
Z |
27 |
1B |
ESC |
91 |
5B |
[ |
28 |
1C |
FS |
92 |
5C |
|
29 |
1D |
GS |
93 |
5D |
] |
30 |
1E |
RS |
94 |
5E |
^ |
31 |
1F |
US |
95 |
5F |
- |
32 |
20 |
SP |
96 |
60 |
Œ |
33 |
21 |
! |
97 |
61 |
a |
34 |
22 |
" |
98 |
62 |
b |
35 |
23 |
# |
99 |
63 |
c |
36 |
24 |
$ |
100 |
64 |
d |
37 |
25 |
% |
101 |
65 |
e |
38 |
26 |
& |
102 |
66 |
f |
39 |
27 |
Œ |
103 |
67 |
g |
40 |
28 |
( |
104 |
68 |
h |
41 |
29 |
) |
105 |
69 |
i |
42 |
2A |
* |
106 |
6A |
j |
43 |
2B |
+ |
107 |
6B |
k |
44 |
2C |
, |
108 |
6C |
l |
45 |
2D |
- |
109 |
6D |
m |
46 |
2E |
. |
110 |
6E |
n |
47 |
2F |
/ |
111 |
6F |
o |
48 |
30 |
0 |
112 |
70 |
p |
49 |
31 |
1 |
113 |
71 |
q |
50 |
32 |
2 |
114 |
72 |
r |
51 |
33 |
3 |
115 |
73 |
s |
52 |
34 |
4 |
116 |
74 |
t |
53 |
35 |
5 |
117 |
75 |
u |
54 |
36 |
6 |
118 |
76 |
v |
55 |
37 |
7 |
119 |
77 |
w |
56 |
38 |
8 |
120 |
78 |
x |
57 |
39 |
9 |
121 |
79 |
y |
58 |
3A |
: |
122 |
7A |
z |
59 |
3B |
; |
123 |
7B |
|
60 |
3C |
< |
124 |
7C |
|
61 |
3D |
= |
125 |
7D |
|
62 |
3E |
> |
126 |
7E |
|
63 |
3F |
? |
127 |
7F |
DEL |
NUL |
NULL Character |
Null (semmi) |
SOH |
Start of Heading |
fejléc kezdete |
STX |
Start of Text |
szöveg kezdete |
ETX |
End of Text |
szöveg vége |
EOT |
End of Transmission |
adás vége |
ENQ |
Enquiry |
kérés |
ACK |
Acknowledge |
elfogadás, nyugtázás |
BEL |
Bell |
hangjelzés |
BS |
Backspace |
visszaléptetés |
HT |
Horizontal Tabulation |
vízszintes tabuláció |
LF |
Line Feed |
soremelés |
VT |
Vertical Tabulation |
függõleges tabuláció |
FF |
Form Feed |
lapdobás |
CR |
Carriage Return |
kocsi-vissza |
SO |
Shift Out |
kódváltás |
SI |
Shift In |
kód visszaváltás |
DLE |
Data Link Escape |
adat átkapcsolás |
DC1 |
Device Control 1 |
általános vez.jel (XON) |
DC2 |
Device Control 2 |
általános vezérlõjel |
DC3 |
Device Control 3 |
általán. vez.jel (XOFF) |
DC4 |
Device Control 4 |
általános vezérlõjel |
NAK |
Negative Acknowledge |
negatív nyugtázás |
SYN |
Synchronous Idle |
szinkronizáló jel |
ETB |
End of Transm. Block |
egy blokk adás vége |
CAN |
Cancel |
érvénytelenítés |
EM |
End of Medium |
inform. hordozó vége |
SUB |
Substitute |
helyettesítés |
ESC |
Escape |
átkapcsolás |
FS |
File Separator |
fájl elválasztó |
GS |
Group Separator |
csoport elválasztó |
RS |
Record Separator |
rekord elválasztó |
US |
Unit Separator |
egység elválasztó |
SP |
Space |
szóköz |
DEL |
Delete |
törlés |
39. ábra: ASCII kódok osztályozása
AZ ASCII kódrendszer kialakítása még abban az idõszakban történt meg, amikor még az adatmegjelenítõ perifériák még csaknem kizárólag mechanikus mûködésûek voltak (teletype, telex, géptávíró). Ezért a kódrendszerbõl hiányoznak azok a vezérlõ kódok, amelyek a már csaknem kizárólagosan használt képernyõ orientált rendszerekben használatosak: a kurzormozgató, képernyõtörlõ, stb. funkciókhoz rendelt kódok. Mivel ezekrõl a szabvány nem rendelkezik, ezért bizonyos inkompatibilitás van az egyes megjelenítõk között, hogy konkréten melyik vezérlõkaraktereket rendelték hozzá az adott funkcióhoz.
Az ASCII kódrendszert 1977-ben az Amerikai Szabványügyi Hivatal megerõsítése, és jóváhagyása után a Nemzetközi Szabványügy Hivatal (ISO) is átvette és ISO646 néven regisztrálta. A PC-k megjelenésekor az IBM által hozzáadott 1 bites kiterjesztéssel újabb 128 karakter használatát szabványosította, amely kódrendszer Latin1 néven ismert. Ez tartalmazza számos európai nyelv — pl. francia, német spanyol, stb. — speciális nemzeti karaktereit, valamint a görög ABC betûit, táblázatrajzoló karaktereket is.
1.fejezet: A hálózatok célja, alkalmazása, alapfogalmak
2. fejezet: Általános elméleti alapok, Vonalak megosztása, Vezeték nélküli átviteli közeg, Analóg átvitel, Digitális átvitel(Digitális jelek kódolása, Unicode), Párhuzamos és soros adatátvitel, Aszinkron soros adatátvitel, Terminálkezelés, X.21 interfész, ISDN-integrált szolgáltatású digitális hálózat, Beágyazott rendszerek kommunikációja, Soros kommunikáció, Ellenõrzõ kérdések és válaszok
3.fejezet: Közeg-hozzáférési módszerek
4.fejezet: Adatkapcsolati protokollok
8.fejezet: A TCP/IP protokoll és az Internet