일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- kafka listener
- lock
- springboot Gradle
- JOIN DBMS별 차이점
- table용량
- OPC UA
- Jar 경로
- MS-SQL
- 스마트공장
- OPC UA Write
- Gradle 빌드 오류
- OPC DA
- MSSQL
- OPC UA Client Write
- kafka
- Java 버전 여러개 사용
- Xamarin
- OPC
- ssh 접속 실패 로그
- c#
- CPU 사용량
- delete truncate 차이
- Gradle Jar
- OPC Write
- Gradle JDK Path
- c# 강의
- SCM
- ssh log
- ssh 접속 로그
- mssql table 용량
- Today
- Total
IT’s Ha
[ETC] ASCII코드 본문
안녕하세요.
이번포스팅은 ASCII(아스키) 코드에 대해서 이야기 하려고 합니다. 이번은 통신프로토콜을 중심으로 설명 되어있습니다.
1. ASCII 코드
ASCII (American Standard Code for Information Interchange, 미국 정보 교환 표준 부호) 의 약자입니다.
아스키 코드는 1963년 미국 ANSI에서 표준화한 정보교환용 7비트 부호체계이다. 인쇄전신기(Teleprinter)를 통한 전신(통신)에서 사용되기 시작했고, 8비트 컴퓨터에서도 활용되어 오늘날 문자 인코딩의 근간을 이루게 됩니다. 000(0x00)부터 127(0x7F)까지 총 128개의 부호가 사용된다. 1바이트를 구성하는 8비트 중에서 7비트만 쓰도록 제정된 이유는, 나머지 1비트를 통신 에러 검출을 위한 용도로 비워두었기 때문이다. Parity Bit라고 해서, 7개의 비트 중 1의 개수가 홀수면 1, 짝수면 0으로 하는 식의 패리티 비트를 붙여서, 전송 도중 신호가 변질된 것을 수신측에서 검출해낼 수 있도록 하였다. 일종의 원시적인 CRC 체크섬이라고 할 수 있다.
2. 기능에 따른 문자
○ 그래픽 문자
그래픽 문자는 0 ~ 9, a ~ z, A ~Z, 특수문자 등 정보표현용 문자를 의미합니다.
○ 비 그래픽 문자
비 그래픽 문자는 정보 표현보다는 화면제어, 장치 제어등을 위한 문자입니다.
1) 통신 제어 또는 전송 제어
통신상의 데이터 전송을 제어합니다.
2) 서식 제어
프린트 또는 화면에 출력되는 문자의 위치를 제어하는 기능입니다.
3) 특수 제어
프린트 제어, 데이터 전송속도의 매칭, 특수 데이터 전송에러의 처리 등의 기능입니다.
4) 정보 분리
정보를 논리적인 부분으로 분리하는 기능이 있으며, 통신에서 이 제어문자는 통신 제어 역할이 없습니다. 본문 데이터의 데이터 분리등을 사용합니다.
3. 주요 제어 문자별 특성
ㅇ 전송 제어 문자
- SOH (Start of Heading) (1) : 정보 메세지 헤더의 첫번째 글자로 사용됨
- STX (Start of Text) (2) : 본문의 개시 및 정보 메세지 헤더의 종료를 표시
- ETX (End of Text) (3) : 본문의 종료를 표시한다
- EOT (End of Transmission) (4) : 전송의 종료를 표시하며, 데이타 링크를 초기화
- ENQ (Enquiry) (5) : 상대국에 데이타링크의 설정 및 응답 요구
- ACK (Acknowledge) (6) : 수신한 정보 메세지에 대한 긍정 응답
- DLE (Data Link Escape) (16) : 뒤따르는 연속된 글자들의 의미를 바꾸기 위해 사용,
주로 보조적 전송제어기능을 제공
- NAK (Negative Acknowledge) (21) : 수신한 정보 메세지에 대한 부정 응답
- SYN (Synchronous Idle) (22) : 문자를 전송하지 않는 상태에서 동기를 취하거나,
또는 동기를 유지하기 위하여 사용
- ETB (End of Transmission Block) (23) : 전송 블럭의 종료를 표시
ㅇ 포멧 제어 문자
- B S (Backspace) (8) : 프린터 헤드나 커서를 한 위치 왼쪽으로(역방향) 이동
- H T (Horizontal Tabularion) (9) : 프린터 헤드나 커서를 정해진 수 만큼 수평 위치로 전진
. 수평탭
- V T (Vertical Tabulation) (11) : 프린터 헤드나 커서를 수평 위치는 변경시키지 않고,
미리 정해진 수의 줄 만큼 전진
. 수직탭
- L F (Line Feed) (10) : 프린터 헤드나 커서를 다음 줄의 같은 글자 위치로 전진
- F F (Form Feed) (12) : 프린터 헤드나 커서를 다음 페이지의 같은 위치로 이동
- C R (Carriage Return) 13) : 프린트 헤드나 커서를 같은 줄의 맨 처음 위치에 이동
ㅇ 장치 제어 문자
- DC1 (Device Control 1) (17) : 단말장치에 접속되어 있는 보조장치의 물리적 기능을 제어
- DC2 (Device Control 2) (18)
- DC3 (Device Control 3) (19) : 단말장치의 화면내용을 보조 프린터에 인쇄
- DC4 (Device Control 4) (20) : 단말장치의 키보드가 잠김(lock)되어 이용자가 데이타를 입력
할 수 없도록 하는 데 사용
* 사실상, 장치 제어 문자의 구현은 장치 제조업자에 달려 있음
. 例) DC1은 단말장치에 연결된 카세트 레코드의 ON에 사용하고,
DC2 카세트 레코드를 OFF 하는데 사용하는 등
ㅇ 정보 분리 문자
- FS (File Separator) (28) : 화일의 경계를 할당
- GS (Group Separator) (29) : 레코드 그룹의 경계를 할당
- RS (Record Separator) (30) : 레코드의 경계를 할당
- US (Unit Separator) (31) : 장치의 경계를 할당
ㅇ 특수 제어 문자
- NUL (Null) (0) : 전송되는 문자와 문자 사이에 시간공백을 주도록 함
- BEL (Bell) (7) : 경고
- SI (Shift In) (15) : 도형문자 사용 시작을 표시하는 제어문자 로, SO 와 짝을 이루어 사용
- SO (Shift Out) (14) : 도형문자 사용 종료를 표시하는 제어문자 로, SI와 짝을 이루어 사용
- CAN (Cancel) (24) : 선행 데이타가 틀리는 경우를 가르키며, 이를 무시함
- EM (End of Medium) (25) : 기록부분의 완료를 가르킴
- SUB (Substitute Character) (26) : 무효 또는 잘못된 문자를 치환하는 것에 사용
- ESC (Escape) (27) : 제어기능을 추가하는 경우에 사용
- SP (Space) (32) : 동작위치를 동일행에서 1 문자만큼 앞으로 진행
- DEL (Delete) (127) : 주로 종이 테이프 위의 불필요한 부호를 삭제
이번 포스팅은 여기서 마치겠습니다.
궁금하신 내용이나 잘못된 내용은 댓글이나 메일로 부탁드리겠습니다. 감사합니다.
'ETC' 카테고리의 다른 글
[ETC] 디자인 패턴(Design Pattern) - MVC, MVP, MVVM (0) | 2023.03.30 |
---|---|
[ETC] ZEBRA 스캐너 CDC설정 (0) | 2023.03.23 |
[ETC] 티스토리 블로그 문단바꾸기, 줄바꾸기 (0) | 2023.03.13 |
[ETC]잘하는 개발자가 되는 방법 (0) | 2023.02.25 |
[iOS]iOS 앱 배포 방식 (0) | 2023.02.02 |