2019年3月16日 星期六

止於至善——經典數位電路:4 位二進制密碼鎖(進階版)

前文提要
上回講述初階版 4 位二進制密碼鎖電路,密碼核對部分以 2 輸入 XNOR 閘和 4 輸入 AND 閘構成。只要輸入正確密碼,LED 便亮著。因電路設計非常簡單,存在不少漏洞,所以不適合應用於實際生活。如此,文末建議將電路加以完善,並設定以下條件:

設計一個 4 位二進制密碼鎖。預設一組密碼〈P3, P2, P1, P0〉,使用者輸入另一組數值〈U3, U2, U1, U0〉後,按「提交」鍵核對。如兩組數值相符(每個位元對〈Ui, Pi〉的值需相同),綠色    LED 穩定亮著;如不相符,則紅色 LED 亮起後熄滅。系統接受最多連續三次錯誤輸入,之後需按「重置」鍵,以重新接受輸入。(如輸入密碼正確,亦需按「重置」鍵進行下一次核對。)

各位可有想出符合以上條件的電路?事實上,要全以邏輯元件建構電路,當中有一定挑戰性;相反,如轉用編程方法實踐,電路定必大幅簡化,但為熟習邏輯電路設計技術,諸位必須迎難而上、積極思考、夙夜練習。

進階電路剖析
設計電路前,宜先清楚列出電路組成部分:

輸入元件
l   兩組 4 位撥動開關(預設密碼和輸入密碼)
l   「提交」鍵
l   「重置」鍵

輸出元件
l   紅色 LED
l   綠色 LED

詳細執行要求
l   按下「提交」鍵後始進行密碼核對,並出現下列其一情況:
(情況一)之前輸入錯誤次數累計少於 3 次以下,並且現時綠色 LED 未有亮著:
n   如兩組密碼相符,綠色 LED 穩定亮著。
n   如兩組密碼不相符,紅色 LED 短暫亮著,輸入錯誤次數遞增一次。
(情況二)之前輸入錯誤次數累計已達 3 次:
n   不管兩組密碼是否相符,皆沒有燈號提示。
(情況三)之前輸入正確密碼,現時綠色 LED 穩定亮著:
n   必須按下「重置」鍵,始可再次輸入密碼。

l   按下「重置」鍵後,不論先前所輸入的密碼錯誤或正確,所有燈號(如有)將消除,並且將輸入錯誤記錄次數重設為零,準備接受新一次密碼核對。

參考電路
一如慣例,先提供參考電路(可按此下載)。

圖一:4 位二進制密碼鎖(進階版)參考電路


電路操作流程
邏輯電路設計如下棋佈陣,各電路部分環環相扣,比編程更難於有系統地分拆講述,大型邏輯電路設計尤甚。筆者只能嘗試解構當中重點,望諸位見諒。

參考電路的密碼輸入和核對部分,與初階版電路相若,皆使用 2 輸入 XNOR 閘和 AND 閘組成。初階版電路使用 4 輸入 AND 閘,本電路則需要第 5 AND 閘輸入,該輸入直接與「提交」(SUBMIT)鍵相接。由於坊間沒有 5 輸入 AND 閘,是次改用 8 輸入 AND 閘,只要將其中 4 個輸入直接連接,便可當成 5 輸入 AND 閘使用。

未按「提交」鍵時,第 5 AND 閘輸入「L」;按下「提交」鍵後,第 5 AND 閘輸入的位準取決於 NOR 閘(標示名稱:U3B)輸出。只有兩個 NOR 閘輸入為「L」,輸出才會為「H」。進一步觀察電路,兩個輸入皆為「L」的條件為:
1.          現時紅色 LEDR LED)不亮著;
2.          現時沒按下「重置」鍵(RESET)不放;
3.          現時綠色 LEDG LED)不亮著;及
4.          現時密碼輸入錯誤的次數未達 3

符合以上條件並按下「提交」鍵後,第 5 AND 閘輸入的位準為「H」,表示有效的提交。讓我們分開以下兩種情形講述電路的連鎖反應:

(1)   輸人密碼正確
8 輸入 AND 閘將輸出「H」,即 AND 閘(U5C)第 8 腳位為「H」。留意按下「提交」鍵前及連續輸入錯誤次數少於 3 次,令 AND 閘(U5B)第 4 腳已輸出「H」,因接至 AND 閘(U5C)第 9 腳,該輸入端同為「H」,最後令綠色 LED 亮著。AND 閘(U5C)輸出接回第 8 腳,產生閂鎖功能(參閱文章:《簡單?不簡單!:三人搶答系統(進階版)電路探討》),如「重置」鍵不按下,LED 保持長亮。

留意接至「提交」鍵的 NOR 閘(U3B)變成輸出「L」(請各位嘗試推敲原因),即不接受下一次提交密碼,直至按下「重置」鍵。

(2)   輸人密碼錯誤
8 輸入 AND 閘將輸出「L」,令 AND 閘(U5A)第 1 腳位為「H」。留意,按下「提交」鍵一剎(未復位時),亦令 AND 閘第 2 腳位為「H」,最後因輸出「H」而使紅色 LED 亮起。然而紅色 LED 亮起後短時間內會熄滅,亮著所維持的時間取決於接至該 AND 閘第 2 腳位的電容和電阻值。注意,當紅色 LED 仍然亮著時,不接受新一次密碼核對,你知道是什麼原因嗎?

AND 閘(U5A)輸出「H」亦令十進制計數器 IC 4017 加一,即密碼輸入錯誤次數累加一次。如錯誤次數少於上限,仍可繼續接受新一次密碼核對。否則當 4017 Q3 輸出「H」,表示錯誤次數已達上限,最後令 NOR 閘(U3B)輸出「L」,直至按下「重置」鍵,方可再有 3 次機會核對密碼。

電路設計要點
物盡其用
參考電路圖上的邏輯元件可進一步簡化,例如 NOR 閘(U3A)與 NOT 閘(U4A)可直接使用 OR 閘取代,又或兩個相連的 NOT 閘(U4C U4D)可改成一個緩衝(Buffer)閘。但電路設計在大多數情況下,應以精簡為原則,例如 4069 IC 包含 6 NOT 閘,我們不妨物盡其用,使用當中 4 NOT 閘。相較另加一個緩衝 IC,更能節省電路成本和縮減電路尺寸。

二極管的使用
參考電路上有 3 顆二極管 IN4148,相隔電路前後部分,令兩者不互相影響,避免操作錯誤或引致短路。

緩衝閘的作用
邏輯閘輸出端接駁至下一級邏輯閘輸入端的數量是有限制的,我們稱之為扇出數。以 TTL 為例大概扇出 10 左右,所以使用邏輯閘輸出端接駁不同的負載(如指示燈、繼電器或大量邏輯閘輸入閘等),導致輸出產生壓降,令推動下一級邏輯閘輸入端的位準電壓降低,使工作產生錯誤。此時可使用一個或多個緩衝閘負擔部份負載輸出。以本電路為例,若在紅色 LED 前不接駁緩衝閘,LED 不能點亮。

實際操作問題
完成電路焊接後,接上電源嘗試操作,你或許發現電路出現不正常狀況,例如綠色 LED 無故亮起,又或按下「提交」鍵後,LED 全沒反應。出現這個狀況,在於接上電源後,輸入各 IC 的工作電壓慢慢浮升,但因特性差異,未能同步正式工作,故此在初始階段處於不明狀態,可能令某些邏輯元件產生錯誤輸出、計數器初值不是零等。只要在每次開機後,按下「重置」鍵便回復正常操作。追求完美的你或認為這種動作帶來不便,此時我們可修改電路,強制電路在開機後自動重置,徹底解決問題。修改部分較為複雜,在此省略,如有興趣請自行研究。

圖二:設有「開機後自動重置」功能的參考實體電路

最後送上圖二的電路示範影片,以茲參考:

冬天裡的靜電 Static electricity in the winter

冬天天氣乾燥 ,當身體接近金屬物體,例如門鎖、水龍頭等,會產生微細「啪」的聲響,更甚在黑暗的環境中會看見閃光,皮膚亦會感到 輕微刺痛 ,雖然一般不會對身體構成危害,但亦令人感到困擾。這種現象的成因是 身體與衣服相互磨擦而積聚過多電荷(靜電),又因天氣乾燥,身體的電荷不能通過空...