소개
이 문서에서는 CG522 운영 체제에서 적용할 수 있는 CG522-E 모뎀, Sierra Wireless EM9190의 AT 명령 사용에 대해 설명합니다.
AT 명령이란?
AT 명령 또는 주의 명령은 모뎀을 제어하는 데 사용되는 명령 집합입니다. "AT" 이름은 모뎀에 대한 주의를 얻기 위해 각 명령 앞에 와야 하는 주의 접두사에서 옵니다. 이러한 명령은 전화 걸기, 전화 끊기, 통신 매개변수 변경 등 다양한 모뎀 기능을 관리하는 데 사용됩니다.
AT 명령을 알아야 하는 이유는 무엇입니까?
AT 명령어는 여러 가지 이유로, 특히 다양한 애플리케이션에서 모뎀 통신 및 제어를 다룰 때 필수적이다. AT 명령이 필요한 몇 가지 주요 이유는 다음과 같습니다.
- 장치 제어: AT 명령은 전화 걸기 번호, 메시지 송수신, 네트워크 연결 관리와 같은 모뎀 기능을 제어하는 표준화된 방법을 제공합니다.
- 설정: 사용자는 네트워크 매개변수, 데이터 전송 설정, 전원 관리 등 모뎀 설정을 구성할 수 있습니다. 이는 성능을 최적화하고 다른 네트워크와의 호환성을 보장하는 데 매우 중요합니다.
- 진단 및 문제 해결: AT 명령을 사용하여 모뎀에 상태 정보를 쿼리하고 신호 품질을 확인하며 오류 코드를 검색할 수 있습니다. 이를 통해 연결 문제를 진단하고 해결할 수 있습니다.
전반적으로 AT 명령은 모뎀 하드웨어와 효율적이고 효과적으로 상호 작용하고 관리해야 하는 개발자, 엔지니어 및 기술자에게 중요한 도구입니다. 광범위한 통신 작업 및 애플리케이션에 필요한 인터페이스를 제공합니다.
CG522-E에서 AT 명령을 실행하는 방법
이 작업은 활성 CLI 세션에서 셀룰러 게이트웨이로 명령을 실행하여 간단하게 수행할 수 있습니다.
CellularGateway# cellular 1 modem-at-commands
Value for '' (<string>):
cellular_modem_at_cmd: modem-at-response
기본 AT 명령
ATI(AT Identification 명령이라고도 함)는 모뎀 제조, 모델, 실행 중인 펌웨어, IMEI 및 공장 일련 번호를 표시하는 데 사용할 수 있는 명령입니다.
CellularGateway# cellular 1 modem-at-commands
Value for '' (<string>): ati
cellular_modem_at_cmd: modem-at-response ati
Manufacturer: Sierra Wireless, Incorporated
Model: EM9190
Revision: SWIX55C_03.09.11.00 7bf975 jenkins 2022/06/10 20:36:01
IMEI: 111111111111
IMEI SV: 22
FSN: XXXXXXXXXXXX
+GCAP: +CGSM
OK
AT!PRIID?는 OEM PRI 버전 및 사용 가능한 캐리어 PRI 옵션을 표시합니다.
cellular_modem_at_cmd: modem-at-response AT!PRIID?
PRI Part Number: 9909919
Revision: 001.009
Customer: Cisco
Carrier PRI: 9999999_9909619_SWIX55C_03.09.11.00_01_ATT_030.046_001
Carrier PRI: 9999999_9911061_SWIX55C_03.09.11.00_01_BELL_030.007_001
Carrier PRI: 9999999_9909622_SWIX55C_03.09.11.00_01_DOCOMO_030.041_003
Carrier PRI: 9999999_9909621_SWIX55C_03.09.11.00_01_GENERIC_030.044_006
Carrier PRI: 9999999_9910814_SWIX55C_03.09.11.00_01_KDDI_030.025_001
Carrier PRI: 9999999_9910766_SWIX55C_03.09.11.00_01_SOFTBANK_030.031_004
Carrier PRI: 9999999_9910398_SWIX55C_03.04.03.00_01_TELSTRA_030.016_001
Carrier PRI: 9999999_9910308_SWIX55C_03.10.07.00_01_TMO_030.052_000
Carrier PRI: 9999999_9909620_SWIX55C_03.09.11.00_01_VERIZON_030.046_003
OK
AT!IMPREF?는 사용된 PRI 펌웨어와 캐리어가 구성된 경우 기본 캐리어를 따라 함께 표시합니다.
cellular_modem_at_cmd: modem-at-response AT!IMPREF?
!IMPREF:
preferred fw version: 00.00.00.00
preferred carrier name: AUTO-SIM
preferred config name: AUTO-SIM_000.000_000
preferred subpri index: 000
current fw version: 03.09.11.00
current carrier name: GENERIC
current config name: GENERIC_030.044_006
current subpri index: 000
OK
AT!CPIN? SIM이 준비되었는지 또는 PIN을 활성화해야 하는지 표시합니다.
cellular_modem_at_cmd: modem-at-response AT+CPIN?
+CPIN: READY
OKAT+CPIN="SIM-PIN" is the command to insert a PIN to unlock the SIM.
cellular_modem_at_cmd: modem-at-response AT+CPIN="3045"
OK
그러나 셀룰러 게이트웨이 또는 모뎀이 다시 시작되는 경우 PIN을 다시 입력해야 합니다.
AT+CLCK="SC",0,"SIM-PIN"을 적용하여 SIM의 잠금을 영구적으로 해제할 수 있으므로 다시 로드 후 PIM을 다시 삽입할 필요가 없습니다.
cellular_modem_at_cmd: modem-at-response AT+CLCK="SC",0,"3045"
OK
AT+CREG? 모뎀의 현재 네트워크 등록 상태를 회선 교환 네트워크(GSM 네트워크)로 확인합니다. 그것은 한 쌍의 값을 반환할 것으로 예상된다.
이 쌍의 첫 번째 값은 다음과 같은 작업입니다.
0이 기본값이며 네트워크 등록을 수동으로 확인해야 함을 의미합니다.
1은 네트워크에서 발생한 변경 시 반환되는 결과 코드를 나타냅니다.
2. 등록 시 등록사항 및 위치정보 표시
TAC에서 조언하지 않는 한 이러한 값을 변경할 필요가 없습니다. 이 쌍의 두 번째 값은 등록 상태이며 해석할 수 있습니다.
- 0- 등록되지 않았습니다. 디바이스가 현재 새 운영자를 검색하지 않습니다.
- 1- 홈 네트워크에 등록되었습니다.
- 2 - 등록되지 않았지만 디바이스에서 현재 새 운영자를 검색하고 있습니다.
- 3- 등록이 거부되었습니다.
- 4- 알 수 없음 예를 들어 범위를 벗어났습니다.
- 5- 등록됨, 로밍 디바이스가 해외(국내 또는 국제) 네트워크에 등록되어 있습니다.
cellular_modem_at_cmd: modem-at-response at+creg?
+CREG: 0,1
OK
이 스니펫에서는 작업이 0으로 설정되고 등록이 1로 설정된 것을 볼 수 있습니다.
AT+CEREG? 모뎀의 현재 네트워크 등록 상태를 패킷 교환 네트워크인 인터넷 액세스로 확인합니다. 이전 명령과 동일한 값을 반환합니다.
cellular_modem_at_cmd: modem-at-response at+creg?
+CREG: 0,1
OK
AT+CGREG? GPRS 네트워크에 대한 모뎀의 현재 네트워크 등록 상태를 확인합니다. 이전 명령과 동일한 값을 반환합니다.
cellular_modem_at_cmd: modem-at-response at+cgreg?
+CGREG: 0,0
OK
AT+CIMI는 IMSI 값을 반환합니다.
cellular_modem_at_cmd: modem-at-response AT+CIMI
268069668483162
AT+CCID는 ICCID의 값을 반환합니다.
cellular_modem_at_cmd: modem-at-response AT+CCID
+CCID: 89351060001115740710
AT!UIMS? 활성 SIM의 슬롯 번호를 반환합니다.
cellular_modem_at_cmd: modem-at-response AT!UIMS?
!UIMS: 0
AT!GSTATUS? 연결 상태를 확인하려면 NSA 5G(시스템 모드 ENDC)에서 활성 5G 연결이 있는지 확인합니다. 시스템 모드가 LTE이면 5G는 활성화되지 않습니다. 지시된 LTE 대역은 ENDC 연결을 위한 앵커 4G 대역이다.
SSC(Secondary Serving Cells) 밴드는 가장 최근에 반송파 집성을 위해 사용된 밴드를 대상으로 하지만, 여기서는 5G 연결이 활성화되어 있으므로 SSC 밴드는 비활성 상태입니다. 지시된 NR5G 대역은 데이터 연결에 사용되는 5G 대역이다.
cellular_modem_at_cmd: modem-at-response AT!GSTATUS?
!GSTATUS:
Current Time: 1730657 Temperature: 44
Thermal Mitigation Level: 0
Reset Counter: 2 Mode: ONLINE
System mode: ENDC PS state: Attached
LTE band: B1 LTE bw: 20 MHz
LTE Rx chan: 500 LTE Tx chan: 18500
EMM state: Registered Normal Service
RRC state: RRC Connected
IMS reg state: REGISTERED IMS mode: Normal
IMS Srv State: FULL SMS,NO VoIP
PCC RxM RSSI: --- PCC RxM RSRP: ---
PCC RxD RSSI: -59 PCC RxD RSRP: -86
PCC RxM1 RSSI: --- PCC RxM1 RSRP: ---
PCC RxD1 RSSI: --- PCC RxD1 RSRP: ---
PCC Tx Power: -20 TAC: bc7a (48250)
RSRQ (dB): -7.8 Cell ID: 00066e2b (421419)
SINR (dB): 14.2
SCC1 NR5G band: n78 SCC1 NR5G bw: 90 MHz
SCC1 NR5G Tx Power: 3 SCC1 NR5G Tx chan: 650332
SCC1 NR5G Rx chan: 650332
NR5G RSRP (dBm): -94 NR5G RSRQ (dB): -11
NR5G SINR (dB): 19.5
NR!INFO? 활성 5G 연결이 있는 경우 연결 모드 NSA(비독립형). 이 출력은 NR5G 대역이 사용됨을 보여줍니다.
cellular_modem_at_cmd: modem-at-response AT!NRINFO?
!NRINFO:
Connectivity Mode: NSA
NR5G Cell ID: 67
NR5G band: n78 NR5G Carrier ID: 0
NR5G dl bw: 90 MHz NR5G ul bw: 90 MHz
NR5G Tx Power: 3 NR5G Tx chan: 650332
NR5G Rx chan: 650332
NR5G dl MIMO: 0 NR5G ul MIMO: 1
NR5G(sub6) RxM RSSI (dBm): -60.6 NR5G(sub6) RxD RSSI (dBm): -60.8
NR5G(sub6) RxM1 RSSI (dBm): -60.1 NR5G(sub6) RxD1 RSSI (dBm): -61.8
NR5G RSRP (dBm): -94 NR5G RSRQ (dB): -11
NR5G SINR (dB): 20.0
AT+CGDCONT?는 프로그래밍된 APN(액세스 포인트 이름)을 확인합니다.
cellular_modem_at_cmd: modem-at-response AT+CGDCONT?
+CGDCONT: 1,"IPV4V6","internet","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0,,,,,,,,,"",,,,0
+CGDCONT: 2,"IPV4V6","ims","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0,,,,,,,,,"",,,,0
AT+CGDCONT=X는 인덱스 번호에 따라 특정 APN을 지우고 지웁니다.
cellular_modem_at_cmd: modem-at-response AT+CGDCONT?
+CGDCONT: 1,"IPV4V6","internet","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0,,,,,,,,,"",,,,0
+CGDCONT: 2,"IPV4V6","ims","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0,,,,,,,,,"",,,,0
OK
CellularGateway#
CellularGateway# cellular 1 modem-at-commands
Value for '' (<string>): AT+CGDCONT=2
cellular_modem_at_cmd: modem-at-response AT+CGDCONT=2
OK
CellularGateway#
CellularGateway# cellular 1 modem-at-commands
Value for '' (<string>): AT+CGDCONT?
cellular_modem_at_cmd: modem-at-response AT+CGDCONT?
+CGDCONT: 1,"IPV4V6","internet","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0,,,,,,,,,"",,,,0
OK
AT+PCINFO? 저전력 상태와 모뎀 상태를 확인합니다. LPM(저전력 모드) 투표자 중 0이 아닌 사람이 있는 경우, 이는 모뎀이 저전력 상태로 설정된 이유를 나타내며, 가장 일반적인 이유 중 일부를 나열합니다.
- 상태: 온라인 상태가 바람직함
- 임시: 고온
- 볼트: 규격 전압 초과
- 사용자: 강제 사용자
- 사용 안 함(_D): 강제 사용자
- FOTA: FOTA 업그레이드 프로세스
cellular_modem_at_cmd: modem-at-response AT!PCINFO?
State: Online
LPM voters - Temp:0, Volt:0, User:0, W_DISABLE:0, IMSWITCH:0, BIOS:0, LWM2M:0, OMADM:0, FOTA:0, NVCRIT:0, RFCAL:0, MMWCAL:0, RFC_INIT:0
LPM persistence - None
AT!IMAGE?에는 모뎀의 모든 펌웨어 및 PRO 이미지가 나열됩니다.
cellular_modem_at_cmd: modem-at-response at!image?
TYPE SLOT STATUS LRU FAILURES UNIQUE_ID BUILD_ID
FW 1 GOOD 2 0 0 ?_? 03.09.11.00_?
FW 2 GOOD 1 0 0 ?_? 03.10.07.00_?
FW 3 GOOD 1 0 0 ?_? 03.04.03.00_?
Max FW images: 3
Active FW image is at slot 1
TYPE SLOT STATUS LRU FAILURES UNIQUE_ID BUILD_ID
PRI FF GOOD 0 0 0 030.046_001 03.09.11.00_ATT
PRI FF GOOD 0 0 0 030.007_001 03.09.11.00_BELL
PRI FF GOOD 0 0 0 030.041_003 03.09.11.00_DOCOMO
PRI FF GOOD 0 0 0 030.044_006 03.09.11.00_GENERIC
PRI FF GOOD 0 0 0 030.025_001 03.09.11.00_KDDI
PRI FF GOOD 0 0 0 030.031_004 03.09.11.00_SOFTBANK
PRI FF GOOD 0 0 0 030.016_001 03.04.03.00_TELSTRA
PRI FF GOOD 0 0 0 030.052_000 03.10.07.00_TMO
PRI FF GOOD 0 0 0 030.046_003 03.09.11.00_VERIZON
Max PRI images: 50
AT!IMAGE=<op><type><slot> 특정 펌웨어를 삭제합니다.
- op = 0: 삭제 , 1: 목록,
- 형식 = 0: FW , 1: 설정
- slot = Firmware slot index, none은 모든 슬롯을 의미합니다.
CellularGateway# cellular 1 modem-at-commands
Value for '' (<string>): at!image?
cellular_modem_at_cmd: modem-at-response at!image?
TYPE SLOT STATUS LRU FAILURES UNIQUE_ID BUILD_ID
FW 1 GOOD 2 0 0 ?_? 03.09.11.00_?
FW 2 GOOD 1 0 0 ?_? 03.10.07.00_?
FW 3 GOOD 1 0 0 ?_? 03.04.03.00_?
Max FW images: 3
Active FW image is at slot 1
TYPE SLOT STATUS LRU FAILURES UNIQUE_ID BUILD_ID
PRI FF GOOD 0 0 0 030.046_001 03.09.11.00_ATT
PRI FF GOOD 0 0 0 030.007_001 03.09.11.00_BELL
PRI FF GOOD 0 0 0 030.041_003 03.09.11.00_DOCOMO
PRI FF GOOD 0 0 0 030.044_006 03.09.11.00_GENERIC
PRI FF GOOD 0 0 0 030.025_001 03.09.11.00_KDDI
PRI FF GOOD 0 0 0 030.031_004 03.09.11.00_SOFTBANK
PRI FF GOOD 0 0 0 030.016_001 03.04.03.00_TELSTRA
PRI FF GOOD 0 0 0 030.052_000 03.10.07.00_TMO
PRI FF GOOD 0 0 0 030.046_003 03.09.11.00_VERIZON
Max PRI images: 50
OK
CellularGateway#
CellularGateway# cellular 1 modem-at-commands
Value for '' (<string>): AT!IMAGE=0,0,3
cellular_modem_at_cmd: modem-at-response AT!IMAGE=0,0,3
OK
CellularGateway#
CellularGateway# cellular 1 modem-at-commands
Value for '' (<string>): AT!IMAGE?
cellular_modem_at_cmd: modem-at-response AT!IMAGE?
TYPE SLOT STATUS LRU FAILURES UNIQUE_ID BUILD_ID
FW 1 GOOD 2 0 0 ?_? 03.09.11.00_?
FW 2 GOOD 1 0 0 ?_? 03.10.07.00_?
FW 3 EMPTY 0 0 0
AT+COPS?는 현재 선택 모드, 운영자 형식, 운영자 및 무선 액세스 기술을 반환합니다.
경찰: [선택 모드],[operator format],[operator],[radio access technology] 정상
<stat> = 네트워크 상태.
- 0 = 알 수 없음
- 1 = 사용 가능
- 2 = 현재
- 3 = 금지됨
<모드> = 선택 모드.
- 0 = 자동 선택
- 1 = 수동 선택
- 2 = 네트워크에서 등록 취소
<format> = 연산자 형식입니다.
- 0 = 긴 영숫자 - "T-Mobile USA"
- 1 = 짧은 영숫자 - "TMO"
- 2 = MCC + MNC라고도 하는 숫자 - "310260"
<oper> = 연산자 식별자.
나열된 <format>의 연산자 식별자를 반환하는 숫자 문자열입니다.
<AcT> = 무선 액세스 기술.
- 0 = GSM
- 1 = GSM 컴팩트
- 2 = UTRAN
- 3 = GSM(EGPRS 포함)
- 4 = UTRAN(HSDPA 포함)
- 5 = UTRAN(HSUPA 포함)
- 6 = UTRAN(HSDPA 및 HSUPA 포함)
- 7 = E-UTRAN
- 8 = EC-GSM-IoT(A/Gb 모드)
- 9 = E-UTRAN(NB-S1 모드)
- 10 = 5GCN에 연결된 E-UTRA.
- 11 = 5GCN에 연결된 NR
- 12 = 독립형 5G
- 13 = 비독립형 5G
cellular_modem_at_cmd: modem-at-response AT+COPS?
+COPS: 0,0,"MEO MEO",13
OK
AT!VERINFO는 호스트 및 모뎀 세부사항을 표시합니다.
cellular_modem_at_cmd: modem-at-response AT!VERINFO
SBL: BOOT.SBL.4.1-00247
TZ: TZ.FU.5.9-00189
AOP: unknown
UEFI: SWIX55C_03.09.11.00
Mpss: SWIX55C_03.09.11.00 7bf975 jenkins 2022/06/10 20:36:01
OS: Linux version 4.14.206 Fri Jun 10 21:25:48 UTC 2022
Yocto: SWIX55C_03.09.11.00 2022 Fri Jun 10 21:25:48 UTC 2022
RootFS: SWIX55C_03.09.11.00 2022 Fri Jun 10 21:25:48 UTC 2022
Security: secure
RF_CAL_TREE: unknown
AT+CGCONTRDP는 현재 연결의 세부사항을 표시합니다.
+CGCONTRDP: <cid>,<bearer_id>,<APN>,<IP 주소>, <DNS IP 주소> , <보조 DNS IP 주소>
-
cid:연결 식별자.
-
전달자 id: 전달자의 식별자.
-
apn:액세스 포인트 이름
cellular_modem_at_cmd: modem-at-response AT+CGCONTRDP
+CGCONTRDP: 1,5,internet,<IP Address >,,< DNS Server1 >,<DNS Server2>
OK
AT!FLOG?는 펌웨어 작업 기록을 표시합니다. 이 명령은 저전력 문제 또는 충돌을 의심할 때 필요합니다.
cellular_modem_at_cmd: modem-at-response AT!FLOG?
!FLOG:
OK
Class long:
00000,1980/01/06 00:00:40.028,SWIX55C_01.07.2,COMMENT=Log created,LOG_VERSION=1.0
00001,1980/01/06 00:02:46.543,SWIX55C_01.07.2,NV_BACKUP=START,COMMENT=index 1
00001,1980/01/06 00:02:49.981,SWIX55C_01.07.2,NV_BACKUP=COMPLETE,COMMENT=index 1,STATUS=PASS
00001,1980/01/06 00:00:00.000,SWIX55C_,BOOT_HOLD=3,
00001,1980/01/06 00:00:00.000,C3091400,BOOT_HOLD=3,
00002,1980/01/06 00:06:06.390,C3091100,COPY_FROM_BACKUP=/swir/nvdelta/NVUP_GENERIC.010,STATUS=PASS
00002,1980/01/06 00:06:06.390,C3091100,COPY_FROM_BACKUP=/swir/nvdelta/NVUP_ATT.010,STATUS=PASS
00002,1980/01/06 00:06:06.390,C3091100,COPY_FROM_BACKUP=/swir/nvdelta/NVUP_VERIZON.010,STATUS=PASS
00002,1980/01/06 00:06:06.390,C3091100,COPY_FROM_BACKUP=/swir/nvdelta/NVUP_DOCOMO.010,STATUS=PASS
00002,1980/01/06 00:06:06.390,C3091100,COPY_FROM_BACKUP=/swir/nvdelta/NVUP_KDDI.010,STATUS=PASS
00002,1980/01/06 00:06:06.390,C3091100,COPY_FROM_BACKUP=/swir/nvdelta/NVUP_TMO.010,STATUS=PASS
00002,1980/01/06 00:06:06.390,C3091100,COPY_FROM_BACKUP=/swir/nvdelta/NVUP_SOFTBANK.010,STATUS=PASS
00002,1980/01/06 00:06:06.390,C3091100,COPY_FROM_BACKUP=/swir/nvdelta/NVUP_TELSTRA.010,STATUS=PASS
00002,1980/01/06 00:06:06.390,C3091100,COPY_FROM_BACKUP=/nvup/NVUP_1104703_EM9190_Cisco.020,STATUS=PASS
00002,1980/01/06 00:06:06.390,C3091100,COPY_FROM_BACKUP=/swir/nvdelta/NVUP_BELL.010,STATUS=PASS
00002,1980/01/06 00:06:06.390,C3091100,NV_UPDATE=START,FILE=/nvup/NVUP_1104703_EM9190_Cisco.020
00002,198
AT!GCDUMP, 충돌 파일 및 모뎀 충돌 발생 여부 추적
Value for '' (<string>): AT!GCDUMP
cellular_modem_at_cmd: modem-at-response AT!GCDUMP
No crash data available
OK
결론
결국 AT 명령은 모뎀 작동에 필요한 가시성을 제공합니다.
Cisco에서는 이러한 매개변수를 현명하게 사용하고 매개변수를 변경하지 않는 것이 좋습니다. 그러면 네트워크 손실이 발생할 수 있기 때문입니다.