From The Desk of
Sandeep Patalay
Here are some of the Basic Points of Embedded System
Design:
A perfect design is an enemy of a
good design. Often, designers striving for a perfect design may end-up with no
design at all due to schedule and cost overruns. A simple design may not
provide best solution to a given problem but it would probably have the best
chance of meeting the schedule and cost constraints with acceptable quality. Also,
a simple design is easier to implement, maintain and enhance.
It is
advisable not to introduce additional complexity in the name of future design
hooks. More often than not, these hooks turn out to be a liability than an
asset for the future designers as they might be forced to accept the design
based on these hooks. Thus avoid adding design hooks for the future, as they
will just add additional work that you don't need to do now and will be of
little help to future designers.
"Use
a special purpose computing platform only after you have exhausted all
possibilities of using a general purpose platform. For example, if your
application requires signal processing capabilities, consider if the
performance goals can be met by a general purpose PC platform without using
Digital Signal Processors (DSPs). General purpose processors might support
specialized instructions that might bring them at par with specialized
platforms like DSPs. Low cost software and hardware development tools. Its easy
to find people with skills in using general purpose platforms. General purpose
platforms have much higher market volume so they are often an order of
magnitude cheaper than specialized platforms.
When developing a hardware and
software architecture, prefer designs that will reuse already developed
software and hardware modules. The future reusability of the software and
modules should also be a factor in choosing new architectures. Avoid "lets
start with a clean slate" approach to developing systems. New projects
should build over the results of previous project. This lowers cost by reducing
complexity of the system being developed.
Many
embedded systems use home grown protocols and operating systems. This leads to
additional cost to maintain the associated software. Use of standard protocols
and operating systems lowers cost and improves stability of the product, as
standard products have been subjected to rigorous testing by countless systems.
Proprietary protocols/operating systems often cost a lot more due to need to
train developers.