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