Search This Blog

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.

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

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.

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:
  1. Version
  2. Factory Reset
  3. Device Test
  4. Port Setting
  5. Modem Setting
  6. SIM Test
  7. IMS Setting
  8. IM Client ID
Engineering mode (field test mode) could be found under Modem Setting. Modem setting has various options including the Network mode, Engineering Mode, GPRS Attach and many more. In some of the LG Models if you want to get into Engineering mode directly using code *748#96

Code277634#*#

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.

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.

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.

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> showsc
Check 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.

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

Monday, January 31, 2011

Difference between WCDMA(UMTS/HSPA) and GSM,GPRS,EDGE

FeatureWCDMA/HSPAGSM/EDGE
Carrier spacing5 MHz200 kHz
Downlink modulationQPSK, 16QAM, 64QAMGMSK, 8PSK
Network ArchitectureFlat in HSPA (2), 4 in convenstional 4
Packet Scheduling and
 retransmission
BS(HSPA)BSC
Power Control 
Frequency
Upto 1500HzUpto 2Hz
Frequency reuse factor11 to 18
Frequency DiversityMultipath diversity
with rake receiver
Frequency Hopping with Frequency diversity
MIMO2x2None

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.

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.

Throughput in 3GPP WCDMA Release including HSPA, GPRS, EDGE

ReleaseR99R05R06R07R08
Downlink384kbps14mbps14mbps28mbps42mbps
Uplink384kbps384kbps5.7mbps11mbps11mbps
    LTE160/50




Coding
Scheme
ThroughputFamilyRaw data/
Radio Block
Modulation
CS19.05  GMSK
CS213.4  
CS315.6  
CS421.4  
MCS18.8C1x176
MCS211.2B1x224
MCS314.8A1x296
MCS417.6C1x352
MCS522.4B1x4488PSK
MCS629.6A1x592
MCS744.8B2x448
MCS854.4A2x544
MCS959.2A2x592


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

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.

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.

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;
};