Sunday, July 6, 2014

Embedded System Development Process

It is a new domain to a typical business analyst who is in the software development industry.It is truly very new thus if you know the little basics of embedded system implementation it is not a huge challenge as it seems to be.

This article will walk you through the embedded system implementation process.

An embedded system design process could be initiated by three sources.

1.The Marketing Team - The main responsibility of the marketing team is to find new potential customers.
2.Technology Evangelists - Technology evangelists within the organization come up with innovative ideas and these ideas are converted into products.
3. Existing Clients - When existing clients want to increase their product portfolio new embedded system design process imitates.

Hardware Requirement Specification

The required capabilities of the product, the required hardware/electrical components, features and the required operating environment or the firmware types are documented by and the outcome  is names as the ‘Hardware Requirement Specification (HRS)’ document.

The Hardware Requirement Specification contains information- scope of the project, high level architecture, selecting the operating systems, selecting the peripheral components and the features within the component peripherals.

Once the HRS document is prepared the hardware requirements are agreed by the project sponsor and the higher management then the below documents gets created by the project manager of the project responsible.

Project plan

Resource Estimate
Statement of Work (SOW)
Non-Disclosure Agreements (NDA)

Component Selection

In this stage electrical components are selected to meet the requirements of the product. Decision criteria for selecting components is,

1. What would be main processing element (Microprocessor vs Micro controller)
If the product performs some simple known set of functions Micro controller would be sufficient (E.g.: Washing machine)However if general purpose functions are required a microprocessor is better suited (E.g.: Mobile phone)

2. How the product is powered (Battery powered or Wall powered).
If the product is battery powered the electrical components should be low power components which preserve the battery.

3. Component Form Factor or physical dimensions.

4. Component features

5. Component cost

It is important at this stage that the business analyst involve in and input the touch and inputs of the general user expectations as it is very much important to keep in mind that at the end of the day these hardware pieces are used by general public.

For example if the system needs to use a camera then it is important to read and study about the legal bindings  towards video capturing of a user without notifications.These concerns needs to get addressed.

More over it is really important to research and find on the availability of the components which you selected as it is always a high risk about the availability of the hardware components.It is always important to stay updated about the technologies, components and concepts.Another example is that in early days having VGA (Video Graphics Array) capability is very much essential though now a days VGA can be easily replaced  using HDMI (High-Definition Multimedia Interface) .So it is really important to have that knowledge when designing and selecting components for a hardware implementation.

Architecture Design

This phase is one of the most important stages in the entire process. The complete architecture design of the product is done during this stage. The outcome of this stage is the ‘Hardware Design Specification (HDS)’ document which contains details information of the entire system architecture. The team spends considerable amount of time in this stage to minimize errors in the design since errors found in latter stages would be costly.

Design Verification


Once the HDS is prepared the next step is to verify the design. All the necessary hardware components are purchased and the design is broken down to smaller units for testing individual component.Once the unit testing is complete, the entire system is assembled and tested to verify the design.

If there are any changes to be done to the architecture design, they are included to the HDS in this stage. Possible caused for design changes would be,

1.Electrical components do not behave in the manner mentioned in the technical documents. (E.g.: Some features are not properly functioning or power consumption is very much higher than mentioned value)
2.Errors in the original Hardware Requirement Specification.

Schematic Capture

Once the design is finalized, the electronic schematic diagram of the design is drawn. This task can be done using various Electronic Design Automation (EDA) tools such as Cadence OrCAD, Altium Designer or gEDA (open source) etc...

This stage is another very important stage in the design process. Each and every hardware component of the design should be added and the respective electrical connections between them should be correctly drawn. The schematic diagram drawn in this stage is used to generate the Printed Circuit Board (PCB) layout which is used to create the actual Printed Circuit Board. Therefore any errors introduced in this stage would be very costly. Therefore the technical team spend a considerable amount of time drawing and verifying the electronic schematic diagram.

PCB Layout

The completed schematic diagram is then converted to the PCB layout. PCB layout is the digital representation of the final PCB-Printed Circuit Board

There are many constrains to be considered when designing the PCB layout. Some of the constrains could be,

1    The PCB dimensions. - This depends on the final product dimensions

2. Where the components are should be placed in the PCB - This again depends on the mechanical design of the final product and other constraints. (E.g.: A compass and a speaker should not be placed very closely since the magnetic field of the speaker affects the reading of the compass)

3. Number of Layers in the PCB. - Even though the components are soldered in the top and bottom layers of the printed circuit board, PCB and constitute of internal layers for interconnections (routing). The number of layers should be used in a particular design depends on the component density, PCB dimension, cost and the capabilities of the PCB manufacture.

4. Routing Considerations. - During the routing of electrical signals, some standards have to be followed.
(E.g.: When routing USB signals, all the signal paths should be of same length)


 PCB Fabrication

A printed circuit board (PCB) is used to mechanically support and electrically connect electronic components using conductive pathways, tracks or signal traces etched from copper sheets laminated onto a non-conductive substrate. PCB fabrication is the process in which these Printed Circuit Boards are manufactured. Fabricated Printed Circuit Boards are also called ‘bare-boards’.

Etching

Printed Circuit Board manufacturer uses laminate material with copper already applied to both sides. The unwanted copper is removed by various methods leaving only the desired copper traces. Some methods used are,

1.  Silk screen printing  - The main commercial method


2.  Photographic methods - Used when fine line widths are required


Printed Circuit Board (PBC) Assembly

This stage is where the electrical components are soldered to the fabricated PCB. High volume production is usually done with SMT pick and place machines and reflow ovens however skilled technicians are able to solder very tiny parts by hand under a microscope.
This process also outsource by the company in concern to a suitable PCB house since infrastructure is not available internally. However the technical team constantly communicates with the PCB house providing assistant.

Board Bring-up

Board bring-up stage is where the technical team ascertains whether the design is satisfactory. This is done in several steps.

1.Visual Inspection. - Inspect the PCBs to ascertain there are no damaged components or PCBs.

2.Electrical Component Verification - Verify the components soldered to the PCB are exact correct components.

3. Apply Power - Verify the voltage levels are at acceptable levels in all the points in the Printed Circuit Board.

4. Program the PCB with preliminary Software - The Printed Circuit Board (PBC) is programmed with preliminary software (E.g.: A simple boot loader) to verify the Microprocessor or the micro controller is booting correctly and the basic components (E.g.: Memory, Permanent storage) are working correctly.

Usually this phase takes a lot of time and effort. When bringing-up a new PCB various electrical issues arrive. It takes a lot of effort to identify these errors and correct them.


However some errors cannot be corrected during this stage. For example if the error is propagated from the schematic capture stage (incorrect electrical connection), another iteration of all the stages from the schematic capture phase has to be performed.


Operating System Porting / Driver Development

In this stage the required operating system or the firmware is developed and programmed as agreed in the Hardware Requirements Specification stage. 

Application Development

When the design process arrives at this stage, the Printed Circuit Board is fully functioning. If there are applications to be developed as agreed in the Hardware Requirement Specification Stage, a technical team is involved in developing those applications.

Testing

Once the application development is complete the product is subjected to extensive testing process. Testing is performed to ascertain,

 1.   Hardware functions to the accepted quality.
 2.  Software functions to the accepted quality.

The testing team performs various tests in the stage. Some examples of the tests performed would be,

1. Load Testing.
2. Heat Dissipation Testing.
3.Electromagnetic Compatibility (EMC) Testing.

Embedded System implementation carries loads of risk unlike software implementation.Unless you identify all the risks at the initial phases of the project the whole implementation process , spent cash and effort can be a waste rather a successful product.It is hard thought very much  interesting and I would say if you are business analyst  to get in to a complete solution implementation you gets the opportunity to learn the inside and out of product implementation.Mostly it is the thinking which will get improved as these products are mostly for large money making organizations and you as a business consultant or business analyst you will need to think of use cases even basing on the location which your customer is hoping to place this product.These use cases addresses many practical scenarios and I would say it is lots of thinking than being a business analyst in the software industry.

So If you get a chance do not hesitate it will change your knowledge level, problem solving or even practical thinking patterns and i would guarantee it will help you to  fasten your career as a business analyst. 


1 comment: