新聞中心

EEPW首頁 > 消費電子 > 設計應用 > 基于ARM核嵌入式微處理器的以太網應用

基于ARM核嵌入式微處理器的以太網應用

——
作者:歐全梅1,2 時間:2007-01-26 來源:《現代電子技術》 收藏


1 引言

本文引用地址:http://m.butianyuan.cn/article/21321.htm

隨著微電子技術和計算機技術的發(fā)展,嵌入式技術得到廣闊的發(fā)展空間,特別是進入20世紀90年代以來,嵌入式技術的發(fā)展和普及更為引人注目,已經成為現代工業(yè)控制、通信類和消費類產品發(fā)展的方向,在通信領域,眾多網絡設備如voip,wirelesslan,adsl等都包含有大量嵌入式技術的成份,廣播電視在向數字化的趨勢發(fā)展,dvb,dab技術也逐漸在全面推廣起來,個人消費類產品,如pda、數碼相機、mp3播放器等產品都離不開嵌入式技術的支持,嵌入式技術在atm、可視電話、汽車的abs等產品中也都有大量的應用,此外,軍事領域之中也處處可見嵌入式技術的身影,如單兵信息終端,便攜式保密機,戰(zhàn)場指揮系統(tǒng)等,可以說,嵌入式系統(tǒng)已經滲透到人們日常生活以至國家安全防御體系之中。

嵌入式技術發(fā)展的核心是嵌入式微控制芯片技術的發(fā)展,當今微控制芯片功能變得越來越強,種類更為繁多,如mips,powerpc,x86,arm,pic等,但這些嵌入式處理器受到價格以及兼容性等因素要求的限制,應用狀況有所不同,mips和powerpc處理器市場定位較高,對于成本敏感的應用并不合適,而x86系列處理器要與8068、286、386等保持兼容性,使用相同的指令集,從而限制了cpu系統(tǒng)性能的提高,當今嵌入式領域中使用最為廣泛的是基于arm體系結構的嵌入式處理器,其占據了80%以上的32位嵌入式處理器市場份額,從發(fā)展之初至今,arm公司已經推出arm7,arm9,arm9e,arm10,securcore以及intel的strong arm和xscale等一系列的產品。這些不同版本的處理器內核,雖一脈相承,但應用背景不同,例如,arm7系列處理器針對功耗和陳本要求比較苛刻的應用而設計的;而arm9系列處理器主要應用于下一代的無線設備;securcore則是專為安全設備而定制的[1]。

技術的發(fā)展要與實際應用相結合,才能體現出技術進步的價值,嵌入式系統(tǒng)的發(fā)展正如日中天,基于arm核嵌入式微處理器的以太網的嵌入式控制實現也正在國內外如火如荼的展開,以太網在實時操作、可靠傳輸、標準統(tǒng)一等方面的卓越性能及其便于安裝、維護簡單、不受通信距離限制等優(yōu)點,已經被國內外很多監(jiān)控、控制領域的研究人員廣泛關注,并在實際應用中展露出顯著的優(yōu)勢。

2 arm處理器體系的結構

迄今為止,arm體系一共定義了6個版本,版本號為1-6,從版本1到版本6,arm體系的指令集功能不斷增強,同時,各版本中還有一些變種,這些變種定義了該版本指令集中不同的功能。如支持thumb指令集、支持長乘法指令集、增量型dsp指令集、java加速器、媒體功能擴展指令等。這些變種的指令都是針對不同的應用而產生的,arm處理器系列中的各種處理器,由于采用的實現技術各不相同,性能差別很大,應用的場合也有所不同,這必然引出應用程序代碼的可重用性問題,例如:一段在samsung公司的arm處理器上運行良好的代碼,如果把處理器換成了atmel公司的arm處理器,是否也可以穩(wěn)定可靠地工作呢?答案就是只要處理器支持相同的arm體系版本,基于他們的應用軟件將是兼容的。

arm處理器目前包括下面幾個系列的處理器產品:arm7系列、arm9系列,arm9e系列、arm10系列,securcore系列,intel的xscale和strongarm,arm9系列處理器是新近推出且性能比較穩(wěn)定的一個系列,包括arm920t,art922t,arm940t三種類型,適用不同需求的市場,本課題所選用的s3c2410x嵌入式處理器就是以arm920t為核心的。

arm9系列處理器主要特點如下:支持32位arm指令集和16位thumb指令集;5級流水線;單一的32位amba總線接口;mmu支持windows ce。palm os,symbian os,linux等,mpu支持實時操作系統(tǒng),包括vxworks;統(tǒng)一的數據cache和指令cache[2]。

在arm存儲系統(tǒng)中,使用內存管理單元(mmu)實現虛擬地址到實際物理地址的映射。利用mmu,可把sdram的地址完全映射到0x0起始的一片連續(xù)地址空間,而把原來占據這片空間的flash或者rom映射到其他不相沖突的存儲空間位置。例如,flash的地址從0x0000 0000~0x00ff ffff,而sdram的地址范圍是0x3000 0000~ox3lff ffff,則可把sdram地址映射為0x0000 0000~oxlfff ffff而flash的地址可以映射到ox9000 0000~ox90ff ffff(此處地址空間為空閑,未被占用)。映射完成后,如果處理器發(fā)生異常,假設依然為irq中斷,pc指針指向oxl8處的地址,而這個時候pc實際上是從位于物理地址的ox3000 0018處讀取指令。通過mmu的映射,則可實現程序完全運行在sdram之中。在實際的應用中.可能會把兩片不連續(xù)的物理地址空間分配給sdram。而在操作系統(tǒng)中,習慣于把sdram的空間連續(xù)起來,方便內存管理,且應用程序申請大塊的內存時,操作系統(tǒng)內核也可方便地分配。通過mmu可實現不連續(xù)的物理地址空間映射為連續(xù)的虛擬地址空間。操作系統(tǒng)內核或者一些比較關鍵的代碼,一般是不希望被用戶應用程序訪問。通過mmu可以控制地址空間的訪問權限,從而保護這些代碼不被破壞。

mmu的實現過程,實際上就是一個查表映射的過程。建立頁表(translate table)是實現mmu功能不可缺少的一步。頁表是位于系統(tǒng)的內存中,頁表的每一項對應于一個虛擬地址到物理地址的映射。每一項的長度即是一個字的長度(在arm中,一個字的長度被定義為4b)。頁表項除完成虛擬地址到物理地址的映射功能之外,還定義了訪問權限和緩沖特性等。

mmu的映射分為兩種,一級頁表的變換和二級頁表變換。兩者的不同之處就是實現的變換地址空間大小不同。一級頁表變換支持1 m大小的存儲空間的映射,而二級可以支持64 kb,4 kb和1 kb大小地址空間的映射[3]。mmu的一級映射圖如圖1所示。

3 嵌入式處理器的選型

一個系統(tǒng)必然以硬件平臺為依托.設計嵌入式系統(tǒng)時,要從全局以及今后的發(fā)展角度出發(fā)考慮硬件平臺的整體設計,不能以簡單功能實現作為設計的最終目標。在設計過程中,主要需要考慮以下幾個方面:

3.1 芯片選擇

要選擇通用性強、功能完備、穩(wěn)定可靠的芯片。當今的很多處理器芯片,多為基于soc結構,內置很多通用接口控制器,使用簡單且可極大地降低成本;要選擇具有代表性的芯片,市場上的某些芯片只是作為過渡產品銷售,用于原理性、市場性驗證,當芯片功能趨于穩(wěn)定、市場需求較大時,通常會推出一款代表性芯片。對于設計人員來說,需要了解什么型號是具有代表性的,以保證可靠的貨源供應。不同的應用場合,對芯片的級別要求不同,盡可能選擇符合更高標準的芯片,以保證整個系統(tǒng)的穩(wěn)定性和可靠性[4]。

3.2 電路設計上要有處理突發(fā)事件的能力并易于功能擴展

系統(tǒng)在運行的情況下,常會遇到不可預測的外部事件,這就要求系統(tǒng)具有處理突發(fā)事件的能力.如利用看門狗、軟復位措施保證系統(tǒng)遇到非期望事件后可以重新啟動運行。同時系統(tǒng)設計也要考慮到硬件擴展以及升級的能力,如,在設計存儲器結構時,要考慮電路結構可兼容不同容量的存儲器甚至于不同廠家的芯片;如使用可編程邏輯器件cpld或者fpga時,宏單元要有盈余等。

3.3 以軟件代硬件

嵌入式系統(tǒng)的軟件升級要比硬件升級更容易,且在開發(fā)過程中,軟件調試一般不會對硬件造成物理上的損壞。在滿足實時性的前提下,盡可能地用軟件代替硬件。不僅可減小硬件電路的開銷和電路板的尺寸,同時又方便調試,減小了硬件損壞的可能,并進一步降低成本。

3.4 布局布線

嵌入式處理器工作在幾百兆的頻率下已是很常見的事情了,在高頻電路板設計時,要注意電路的布局和信號線的走向,高頻信號要盡量遠離其他信號,盡量減小地彈、串擾等干擾,以及電路中的電磁干擾和熱設計等。

目前,世界上各大芯片生產商紛紛推出自己的arm芯片,其專注的應用背景不同,各有自己的特色。arm7和arm9是目前arm處理器中應用較多、技術成熟的兩大系列arm芯片。相比較而言,arm9系列處理器無論從處理速度、外設接口以及應用范圍等方面都更勝一籌。intel的xscale系列處理器,雖然各方面性能比較突出,但是其較高的定位,并不適合于大多數應用場合。而atmel公司生產的at91rm9200處理器,定位于工業(yè)過程控制,外設接口不夠齊全。

本文選擇了samsung公司的ss3c2410x作為系統(tǒng)的嵌入式處理器。這是一款以arm920t為核心的嵌入式處理器,面向低端應用,價格低廉。該芯片具有較高的處理速度,通過內部的鎖相環(huán),最高可在200 mhz的系統(tǒng)時鐘下運行。并且,s3c2410x具有極低的功耗。核電壓為1.8 v供電,外圍i/o口使用3.3 v的電壓,具有3種低功耗控制方式,甚至可以把cpu中除了喚醒邏輯之外的所有功能都關閉,極大地降低了功耗。與其他的arm芯片相比,s3c2410x在片上集成了更多外設接口。例如:外部存儲器控制器;lcd,dma,usb1.1,sd,mmc卡控制器,uart,spi接口;i2c總線控制器和iis總線控制器,pwm定時器,看門狗,117個外部i/o口,24個外部中斷源,adc和觸摸屏接口,實時時鐘以及片上pll的時鐘產生等。使用集成的接口,可方便地進行功能擴展。

s3c2410x另一個優(yōu)點是具有小巧的外形,嵌入式應用希望硬件尺寸越小越好s3c2410x采取了ubga封裝,整個芯片大小僅為14 mm×14 mm,相當于普通人拇指指甲的大小。雖然在如此小的體積上,集成了如此之多的功能,但其價格與普通處理器相當。從各種方面考慮,s3c2410x具有極高的性價比以及應用價值,且易于開發(fā)和功能擴展,因此很適合作為嵌入式系統(tǒng)的中央處理器。

4 以太網模塊實現

s3c2410x本身并無網絡控制器,實現以太網接入需增加獨立的以太網控制器。以太網控制器芯片選用cirrus公司的cs8900a。他是一個真正的單芯片,全雙工以太網解決方案。本身集成了由mac層到phy層所有的邏輯功能,包括了一個以太網電路所必需的所有的模擬和數字電路。芯片可以自動檢查連接狀態(tài),單獨進行載波偵聽、沖突檢測、錯誤重傳以及自動填充、crc校驗等功能。對于處理器來說,對網絡芯片的訪問和控制,如同一段內存空間或者是分配的幾個i/o空間一樣。集成了一個4 kb的片上存儲器,用于臨時保存發(fā)送和接收到的物理幀以及內部寄存器的值,從而減輕了cpu的負擔,簡化了軟件的復雜度。cs8900a還支持軟件復位,當由于某些預料之外的事件發(fā)生,致使芯片功能紊亂網絡通信阻斷,可通過軟件復位重新啟動網絡通信功能,保證網絡通信的健壯性。

以太網與cpu的示意性連接如圖2所示,cs8900a與cpu可以使用dma,i/o以及memory方式通信。為了提高與處理器間的訪問速度,圖中把cs8900a設計為memory模式。cs8900a復位默認方式為i/o模式,雖可通過e2prom將其配置為memory模式,但處于降低成本考慮,把電路設計為i/o,memory兼容的連接方式,由軟件將其設置為memory模式。相對于s3c2410x的訪問周期來說,cs8900a響應時間大于其訪問周期,屬慢速設備。可通過nwait信號延長處理器的訪問周期。使用全局復位信號作為芯片的復位信號,利用高電平觸發(fā)中斷,通知cpu事件的發(fā)生。

5 結語

隨著電路中信號頻率的提高,嵌入式系統(tǒng)中高速電路板設計已經成為沒計人員非常關心的問題了。因此在系統(tǒng)設計過程中,還要考慮當信號速度高,端接元件的布局不正確或者高速信號的錯誤布局等引起的信號完整性問題,這些問題都可能導致系統(tǒng)輸出不正確的數據,電路不能正常工作甚至完全不能工作。

本文設計的系統(tǒng)充分考慮到走線技巧。對外加電源以及dc—dc變換輸出,利川22μf的電解電容和o.01μf的陶瓷電容濾波;在芯片的每個電源引腳,就近使用o.1μf的濾波電容;cpu的片選、讀寫、中斷等信號線串聯22ω的電阻,達到阻抗匹配的目的;對數據線、地址線等,進行等長處理;時鐘線對其進行包地保護;利用eda工具的在線檢查功能,避免了人造環(huán)路的產生等。采取這些措施后,整個系統(tǒng)多次在不同環(huán)境連續(xù)運行數百小時以上未出現任何故障,足以證明其良好的穩(wěn)定性和可靠性。



關鍵詞:

評論


相關推薦

技術專區(qū)

關閉