Kontrollkarakter

I informatikk er et kontrolltegn eller et ikke-visbart tegn en kode (et tall) i et tegnsett som ikke selv representerer et skrevet symbol. Alle tegn i ASCII- tabellen under posisjon 32 faller inn i denne kategorien, inkludert BEL (som vanligvis forårsaker et pip i mottakerterminalen), SYN (som er synkroniseringssignalet) og ENQ (et signal som krever respons fra mottaksterminalen). , for å vite statusen til linjen). Unicode -standarden har lagt til mange nye tegn som ikke kan vises .

I ASCII-tabellen

Kontrolltegnene i ASCII-tabellen som fortsatt er i vanlig bruk inkluderer

Noen ganger oppstår en mer moderne bruk av noen andre koder, som i tilfellet med EOT -kode 4 (Slutt på overføring) , som brukes til å avslutte et Unix- eller Linux-skall eller en dataoverføring til PostScript - skriveren .

Kode 27 (Escape) er en sak som fortjener å bli analysert. Mens mange av disse kontrolltegnene aldri blir brukt, er konseptet med å sende enhetskontrollinformasjon, ispedd utskrivbare tegn, så nyttig at produsenter fant måter å sende hundrevis av instruksjoner til enheter. Spesifikt brukte de en serie med flere tegn, kalt en "kontrollsekvens " eller " escape-sekvens ". Vanligvis ble kode 27 først sendt for å varsle enheten om at følgende tegn skulle tolkes som en kontrollsekvens, i stedet for som vanlige tegn, deretter forklarte ett eller flere påfølgende tegn hva som skulle gjøres, hvoretter enheten ville gå tilbake til å tolke tegn normalt. For eksempel førte sekvensen til kode 27, etterfulgt av de utskrivbare tegnene "[2; 10H", en Digital VT-102-terminal til å flytte markøren til den tiende cellen på den andre linjen på skjermen. Det er noen standarder for disse sekvensene, spesielt ANSI X3.64 (1979), som var basert på oppførselen til VT-100-seriens terminaler. Men antallet ikke-standardvarianter i bruk er stort, spesielt for skrivere, der teknologien har utviklet seg mye raskere, langt utover tidsrammen som er pålagt av hver standardiseringsprosess.

Matchende kontrolltegn på tastaturet

Tastatur basert på ASCII-systemet har en " Control "- eller "Ctrl"-tast, som brukes på samme måte som Shift- tasten , som trykkes i kombinasjon med en annen bokstav eller symbol for å få tastaturet til å generere ett av de 32 kontrolltegnene.

I dette tilfellet produserer tastaturet en kode som er 64 posisjoner under tegnkoden til den store bokstaven som ble trykket (i praksis er bit 5 satt til null). Ved å trykke på "kontroll" og bokstaven "G" (kode 71), for eksempel, produseres kode 7 (Bell), også noen ganger referert til som ^ G.

Tastaturene har også taster som i seg selv produserer koder som tilhører kontrolltegnene. For eksempel, "Backspace"-tasten, som på italienske tastaturer er over "Enter"-tasten og er merket med en lang venstre pil (←), produserer koden 8; "Tab", merket med to piler som hver peker mot en vertikal strek, produserer koden 9, "Enter", "Enter" eller "Return" koden 13 (selv om noen tastaturer produserer koden 10 for "Enter") .

Moderne tastaturer har mange taster som ikke tilsvarer ASCII-tegn eller kontrolltegn, for eksempel markørtaster og tekstbehandlingsfunksjoner . Disse tastaturene kommuniserer trykk på disse tastene til datamaskinen de er koblet til ved hjelp av en av tre metoder:

  1. tilegne seg ellers ubrukte kontrolltegn til formålet
  2. bruker andre kodinger enn ASCII
  3. ved å bruke kontrollsekvenser som består av flere tegn

Tastatur koblet til personlige datamaskiner bruker vanligvis en (eller begge) av de to første metodene. Terminaler bruker vanligvis den tredje .

Inndeling i familier

Kontrolltegn ble designet for å falle inn i visse grupper: utskriftskontroll, datastrukturkontroll, overføringskontroll og diverse.

Utskriftskontroll

Utskriftskontrolltegn indikerer hvor neste tegn skal settes. Vognretur indikerer innsetting av tegnet på begynnelsen av linjen (det kan eller ikke kan flytte til neste linje). "Linjefeed" indikerer innsetting av neste tegn på neste linje (og kan være plassert i begynnelsen av samme linje). De horisontale og vertikale fanene instruerer skriveren om å flytte hodet til neste tabulatorstopp langs leseretningen. "Form feed" plasseres i begynnelsen av et nytt ark. " Skift inn " og " Skift ut " velger alternative tegnsett, fonter, understreker eller andre utskriftsmodi. "Tilbake" flytter hodet ett tegn tilbake, slik at skriveren kan overskrive for å lage spesialtegn.

Kontroll av datastrukturer

Separasjonskontrolltegn (gruppe, post osv.) ble opprettet for å strukturere data, vanligvis på magnetbånd , for å simulere hullkort .

End of media advarer om at båndet (eller lignende) er i ferd med å gå tom.

Transmisjonskontroll

Overføringskontrolltegnene var ment å strukturere en datapakke og kontrollere når den skulle sendes på nytt i tilfelle feil.

"Start på overskriften" markerte den datafrie delen av pakken - den delen av meldingen som inneholder adressen og annen informasjon som er nyttig for overføring. "Start-på-tekst" markerte slutten av overskriften og begynnelsen av delen som inneholder dataene. "Slutt på tekst" markerte slutten på pakken. En standard konvensjon er å bruke de to tegnene foran slutten av teksten for meldingsparitetssjekken ( CRC ).

"Escape" var ment å plasseres foran en binær verdi i en melding, som ellers kunne tolkes som et kontrolltegn. For eksempel ville verdien for binær 27 vært "escape" "escape".

"Erstatningen" var ment å kreve oversettelse av følgende tegn, fra det utskrivbare tegnet til en binær verdi, vanligvis ved å sette den femte biten til null. Dette er praktisk fordi noen overføringsmedier bare overfører utskrivbare tegn.

"Avbrytelsen" ville ha stoppet overføringen av en pakke. Den negative bekreftelsen krevde en reoverføring av pakken. "Bekreftelsen" indikerte at overføringen ble mottatt.

Når overføringsmediet opererte i halv dupleks (det vil si at det kun kan sende i én retning om gangen), har man vanligvis en primærstasjon som kan sende når som helst, og en sekundærstasjon som kun sender når den har tillatelse. Forespørselen ble brukt av primærstasjonen til å be sekundærstasjonen sende sin neste melding. En sekundærstasjon indikerte at den hadde fullført sendingen ved å sende en "slutt på overføring".

De perifere kontrollkodene var opprinnelig generiske, for å defineres forskjellig for hver enhet. Et universelt behov for dataoverføring er imidlertid å kreve at avsenderen slutter å sende data når mottakeren ikke er i stand til å akseptere mer. Digital Equipment Corporation oppfant konvensjonen som brukte 19, (enhetskontroll 3, også kjent som kontroll S, eller "X-OFF") for å stoppe ("S" øverst) overføring, og 17, (enhetskontroll 1, kjent som kontroll Q , eller "X-ON") for å starte den. Dette gjør at produsenter kan kontrollere overføring uten å bruke overføringskontrollledninger i datakabelen. Dette sparer penger og gjør driften mer pålitelig ved å redusere antall tilkoblinger i kabelen.

"Datalink escape" forteller den andre enden av datalinken om å avslutte økten.

Diverse

Mange av ASCII-kontrollkarakterene ble designet for datidens periferiutstyr, som ikke lenger brukes i dag. For eksempel ble kode 22, "Synchronous indle", sendt av synkrone modemer (som må sende data konstant) når det ikke var data å overføre - moderne systemer bruker vanligvis en startbit for å kunngjøre starten på en overføring.

"Kode 0", "null", er et spesielt tilfelle. I perforerte bånd indikerer tilfellet når det ikke er hull. Det er praktisk å behandle det som en ikke-eksisterende karakter.

"Kode 127" er også et spesialtilfelle. Koden tilsvarer den binære verdien der alle biter er satt til 1, noe som gjorde det enkelt å slette en del av stanset tape, et vanlig lagringsmedium på den tiden, ved å stanse alle hullene. Perforert tape ble raskt foreldet, så denne funksjonen ble nesten aldri brukt. Men siden koden ligger innenfor området som er okkupert av andre utskrivbare tegn, brukte mange datamaskiner den som et ekstra utskrivbart tegn (ofte som en helt svart firkant, nyttig for å slette tekst ved å overskrive den).

Tabeller

7-bits ASCII - tabellen definerer 33 koder, 0 til 31 og 127 som kontrolltegn.

US-ASCII-kontrolltegn
des Hex Abbr Skriftnavn
00 0x00 NUL Null
01 0x01 SOH Start av overskrift
02 0x02 STX Start av tekst
03 0x03 ETX Slutt på tekst
04 0x04 EOT Slutt på overføring
05 0x05 ENQ Forespørsel
06 0x06 ACK Anerkjenne
07 0x07 HYGGELIG Klokke
08 0x08 BS Tilbake
09 0x09 HT Horisontal Tab
10 0x0A LF Linjeskift
11 0x0B VT Vertikal Tab
12 0x0C FF Skjema feed
1. 3 0x0D CR Vognretur
14 0x0E Skift ut
15 0x0F JA Skift inn
16 0x10 DLE Data Link Escape
17 0x11 DC1 Enhetskontroll 1
18 0x12 DC2 Enhetskontroll 2
19 0x13 DC3 Enhetskontroll 3
20 0x14 DC4 Enhetskontroll 4
21 0x15 NAK Negativ erkjennelse
22 0x16 SYN Synkron tomgang
23 0x17 ETB Slutt på overføringsblokk
24 0x18 KAN Avbryt
25 0x19 EM Slutt på medium
26 0x1A UNDER Erstatning
27 0x1B ESC Flukt
28 0x1C FS Filseparator
29 0x1D GS Gruppeskiller
30 0x1E RS Record Separator
31 0x1F OSS Enhetsseparator
127 0x7F AV Rubout / Slett

Den ISO-8859-1- kompatible 8-bits tabellen kartlegger i tillegg de 32 kodene fra posisjon 128 til 159, som er ubrukte i ISO / IEC 8859-1 -spesifikasjonen , ved å tilordne dem til kontrolltegn.

Kontrolltegn i ISO-8859- *
des Hex Abbr Skriftnavn
128 0x80 PAD Polstringskarakter
129 0x81 HOPPE Høy oktett forhåndsinnstilt
130 0x82 BPH Pause tillatt her
131 0x83 NBH Ingen pause her
132 0x84 IND Indeks
133 0x85 I DEN Neste linje
134 0x86 SSA Start av valgt område
135 0x87 ESA Slutt på valgt område
136 0x88 HTS Horisontalt fanesett
137 0x89 HTJ Horisontal fane Justert
138 0x8A VTS Vertikal fanesett
139 0x8B PLD Delvis linje fremover
140 0x8C PLU Delvis linje bakover
141 0x8D RE Omvendt linjemating
142 0x8E SS2 Enkeltskift 2
143 0x8F SS3 Enkeltskift 3
144 0x90 DCS Enhetskontrollstreng
145 0x91 PU1 Privat bruk 1
146 0x92 PU2 Privat bruk 2
147 0x93 STS Angi overføringstilstand
148 0x94 CCH Avbryt tegn
149 0x95 MW Melding venter
150 0x96 SPA Start av verneområde
151 0x97 EPA Slutten av vernet område
152 0x98 SOS Start av streng
153 0x99 SGCI Enkelt grafisk tegn-intro
154 0x9A SKI Single Char Intro
155 0x9B CSI Control Sequence Intro
156 0x9C ST String Terminator
157 0x9D OSC OS-kommando
158 0x9E PM Privat melding
159 0x9F APC Program Command-appen

Relaterte elementer