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