Friday 19 October 2012

Career In Embedded Sytem


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.
  • 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.
  • 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.
  • 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.
  • 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