WFU

2018年6月8日 星期五

電子(腦)的世界



作者:林明忠


我們先瞭解個人電腦的基本架構。個人電腦簡稱電腦,由中央處理器、記憶體和輸入/輸出裝置三大核心部件組成。中央處理器(Central Processing Unit,簡稱CPU),是電腦的主要裝置之一,功能主要是解釋電腦指令以及處理電腦軟體中的資料。換句話說,我們寫的程式就是在指揮中央處理器做我們要執行的動作。



電腦記憶體可分為記憶體(主記憶體)和外部記憶體(硬碟或記憶卡),其中記憶體是CPU能直接存取的儲存空間,因此記憶體的好壞會直接影響電腦的執行速度。通常我們把要永久儲存的、大量的資料儲存在外部記憶體上(例如Windows 作業系統),而把一些臨時的或少量的資料和程式放在記憶體上(只有目前需要被執行的程式才會放到記憶體內,其餘放在外部記憶體上)。

輸入/輸出裝置(Input/Output ; 簡稱 I/O)最典型的代表是鍵盤(輸入裝置)與LCD顯示器(輸出裝置)。




瞭解個人電腦的基本架構後,初學者該如何著手準備進入這個奇幻世界?首先,我們得先了解進入電子(腦)世界需要那些技術。一般我們將它概略分為硬體、軟體、韌體三大區塊。分述如下:

硬體(Hardware)


是指電腦本身有形的,看得到摸得到的設備。如螢幕、鍵盤、印表機、電子零件….等。又可細分數位、類比、射頻、微波…..等等。以基本電學、電子學、數位邏輯電路、類比電路….等等作為基礎。積體電路(IC)是最具代表性的硬體。


軟體(software)


是一系列按照特定顺序組成的電腦數據和指令,是電腦中的非有形部分。大部分儲存在外部記憶(硬碟或記憶卡)中。例如 Windows 作業系統…等等 。由於中央處理器只認識機器碼(由一串“0”和“1”兩種符號組成的代碼),所以程式寫完後還需要編譯器(compiler)編譯成機器碼後中央處理器才能順利執行(可以把編譯器想像成語言翻譯機)。最代表性的軟體語言為C/C++。


韌體(firmware)


在大的系統中(例如個人電腦、手機…等等),韌體的功能是介於軟體和硬體之間。像軟體一樣,它也是一個可以被電腦所執行的程式,介於硬體與軟體之間。韌體主要是針對特定的硬體做控制或提供應用程式介面(Application Programming Interface ; 簡稱 API)讓上層軟體來呼叫使用。軟體與韌體的差異在於軟體著重應用層面,例如人機介面、遊戲畫面….等等。而韌體著重控制硬體相關動作,也就是韌體必須依照硬體的資料手冊運作。


在小系統中(例如微電腦控制板),除了採用ARM架構(進階精簡指令集機器;Advanced RISC Machine)的微處理機可以執行作業系統之外,大部分只有韌體 + 硬體, 小系統的韌體儲存在EEPROM或PROM裡。開機後直接掌控系統運作。它應用在非常廣泛的電子產品中,從遙控器、電腦中的鍵盤、硬碟,甚至工業機器人中都可見到它的身影。



了解這些區分後若是對硬體有興趣的人就可以去買一片麵包板與電子零件,利用電子學的原理拼湊自己的電子電路。當然也可以用電路模擬軟體(例如Spice ….等等)來模擬電子電路的運作,積體電路(IC)設計基本上就是走這條路。



若是對軟體有興趣的人就可以準備一台個人電腦(PC)。下載安裝自己有興趣的軟體編譯平台(例如Microsoft Visual C++),完成人生第一個程式。軟體程式執行結果通常只能在個人電腦展示。優點是可用資源非常多。



韌體需要硬體與程式互相搭配。優點是成果具有獨立性與多樣化的特性。例如在硬體相同的情況下。不同的程式會產生不同的反應(多樣化)。程式完成後可以寫入硬體內,硬體可以自行運作不需要倚賴個人電腦(獨立性)。缺點是除錯相對複雜,也是初學者製作專題時最常遇到的問題。




我們的專題屬於小型獨立運作的機器,屬於硬體+韌體的範圍。在一系列的專題中,每個專題都會帶給使用者新的硬體觀念與韌體的實作。我們最終的目標是讓初學者能夠看懂電路圖與硬體資料手冊(datasheet)。可以按照自己的需求選擇適用的微電腦與周邊電路,讓這些硬體配合自己的程式,將創意表現出來。