Technical Notes, White paper and presentation on LTE, GSM, GPRS, EDGE and CDMA network, 3GPP specifications, UTRAN, GERAN and non 3GPP wireless concepts. This blog also covers programming concepts like C and C++, Embedded programming, SNMP Framework, NMS/EMS, Provisioning system, small cell concepts
Wednesday, November 9, 2011
What is IUFlex in UMTS
In the 3GPP Release 5 IUFlex is introduced. It provides an ability to connect RNC's to more than one MSC and/or SGSN. Major benefit would be load sharing between MSC's or SGSN's.
Features supported in 3GPP release 99, release 5, release 6, release 7, Release 8
I often forget what features are added or enhanced in the various 3GPP releases. Here is the list of supported features in the each of the 3GPP release which covers most of part of it.
Release '99
· Bearer services
· 64 kbit/s circuit switch
· 384 kbit/s packet switched
· Location services
· Call services: compatible with Global System for Mobile Communications (GSM), based on Universal Subscriber Identity Module (USIM)
Release 4
· Edge radio
· Multimedia messaging
· MExE (Mobile Execution Environment)
· Improved location services
· IP Multimedia Services (IMS)
Release 5
· IP Multimedia Subsystem (IMS)
· IPv6, IP transport in UTRAN
· Improvements in GERAN, MExE, etc.
· HSDPA
Release 6
· WLAN integration
· Multimedia broadcast and multicast
· Improvements in IMS
· HSUPA
· Fractional DPCH
Release 7
· Enhanced L2
· 64 QAM , MIMO
· Voice over HSPA
· CPC - continuous packet connectivity
· FRLC - Flexible RLC
Release 8
· DC-HSPA
· HSUPA 16QAM
Thursday, October 27, 2011
T3312 Periodic Routing Area Update Timer
Periodic RA update timer or Periodic Routing Area Update Timer is T3312. T3312 is used to send RAU message periodically. Value of this timer is set based on the value received in the ATTACH ACCEPT and/or ROUTING AREA UPDATE ACCEPT message.
Normally, values are sent in the Decihours. 1 Decihours = 6 mins.
Normally, values are sent in the Decihours. 1 Decihours = 6 mins.
Friday, September 16, 2011
How to change or add the SMSC number to apple iPhone
How to get the SMSC set in the iPhone?
In the iPhone keypad and type *#5005*7672# Press Call
How to erase the SMSC set in the iPhone?
In the iPhone keypad, type ##5005*7672# Press Call
How to modify the SMSC set in the iPhone?
In the iPhone keypad, type **5005*7672*+<SMSC># Press Call
In the iPhone keypad and type *#5005*7672# Press Call
How to erase the SMSC set in the iPhone?
In the iPhone keypad, type ##5005*7672# Press Call
How to modify the SMSC set in the iPhone?
In the iPhone keypad, type **5005*7672*+<SMSC># Press Call
Thursday, June 2, 2011
T3212 Periodic Location Update Timer
Periodic Location update timer controls periodicity of the location update procedure triggered by Mobile(UE). The value T3212 shall be set to 0 if Peridic location updating procedure need to be disabled. The value can be set in multiples of 6 (6 mins) and default value is 60. When it is set to 60mins, T3212 is set to 10 because T3212 value is in dechours. 1 Decihour = 6mins
Thursday, April 28, 2011
Rake receiver and Multipath signal propagation
Because of the natural obstacles, signals transmitted may take multiple paths and reach destination at different time. As the chip rate is 3.84Mcps leads to time duration 0.26MicroSecs. If the time difference between multipath signal is 0.26 Micro seconds then receiver can separate those signals and combine them.
Power Control
Open loop power control make rough estimate of path loss by means of a downlink beacon signal. This may not be accurate.
Closed loop power control is performed in the uplink; base station performs frequent estimates of the received Signal-to-Interference Ratio (SIR) and compares it to a target SIR. If the measured SIR is higher than the target SIR, the base station will command the mobile station to lower the power; if it is too low it will command the mobile station to increase its power.
Outer loop power control a procedure where target SIR is changed based on signal quality. Based on the quality of radio link measure in the uplink for each user data channel regulates the target SIR.
Closed loop power control is performed in the uplink; base station performs frequent estimates of the received Signal-to-Interference Ratio (SIR) and compares it to a target SIR. If the measured SIR is higher than the target SIR, the base station will command the mobile station to lower the power; if it is too low it will command the mobile station to increase its power.
Outer loop power control a procedure where target SIR is changed based on signal quality. Based on the quality of radio link measure in the uplink for each user data channel regulates the target SIR.
Monday, April 25, 2011
Engineering mode/Field test mode in various mobiles using codes
LG Mobile:
Most of the LG Models have similar field test menu:
Code: 277634#*#
Model : LG CU720 (LG Shine), LG CU575, LG CU500, LG CU400 (many other models)
Code : 3845#*360#
Model: LG CF360(This model has more options in the field test mode like GPS, DRM test menus, Calibration data)
Samsung Mobile:
Code: *#0011#
Model: SGH-A707, SGH-A717, SGH-A727, SGH-i617 and many other models support this code.
Apple iPhone:
Code : *3001#12345#* then press call
Various field test information could be seen under the menus.
Blackberry Mobile:
Code: Menu->Settings->Options->status
This would show some of field test information on blackberry phones.
Nokia Mobile:
Code: *3001#12345#.
Code changes on some of the Model. Some time field test displays as Net monitor in Nokia mobiles. Most of the models like Nokia 12xx, 51xx (except 5125), 61xx, 62xx, 71xx,3285, 63xx are supported with this code. To get out the engineering mode, you need to either dial 00/01 in some models, in some models in net monitor, you many dial 0000.
You contact me if you need more information or field test mode for any other phone/model, I would try to look and get the information back to you.
Most of the LG Models have similar field test menu:
- Version
- Factory Reset
- Device Test
- Port Setting
- Modem Setting
- SIM Test
- IMS Setting
- IM Client ID
Code: 277634#*#
Model : LG CU720 (LG Shine), LG CU575, LG CU500, LG CU400 (many other models)
Code : 3845#*360#
Model: LG CF360(This model has more options in the field test mode like GPS, DRM test menus, Calibration data)
Samsung Mobile:
Code: *#0011#
Model: SGH-A707, SGH-A717, SGH-A727, SGH-i617 and many other models support this code.
Apple iPhone:
Code : *3001#12345#* then press call
Various field test information could be seen under the menus.
Blackberry Mobile:
Code: Menu->Settings->Options->status
This would show some of field test information on blackberry phones.
Nokia Mobile:
Code: *3001#12345#.
Code changes on some of the Model. Some time field test displays as Net monitor in Nokia mobiles. Most of the models like Nokia 12xx, 51xx (except 5125), 61xx, 62xx, 71xx,3285, 63xx are supported with this code. To get out the engineering mode, you need to either dial 00/01 in some models, in some models in net monitor, you many dial 0000.
You contact me if you need more information or field test mode for any other phone/model, I would try to look and get the information back to you.
What is WPS - Wireless Priority Service
WPS means Wireless Priority Service which is priority calling service provided to the subscribers by the operators. This service is add-on service which shall be subscribed by the subscriber. User must be having WPS feature enabled to make the WPS call.
To make WPS call, dial, *272 + Destination Number
Remember you do not need a special cellphone to make WPS call, only need to subscribed to WPS package from operator. Receiver of the WPS call does not need to subscribe for the WPS feature. *272 enables the priority access to local channels, High probability of completion features (HPC). If the terminating end is mobile user the then priority channels are allocated for terminating call.
To make WPS call, dial, *272 + Destination Number
Remember you do not need a special cellphone to make WPS call, only need to subscribed to WPS package from operator. Receiver of the WPS call does not need to subscribe for the WPS feature. *272 enables the priority access to local channels, High probability of completion features (HPC). If the terminating end is mobile user the then priority channels are allocated for terminating call.
Friday, February 11, 2011
What is Assisted GPS - AGPS
Assisted GPS is used to assist the GPS by providing the additional information like visible GPS satellites, reference time, Doppler which would help in GPS acquisition process. This feature intern help faster GPS acquiring time and reducing the GPS power consumption. Also helps in more accurate GPS measurements with more coverage.
Friday, February 4, 2011
Best programming practice: Constant usage in C/C++
Constant:
Constant means read-only. Answer is not complete but still good. Constant can be declared in various way for various needs.
const int a; //Constant (non-modifiable) integer
int const a; //Constant (non-modifiable) integer
const int *a; //pointer to a Constant (non-modifiable) integer
int * const a; //Constant (non-modifiable) pointer to a integer
int const * a const; //Constant (non-modifiable) pointer to constant integer
You can write a program without using a constant keyword which would work without any problem. But writing a program using constant is good practice and dictates user on how to use them based on its behavior.
Constant means read-only. Answer is not complete but still good. Constant can be declared in various way for various needs.
const int a; //Constant (non-modifiable) integer
int const a; //Constant (non-modifiable) integer
const int *a; //pointer to a Constant (non-modifiable) integer
int * const a; //Constant (non-modifiable) pointer to a integer
int const * a const; //Constant (non-modifiable) pointer to constant integer
You can write a program without using a constant keyword which would work without any problem. But writing a program using constant is good practice and dictates user on how to use them based on its behavior.
Best programming practice (C/C++): When and where to use volatile keyword
Main usage of volatile seen in embedded space. Practical use is seen in
1) Memory mapped peripheral registers 2) Global variables modified by ISR routine 3) Global variables modified by multi-threaded environment. In these scenarios values of these variable can change unexpectedly.
Watch out for the below behaviours and first thing to look for is assessing for the need for volatile variables.
Code stops working when
1) Multithreaded environment but works in single process/threads
2) Enable optimization
3) Enable Interrupts
Volatile qualifier will be used when the variable is declared, which tells the compiler that value of the variable can change without any action taken by code.
volatile int myVolatile;
int volatile myVolatile;
What is the difference between two?
If you do not know the answer let me know.
int * volatile myVolatile;
This means volatile pointer to non volatile variable.
int volatile * volatile myVolatile;
Volatile pointer to Volatile variable.
1) Memory mapped peripheral registers 2) Global variables modified by ISR routine 3) Global variables modified by multi-threaded environment. In these scenarios values of these variable can change unexpectedly.
Watch out for the below behaviours and first thing to look for is assessing for the need for volatile variables.
Code stops working when
1) Multithreaded environment but works in single process/threads
2) Enable optimization
3) Enable Interrupts
Volatile qualifier will be used when the variable is declared, which tells the compiler that value of the variable can change without any action taken by code.
volatile int myVolatile;
int volatile myVolatile;
What is the difference between two?
If you do not know the answer let me know.
int * volatile myVolatile;
This means volatile pointer to non volatile variable.
int volatile * volatile myVolatile;
Volatile pointer to Volatile variable.
How to set automatic recovery after power failure for a SUN Netra box using ALOM port command
Please refer the How to connect to ALOM port section in this website. Once you login to SUN box and able to see the ALOM prompt sc>, you can use setsc command.
sc> showscCheck the value for sc_powerstatememory variable. It shall show as below:
sc_powerstatememory false
To set the automatic recovery after power failure, do as below
sc> setsc sc_powerstatememory true
For any other commands use showsc and below syntax
sc> setsc <variable> <Value>
How to connect to console and ALOM port of SUN server
Pick up a laptop and cable which has RJ-47 in one end and 7-Pin serial port on the other end.
Connect RJ-47 to SERIAL MGT port in the Sun Box and serial port to your laptop. Make sure that you have a application like putty for the serial connection. Serial connection configuration shall be 9600/8n1/none. Establish a serial connection using putty, either console login prompt will appear or ALOM port login prompt appears. Please provide login and password, takes you to ALOM prompt or console window. If you wish to go to ALOM prompt from console then type “#.”(HASH and DOT). If you wish to switch to console prompt from ALOM then type “console”.
Embedded Engineer: integer promotion rule - Programming in C and C++
One thing Embedded engineer should know is integer promotion rule. Declaring the variable in correct makes life lot more easy in debugging and it should a good practice of programming as well.
Below example is for integer promotion rule.
unsigned int uIntVar = 2;
int intVar = -10;
(uIntVar+intVar > 2) ? puts("> 2") : puts("<= 2");
Answer is >2. Expression having the signed and unsigned integers, signed integer becomes a large number and evaluates to positive number in above example.
However it becomes a negative number if
int result = intVar + uIntVar; Or type cast the result to int
Now let me post questions.
1) What is the return value if invoke malloc with size zero?
2) How do you write a 1's compliment for given number?
Answer for the first question is strange where second one tests whether you are a embedded engineer.
Below example is for integer promotion rule.
unsigned int uIntVar = 2;
int intVar = -10;
(uIntVar+intVar > 2) ? puts("> 2") : puts("<= 2");
Answer is >2. Expression having the signed and unsigned integers, signed integer becomes a large number and evaluates to positive number in above example.
However it becomes a negative number if
int result = intVar + uIntVar; Or type cast the result to int
Now let me post questions.
1) What is the return value if invoke malloc with size zero?
2) How do you write a 1's compliment for given number?
Answer for the first question is strange where second one tests whether you are a embedded engineer.
What is Push-to-Talk over Cellular (PoC)
PoC is a one way communication over cellular network or called half duplex communication where voice call is full duplex. PoC called as walkie-talkie over PS domain of cellular networks. Best advantage is airtime which would be 1/4th or even less because voice packets transferred only one direction at a time. Radio resources can be allocated and released when needed.
What is Unlicensed Mobile Access - UMA
UMA provides tunneled IP connection to GSM/GPRS services through WiFi frequencies. But it needs dual mode mobile, to support roaming between wireless networks and unlicensed WiFi networks. UMA Network controller (UNC) is critical network node interworking between tunneled WiFi connection and cellular network.
Picture is referenced from book by Harri Holma and Antti Toskala
Picture is referenced from book by Harri Holma and Antti Toskala
Monday, January 31, 2011
Difference between WCDMA(UMTS/HSPA) and GSM,GPRS,EDGE
Feature | WCDMA/HSPA | GSM/EDGE |
Carrier spacing | 5 MHz | 200 kHz |
Downlink modulation | QPSK, 16QAM, 64QAM | GMSK, 8PSK |
Network Architecture | Flat in HSPA (2), 4 in convenstional | 4 |
Packet Scheduling and retransmission | BS(HSPA) | BSC |
Power Control Frequency | Upto 1500Hz | Upto 2Hz |
Frequency reuse factor | 1 | 1 to 18 |
Frequency Diversity | Multipath diversity with rake receiver | Frequency Hopping with Frequency diversity |
MIMO | 2x2 | None |
Best programming practice(C/C++):How to do you decide whether to have a variable as class member or static class member
Simple but people often do mistakes!
I have seen people writing code, where some of variables does not fit to be class member still used as class members. If a variable not required during the life of class instance then it is not required to have it as class member. Remember static class members are per class not per instance.
I have seen people writing code, where some of variables does not fit to be class member still used as class members. If a variable not required during the life of class instance then it is not required to have it as class member. Remember static class members are per class not per instance.
Best practise in Embedded Programming (C/C++):Interrupt Service Routine - ISR
Thumb rule for ISR is : It should be short and sweet.
1) Will not have any parameters or return values.
2) Should avoid performance hit operations like floating point operations.
3) Should not contain non-entrant functions.
If somebody gives you an example code to identify the problems in the ISR routine, these points should be considered to identify the faults.
1) Will not have any parameters or return values.
2) Should avoid performance hit operations like floating point operations.
3) Should not contain non-entrant functions.
If somebody gives you an example code to identify the problems in the ISR routine, these points should be considered to identify the faults.
Throughput in 3GPP WCDMA Release including HSPA, GPRS, EDGE
Release | R99 | R05 | R06 | R07 | R08 |
Downlink | 384kbps | 14mbps | 14mbps | 28mbps | 42mbps |
Uplink | 384kbps | 384kbps | 5.7mbps | 11mbps | 11mbps |
LTE | 160/50 |
Coding Scheme | Throughput | Family | Raw data/ Radio Block | Modulation |
CS1 | 9.05 | GMSK | ||
CS2 | 13.4 | |||
CS3 | 15.6 | |||
CS4 | 21.4 | |||
MCS1 | 8.8 | C | 1x176 | |
MCS2 | 11.2 | B | 1x224 | |
MCS3 | 14.8 | A | 1x296 | |
MCS4 | 17.6 | C | 1x352 | |
MCS5 | 22.4 | B | 1x448 | 8PSK |
MCS6 | 29.6 | A | 1x592 | |
MCS7 | 44.8 | B | 2x448 | |
MCS8 | 54.4 | A | 2x544 | |
MCS9 | 59.2 | A | 2x592 |
Saturday, January 22, 2011
Cellular Wireless networks
• 1G
– Analog speech communications.
– Analog FDMA.
– Technology: AMPS
• 2G
– Digital modulation of speech communications.
– Advanced security and roaming.
– TDMA and narrowband CDMA.
– Technology: GSM, PDC and IS-95 (cdmaOne)
• 3G
– Global harmonization and roaming.
– Wideband CDMA
– Technology: UMTS, cdma2000 and TD-SCDMA
– Analog speech communications.
– Analog FDMA.
– Technology: AMPS
• 2G
– Digital modulation of speech communications.
– Advanced security and roaming.
– TDMA and narrowband CDMA.
– Technology: GSM, PDC and IS-95 (cdmaOne)
• 3G
– Global harmonization and roaming.
– Wideband CDMA
– Technology: UMTS, cdma2000 and TD-SCDMA
Friday, January 21, 2011
AMR: Discontinuous TX (DTX)
Mobile Battery life will be prolonged or a smaller battery could be used for a given operational duration. From the network point of view, the average required bit rate is reduced, leading to a lower interference level and, hence, increased capacity.
How to acheive DTX in AMR?
- Voice Activity Detector on TX side
- Evaluation of the background acoustic noise on the TX side
- Transmission of comfort noise information to the RX side using SID at regular intervals
- Generation of comfort noise on the RX side during periods when no normal speech frames are received.
How to acheive DTX in AMR?
- Voice Activity Detector on TX side
- Evaluation of the background acoustic noise on the TX side
- Transmission of comfort noise information to the RX side using SID at regular intervals
- Generation of comfort noise on the RX side during periods when no normal speech frames are received.
Tuesday, January 18, 2011
LTE as an all IP architecture,endorsed by many leading vendors
LTE (Long term evolution) is the latest standard for mobile network technology, specifications are available in the 3GPP standard. LTE is also an all IP architecture supported by major vendors like AT&T, T-Mobile, Verizon and more. Best part of the technology is that it also provides the inter-working for non 3GPP systems like 3GPP2 (CDMA)and WiFi, WiMax etc. Non 3GPP system are divided into trusted and non-trusted, based on that architecture will change. It is also called as 4G technology in mobile network industry. 3GPP release 8 and above specification talks about adapting to LTE. LTE started as a technology which support packet data network, later to support voice over the packet data network.
What is more fascinate about LTE?
- All IP Architecture
- Signaling and Data path separated out using MME and S-GW where PS Core and CS core is merged into single core network
- High data rates
- Decreased latency
- Better spectrum efficiency
- Scalable bandwidth
- Support for paired and unpaired spectrum
- Inter-working with 3GPP and non 3GPP systems
Below is reference architecture and inter-working with existing 3GPP systems (Reference 3GPP specifications: 3gpp.org)
Concerns operators shall have could be
- Cost effective evolution of IMS and LTE
- Spectrum efficiency
- Service quality
- Coverage performance
- CAPEX and OPEX
Target would be to address these concerns. However lot depends on the approaches that would be considered by operators for the architecture. Most of them probably consider overlay architecture and gradual transition.
If you have any questions please try to post the same. I would try to answer the same.
What is more fascinate about LTE?
- All IP Architecture
- Signaling and Data path separated out using MME and S-GW where PS Core and CS core is merged into single core network
- High data rates
- Decreased latency
- Better spectrum efficiency
- Scalable bandwidth
- Support for paired and unpaired spectrum
- Inter-working with 3GPP and non 3GPP systems
Below is reference architecture and inter-working with existing 3GPP systems (Reference 3GPP specifications: 3gpp.org)
Concerns operators shall have could be
- Cost effective evolution of IMS and LTE
- Spectrum efficiency
- Service quality
- Coverage performance
- CAPEX and OPEX
Target would be to address these concerns. However lot depends on the approaches that would be considered by operators for the architecture. Most of them probably consider overlay architecture and gradual transition.
If you have any questions please try to post the same. I would try to answer the same.
Monday, January 3, 2011
Best practice for Singleton pattern
Best practice for the singleton class to avoid the mis-usage.
1) Make the constructor as private.
2) Hide the copy constructor
3) Hide the = operator
4) Return the reference of the instance instead of pointer in the instance() method
Below is the example:
class Singleton
{
public:
/*!
* @brief Method to retrieve the object (singleton pattern)
*/
static Singleton & instance();
/*!
* @brief Destructor
*/
virtual ~Singleton();
protected:
private:
/*!
* @brief constructor, which can only be accessed by instance() method
*/
Singleton();
/**
* @brief Hide the copy constructor.
*/
Singleton(const Singleton & p_singleton);
/**
* @brief Hide the operator '='.
*/
Singleton & operator =(const Singleton & p_rhs);
/*!
* @brief singleton, can only be accessed by instance()
*/
static Singleton* c_pInstance;
};
1) Make the constructor as private.
2) Hide the copy constructor
3) Hide the = operator
4) Return the reference of the instance instead of pointer in the instance() method
Below is the example:
class Singleton
{
public:
/*!
* @brief Method to retrieve the object (singleton pattern)
*/
static Singleton & instance();
/*!
* @brief Destructor
*/
virtual ~Singleton();
protected:
private:
/*!
* @brief constructor, which can only be accessed by instance() method
*/
Singleton();
/**
* @brief Hide the copy constructor.
*/
Singleton(const Singleton & p_singleton);
/**
* @brief Hide the operator '='.
*/
Singleton & operator =(const Singleton & p_rhs);
/*!
* @brief singleton, can only be accessed by instance()
*/
static Singleton* c_pInstance;
};
Subscribe to:
Posts (Atom)