1.  ATD or ATDT
Data call을 하고자 할 경우 사용.  보통 ATDT의 command를 사용하나 실제로는 ATD command를 사용해도 무방하다. 
형식 : ATDT <dial string>
예     : ATDT 016
ATDT command를 수신하면 Qmodem은 통상 “CONNECT”로 응답한다.  단 현재 CDMA state가 No Service이거나 system 획득 과정이라면 2분간 system을 획득할 때까지 기다렸다가 “CONNECT”로 응답한다. 만일 2분내로 system을 획득하는데 실패하면 “NO DIALTONE”으로 응답한다. 
또 ESN 또는 전화 번호가 잘못된 경우 “+CERROR: NO SERVICE”로 응답한다.
무선 망에 접속 중 상대에 의해 또는 system에 의해 call이 release되는 경우 “NO CARRIER”가 return된다.
ATDT command에 대한 응답 방식은  첫번째 : Qmodem이 packet service mode에 있을 경우는 ATDT command를 수신하더라도 Qmodem은 실제로 무선 망으로 아무 동작도 하지 않고 PPP packet이 수신될 때까지 기다린다. PPP packet을 수신하면  무선 망으로 origination을 시작한다; 와 두 번째 ATDT command를 수신 후 traffic을 열고 나서 “CONNECT”를 송신한다; 의 두 가지가 있다.  어느 방식을 사용할 지는 Qmodem을 사용 할 application의 요구에 따라 정해진다.
 Qmodem이 packet service mode에 있을 경우는 ATDT command에 의해 voice call을 할 수 없다. 이 경우 voice call은 AT+CDV command를 사용한다.


 

2.  ATH
통신 중 call release를 할 경우 사용. Call release를 위해서는 ATH command와 “+++” inband command string을 함께 사용할 수도 있다. 또 DTR signal을 drop하는 것도 권고된다.


3.  AT+CDV
음성 호의 발신을 위해 사용.
형식 : AT+CDV <dial string>
예     : AT+CDV 027508755
Qmodem 180 series중 음성 호가 지원되는 model의 경우에만 유효하다

 

4.  AT+CHV
AT+CDV command에 의해 음성 호를 발신한 후에 이 음성 호를 해제하고자 할 경우 사용.


5.  AT$QCCAV
호가 착신되는 경우 Qmodem은 ring의 주기마다 RS-232 interface의 RING port를 50 ms 동안 ON한다.  이 RING port signal을 감지한 후 이 command에 의해 음성 호에 응답을 할 수 있다.  착신 호가 음성 호인 경우 “RING VOICE”를 송신하고, 단문 메시지가 도착한 경우 “RING SMS”라고 송신한다. “RING VOICE”는 매 3초마다 송신된다.


 

6.  AT+GMI
제조자의 정보를 제공.  "QMTEL, Incorporated“로 응답한다.  Qmodem의 연결 상태를 확인하기 위해 사용할 수있다.


7.  AT+GMM
Modem의 model 정보를 제공.  “Qmodem-180”으로 응답한다. Qmodem의 연결 상태를 확인하기 위해 사용할 수있다.


8.  AT+GMR
Modem의 S/W version 정보를 제공.  “S/W VER:  <version string>”으로 응답한다. Qmodem의 연결 상태를 확인하기 위해서 또는 modem의  S/W version을 확인하기 위해 사용할 수있다.


9.  AT+GSN
Modem의 ESN 정보를 제공.   정보 보호를 위해 Qmodem은 ESN 정보를 보여주지 않는다.


10.  AT+CAD
현재 service 상태 정보를 제공.  No service 상태이면 0으로 응답,  CDMA service가 가능하면 1로 응답한다.  Dial을 하기 전 Qmodem의 상태 확인을 위해 사용할 수 있다.  AT+CAD?의 형식을 사용.


11.  AT+CSQ
현재 Qmodem의 수신 감도를 표시.  숫자가 작을 수록 감도가 좋으며,  감도를 측정할 수 없을 경우는 255로 응답한다.
AT+CSQ?의 형식을 사용하며, 응답 중 첫번째 숫자가 감도 값이다.


 

12.  AT$QCDMG
Data mode에서 DM mode로 전환할 경우 사용.  MDT 또는 MMSP 기능을 사용하고자 할 때나 PDA application에서 DM interface를 사용하고자 할 경우 DM mode로 전환한다.


13.  AT$QMDT
현재 날짜와 시간 정보를 제공한다.  전원 ON후 약 5 ~ 6초 후 system을 획득하고 난 후부터 가능하다. 그 이전의 정보는 신뢰할 수 없다. 
형식 : AT$QMDT
응답 : $QMDT: 2001-02-08,15:17:14


14.  AT$QMPN
Qmodem의 전화 번호의 확인과 변경을 위해 사용된다.  전화 번호를 변경할 경우는 자동으로 Qmodem이 reset된다.
전화 번호 확인
형식 : AT$QMPN?
응답 : $QMPN: 0167038757
전화 번호 변경
형식 : AT$QMPN=0167038757
응답 : OK


15.  AT$QMTNS
공장에서 생산 시 시험 번호를 사용하여 최종 시험을 하고자 할 경우 사용된다.  시험 번호의 list는 Qmodem S/W가 release되기 전에 통보되어야 하며, 현재 최대 10개까지 저장이 가능하다.  시험 번호의 번지를 선택하면 시험 번호에 해당하는 ESN과 전화 번호로 변경되며 자동으로 reset된다.  모든 시험이 완료된 후는 AT$QMTNR command에 의해 원래의 ESN과 전화 번호로 변경할 수 있다.
설정된 시험 전화 번호 확인
형식 : AT$QMTNS?
응답 : $QMTNS: 1 : 0167038757       :  설정된 시험 번호가 있는 경우 index와 번호 표시
           Error, Test Phone Number was not set!     : 설정된 시험 번호가 없는 경우
설정 가능한 시험 전화 번호 확인
형식 : AT$QMTNS=?
응답 : $QMTNS:
           [1]  0167030001
           [2]  0167030002
           [3]  0167030003
           [4]  0167030004
           [5]  0167030005
           [6]  0167030006
           [7]  0167030007
           [8]  0167030008
           [9]  0167030009
           [10]  0167030010

시험 전화 번호 설정
형식 : AT$QMTNS=<test phone number index>
예     : AT$QMTNS=1
응답 : OK  : 응답 후 자동으로 reset. 


16.  AT$QMTNR
공장에서 생산 시 시험 번호를 사용하여 최종 시험을 하고자 할 경우 사용된다. 모든 시험이 완료된 원래의 ESN과 전화 번호로 변경하기 위해 사용한다.
원래 전화 번호로 설정
형식 : AT$QMTNR
응답 : OK  : 응답 후 자동으로 reset. 


17.  AT$QMDS
Field test등의 목적으로 debug screen data를 제공한다.
형식 : AT$QMDS
응답 : $QMDS:
           RxTxS02180N00016
           S1R-067E-00P+005
           P268C125T160BPR5
           OK
Sleep Mode Control Sleep으로 들어가지 않고 계속 망 정보를 얻고자 할 경우 사용
형식 : AT$QMDS=0 ( or 1) : 1이면 sleep으로 들어 가지 않도록 설정, 0이면 정상적으로 sleep으로 들어가도록 설정.
응답 : OK


 

18.  AT*ESMS
TE2에서 AT Command를 사용하여 SMS 송수신을 하기위해서는   ESMS를 SET해야만 사용 가능하다.
ESMS 설정 값은 NV에 저장되지  않으므로 Power on/off 시 자동으로 Reset(default값 : 0) 되므로 사용하기 전에 반드시 1로
설정을 해야만 사용 가능하다.
ESMS 설정 (해제 )
형식 : AT*ESMS=1          ( 0이면 ESMS기능 해제)
응답 :  *SET*ESMS :  1   (*SET*ESMS : 0)
              OK  
ESMS 설정(해제 ) 확인
형식 : AT*ESMS?         
응답 :  *SET*ESMS :  1   (*SET*ESMS : 0)     =>  현재 설정되어 있는 값을 보여 줌.
              OK  
※  TE2 : 단말과 연결되어 단말의 통신을 제어하는 제어기


19.  AT*MOREQ (ESMS가 Set 일 때만 사용가능)
TE2에서 AT Command를 사용하여 SMS 송신을 하고자 할 때 단말기에 주는 명령어로 <발신 메시지 번호>,
<착신번호(Called number)>, <회신번호(생략가능)>, <TI(Teleservice ID)>, <Data> 를 포함한다.
MO후에는 BS에서 받는 ACK로 발신 성공(실패)여부를 결정한다.
메시지 번호는 0 ~ 254의 값을 가지며, Data는 80byte로 제한된다.
사용 가능한 발신 TI는 4097(호출)과 4098(단문 메시지)의 두 가지이다. TI를 4097로 사용하는 경우에는 <Data> field는 의미가 없으며, 생략 가능하다.


 

20.  AT*READMT (ESMS가 Set 일 때만 사용가능)
이 명령은 단말의 수신버퍼에 저장된 메시지를 읽기 위해 사용되며,  수신버퍼에는 0번부터 최근 수신된 메시지 순서로 저장
되어 있다. 응답에서 회신번호가 없을 경우 회신번호는 나타나지 않는다.
형식 : AT*READMT= <수신 메시지 번호>
응답 : *READMT : <수신 메시지 번호>, <수신 시간>, <회신 번호> ,<Data>
            OK

- 수신된 메시지가 없을 경우
응답 : *READMT : NO Message           
            OK

- <수신 메시지 번호> 가 수신된 메시지의 총 갯수 보다 가 클 경우
응답 : *READMT : NOT Found
            OK


21.  AT*READTI (ESMS가 Set 일 때만 사용가능)
이 명령은 단말의 수신버퍼에 저장된 메시지 중 TI(Teleservice ID) 에 해당되는 메시지만을  읽기 위해 사용된다.
현재 TI는 4097(호출 메시지), 4098(문자 메시지)  두 가지를 지원한다.
 

형식 : AT*READTI= <TI>                     =>  TI : 4097(호출 메시지), 4098(문자 메시지)
응답 : *READTI : <수신 메시지 번호>, <수신 시간>, <회신 번호> <TI>,<Data>
           *READTI : <수신 메시지 번호>, <수신 시간>, <회신 번호> <TI>,<Data>
           *READTI : <수신 메시지 번호>, <수신 시간>, <회신 번호> <TI>,<Data>
            OK


22.  AT*READALLMT (ESMS가 Set 일 때만 사용가능)
이 명령은 단말의 수신버퍼에 저장된 모든 메시지(문자/호출 메시지)를 읽기 위해 사용되며,  수신버퍼에는 0번부터 최근 수신된 메시지 순서로 저장되어 있다.
형식 : AT*READALLMT
응답 :  *READALLMT :  <수신 메시지 번호>, <수신 시간>, <회신 번호> ,<Data>
            *READALLMT : <수신 메시지 번호>, <수신 시간>, <회신 번호> ,<Data>
            *READALLMT : <수신 메시지 번호>, <수신 시간>, <회신 번호> ,<Data>
            *READALLMT : <수신 메시지 번호>, <수신 시간>, <회신 번호> ,<Data>
              .
              .
              .
            OK


23.  AT*DELMT (ESMS가 Set 일 때만 사용가능)
단말에 저장된 메시지를 삭제하는데 사용되며. 사용자가 입력한 번호에 해당하는 메시지가 삭제된다.
형식 : AT*DELMT=<수신메시지번호>
예     : AT*DELMT=1
응답 : *DELMT: 1

             OK


24.  AT*DELALLMT (ESMS가 Set 일 때만 사용가능)
단말에 저장된 모든 메시지를 삭제하는데 사용된다.
형식 : AT*DELALLMT
응답 : *DELALLMT:

             OK


25.  AT*MTACK (ESMS가 Set 일 때만 사용가능)
단말에 새로운 단문 메시지가 도착하면 단말은 ESMS가 Set되어 있으면 즉시 이를 NEWMT명령어를 이용하여 TE2에
 전달한다. TE2는 이에 대한 응답으로 MTACK을 송신한다. 단말은 3초 이내에 TE2로부터 응답이 없으면 수신 메시지를
2회 재전송 한다.
 

26.  AT$QMVSO
이 명령은 voice service option을 선택하기 위해 사용된다.
설정된 voice service option 확인
형식 : AT$QMVSO?
응답 : $QMVSO: EVRC Vocoder        : EVRC로 설정된 경우
           $QMVSO: 13K QCELP Vocoder        : 13K QCELP로 설정된 경우  
Voice service option 설정
형식 : AT$QMVSO=<value>        : 0 = EVRC, 1 = 13K QCELP
응답 : OK


27.  AT$QMRV
이 명령은 벨 음량(Ring Volume)을 조절하기 위해 사용된다.  현재 설정 값을 확인하거나 새 값을 설정하면 해당 음량으로 벨 소리가 울리게 된다.  벨 소리를 멈추려면 AT$QMSDST 명령을 사용한다.
설정된 Ring Volume 확인
형식 : AT$QMRV?
응답 : $QMRV: 3                                 : 현재 설정된 Value ( 0 ~ 4 ) Display
설정 가능한 Value 확인
형식 : AT$QMRV=?
응답 : $QMRV:  (0 ~ 4)                             
Ring Volume 설정
형식 : AT$QMRV =<value>         :  value 0 ? 무음, 1 - 작게,  2 - 보통,  3 - 조금 크게,  4 - 크게
응답 : OK


 

28. AT$QMEV
이 명령은 수신 음량(Ear Volume)을 조절하기 위해 사용된다.
설정된 Ear Volume 확인
형식 : AT$QMEV?
응답 : $QMEV: 3                                 : 현재 설정된 Value ( 1 ~ 4 ) Display
설정 가능한 Value 확인
형식 : AT$QMEV=?
응답 : $QMEV:  (1 ~ 4)                             
Ear Volume 설정
형식 : AT$QMEV =<value>         :  value 1 - 작게,  2 - 보통,  3 - 조금 크게,  4 - 크게
응답 : OK


29.  AT$QMMV
이 명령은 마이크 음량(Mic Volume)을 조정하기 위해 사용된다.
설정된 Mic Volume 확인
형식 : AT$QMMV?
응답 : $QMMV: 3                                 : 현재 설정된 Value ( 1 ~ 8 ) Display
설정 가능한 Value 확인
형식 : AT$QMMV=?
응답 : $QMMV:  (1 ~ 8)                             
Mic Volume 설정
형식 : AT$QMMV =<value>              : Value ( 1 ~ 8 )
응답 : OK


 

30. AT$QMRI
이 명령은 멜로디(Ring Pattern)을 선택하기 위해 사용된다.  현재 설정 값을 확인하거나 새 값을 설정하면 해당 음량으로 벨 소리가 울리게 된다.  벨 소리를 멈추려면 AT$QMSDST 명령을 사용한다.
설정된 Ring Pattern 확인
형식 : AT$QMRI?
응답 : $QMRI: 3                                 : 현재 설정된 Index ( 0 ~ 12 ) Display
설정 가능한 Index 확인
형식 : AT$QMRI=?
응답 : $QMRI:  (0 ~ 12)                             
Ring Pattern Select
형식 : AT$QMRI =<Index>   
응답 : OK

              -  Melody Index  -

 index 0 ~ 3         전화벨 1 ~ 전화벨 4
 index 4    희망의 나라로
 index 5    베토벤 심포니 9번 4악장 테마
 index 6    닐리리야
 index 7    축배의 노래
 index 8    리자로 끝나는 말
 index 9    에델바이스
 index 10    라쿠카라차
 index 11    Lamp
 index 12    Vibrator


31.  AT$QMSI
이 명령은 단문 벨 소리(SMS Ring Pattern)를 선택하기 위해 사용된다. 현재 설정 값을 확인하거나 새 값을 설정하면 해당 음량으로 벨 소리가 울리게 된다.  벨 소리를 멈추려면 AT$QMSDST 명령을 사용한다.
설정된 SMS Ring Pattern확인
형식 : AT$QMSI?
응답 : $QMSI: 3                                 : 현재 설정된 Index ( 0 ~ 7 ) Display
설정 가능한 Index 확인
형식 : AT$QMSI=?
응답 : $QMSI:  (0 ~ 7)                             
SMS Ring Pattern Select
형식 : AT$QMSI =<Index>              :  Index  0 - 단문 벨 1,
응답 : OK                                                               Index  1 ~ Index 5 - 전화벨 2 ~ 6  
           Index 6:  Lamp        Index 7  : Vibrator


32.  AT$QMAA
이 명령은 자동 응답기능(Auto Answer Feature)을 선택하기 위해 사용된다.
설정된 Auto Answer Feature 확인
형식 : AT$QMAA?
응답 : $QMAA: 3                                 : 현재 설정된 Index ( 0 ~ 3 ) Display
설정 가능한 Index 확인
형식 : AT$QMAA=?
응답 : $QMAA:  (0 ~ 3)                                 : Index  0 - Auto Answer Disable
Auto Answer Feature 설정                                   Index  1 - Auto Answer after 1Bell
형식 : AT$QMAA =<Index>                 Index  2 - Auto Answer after 3Bell  
응답 : OK                                                               Index  3 - Auto Answer after 5Bell


 

33.  AT$QMKEY
이 명령은 AT Command로 KEY를 입력할 때 사용. 여러 개의 키 값을 동시에 입력하는 것도 가능.
매직엔 서비스나 핸디 넷 서비스도 키의 조합으로 가능하다.
형식 : AT$QMKEY < KEY >                     :  KEY  -  0 ~ 9,  #,  *, 
      S (통화),  E(종료), M(메시지), R(재발신), T(저장), N(메뉴), C(지움)

예     : AT$QMKEY 1                                  : 1  key Pressed
           AT$QMKEY02114S  : 02-114로 dialing
           AT$QMKEYM7*016T : 매직엔으로 접속 시도
응답 : OK  


34.  AT$QMSDST
이 명령은 재생되고 있는 벨 소리를 멈추기 위해  사용.
형식 : AT$QMSDST
응답 : OK  


35.  EAR-MIC 키 기능 사용 방법
Qmodem을 이용하여 음성 통화를 할 때 ear-mic를 사용하는 경우 필요한 기능이다. 이 기능이 요구되는 model 에만 적용된다.
Ear-mic의 키를 누르는 경우 다음과 같이 동작.
대기 상태에서 누른 경우  : 재다이얼 번호가 없는 경우는 “ERROR”로 응답하고, 재다이얼이 가능한 경우는 “REDIAL<재다이얼 번호>”로 응답한다.
착신 벨이 울리는 동안 누른 경우 : 착신 호에 응답하고 “CONNECT”로 응답한다.
통화 중 누른 경우 : 현재 통화를 종료하고 “NO CARRIER”로 응답한다.


36. 통화 중 대기 기능 사용 방법

무선 사업자가 제공하는 각 종 부가 기능들을 사용하기 위해서는 통화 중에 “통화”키의 사용이 필요하다. 예를 들어 통화 중 대기 기능을 사용하는 경우 통화 중에 제 3자로부터 전화가 걸려 오면 통화 중 대기 음이 들리고, 이 때 제 3자와 통화를 하려면 “통화”키를 누르면 된다. Qmodem에게 “통화”키를 전달하려면 AT$QMKEY명령을 사용하면 된다. 즉 AT$QMKEYS명령을 송신한다.


37. 발신자 표시 기능 사용 방법

사용하고 있는 전화 번호가 발신자 표시 부가 기능에 가입되어 있는 경우 전화가 올 때마다 발신자 번호를 표시하게 된다. 이 기능을 AT 명령어로 제공하기 위해 Qmodem은 다음과 같이 동작한다.
발신자 표시 부가 기능에 가입되어 있고, 전화를 걸은 상대가 발신자 번호 표시 금지를 하지 않는 경우에 아래와 같은 응답을 송신한다.

CNIP:<발신자 번호>

그리고 전화를 걸은 상대가 발신자 번호 표시 금지를 한  경우에는 아래와 같은 응답을 송신한다. (발신 번호 표시 제한)
CNIR:****************

전화를 걸은 상대자의 발신자 번호 표시를 할 수 없는  경우에는 아래와 같은 응답을 송신한다. (발신자 미확인)
CNIP NOT AVAILABLE


 

38. 음성 사서함 확인 후 발신 기능에 대해

음성 사서함에 메시지가 있다고 단문이 수신된 경우 바로 “*88”로 다이얼하면 실제로는 다이얼이 되지 않는다.  “*88”로 다이얼하기 전에 AT$QMKEY<key> 명령의 key를 ‘E’로 하여 송신함으로써 Qmodem을 일단 대기 상태로 만들고 “*88”로 다이얼 하도록 하는 방법이 권고된다. 즉 AT$QMKEYE를 송신하면 된다.


39.  AT$QMMS
이 명령은 모뎀의 실제 화면 표시를 얻기 위해 사용된다.
형식 : AT$QMMS
예     : AT$QMMS
응답 :
 $QMMS:
 1:음량조절
 2:화면표시
 3:소리/경보
 4:전화정보
 5:비밀기능
 6:기타기능    ▼

OK

? 이 명령과 AT$QMKEY 명령을 조합함으로써 모뎀의 모든 화면을 얻을 수 있고, 매직엔 & 핸디넷 서비스도 사용 가능하다.


41.  AT$QMCCS
이 명령은 모뎀의 현재상태를 Check하기 위해 사용된다.
형식 : AT$QMCCS
예     : AT$QMCCS
응답 : $QMCCS : 2 (현재 모뎀상태)
           OK
    - 현재 모뎀상태
      0 : No service
      1 : Init state
      2 : Idle state
      3 : Conversation state
      4 : Access state
      5 : Paging state
      6 : Ringing
      7 : Etc (or error)


42.  AT$QMRESET
이 명령은 모뎀을 RESET 하기 위해 사용된다.
형식 : AT$QMMRESET
예     : AT$QMRESET
응답 : $QMRESET
           OK

이 글은 GNU Make에 대한 내용들을 정리한 것이다.
보통 Qualcomm의 BSP나 혹은 Linux 계열에서는 이 유틸리티를 사용한다.
이 작업의 요는 가능한 아주 초보자들 보다도, 사용하신 분들에게 유리할 macro 부분 위주로 기술되어 있다.

참고 자료
http://www.gnu.org/software/make/manual/make.pdf
O'Reilly의 Make
http://kkamagui.springnote.com/pages/359124

o 프로젝트 관리자의 필수 유틸리티.
- 프로젝트 생성 시, Compile 할 파일들을 정리하고, Dependency들을 확인하여 빌드 하고,임시 파일들을 제거 할수 있는 유틸리티이다.
- 또한 이 make는 재 빌드시에 갱신된 파일들의 시간을 확인하여 (최종 파일보다 나중에 생성된 시간) 수정된 파일이 있을 경우, 그 파일이나 혹은 그 dependency를 확인하여 빌드 시간을 감소시킨다. ( 단 메인의 header file 수정시에는 전체 빌드한다. )
즉 .o (object) 보다 .c가 변경된 시간이 이전이라면 빌드를 하지 않고, 이후라면 빌드한다.
- 역방향 연결방법 (backward-chaining : 목적중심의 관리 방법) : 연결고리를 추적해 나간다.

1. 컴파일 / 실행 / 디버그
o $make project
Project 는 Target / Prerequisites (필요 항목) / Dependents (종속 항목) 이라는 파일들로 Build 된다.
build 하는 데 필요한 Obect와 관련된 .c or .h 파일이 Prerequisities 라고 한다.
o make의 모든 명령들은 Tab 문자로 시작한다. No Space!!!
확인 ) $cat -v - t -e project 
-v 와 -t는 모든 탭들을 ^I로 표시하고, -e는 각행의 마지막에 $기호를 표시.
o 행이 길어질 경우 역슬래시(\)를 추가하여 계속이어 나갈수 있다. 여기서도 역슬래시(\)는 행이 바뀌는 문자 바로 앞에 위치!!
o 비어있는 행은 무시.
o #은 주석문
o 제각기 다른 명령은 세미콜론(;)으로 한 행에 기술 가능.
o 예제 적용
# This is a sample.
 (^I)project : project1.o  project2.o project3.o \
             project4.o $
# This blank is ignored.
 (^I)project_sub : project_sub.o ; project_sub_sub : project_sub_sub .o $
# End of Line
o $make clean (clean 명령 스크립트)
# clean Script
clean:
         /bin/rm -f core *.o
#EoL

2. Macro
o Sample 1
ROOT_DRIVE=D:\
APPS_PATH=%ROOT_DRIVE%\%APPS_DIR%
or
$(ROOT_DRIVE) 
or
${ROOT_DRIVE}

o Sample 2
LIBES = -1x11
objs = abc.o def.o dsd.o
CC=/usr/sample2/cc
23 = "This is the 23rd run"
OPT = 
DEBUG_FLAG= #empty now, but assign -g for debuging
BINDIR=/usr/local/bin

sample2 : ${objs}
               ${CC} -o sample2 ${DEBUG_FLAG} ${objs} ${LIBES}
               mv sample2 ${BINDIR}

$make sample2
==> 
/usr/sample2/cc -o sample2  abc.o def.o dsd.o -1x11
mv sample2 /usr/local/bin

- 등호뒤에 아무것도 없는 것 (OPT, DEBUG_FLAG)의 경우에는 null의 문자열이 할당된다.
- macro는 선정의되지 않으면 Error를 송출한다. (재 정의는 가능하다.)

o 내부적으로 정의된 macro
- ${CC} : C compiler  --> CFLAGS
- ${LD} : Linker          --> LDFLAGS
- $make -p --> 사용 가능한 macro 송출

o 명령행의 macro 정의
- $make pjt "DIR=/usr/proj"

o macro 할당의 우선 순위
1. make 입력시 다음에 따라오는 macro
2. 기술 파일의 macro정의
3. 현재 shell 환경의 변수
4. make 내부의 정의.

cf) $make -e 의 경우
1. make 입력시 다음에 따라오는 macro
2. 현재 shell 환경의 변수
3. 기술 파일의 macro정의
4. make 내부의 정의.

ex)
TESTER = defaults_test
test : srcfile.c
      $(TESTER) srcfile.c
==> 기술 파일에 정의

$ TESTER=new_test
$export TESTER
==> shell 내 환경 변수로 등록

$ make test
defaults_test srcfile.c

$ make -e test
new_test srcfile.c

o macro 문자열 치환
SRCS = def.c redraw.c calc.c
FINAL_OBJS = ${SRCS: .c=.o}
DEBUG_OBJS = ${SRCS: .c=_dbg.o}
...
FINAL_OBJS ==> def.o redraw.o calc.o
DEBUG_OBJS ==> def_dbg.o redraw_dbg.o calc_dbg.o

- 문자열 치환의 또 다른 예제. 공백문자 바로 앞까지만 적용됨)
LETT = xyz xyzacb abcxyz
echo ${LETT:xyz=DEF}
==> DEF xyzabc abcDEF (공백문자 앞까지만 적용 그 이후는 다른 것으로 간주)

o Target용 내부 매크로
$@ 는 현재 Target을 말한다. ==> $$@ , $(@), ${@}로도 사용가능.
$? 는 최신인 Target의 필요항목 만 받는다. ==> 만약 처음 빌드 후 update 된 내용이 없을 경우는 skip 한다. (실제 현 target에 확인을 함으로써 소요시간을 더욱 줄이는 것이 가능하다는 이야기이다 )
ex) libops= inter.o sched.o gen.o
ar r $@ $?

$make libhops
ar r libhops inter.o sched.o gen.o

$cc -c sched.c
$make libhops
ar r libhops sched.o


3. 확장자 규칙.
o $<의 의미
.SUFFIXES:.o .c .s
.c.o:
$(CC) $(CFLAGS) -c $<
.s.o:
$(AS) $(ASFLAGS) -o $<

$<의 의미는 소스(.c or .s)와 .o 파일이 생성시간을 확인하여, .c와 .o의 compile 방법을 제공해 주는 것이다. 즉 이는 확장자 규칙에서만 사용될수 있다는 것을 제외하고는 <? 와 유사하다.

o 명령옵션
$make program CFLAGS=-g
$make program "CFLAGS=-g -DTRACE"
$make program CFLAGS=-l
$make program CFLAGS=-p

cp $< $*.tmp
==> cp main.c main.tmp

$*는 확장자를 제외한 이름을 macro화 할수 있다.

 
   





 

The introduction of HSDPA (High Speed Downlink Packet Access) is expected to enable mobile operators to exploit the full potential of 3G technology by offering mobile broadband services at competitive costs. With a maximum theoretical peak throughput of 14.4 Mbps peak per user, HSDPA can significantly shorten the time required to download rich-media files to an HSDPA handset. As an example, downloading one minute of audio from an MP3 music file is calculated to take 132 seconds with GPRS, 22.4 seconds with UMTS and only 4.1 seconds with HSDPA. The result is an 82% savings in air time. That means it is possible to serve more mobile subscribers using the same infrastructure. Such high capacity performance, however, comes at a price: an exponential increase in the bandwidth required to backhaul cellular traffic from Node Bs to the RNC (radio network controller).


“Backhaul” is a broad term for the provision of connectivity in the service provider’s core network. In the mobile space, backhaul is the means for connecting base stations or cellular sites and the operator’s core network over a variety of transport media. Backhaul is one of the major contributors to the high costs of building out and running a mobile network. Industry consensus indicates that transport equipment accounts for 25% of the costs of private cellular backhaul infrastructure. Transport outlays, moreover, vary between 40-60% of the total cost of leased lines, with backhaul contributing 75% of that sum. This reality obliges cellular providers to reconsider cellular backhaul strategy.

Alternatives to E1/T1 Lines

Today the majority of cellular networks rely on SDH/SONET or ATM transmission services with E1/T1 access lines. Although 3G data traffic is still only a relatively small overall portion of mobile transmission, this situation is expected to change quickly as UMTS operators take their HSDPA networks onstream over the next few years. Assuming that additional E1/T1 lines are readily available from the landline operator, the amount of backhaul traffic is predicted to grow faster than the expected average revenue per user (ARPU).


The challenge is that the explosive increase in backhaul waiting on the doorstep must be controlled to ensure mobile service provider revenue. For purposes of comparison, while one or two E1/T1 lines comprising the transport network would be sufficient to handle the average number of links connected to 2G cellular base stations, the impending introduction of HSDPA may require this number to increased to anywhere from eight to sixteen E1/T1s per 3G cellular site. Without mechanisms in place to control operating and capital expenses (Opex and Capex), the costs may not justify the business case.

Supporting Divergent Technological Demands and Applications

Complicating the equation is the need to support simultaneously the divergent technological demands and applications of existing 2G/2.5G networks and emerging 3G operations. The transition from TDM circuit-switched networks to ATM and, eventually, Gigabit Ethernet/IP/MPLS packet switched networks raises new challenges, particularly regarding the cost and suitability of the access platform to handle and manage efficiently increased bandwidth capacity and the complexities of voice and data in a converged network.


Mobile operators are saddled with a bewildering choice of backhaul technologies and network interfaces as they try to anticipate which access infrastructure will best serve their current and future requirements. The easiest decision would be to build out parallel networks. Using a dedicated transport network for each different mobile generation, however, is not as efficient or potentially cost-effective as integrating diverse traffic streams over a single backhaul link.


Given the drawbacks, does a converged backhaul access network solution exist that is technologically feasible, economically sound and readily available?

Aggregation and Statistical Multiplexing

One familiar method for reducing backhaul costs, traditionally implemented in high- density segments of the core network, such as the Base Station Controller (BSC) or the Mobile Switching Center (MSC), is aggregating several E1/T1s together and utilizing statistical multiplexing to transport them over STM-1 lines. Aggregation is an essential part of existing cellular network transport design because it allows for more efficient use of the transport bandwidth and simplifies network management. Statistical multiplexing, moreover, is quite appropriate for the new types of data services that 3G will introduce.


With the introduction of 3G, the mobile world is evolving into a real multimedia environment. Instead of plain voice services, a wider range of services is available to subscribers. This range embraces delay-sensitive and high quality services like video streaming, which require a reserve backhaul bandwidth (constant rate) to best effort-type services like Internet surfing, back office services, mailing, data downloads, etc., which, by nature, are statistical also in terms of the air interface and backhaul bandwidth usage. These diversified services allow the operator to design its transport network so as to maximize efficiency by employing statistical techniques.


This new era of 3G and HSDPA services presents additional challenges to network designers. Aggregation, therefore, which characterizes existing core networks, now has become an essential building block in the radio access and transport networks. In other words, it is now implemented even at cell sites.

Fixed and Mobile Convergence

While all of this presents a significant challenge for mobile system architects, we haven’t yet mentioned the next great challenge looming just above the horizon, which is posed by the convergence of fixed and mobile networks. This trend is now being pioneered by world-class providers such as British Telecom (BT) and France Telecom (FT), which already have announced the convergence of cellular and other services.


21CN, BT’s “21st century programme,” for example, is intended to become “an advanced communications network for the future” in which “end-users will be able to access voice messages, data or video at any time on any device” and “share personal contact directory across their home phone, PC, mobile and PDA.” Meanwhile, across the English Channel, Orange already has become the single brand for France Telecom's Internet, television and mobile offerings, the first step towards fully convergent operations.


The test here for network architects is that to succeed, convergence between fixed line and mobile services will have to provide the same look and feel. For that reason, services will have to be agnostic both to the access method and the devices that are being connected. From the user’s standpoint, that means that e-mail or Internet surfing must be indifferent to whether they’re being provided over a WiFi home connection or a 3G mobile handset. This requires a unified transport network, which, we probably can assume, will be based on IP technology. In fact, the various standards bodies already are defining this unified IP-based transport network. IMS (IP Multimedia Subsystem) is one such technology enabler for this convergence. On the other side of the equation, 3GPP, the 3rd Generation Partnership Project, has defined an “all-IP” approach in all its standards ever since Rev 5.

Packet-Based Backhaul Networks

The task ahead, therefore, will be to provide an effective solution to connect the installed base of mobile infrastructure – which has both GSM TDM-based and UMTS ATM-based network elements – over IP. This requires the use of pseudo-wire technology, which transports TDM/ATM circuits transparently across Ethernet, IP or MPLS packet switched networks (PSNs). Pseudo wire solutions are particularly suited to cellular backhaul because they are transparent to the underlying traffic. Unlike VoIP, which requires translation of signaling, pseudo wires provide a transport tunnel across the statistical packet network without distortion.


As a rule, mobile networks require a high degree of synchronization to maintain a proper service quality because cellular traffic is extremely sensitive to latency and packet loss. This is achieved by distribution of a common clock to serve as a point of reference among the numerous base stations spanning the network. Packet networks, however, are statistical-based by nature and do not provide inherent timing information whatsoever. Matters are made worse in a PSN as a result of Packet Loss (PL), when packets do not arrive at their destination, and Packet Delay Variation (PDV), when packets arrive with random, unpredictable delay. Sophisticated clock recovery mechanisms are required to reconstruct timing and achieve the desired timing accuracy in the presence of packet delay variation and packet loss. This kind of clock recovery mechanism results in a process that negates the effect of the random PDV and captures the average rate of transmission of the original bit stream.

Deploying HSDPA

By applying pseudo wire technologies, mobile operators will be able to speedily deploy high capacity W-CDMA services and keep HSDPA operating costs to a minimum while increasing their revenues and profitability from media-rich 3G content. As an interim solution, those mobile operators may consider a hybrid solution that will run all their existing and delay-sensitive traffic over the deployed TDM links, while only the aggregation HSDPA traffic will be connected employing pseudo-wire technologies and packet transport networks.


Mobile telephony’s backhaul challenge opens a door for new solutions to be incorporated in the transport network, such as packet-based technologies. Pseudo-wire techniques are proven technology enablers for such a migration.

1. WCDMA란?

Analog Cellular 시스템은 흔히 제1세대 시스템이라 합니다.
현재 사용되고 있는 GSM, PDC, cdmaOne(IS-95), US-TDMA(IS-136) 등은 제2세대 시스템입니다. 이 시스템들은 음성통신을 무선환경에서 전달하는 것을 주 목적으로 개발되었고 현 무선통신 시장을 발전시키는데 독보적인 역할을 했습니다.
제3세대 시스템은 멀티미디어 전송을 목적으로 개발되었고, 고화질 화상 서비스, 빠른 데이터 전송율 등 많은 기존 시스템과의 차별성을 가짐으로서 상상할 수도 없는 높은 부가가치를 창출할 것으로 예상되고 있습니다.
WCDMA는 가장 많은 국가들이 채택하고 있는 제3세대 이동통신 시스템입니다. 우리나라, 유럽, 일본, 미국 그리고 중국 등의 많은 기관들이 3GPP(3'rd Generation Project Group)을 구성하여 기술 스팩을 발전시켜 나가고 있습니다.
제3세대 통신시스템을 개발하고자 하는 의지는 ITU(International Telecommunications Union)의 WARC(World Administrative Radio Conference)의 1992년 회의에서 시작되었으며, ITU에서는 이 제3세대 시스템을 IMT-2000(International Mobile Telephony 2000)이라 일컫고 CDMA와 TDMA를 기반으로 하는 몇 가지 무선 접속 규격(air interface)을 정의하고 있습니다. 애초 IMT-2000 시스템의 목적은 세계적으로 단일 무선 접속 규격을 만드는 것이었으나 여러 가지 정책적, 기술적인 문제들로 인해 어려워진 것이 사실입니다. 하지만 W-CDMA는 유럽의 모든 나라와 우리나라, 일본을 포함하는 많은 나라들에서 제3세대 통신을 위한 무선 접속 기술로서 채택되어 있어 부분적으로나마 ITU의 목적에 가장 부합하는 규격이라고 볼 수 있습니다.

사용자 삽입 이미지


2. IMT-2000의 버젼별 발전 현황

사용자 삽입 이미지


3. WCDMA의 개요와 특성

W-CDMA(Wideband CDMA) System은 높은 음성 품질을 가지고 이동성을 보장하며 PCS에 용응될 수 있다. 음성 코딩을 위해서는 32kbps ADPCM(Adaptive Differential Pulse Code Modulation)을 채택하였고 시속 100km 정도의 속도로 움직이더라도 통화가 가능하다.

(1) Configuration of the W-CDMA System

1) Forward Link
송신기는 음성 부호화기, Convolutional 부호화기, Interleaver, Multiplexer, 무선 주파수 변조기로 구성된다. 수신기는 음성 복호화기, Viterbi 복호화기, Deinterleaver, Rake 수신기, 무선 주파수 복조기로 구성된다.
Forward Link에서 기지국은 기지국내의 모든 단말기로 데이타를 전송하며 따라서 동기화가 필요하다. W-CDMA System에서는 Walsh Orthogonal Codes를 사용하여 간섭이 생기지 않으며 PN Code는 신호에 지연이 생기더라도 Correlation을 감소시켜 준다.

2) Reverse Link
송신기는 음성 부호화기, Convolutional 부호화기, Interleaver, Multiplexer, 무선 주파수 변조기로 구성된다. 수신기는 음성 복호화기, Viterbi 복호화기, Deinterleaver, 간섭 해소 시스템(ICS:Interference Canceler System), 무선 주파수 복조기로 구성된다.
W-CDMA 시스템은 많은 가입자를 수용할 수 있으며 Long PN Code를 사용하여 다른 가입자로 부터의 간섭을 억압한다.


(2) Details of the W-CDMA System

대역 확산의 방식은 DS(Direct Sequence) 방식이 사용되는데 주파수 사용 효율이 높고, 간섭에 강하며 Fading에 강하다는 장점이 있다.
그외 W-CDMA System의 특성은 아래와 같은 것이 있다.

- Power Control
- Path Diversity receiving
- Error Control
- Interference Canceler system(ICS)
- Robust Voice Encoding

W-CDMA 시스템이 Fading에 강한 것은 Power Control, Path Diversity, Error Control에 기인한 것이며 ICS로 인하여 큰 용량을 가지게 된다. 또한 뛰어난 음성 코딩 방식으로 유선에 가까운 높은 음성 품질을 얻을 수 있다.

1) Path Diversity
W-CDMA 시스템에는 Rake Receiver가 사용되는데 다음과 같은 세가지 기능을 가지고 있다.

- 대역 확산 신호의 동기화된 샘플링
- 다중 경로 지연에 따른 Correlation Detection
- 채널 반사에 따른 Weighting Diversity

2) Error Control
Fading 채널에서 대부분의 에러는 수신된 신호가 낮을때 발생하며 에러는 Burst의 형태로 나타난다. 이 Burst Error가 Convolutional Code에 유입되면 송신 신호에서 에러가 발생할 확률이 높아지므로 이러한 현상을 방지하기 위해 Error Pattern을 Randomize하는 Interleaver가 사용된다.

3) ICS(Interference Canceler System)
W-CDMA의 Reverse Link에는 ICS가 사용되며 ICS는 기지국에 설치된다. ICS는 무선 채널 Estimator, Pilot 신호 Canceler, Interference Canceler로 구성된다

Protocol Entities

기능

CC:

Call Control

- Setup and release calls

- Manage multiple call contexts

SS:

Supplementary Service

- Call barring, Call waiting, Call forwarding

SMS:

Short Message Service

- SMS-MT, SMS-MO

- 160 ASCII characters can be delivered to MS even during communication

MM:

Mobility Management

- Perform authentication, ciphering, and location updates

- Read and write SIM data

- Relay CC layer messages

RR:

Radio Resource

- Monitoring neighbour cells and cell re-selection

- Channel request/assignment/release

- Measurement reports from mobile

DL:

Data Link

- Organization of layer3 information into frames

- Acknowledgement of transmission and reception of numbered information frames

SIM:

Subscriber Identity Module

- Provide user identity and/or terminal identity to MM for the authentication

- Provide ciphering key information

- Store the last location area information

 GSM Protocol Entities 기능.

Protocol Entities

Functions

SNDCP:

Sub-Network Dependent

Convergence Protocol

- All functions related to the transfer of Network layer Protocol Data Units(N-PDUs)

- Improve channel efficiency by means of compression techniques

SM:

Session Management

- PDP Context Activation

- PDP Context Deactivation

- PDP Context Modification

GSMS:

GPRS Short Message Service

- SMS-MT, SMS-MO

- 160 ASCII characters can be delivered to MS even during communication

GMM:

GPRS Mobility Management

- GPRS authentication/ciphering

- GPRS attach/detach

- Routing area updating

LLC:

Logical Link Control

- Variable-length information frames

- ACK/NACK data transfer

- Flow and sequence control

GRR:

GPRS Radio Resource

- RLC: Reliable radio-solution dependent link

- MAC: Mapping of LLC frames to GSM physical channel

 GPRS Protocol Entities 기능.

Protocol Entities

Functions

USM:

UMTS Session Management

- PDP Context Activation

- PDP Context Deactivation

- PDP Context Modification

UMM:

UMTS Mobility Management

- UMTS authentication/ciphering

- UMTS attach/detach

- Routing area updating

RABM:

Radio Access

Bearer Management

- Management concepts of RABs that can be activated /released while a PDP context is active.

RRC:

Radio Resource Control

- Perform cell selection, measurement reporting, and handover

- Establish RRC connection for signaling and release it

- Assign radio resources for radio bearers

- Relay CC and MM layer messages

PDCP:

Packet Data

Convergence Protocol

- Header compression and decompression of IP data streams

- Transfer of user data (NAS <-> RLC)

- Multiplexing of different RBs onto the same RLC entity

BMC:

Broadcast/Multicast Control

- Storage of Cell Broadcast Messages

- Scheduling of BMC messages

RLC:

Radio Link Control

- Establish and release a radio link

- Segment and re-assembly CC, MM, RRC layer messages and relay them

- Keep the radio link reliable performing error recovery

MAC:

Medium Access Control

- Multiplex and de-multiplex RLC frames into appropriate channels

- Guarantee the pre-specified data rates of channels

USIM:

UMTS Subscriber Identity

Module

- Provide user identity and/or terminal identity to UMM for the authentication

- Provide ciphering key information

- Store the last location area information

+ Recent posts