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ó