嵌入式系統(tǒng)的發(fā)展趨勢:網(wǎng)絡(luò)互聯(lián)與嵌入式微處理架構(gòu)
互連嵌入式系統(tǒng)(Networked Embedded Systems)的演變
本文引用地址:http://www.ex-cimer.com/article/80564.htm過去嵌入式系統(tǒng)通常是深嵌于最終產(chǎn)品之中,以系統(tǒng)控制為基礎(chǔ),一般不與外界連接。其微控制器在一個(gè)相當(dāng)封閉的系統(tǒng)中工作,定時(shí)查詢外設(shè)、收集數(shù)據(jù)、完成簡單的處理工作,以及控制開關(guān)和LED指示燈。此外,微控制器也進(jìn)行少量的數(shù)據(jù)操作或數(shù)據(jù)傳輸。由于它們不會(huì)與局域網(wǎng) (LAN)或互聯(lián)網(wǎng)(Internet)連接,所以不存在保安的問題。然而,這一切現(xiàn)在都改變了。現(xiàn)今的嵌入式系統(tǒng)一般都要連接到局域網(wǎng),這樣就有數(shù)十、甚至上百個(gè)控制器連接在一起。舉例說,汽車制造和工業(yè)控制領(lǐng)域中的CAN有上百個(gè)微控制器在相互作用;ZigBee 無線控制網(wǎng)絡(luò)也有若多數(shù)量的微控制器互連在一起。而且,隨著嵌入式網(wǎng)絡(luò)越來越復(fù)雜(因此需要更大的網(wǎng)絡(luò)帶寬和更遠(yuǎn)的傳輸距離),嵌入式以太網(wǎng)也開始涉足于工業(yè)控制、建筑物自動(dòng)化、醫(yī)療和保安產(chǎn)品市場。
目前市場的發(fā)展趨勢是將這些局域網(wǎng)需要通過企業(yè)內(nèi)聯(lián)網(wǎng)或外聯(lián)網(wǎng)特別是互聯(lián)網(wǎng)與外界連接。嵌入式系統(tǒng)聯(lián)網(wǎng)要求的不斷增加,導(dǎo)致微控制器必須具備更多性能:更強(qiáng)的互連性,增加程序和數(shù)據(jù)內(nèi)存空間來支持相應(yīng)的通信協(xié)議,提高性能和處理帶寬以進(jìn)行系統(tǒng)傳輸數(shù)據(jù)、執(zhí)行通信協(xié)議和提供嚴(yán)密的保安能力。在需要通過內(nèi)聯(lián)網(wǎng)或互聯(lián)網(wǎng)監(jiān)控CAN或ZigBee 網(wǎng)絡(luò)的應(yīng)用環(huán)境中,嵌入式微控制器必須能支持10/100M以太網(wǎng)、CAN、ZigBee 網(wǎng)絡(luò)以及其他網(wǎng)絡(luò)協(xié)議,更必須具有先進(jìn)的安全加密算法。
另一個(gè)影響嵌入式系統(tǒng)的因素是通用串行總線 (USB) 的快速普及,尤其是在 PC 及其外設(shè)領(lǐng)域。與提供基本通信鏈路的傳統(tǒng)通用異步收發(fā)器 (UART) 接口不同,USB是一種內(nèi)置豐富驅(qū)動(dòng)程序的即插即用式總線接口,能縮短開發(fā)周期和設(shè)備安裝時(shí)間。不但設(shè)計(jì)人員喜歡這種接口,終端用戶也因?yàn)椴槐貫樾沦彽耐庠O(shè)安裝加載新的設(shè)備驅(qū)動(dòng)程序而樂于使用。再考慮到采用筆記本電腦對復(fù)印機(jī)、自助售貨機(jī)、ATM機(jī),工廠自動(dòng)化設(shè)備、家用安全系統(tǒng)等完成系統(tǒng)設(shè)置和現(xiàn)場服務(wù),可以預(yù)計(jì)USB在嵌入式系統(tǒng)將占一重要席位。新款的筆記本電腦都只配備了USB接口,所以由它們服務(wù)的系統(tǒng)也必須有USB接口,否則這些系統(tǒng)便得采用舊款PC或USB適配器。
還有一點(diǎn),隨著嵌入式系統(tǒng)越來越多地通過使用外部網(wǎng)絡(luò)來監(jiān)控,尤其是該系統(tǒng)可以通過互聯(lián)網(wǎng)或無線網(wǎng)絡(luò)來訪問時(shí),對保安的要求必然會(huì)更高。沒有人能容忍局外人惡意破壞系統(tǒng)、關(guān)斷防火報(bào)警系統(tǒng),或隨便打開輸油管的閥門,所以保安就成為了嵌入式系統(tǒng)非常重要的一環(huán)。
對微控制器結(jié)構(gòu)的意義:高帶寬、高互連性、高可預(yù)見性
嵌入式系統(tǒng)朝著嵌入式網(wǎng)絡(luò)的趨勢發(fā)展從根本上改變了其結(jié)構(gòu),而結(jié)構(gòu)卻是人們在選擇一個(gè)微控制器時(shí)必須考慮的。微控制器必須具有多種網(wǎng)絡(luò)協(xié)議接口,能傳輸并驗(yàn)證大量數(shù)據(jù),足夠的安全性以及內(nèi)存和處理能力,以容納眾多的協(xié)議堆棧;而且,在許多情況下,還必須在能耗很少的前提下完成這些任務(wù)。8位和16位處理器顯然在內(nèi)存資源和處理能力上達(dá)不到這些要求,許然需要 8 位和 16 位處理器具備的“確定過程式性能” (deterministic performance) 和監(jiān)管功能,而這些對32位處理器來說卻很罕有。此外,對成本敏感的系統(tǒng)還得與8位和16位微控制器的價(jià)格相若,而且配套開發(fā)工具的價(jià)格也必須容易接受。
要適應(yīng)嵌入式市場不斷增長的互連需求和支持這類應(yīng)用的實(shí)時(shí)性要求,這種處理器還是不夠的。要滿足現(xiàn)今的互連應(yīng)用環(huán)境,嵌入式微控制器需要能夠支持多種通信協(xié)議、高速數(shù)據(jù)傳輸,系統(tǒng)安全和確定過程式實(shí)時(shí)處理。Atmel公司的SAM7 微控制器系列基于ARM技術(shù),并具有USB接口,其最新的SAM7X 微控制器正朝著上述的領(lǐng)域發(fā)展。這種微控制器的工作頻率達(dá)50 MIPS,配備片上以太網(wǎng)和CAN通信協(xié)議,采用硬件實(shí)現(xiàn)的AES/3DES加密技術(shù),安全鍵存儲(chǔ)技術(shù)以及各種外部接口包括USB、USART、串行外圍接口 (SPI)、同步串行接口 (SSC)、雙線接口SSC/I2S和雙線接口 (TWI)。該微控制器采用一個(gè)外設(shè)DMA控制器獨(dú)立實(shí)現(xiàn)高速數(shù)據(jù)的傳輸,無需占用 ARM7 處理器資源,并具有 8 位和 16 位處理器常備的實(shí)時(shí)系統(tǒng)控制功能 (32 位系統(tǒng)很少有這些功能),包括欠壓檢測器、上電復(fù)位電路、實(shí)時(shí)時(shí)鐘和監(jiān)控定時(shí)器。SAM7X 微控制器還包括一些外設(shè):一個(gè) 10位模數(shù)轉(zhuǎn)換器、脈沖寬度調(diào)制以及功率管理控制器。SAM7X 的存儲(chǔ)密度從 128 到 256Kbit 閃存和 32 到 64Kbit SRAM 不等。這些功能才可真正滿足嵌入式網(wǎng)絡(luò)環(huán)境的需求。
嵌入式互連的發(fā)展趨勢
隨著越來越多設(shè)備互連在一起,連接電纜的長度和網(wǎng)絡(luò)帶寬均大幅增長。最大帶寬為1Mbps的CAN網(wǎng)絡(luò)逐漸達(dá)到極限,開始被100Mbps以太網(wǎng)取代。事實(shí)上,以太網(wǎng)和互聯(lián)網(wǎng)使用的都是相同的通信協(xié)議,即TCP/IP。由于在將一個(gè)遠(yuǎn)程傳感器通過互聯(lián)網(wǎng)連接到某一臺(tái)PC時(shí)無需轉(zhuǎn)換協(xié)議,因此整個(gè)網(wǎng)絡(luò)便會(huì)簡化,設(shè)備的互操作性得以增強(qiáng)。采用互聯(lián)網(wǎng)這類公共通信網(wǎng)絡(luò)對安全性的要求也大為提高。不過,CAN 也不會(huì)在一夜之間消失,而是繼續(xù)存在于嵌入式網(wǎng)絡(luò)世界內(nèi)一段時(shí)間。ZigBee 很可能在低數(shù)據(jù)傳輸率控制應(yīng)用中占一重要席位;而與PC 連接方面, USB 勢將成為標(biāo)準(zhǔn)。
通用串行接口 (USB) 是一種用于將外設(shè)作為即插即用設(shè)備連接到PC上的接口標(biāo)準(zhǔn)。因此,USB替代了PC上的串行接口 (UART),而且比后者的傳輸速率更大,在全速模式下可達(dá)12Mbps。
隨著以太網(wǎng)協(xié)議滲透到嵌入式領(lǐng)域,嵌入式系統(tǒng)網(wǎng)絡(luò)必須能與以太網(wǎng)絡(luò)接口。SAM7X采用10/100-Mbps IEEE 802.3兼容的以太網(wǎng)媒體訪問控制器,該控制器可配置為全雙工或半雙工模式,并有一個(gè)能確保提供100Mbps數(shù)據(jù)吞吐速率的專用 DMA控制器;可編程的數(shù)據(jù)包收發(fā)間隔,并支持虛擬局域網(wǎng)標(biāo)記幀以及自動(dòng)暫停幀的生成及終止功能。雙模式接口能讓SAM7X通過媒體獨(dú)立接口或簡化的媒體獨(dú)立接口 (RMII) ,無縫地接入高速以太網(wǎng)應(yīng)用中的各種物理層 (PHY) 。MII 能擴(kuò)大系統(tǒng)在物理層的選擇,而RMII 則可節(jié)省微控制器上的一些 I/O。SAM7X MCU 可直接與 POS-PHY 第2層/SPI-3 兼容的設(shè)備連接,包括與標(biāo)準(zhǔn)網(wǎng)絡(luò)處理器連接。通過片上系統(tǒng)緩沖器進(jìn)行的無損失流量控制,可省去外部存儲(chǔ)器或流量控制裝置。此外,還支持高達(dá)10240字節(jié)的巨型幀。SAM7X 的地址檢查器能識(shí)別4個(gè)特定的48位地址,并包含一個(gè)64位散列寄存器,用于匹配多點(diǎn)廣播和單點(diǎn)廣播地址。它能識(shí)別所有廣播地址,復(fù)制所有數(shù)據(jù)幀,并可用于匹配外部地址。其統(tǒng)計(jì)寄存器模塊包含各種寄存器,用于記錄與收發(fā)操作相關(guān)的各種事件。這些寄存器與存儲(chǔ)在接收緩沖列表中的狀態(tài)字可通過軟件讀取,生成符合 IEEE 802.3 標(biāo)準(zhǔn)的網(wǎng)絡(luò)管理統(tǒng)計(jì)數(shù)據(jù)。
能否高速傳輸數(shù)據(jù)?如何快速傳輸數(shù)據(jù)?
在絕大多數(shù)32位控制器中,處理器本身在外設(shè)和內(nèi)外存間傳輸數(shù)據(jù)時(shí)每次只傳輸一個(gè)字節(jié)。如果要傳輸?shù)臄?shù)據(jù)量不大,這沒什么問題。但若數(shù)據(jù)傳輸速率達(dá)到1Mbps,即使是快速處理器也要癱瘓。在1Mbps速率下,數(shù)據(jù)傳輸占用 28% 的處理器資源;速率到 2Mbps 時(shí),數(shù)據(jù)傳輸占用 50% 以上的處理器資源;而速率達(dá)到 4Mbps 時(shí),處理器就不能處理其他事務(wù)了。如果考慮到全速 USB2.0 的數(shù)據(jù)速率為 12Mbps,CAN 的數(shù)據(jù)速率為 1Mbps,以太網(wǎng)絡(luò)的數(shù)據(jù)速率為 100 Mbps,SAM7 SPI 和 USART 外設(shè)的數(shù)據(jù)速率也能達(dá)到 25Mbps,那么很明顯任何一個(gè)需要在大范圍互連的嵌入式控制系統(tǒng)都必須解決數(shù)據(jù)傳輸?shù)膯栴}。在一個(gè)涉及大量數(shù)據(jù)傳輸?shù)膽?yīng)用中,微控制器能否既是網(wǎng)關(guān)又是控制器?
Atmel的DMA方案產(chǎn)品有一個(gè)外設(shè)DMA控制器 (PDC),能直接將每個(gè)SAM7X 外設(shè)連接到片上內(nèi)存,并配有一個(gè)更高級的專門DMA,針對以太網(wǎng)MAC。由于 PDC 完全獨(dú)立于處理器運(yùn)行,因此它沒有任何中斷的成本,并能大幅度降低數(shù)據(jù)傳輸所需的時(shí)鐘周期數(shù)。每個(gè) SAM7X 外設(shè)都有兩條專用 PDC 通道,各用于接收和發(fā)送數(shù)據(jù)。每個(gè) PDC 通道的用戶接口都集成在各外設(shè)的內(nèi)存中,并有一個(gè) 32 位內(nèi)存指針寄存器;一個(gè) 16 位傳輸計(jì)數(shù)寄存器;一個(gè)用于下一個(gè)存儲(chǔ)的 32 位內(nèi)存指針寄存器和一個(gè)用于下一個(gè)傳輸?shù)膫鬏斢?jì)數(shù)寄存器。外設(shè)通過收發(fā)信號(hào)觸發(fā) PDC 傳輸。當(dāng)?shù)谝粋€(gè)編程好的數(shù)據(jù)塊被傳輸后,對應(yīng)的外設(shè)會(huì)產(chǎn)生一個(gè)傳輸結(jié)束中斷,第二個(gè)數(shù)據(jù)塊便會(huì)自動(dòng)開始傳輸,而ARM處理器此時(shí)可并行處理第一個(gè)數(shù)據(jù)塊。這樣,就可以消除為更新處理器上DMA內(nèi)存指針?biāo)鶐淼膶?shí)時(shí)中斷限制,對于維持外設(shè)上的高速數(shù)據(jù)傳輸來說,這是非常關(guān)鍵的。
在這個(gè)方案下,可以隨時(shí)讀取下一個(gè)數(shù)據(jù)傳輸?shù)拇鎯?chǔ)位置和剩余要傳輸?shù)臄?shù)據(jù)塊。PDC 有一些專用的狀態(tài)寄存器,它們顯示各個(gè)傳輸通道是否激活。通過一些控制位,便可安全地讀取指針和計(jì)數(shù)寄存器,而不會(huì)出現(xiàn)兩次讀數(shù)不同的情況。PDC將狀態(tài)標(biāo)志發(fā)送給在狀態(tài)寄存器中可見的那個(gè)外設(shè)。當(dāng)該外設(shè)接收到一個(gè)外部字符,便會(huì)發(fā)送一個(gè)接收就緒的信號(hào)給PDC,而 PDC 便會(huì)請求訪問系統(tǒng)總線。當(dāng)該請求獲得允許,PDC便開始讀取外設(shè)的接收保持寄存器,然后觸發(fā)一個(gè)內(nèi)存寫操作。每次傳輸后,相關(guān)的PDC內(nèi)存指針地址將增加,剩余的傳輸數(shù)目將減少。當(dāng)內(nèi)存塊滿時(shí),下一個(gè)內(nèi)存塊的傳輸便會(huì)自動(dòng)開始;或者會(huì)有一個(gè)信號(hào)傳送到外設(shè),以停止傳輸。至于向外設(shè)發(fā)送數(shù)據(jù),傳輸過程正好與此相反。如果在相同的外設(shè)上同時(shí)出現(xiàn)相同類型 (接收或發(fā)送) 的請求,請求的優(yōu)先級別由外設(shè)的編號(hào)決定;當(dāng)請求不是同時(shí)發(fā)生,則按請求出現(xiàn)的先后而處理。來自接收方的請求先處理,然后處理發(fā)送方的請求。
SAM7X 結(jié)構(gòu)中的 DMA 方案使其能同時(shí)充當(dāng)網(wǎng)關(guān)和控制器,甚至在高數(shù)據(jù)速率下也能如此。
實(shí)時(shí)應(yīng)用的支持
雖然許多 32 位系統(tǒng)廠商都努力在其微控制器上增加連通性,采用USB、以太網(wǎng)或其他協(xié)議,但大部分都不曾解決實(shí)時(shí)應(yīng)用的問題。大多數(shù)的嵌入式控制應(yīng)用是確定過程式的,即指令和數(shù)據(jù)必須在一個(gè)可以準(zhǔn)確預(yù)計(jì)的時(shí)鐘周期內(nèi)到達(dá)正確的地方。這是“實(shí)時(shí)”應(yīng)用的本質(zhì)所在??上В^大多數(shù) 32 位控制器都不具備實(shí)時(shí)應(yīng)用所要求的性能。
ARM結(jié)構(gòu)最初是為了便攜式PC而開發(fā)的,其操作系統(tǒng)管理中斷處理和制定處理的優(yōu)先級別。但它從來不是面向確定過程式實(shí)時(shí)應(yīng)用的。為克服在外部非易失性內(nèi)存中存儲(chǔ)代碼導(dǎo)致的性能下降,PC 處理器在高速緩存中采用代碼遮蔽技術(shù)。但當(dāng)某一需要的指令代碼正好不在高速緩存中時(shí),這種技術(shù)就會(huì)導(dǎo)致不可預(yù)見的延遲。如果不用借助操作系統(tǒng)來實(shí)現(xiàn)外設(shè)連接,那就需要中斷屏蔽和額外的軟件支出??傊@種使 ARM 適合于 PC 應(yīng)用的結(jié)構(gòu)同時(shí)也使它不太適合實(shí)時(shí)應(yīng)用。AT91SAM7 器件是ARM7微控制器中獨(dú)特的產(chǎn)品,配備了一整套支持實(shí)時(shí)應(yīng)用的功能,包括一個(gè)有8個(gè)優(yōu)先級別的中斷控制器、基于硬件的細(xì)致位操作、上電復(fù)位電路、單電源電壓、欠壓監(jiān)測器和實(shí)時(shí)時(shí)鐘。
確定過程式處理
SAM7X 微控制器上的 25ns 高速非易失性閃存允許其在單周期內(nèi)直接從閃存讀取指令,而無需代碼遮蔽,并能確保以確定過程式的方式完成指令處理。SAM7X可在不借助高速緩存的情況下以 38MIPS 的速度處理閃存的原始數(shù)據(jù);而在處理片上SRAM的數(shù)據(jù)時(shí)速度可達(dá)50MIPS。
中斷控制
實(shí)時(shí)控制應(yīng)用通常是由中斷驅(qū)動(dòng)的應(yīng)用,其特點(diǎn)是有多個(gè)中斷源,且對每個(gè)中斷都會(huì)有一個(gè)可預(yù)計(jì)的響應(yīng)。ARM核結(jié)構(gòu)采用了一個(gè)簡單的雙中斷機(jī)制;在該機(jī)制中,其中一個(gè)中斷負(fù)責(zé)處理所有非緊急的中斷任務(wù),并沒有硬件制定優(yōu)先級別。這在高度互連的嵌入式系統(tǒng)中是不能接受的,因?yàn)檫@樣互連環(huán)境下的高吞吐量通信接口要求快速中斷處理與低優(yōu)先級系統(tǒng)功能并行。Atmel 公司的AT91ARM7通過一套可獨(dú)立屏蔽的中斷向量源和一個(gè)有8個(gè)優(yōu)先級的中斷控制器解決了這個(gè)問題。其基本的中斷處理程序永久駐留在SRAM中,負(fù)責(zé)判別各中斷源的優(yōu)先級別。一旦需要,它便會(huì)執(zhí)行一條指令,使用中斷號(hào) (每一個(gè)中斷源均獲分配專用的中斷號(hào)) 把相應(yīng)中斷服務(wù)程序的向量直接加載到程序計(jì)數(shù)器中。可惜的是,ARM7 結(jié)構(gòu)沒有細(xì)致的位操作指令,因而要15條指令 (即要15個(gè)時(shí)鐘周期) 才能完成這些置位/復(fù)位操作。ARM7先用6個(gè)指令取消中斷,然后用9個(gè)指令執(zhí)行RMW操作,完成復(fù)位,最后用6個(gè)指令重新激活中斷。這牽涉大量的編程、除錯(cuò)調(diào)試和處理操作,尤其是當(dāng)支持這些操作的指令來自8位或16位處理器時(shí),工作量更加龐大。
細(xì)致位操作
在現(xiàn)今對成本敏感的應(yīng)用中,節(jié)省代碼和數(shù)據(jù)空間是首要考慮的問題,因此能在I/O空間中對個(gè)別位字進(jìn)行設(shè)置 (set) 和清除 (clear) 就最理想不過。如果不具備這種位操作的能力,則需要在目標(biāo)的 I/O地址內(nèi)執(zhí)行一個(gè)讀、改、寫 (Read-Modify-Write, RMW) 操作;也就是說,將該 I/O 空間讀入 SRAM、修改目標(biāo)位,然后將結(jié)果寫回I/O寄存器。當(dāng)然,這很耗費(fèi)閃存和SRAM等的系統(tǒng)資源,而且也增加功耗。位操作得以發(fā)揮優(yōu)勢的另一種情況是激活和取消中斷。如果要利用 RMW操作來激活或取消某個(gè)中斷,你必須先取消所有中斷,接著進(jìn)行 RMW操作來激活或取消特定的中斷,然后重新激活所有中斷。Atmel 公司已對 ARM7 結(jié)構(gòu)進(jìn)行了擴(kuò)充,允許在 I/O 空間內(nèi)設(shè)置和清除位字。每個(gè)外設(shè)都有一個(gè)“設(shè)置”控制寄存器和一個(gè)“清除”控制寄存器。這樣,就可用一個(gè) 6 個(gè)周期的加載/移動(dòng)/存儲(chǔ)序列來處理所有中斷屏蔽以及位設(shè)置和清除操作,從而減少 60% 的處理開支和代碼。
單電源
隨著工藝技術(shù)的尺度越來越小,微控制器的核心電源的電壓范圍必須適當(dāng)。在0.18微米工藝節(jié)點(diǎn),核心電源一般在1.8V。然而,為了與傳統(tǒng)的8位系統(tǒng)兼容,32位微控制器必須由一個(gè)電壓范圍從 3.0V 到 3.6V 的單電源來供電。新的微控制器用一個(gè)片上調(diào)壓器產(chǎn)生核心部分和其他片上子系統(tǒng)所要求的1.8V電壓。具有這個(gè)帶外部連接的1.8V電源,能更好地基于系統(tǒng)板提供的功能來控制各個(gè)功率源。至于使用這個(gè)片上調(diào)壓器還是使用具有更高效率或更低待機(jī)功耗的外接電源,可完全由終端用戶自行決定和控制。這個(gè)調(diào)壓器具有在CPU低速 (500Hz 到1.5MHz) 時(shí)進(jìn)入待機(jī)模式的特點(diǎn),這可降低調(diào)壓器的功耗,使電流降到20mA。在這種情況下,最大輸出電流為1mA,足以驅(qū)動(dòng)CPU和大多數(shù)外設(shè),這有助于彌補(bǔ)32位微控制器較高的待機(jī)電流。
結(jié)語
現(xiàn)今嵌入式系統(tǒng)逐步朝著嵌入式網(wǎng)絡(luò)發(fā)展,常常要與其它網(wǎng)絡(luò)聯(lián)網(wǎng)。為這樣的設(shè)計(jì)選擇一個(gè)微控制器需要同時(shí)考慮器件的互連能力、數(shù)據(jù)傳輸能力、安全性,且又不失實(shí)時(shí)應(yīng)用處理所要求的監(jiān)管和控制功能。微控制器供貨商正紛紛推出針對這類應(yīng)用的32位微控制器。設(shè)計(jì)人員需要根據(jù)自己的特定系統(tǒng)來評估每一種產(chǎn)品。
評論