Hardware Reference
In-Depth Information
6
Expansion
What additional facilities are envisaged by the end-user?
What additional facilities could be easily incorporated?
Will
expansion
necessitate
additional
hardware,
additional
software,
or both?
What provision should be made for accommodating additional hardware?
Hardware design
Start by identifying the principal elements of the system including PC, card
frame, power supply, etc. as appropriate. Then itemize the input devices (such
as keypads, switches, and sensors) and output devices (such as motors, actu-
ators, and displays). This process may be aided by developing a diagram of
the system showing the complete hardware configuration and the links which
exist between the elements. This diagram will subsequently be refined and
modified but initially will serve as a definition of the hardware components of the
system.
Having identified the inputs required, a suitable sensor or input device should
be selected for each input (see Chapter 9). It should then be possible to specify
any specialized input signal conditioning required with reference to the man-
ufacturer's specification for the sensor concerned. Input signal conditioning
should then be added to the system diagram mentioned earlier.
Next, a suitable driver or output interface should be selected for each out-
put device present (see Chapter 9). Any additional output signal conditioning
required should also be specified and incorporated in the system diagram.
Software design
Software design should mirror the 'top-down' approach adopted in relation to
the system as a whole. At an early stage, it will be necessary to give some
consideration to the overall structure of the program, and identify each of
the major functional elements of the software and their relationship within
the system as a whole. It is important to consider the constraints of the sys-
tem imposed by time critical processes and hardware limitations (such as
the size of available memory). Furthermore, routines to cope with input and
output may require special techniques (e.g.
specialized assembly language
routines).
The software should be designed so that it is easy to maintain, modify, and
extend. Furthermore, the programmer should use or adapt modules ported from
other programs. These modules will already have been proven and their use
should be instrumental in minimizing development time.
When developing software, it is advisable to employ only 'simple logic'
(i.e. that which has been tried and understood). The temptation to produce
untried and over-complicated code should be avoided. Simple methods will
usually produce code which is easy to maintain and debug, even if the code
produced requires more memory space or executes more slowly (see Chapter
4). If the process is time critical or memory space is at a premium then code can
later be refined and optimized. It is also important to consider all eventualities
Search WWH ::




Custom Search