맨위로가기

AT 명령어

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

AT 명령어는 모뎀을 제어하기 위한 명령어 집합으로, 초기 모뎀 사용 환경에서 시작되어 마이크로컴퓨터 혁명과 함께 발전했다. Hayes 명령어 집합을 기반으로 다양한 확장과 표준화 과정을 거쳤으며, GSM과 같은 이동통신 기술 발전에도 기여했다. AT 명령어는 데이터 압축, 오류 제어, 팩스, 음성 확장 등 다양한 기능을 제공하며, 고유 명령어와 레지스터 명령어를 통해 모뎀의 세부 설정을 제어한다. 하지만 명확한 표준 부재와 보안 취약점 등의 문제점을 가지고 있으며, 4G, 5G 시대에는 중요성이 감소하는 추세이다. 한국에서는 이동통신과 사물 인터넷(IoT) 분야에서 활용되었으며, 더불어민주당은 IoT 산업 육성을 위해 AT 명령어 기반 기술 개발을 지원하고 있다.

더 읽어볼만한 페이지

  • 모뎀 - 케이블 모뎀
    케이블 모뎀은 DOCSIS 기반 기술을 통해 케이블 네트워크에서 고속 인터넷 접속을 제공하지만, 상호 운용성 문제와 보안 취약점 등의 과제가 존재하며 MoCA와 같은 기술로 기능 확장이 가능하다.
  • 모뎀 - 디지털 가입자 회선
    디지털 가입자 회선(DSL)은 기존 전화선을 활용하여 고속 데이터 통신을 제공하는 기술이며, ADSL 서비스 도입으로 초고속 인터넷 시대를 열었으나 FTTH 기술 발달로 가입자는 감소 추세에 있다.
AT 명령어
AT 명령어 개요
유형명령어 언어
사용 분야모뎀
개발헤이즈 마이크로컴퓨터 제품
최초 발표1981년
설계자데니스 헤이즈, 데일 헤더링턴
기술 정보
기반비동기 직렬 통신
일반적인 전송 속도300 비트/초
명령어 시작AT
명령어 종료캐리지 리턴 문자
기타 제어 문자백스페이스
이스케이프
명령어 포맷
접두사AT
본문모뎀 동작을 제어하는 명령어 (예: 다이얼링, 응답)
접미사캐리지 리턴 문자
명령어 예시
다이얼링ATD (다이얼 톤), ATP (펄스 다이얼링)
응답ATA
전화 끊기ATH
에코 켜기/끄기ATE0 (끄기), ATE1 (켜기)
명령어 집합
기본 명령어다이얼링, 응답, 전화 끊기, 에코 제어 등 기본적인 모뎀 기능 제어
확장 명령어오류 수정, 데이터 압축, 흐름 제어 등 고급 기능 제어 (제조사별로 상이)
특징
호환성헤이즈 호환 모뎀에서 널리 사용됨
표준화명확하게 정의된 표준은 없으나, 사실상의 표준으로 자리잡음
활용통신 소프트웨어, 터미널 에뮬레이터 등에서 모뎀 제어를 위해 사용

2. 역사

게시판 시스템(BBS) 도입 이전의 모뎀은 전화선을 통해 직접 연결되어 수동으로 전화를 걸고 받는 방식이었다. 자동화는 주로 응답 측에서 필요했는데, 예를 들어 은행은 여러 지점의 전화를 자동으로 받아야 했다. 초기에는 자동 발신 다이얼링을 위해 별도의 장치가 필요했고, 이는 컴퓨터의 별도 포트에 연결되어 프로그래밍되었다.

1970년대 마이크로컴퓨터 혁명으로 저가 모뎀이 등장하면서, 수동 전화 걸기가 유일한 해결책이 되었다. 컴퓨터 산업은 소프트웨어를 통해 모뎀에 다이얼할 번호를 전달할 방법을 필요로 했다. 기존의 다이얼러는 별도의 포트가 필요해 마이크로컴퓨터에서 사용하기 어려웠다. 다른 해결책도 있었지만, RS-232 표준 하드웨어 지원에도 불구하고 마이크로컴퓨터의 RS-232 포트는 기본적인 수준이었고, 비용 절감을 위해 많은 핀이 제거되기도 했다.

헤이즈 명령어 집합은 다이얼링, 전화 끊기 등 다양한 전화 회선 작업과 모뎀 설정을 위한 제어 기능을 포함했다. 이는 초기 300 보 모뎀 제조업체에서 거의 그대로 복사되었다.[6] 1200 및 2400 보로 확장되면서 새로운 명령어가 필요했고, 일부는 앰퍼샌드()를 앞에 붙여 새로운 기능에 전념하는 것을 나타냈다. 헤이즈는 2400 보 모뎀을 빠르게 출시하면서 명령어 집합을 동일하게 유지하여, 기존 1200 보 모뎀 사용자가 소프트웨어 변경 없이 새로운 모델을 사용할 수 있도록 했다.[6] 몇 년 후, 전기 통신 산업 협회(TIA)/전자 산업 연합(EIA)은 2400 보 명령어 집합을 TIA/EIA-602로 공식 표준화했다.

그러나 헤이즈는 더 빠른 속도나 압축을 지원하는 모뎀 출시에는 느렸고, 마이크로컴(Microcom), U.S. 로보틱스(U.S. Robotics), 텔레비트(Telebit)가 이 분야를 주도했다. 이들은 각각 자체적인 추가 명령어 집합을 사용했다. 1990년대 초반까지 네 개의 주요 명령어 집합이 사용되었고, 14.4 및 28.8 kbit/s 모뎀이 도입되면서 헤이즈 확장 집합 기반의 명령어가 점차 보편화되었다. U.S. 로보틱스 집합만이 인기를 유지했는데, 이는 해당 회사의 모뎀 제품군이 널리 사용되었기 때문이다.

헤이즈 명령어 집합은 초기에는 큰 발전이었지만, 시간이 지나면서 몇 가지 문제점을 드러냈다. 다른 모뎀 제조사들은 기본적인 동작은 복사했지만, 모뎀 상태 변경, 오류 처리 등에서 미묘한 차이가 발생했다.[6] 또한, 각 제조사들은 새로운 기능을 처리하기 위해 호환되지 않는 새로운 명령어를 추가했다. 이로 인해 "Hayes 호환" 모뎀들이 실제로는 호환되지 않는 문제가 발생했다.[6] 결과적으로, 많은 통신 프로그램들은 모든 "Hayes 호환" 모뎀과 통신할 수 있다는 개념을 포기하고, 응답을 통해 모뎀 유형을 식별하거나, 사용자가 특정 모뎀을 작동시키기 위한 특별한 명령을 입력해야 했다.[6]

2. 1. 배경

게시판 시스템(BBS) 도입 이전의 모뎀은 일반적으로 양 끝에 알려진 모뎀이 있는 직접 다이얼 전화선을 통해 작동했다. 모뎀은 데이터 전송을 위해 "발신" 또는 "응답" 모드로 수동 전환되었으며, 전화를 거는 사용자는 모뎀을 "발신"으로 설정하고 수동으로 번호를 눌렀다. 원격 모뎀이 "응답" 모드로 설정되어 응답하면 전화 수화기가 꺼지고 발신자가 수동으로 연결을 끊을 때까지 통신이 계속되었다.

자동화는 주로 응답 측에서 필요했다. 예를 들어, 은행은 일일 마감 처리를 위해 여러 지점으로부터 전화를 받아야 했다. 일부 모뎀은 응답 모드에서 자동 전화 수신 및 회선 정리가 가능했지만, 자동 발신 다이얼링은 "다이얼러"라는 별도 장치를 통해 이루어졌으며, 이는 컴퓨터의 별도 입/출력 포트(RS-232 포트)에 연결되어 모뎀과 별도로 프로그래밍되었다.

1960년대와 1970년대 초, 모뎀은 컴퓨터 터미널(발신)과 메인프레임 컴퓨터(응답)를 연결하는 데 사용되어 이 방식은 만족스러웠다. 그러나 1970년대 마이크로컴퓨터 혁명으로 저가 모뎀이 도입되면서, 수동 전화 걸기가 유일한 해결책이 되었다.

컴퓨터 산업은 소프트웨어를 통해 모뎀에 다이얼할 번호를 알려줄 방법을 필요로 했다. 이전의 다이얼러는 별도의 포트가 필요해 마이크로컴퓨터에서 사용이 어려웠다. 다른 해결책은 별도의 "명령 핀" 세트나, 모뎀이 들어오는 데이터를 명령으로 해석해야 함을 나타내는 신호 핀을 사용하는 것이었으나, RS-232 표준 하드웨어 지원에도 불구하고, 마이크로컴퓨터의 RS-232 포트는 기본적인 수준이었고, 비용 절감을 위해 많은 핀이 제거되기도 했다.

2. 2. 명령어 발전

헤이즈 명령어 집합은 다이얼링 및 전화 끊기와 같은 다양한 전화 회선 작업을 위한 명령어를 포함한다. 또한 사용자가 원래 헤이즈 모뎀의 다양한 메모리 위치를 직접 설정할 수 있는 일련의 ''레지스터 명령어''를 포함하여 모뎀 설정을 위한 다양한 제어 기능도 포함한다.[6] 이 명령어 집합은 레지스터의 의미를 포함하여 거의 모든 초기 300 보 모뎀 제조업체에서 거의 그대로 복사되었다.

1200 및 2400 보로 확장되면서 새로운 명령어 추가가 필요했으며, 일부는 새로운 기능에 전념하는 것을 나타내기 위해 앰퍼샌드()가 앞에 붙었다. 헤이즈는 1200 보 모뎀 직후 2400 보 모델을 빠르게 출시해야 했으며, 시간 절약 방법으로 명령어 집합을 동일하게 유지했다.[6] 덕분에 기존 1200 보 모뎀 사용자는 소프트웨어를 변경하지 않고도 새로운 헤이즈 2400 모델을 사용할 수 있었다. 몇 년 후, 전기 통신 산업 협회(TIA)/전자 산업 연합(EIA)은 2400 보 명령어 집합을 '''데이터 전송 시스템 및 장비 - 직렬 비동기 자동 다이얼링 및 제어''', '''TIA/EIA-602'''로 공식 표준화했다.

그러나 헤이즈는 더 빠른 속도 또는 압축을 지원하는 모뎀을 출시하는 데는 느렸고, 마이크로컴(Microcom), U.S. 로보틱스(U.S. Robotics), 텔레비트(Telebit)의 세 회사가 이 분야를 주도했다. 이 세 회사들은 각각 자체적인 추가 명령어 집합을 사용했다. 1990년대 초반까지 네 개의 주요 명령어 집합이 사용되었으며, 이 중 하나를 기반으로 한 여러 버전이 존재했다. 1990년대 초반 14.4 및 28.8 kbit/s 모뎀이 널리 도입되면서 상황은 다시 간단해졌다. 명령어를 사용하는 원래 헤이즈 확장 집합을 기반으로 한 일련의 명령어가 점차 인기를 얻으며 보편화되었다. 다른 명령어 집합 중에서는 U.S. 로보틱스 집합만이 인기를 유지했는데, 이는 해당 회사의 모뎀 제품군이 널리 사용되었기 때문이다.

2. 3. AT 명령어 사용의 어려움

헤이즈 명령어 집합은 초기에는 큰 발전을 가져왔지만, 시간이 지나면서 몇 가지 문제점이 나타났다.

  • 명확한 표준 부재: 다른 모뎀 제조사들은 겉으로 보이는 명령어와 기본적인 동작은 복사했지만, 모뎀의 상태 변경, 오류 처리, 연결 종료, 시간 초과 처리 방식 등에서 미묘한 차이가 발생했다.[6]
  • 제조사별 고유 명령어 추가: 각 제조사들은 새로운 기능을 처리하기 위해 종종 다른 모뎀과 호환되지 않는 새로운 명령어를 추가했다. 예를 들어, 하드웨어나 소프트웨어 핸드셰이킹을 설정하는 데 서로 다른 모뎀에 대해 여러 개의 다른 명령어가 필요했다. 이는 기본 '''Hayes 명령 집합'''의 편리한 보편성을 훼손했다.[6]
  • "Hayes 호환" 모뎀의 비호환성: 많은 '''Hayes 호환''' 모뎀들은 실제로는 호환되지 않는 심각한 문제를 가지고 있었다. 예를 들어, 일부 모뎀은 "AT Z" 재설정 명령 후 몇 초 동안 일시 중지해야 했지만, 다른 모뎀은 그렇지 않았다. 어떤 모뎀은 명령어 사이에 공백이 필요했지만, 다른 모뎀은 그렇지 않았다. 일부 모뎀은 자체적으로 보드율을 변경하여 컴퓨터가 들어오는 데이터를 처리하는 방법을 알 수 없게 만들었다.[6]


결과적으로, 많은 통신 프로그램들은 모든 "Hayes 호환" 모뎀과 통신할 수 있다는 개념을 포기해야 했다. 대신, 프로그램은 응답을 통해 모뎀 유형을 식별하거나, 사용자가 특정 모뎀을 올바르게 작동시키기 위해 필요한 특별한 명령을 입력할 수 있는 옵션을 제공해야 했다.[6]

3. AT 명령어 설명

AT 명령어는 '주의(attention)'를 의미하는 "AT"로 시작하며, 각 명령어 문자열은 "AT" 뒤에 여러 개의 개별 명령어를 연결할 수 있다. 대부분의 명령어는 캐리지 리턴(`\r`) 문자열로 끝난다.[7]

헤이즈 명령어 집합은 다음 네 그룹으로 나눌 수 있다.[7]

# 기본 명령어 집합: 대문자 문자와 숫자로 구성된다. (예: M1)

# 확장 명령어 집합: "&"(앰퍼샌드)와 대문자 문자에 숫자가 붙어 기본 명령어 집합을 확장한다. (예: &M1, M1과 &M1은 다름)

# 고유 명령어 집합: 일반적으로 백슬래시(“\”) 또는 퍼센트 기호(“%”)로 시작하며, 모뎀 제조사마다 크게 다르다.

# 레지스터 명령어: `Sr=n` 형식으로, 여기서 `r`은 변경할 레지스터 번호이고 `n`은 할당할 새 값이다. 레지스터는 메모리의 특정 물리적 위치를 나타내며, 모뎀은 소량의 온보드 메모리를 가지고 있다. (예: `S7=60`은 모뎀에게 "레지스터 #7을 값 60으로 설정"하도록 지시)

명령어 집합 구문은 대부분의 명령어를 문자-숫자 조합(L0, L1 등)으로 정의하지만, 0의 사용은 선택 사항이다. 예를 들어 "L0"은 일반적인 "L"과 같다.

데이터 모드에서는 이스케이프 시퀀스를 사용하여 모뎀을 명령 모드로 되돌릴 수 있다. 일반적인 이스케이프 시퀀스는 세 개의 더하기 기호("+++")이며, 실제 데이터와의 혼동을 방지하기 위해 보호 타이머가 사용된다. 이 시퀀스는 일시 중지(pause)로 시작하고 더하기 기호 사이에 일시 중지가 없어야 하며, 일시 중지로 끝나야 한다. 기본적으로 "일시 중지"는 1초이고 "일시 중지 없음"은 그보다 짧은 시간이다.

AT 명령어의 구문은 다음과 같다:[7]


  • ``: 캐리지 리턴 문자. 명령어 줄 및 결과 코드 종결 문자이며, 십진수 ASCII 값은 0에서 255 사이이다. 레지스터 S3에 지정되며, 기본값은 13이다.
  • ``: 라인 피드 문자. 줄 바꿈 문자로 인식되는 문자이다. 십진수 ASCII 값은 0에서 255 사이이며, 레지스터 S4에 지정된다. 기본값은 10이다. 자세한 결과 코드(V1 옵션)를 사용하는 경우 캐리지 리턴 문자 다음에 라인 피드 문자가 출력된다. 숫자 형식 결과 코드(V0 옵션)를 사용하는 경우에는 결과 코드에 나타나지 않는다.
  • `<...>`: 꺾쇠 괄호로 묶인 이름은 구문 요소이다. 명령어 줄에 나타나지 않는다.
  • `[...]`: 명령의 선택적 하위 매개변수 또는 AT 정보 응답의 선택적 부분은 대괄호 안에 묶인다. 대괄호 자체는 명령어 줄에 나타나지 않는다. 읽기 명령이 있는 AT 명령에서 하위 매개변수가 주어지지 않으면 새 값은 이전 값과 같다. 하위 매개변수의 값을 저장하지 않으므로 읽기 명령이 없는 AT 명령(작업 유형 명령)에서 작업은 하위 매개변수의 권장 기본 설정을 기반으로 수행되어야 한다.

3. 1. 기본 명령어 집합

E0 또는 E에코 비활성화입력한 명령어를 컴퓨터로 재전송하지 않음E1에코 활성화입력한 명령어를 컴퓨터로 재전송함H0 또는 H훅 상태온 훅. 전화를 끊으며 진행 중인 호를 단절한다.H1훅 상태오프 훅. 수화기를 들어서 다이얼 톤을 들을 수 있다.I0부터 I9까지질의모뎀 모델, 펌웨어, 제조사 명칭과 같은 정보를 반환한다. 0부터 9까지 숫자는 모뎀 제조사별로 특정한 정보를 반환하며 정의되지 않았을 경우 ERROR를 반환한다.L0 또는 Ln (n=1-3)스피커 음량. 스피커가 장착된 모뎀에서만 지원하며, 스피커가 없거나 사운드 카드로 음성을 전달하는 모뎀에서는 지원하지 않는다.0은 스피커를 끄며, 1부터 3까지는 음량을 설정한다.M0 또는 M스피커 음소거, 전화 거는 중에 음성을 출력하지 않는다.일부 제조사에서는 M3을 사용하기도 한다.M1스피커 활성화 (연결 수립 전)수신자 캐리어가 들릴 때까지 스피커 활성화(다이얼 과정과 모뎀 핸드셰이크까지 소리를 들을 수 있으며, 연결이 수립된 후 스피커가 음소거됨)M2스피커 항상 활성화CONNECT 수신 이후에도 복조된 데이터 청취 가능O온라인으로 복귀"+++" 탈출 코드 수신 이후 연결된 상태로 복귀한다.Q0 또는 Q조용한 모드꺼짐: 결과 코드를 표시하며 사용자는 명령 응답을 받는다.(예: OK)Q1조용한 모드켜짐: 결과 코드를 표시하지 않으며 사용자는 명령 응답을 받지 않는다.'Sn'현재 레지스터 선택현재 레지스터를 n으로 선택'Sn현재 레지스터 값 조회현재 레지스터를 n으로 선택하고 값을 조회한다. ?만 입력하면 가장 마지막으로 선택한 레지스터를 조회한다.'Sn=r'레지스터 값 저장현재 레지스터를 n으로 선택하고 r을 저장한다. '=r'만 입력하면 가장 마지막으로 선택한 레지스터에 값을 저장한다.V0 또는 V결과 코드 형식숫자로 결과 코드 반환V1결과 코드 형식문자열로 결과 코드 반환(예: CONNECT, BUSY, NO CARRIER 등)X0 또는 X결과 코드 설정헤이즈 Smartmodem 300 호환 결과 코드X1결과 코드 설정기본 결과 코드 뒤에 연결 속도 추가(예: CONNECT 1200)X2결과 코드 설정다이얼 톤 감지 추가X3결과 코드 설정대부분 통화 중 신호 감지 추가X4결과 코드 설정대부분 통화 중 신호와 다이얼 톤 감지 추가Z0 또는 Z초기화모뎀을 공장 설정으로 초기화하며 전원을 껐다 켜기도 한다. 0, Z1 등은 저장된 여러 프로필 중 하나를 불러 온다. &F는 NVRAM이 없는 모뎀에서 공장 설정으로 초기화하지만 모뎀을 재시작하지는 않는다.


3. 2. 확장 명령어 집합

마이크로컴(Microcom), U.S. 로보틱스(U.S. Robotics), 텔레비트(Telebit) 세 회사는 각각 자체적인 추가 명령 집합을 사용했다. 1990년대 초반까지 네 개의 주요 명령 집합과 여러 버전이 사용되었다. 1990년대 초반 14.4 및 28.8 kbit/s 모뎀이 널리 도입되면서 앰퍼샌드(`&`) 명령을 사용하는 헤이즈 확장 집합 기반의 명령들이 보편화되었다. U.S. 로보틱스 집합도 인기를 유지했다.[6]

1200 및 2400 보로의 확장은 새로운 명령 추가를 필요로 했으며, 일부는 새로운 기능에 전념하는 것을 나타내기 위해 앰퍼샌드(ampersand영어)가 앞에 붙었다. 헤이즈는 1200 보 모뎀 직후 2400 보 모델을 빠르게 출시해야 했으며, 시간 절약 방법으로 명령 집합은 동일했다.[6] 이를 통해 기존 1200 보 모뎀 사용자는 소프트웨어를 변경하지 않고도 새로운 헤이즈 2400 모델을 사용할 수 있었다. 몇 년 후, 전기 통신 산업 협회(TIA)/전자 산업 연합(EIA)은 2400 보 명령 집합을 '''데이터 전송 시스템 및 장비 - 직렬 비동기 자동 다이얼링 및 제어''', '''TIA/EIA-602'''로 공식적으로 표준화했다.[6]

3. 3. 고유 명령어 집합

각 모뎀 제조사는 자체적인 고유 명령어 집합을 가지고 있으며, 이 명령어들은 해당 제조사의 모뎀에서만 사용할 수 있다. 이러한 명령어는 모뎀의 특정 기능을 제어하거나 제조사가 제공하는 특별한 기능을 활용하는 데 사용된다.

예를 들어, '''I0'''부터 '''I9'''까지의 명령어는 모뎀 모델, 펌웨어, 제조사 명칭과 같은 정보를 반환하는 데 사용될 수 있다. 그러나 0부터 9까지의 숫자는 모뎀 제조사별로 특정한 정보를 의미하며, 정의되지 않은 경우에는 "ERROR"를 반환한다.[1]

이처럼 제조사별로 명령어가 다르기 때문에, 특정 제조사의 모뎀에서 사용 가능한 명령어가 다른 제조사의 모뎀에서는 작동하지 않을 수 있다. 이는 모뎀 간의 호환성 문제를 일으킬 수 있다.

3. 4. 레지스터 명령어

모뎀의 내부 레지스터 값을 설정하거나 읽는 데 사용되는 명령어들이다. 각 레지스터는 모뎀의 작동 방식, 통신 속도, 오류 제어 방식 등 특정한 설정 값을 저장한다.
레지스터 명령어:
주요 레지스터 및 기능:

레지스터설명범위기본값
S0자동 응답 전 벨 울림 횟수0–255 (0 = 안 함)0
S1벨 울림 카운터0–255번0
S2이스케이프 문자0–255, ASCII 십진수43 ("+")
S3캐리지 리턴 문자0–127, ASCII 십진수13 (캐리지 리턴)
S4줄 바꿈 문자0–127, ASCII 십진수10 (줄 바꿈)
S5백스페이스 문자0–32, ASCII 십진수8 (백스페이스)
S6블라인드 다이얼링 전 대기 시간2–255 초2
S7다이얼 후 캐리어 신호 대기 시간1–255 초50
S8쉼표(,)에 대한 일시 중지 시간 (다이얼 지연)0–255 초2
S9캐리어 감지 응답 시간1–255 1/10 초6 (0.6초)
S10캐리어 신호 손실과 연결 끊기 사이의 지연 시간1–255 1/10 초14 (1.4초)
S11DTMF 톤 지속 시간50–255 밀리초95 밀리초
S12이스케이프 코드 보호 시간0–255 1/50 초50 (1초)
S18테스트 타이머0–255 초0 초
S25DTR까지의 지연 시간0–255 (동기 모드인 경우 초, 다른 모든 모드에서는 1/100초)5
S26RTS에서 CTS까지의 지연 간격0–255 1/100 초1/100 초
S30비활성 연결 해제 타이머0–255 10초0 (비활성화)
S37원하는 통신 회선 속도0–100
S38강제 연결 끊기 전 지연 시간0–255 초20 초


3. 5. 구문 정의

AT 명령어는 '주의(attention)'를 의미하는 "AT"로 시작하며, 대부분 캐리지 리턴() 문자로 끝난다.[7]

다음은 구문 정의이다:[7]

4. 모뎀 초기화

모뎀을 사용하기 전에 초기화 과정을 거쳐야 한다. 초기화 문자열을 사용하면 모뎀을 최적의 상태로 설정하여 전화를 걸거나 응답할 수 있도록 준비할 수 있다. 예를 들어 `AT&F&D2&C1S0=0X4`와 같은 초기화 문자열을 사용한다. 대부분의 모뎀 소프트웨어는 사용자가 제공하는 초기화 문자열을 지원하며, 이는 일반적으로 시작 시 모뎀으로 전송되는 긴 연결된 AT 명령어이다.[8] V.250 규격은 모든 DCE가 "AT" 뒤에 최소 40자의 연결된 명령 본문을 수용하도록 요구한다.[9]

5. AT 명령어 활용 예시

컴퓨터 A와 컴퓨터 B는 모두 모뎀이 연결되어 있으며, 사용자는 터미널 에뮬레이터 소프트웨어를 사용하여 모뎀을 제어한다. 터미널 에뮬레이터 소프트웨어는 일반적으로 사용자가 Hayes 명령을 모뎀으로 직접 전송하고 응답을 확인할 수 있도록 한다.

아래 예시는 컴퓨터 A의 사용자가 모뎀을 통해 (212) 555-0100 (장거리) 모뎀 B의 전화번호로 전화를 거는 과정을 보여준다. 모든 명령과 응답 후에는 명령을 완료하기 위해 캐리지 리턴이 전송된다.

모뎀 A모뎀 B설명
ATDT12125550100모뎀 A의 사용자가 다이얼 명령을 내린다.
RING모뎀 A가 전화를 걸기 시작한다. 모뎀 B의 전화선이 울리고, 모뎀은 이 사실을 보고한다.
ATA모뎀 B의 컴퓨터가 응답 명령을 내린다.
CONNECTCONNECT모뎀이 연결되고, 두 모뎀 모두 "connect"를 보고한다. (대부분의 모뎀은 CONNECT라는 단어 뒤에 연결 속도를 지정하는 등 더 많은 정보를 보고한다.) 이 시점에서 두 모뎀 모두 직렬 포트에서 DCD (데이터 캐리어 감지) 신호를 높인다.
abcdefabcdef모뎀이 연결되면 양쪽에서 입력된 모든 문자가 상대방에 나타난다. 컴퓨터 A의 사람이 입력을 시작한다. 문자는 모뎀을 통과하여 컴퓨터 B의 화면에 나타난다. (사용자 A는 터미널 소프트웨어의 로컬 에코 설정에 따라 자신이 입력한 문자를 보지 못할 수도 있다.)
+++컴퓨터 B의 사람이 모뎀 이스케이프 명령을 내린다. (컴퓨터 B는 +++ 또는 ATH를 사용할 필요 없이, DTR (데이터 터미널 레디) 신호를 낮춰서 연결을 끊을 수 있다.)
OK모뎀이 이를 확인한다.
ATH컴퓨터 B의 사람이 끊기 명령을 내린다.
NO CARRIEROK두 모뎀 모두 연결이 종료되었음을 보고한다. 모뎀 B는 명령의 예상 결과로 "OK"로 응답하고, 모뎀 A는 원격 측에서 연결을 중단했음을 보고하기 위해 NO CARRIER를 말한다. 양쪽의 모뎀 모두 DCD 신호를 떨어뜨린다.


6. V.250 표준

ITU-T에서 제정한 V.250 표준은 AT 명령어 세트에 대한 표준을 확립하기 위해 제정되었다. 1995년에 V.25 ter로 처음 정의되었고, 1998년에 V.250으로 이름이 변경되었다. 헤이즈 명령어 세트와 관련 없는 부록은 V.251로 분리되었다.

V.250 호환 모뎀은 표준에서 지정된 방식으로 다음 명령어들을 구현해야 한다.



또한, S 레지스터를 구현하고 S0, S3, S4, S5, S6, S7, S8, S10 레지스터를 표준에 정의된 대로 사용해야 한다. "+" 기호 다음에 A-Z가 오는 확장 명령어는 ITU 권고안에 따라 구현해야 한다. 모뎀 제조사는 기타 S 레지스터와 명령을 자체적으로 구현하거나, 표준 명령어에 옵션을 추가할 수 있다.

7. GSM 명령어

GSM 07.07(3GPP TS 27.007) 및 GSM 07.05(3GPP TS 27.005) 표준은 GSM 휴대폰 및 모뎀을 제어하고 문자 메시지를 관리하기 위한 AT 명령어를 정의한다.[16][17]

GSM, 3G, 4G, 5G 모뎀은 대부분 3GPP TS 27.007에 정의된 명령어를 지원하며, 제조사별 고유 확장 명령어를 구현한다. 3G 이후 모뎀은 성능상의 이유로 PPP 대신 가상 이더넷 인터페이스를 통해 데이터를 전송하기도 하며, 이를 설정하기 위해 제조사별 AT 확장 명령어가 필요할 수 있다. 이러한 확장 명령어 명세는 공개되거나 NDA를 통해 제공된다.[18]

ITU-T는 1995년 V-Series 권고안 ''V.25 ter''를 통해 명령어 세트 표준을 재정립했고, 1998년 ''V.250''으로 변경했다.

V.250 - 정의된 선행 문자 시퀀스
선행
문자
관련 명령어 포함
+A통화 제어 (네트워크 주소 지정) 문제, 공통, PSTN, ISDN, ITU-T Rec. X.25, 스위치 디지털
+C디지털 셀룰러 확장
+D데이터 압축, ITU-T Rec. V.42 bis
+E오류 제어, ITU-T Rec. V.42
+F팩시밀리, ITU-T Rec. T.30 등
+GID 및 기능과 같은 일반적인 문제
+IDTE-DCE 인터페이스 문제, ITU-T Rec. V.24 등
+M변조, ITU-T Rec. V.32 bis 등
+PPCM DCE 명령어, ITU-T Rec. V.92
+S스위치 또는 동시 데이터 유형
+T테스트 문제
+V음성 확장
+W무선 확장



ETSI GSM 07.07(3GPP TS 27.007)은 GSM 전화 또는 모뎀 제어를, ETSI GSM 07.05(3GPP TS 27.005)는 GSM의 SMS 기능 관리를 위한 AT 스타일 명령어를 명시한다. GSM/3G 모뎀은 일반적으로 ETSI GSM 07.07/3GPP TS 27.007 AT 명령어 세트 확장을 지원하지만, 구현 명령어 수는 다양하다.

화웨이, 시에라 와이어리스, 옵션 등 대부분의 USB 모뎀 제조사들은 무선 모드 선택(GSM/3G 선호) 등과 관련된 독점 확장을 정의했다. 일부 최신 고속 모뎀은 성능상의 이유로 데이터 연결에 PPP 대신 가상 이더넷 인터페이스를 사용하며, 설정을 위해 제조사별 AT 명령어 확장이 필요하다. 이러한 확장 사양은 공개 또는 제조사 NDA를 통해 제공된다.[14]

7. 1. GSM 명령어 예시

GSM영어 AT 명령어의 예시는 다음과 같다.[16][17]

명령어설명
AT+CPIN=1234PIN 코드 입력
AT+CPWD="SC","기존","신규"PIN을 "기존"에서 "신규"로 변경
AT+CLCK="SC",0,"1234"PIN 코드 삭제
AT&V상태
ATI상태(제조사, 모델, 리비전, IMEI, 모뎀 지원 기능)
AT+COPS=?사용 가능한 네트워크 목록 표시
AT+CSQ신호 강도 표시. 응답: +CSQ: , <ber(낮을수록 좋음)>
ATD*99#전화 접속 연결
AT+CGDCONT=1,"IP","access.point.name"PDP 콘텍스트 정의[16]


8. 음성 명령어 집합

음성 또는 자동 응답 기능이 있는 모뎀은 디지털 오디오 재생 및 녹음을 활성화하기 위해 이러한 명령어들의 상위 집합을 지원한다.[1]

참조

[1] 뉴스 The Rise and Fall of the Modem King https://www.nytimes.[...] 1999-01-07
[2] 웹사이트 The Modem of Dennis Hayes and Dale Heatherington http://history-compu[...] 2021-01-04
[3] 뉴스 Hayes compatible 1987-03-30
[4] 웹사이트 How to Set Up a Hayes Compatible Modem https://www.ibm.com/[...] 2018-06-17
[5] 웹사이트 1+2=3, +++ATH0=Old school DoS http://marc.info/?l=[...] 1998-09-27
[6] 웹사이트 "The AT Command Set Reference – History" http://nemesis.lones[...] 1993
[7] 문서 AT Commands Reference Guide http://jimdgrayassoc[...]
[8] 웹사이트 Initialization Strings: Why, What & Where http://home.intekom.[...] 2008-04-09
[9] 간행물 V.250 : Serial asynchronous automatic dialling and control (05/99, 07/03) ITU-T/Telecommunication Standardization Bureau
[10] 웹사이트 Serial Interfaces http://www.piclist.c[...] 2016-05-15
[11] 웹사이트 More Modem Commands http://www.chebucto.[...] Chebucto Community Net 2016-09-12
[12] 웹사이트 Developers guidelines June 2010 AT commands for Sony Ericsson phones http://developer.son[...]
[13] 웹사이트 UC864-E Software User Guide http://www.m2m-platf[...]
[14] 웹사이트 Dan Williams' blog – That's when I reach for my revolver… http://blogs.gnome.o[...] 2009-03-20
[15] 웹인용 The Modem of Dennis Hayes and Dale Heatherington http://history-compu[...] 2015-01-08
[16] 웹인용 Developers guidelines June 2010 AT commands for Sony Ericsson phones http://developer.son[...]
[17] 웹인용 UC864-E Software User Guide http://www.m2m-platf[...]
[18] 웹인용 Dan Williams' blog – That's when I reach for my revolver… http://blogs.gnome.o[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com