Steuerzeichen

Im Computer und Telekommunikation, a Kontrolle Charakter oder nicht druckender Charakter (NPC) ist ein Codepunkt (a Nummer) in einem Zeichensatz, das repräsentiert kein geschriebenes Symbol. Sie werden als verwendet als In-Band-Signalübertragung andere Effekte als die Zugabe eines Symbols zum Text verursachen. Alle anderen Charaktere sind hauptsächlich Drucken, druckbar, oder Grafische Zeichenaußer vielleicht für die "Platz"Charakter (siehe ASCII druckbare Zeichen).

Alle Einträge in der ASCII Tabelle unter dem Code 32 (technisch gesehen die C0 Kontrollcode -Set) sind von dieser Art, einschließlich CR und LF Wird verwendet, um Textzeilen zu trennen. Der Code 127 (Del) ist auch ein Kontrollcharakter. Erweiterte ASCII Sets definiert von ISO 8859 Die Codes 128 bis 159 als Kontrollzeichen wurde in erster Linie erledigt, sodass das hohe Bit ein Druckcharakter nicht in einen C0 -Kontrollcode ändern würde, aber es gab hier einige Zuordnungen, insbesondere hier Nel. Dieser zweite Satz heißt die C1 einstellen.

Diese 65 Kontrollcodes wurden auf übertragen Unicode. Unicode fügte mehr Zeichen hinzu, die als Steuerelemente angesehen werden könnten, unterscheidet jedoch zwischen diesen "Formatierenden Zeichen" (wie dem Null-Width-Nicht-Joiner) und die 65 Kontrollzeichen.

Das Erweiterter binär codierter Dezimalstauschcode (EBCDIC) Zeichensatz enthält 65 Kontrollcodes, einschließlich aller ASCII -Kontrollcodes sowie zusätzliche Codes, die hauptsächlich zur Kontrolle von IBM -Peripheriegeräten verwendet werden.

[1] 0x00 0x10
0x00 Nul Dle
0x01 Soh DC1
0x02 Stx DC2
0x03 ETX DC3
0x04 Eot DC4
0x05 Enq Nak
0x06 Ack Syn
0x07 Bel ETB
0x08 BS KANN
0x09 Ht Em
0x0a Lf Sub
0x0b Vt ESC
0x0c Ff Fs
0x0d Cr Gs
0x0e ALSO Rs
0x0f Si UNS
0x7f Del

Geschichte

Verfahrenszeichen in Morse-Code sind eine Form des Kontrollcharakters.

Eine Form von Kontrollzeichen wurde im Jahr 1870 eingeführt Baudot -Code: Nul und del. Die 1901 Murray Code fügte die hinzu Kutschenrückkehr (Cr) und Zeilenvorschub (LF) und andere Versionen des Baudot -Code enthielten andere Steuerzeichen.

Das Glockenfigur (Bel), der eine Glocke für die Warnung von Operatoren anrangte, war ebenfalls früh Teletyp Steuerzeichen.

Steuerzeichen wurden auch als "Format -Effektoren" bezeichnet.

In ASCII

Die Steuerzeichen in ASCII, die noch immer gemeinsam verwendet werden, umfassen:

Steuerzeichen können als etwas bezeichnet werden, wenn der Benutzer sie eingibt, wie z. B. Code 3 (TextscharakterETX, ^C) Um den laufenden Prozess zu unterbrechen, oder Code 4 ((Transmissions-Ende-Ende, Eot, ^D), verwendet, um die Texteingabe zu beenden oder a zu beenden a Unix Shell. Diese Verwendungszwecke haben normalerweise wenig mit ihrer Verwendung zu tun, wenn sie in der Ausgabe von Text sind, und auf modernen Systemen werden normalerweise überhaupt nicht die Übertragung der Codenummer beteiligt (stattdessen erhält das Programm die Tatsache, dass der Benutzer die Strg -Taste hält und den mit einem 'c' gekennzeichneten Schlüssel).

Es wurden einige Kontrollzeichen definiert (33 in ASCII, und der ECMA-48-Standard fügt 32 weitere hinzu). Dies lag daran, dass frühe Terminals sehr primitive mechanische oder elektrische Kontrollen hatten API ziemlich teuer zu implementieren, daher sah ein anderer Code für jede Funktion wie eine Anforderung aus. Es wurde schnell möglich und kostengünstig, Sequenzen von Codes für eine Funktion zu interpretieren, und Gerätehersteller fanden eine Möglichkeit, Hunderte von Geräteanweisungen zu senden. Insbesondere verwendeten sie ASCII -Code 27 (Escape), gefolgt von einer Reihe von Zeichen, die als "Kontrollsequenz" oder "Escape -Sequenz" bezeichnet werden. Der Mechanismus wurde von erfunden von Bob Bemer, der Vater von ASCII. Zum Beispiel würde die Abfolge von Code 27, gefolgt von den druckbaren Zeichen "[2; 10H", a verursachen a Dec VT-102 Terminal, um seine zu bewegen Mauszeiger zur 10. Zelle der 2. Zeile des Bildschirms. Für diese Sequenzen existieren mehrere Standards, insbesondere für diese Sequenzen ANSI X3.64. Die Anzahl der nicht standardmäßigen Nutzungsschwankungen ist jedoch groß, insbesondere bei Druckern, bei denen die Technologie weitaus schneller vorgegangen ist, als jeder Standards-Körper möglicherweise Schritt halten kann.

In Unicode

In Unicode sind "Kontrollcharakter" U+0000-U+001F (C0-Steuerelemente), U+007F (Löschen) und U+0080-U+009F (C1-Steuerelemente). Ihr Allgemeine Kategorie ist "cc". Formatierungscodes unterscheiden sich in der allgemeinen Kategorie "vgl.". Die CC-Steuerzeichen haben in Unicode keinen Namen, erhalten jedoch stattdessen Beschriftungen wie "<Rontroll-001a>".[2]

Anzeige

Es gibt eine Reihe von Techniken, um nicht druckende Zeichen anzuzeigen, die mit dem veranschaulicht werden können Glockenfigur in ASCII Codierung:

  • Codepunkt: Decimal 7, Hexadezimal 0x07
  • Eine Abkürzung, oft drei Großbuchstaben: Bel
  • Ein besonderer Charakter, der die Abkürzung verdichtet: Unicode U+2407 (␇), "Symbol für Bell"
  • Ein ISO 2047 Grafische Darstellung: Unicode U+237E (⍾), "Grafik für Bell"
  • Pflege Notation In ASCII, wobei der Codepunkt 00xxxxx als Pflege dargestellt wird, gefolgt vom Großbuchstaben am Codepunkt 10xxxxx: ^g
  • Ein Fluchtabfolge, wie in C/C ++ Zeichenzeichenfolge Codes: \a, \007, \ x07, etc.

Wie steuern die Zeichen auf Tastaturen zuzuordnen

ASCII-basiert Tastaturen Lassen Sie einen Schlüssel beschriftet "Kontrolle"," Strg "oder (selten)" cntl ", das ähnlich wie eine Schalttaste verwendet wird und in Kombination mit einem anderen Buchstaben oder Symboltaste gedrückt wird. In einer Implementierung generiert der Steuerschlüssel den Code 64 Platz unter dem Code für die (Im Allgemeinen) Großbuchstaben wird in Kombination mit (d. H. Subtrahieren Sie 64 vom ASCII -Codewert in Dezimalzahl des (allgemein) Großbuchstabens) gedrückt. Die andere Implementierung besteht darin bitweise und es mit 31, die Bits 6 und 7 zu Null erzwingen. Drücken Sie beispielsweise "Steuerung" und den Buchstaben "G" oder "G" (Code 107 in Oktal oder 71 in Basis 10, das ist 01000111 in binär), erzeugt den Code 7 (Bell, 7 in Basis 10 oder 00000111 in Binärer). Das Null-Zeichen (Code 0) wird durch Strg-@"@" unmittelbar vor "A" im ASCII-Zeichen gesetzt. Für den Einfachheit halber akzeptieren viele Terminals Strg-Raum als Alias ​​für Strg-@. In beiden Fällen erzeugt dies eine der 32 ASCII-Kontrollcodes zwischen 0 und 31. Dieser Ansatz kann das Del-Zeichen aufgrund seines Werts nicht darstellen (Code 127), sondern Strl-? wird oft für diesen Charakter verwendet, da 64 von einem "?" gibt –1, was, wenn er auf 7 Bit maskiert ist, 127 ist.[3]

Wenn der Kontrollschlüssel abgehalten wird, erzeugen Buchstabenschlüssel die gleichen Kontrollzeichen unabhängig vom Zustand der Wechsel oder Caps Lock Schlüssel. Mit anderen Worten, es spielt keine Rolle, ob der Schlüssel einen oberen Fall oder einen Unterfallbrief erzeugt hätte. Die Interpretation des Steuerschlüssels mit dem Raum-, Grafikzeichen und den Zifferntasten (ASCII -Codes 32 bis 63) variiert zwischen den Systemen. Einige produzieren den gleichen Charaktercode, als ob der Steuerschlüssel nicht niedergeschlagen wäre. Andere Systeme übersetzen diese Schlüssel in Steuerzeichen, wenn der Steuerschlüssel abgehalten wird. Die Interpretation des Kontrollschlüssels mit Nicht-ASCII-Tasten ("Fremd") variiert ebenfalls zwischen den Systemen.

Kontrollzeichen werden häufig in eine druckbare Form verwaltet, die als als bekannt ist Pflege Notation Durch das Drucken einer Pflege (^) und dann des ASCII-Zeichens, das einen Wert des Steuerzeichens plus 64 hat. Die mit Buchstabenschlüssel generierten Steuerzeichen werden somit mit der oberen Formform des Buchstabens angezeigt. Zum Beispiel repräsentiert ^g Code 7, der durch Drücken der G -Taste generiert wird, wenn die Steuertaste abgehalten wird.

Tastaturen haben typischerweise auch einige einzelne Tasten, die Kontrollcharaktercodes erzeugen. Beispielsweise erzeugt der Schlüssel, der mit "Backspace" bezeichnet wird, typischerweise Code 8, "Registerkarte" Code 9, "Enter" oder "Return" Code 13 (obwohl einige Tastaturen möglicherweise Code 10 für "Enter" erzeugen).

Viele Tastaturen enthalten Schlüssel, die keinem ASCII -druckbaren oder Steuerungszeichen entsprechen, z. B. Cursor -Steuerpfeile und Textverarbeitung Funktionen. Die zugehörigen Tastaturen werden von einer von vier Methoden an Computerprogramme mitgeteilt: ansonsten nicht verwendete Kontrollfiguren aneignen; Verwenden einer anderen Codierung als ASCII; unter Verwendung von Multi-Charakter-Kontrollsequenzen; oder verwenden Sie einen zusätzlichen Mechanismus außerhalb der Erzeugung von Zeichen. "Stumm" Computerterminals Verwenden Sie normalerweise Kontrollsequenzen. Tastaturen, die an eigenständige Tastatur angeschlossen sind persönliche Computer In den 1980er Jahren werden normalerweise eine (oder beide) der ersten beiden Methoden verwendet. Moderne Computertastaturen erzeugen Scancodes die die spezifischen physikalischen Schlüssel identifizieren, die gedrückt werden; Die Computersoftware bestimmt dann, wie die Tasten behandelt werden, einschließlich der vier oben beschriebenen Methoden.

Der Designzweck

Die Kontrollzeichen wurden so konzipiert, dass sie in einige Gruppen fallen: Druck- und Anzeigesteuerung, Datenstrukturierung, Übertragungsregelung und Verschiedenes.

Drucken und Anzeigesteuerung

Drucksteuerzeichen wurden zunächst verwendet, um den physikalischen Mechanismus von Druckern, dem frühesten Ausgangsgerät, zu steuern. Eine frühzeitige Umsetzung dieser Idee war die außerhalb der Bandbreite ASA -Kutschenkontrollfiguren. Später wurden Kontrollzeichen in den zu druckenden Datenstrom integriert. Der Wagenrücklaufcharakter (CR) bewirkt, wenn er an ein solches Gerät gesendet wird, den Charakter am Rand des Papiers, an dem das Schreiben beginnt (es kann auch die Druckposition in die nächste Zeile verschieben oder nicht). Das Line -Feed -Zeichen (LF/NL) veranlasst das Gerät, die Druckposition in die nächste Zeile zu setzen. Es kann (oder auch nicht) je nach Gerät und seiner Konfiguration auch die Druckposition auf den Beginn der nächsten Zeile verschieben (die die links links links für links nach rechts Skripte wie die Alphabete, die für westliche Sprachen verwendet werden rechts nach links Skripte wie die hebräischen und arabischen Alphabete). Die vertikalen und horizontalen Registerkartenzeichen (VT und HT/Registerkarte) veranlassen, dass das Ausgabegerät die Druckposition auf die nächste Registerkarte in der Lesrichtung verschiebt. Das Formular -Feed -Zeichen (FF/NP) startet ein neues Blatt Papier und kann zum Start der ersten Zeile wechseln oder nicht. Der Backspace -Charakter (BS) bewegt die Druckposition einen Charakterraum nach hinten. Auf Druckern, einschließlich Hardcopy-TerminalsDies wird am häufigsten verwendet, sodass der Drucker Zeichen überdrucke, um andere, normalerweise nicht verfügbare Charaktere zu erstellen. An Video -Terminals und andere Geräte für elektronische Ausgänge gibt es häufig Software-Konfigurationsoptionen (Hardware), die einen zerstörerischen Rückraum (z. B. A BS, SP, BS-Sequenz) ermöglichen, der löscht, oder eine nicht zerstörerische, die dies nicht tut. Die Verschiebung in und verschiebende Zeichen (SI und SO) wählten alternative Zeichensätze, Schriftarten, Unterstreichung oder andere Druckmodi aus. Esssequenzen wurden oft verwendet, um dasselbe zu tun.

Mit dem Aufkommen von Computerterminals Das druckte nicht auf Papier physisch und bot daher mehr Flexibilität bei der Platzierung von Bildschirm, Löschen usw., Drucksteuercodes wurden angepasst. Formulare Feeds beispielsweise löscht normalerweise den Bildschirm, wobei keine neue Papierseite zum Verschieben ist. Komplexere Fluchtsequenzen wurden entwickelt, um die Flexibilität der neuen Terminals und in der Tat neuerer Drucker zu nutzen. Das Konzept eines Kontrollcharakters war schon immer etwas einschränkend und war extrem, wenn es mit neuer, viel flexiblerer Hardware verwendet wurde. Kontrollsequenzen (manchmal als Escape -Sequenzen implementiert) können mit der neuen Flexibilität und Leistung übereinstimmen und wurden zur Standardmethode. Es gab und verbleiben jedoch eine Vielzahl von Standardsequenzen zur Auswahl.

Datenstrukturierung

Die Separatoren (Datei, Gruppen, Aufzeichnung und Einheit: FS, GS, RS und USA) wurden in der Regel auf einem Klebeband gestaltet, um zu simulieren geschlagene Karten. Das Ende von Medium (EM) warnt, dass das Band (oder ein anderes Aufnahmungsmedium) endet. Während viele Systeme CR/LF und Registerkarte zum Strukturieren von Daten verwenden, können Sie die Separatorsteuerzeichen in Daten, die strukturiert werden müssen, begegnen. Die Separator -Steuerzeichen sind nicht überladen; Es gibt keine allgemeine Verwendung von ihnen, außer um Daten in strukturierte Gruppierungen zu trennen. Ihre numerischen Werte hängen mit dem Weltraumcharakter, der als Mitglied der Gruppe betrachtet werden kann, als Wortseparator zusammen.

Übertragungsregelung

Die Übertragungssteuerungszeichen sollten einen Datenstrom strukturieren und nach Bedarf angesichts von Übertragungsfehlern eine Wiedervermittlung oder ein anmutiges Versagen verwalten.

Der Beginn des SOH-Charakters (SOH) bestand darin, einen Abschnitt ohne Datenstrom eines Datenstroms zu markieren-der Teil eines Streams mit Adressen und anderen Haushaltsdaten. Der Beginn des Textzeichens (STX) markierte das Ende des Headers und den Beginn des Textteils eines Streams. Das Ende des Textzeichens (ETX) markierte das Ende der Daten einer Nachricht. Eine weit verbreitete Konvention besteht darin, die beiden Zeichen vor ETX zu einer Prüfsumme zu machen oder CRC Zur Fehlererkennung. Das Ende des Transmissionsblockzeichens (ETB) wurde verwendet, um das Ende eines Datenblocks anzuzeigen, wobei die Daten für Übertragungszwecke in solche Blöcke unterteilt wurden.

Der Fluchtcharakter (ESC) sollte das nächste Charakter "zitieren", wenn es ein weiteres Kontrollcharakter wäre, würde er es drucken, anstatt die Steuerfunktion auszuführen. Es wird heute fast nie für diesen Zweck verwendet. Verschiedene druckbare Zeichen werden als sichtbar verwendet. "Flucht Charaktere", abhängig vom Kontext.

Der Ersatzcharakter (Sub) sollte eine Übersetzung des nächsten Zeichens von einem druckbaren Zeichen zu einem anderen Wert anfordern, normalerweise durch Einstellen von Bit 5 auf Null. Dies ist praktisch, da einige Medien (z. B. Papierblätter, die von Schreibmaschinen produziert werden) nur druckbare Zeichen übertragen können. Auf MS-DOS-Systemen mit Dateien, die im Textmodus geöffnet sind, wird "Ende des Textes" oder "Ende der Datei" dadurch gekennzeichnet Strg-Z Charakter statt der Strg-c oder Strg-d, die bei anderen Betriebssystemen üblich sind.

Der Abbrechencharakter (KANN) signalisiert, dass das vorherige Element verworfen werden sollte. Der negative Anerkennungscharakter (Nak) ist eine eindeutige Flagge für normalerweise und festgestellt, dass der Empfang ein Problem war und oft, dass das aktuelle Element erneut gesendet werden sollte. Der Anerkennungscharakter (Ack) wird normalerweise als Flag verwendet, um kein Problem anzuzeigen, das mit dem Stromelement erkannt wird.

Wenn ein Übertragungsmedium halb Duplex ist (dh es kann jeweils nur in eine Richtung übertragen werden), gibt es normalerweise eine Masterstation, die jederzeit übertragen kann, und eine oder mehrere Sklavenstationen, die bei der Erlaubnis übertragen werden. Der Ermittlungscharakter (Enq) wird im Allgemeinen von einer Master -Station verwendet, um eine Sklavenstation zu bitten, seine nächste Nachricht zu senden. Eine Sklavenstation zeigt an, dass sie seine Übertragung durch Senden des Endes des Übertragungszeichens abgeschlossen hat (Eot).

Die Gerätekontrollcodes (DC1 bis DC4) wurden ursprünglich generisch, die nach Bedarf von jedem Gerät implementiert werden. Ein universeller Bedarf bei der Datenübertragung besteht jedoch darin, den Absender aufzufordern, zu übertragen, wenn ein Empfänger vorübergehend keine weiteren Daten akzeptieren kann. Digital Equipment Corporation erfand eine KonventDC3), auch als Kontroll-S oder bekannt Xoff) zu "S" Top -Getriebe und 17 (das Gerätesteuerung 1 -Zeichen (Zeichen (Gerätesteuerung 1DC1), a.k.a. Control-Q, oder Xon) Um mit der Übertragung zu beginnen. Es ist so weit verbreitet geworden, dass die meisten nicht wissen, dass es nicht Teil des offiziellen ASCII ist. Diese Technik vermeidet jedoch zusätzliche Kabel im Datenkabel, das nur dem Übertragungsmanagement gewidmet ist, was Geld spart. Es muss jedoch ein vernünftiges Protokoll für die Verwendung solcher Übertragungsströmungskontrollsignale verwendet werden, um potenzielle Deadlock -Bedingungen zu vermeiden.

Der Datenverbindungs ​​-Fluchtcharakter (Dle) sollte ein Signal für das andere Ende einer Datenverbindung sein, dass das folgende Zeichen ein Kontrollcharakter wie STX oder ETX ist. Zum Beispiel kann ein Paket auf folgende Weise strukturiert sein (Dle) <Stx> <Payload> (Dle) <etx>.

Verschiedene Codes

Code 7 (Bel) soll ein hörbares Signal im Empfangsanschluss verursachen.[4]

Viele der ASCII -Kontrollfiguren wurden für Geräte der Zeit ausgelegt, die heute nicht oft gesehen werden. Zum Beispiel Code 22, "Synchroner Leerlauf" (Syn) wurde ursprünglich von synchronen Modems gesendet (die ständig Daten senden müssen), wenn keine tatsächlichen Daten zu senden waren. (Moderne Systeme verwenden normalerweise ein Startbit, um den Beginn eines übertragenen Wortes anzukündigen - dies ist ein Merkmal von asynchron Kommunikation. Synchron Kommunikationsverbindungen wurden häufiger mit Mainframes gesehen, bei denen sie normalerweise über gemietete Leitungen geführt wurden, um einen Mainframe mit einem anderen Mainframe oder einem Minicomputer zu verbinden.)

Code 0 (ASCII -Code -Name Nul) ist ein Sonderfall. In Papierband ist es der Fall, wenn es keine Löcher gibt. Es ist bequem, dies als als zu behandeln füllen Charakter ohne Bedeutung. Da die Position eines NUL -Charakters keine Löcher geschlagen hat, kann er zu einem späteren Zeitpunkt durch ein anderes Zeichen ersetzt werden. Daher wurde sie normalerweise zum Reservieren von Platz verwendet, entweder zum Korrigieren von Fehlern oder zum Einfügen von Informationen, die zu einem späteren Zeitpunkt verfügbar sind oder an einem anderen Ort. Beim Berechnen wird es häufig zum Polsterung in Datensätzen festgelegt und häufiger zum Ende einer Zeichenfolge markiert.

Code 127 (Del, a.k.a. "Rubout") ist ebenfalls ein Sonderfall. Sein 7-Bit-Code ist All-Bit-On in Binary, das im Wesentlichen eine Charakterzelle auf a gelöscht hat Papier Klebeband Bei Überpapplung. Papierband war ein übliches Speichermedium, als ASCII entwickelt wurde, wobei ein Computerhistorie aus dem Zweiten Weltkrieg zurückreicht Biuro Szyfrów. Das Papierband wurde in den 1970er Jahren veraltet, so dass dieser clevere Aspekt von ASCII danach selten die Verwendung sah. Einige Systeme (wie die ursprünglichen Äpfel) haben es in einen Rückraum umgewandelt. Aber weil sein Code in der Reichweite anderer druckbarer Zeichen besetzt ist und da kein offizielles Glyphe zugewiesen wurde, verwendeten viele Computerausrüstungsanbieter ihn als zusätzliches druckbar mit Tinte).

Nicht erasbar Programmierbare ROMs werden typischerweise als Arrays von schmelzbaren Elementen implementiert, die jeweils a darstellen bisschen, der nur in eine Richtung umgeschaltet werden kann, normalerweise von eins bis null. In solchen Proms können die Del- und NUL -Zeichen auf die gleiche Weise verwendet werden, wie sie auf angeschlagenem Band verwendet wurden: eine, um bedeutungslose Füllbytes zu reservieren, die später geschrieben werden können, und das andere, um geschriebene Bytes in bedeutungslose Füllbytes umzuwandeln. Für Proms, die eins auf Null wechseln, werden die Rollen von NUL und Del umgekehrt; Außerdem wird DEL nur mit 7-Bit-Zeichen arbeiten, die heute selten verwendet werden. Für 8-Bit-Inhalte kann der Zeichencode 255, der üblicherweise als nicht gebrochener Raumfigur definiert ist, anstelle von Del verwendet werden.

Viele Dateisysteme Lassen Sie keine Steuerzeichen in zuzulassen Dateinamenwie sie möglicherweise Funktionen reserviert haben.

Siehe auch

Notizen und Referenzen

  1. ^ MS-DOS QBASIC V1.1 Dokumentation. Microsoft 1987-1991.
  2. ^ "4.8 Name". Die Unicode Standard Version 13.0 - Kernspezifikation (PDF). Unicode, Inc.
  3. ^ "ASCII -Zeichen". Archiviert von das Original am 28. Oktober 2009. Abgerufen 2010-10-08.
  4. ^ ASCII -Format für den Netzwerkstausch. Oktober 1969. doi:10.17487/rfc0020. RFC 20. Abgerufen 2013-11-03. Ein alter RFC, der die Struktur und Bedeutung der Kontrollzeichen in den Kapiteln 4.1 und 5.2 erklärt

Externe Links