|
Fundamentals
of Design & Engineering - Electronics Hardware & Software
Fundamentals of Hardware
Design and Engineering The
best approach to electronics and photonics design and engineering is that of
a black-box approach. The first thing to do is to define the specifications
for the inputs and outputs (use a truth table, whether the signals are
digital, or analog, or mixed). So long as the correct output signals for
specific input signals are obtained, what is in-between inputs and outputs
does not really matter strictly from an electronics or photonics point of
view.
Ensure
that the integrity of power supply lines and signals are maintained
throughout. You can
significantly reduce EMI/RFI by terminating all high-speed transmission lines
with a load resistor of appropriate value. Once you get the prototype board,
all that you need do is use an oscilloscope and a small variable resistor in
order to determine the appropriate ohmic value for each transmission line, a
matter of one minute no more per transmission line. Additionally, with the
use of ground planes and copper fills between conductors and throughout the
printed circuit board, you can sink EMI/RFI; the whole approach enables
reduction of EMI/RFI to near zero. In order to reduce the balance to an
absolute zero, in most case all that is required is a metal enclosure. Use a
single point connection for all circuits' ground returns, thereby avoiding
unnecessary ground loops. Generally,
circuit impedances near 10 K ohms are the best compromise for an ohmic value
that is neither too low nor to high to significantly load the circuit or
cause unwanted noise pick-up problems. Modify
circuit blocks for lesser parts count and cost only once you are satisfied
with the circuit's reliability. Fundamentals on Software
Design and Engineering An
excellent approach to design and engineering of software is the use of
Borland's C++Builder for GUIs, and Borland's TASM for everything except GUIs.
With this kind of approach, you get professional GUIs where you need them,
and lightning speed where you need it (it is relatively easy to supply pure
logic coding where need be; e.g., high performance engines coded solely with
AND, OR, and NOT operators), be it for an MS-DOS, Windows, QNX, or a UNIX
platform.
In
order not to create data bugs resulting from procedures that write to common
data bases, a reference table of flags for the data bases (one flag per data
base) can be created; so that flags are checked by the active procedures
prior to writing to the data base of interest; a procedure simply rises a flag
at the reference table upon writing to the data base, and lowers it upon
terminating. If the flag of any given database is risen, then procedures
simply do not write to it. Always
provide informative error handlers. Always
provide names that are truly descriptive of the variables and constants that
they represent, and comment your code as if those who will read it would know
nothing about the program. Always
include flowcharts. Here are
a few titles of some excellent reference books on software development: Using
Assembly Language, by Allen L. Wyatt, Pub. QUE Advanced
Assembly Language, by Allen L. Wyatt, Pub. QUE DOS
Programmer's Reference, by Terry Dettmann, Pub. QUE New
C Primer Plus, by The Waite Group, Pub. SAMS Mastering
Turbo Assembler, by Tom Swan. Pub. SAMS Turbo
C++, by Borland, Pub. Borland Borland
C++ 5, by Tom Swan, Pub. SAMS Teach
Yourself C++ in 5 Days, by Borland, Pub. SAMS The
Indispensable PC Hardware Book, by Hans-Peter Messmer, Pub. Addison-Wesley Turbo
Pascal, by Borland, Pub. Borland My favorite author is
Tom Swan. All that you need do is open up one of his books, and there he lays
it all before your mind, the most complex and baffling subjects on
programming, rendered the simplest things in the world to understand. |