嵌入式系統(tǒng)設計的新發(fā)展及其挑戰(zhàn)
關鍵詞:嵌入式系統(tǒng) 設計技術 SoC
1 嵌入式系統(tǒng)設計技術發(fā)展的特點
隨著微電子技術的飛速發(fā)展,CPU已經(jīng)變成低成本器件。在可能的情況下,各種機電設備已經(jīng)或者正在嵌入CPU構成的嵌入式系統(tǒng)。據(jù)Virginia Tech公司報告,嵌入式系統(tǒng)中所使用的CPU數(shù)量已經(jīng)超過通用PC中CPU數(shù)量的30倍。
現(xiàn)在系統(tǒng)研究的重點已從通用系統(tǒng)轉向專用系統(tǒng),以及從一般性能轉向可靠性、可用性、安全性、自主性、可擴展性、功能性、靈活性、成本、體積、功耗及可管理性上。
1.1 32位嵌入式處理器比例快速升高
InStat/MDR曾預測在2001~2006年期間,32位向控制器(MCU)的復合年增長率可達22.6%。而全球32位MCU市場在2003年的增長幅度實際已走過30%,在2004年預計將達到38%。增長的驅動因素主要有兩個方面。
一方面因為像數(shù)碼相機、MP3播放機、PDA、游戲機和移動電話手機等手持設備以及各種信息家電等有更高性能要求的多媒體和通信設備的推出。在這些應用中,龐大的多媒體數(shù)據(jù)必然需要更大的存儲空間,目前許多32位微控制器都可以使用SDRAM,因此可極大地降低使用更大容量數(shù)據(jù)存儲器的成本;而8位微控制器一般只能使用成本較高的SRAM作為數(shù)據(jù)在座 器。此外除了處理應用控制功能之外,需支持互聯(lián)網(wǎng)接入的應用在MCU運行TCP/IP或其它通信協(xié)議的情況下,要求系統(tǒng)建立在RTOS上就必然成為一種現(xiàn)實需求。另外,有越來越多的像電視機、汽車音響及電子玩具等傳統(tǒng)應用也與時俱進地提出數(shù)字化和“硬件軟化”的要求,它們對計算性能的要求及存儲器容量的需求都超出絕大多數(shù)8位微控制器能提供的范圍。
另一方面由于IT技術發(fā)展的推動,32位ARM體系結構已經(jīng)成為一種事實上的標準,隨著高端32位CPU價格的不斷下降和開發(fā)環(huán)境的成熟,促使32位嵌入式處理器日益擠壓原先由8位微控制器主導的應用空間。隨著ARM處理器在全球范圍的流行,32位的RISC嵌入式處理器已經(jīng)開始成為高中端嵌入式應用和設計的主流。
8位機除MCS-51外,其它的8位機和16位機都沒有一種能為標準或準標準產(chǎn)品。32位嵌入式處理器一度被認為只適用于高端應用場合的看法正在改變。有更多、更復雜特點和功能需求的便攜式電子設備正促使嵌入式系統(tǒng)工程師考慮用32位MCU取代8/16位MCU。另外,越來越多的設計師認識到,轉用32位架構不令能提升性能,還能降低相同成本下的系統(tǒng)功耗和節(jié)約總成本以及縮短產(chǎn)品上市時間。這個轉變?yōu)樵O計師提供了可隨著產(chǎn)品的性能和需求不斷擴展而升級的方案。
1.2 可供選擇的可編程計算部件方案增多
(1)GPP-EP-MCU-DSP-ASP/ASSP-ASIC/SoC
嵌入式系統(tǒng)的核心是可編程計算部件,即處理器。這可以有很多種選擇,而且近幾年又增加了一些新的選擇:除過去常用的通用處理器GPP(Gereral Purpose Processor)、嵌入式處理器EP(Embedded Processor)、微控制器MCU(Micro-Control Unit)、數(shù)字信號處理器DSP(Digital Signal Processor)外,目前發(fā)展很快、可以給我們提供新的選擇的還有各種專用處理器ASP(Application Specific Processor)或專用標準產(chǎn)品ASSP(Application Specific Standard Product)。它們都是針對一些特定應用而設計的,如用于HDTV、ADSL、Cable Modem等的專用處理器。與MCU相比,ASP/ASSP集成的資源可能比一般MCU更多、更專業(yè)化,所以ASP的價格要高于MCU;但因為它的應用在相關領域中又是通用、標準和開放的,所以任一個公司都能應用它構成自己的系統(tǒng)或產(chǎn)品,而不存在侵犯知識產(chǎn)權的問題。另一種有知識產(chǎn)權保護的在應用上較封閉的專用集成電路ASIC(Application Specific IC)類的定制片上系統(tǒng)SoC(System on Chip)的投入成本就要比ASP高得多。但這可以根據(jù)設計人員的要求來構建定制SoC,這樣就可為設計人員提供滿足量體載衣式應用需求的靈活性。SoC技術使嵌入式系統(tǒng)應用發(fā)生了革命性的變化,這個變化就是嵌入式系統(tǒng)的設計技術,已從選擇廠家提供的標準產(chǎn)品時代進入了用戶具有個性的自行開發(fā)設計器件的時代。
(2)PsoC/SoPC/CsoC
采用定制SoC有兩大缺點:一是高昂的一次性工程費用(NRE);二是從產(chǎn)品概念到生產(chǎn)階段需要很長的前置開發(fā)時間。目前的一個發(fā)展趨勢是以FPGA為代表的現(xiàn)場可編程技術在迅速崛起。這是由于市場對通用可配置處理器的呼聲越來越高,傳統(tǒng)的MCU在市場需求中顯得越來越力不從心。可配置、可擴展處理器逐漸浮出水面。利用半定制器件可以構成基本FPGA的硬核處理器或基于FPGA的軟核處理器。并由此可編程片上系統(tǒng)(PsoC或SOPC)應運而生。這是一種面向消費電子、工業(yè)、辦公自動化、電信和汽車應用中的嵌入式控制功能而開發(fā)的高性能、現(xiàn)場可編程、混合信號陣列。它集MCU和FPGA/CPLD的優(yōu)點于一身,實現(xiàn)可配置SoC,既適應了設計人員對系統(tǒng)部件集成的需要,又能實現(xiàn)可配置需求的靈活性。從而為許多現(xiàn)實應用提供一種平衡解決方案。
不同的廠家依據(jù)自己本來的優(yōu)勢,從兩個不同方向異途同歸地實現(xiàn)這種“可配置”性。一種是FPGA廠商在現(xiàn)有的FPGA架構中加入微處理器核與其它IP功能模塊,使其兼?zhèn)涔δ苄院挽`活性。例如,Altera公司為嵌入式應用先后推出的Nios和Nios II軟核嵌入式處理器,就是一種可特許的通用RISC CPU。它可與各種各樣的外圍接口、用戶自定義指令和硬件加速單元相組合,構成一個定制的可編程片上系統(tǒng)(SoPC),并能夠根據(jù)需要選擇配置。Xilinx也同樣推出一個類似的32位哈佛結構的MicroBlaze軟核嵌入式處理器。而另一種是微處理器廠家從微處理器出發(fā),再加入可編程邏輯模塊。例如Triscend公司推出一種波稱為是CsoC(Configurable SoC)的技術,是在一個以ARM架構微處理器核為核心的SoC中嵌放工可編程邏輯模塊,構成可配置的SoC平臺。
1.3 微控制器的發(fā)展特點
盡管由于市場對多功能產(chǎn)品需求的增加和IT技術的推動,使32位MCU產(chǎn)品日益成為市場的熱點;但目的8位MCU仍然是技術市場的主流,并且還有相當廣闊的應用空間和旺盛的生命力,16位MCU也占有一定的市場份額。各種MCU根據(jù)自己在市場上的定位,也都有了很大發(fā)展,MCU總的發(fā)展具有以下一些特點。
(1)微控制器SoC化
微控制器(MCU)已可集成越來越多的內(nèi)置部件。常用的部件有存儲器類,包括程序存儲器MROM/OTPROM/EPROM/EEPROM/Flash和數(shù)據(jù)存儲器SRAM/SDRAM/SSRAM;有串行接口類,包括UART、SPI、I2C、CAN、IR、Ethernet、HDLC;有并行接口類,包括Centronics、PCI、IDE、GPIO等;有定時和時鐘類,包括Timer/Counter、RTC、Watchdog、Clock out;有專用和外圍接口類,包括Comparer(比較器)、ADC、DAC、LCD控制器、DMA、PWM、PLL、MAC、溫度傳感器等。甚至有的MCU,例如NS公司的MCU,已把語音、圖像部件也集成到單片機中,目的就是在單個器件中集成所有所需要用到的部件,構成片上系統(tǒng)(SoC)。由于Cygnal公司推出的C8051F系列的MCU在一個芯片中集成了構成數(shù)據(jù)采集系統(tǒng)或控制系統(tǒng)所需要的幾乎所有的數(shù)字和模擬外圍接口和功能部件,所以這種混合信號芯片被其稱作SoC。
圖1是部分高端微控制器內(nèi)置資源。
(2)多核結構處理器
隨著嵌入式應用的深入,特別是在數(shù)字通信和網(wǎng)絡中的應用,對處理器提出了更高的要求。為適應這種情況,現(xiàn)在已出現(xiàn)多核結構的處理器。
Motorola公司研發(fā)的MPC8260 PowerQUICC II就是是一種先進的為電信和網(wǎng)絡市場而設計的集成通信微處理器。它融合了兩個CPU——嵌入式PowerPC內(nèi)核和通信處理模塊(CPM)。由于CPM分擔了嵌入式PowerPC核的外圍工作任務,這種雙處理器體系結構功耗反而要低于傳統(tǒng)體系結構的處理器。
Infineon公司推出的TC10GP和增強型TC1130都是三核(TriCore)結構的微處理器。它同時具備RISC、CISC和DSP功能,是一種建立在SoC概念上的結構。這種單處機由三個核組成:微控制器和DSP核、數(shù)據(jù)和程序存儲器核、外圍專用集成電路(ASIC)。這種單片機的最大特點是把DSP和微控制器愈合成一個單內(nèi)核,大大提高了微控制器的功能。具有類似結構的還有Hitachi公司的SH7410、SH7612等。它們用于既需要MCU又需要DSP功能的場合,比使用單獨MCU和DSP的組合提供了更優(yōu)勢的性能。
(3)更低功耗
現(xiàn)在新推出的MCU的功耗越來越小,很多MCU都有多種工作方式,包括等待、暫停、休眠、空閑、節(jié)電等工作方式。例如Philips的P87LPC762,空閑狀態(tài)下的電流為1.5mA,而在節(jié)電方式下電流只有0.5mA。很多MCU還允許在低振蕩頻率下以極低的功耗工作。例如,P87LPC764在32.768kHz低頻下,正常工作電流僅為Idd=16μA(VDD=3.6V),空閑模式下Idd=7μA(VDD=3.6V)。
(4)更寬工作電壓范圍
擴大電源電壓范圍以及在較低電壓下仍然能工作是現(xiàn)在新推出的MCU的一個特點。目前一般MCU都可以在3.3~5.5V的范圍內(nèi)工作,有些產(chǎn)品則可以在2.2~6V的范圍內(nèi)工作。例如,F(xiàn)ujitsu的MB8919X、MB8912X和MB89130系列以及F2MC-8L系列MCU,絕大多數(shù)工作電壓范圍都為2.2~6V;而TI的MSP430X11X系列的工作電壓可以低達2.2V。Motorola針對長時間處在待機模式的裝置所設計的超省電HCS08系列MCU,已經(jīng)把可工作的最低電壓降到了1.8V。
(5)更先進的工藝和更小的封裝
現(xiàn)在MCU的封裝水平已大大提高,有越來越多的MCU采用了各種帖片封裝形式,以滿足便攜式手持設備的需要。Microchip公司推出了目前世界上體積最小的6引腳PIC10F2XX系列MCU。為了適應各種應用的需要,減少驅動電路,很多MCU的輸出能力都有了很大提高,Motorola MCU的I/O口灌電流可達8mA以上,而Microchip的MCU可達20~25mA,其它如AMD、Fujitsu、NEC、Infineon、Hitachi、Toshiba等都在8~20mA之間。
(6)低噪聲布線技術
在過去一般MCU中,電源與地引腳是安排在芯片封裝的對角上,即左上、右下或右上、左下位置上。這種安排會使電源噪聲對MCU的內(nèi)部電路造成相對最大干擾。現(xiàn)在很多MCU都把電源和地引腳安排在兩個相鄰的引腳上。這樣既降低了干擾,還便于在印制電路板上對去耦電容器進行布線,降低系統(tǒng)的噪聲。
2 嵌入式系統(tǒng)設計的新挑戰(zhàn)
要求更高的應用需求推動嵌入式設計正在8/16位轉向功能更強大的32位MCU。這種升級給工程師帶來性能空間和處理裕度提升的同時也帶來了嚴峻的挑戰(zhàn),提出了一系列前所未有的全新問題。首先,要對開發(fā)工具和軟件進行新的投資,并對設計流程進行重新定義;另外,要對原軟件能多大程度地用于新架構、要把已有軟件移植到32位的新架構上還必須做多少工作,以及器件和開發(fā)工具的成本、存儲器的種類、規(guī)模、性能和容量、可選器件的種類等進行評估。是否向32位升級主要取決于經(jīng)過綜合考慮后的總的系統(tǒng)成本等。
2.1 發(fā)生了哪些變化
原來國內(nèi)熟悉8位MCU開發(fā)的工程師大部分出身于電子工程和其他機電專業(yè),而非計算機專業(yè)。隨著嵌入式系統(tǒng)設計技術的發(fā)展,已經(jīng)在很多方面發(fā)生了很大的變化。在這此與傳統(tǒng)的8位MCU的開發(fā)有著許多明顯的不同:首先是開九牛二虎之力復雜度大為提高,其次開發(fā)形式、手段和工具也有了很大不同;另外系統(tǒng)越來越多地是建立在RTOS平臺上,使用的開發(fā)程序設計語言不再是開始效率很低的匯編語言,而越來越多地使用開發(fā)效率很高的高級語言。C語言已成為主流通用開發(fā)語言。
(1)開發(fā)的復雜度
各種多媒體和通信手持設備、信息家電和復雜系統(tǒng)都需要更強大的MCU來完成復雜大數(shù)據(jù)量實時處理。例如,目前移動電話手機需要多屏顯示、網(wǎng)頁瀏覽、文本信息發(fā)送、帶查找功能的大容量地址簿和語音撥號等功能;最新數(shù)碼相機及攝像機的高效率數(shù)據(jù)壓縮、自動識別和各種智能處理等,需要增加DSP功能;電話交換機需要分布式處理而采用多處理器結構。
(2)開發(fā)形式、手段和工具
隨著開發(fā)對象復雜度的提高,硬件和軟件設計比例發(fā)生了很大變化。軟件開發(fā)的比重越來越大,復雜系統(tǒng)的設計已不可能由一個設計師包括硬件和軟件,而必須由一個團隊來分工合作完成。由此也推出了開發(fā)形式、手段和工具的發(fā)展,特別是硬件/軟件協(xié)同設計和驗證技術、設計管理技術(如軟件版本管理軟件)和各種嵌入式系統(tǒng)設計工具軟件的發(fā)展。
過去,幾乎所有4/8/16位MCU的開發(fā)都必須要有用于實時調(diào)試的專用在線仿真器(ICE),其開發(fā)過程總是先設計、制作和調(diào)試好硬件,同時進行軟件編程,在調(diào)試好硬件電路板之前,對軟件最多僅能進行關于純邏輯和計算的調(diào)試;只有在已調(diào)試好的硬件基礎上,才能進行系統(tǒng)應用軟件的調(diào)試,所有可以提供的程序庫或應用軟件包都是專用的。
對于32位嵌入式處理器來說,隨著時鐘頻率越來越高(50~400MHz以上),加上復雜的封裝形式(如BGA),ICE已越來越難勝任開發(fā)工具的工作。目前替代的基本方法是借助于JTAG接口構成JTAG調(diào)試器,直接從CPU獲取調(diào)試信息而使得產(chǎn)品的設計簡化,從而使得開發(fā)工具的價格反而要低于ICE。
軟件和硬件工程師并行工作是一種發(fā)展潮流。通過協(xié)同設計,特別是協(xié)同驗證技術,軟件工程師能盡早在真實硬件上測試,而硬件工程師能盡早在原形設計周期中驗證他們的設計。
因為嵌入式系統(tǒng)的復雜性和多樣性,不可能有一個包打天下的統(tǒng)一的完整解決方案,所以不同的EDA供應商推出了各種商用嵌入式系統(tǒng)設計環(huán)境。如有Synopsys公司的Co-Centric System Studio、Cadence公司的“虛擬元件協(xié)同設計”(VCC)、CoWare公司的“CoWare N2C”等,還有世界各地的大學也為嵌入式系統(tǒng)設計開發(fā)出各種用于特定應用的免費工具。
圖1
(3)開發(fā)平臺
能讓產(chǎn)品可靠和迅速上市是嵌入式系統(tǒng)普通要求。為了提高時效,過去“一切自行設計”的模式已逐漸被“盡量采用具有IP的產(chǎn)品”所代替。這又推動了標準實時操作系統(tǒng)(RTOS)和相應的調(diào)試技術的發(fā)展。
由于32位架構的MPU/MCU的資源豐富,指令集相對龐大,而且系統(tǒng)軟件也更加復雜,特別當系統(tǒng)有多任務實時保證的要求時,通常要選用一種RTOS作為開發(fā)平臺來對應用軟件中的多任務進行調(diào)度。當系統(tǒng)需要連接Intenet網(wǎng)/實現(xiàn)圖形用戶界面(GUI)或文件系統(tǒng)(FS)時,若采用支持TCP/IP協(xié)議棧/GUI/FS的嵌入式操作系統(tǒng),可極大地降低復雜多任務系統(tǒng)開發(fā)的難度。
RTOS的引入解決了嵌入式軟件開發(fā)標準化的難題,促進嵌入式開發(fā)軟件的模塊化和可移植化,為軟件工程化打下基礎。隨著嵌入式系統(tǒng)中軟件比重不斷上升、應用程序越來越大,這對開發(fā)人員的知識結構、應用程序接口和程序檔案的組織管理等都提出了新的要求。引入RTOS相當于引入了一種新的管理模式,對于開發(fā)單片機和開發(fā)人員都是一個飛躍。
(4)開發(fā)語言
在從8/16位MCU向32位轉換時,所用軟件開發(fā)語言也發(fā)生了變化。過去大部分8/16位MCU都沒有太多的性能冗余,軟件編寫必須完全適合其有限的處理功能,因此軟件開發(fā)大部分用匯編語言編寫。
在8/16位MCU上采用C、PL/M等高級語言編程,再用相關編譯器轉換成相應機器語言執(zhí)行,早在十幾年前就已嘗試并推廣;但由于當時編譯器的編譯效率還不夠高,高級語言程序的額外開銷相對比較大、運行效率下降,再加上8/16位MCU本身處理裕度有限,失言進度緩慢。最近幾年,就8/16位MCU而言,隨著C編譯器效率和MCU性能的大幅度提高,用高級語言代替匯編語言也漸成趨勢,典型的MCU都推出了自己的C編譯器。其中Keil C51的編譯效率已達到很高水平,經(jīng)過優(yōu)化的用Keil C51編寫的程序編譯后的運行效率甚至要高于普通開發(fā)者直接用匯編語言編寫的程序。
2.2 設計者面對的新挑戰(zhàn)
(1)轉變觀念,需要熟悉新的開發(fā)模式
嵌入式系統(tǒng)應用不再是過去單一的單片機應用模式,而是越來截止多樣化,這可為用戶提供更多的不同層次的選擇方案。嵌入式系統(tǒng)實現(xiàn)的最高形式是片上系統(tǒng)SoC,而SoC的核心技術是重用和組合IP核構件。從單片機應用設計到片上系統(tǒng)設計及其中間的一系列的變化,從底層大包大攬的設計到利用FPGA和IP模塊進行功能組合PsoC/SOPC設計,這是一個觀念的轉變。學習和熟悉新的開發(fā)模式將會事半功倍地構建功能強大和性能卓越的嵌入式系統(tǒng),但同時也給系統(tǒng)的設計驗證工作提出了許多新的挑戰(zhàn)。
(2)進入的技術門檻提高,需要學習全新的RTOS技術
現(xiàn)代高端嵌入式系統(tǒng)都是建立在RTOS基礎上的。這對于未受過計算機專業(yè)訓練的各專業(yè)領域的工程技術人員來說,需要學習全新的RTOS技術,深入了解RTOS的工作機制和系統(tǒng)的資源配置,掌握底層軟件、系統(tǒng)軟件和應用軟件的設計和調(diào)試方式。進入的技術門檻要比所熟悉的開發(fā)方法高得多。這對于開發(fā)者來說,也是一個新的挑戰(zhàn)。
(3)選擇適合的開發(fā)工具,熟悉新的開發(fā)環(huán)境
目前從8位升級到32位的一個最大障礙就是開發(fā)工具的投入。32位開發(fā)工具要比8位開發(fā)工具復雜得多,使用的技術門檻要高得多,同時其投資也要高得多。進入32位系統(tǒng)開發(fā)的工程師不得不面對與8位系統(tǒng)很不相同的開發(fā)環(huán)境。如何正確選擇處理器架構、評估嵌入式操作系統(tǒng),以及使用陌生的開發(fā)工具,都是一個新的挑戰(zhàn)。
(4)熟悉硬件/軟件協(xié)同設計和驗證技術、設計管理技術
軟/硬件并行設計是嵌入式系統(tǒng)設計的一項關鍵任務。在設計過程中的主要問題,是軟硬件設計的同步與集成。這要求控制一致性與正確性,但隨著技術細節(jié)不斷增加,需要消耗大量時間。目前,業(yè)界已經(jīng)開發(fā)Polis、Cosyma及Chinook等多種方法和工具來支持集成式軟硬件協(xié)同設計。目標是提供一種統(tǒng)一的軟硬件開發(fā)方法,它支持設計空間探索,并使系統(tǒng)功能可以跨越硬件和軟件平臺復用。
團隊開發(fā)的最大問題就是設計管理問題?,F(xiàn)在有越來越多的公司開始重視技術管理,利用各種技術管理軟件(例如軟件版本管理軟件)對全過程進行監(jiān)督管理。這對每一個參與開發(fā)的人來說,似乎增加了不少麻煩,但是對整個公司的產(chǎn)品上市、升級、維護以及戰(zhàn)略利益都具有長遠的效益。
(5)SoC設計所面臨的巨大的挑戰(zhàn)
SoC已經(jīng)開始成為新一代應用電子技術的核心,這已成為電子技術的革命標志。過去應用工程師面對的是各種ASIC電路,而現(xiàn)在越來越多所面對的是巨大的IP模塊庫,所有設計工作都是以IP模塊為基礎。SoC設計技術使嵌入式系統(tǒng)設計工程師變成了一個面向應用的電子器件設計工程師。隨著SoC應用的日益普及,在測試程序生成、工程開發(fā)、硅片查錯、量產(chǎn)等領域對SoC測試技術提出了越來越高的要求。掌握新的測試理念及新的測試流程、方法和技術,是對單片機應用工程師提出的新挑戰(zhàn)。