2019年2月22日 星期五

經典數位電路:4 位二進制密碼鎖(初階版)

筆者小廣告:喜愛電子製作的同好,本人誠意推介以下電子時鐘套件。套件為筆者與團隊共同開發,屬本地原創,外型與硬件設計以簡約為本,基本功能完善,性價比高。內附詳細焊接及使用說明書,並有YouTube影片作操作示範。要求套件及成品均可,歡迎零售或批發。

*註:套件不附外殼







前文討論如何建構搶答電路,藉此實踐邏輯元件的使用技巧。今回與大家分享密碼鎖電路,這是極為經典的數位電路應用實例,讓我們先從最基本的設計開始。要求如下:

設計一個 4 位二進制密碼鎖。如輸入的數值〈U3, U2, U1, U0〉與預設的一組密碼〈P3, P2, P1, P0〉相符(每個位元對〈Ui, Pi〉的值需相同),LED 亮著。如不相符,LED 則不亮著。

為進一步簡化電路,初階版不設「提交」鍵,故此在電源開啟後,任何時間均在核對兩組數字。

以下為參考電路(可按此下載):

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

電路設計較為簡單,當中使用兩個 4 位撥動開關設定預設密碼和輸入密碼。每個 XNOR 閘比較兩個二進制數字的相同位元,如兩個數值相同,輸出為「H」。因為密碼是 4 位數,所以 4 XNOR 閘輸出需同為「H」,才表示輸入密碼正確,令 LED 亮著。使用一個 4 輸入的 AND 閘,即能控制 LED 亮著或熄滅。

將電路圖化為實體電路後如下:

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

圖三:兩組密碼不符,LED 不會亮著。

圖四:兩組密碼相符,LED 亮著。

如各位有興趣,可進一步觀看示範影片:




初階版密碼鎖電路的設計簡單,亦不具實用性,漏洞頗多。4 位二進制共有 24 = 16 個組合,因不設輸入次數上限,只要最多嘗試輸入 16 次,便能破解密碼。現實生活上,密碼鎖通常具防止暴力攻擊(brute-force attack)的特點。讓我們重新思考一個更合常理的密碼鎖設計要求,如下所述:

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

這個進階版密碼鎖電路,更為貼近實際需要。輸入密碼錯誤次數超出上限,將鎖著系統,需通知系統管理人員解鎖才可再次輸入,增加安全性。功能增加令電路設計難免稍加複雜,系統需正確執行外,更要考慮穩定性。雖然我們可改用編程設計複雜的電路,但為本著熟習應用邏輯元件的初衷,參考電路將主要以數位 IC 構成,且待下回分解。

2019年2月15日 星期五

簡單?不簡單!:三人搶答系統(進階版)電路探討

上回與各位分享初階版三人搶答系統電路,文末提出應如何進一步完善系統要求,並因而設計出一個既簡單又實用的進階版搶答系統及其電子線路。

現就系統制定作出如下規範及條件:
設現在有一個搶答遊戲,我們需為此設計完善的搶答系統。遊戲有三名參賽者,各人面前有一個按鈕,連接著旁邊代表他的燈泡。當遊戲主持人發問問題後,參賽者鬥快按下搶答按鈕。第一位按下按鈕的參賽者,其燈泡長期亮著,即使放開按鈕亦然。此後即使其他參賽者按下自己的按鈕,代表他的燈泡不會亮著。主持人便藉此知道那一位有回答權。直到主持人按下重置按鈕,燈泡熄滅,即可進行第二次搶答。

此系統與初階版有以下兩點不同之處:
1.          按下按鈕後再放開,燈泡可長期亮著。
2.          設有重置按鈕,每次搶答前需按一次按鈕,方能熄滅原來亮著的燈泡,重新搶答。

以下是筆者所設計的電路(可按此下載),供各位參考:

圖一:三人搶答系統(進階版)參考電路

與初階版電路比對,電路基本結構大至相同,只加入重置(如圖二)及閂鎖(如圖三)電路。每個開關按鈕與相應
LED 之間的子電路,使用的零件和接線方法相同,邏輯元件皆包括一個 OR 閘、一個 4 輸入 AND 閘及兩個 NOT 閘。

圖二:重置電路部分

圖三:閂鎖電路部分

使
LED 亮著的條件為 AND 閘的輸出必需為「H」。未有任何 LED 亮著時,所有 AND 閘輸出「L」。兩個 NOT 閘反相輸出「H」,成為 AND 閘的其中兩個輸入。

未按下重置按鈕時(圖二),接至該按鈕的 NOT 閘輸出「H」。留意這個輸出端接至所有 AND 閘的其中一個輸入端,換句話說,現時各 AND 閘已有三個輸入端為「H」。只要按下其中一個搶答按鈕(SW 1SW 2 SW 3),OR 閘即輸出「H」,AND 閘亦因而輸出「H」,令對應的 LED 亮著。在未曾按下重置按鈕時, AND 閘的輸出位準取決於 OR 閘的輸出位準

放開搶答按鈕後,發現 LED 仍然亮著,亦即 AND 閘輸出維持「H」位準,為什麼呢?原來 AND 閘輸出端接至 OR 閘的一個輸入端(見圖三紅線),當 AND 閘輸出「H」,即令 OR 閘亦輸出「H」,而不管搶答按鈕是否再次按下,宛如擁有記憶,這就是類似閂鎖(latch)電路的結構。

當 AND 閘持續輸出「H」其餘兩個 AND 閘便持續輸出「L」阻止其餘兩顆 LED 亮著這是因 NOT 閘將 AND 閘輸出反相輸入至其餘兩個 AND 閘之故只要按下重置按鈕將所有 AND 閘輸出變成「L」即可重新下一次搶答

實踐比空談理論重要,以下是焊接後的電路和操作示範。

圖四:焊接後的電路

圖五:按下開關按鈕 A,對應的 LED 持續亮著。

圖六:按下其他開關按鈕,亦不改變 LED 狀態。

以下影片展示電路實際操作:




結語

這個三人搶答系統進階版線路設計較為繁複,實際設計可進一步簡化,但為著實踐應用不同邏輯元件原則,此作如是故。當然電路設計五花八門,各位所想像的解決方案或許與筆者相異,歡迎留言交流分享。此搶答系統仍有改進之處,現留下思考空間讓大家繼續討論。未來筆者將提出更多有趣的邏輯電路問題,但畢竟電路從設計到驗證需時,請耐心等候。如在電路設計上遇到其他疑問,請私下聯絡,筆者願盡力為大家解答。

2019年2月9日 星期六

三人搶答系統(初階版)參考電路 / 如何使設計更完善?

上回簡介數位電路和重溫基本邏輯元件 ANDOR NOT 閘的基本概念,就一些應用電路設計,通過實踐不單驗証前人提出邏輯閘的觀念,更對邏輯元件的認識及電路焊接技巧有莫大裨益。     

就上回文章結尾所提出的數位電路簡單應用問題,不知各位能否成功按要求設計電路?問題覆述如下:

數位電路設計:三人搶答系統(初階版)
設現在有一個搶答遊戲,我們需為此設計簡單的搶答系統。遊戲有三名參賽者,各人面前有一個按鈕,連接著旁邊代表他的燈泡。當遊戲主持人發問問題後,參賽者鬥快按下搶答按鈕並且一直不放。第一位按下按鈕的參賽者,其燈泡亮起。此後即使其他參賽者按下自己的按鈕,代表他的燈泡不會亮著。主持人便藉此知道那一位有回答權。直到所有參賽者放開按鈕,便可進行第二次搶答。換句話說,在任何時間裡三顆燈泡只能最多有一顆亮著

我們設計邏輯電路前,需確徹了解所有輸入與輸出間的關係、運作流程和執行結果,才能進一步決定電路主要零件和接線方法。把以上問題稍加整理,可列出電路設計的重點:

輸入:
  • 三個開關按鈕(SW 1SW 2 SW 3
輸出:
  • 三顆燈泡(LED 1LED 2 LED 3
執行:
  • 如其中一個開關按鈕(設為   SW 1)先按下並且不放開時,對應的   LED 1 亮著。
  • 如其中一個開關按鈕(設為   SW 1)先按下並且不放開時,即使其餘兩個開關按鈕(SW 2  SW 3)之後按下,對應的   LED 不會亮著。
  • 同一時間只能最多一顆 LED 亮著。
  • 放開開關按鈕後 LED 熄滅。
電路的重點是「同一時間只能有一顆   LED 亮著」,即對最快按下開關按鈕者的 LED 首先亮著 ,並不理會其他開關按鈕的輸入。我們可從此點加以思考應用什麼邏輯元件完成操作。先參看筆者設計的電路(可按此下載):

圖一:三人搶答系統(初階版)參考電路

現簡單論述電路運作流程。在未按下任何開關按鈕時,所有 LED 不會亮著,即所有 AND 閘輸出均為「L」。由於各 AND 閘輸出端皆接至兩個 NOR 閘的輸入端,所有 NOR 閘的輸出端為「H」。又因各 NOR 閘輸出端接至對應 AND 閘的其中一個輸入端,所以接至此 AND 閘的輸入端為「H」。假設現在按下開關按鈕 SW 1 不放, AND 閘的兩個個輸入端皆為「H」,最後因 AND 閘輸出「H」,LED 1 亮著。同時,AND 閘輸出「H」導致其餘兩個 NOR 閘輸出「L」,即使按下 SW 2  SW 3,對應的 AND 閘輸出均為「L」,LED 2 及   LED 3 也不會亮著。

設計電路不能只單靠基本的電學知識,更要消除令電路不能穩定運作的因素。以圖一參考電路為例,雖然看似簡單,但在設計上有三點需要注意:

  1. 避免邏輯閘輸入端出現浮接
各開關按鈕和 AND 閘輸入端之間皆接上電阻 10KΩ,而電阻的另一端則接地。這是為了在不按下開關按鈕時,確保 AND 閘輸入端為「L」。因   AND 閘輸入端內阻極高,如沒有接駁上電阻,則有機會使 AND 閘輸入端因受雜訊感染,令輸入端變成「H」(此為浮接現象),因而產生執行錯誤。

  1. 使用退交連電容增加電路穩定性
在一個複雜的電路中,其有源零件包括 IC 、晶體管等大多是接上同一電源,各   VCC 走線及其回路(地線)有不同數值的電阻或電容存在,極容易做成相互干擾,令線路不穩。良好習慣是在各 IC 的   VCC 和接地之間接上一顆電容,以增加操作的穩定性。如果電路走線簡單,零件不多,亦可以單枚電容,接在總電源正負位之間代替如圖一。

  1. 使用同一系列 IC
本參考電路使用兩顆 IC ,分別是 4 組二輸入端 AND 閘(quad 2-input AND gate4081 4 組二輸入端 NOR 閘(quad 2-input NOR gate4001,兩者都是 CMOS 系列 IC。我們亦可使用 TTL 系列 IC 代替,但是不建議 CMOS TTL 系列 IC 混合使用。因為兩者的性能特點不同(如傳輸延遲時間、電壓位準範圍等),混合使用有可能令電路執行時不穩定。

最後我們看看焊接後的電路和執行效果。

圖二:三人搶答系統(初階版)參考實體電路

圖二是根據圖一所焊接的實體電路。各個〈開關,LED〉對以相同英文字母表示。

圖三

圖四

圖五

圖三至圖五:按下其中一個開關按鈕,對應的 LED 亮著。

圖六:按下兩個開關按鈕(A B),只有最先按下的開關按鈕(A)觸發對應的 LED A亮著。

各位亦可按以下連結觀看示範影片。





下回預告

我們已根據要求設計搶答系統的電路圖和製作實體電路。現在,讓我們試改進電路,達到以下新的要求。

數位電路設計:三人搶答系統(進階版)
設現在有一個搶答遊戲,我們需為此設計簡單的搶答系統。遊戲有三名參賽者,各人面前有一個按鈕,連接著旁邊代表他的燈泡。當遊戲主持人發問問題後,參賽者鬥快按下搶答按鈕。第一位按下按鈕的參賽者,其燈泡長期亮著,按鈕釋放後亦復如是。此後即使其他參賽者按下自己的按鈕,代表他的燈泡不會亮著。主持人便藉此知道那一位有回答權。直到主持人按下重置按鈕,燈泡熄滅,即可進行第二次搶答。

這進階版電路增添一個重置按鈕,更方便主持人操控遊戲過程。大家請先細想一下應如何修改電路,下回與各位分享參考電路。

2019年2月2日 星期六

類比與數位電路概念 / 數位電路設計初體驗:三人搶答系統(初階版)

按此瀏覽



電子電路設計主要分為類比電路(Analog Circuit)和數位電路(Digital Circuit)。類比電路又稱模擬電路,主要處理連續性時間信號。連續信號存在大自然中,例如聲音、光、溫度、色彩等,正弦波就是當中最具代表性的連續信號。類比電路涉及的電子元件包括電晶體,與及一些被動元件如電阻、電容等,一般作放大、濾波等實際應用。例如麥克風將聲音強弱轉換成電壓高低,隨著輸入聲音逐漸增強或變弱,電壓亦隨之有連續性變化。

連續信號的例子:正弦波

數位電路又稱為邏輯電路。它的世界則較為單純,只需處理「0」與「1」這兩種信號,亦即代表某時間段為高電壓或低電壓狀態,非常分明。方波和脈就是非連續性信號的代表(現只是假設方波或脈波當由「0」變「1」或「1」變「0」時速度極高甚或沒有時間延遲)。構成數位電路一般需使用不同種類的邏輯   IC,要說明的是這些邏輯   IC 的內部其實是由許多不同電晶體、場效應管等組成電路,但由於   IC 內部運作及結構較為複雜,我們只需了解訊號的輸入和輸出的邏輯關係,亦即如前所述的「0」和「1」。電腦就是處理數位訊號的電子產品最佳例子,一般以低電壓(0V)代表低位準 =0」,以高電壓(典型為   3V3 或   5V)代表高位準 =1」,作二進制運算。

非連續性信號的例子:方波

設計類比電路相較數位電路更有挑戰性,效果並非可完全控制。以電晶體放大電路為例,輸入電流並非一定依比例增大或減少,當電晶體進入飽和區或靠近截止區時,輸出信號會出現非線性失真,這時需要一定技術解決,增加整體電路的複雜度。數位電路較不受雜訊干擾,然而若需要將處理後的數位信號轉成類比信號輸出,因解析度所限,信號常出現鋸齒狀,結果還原質素稍遜尤以初期產品為甚。但近年數位   IC 發展極快,解析度高、速度高比比皆是,還原質素漸入佳境;數碼相機、音响等就是最佳例証。有見於數位電路逐漸普及應用,筆者亦將向各位舉出一些數位電路的日常應用,希望令初學人士對電路設計產生興趣,打下基礎後繼續向更高層次的技述探究。

為方便討論,筆者先假設各位對電學有基本認識,例如歐姆定律、電阻、電容等元件的簡單運用。此外,亦假設各位對構成數位電路的三個基本邏輯元件:AND、OR 和   NOT 閘的輸入和對應的輸出狀態,有基本概念。現在先重溫這三個邏輯元件的特性。

邏輯元件快速重溫

AND 元件是當兩個輸入   和   同時為高電壓(慣常以「1」或「H」表示)時,輸出   才會為高電壓,否則輸出為低電壓(慣常以「0」或「L」表示)。我們可利用兩個開關串聯,模擬   AND 電路,當兩個開關同時閉合,才有電流通過   LED,使其亮著。

OR 元件是當兩個輸入   和   其中一個為高電壓,輸出   即為高電壓。將兩個開關並聯,模擬   OR 電路,則當其中一個開關閉合,均有電流通過   LED,使其亮著。

NOT 元件將輸入   反相,當輸入為高電壓,輸出   為低電壓。用開關模擬   NOT 電路,將一個開關與   LED 並聯。關關不閉合時,電流通過   LED,使其亮著。但是當開關閉合,大量電流通過開關,LED 不會亮著。

其他邏輯元件如   NAND、NORexclusive OR 可以由以上基本的元件組成,在此省略。


數位電路設計:三人搶答系統(初階版)
設現在有一個搶答遊戲,我們需為此設計簡單的搶答系統。遊戲有三名參賽者,各人面前有一個按鈕,連接著旁邊代表他的燈泡。當遊戲主持人發問問題後,參賽者鬥快按下搶答按鈕並且一直不放。第一位按下按鈕的參賽者,其燈泡亮起。此後即使其他參賽者按下自己的按鈕,代表他的燈泡不會亮著。主持人便藉此知道那一位有回答權。直到所有參賽者放開按鈕,便可進行第二次搶答。換句話說,在任何時間裡三顆燈泡只能最多有一顆亮著

電路設計方法五花百門,最基本要求是能正確執行、設計力求簡潔和節省成本。大家不妨花點時間思考如何製作,下回筆者與大家分享參考電路和進行分析。

冬天裡的靜電 Static electricity in the winter

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