關鍵詞:嵌入式系統(tǒng) 100Base-T MBPS RTOS
引言
嵌入式系統(tǒng)設計帶來了與傳統(tǒng)系統(tǒng)設計全然不同的挑占。其中包括從處理器和存儲器的選擇到產品環(huán)境的考慮。在理解產品設計的許多復雜方面和影響后,呵以直接提高產品設計成功的幾率,對于設計者,僅僅了解需要什么部件來完成一個設計是不夠的,還要考慮部件之間如何交互、何種要素會帶來影響和設計的產品將在何種環(huán)境中運行等問題。
本文試圖用合適的視角來盾待這些問題,為設計工程師們提供指導和幫助,從所有的層面上幫助它們?yōu)榻窈蟮脑O計項目做更好的準備。
1 理解產品要求和設計局限
在創(chuàng)造一個智能的網絡化設備時,第一步是要理解這個嵌入式產品本身內含的規(guī)格要求,大同小異不僅僅是產品的功能要求。基本的元素,如處理器類型,會對吞吐量、可裁剪性和開發(fā)周期的長短產生廣泛的影響。這一點一定在事先就了然于胸。同樣重要的成本,因為多數嵌入式產品對成本是敏感的。因此,材料清單的成本需要比傳統(tǒng)設計低很多。典型的具有以太網能力的嵌入式產品生產的材料清單的花費為$45~$100元。這些限制要求對性價比做很好的分析。
對于串口、USB、I2C接口的設計決定也會對性價比產生影響。找到帶集成接口的處理器并不難,比如帶以太網口、串口、USB及其它接口。在合適的價位找到這樣的處理器,并且還能提供產品的可裁剪性,就不那么容易了。
還有2個重要的事項有時會被忽略,就是電源要求和溫度潿。如果產品是電池供電,要考慮系統(tǒng)所有部件的電流消耗;如果產品本身要求滿足工業(yè)級溫度要求,那么這個盒子中的所有部件都要是工業(yè)級的。最后一點,由于本文的焦點在硬件,需要記住,產品可裁剪性取決于軟件。
除了辨別一個產品的功能要求外,對于該產品功能環(huán)境的理解也同樣重要。這個產品將在何處度過它的整個生命周期,那里的環(huán)境是否有特殊性?這樣的問題,設計者可以利用環(huán)境的先天優(yōu)勢,同時為最壞的情形做打算。如考慮暴露情況、環(huán)境污梁情況、溫度極限和更多的將影響性能和潛在的生命周期的情況。
人機交互同樣是重要因素。如程序改動的頻繁度、產品可能維護計劃等。一定要關注技術環(huán)境。比如,如果一個智能網絡設備接到一個局域網上,相關的信息流量會如何影響周圍的設備?如果該產品是一個串口到以太網的網關,只負責從串口得到數據然后將它轉換成以太網包,反之亦然,那么不僅要考慮最大的數據延時允許網包,還要考慮有多少數據要傳送。雖然延時對許多應用不是一個主要考慮因素(如當一個產品只是不時地收集數據,定期地被取走),但在一些應用中,延時是以太網拓撲中的限制因素。在需要對緊急情況作出立即反應的地址,如工廠地面上的閥門控制、通信和反應,一定要真正實時地完成。
2 通信、部件和協(xié)議
在基于以太網網絡中有2個常用術語是10BaseT和100BaseT。為了高效地設計一個產品,理解這些術語的含義是很必要的。10BadeT和100BaseT是線速度。線速度和能占用的持續(xù)速度是不同的。通常意義上講,10BaseT線速度是10Mbit/s,100BaseT線速度是100Mbit/s。作為一個共享的資源,所有局域網上的設備都要能互相通信。因此,設備沒有能力百分之百地擁有全部的帶寬。如果真的存在這種情況,其它設備就不能進行任何通信了。由此可知,在100BaseT的連接中,設備可以用100BaseT的解碼機制進行通信,而不是維持100Mbit/s的速度。總吞吐量可以被視作理論吞吐量,而凈吞吐量可以視為實際的流量。
許多應用在設計時遵循所謂的“30%規(guī)則”。簡單講,在有其它設備共享網絡的環(huán)境中,一個設備應被設計為能使用30%的帶寬。在一個100BaseT的網絡中,這意味著30Mbit/s。很明顯,智能化設備網絡意味著設計一個嵌入式產品應用到一個已存在的網絡中。在這里,設計得必須面對此設計要素,即必須估計在這個水平上,將不得不在什么條件下進行工作。
網絡的布線費用通常是網絡中比較貴的部分。由于這個費用,許多其它介質和協(xié)議,尤其是無線,正在被研究用于承載通信。802.11和藍牙是2個無線的協(xié)議。
網絡設備本身的價格在不斷地下落。由于這個原因,許多應用著眼于現存的線路來保持以太網布線。這在樓宇控制應用系統(tǒng)中是很常見的。因為數公里長的485或422的線路已經存在,這些線路通常保留。因為要和樓宇控制外設進行通信。因此,應用系統(tǒng)作為網關,用軟件來橋接遺留的串口協(xié)議和以太網之間的通信。
如今,在許多建筑的物理布線中通常包含標準的、屏蔽或非蔽的雙絞線。不管屏蔽的還是非屏蔽的,雙絞線在抗電磁干擾上是很有效的?;镜牟顒e在于(不比較成本)屏蔽的雙絞線能提供更好的噪音保護。除了從設施中現有部件產生的噪音外,比如電力線、變壓器和發(fā)電機等,線路自身的數據傳輸也會產生噪音。這一情況使得安裝和調試一個新硬件成為一種挑戰(zhàn)。在最壞情況下的可能影響,包括從傳輸燈亮時網絡的不穩(wěn)定,到高速傳輸數據時的數據錯誤。
一種特殊級別的雙絞線名叫5類電纜,可以用于許多普通雙絞線難于應付的情況。5類線支持100Mbit/s數據傳輸,而出錯概率很低。光纖線路也在以太網絡中得到應用,特別是在電磁干擾敏感的環(huán)境中,光纖是抗電磁干擾的,沒有輻射,防竊聽,完全適合極高速率的數據傳輸。
需要強調的是,以太網拓撲與其它網絡拓撲相比是非常不一樣的。拓撲選擇將影響布線的費用。以太網不是基于多跳的網絡,比如10Base-2的雛菊鏈網。以太網拓撲組成的是星狀的配置。星上的每一個設備在物理上要么連在一個集線器上,要么連在一個交換機上。在以太網上,一個設備與另一個設備的通信起處于發(fā)送設備端,然后到它連接的集成器或交換機。
以太網有2種基于類型:平面式和多層結構式。在一個平面式的以太網,連接在一個集線路上的所有設備可以看到這個集線器接角到的所有數據包。這還包括相互連接在一起的集線器上的所有設備。在多層結構式以太網中,由于集線路之間由交換機連接,只有連接在一個集一器上的設備可以看到那些包,此外,交換機還能決定哪些設備可以看到包,而哪些不能。
值得注意的是,不管是平面式還是多層結構式,以太網一個共同的好處是不會受故障設備所牽連;而在雛菊鏈網絡中,一旦1個網絡設備貪婪工作,其它網上設備的通信就無法進行了。在以太網的多層結構網中,數據沖突被最小化了。但它的最大不足就是線路總量和安裝總費用增加了。
3 存儲器的考慮
對一個系統(tǒng)來講,選擇RAM是設計的一個很重要的方面,它會影響到產品的使用環(huán)境以及產品的全面的功能需求。應用本身往往會確定使用何種存儲器。其它因素和成本、實性、產品穩(wěn)定性也會影響RAM的選擇。靜態(tài)RAM以使用方便和速度快而著稱。例如,SRAM的脈沖,通常由1個2-1-1-1的周期組成,意味著它要用2個時鐘周期來取第1個長字,然后每1個時鐘周期取1個。在設計中,SRAM也易于實現。受限制的因素包括低密度的封裝以及較高的價格。
EDORAM和DRAM在老一點的設計中徑常見到。但由于這些類型的RAM曼慢被淘汰,現在很少能見到了。而且,EDORAM很難找到適合嵌入式設計的通用密度(1、2或8MB)。
SDRAM是今天的智能網絡設備中最常見的RAM。SDRAM可用性很好,與SRAM相比,每兆字節(jié)的成本比也不錯。處理器易于和SDRAM交互,而且SDRAM也能提高效率。SDRAM的脈沖周期如果為3-1-1-1,但SDRAM第1個指令獲取之后,每下一個獲取必須與時鐘的上升沿步。DRAM在信號產生上有很地址和列地址之分。行地址和列地址在DRAM類型中都要給出來定位一個存儲器地址。DRAM還有刷新周期,SDRAM有列地址延遲的值,以及需要存儲器控制器控制的其它信號。在處理器中集成一個SRAM、DRAM和SDRAM的控制器在做嵌入式設計時絕對會讓你受益非淺。
許多處理器需要一個負責內存遇像保存和程序執(zhí)行的外部存儲器子系統(tǒng)。對于映像存儲,許多設備使用Flash。Flash有2個大的供應商AMD和Intel。Flash本身與RAM來講是相對較慢的,因此,多數應用中,程序在Flash中的執(zhí)行效率不高——特別是在實時應用中。在大多數的設計中,16位的Flash用來降低成本,而通過在RAM中執(zhí)行映像文件,這種結構被采用后可以不影響產品的運行。
另一種非易失內存為電可擦除可編程只讀存儲器。EEPROM在許多應用中被用于為設備保存配置信息。這些參數通常至少包括MAC地址和IP地址。其它參數可包括子網掩碼、序列號、網關、波特率或其它板級參數。EEPROM可以作為一個簡單靜態(tài)RAM類型設備來被設置和訪問。雖然EEPROM通常很慢,但它一般不會影響到嵌入式設備,因為它的主要用途是在啟動時提供參數。為了高效地選取Flash適應產品,Flash的密度要決定好。決定一個系統(tǒng)中Flash的大小,實際上就決定了設備的材料消耗費(BOM)。在Flash的問題上界限要很好地劃定:太少,則限制了軟件角度上的可裁剪性;太多,則為產品帶來了成本上不必要的增加。
4 增加價值的特性
許多工程開始就有一些限定的要求——使一個產品更快地投放市場和保持一個合理的成本。當產品經受住市場的考驗時,產品修正需要從現存的硬件得到支持。這包括了在保證了附加軟件的設計中,能增加價值的特性。
錄找一個TCP/IP層內存需求羅小的操作系統(tǒng),有助于將材料成本保持在一個較低的價位,因為它對內存的需求減少了。比如,使用NetSilicon的NET+OS集成的硬件和軟件解決方案,操作系統(tǒng)和棧基本上只占用240 KB的內存。加上Web服務器和FTP服務器,整個系統(tǒng)只需310KB就可以啟動了。
當有嵌入式Web服務器的時候,對于Web頁面的構建需要仔細考慮。普通的頁面設計,用來控制和監(jiān)視,350KB以內的Flash仍能滿足使用。但當動態(tài)的GIF文件、復雜的徽標和JPEG文件被引進時,內存的需求會急劇增加。許多設計帶FTP、HTTP和Email功能,加上客戶的應用,0.5MB甚至更少的Flash仍然放得下。放1MB的Flash在板子上可以在板子不用重新設計布線的情況下增加有意義的特性。
RAM用來執(zhí)行指令和數據儲存。因此,最小的RAM也要是Flash的大小加上數據內存和以太緩沖區(qū)的大小。有其它能影響RAM大小的考慮,比如,產品要不要在線升級。在有的機制中,比如NetSilicon公司的Net+Works方案提供的FTP可升級特性,RAM的大小需要是程序映像大小的2倍。比如,剛提到的FTP實現需要的一個保存新程序的緩沖區(qū)。這個緩沖區(qū)會通過網絡接收1個新的映像文件,然后將它保存在RAM的1個區(qū)里。升級例程然后會將新映像燒到Flash中。因此,在這個例子中,內存需求的增加包括可執(zhí)行代碼的大小、另外增加的用于暫時保存升級程序的緩沖區(qū)以及為數據和網絡緩沖區(qū)增加的空間。
最后,堆的大小一定要考慮,堆的大小會有很多職能,如對每一個Socket連接分配內存。具體的例子,如NET+OS中,每一個Socket連接需要大約400字節(jié)。在這種情況下,通常用將執(zhí)行文件大小加倍的方案來確定RAM的大小。
5 執(zhí)行、訪問和速度
在Flash中執(zhí)行,對許多低端應用來說并不壞。如一個簡單的串口到以太網的網關設備,在Flash中運行通常不需要性能上的補償。有一些處理器,如NET+ARM,可以利用內部產生的與Flash相關的信號來獲得效率。例如,對于一個16位的AMD Fash設備,Flash的片選可以接地,從而在100%的時間內,它都是活動的。當電源可以承擔這樣的消耗,此特性可以提高Flash的效率。寫使能和輸出使能信號可以直接從處理器得到。例如,NET+ARM處理器有5個可用的片選。一個普通的寫使能和輸出使能存在于內存外設中。片選0通常用于Flash。我們不將NET+ARM的片選0接到Flash上,也就是不用NET+ARM的片選0的輸出使能和寫使能。與此對應,將Flash上的片選使能接地,而同時寫使能和輸出使能用NET+ARM的26、27地址線來驅動。這樣,數據有效是依賴輸出使能而不是片選使能。從而,就可以繞過與Flash設備相關的幾個慢速訪問周期。
除了理解不同的類型和內存需求,找到正確的內存大小依賴于內存允許的訪問時間。內存速度直接影響傳輸率性能,而傳輸率直接影響到處理器能處理多少數據。內存慢導致取指令慢,接著就降低了整個產品效率。理解這些產品需求中的依賴性對建造一個嵌入式產品是必不可少的。要理解內存速度的需求,需要對NET+ARM了解得更詳細一些。NET+ARM的系統(tǒng)周期在它的總線主控制者之間共享。也就是說,系統(tǒng)時鐘周期在ARM7內核和內部10通道的DMA控制器之間分享。在這樣的設計中,ARM內核每得到一個時鐘周期,DMA也同樣得到一個時鐘周期,在將總線交回下一個控制者之間,總線主控制者被允許可以突發(fā)至4個長字。
下一個較關鍵的性能是時鐘速度。NET+ARM通常使用33MHz的時鐘。這樣就給它的處理時間差據周期的單位數,將結果乘上30ns,再將所得結果乘2,就得到了整個系統(tǒng)時鐘周期的時間。請注意每一個總線控制者都可以突發(fā)至4個字長或16個字節(jié)。整個系統(tǒng)周期基本上是ARM、DMA1、ARM、DMA2,依次類推。我們看一下DMA通道1(以太網接收通道),可以簡單地將每個系統(tǒng)周期移動16個字節(jié)轉換成每秒多少兆字節(jié)。
除了Flash,附加的NVRAM有時會被忽略。許多RTOS廣商推薦使用一些如EEPROM的小型NVRAM設備來存儲配置信息。為了增強易用性,NetSilicon推薦用EEPROM來保存如MAC地址、序列號、IP地址一類的設備配置。當產品的IP地址或配置設定被改動時,程序可以簡單地將新的值寫到EEPROM中,而不需要保存配置信息的Flash的該扇區(qū)重新擦寫。由于需要的EEPROM的容量通常較小,使用的NVRAM設備也是小設備。在NetSilicon公司的NET+ARM開發(fā)包中,有針對MAC地址、IP配置、序列號的程序。利用這些工具可以大大地節(jié)省時間和開發(fā)精力。
板級部件之間的通信有一個通用的機制是內存映射。處理器通常有一個系統(tǒng)總線,由地址和數據總線組成,它們都會被用來與外設進行通信。內存,如Flash和SDRAM,一般會駐留在處理器的系統(tǒng)總線上。其它的外圍部件,如FPGA、LCD顯示、編碼器、其它類型的設備等,也會需要添加到這個總線上。
這一類型的實現通常有2個原因:效率和易用性。與許多其它類型的接口比較,系統(tǒng)總線上的效率是非常重要的。需要慎重考慮的是,究竟是何種其它外設是通過系統(tǒng)總線進行通信的。如果有許多高帶寬的部件要進行通信,那么總線爭用就會出現。從易用性角度出發(fā),所有系統(tǒng)總線上的設備基本上類似于內存。使用智能的內存處理器,可以使得應用的硬件之間的通信容易得如同訪問一內存區(qū)。
緩存的概念,就是檢查每一次內存訪問,看它是否在緩沖區(qū)中。如果不是,一個常規(guī)的內存訪問會進行。如果該地址出現在在緩沖區(qū)中,指令或數據會直接在緩存中存取,而不需要嘗試總線來進行外部的訪問。這樣一來,DMA控制器就可以繼續(xù)使用總線而ARM內核直接從緩存控制器中取得指令。
6 其它網絡因素
以太網通信所需的包含MAC、PHY、1個電壓轉換器和1個連接器。選擇一個集成了MAC的處理器是非常有益處的,因為許多設計部件減少了。
在有外部MAC的情況下,有時附加的內存是需要的。通過集成MAC,系統(tǒng)的成本也會跟著降低。MAC的主要任務包括處理以太網上的沖突情況。當偵測到一個沖突時,MAC會將包放入發(fā)送單元,一直到將包發(fā)送出去為止。
許多應用為了與其它外設進行通信,既需要內部接口,也需要外部接口。內部接口通常是部件之間通信板級接口。許多情況下,處理器的系統(tǒng)總線會用來為外設做內存映射,比如USB、LCD、FPGA、MPEG編碼器等。GPIO(通用I/O)可以用來構造像串行EEPROM的接口設備。除了外部設備(如硬盤或相機)的接口,還可以用來做部件通信相關設備(如Modem、CODEC)接口。
對于很多類型的產品和部件,串行接口是常見的。串行拓撲,如RS232、422、485,在與外部設備通信時經常用到。用到485的有2個主要市場:工業(yè)自動化和樓宇控制。而現在以太網成了很多應用的常見連接方式,就像過去串行、并行連接一樣。無線以太網又增添了遠程的應用和功能,使得以太網可以延伸到那些不可能布線或布線成本太高的地點。802.11和藍牙技術正在被不斷地改進。
7 重啟
重啟也是設計中的關鍵因素。理解什么類型的重啟可用,它們將對系統(tǒng)產生保種影響,以幫助設計者利用特定的情況。在NET+ARM芯片中,有5種重啟可以使用:加電重啟、通過RESET引腳的硬重啟、看門狗重啟、ENI重啟和軟件重啟。
ENI重啟允許NET+ARM被一個外部處理器重啟。這是在NET+ARM作為一個協(xié)處理器負責網絡通信的情況下使用的。加電重啟、硬重啟和看門狗重啟都會導致NET+ARM內部模塊重啟。但ENI重啟卻不會影響到NET+ARM的內存控制器和ENI模塊本身。軟件重啟不會影響ARM處理器、ENI和內存模塊。通過了解可用的重啟類型,就可以在得啟個別部分時無須影響到整個系統(tǒng)。
有2點本文沒有討論,分別是電源的穩(wěn)定性和設備失效后的恢復。當系統(tǒng)中只有一閃存設備時(在成本敏感的設計中往往如此),如果電源失效,閃存就會癱瘓。這種情況如果發(fā)生,就得被迫用另外的方式來訪問處理器。在NET+ARM的設計中,可選的方式包括JTAG連接,它允許編程者獲得處理器的控制來糾正閃存中映像。
8 結論
最有效的系統(tǒng)設計一定要看到未來的發(fā)展并有所計劃。近年來的半導體發(fā)展就反映了這個趨勢。1μm的半導體處理技術被分別由0.8、0.5、0.35、0.25和0.18μm處理技術代替。每一次處理尺寸的縮小,就帶來相關價格的降低和實現性能的提高。例如,早期的NET+ARM設計使用NET+12,現在就可以被NET+40或NET+50所代替。
如果設計得當,了解產品發(fā)展的未來路線和得到NetSilicon公司為客戶所做的硬件設計檢查,使用NET+ARM做設計時如果保證了這三點因素,客戶就可以選擇不同的NET+ARM產品而使用相同的板子。另外,額外的內存和部件的布局設計也可以增加,確保整個系統(tǒng)的設計更通用、能堅持更長的使用時間。通過了解產品需求、理解產品環(huán)境、精心選擇部件、利用集成的方案、在為今天的需求設計產品時能為明天的改進計劃出相應的路線,聰明的設計者可以最大限度地發(fā)揮產品的功效。這些因素會幫助你的設計和產品獲得成功。