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.


Ábrajegyzék

Bevezetés

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

5.fejezet: Hálózati réteg

6.fejezet: A felsőbb rétegek

7.fejezet: Lokális hálózatok

8.fejezet: A TCP/IP protokoll és az Internet

9. fejezet: Szótár

Irodalomjegyzék

Tárgymutató