天天看點

《嵌入式 Linux C 語言應用程式設計(修訂版)》——1.4 嵌入式系統硬體平台選型

本節書摘來自異步社群《嵌入式 linux c 語言應用程式設計(修訂版)》一書中的第1章,第1.4節,作者 華清遠見嵌入式教育訓練中心,孫瓊,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

正如前文中所述,嵌入式系統由硬體和軟體兩大部分組成。嵌入式系統的硬體核心部件是各種類型的嵌入式微處理器;嵌入式系統的軟體一般由嵌入式作業系統和應用軟體組成,而嵌入式系統的功能軟體則內建于硬體系統之中,系統的應用軟體與硬體一體化。

是以,在嵌入式系統中,處理器的選擇是最為重要的,通常它将限制作業系統的選擇。本節将着重介紹嵌入式硬體平台以及arm處理器系列的選型原則及方法。

本書在1.2.1節介紹了嵌入式處理器的不同種類以及它們各自的特點,在一個系統中使用什麼樣的嵌入式處理器核心主要取決于應用的領域、使用者的需求、成本、開發的難易程度等因素。讀者可以從以下各個角度來考慮選擇處理器。

1.處理器的性能

一個處理器的性能取決于多個方面的因素,如時鐘頻率、内部寄存器的大小、指令系統等。如果設計者設計的是面向高性能的應用,那麼建議考慮某些新的處理器,其價格極為低廉,如ibm和motorola的powerpc。

2.處理器的功耗

在嵌入式系統的設計中,低功耗設計是許多設計人員所追求的,其原因在于嵌入式系統已被廣泛應用于便攜式和移動性較強的産品中,如手持裝置、電子記事本、pda、手機、gps導航器、智能家電等消費類電子産品。而這些産品并不是一直都有充足的電源供應,往往是靠電池來供電,是以這些産品中的微處理器要求高性能、低功耗。

3.處理器的算法

處理器的算法是嵌入式系統確定系統實作性能目标的一個關鍵因素,某些處理器能夠非常高效地處理某類算法,是以最好選擇能夠與應用最佳比對的處理器。如具有許多控制代碼的有限狀态機應該映射為類似arm處理器的risc器件;編碼、解碼和回波抵消等信号處理應該映射為數字信号處理器或具有信号處理加速器的某種器件。

4.外圍裝置的選擇

在外圍裝置的選擇時主要考慮總線有怎樣的需求、是否有通用串行接口、是否需要usb總線、是否有以太網接口、系統内部是否需要i2c總線、系統内部是否需要spi總線、是否需要音頻d/a連接配接的iis總線、是否有外設接口、系統是否需要a/d或者d/a轉換器等。

5.成本

成本也是一個需要考慮的關鍵問題。作為一個系統的設計者,在對系統進行必要的功能分析,選用适當的硬體來完成所需要的實時處理任務的同時,一定要考慮産品的整體成本,應該制定一個合理的預算。另外,還要綜合考慮處理器的尋址空間,以及仿真調試工具的成本和易用性等。

1.arm處理器核心選型

從前面所介紹的内容可知,arm微處理器包含一系列的核心結構,以适應不同的應用領域,使用者如果希望使用windows ce或标準linux等作業系統以減少軟體開發時間,就需要選擇arm720t以上帶有mmu(memory management unit)功能的arm晶片,arm720t、arm920t、arm922t、arm946t、strong-arm都帶有mmu功能。而 arm7tdmi則沒有mmu,不支援windows ce和标準linux,但目前有clinux等不需要mmu支援的作業系統可運作于arm7tdmi硬體平台之上。

2.系統的工作頻率

系統時鐘決定了arm晶片的處理速度。arm7的處理速度為0.9mips/mhz,常見的arm7晶片系統主時鐘為20mhz~133mhz,arm9的處理速度為1.1mips/mhz,常見的arm9的系統主時鐘為100mhz~233mhz,arm10最高可以達到700mhz。

不同晶片對時鐘的處理不同,有的晶片隻有一個主時鐘頻率,這樣的晶片可能不能同時顧及uart和音頻時鐘準确性,如cirrus logic的ep7312等;有的晶片内部時鐘控制器可以分别為cpu核、usb、uart、dsp、音頻等功能部件提供同頻率的時鐘,如philips公司saa7750等晶片。

3.晶片記憶體儲器的容量

大多數的arm微處理器片記憶體儲器的容量都不太大,需要使用者在設計系統時外擴存儲器,但也有部分晶片具有相對較大的片記憶體儲空間,如atmel的at91f40162就具有高達2mb的片内程式存儲空間,各晶片的片記憶體儲容量如圖1.13所示。

《嵌入式 Linux C 語言應用程式設計(修訂版)》——1.4 嵌入式系統硬體平台選型

4.中斷控制器

arm核心隻提供快速中斷(fiq)和标準中斷(irq)兩個中斷向量。但各個半導體廠家在設計晶片時加入了自己的中斷控制器,以便支援諸如串行口、外部中斷、時鐘斷等硬體中斷。

外部中斷控制是選擇晶片必須考慮的重要因素,合理的外部中斷設計可以很大程度地減少任務排程工作量。

以philips公司的saa7750為例,所有gpio都可以設定成fiq或irq,并且可以選擇升沿、下降沿、高電平、低電平4種中斷方式。這使得紅外線遙控接收、指輪盤和鍵盤等任務都可以作為背景程式運作。

而cirrus logic公司的ep7312晶片,隻有4個外部中斷源,并且每個中斷源都隻能是低電平或者高電平中斷,這樣在用于接收紅外線信号的場合時,就必須用查詢方式,而且會浪費大量cpu時間。

5.iis(integrate interface of sound)接口

iis接口是內建音頻接口。如果設計者頻應用産品,iis總線接口是必需的。

6.nwait信号

nwait信号是外部總線速度控制信号。不是每個arm晶片都提供這個信号引腳,利用這個信号與廉價的gal晶片配合就可以實作與符合pcmcia标準的wlan卡和 bluetooth卡的接口,而不需要外加高成本的pcmcia專用控制晶片。另外,當需要擴充外部dsp協處理器時,此信号也是必需的。

7.rtc(real time clock)

很多arm晶片都提供實時時鐘功能,但方式不同。如cirrus logic公司的ep7312的rtc隻是一個32位計數器,需要通過軟體計算出年月日時分秒;而saa7750和s3c2410等晶片的rtc直接提供年月日時分秒格式。

8.lcd控制器

有些arm晶片内置lcd控制器,有的甚至内置64k彩色tft lcd控制器。在設計pda和手持式顯示記錄裝置時,選用内置lcd控制器的arm晶片如s3c2410較為适宜。

9.uart和irda

幾乎所有的arm晶片都具有1~2個uart接口,可以用于和pc機通信或用angel進行調試。一般的arm晶片通訊資料傳輸率為115 200bit/s,少數專為藍牙技術應用設計的arm晶片的uart通訊資料傳輸率可以達到920kbit/s,如linkup公司的l7205。

10.dsp協處理器及fpga

有些arm晶片内置dsp協處理器及fpga,這些晶片比較适合通信等領域,圖1.14所示為arm處理器常見的應用領域。

《嵌入式 Linux C 語言應用程式設計(修訂版)》——1.4 嵌入式系統硬體平台選型

繼續閱讀