Page 87 - The Art of Designing Embedded Systems
P. 87

74  THE ART OF  DESIGNING EMBEDDED SYSTEMS

                      calculations!  How do they convince themselves that a subtle error isn’t
                      lurking in the model? As with subtle errors hidden in large spreadsheets,
                      the complexity of the calculations removes the element of “feel.” Is that
                      complex  carbon-fiber structure strong enough when  excited at 20 Hz?
                      Only the computer knows for sure.
                           The modern history of engineering is one of increasing abstraction
                      from the problem at hand. The C language insulates us from the tedium of
                      assembly, which itself removes us from machine code. Digital ICs protect
                      us from the very real analog behavior of each of the millions of transistors
                      encapsulated in the chip. When we embed an operating system into a prod-
                      uct, we’re  given a wealth of  services we can use without really under-
                      standing the how and why of their operation.
                           Increasing abstraction is both inevitable and necessary. An example
                      is the move to object-oriented programming, and more importantly, soft-
                      ware reuse, which will-someday-lead   to “software ICs” whose opera-
                      tion is as mysterious as today’s giant LSI devices, yet that elegantly and
                      cheaply solve some problem.
                           But, abstraction comes at a price. In too many cases we’re losing the
                      “feel” of the problem. Engineering has always been about building things,
                      in the most literal of contexts. Building, touching, and experiencing failure
                      are the tactile lessons that bum themselves into the wiring of our brains.
                      When we delve deeply into how and why things work, when we get burned
                      by a hot resistor, when we’ve had a tantalum capacitor installed backwards
                      explode in our face, when a CMOS device fails from excessive undershoot
                      on an input, we develop our own rules of thumb that give us a new under-
                      standing of electronics. Book learning tells us what we need to know. Han-
                      dling components and circuits builds a powerful subconscious knowledge
                      of electronics.
                           A friend who earns his keep as a consultant sometimes has to admit
                      that a proposed solution looks good on paper, but just does not feel right.
                      Somehow we synthesize our experience into an emotional reaction as pow-
                      erful and immediate as any other feeling. I’ve learned to trust that initial
                      impression, and to use that bit of nausea as a warning that something is not
                      quite right. The ground plane on that PCB just doesn’t look heavy enough.
                      The capacitors seem a long way from the chips. That sure seems like a long
                      cable for those fast signals. Gee, there’s a lot of ringing on that node.
                           Practical experience has always been an engineer’s stock-in-trade.
                      We learn from our successes and our failures. This is nothing new. Accord-
                      ing to Cathedral, Forge and Waterwheel (Frances and Joseph Gies, 1994,
                      HarperCollins, New  York),  in  the  Middle  Ages  “Engineers  had  some
                      command of geometry and arithmetic. What they lacked was engineering
   82   83   84   85   86   87   88   89   90   91   92