在台灣做軟體以前是死路一條,現在是死路一條,以後還是死路一條。如果你還年輕,不妨多接觸一下硬體,嵌入式系統越來越有前途。你可以修資訊系的「計算機概論」、「電子電路」、「組合語言」、「微處理器」等科目,或者閱讀前面這些科目濃縮精華的《Designing Embedded Hardware》(中文版《設計嵌入式硬體第二版》)。

讓讀者瞭解建構電腦硬體的設計過程
這本書從基本開始,教讀者如何設計嵌入式硬體,能讓讀者瞭解建構電腦硬體的設計過程。如同寫得好的軟體,設計良好的硬體也有美妙之處。在嵌入式電腦當中,讀者可以了解機器的各個層次,得知電流在電路中流動的現象,以及軟體執行複雜演算法的情形。事實上,如果不了解硬體就寫不出嵌入式軟體;同樣的,如果不了解軟體也無法設計出硬體。讀者對嵌入式電腦投入的程度,必須超過桌上型電腦才行。

本書第一版發行時,作者刻意不談軟體,理由有兩個。首先,市面上已經有許多書在探討C程式設計、如何以C語言開發嵌入式韌體、移植Linux到嵌入式系統等。其次,組合語言是最基本的編程工具,然而不同的處理器之間,組合語言的差異是如此之大,所以一本書的篇幅,絕不可能完整地涵蓋各個處理器的指令集。然而,第二版有納入若干軟體的議題,作者介紹若干簡單的組合語言技術。儘管不同的架構之間組合語言的差異是如此之大,然而基本的概念卻是一樣的。

納入軟體,軟硬兼施
本書大致分成四個部分。第一部分涵蓋基本觀念以及導讀資料。第二部分介紹組合語言以及Forth。有了這些背景知識後,接著會說明周邊裝置,以及如何為嵌入式系統添加新機能。最後,介紹被廣泛應用在嵌入式系統的處理器,以及把它們整合進系統的設計程序。
第1章會介紹電腦架構的基本概念,並說明嵌入式系統的架構。第2、3章會探索組合語言和Forth等軟體。第4章會為讀者提供若干電子學理論的背景知識,並介紹一些重要的觀念。已經讀過電子學的讀者,可以直接跳到第5章,這一章會介紹如何為嵌入式系統提供所需的電源,以及說明如何保護嵌入式電腦,以避免電氣干擾,和其他會讓它失效的小精靈。第6章會介紹如何生產以及除錯嵌入式電腦系統。

序列介面、網路、感應器、馬達
第7和8章會說明SPI與I2C,這兩種通訊協定讓你得以為微控制器添加各式各樣的小型周邊裝置。第9、10和11章涵蓋了各種序列介面(RS-232C、RS-422、紅外線傳輸以及 USB),嵌入式系統可以透過它們連上主機電腦,或外部的周邊裝置(例如數據機)。

有關網路的部分則會在第12章加以說明,其中讀者將會學到,如何為嵌入式電腦添加價格低廉的工業級網路(CAN)。此外,在這一章裡,讀者也會學到如何為嵌入式系統添加 Ethernet 埠,透過它我們得以連上其他電腦、伺服器、閘道器(Gateway)以及網際網路(Internet)。

第13章要來看的是與真實世界的介面。這一章將會探討,如何把類比訊號轉成數位訊號加以處理,以及相反的,如何把數位訊號還原成類比訊號。讀者將會學到如何在嵌入式系統中使用感應器(Sensor)來量測溫度、光線、壓力、加速度、磁場,以及如何利用嵌入式電腦來控制小型的電子馬達。

第14章開始是本書用來探討微處理器的部分,讀者會在這裡看到本書的第一個嵌入式電腦架構,Microchip PIC。後續的各章,讀者會看到各種的處理器,從極小的獨立式電腦、8位元的微控制器,到32位元、以匯流排為基礎、具有若干計算能力的晶片。由於不可能涵蓋每一種嵌入式處理器(有數百種之多),所以本書只好從中選出具代表性的晶片。儘管如此,你在本書所學到的技巧,將可應用在你所選用的任何一種處理器上。

許多軟體工程師會很害怕硬體,但是有了適當的書,由淺入深地引導學習,我發現「其實硬體比軟體還簡單」,而且居然「更有前途」。只有軟體工程師才會想轉行去賣香雞排,不會有硬體工程師會想轉行去賣香雞排。

Designing Embedded Hardware
John Catsoulis/著
O'Reilly出版
售價:44.95美元
推薦:Amazon四顆半星

《作者簡介》蔡學鏞
清華大學資訊工程碩士,寰震科技技術顧問。曾任華碩集團軟體工程師、元智大學資訊系講師、美商歐萊禮出版社顧問、台灣微軟特約專欄作家。

蔡學鏞曾參與設計清華大學 Java VOD 系統,該系統並獲得第一屆 Java Cup 比賽校園組冠軍。蔡先生著譯有數本 Java 書籍,並在台灣和中國的雜誌開闢技術專欄。

熱門新聞

Advertisement