명령 및 데이터 모드(모뎀)

Command and Data modes (modem)

명령 모드와 데이터 모드는 컴퓨터 모뎀이 작동할 수 있는 두 가지 모드를 가리킨다. 이러한 모드는 모든 모뎀에 대한 사실상의 표준인 Hayes 명령어 집합에 정의되어 있다. 이러한 모드는 모뎀과 컴퓨터 사이의 통신 채널이 하나뿐이기 때문에 존재하는데, 모뎀은 전화선을 통해 원격 당사자에게 전송하기 위해 모뎀이 가입되어 있는 데이터뿐만 아니라 컴퓨터의 명령도 모두 모뎀에 전달해야 한다.

모뎀이 명령 모드에 있을 때, 모뎀으로 전송되는 문자는 헤이스 명령어 집합에 따라 모뎀이 실행되는 명령어로 해석된다. 명령어 앞에는 ''라는 글자가 붙는다.'주의'를 뜻하는 AT' 예를 들어, 모뎀이 명령 모드에 있을 때 'ATDT5551212'를 수신하면, 그것은 터치 톤 다이얼을 사용하여 전화기의 번호 5551212를 다이얼하라는 명령으로 해석한다. 명령 모드에 있는 동안 모뎀은 명령의 결과를 나타내는 응답을 컴퓨터에 다시 보낼 수 있다. 예를 들어 모뎀은 다이얼을 돌린 후 통화 중 신호가 들리고 통화 중 신호를 수신하도록 구성된 경우 ATDT 명령에 응답하여 "BUSY"라는 단어로 응답할 수 있다.

명령 모드의 모든 통신(양방향)은 캐리지 리턴에 의해 종료된다.

모뎀이 데이터 모드에 있을 때, 모뎀으로 전송되는 모든 문자는 원격 당사자에게 전송되도록 되어 있다. 모뎀이 연결되면 바로 데이터 모드로 들어간다. 예를 들어 ATDT5551212가 다른 컴퓨터 모뎀에 의해 응답한 전화를 초래하면 모뎀은 "CONNECT"라는 단어를 보고한 다음 데이터 모드로 전환한다. 시리얼 링크를 통해 수신된 모든 문자는 원격 파티에서 온 것으로 간주되며, 전송된 문자는 모두 원격 파티로 전송된다.

음성 지원 모뎀이 "음성 데이터" 모드인 경우, 모뎀으로 전송되는 데이터는 상대방에게 디지털로 전송되는 문자 바이트가 아니라 전화선을 통해 재생되는 오디오 데이터로 해석된다.

모드 전환

모뎀은 전원이 켜지면 항상 명령 모드에서 시작한다. 모뎀이 데이터 모드로 전환할 수 있는 방법은 다음과 같다.

  • 모뎀이 다른 모뎀에 도달하는 "ATD" 다이얼 명령에 응답하여 성공적으로 전화 접속 연결한 후.
  • "ATA" 응답 명령으로 전화를 받은 후 다른 모뎀이 다른 끝에 있는 경우
  • 어떤 사전 구성된 이유(자동 응답 등)로 전화를 자동으로 받고 다른 모뎀에 연결한 후 (대부분의 모든 모뎀은 " 명령어"가 주어졌을 때 자동 회전을 지원한다.ATS0=1").
  • "ATO"(A-T-zero가 아닌 세 글자 A-T-Oh) 명령을 받은 후 탈출 시퀀스로 명령 모드로 되돌린 후(아래 참조).
  • 팩스 또는 음성 통신을 위한 유사한 다이얼링 또는 연결 명령에 대한 응답.

다음과 같은 이유로 모뎀은 데이터 모드에서 명령 모드로 다시 전환된다.

  • 연결이 끊어졌다(예를 들면 상대방이 끊었다).
  • 컴퓨터는 이스케이프 명령을 내렸는데, 보통 1초간 정지한 다음, 세 글자가 "++"이고, 그 다음 또 다른 1초간 정지한 정지다. 연결은 남아 있지만 모뎀은 전화를 끊기 위해 "ATT"와 같은 명령을 받아들일 수 있다. 컴퓨터는 데이터 모드로 돌아가기 위해 "ATO" 명령을 내릴 수 있다.
  • 컴퓨터는 모뎀에 데이터 단말 준비(DTR) 핀을 "꺼짐" 상태로 설정하여 통화를 종료하도록 지시하였다. (이것은 일반적으로 컴퓨터가 오늘날 모뎀 호출의 종료를 호출하는 방법이다 - ++ 이스케이프 시퀀스는 거의 사용되지 않으며, 일반적으로 이러한 문자가 합법적으로 데이터 스트림의 일부인 경우 오작동을 피하기 위해 비활성화된다.)

실용적인 현대적 사용

오늘날 대부분의 모뎀은 초기화 문자열에서 "&C1&D2" 문자로 구성되거나, 그렇지 않으면 기본적으로 이렇게 동작한다. 이로 인해 다음과 같은 동작이 발생한다.

  • 모뎀은 DCD(Data Carrier Detect) 핀을 사용하여 호스트에 연결되었는지 여부를 신호한다. 컴퓨터는 일반적으로 언제든지 DCD 핀을 읽을 수 있으며 모뎀이 명령 모드인지 데이터 모드인지 항상 알 수 있다. DCD high는 데이터 모드를 의미하고 low는 명령 모드를 의미한다. DCD는 모뎀에서 컴퓨터로 전송되는 신호다. (+++ 이스케이프 시퀀스 후 명령 모드에 있으면 DCD도 높은 상태를 유지하지만, 실제로는 소프트웨어가 이를 매우 드물게 사용하므로, 전혀 문제가 되지 않는다는 점에 유의하십시오.)
  • 모뎀은 데이터 단말 준비(DTR) 핀을 컴퓨터의 신호로 해석해 언제 통화를 종료하고 싶은지 알려준다. DTR은 컴퓨터에서 모뎀으로 가는 신호다. 컴퓨터는 통화를 종료하고 싶을 때까지 항상 DTR을 높게 유지하며, 그 때 컴퓨터가 1~2초간 DTR을 내린다. 컴퓨터는 또한 모뎀을 사용하고자 하는 프로그램이 실행되지 않을 때 DTR을 낮게 유지한다 - 이것은 자동 응답이나 예상치 못한 또는 원하지 않는 일을 하기 때문에 모뎀이 전화를 받지 못하게 한다. 컴퓨터는 DTR을 몇 초간 낮게 설정한 후에 모뎀이 명령 모드에 있을 것이라고 안전하게 가정할 수 있다.

DLE(데이터 링크 이스케이프) 메시지

정상적인 전화 접속 데이터 통신의 경우 모뎀은 한 번만 데이터 모드로 들어간다. 세션이 연결되면 시작되고 세션 연결이 끊기면 종료된다. 그러나 팩스와 음성(오디오) 통신에 모뎀을 사용할 경우 통화 중 명령어와 데이터 모드를 여러 차례 빠르게 전환한다. 이는 모뎀의 역할이 단순히 A 지점에서 B 지점으로 바이트를 건네는 것이 아니라, 그것은 팩스로 매개변수와 페이지를 협상하거나 녹음, 일시 중지 및 재생 오디오 모드 사이를 전환하는 것이 더 자주 바뀌기 때문이다.

팩스 및 음성 데이터 모드에서는 모뎀이 명령 모드인지 데이터 모드인지에 관계없이 컴퓨터에 신호를 보내고자 하는 이벤트가 발생하는 경우가 있다. 그러한 이벤트의 예로는 음성 모드에서 발신자가 터치 톤 키를 누르는 것이다. 다른 일반적인 대역 외 메시지는 컴퓨터가 너무 느리거나 너무 빠른 속도로 데이터를 전송하기 때문에 데이터가 손실되었다는 모뎀의 알림 또는 모뎀이 예기치 않은 전화 벨소리를 듣거나(전화가 끊겼을 가능성이 있음) 확장 단말기가 수신되었거나 끊겼다는 것이다.

이러한 유형의 이벤트는 데이터 링크 이스케이프 코드가 선행하는 단일 문자 메시지인 DLE 메시지로 신호된다. DLE는 모뎀에서 컴퓨터로 전송되는 문자로, 정의가 명령이나 데이터 모드와 무관하며, AT 명령이나 응답에서는 결코 발생하지 않는 특정 ASCII 코드(0x10)를 사용하여, 그 장점만으로 명령/응답 스트림에서 분리할 수 있다. 이러한 모드에서 DLE(0x10)를 보낼 때마다 그 뒤에 오는 문자는 특별한 비명령어와 비데이터 의미를 갖는다. 예를 들어 DLE 다음에 숫자 2가 나온다는 것은 발신자가 자신의 전화 키패드에서 숫자 2를 눌렀다는 것을 의미한다. 전화선이 모뎀에 의해 사용 중이고 누군가가 회선의 반대쪽 끝에 있는 한, 이것은 명령어 또는 데이터 모드에서 발생할 수 있다.

DLE 문자는 팩스 또는 오디오 데이터에 나타날 수 있다. 0x10 데이터 바이트를 잘못 삽입하지 않으려면 DLE "비트 스터핑"을 사용하십시오. 스터핑은 모뎀에 대한 일반적인 인코딩 방식이며 스트림에서 문자를 이스케이프하는 데 사용된다. 이 경우 스터핑은 연속된 두 DLE 문자를 0x10 값을 가진 하나의 리터럴 바이트로 해석하는 것을 의미한다.

DLE는 또한 컴퓨터에서 모뎀으로의 통신에도 가볍게 사용된다. 특정 DLE 이벤트는 팩스 페이지의 끝 또는 오디오 파일의 끝을 신호한다. 그 이벤트는 모뎀을 명령 모드로 되돌린다. 표준 전화 접속 데이터 모드와 달리, DTR을 삭제하는 것은 전화 끊기를 원하지 않으며, 필수 일시 중지가 있는 이스케이프 코드도 적합하지 않기 때문에 명령 모드를 재개하는 적절한 방법이 아니다. 이 때문에, 문자 그대로의 데이터 0x10바이트는 컴퓨터에서 모뎀으로도 두 배로 늘어난다.

DLE는 전화 접속 인터넷 액세스에 사용되는 것과 같은 표준 모뎀-모뎀 데이터 모드에서는 결코 사용되지 않으며 적어도 모뎀 자체에서는 사용되지 않는다. 이러한 모드에서 DLE는 다른 캐릭터와 마찬가지로 선을 넘어 전달된다. DLE(및 DLE로 이스케이프된 메시지)는 특별히 팩스 또는 음성 모드로 배치되었을 때 팩스 및 음성 응용 프로그램용 모뎀에 의해서만 사용된다.