保持簡單就好,傻孩子!

作者 : JB Guiot,EDN

這是一篇EDN的老文章,作者敘述了他第一份工作時的狀況,當他用一個理論正確,但相對複雜的電路解決問題時,他的上司卻輕鬆、簡單地用了一個電阻就一切「大事化小,小事化無」。讓作者深刻的體會到,作為一個開發工程師須時時牢記「KISS原則」,否則會傻傻地做了很多白工…

大學畢業並結束軍校課程後,我加入了一家跨國公司,該公司開發、製造和銷售電腦數值控制(Computer Numerical Control,CNC)工具機。這是一家在三個國家擁有約200名員工的小公司,我所在的分公司責將CNC,以及所有電子和電氣設備整合到工具機中;我們還為客戶設立了維修和技術支援部門。

在對CNC和不同的機器進行了兩個月的培訓之後,我先進入了維修部門,這是發現此類控制所有內部的有趣時刻。CNC僅使用良好的老式電晶體-電晶體邏輯(Transistor-transistor logic,TTL) 74xx系列,其核心為74181 算術邏輯單元(An arithmetic logic unit,ALU),沒有微處理器!程式計數器(program counter)、ALU、中斷控制器、指令解碼器、電傳打字機(TTY)接口、記憶體控制、數值控制振盪器和軸控制器全都是離散單板,放置在19英吋的架上。我可以透過時脈脈衝,跟著一個接著一個的指令時脈脈衝進入到解碼器、AUL…等等,如今,電子工程師很少能有這樣的機會來詳細了解處理器的內部結構。

這個控制的編程對我來說也是一個奇蹟。儘管大多數人在裝配器(assembler,又稱組譯器)方面覺得很棘手,但我很想為這台機器配備一個裝配器、語言是機器程式碼!我能理解程式碼的第N位元開啟了一個AND閘,這使ALU向左移動而不是向右移動,我有時仍會注意現代微控制器的機器程式碼以了解這種模式。

有天,我們收到了一個新的主軸驅動器,可以裝入一系列機器中,在幾天之內,一切工作都相當正常,除了速度和扭矩的電壓表在15V下工作,而驅動器輸出在10V滿量程下工作。我們無法在短時間內更換指示器(indicator),從電子學的角度來說,這很簡單!我們不需要高精準度或穩定性,並且電氣櫃中有±15V電源,因此解決方案顯而易見。我拿了幾片PCB——上面有一個簡單的741運算放大器、四個電阻和兩個電容——我立刻有了一個1.5倍的放大器。我很快地在實驗室檢查的放大器的狀況,它依照我預期的那樣工作著。

當上司來的時候,我正在機台上工作,並接上我新設計的零件。有趣的是。老闆問我在做什麼,並請我解釋細節,當我解釋完畢後,他打開了電壓表的背面,並斷開內部的1.5kΩ電阻,將其替換為1kΩ電阻,然後關閉了指示器。「好了!做好了!」(Voilà)他說,我的上司只用一個電阻就簡單地替換了一個電阻,這比我天真的嘗試使用一個複雜的電路(儘管理論上是正確的)還要聰明!

那天,我了解了開發人員生涯中最重要的一課:時時刻刻都得問自己是否可以找到更簡單的方法。我不曉得是誰最先說出了「使其保持簡單,傻瓜」(keep it simple, stupid,編按:這裡少了and,有揶揄的意味),但是忽略這個建議就是死亡之「吻」(KISS,編按:這裡使用了雙關語,KISS是Keep It Simple and Stupid的縮寫,意思是說保持簡單與愚笨,越清楚明白,越能夠發現錯誤也就越能夠把風險降低,也就是所謂的KISS原則。)!

(參考原文:Keep it simple, stupid, and kiss problems goodbye,by JB Guiot,EDN Taiwan Anthea Chuang編譯)

 

 

 

 

 

 

 

加入LINE@,最新消息一手掌握!

發表評論