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