跳至內容

嵌入式系統/複雜系統與微處理器

維基教科書,自由的教學讀本

什麼是嵌入式計算系統呢?寬泛地定義下,嵌入式計算系統是任何包含可編程計算機(但計算機本身不是用作主要目的的)的設備。PC或者IBM大型機不能夠稱為嵌入式計算系統,儘管PC等通用計算機經常被用來搭建嵌入式計算系統。PC或者大型機的主要目的就是計算機本身,而當PC被嵌入到數控車床等設備當中時,計算機就不再是根本目的。而一個傳真機或者打印機,甚至簡單的數顯式手錶,都是嵌入式計算系統——它們包含簡單的微處理器,但計算機本身不是主要目的,它們的主要目的是發送接收傳真、打印文件、顯示時間。

這就意味着,嵌入式計算系統設計是一項非常實用的產品設計技能。汽車,手機,甚至家用電器都廣泛使用微處理器。在各種領域的設計師,必須能夠識別微處理器可以應用到哪裡,設計具有輸入輸出設備的硬件平台以支持需要完成的任務,設計執行特定任務的程序軟件。計算機工程學(Computer engineering),就像機械設計(Mechanical design)或者熱力學(Thermodynamics),是一個可以應用在很多不同領域的基本原則。然而,嵌入式計算系統並不是獨立存在的。在嵌入式系統設計中,很多遇到的挑戰(Challenges encountered)並不是計算機工程學問題,而是機械設計問題或者模擬電路問題。在這本書中,我們首先對嵌入式計算機本身感興趣,所以我們將集中精力在最終產品中完成指定功能的硬件和軟件上。

嵌入式計算機Embedding Computers

[編輯]

在計算機發展的早期,計算機就被嵌入到各種應用設備(Application)中。其中一個例子就是「旋風」(The Whirlwind),一台由MIT設計的可以支持實時操作(Real-time Operation)的計算機。它最初被設想為一個控制模擬飛行器的裝置。儘管它體型巨大,包含了超過4000枚真空管(Vacuum Tube)。

微處理器是一個單片CPU(Single-chip CPU)。超大規模集成電路(Very Large Scale Integration,VLSI)在二十世紀七十年代誕生,使得我們能夠將一個CPU的成千上萬的元件集成在一塊小小的芯片上。但早期的微處理器都比較簡單。第一個微處理器是Intel 4004,它是為計算器設計的。這種計算機並不是普遍意義的計算機——它僅僅提供了基本的算數功能。

當時嵌入式系統的應用並不多,然而Intel的Ted Hoff卻意識到:只要編程得當,通用計算機也能夠滿足嵌入式系統的功能要求;單片機(computer-one-a-chip)就能夠不斷被應用到其他產品當中去。這種思路,為Intel帶來了巨大的市場。

儘管集成電路(尤其是超大規模集成電路)的設計是一項非常耗費資金和時間的過程,卻帶來了重大的突破:設計可以重用,你只需改變軟件,而不必重新設計硬件。惠普公司生產的HP-35是第一個手持計算器,小巧而功能卓越。它是1972年產的,因此使用多個芯片實現CPU而非單片。但是,這種計算器依靠編寫程序來實現數學功能,而非設計電路來執行操作,造就了它的成功。(通常,人們會專門設計計算三角函數的數字電路,為了實現積分,又要設計另外功能的電路……一旦設計完成,功能便無法改變)

單片CPU問世不久之後,汽車設計師就開始利用微處理器了。微處理器在汽車中最終要且最複雜的用途是控制發動機:決定火花塞何時點火,控制燃料和空氣的混合等等。在汽車領域,電子設備替代傳統的機械裝置成為了一種趨勢。但推動微處理器控制引擎的是兩個幾乎同時產生的因素:二十世紀七十年代爆發的石油危機導致消費者要花費更多的錢在燃油上;汽車帶來的污染使得法律開始限制汽車發動機的排放量。兩個條件加起來是非常難達到的。為了達到這個目的,而又不降低發動機的性能,汽車生產商意識到:必須使用精細而複雜的算法,而這種算法只能由微處理器實現。

微處理器可分為不同複雜等級,它們通常被以字長(word size)分類。8位微控制器是為低功耗產品設計的,它包含存儲,並且具備I/O端口。常見的8位微控制器Intel的x51系列及Atmel的AVR系列。在中國大陸,它們通常被稱為「單片機」,很形象。16位微控制器經常被應用到更為複雜的產品中,這些產品需要更複雜的計算、更快的速度、以及更多的I/O端口。32位精簡指令集計算機提供更高的計算能力,以支持極其複雜的設備。廣泛使用的32位精簡指令集微處理器有ARM等。中國的龍芯也被應用到嵌入式系統當中,是目前中國自主設計的唯一獲得成功的微處理器,也是世界上唯一的「開放處理器」——公開所有處理器設計。

考慮到有如此多種類的微處理器可以選擇,微處理器如此廣泛地被使用也就不奇怪了。微處理器家庭用途有很多。典型的微波爐擁有至少一個處理器來控制微波工作。一些房屋有高級恆溫系統,使得一天中室內溫度總保持適宜,這需要微處理器來控制。現代數碼相機是一個很重要的例子,它展示了微處理器可以帶來的強大功能:你只需要按下快門,其他的工作由微處理器完成。

數字電視廣泛應用了嵌入式微處理器。特殊的CPU被設計用來執行特殊的重要算法——比如被設計為音頻信號處理的CPU能夠高效地執行特定程序,將數字音頻信息解碼轉換為電壓信號,輸送到音箱設備。採用可編程CPU而非硬件集合出自兩個原因:首先,它使得系統更加容易設計、調試;其次,它使得產品可以升級,同時CPU還可以用於其他功能。

高端的汽車可能有數百個微處理器,甚至現在廉價的汽車也有四十多枚微處理器。一些處理器只完成非常簡單的工作比如檢查安全帶是否系牢。另一些則用於非常重要的任務,比如控制點火和制動。