1 引言
隨著微電子技術(shù)和計(jì)算機(jī)技術(shù)的發(fā)展,,嵌入式技術(shù)得到廣闊的發(fā)展空間,,特別是進(jìn)入20世紀(jì)90年代以來(lái),,嵌入式技術(shù)的發(fā)展和普及更為引人注目,,已經(jīng)成為現(xiàn)代工業(yè)控制,、通信類(lèi)和消費(fèi)類(lèi)產(chǎn)品發(fā)展的方向,在通信領(lǐng)域,,眾多網(wǎng)絡(luò)設(shè)備如VOIP,,WirelessLAN,ADSL等都包含有大量嵌入式技術(shù)的成份,,廣播電視在向數(shù)字化的趨勢(shì)發(fā)展,,DVB,DAB技術(shù)也逐漸在全面推廣起來(lái),,個(gè)人消費(fèi)類(lèi)產(chǎn)品,,如PDA、數(shù)碼ARM以太網(wǎng)應(yīng)用相機(jī),、MP3播放器等產(chǎn)品都離不開(kāi)嵌入式技術(shù)的支持,,嵌入式技術(shù)在ATM、可視電話(huà),、汽車(chē)的ABS等產(chǎn)品中也都有大量的應(yīng)用,,此外,軍事領(lǐng)域之中也處處可見(jiàn)嵌入式技術(shù)的身影,,如單兵信息終端,,便攜式保密機(jī),戰(zhàn)場(chǎng)指揮系統(tǒng)等,,可以說(shuō),,嵌入式系統(tǒng)已經(jīng)滲透到人們?nèi)粘rm以太網(wǎng)應(yīng)用生活以至國(guó)家安全防御體系之中。
嵌入式技術(shù)發(fā)展的核心是嵌入式微控制芯片技術(shù)的ARM以太網(wǎng)應(yīng)用發(fā)展,,當(dāng)今微控制芯片功能變得越來(lái)越強(qiáng),,種類(lèi)更為繁多,如MIPS,,PowerPC,,X86,ARM,PIC等,,但這些嵌入式處理器受到價(jià)格以及兼容性等因素要求的限制,應(yīng)用狀況有所不同,,MIPS和PowerPC處理器市場(chǎng)定位較高,,對(duì)于成本敏感的應(yīng)用并不合適,而x86系列處理器要與8068,、286,、386等保持兼容性,使用相同的指令集,,從而限制了CPU系統(tǒng)性能的提高,,當(dāng)今嵌入式領(lǐng)域中使用ARM以太網(wǎng)應(yīng)用最為廣泛的是基于ARM體系結(jié)構(gòu)的嵌入式處理器,其占據(jù)了80%以上的32位嵌入式處理器市場(chǎng)份額,,從發(fā)展之初至今,,ARM公司已經(jīng)推出ARM7,ARM9,,ARM9E,,ARM10,SecurCore以及Intel的Strong ARM和Xscale等一系列的產(chǎn)品,。這些不同版本的處理器內(nèi)核,,雖一脈相承,但應(yīng)用背景ARM以太網(wǎng)應(yīng)用不同,,例如,,ARM7系列處理器針對(duì)功耗和陳本要求比較苛刻的應(yīng)用而設(shè)計(jì)的;而arm9系列處理器主要應(yīng)用于下一代的無(wú)線(xiàn)設(shè)備,;SecurCore則是專(zhuān)為安全設(shè)備而定制的[1],。
技術(shù)的發(fā)展要與實(shí)際應(yīng)用相結(jié)合,才能體現(xiàn)出技術(shù)ARM以太網(wǎng)應(yīng)用進(jìn)步的價(jià)值,,嵌入式系統(tǒng)的發(fā)展正如日中天,,基于ARM核嵌入式微處理器的以太網(wǎng)的嵌入式控制實(shí)現(xiàn)也正在國(guó)內(nèi)外如火如荼的展開(kāi),以太網(wǎng)在實(shí)時(shí)操作,、可靠傳輸,、標(biāo)準(zhǔn)統(tǒng)一等方面的卓越性能及其便于安裝、維護(hù)簡(jiǎn)單,、不受通信距離限制等優(yōu)點(diǎn),,已經(jīng)被國(guó)內(nèi)外很多arm以太網(wǎng)應(yīng)用監(jiān)控、控制領(lǐng)域的研究人員廣泛關(guān)注,,并在實(shí)際應(yīng)用中展露出顯著的優(yōu)勢(shì),。
2 ARM處理器體系arm以太網(wǎng)應(yīng)用的結(jié)構(gòu)
迄今為止,ARM體系一共定義了6個(gè)版本,,版本號(hào)為1-6,,從版本1到版本6,,ARM體系的指令集功能不斷增強(qiáng),同時(shí),,各版本中還有一些變種,,這些變種定義了該版本指令集ARM以太網(wǎng)應(yīng)用中不同的功能。如支持Thumb指令集,、支持長(zhǎng)乘法指令集,、增量型DSP指令集、JAVA加速器,、媒體功能擴(kuò)展指令等,。這些變種的指令都是針對(duì)不同的應(yīng)用而產(chǎn)生的,ARM處理器系列中的各種處理器,,由于采用的實(shí)現(xiàn)技術(shù)各不相同,,性能差別很大,應(yīng)用的場(chǎng)合也有所不同,,這必然引出應(yīng)用程序代碼的可重用性問(wèn)題,,例如:一段在SAMSUNG公司的ARM處理器上運(yùn)行良好的代碼,如果把處理器換成了ATMEL公司的ARM處理器,,是否也可以穩(wěn)定可靠地ARM以太網(wǎng)應(yīng)用工作呢,?答案就是只要處理器支持相同的arm體系版本,基于他們的應(yīng)用軟件將是兼容的,。
ARM處理器目前包括下面幾個(gè)系列的處理器ARM以太網(wǎng)應(yīng)用產(chǎn)品:ARM7系列,、ARM9系列,ARM9E系列,、ARM10系列,,SecurCore系列,Intel的Xscale和StrongARM,,ARM9系列處理器是新近推出且性能比較穩(wěn)定的一個(gè)系列,,包括ARM920T,ART922T,,ARM940T三種類(lèi)型,,適用不同需求的市場(chǎng),本課題所選用的S3C2410X嵌入式處理器就是以arm920T為核心的,。
ARM9系列處理器主要特點(diǎn)如下:支持32位ARM指令集arm以太網(wǎng)應(yīng)用和16位Thumb指令集,;5級(jí)流水線(xiàn);單一的32位AMBA總線(xiàn)接口,;MMU支持Windows CE,。Palm OS,Symbian OS,Linux等,,MPU支持實(shí)時(shí)操作系統(tǒng),,包括Vxworks;統(tǒng)一的數(shù)據(jù)Cache和指令Cache[2],。
在arm存儲(chǔ)系統(tǒng)中,,使用內(nèi)存管理單元(MMU)實(shí)現(xiàn)arm以太網(wǎng)應(yīng)用虛擬地址到實(shí)際物理地址的映射。利用MMU,,可把SDRAM的地址完全映射到0x0起始的一片連續(xù)地址空間,,而把原來(lái)占據(jù)這片空間的FLASH或者ROM映射到其他不相沖突的存儲(chǔ)空間位置,。例如,,F(xiàn)LASH的地址從0x0000 0000~0x00ff ffff,而SDRAM的地址范圍ARM以太網(wǎng)應(yīng)用是0x3000 0000~Ox3lff ffff,,則可把SDRAM地址映射為0x0000 0000~Oxlfff ffff而FLASH的地址可以映射到Ox9000 0000~Ox90ffffff(此處地址空間為空閑,,未被占用)。映射完成后,,如果處理器發(fā)生異常,,假設(shè)依然為IRQ中斷,PC指針指向Oxl8處的地址,,而這個(gè)時(shí)候PC實(shí)際上是從位于物理地址的Ox3000 0018處讀取指令,。通過(guò)MMU的映射,則可實(shí)現(xiàn)程序完全運(yùn)行在SDRAM之中,。在實(shí)際的應(yīng)用中.可能會(huì)把兩片不連續(xù)的物理地址空間分配給SDRAM,。而在操作系統(tǒng)中,習(xí)慣于arm以太網(wǎng)應(yīng)用把SDRAM的空間連續(xù)起來(lái),,方便內(nèi)存管理,,且應(yīng)用程序申請(qǐng)大塊的內(nèi)存時(shí),操作系統(tǒng)內(nèi)核也可方便地分配,。通過(guò)MMU可實(shí)現(xiàn)不連續(xù)的物理地址空間映射為連續(xù)的虛擬地址空間,。操作系統(tǒng)內(nèi)核或者一些比較關(guān)鍵的代碼,一般是不希望被用戶(hù)應(yīng)用程序訪(fǎng)問(wèn),。通過(guò)MMU可以控制地址空間的訪(fǎng)問(wèn)權(quán)限,,從而保護(hù)這些代碼不被破壞。
MMU的實(shí)現(xiàn)過(guò)程,,實(shí)際上就是一個(gè)查表映射ARM以太網(wǎng)應(yīng)用的過(guò)程,。建立頁(yè)表(translate table)是實(shí)現(xiàn)MMU功能不可缺少的一步。頁(yè)表是位于系統(tǒng)的內(nèi)存中,,頁(yè)表的每一項(xiàng)對(duì)應(yīng)于一個(gè)虛擬地址到物理地址的映射,。每一項(xiàng)的長(zhǎng)度即是一個(gè)字的長(zhǎng)度(在ARM中,一個(gè)字的長(zhǎng)度被定義為4B)。頁(yè)表項(xiàng)除完成虛擬地址到物理地址的映射arm以太網(wǎng)應(yīng)用功能之外,,還定義了訪(fǎng)問(wèn)權(quán)限和緩沖特性等,。
MMU的映射分為兩種,一級(jí)頁(yè)表的變換和二級(jí)頁(yè)表變換,。兩者的不同之處就是實(shí)現(xiàn)的變換地址空間大小不同,。一級(jí)頁(yè)表變換支持1 M大小的存儲(chǔ)空間的映射,而二級(jí)可以支持64 kB,,4 kB和1 kB大小地址空間的映射[3],。
3 嵌入式處理器的選型
一個(gè)系統(tǒng)必然以硬件平臺(tái)為依托.設(shè)計(jì)嵌入式系統(tǒng)時(shí),要從全局arm以太網(wǎng)應(yīng)用以及今后的發(fā)展角度出發(fā)考慮硬件平臺(tái)的整體設(shè)計(jì),,不能以簡(jiǎn)單功能實(shí)現(xiàn)作為設(shè)計(jì)的最終目標(biāo),。在設(shè)計(jì)過(guò)程中,主要需要考慮以下幾個(gè)方面:
3.1 芯片選擇
要選擇通用性強(qiáng),、功能完備,、穩(wěn)定可靠ARM以太網(wǎng)應(yīng)用的芯片。當(dāng)今的很多處理器芯片,,多為基于SoC結(jié)構(gòu),,內(nèi)置很多通用接口控制器,使用簡(jiǎn)單且可極大地降低成本,;要選擇具有代表性的芯片,,市場(chǎng)上的某些芯片只是作為過(guò)渡產(chǎn)品銷(xiāo)售,用于原理性,、市場(chǎng)性驗(yàn)證,,當(dāng)芯片功能趨于穩(wěn)定、市場(chǎng)需求較大時(shí),,通常會(huì)推出一款代表性芯片,。對(duì)于設(shè)計(jì)人員來(lái)說(shuō),需要了解什么型號(hào)是具有代表性的,,以保證可靠的貨源供應(yīng),。不同的應(yīng)用場(chǎng)合,對(duì)芯片的級(jí)別要求arm以太網(wǎng)應(yīng)用不同,,盡可能選擇符合更高標(biāo)準(zhǔn)的芯片,,以保證整個(gè)系統(tǒng)的穩(wěn)定性和可靠性[4]。
3.2 電路設(shè)計(jì)上要有處理突發(fā)事件的能力并易于功能arm以太網(wǎng)應(yīng)用擴(kuò)展
系統(tǒng)在運(yùn)行的情況下,,常會(huì)遇到不可預(yù)測(cè)的外部事件,,這就要求系統(tǒng)具有處理突發(fā)事件的能力.如利用看門(mén)狗、軟復(fù)位措施保證系統(tǒng)遇到非期望事件后可以重新啟動(dòng)運(yùn)行,。同時(shí)系統(tǒng)設(shè)計(jì)也要考慮到硬件擴(kuò)展以及升級(jí)的能力,,如,,在設(shè)計(jì)存儲(chǔ)器結(jié)構(gòu)時(shí),要考慮電路結(jié)構(gòu)可兼容不同容量的存儲(chǔ)器甚至于不同廠家的arm以太網(wǎng)應(yīng)用芯片,;如使用可編程邏輯器件CPLD或者FPGA時(shí),,宏單元要有盈余等。
3.3 以軟件代硬件
嵌入式系統(tǒng)的軟件升級(jí)要比硬件升級(jí)更容易,,且在開(kāi)發(fā)過(guò)程中,,軟件調(diào)試一般不會(huì)對(duì)硬件造成物理上的損壞。在滿(mǎn)足實(shí)時(shí)性的前提下,,盡可能地用軟件代替硬件,。不僅可減小硬件arm以太網(wǎng)應(yīng)用電路的開(kāi)銷(xiāo)和電路板的尺寸,同時(shí)又方便調(diào)試,,減小了硬件損壞的可能,,并進(jìn)一步降低成本。
3.4 布局布線(xiàn)
嵌入式處理器工作在幾百兆的頻率下已是很常見(jiàn)arm以太網(wǎng)應(yīng)用的事情了,,在高頻電路板設(shè)計(jì)時(shí),,要注意電路的布局和信號(hào)線(xiàn)的走向,,高頻信號(hào)要盡量遠(yuǎn)離其他信號(hào),,盡量減小地彈、串?dāng)_等干擾,,以及電路中的電磁干擾和熱設(shè)計(jì)等,。
目前,世界上各大芯片生產(chǎn)商紛紛推出自己的ARM芯片,,其專(zhuān)注的應(yīng)用背景不同,,各有自己的特色。ARM7和ARM9是目前ARM處理器中應(yīng)用較多,、技術(shù)成熟的兩大系列ARM芯片,。相比較而言,ARM9系列處理器無(wú)論從處理速度,、外設(shè)接口以及應(yīng)用范圍等方面都更勝一籌,。Intel的Xscale系列處理器,雖然各方面性能比較突出,,但是其較高的定位,,并不適合于大多數(shù)應(yīng)用場(chǎng)合。而ATMEL公司生產(chǎn)的AT91RM9200處理器,,定位于工業(yè)過(guò)程控制,,外設(shè)接口不夠arm以太網(wǎng)應(yīng)用齊全。
本文選擇了SAMSUNG公司的SS3C2410X作為系統(tǒng)的嵌入式處理器,。這是一款以ARM920T為核心的嵌入式處理器,,面向低端應(yīng)用,,價(jià)格低廉。該芯片具有較高的處理速度,,通過(guò)內(nèi)部的鎖相環(huán),,最高可在200
MHz的系統(tǒng)時(shí)鐘下運(yùn)行。并且,,S3C2410X具有極低的功耗,。核電壓為1.8 V供電,外圍I/O口使用3.3
V的電壓,,具有3種低功耗控制方式,,甚至可以把CPU中除了喚醒邏輯之外的所有功能都關(guān)閉,極大地降低了功耗,。與其他的ARM芯片相比,,S3C2410X在片上集成了更多外設(shè)接口。例如:外部存儲(chǔ)器控制器,;LCD,,DMA,USB1.1,,SD,,MMC卡控制器,UART,,SPI接口,;I2C總線(xiàn)控制器和IIS總線(xiàn)控制器,PWM定時(shí)器,,看門(mén)狗,,117個(gè)外部I/O口,24個(gè)外部中斷源,,ADC和觸摸屏接口,,實(shí)時(shí)時(shí)鐘以及片上PLL的時(shí)鐘arm以太網(wǎng)應(yīng)用產(chǎn)生等。使用集成的接口,,可方便地進(jìn)行功能擴(kuò)展,。
S3C2410X另一個(gè)優(yōu)點(diǎn)是具有小巧的外形,嵌入式應(yīng)用希望硬件尺寸越小越好S3C2410X采取了uBGA封裝,,整個(gè)芯片大小僅為14 mm×14 mm,,相當(dāng)于普通人拇指指甲的大小。雖然在如此小的體積上,,集成了如此之多的功能,,但其價(jià)格與普通處理器相當(dāng)。從各種方面考慮,,S3C2410X具有極高的性?xún)r(jià)比以及應(yīng)用價(jià)值,,且易于開(kāi)發(fā)和功能擴(kuò)展,,因此很適合作為嵌入式系統(tǒng)的中央處理器。
4 以太網(wǎng)模塊實(shí)現(xiàn)
S3C2410X本身并無(wú)網(wǎng)絡(luò)控制器,,實(shí)現(xiàn)以太網(wǎng)接入需增加獨(dú)立的以太網(wǎng)控制器,。以太網(wǎng)控制器芯片選用CIRRUS公司的CS8900a。他是一個(gè)真正的單芯片,,全雙工以太網(wǎng)解決方案,。本身集成了由MAC層到PHY層所有的邏輯功能,包括了一個(gè)以太網(wǎng)電路所必需的所有的模擬和數(shù)字電路,。芯片可以自動(dòng)檢查連接狀態(tài),,單獨(dú)進(jìn)行載波偵聽(tīng)、沖突檢測(cè),、錯(cuò)誤重傳以及自動(dòng)填充,、CRC校驗(yàn)等功能。對(duì)于處理器來(lái)說(shuō),,對(duì)網(wǎng)絡(luò)芯片的訪(fǎng)問(wèn)和控制,,如同一段內(nèi)存arm以太網(wǎng)應(yīng)用空間或者是分配的幾個(gè)I/O空間一樣。集成了一個(gè)4 kB的片上存儲(chǔ)器,,用于臨時(shí)保存發(fā)送和接收到的物理幀以及內(nèi)部寄存器的值,,從而減輕了CPU的負(fù)擔(dān),簡(jiǎn)化了軟件的復(fù)雜度,。CS8900A還支持軟件復(fù)位,,當(dāng)由于某些預(yù)料之外的事件發(fā)生,,致使芯片功能紊亂網(wǎng)絡(luò)通信阻斷,,可通過(guò)軟件復(fù)位重新啟動(dòng)網(wǎng)絡(luò)通信功能,保證網(wǎng)絡(luò)通信的健壯性,。
以太網(wǎng)與CPU的示意性連接如圖2所示,,CS8900A與CPU可以arm以太網(wǎng)應(yīng)用使用DMA,I/O以及Memory方式通信,。為了提高與處理器間的訪(fǎng)問(wèn)速度,,圖中把CS8900A設(shè)計(jì)為Memory模式。CS8900A復(fù)位默認(rèn)方式為I/O模式,,雖可通過(guò)E2PROM將其配置為Memory模式,,但處于降低成本考慮,把電路設(shè)計(jì)為I/O,,Memory兼容的連接方式,,由軟件將其設(shè)置為Memory模式。相對(duì)于S3C2410X的訪(fǎng)問(wèn)周期來(lái)說(shuō),,CS8900A響應(yīng)時(shí)間大于其訪(fǎng)問(wèn)周期,,屬慢速設(shè)備,。可通過(guò)nWait信號(hào)延長(zhǎng)處理器的訪(fǎng)問(wèn)周期,。使用全局復(fù)位信號(hào)作為芯片的復(fù)位信號(hào),,利用高電平觸發(fā)中斷,通知CPU事件的發(fā)生,。
5 結(jié)語(yǔ)
隨著電路中信號(hào)頻率的提高,,嵌入式系統(tǒng)中高速電路板設(shè)計(jì)已經(jīng)成為沒(méi)計(jì)人員非常關(guān)心的問(wèn)題了。因此在系統(tǒng)設(shè)計(jì)過(guò)程中,,還要考慮當(dāng)信號(hào)速度高,,端接元件的布局不正確或者高速信號(hào)的錯(cuò)誤布局等引起的信號(hào)完整性問(wèn)題,這些問(wèn)題都可能導(dǎo)致系統(tǒng)輸出不正確的數(shù)據(jù),,電路不能正常工作甚至完全不能工作,。
本文設(shè)計(jì)的系統(tǒng)充分考慮到走線(xiàn)技巧。對(duì)外加電源以及DC—DC變換輸出,,利川22μF的電解電容和O.01μF的陶瓷電容濾波,;在芯片的每個(gè)電源引腳,就近使用O.1μF的濾波電容,;CPU的片選,、讀寫(xiě)、中斷等信號(hào)線(xiàn)串聯(lián)22Ω的電阻,,達(dá)到阻抗匹配的目的,;對(duì)數(shù)據(jù)線(xiàn)、地址線(xiàn)等,,進(jìn)行等長(zhǎng)處理,;時(shí)鐘線(xiàn)對(duì)其進(jìn)行包地保護(hù);利用EDA工具的在線(xiàn)檢查功能,,避免了人造環(huán)路的產(chǎn)生等,。采取這些措施后,整個(gè)系統(tǒng)多次在不同環(huán)境連續(xù)運(yùn)行數(shù)百小時(shí)以上未出現(xiàn)任何故障,,足以證明其良好的穩(wěn)定性和可靠性,。