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