Career in Embedded System
Embedded Systems are becoming more and more pervasive, touching virtually
all aspects of daily life. From mobile phones to automobiles, industrial
equipment, to high end medical devices, home appliances etc. Embedded software
today sits at the intersection of all the technologies. The growth of different
industry sectors like automotive, telecommunications, aerospace, energy,
industrial units, biomedical equipment, consumer goods is highly contributed by
the development in the field of Embedded Systems.According to a survey by Frost and Sullivan, an analyst firm, the embedded systems opportunity is expected to touch $360 billion ( in terms of the devices) and $36 billion in terms of the semiconductors by 2015. Another survey by NASSCOM and McKinsey predicts that the jobs in embedded space will increase ten-fold from the current 60,000 professionals to over 6 lakh people by 2015. Companies like TCS, Wipro, L&T, TATA Elexsi, Infosys, Zensar, Tech Mahindra, Patni, VOLVO, NIIT Tech, KPIT Cummins, Airbus etc. are investing heavily in their embedded systems operations in India. With that expectation, in the near future embedded computing will overtake traditional computing and that there may be more engineers working on embedded systems and related services , then on traditional IT. Experts say what IT was in 90's is where embedded systems stands now and is ready to explode. The future is bright for India with it being pegged to be the next embedded systems hub in the world.
A recent study by NASSCOM talks about the Indian Embedded Ecosystem. This ecosystem consists of all the stakeholders in embedded domain namely, the education institutions, end user industries and entrepreneurial organizations. NASSCOM suggests that there is a need to nurture this ecosystem that would catalyze innovation in the Indian embedded industry.
Which Companies Work in Embedded Systems
Segments
|
Example
Companies
|
All
consumer electronics companies
|
Samsung,
LG, Philips, GE, Apple, Sony, Fujitsu, Panasonic, Nokia
|
Automotive
and Aircraft manufacturers
|
Toyota,
GM, Ford, BMW, Boeing, Airbus
|
Semiconductor
companies offering hardware and software
|
Texas
Instruments, ARM, Microchip, Intel, Freescale, ST Microelectronics, NXP,
Infineon, CISCO
|
Companies
providing embedded software
|
Google
(android), Samsung
|
Electronic
design automation companies providing software tools
|
Synopsys,
Cadence, Mentor Graphics
|
Defense
companies
|
ISRO,
DRDO, HAL, BEL
|
Indian
companies
|
Wipro,
HCL, TCS, Tejas Networks
|
Other
embedded application development companies
|
Sourcebits
|
What are the Components
of Embedded Systems
Embedded system design has the following components.
Architecture
A typical embedded system is designed around embedded processors. These processors could be 8 bit microcontrollers or 16 and 32 bit embedded processors. Prominent 8 bit microcontroller manufactures are Microchip, Atmel, SiliconLabs etc.and prominent 16 and 32 bit embedded processors companies are ARM, MIPS, Freescale, Infineon, Fujitsu etc. As part of system architecture, many decisions have to be taken. Examples of these decisions are what and how many processors to be used, how to interact with the user interface, how to perform communication among various components and so on. Since these systems could be complex such as the one for a mobile phone, designers have to rely on extensive simulation and analysis to ensure correctness of the system before it comes down to board level design. Typical job functions at this level are creating the simulation platform, creating meaningful testcases, automating tests and regressions, analysis, performance and power benchmarking, visualizing benchmark results etc.
Board level design and testing
Once the architecture is decided, it must be implemented in a board. This involves designing printed circuit boards, mounting physical components such as processors, memories and peripherals on the board followed by the testing of the board for correctness.
Software development
Depending on whether the system is doing single task or multiple tasks, an operating system (OS) may or may not be required. For example, in a washing machine controller, no OS is required as it is doing just one task driven by some 8 bit microcontroller. On the other hand, in a mobile phone, multiple services around voice, data and other applications are provided. Hence an embedded operating system such as Android, Symbian etc. are required. Typically writing or customizing OS is done by a small set of experienced developers.
Since the system will be interacting through a set of peripherals such as USB port, HDMI port, touchscreens, very specific programs need to written to send instructions to these devices and read data from it. These programs are called device drivers. As there are a number of variations of peripherals, more developers will be needed to write, enhance and test the drivers. Further, device drivers may have to be integrated in the OS, strong knowledge of the OS is a must.
The bulk of the software are developed in the form of applications or apps in short. These applications can be utilities like calculator, alarm clock, notes or games or client for mails, social networking sites etc. Possibilities in the area of applications are endless and that is where the most of the job opportunities exist.
Various entry level and advanced positions are outlined as follows. These are the most common ones. There are obviously many more opportunities.
What are the Entry Level Positions
Typical entry level positions involve the following job functions.
Embedded system design has the following components.
Architecture
A typical embedded system is designed around embedded processors. These processors could be 8 bit microcontrollers or 16 and 32 bit embedded processors. Prominent 8 bit microcontroller manufactures are Microchip, Atmel, SiliconLabs etc.and prominent 16 and 32 bit embedded processors companies are ARM, MIPS, Freescale, Infineon, Fujitsu etc. As part of system architecture, many decisions have to be taken. Examples of these decisions are what and how many processors to be used, how to interact with the user interface, how to perform communication among various components and so on. Since these systems could be complex such as the one for a mobile phone, designers have to rely on extensive simulation and analysis to ensure correctness of the system before it comes down to board level design. Typical job functions at this level are creating the simulation platform, creating meaningful testcases, automating tests and regressions, analysis, performance and power benchmarking, visualizing benchmark results etc.
Board level design and testing
Once the architecture is decided, it must be implemented in a board. This involves designing printed circuit boards, mounting physical components such as processors, memories and peripherals on the board followed by the testing of the board for correctness.
Software development
Depending on whether the system is doing single task or multiple tasks, an operating system (OS) may or may not be required. For example, in a washing machine controller, no OS is required as it is doing just one task driven by some 8 bit microcontroller. On the other hand, in a mobile phone, multiple services around voice, data and other applications are provided. Hence an embedded operating system such as Android, Symbian etc. are required. Typically writing or customizing OS is done by a small set of experienced developers.
Since the system will be interacting through a set of peripherals such as USB port, HDMI port, touchscreens, very specific programs need to written to send instructions to these devices and read data from it. These programs are called device drivers. As there are a number of variations of peripherals, more developers will be needed to write, enhance and test the drivers. Further, device drivers may have to be integrated in the OS, strong knowledge of the OS is a must.
The bulk of the software are developed in the form of applications or apps in short. These applications can be utilities like calculator, alarm clock, notes or games or client for mails, social networking sites etc. Possibilities in the area of applications are endless and that is where the most of the job opportunities exist.
Various entry level and advanced positions are outlined as follows. These are the most common ones. There are obviously many more opportunities.
What are the Entry Level Positions
Typical entry level positions involve the following job functions.
- Device testing
- Board bring-up
- Simple device drivers and testing
- Embedded application testing
What are the skills
needed for entry level jobs
At the least the following skills are needed for entry level jobs in embedded systems.
At the least the following skills are needed for entry level jobs in embedded systems.
- Bachelors in engineering/technology in
computer science, electronics or similar areas
- Sound knowledge of basics of digital
systems and computer architecture
- C Programming Language
- Experience on working on Linux or other
embedded OS
- Problem solving
What are the advanced
positions
Typical advanced level position may involve one or more of the following.
Typical advanced level position may involve one or more of the following.
- Design and verification of embedded
processor architecture
- Design and verification of system on chip
- Application parallelization
- Implementation and integration of software
stack
What are the skills
needed for advanced jobs
Apart from basic skills, the following may also be needed for advanced level positions.
Apart from basic skills, the following may also be needed for advanced level positions.
- Advanced C
- Low level programming in C and analysis
- C++
- Linux device drivers
- Open source models and flows
- Board level debug and analysis
- Interface/protocol understanding e.g. PCI,
USB etc.
- Strong domain knowledge
No comments:
Post a Comment