|
嵌入式開發(fā)課程培訓(xùn)班_基于ARM處理器為基礎(chǔ)以太網(wǎng)的嵌入式,
為了在面向物聯(lián)網(wǎng)的應(yīng)用中,完成對(duì)RFID讀卡器以及傳感器模塊數(shù)據(jù)的網(wǎng)絡(luò)傳輸,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于ARM7的以太網(wǎng)終端平臺(tái)。針對(duì)低成本嵌入式系統(tǒng)資源匱乏的問題,提出了把瀏覽器請(qǐng)求當(dāng)作函數(shù)調(diào)用的辦法,在平臺(tái)上實(shí)現(xiàn)了動(dòng)態(tài)網(wǎng)頁(yè)服務(wù)。
1 引言
隨著微電子技術(shù)和計(jì)算機(jī)技術(shù)的發(fā)展,嵌入式技術(shù)得到廣闊的發(fā)展空間,特別是進(jìn)入20世紀(jì)90年代以來,嵌入式技術(shù)的發(fā)展和普及更為引人注目,已經(jīng)成為現(xiàn)代工業(yè)控制、通信類和消費(fèi)類產(chǎn)品發(fā)展的方向,在通信領(lǐng)域,眾多網(wǎng)絡(luò)設(shè)備如VOIP,WirelessLAN,ADSL等都包含有大量嵌入式技術(shù)的成份,廣播電視在向數(shù)字化的趨勢(shì)發(fā)展,DVB,DAB技術(shù)也逐漸在全面推廣起來,個(gè)人消費(fèi)類產(chǎn)品,如PDA、數(shù)碼ARM以太網(wǎng)應(yīng)用相機(jī)、MP3播放器等產(chǎn)品都離不開嵌入式技術(shù)的支持,嵌入式技術(shù)在ATM、可視電話、汽車的ABS等產(chǎn)品中也都有大量的應(yīng)用,此外,軍事領(lǐng)域之中也處處可見嵌入式技術(shù)的身影,如單兵信息終端,便攜式保密機(jī),戰(zhàn)場(chǎng)指揮系統(tǒng)等,可以說,嵌入式系統(tǒng)已經(jīng)滲透到人們?nèi)粘rm以太網(wǎng)應(yīng)用生活以至國(guó)家安全防御體系之中。
嵌入式技術(shù)發(fā)展的核心是嵌入式微控制芯片技術(shù)的ARM以太網(wǎng)應(yīng)用發(fā)展,當(dāng)今微控制芯片功能變得越來越強(qiáng),種類更為繁多,如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)用于下一代的無線設(shè)備;SecurCore則是專為安全設(shè)備而定制的。
技術(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)外如火如荼的展開,以太網(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)用程序代碼的可重用性問題,例如:一段在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三種類型,適用不同需求的市場(chǎng),本課題所選用的S3C2410X嵌入式處理器就是以arm920T為核心的。
ARM9系列處理器主要特點(diǎn)如下:支持32位ARM指令集arm以太網(wǎng)應(yīng)用和16位Thumb指令集;5級(jí)流水線;單一的32位AMBA總線接口;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ù)地址空間,而把原來占據(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處讀取指令。通過MMU的映射,則可實(shí)現(xiàn)程序完全運(yùn)行在SDRAM之中。在實(shí)際的應(yīng)用中.可能會(huì)把兩片不連續(xù)的物理地址空間分配給SDRAM。而在操作系統(tǒng)中,習(xí)慣于arm以太網(wǎng)應(yīng)用把SDRAM的空間連續(xù)起來,方便內(nèi)存管理,且應(yīng)用程序申請(qǐng)大塊的內(nèi)存時(shí),操作系統(tǒng)內(nèi)核也可方便地分配。通過MMU可實(shí)現(xiàn)不連續(xù)的物理地址空間映射為連續(xù)的虛擬地址空間。操作系統(tǒng)內(nèi)核或者一些比較關(guān)鍵的代碼,一般是不希望被用戶應(yīng)用程序訪問。通過MMU可以控制地址空間的訪問權(quán)限,從而保護(hù)這些代碼不被破壞。
MMU的實(shí)現(xiàn)過程,實(shí)際上就是一個(gè)查表映射ARM以太網(wǎng)應(yīng)用的過程。建立頁(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)用功能之外,還定義了訪問權(quán)限和緩沖特性等。
MMU的映射分為兩種,一級(jí)頁(yè)表的變換和二級(jí)頁(yè)表變換。兩者的不同之處就是實(shí)現(xiàn)的變換地址空間大小不同。一級(jí)頁(yè)表變換支持1 M大小的存儲(chǔ)空間的映射,而二級(jí)可以支持64 kB,4 kB和1 kB大小地址空間的映射。
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ì)過程中,主要需要考慮以下幾個(gè)方面:
3.1 芯片選擇日立嵌入式室內(nèi)機(jī), 嵌入式試題中斷向量, 改行做嵌入式, 學(xué)嵌入式買哪本書, head嵌入式熱板, 嵌入式wifi驅(qū)動(dòng), 嵌入式汽車儀表設(shè)計(jì), 單片機(jī)嵌入式課程, 傳智博客嵌入式, 嵌入式任務(wù)切換, 嵌入式學(xué)徒深圳, 華清培訓(xùn)嵌入式視屏, 嵌入式主板怎么畫, 嵌入式分區(qū)和掛載, 嵌入式linux分區(qū), 嵌入式養(yǎng)生壺, 嵌入式轉(zhuǎn)行大數(shù)據(jù), 學(xué)習(xí)嵌入式的心得, 嵌入式電影屏幕, 嵌入式百葉窗代碼, 嵌入式時(shí)鐘顯示代碼, 嵌入式照相機(jī), 嵌入式2410中斷,
要選擇通用性強(qiáng)、功能完備、穩(wěn)定可靠ARM以太網(wǎng)應(yīng)用的芯片。當(dāng)今的很多處理器芯片,多為基于SoC結(jié)構(gòu),內(nèi)置很多通用接口控制器,使用簡(jiǎn)單且可極大地降低成本;要選擇具有代表性的芯片,市場(chǎng)上的某些芯片只是作為過渡產(chǎn)品銷售,用于原理性、市場(chǎng)性驗(yàn)證,當(dāng)芯片功能趨于穩(wěn)定、市場(chǎng)需求較大時(shí),通常會(huì)推出一款代表性芯片。對(duì)于設(shè)計(jì)人員來說,需要了解什么型號(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ā)事件的能力.如利用看門狗、軟復(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í)更容易,且在開發(fā)過程中,軟件調(diào)試一般不會(huì)對(duì)硬件造成物理上的損壞。在滿足實(shí)時(shí)性的前提下,盡可能地用軟件代替硬件。不僅可減小硬件arm以太網(wǎng)應(yīng)用電路的開銷和電路板的尺寸,同時(shí)又方便調(diào)試,減小了硬件損壞的可能,并進(jìn)一步降低成本。
3.4 布局布線
嵌入式處理器工作在幾百兆的頻率下已是很常見arm以太網(wǎng)應(yīng)用的事情了,在高頻電路板設(shè)計(jì)時(shí),要注意電路的布局和信號(hào)線的走向,高頻信號(hào)要盡量遠(yuǎn)離其他信號(hào),盡量減小地彈、串?dāng)_等干擾,以及電路中的電磁干擾和熱設(shè)計(jì)等。
目前,世界上各大芯片生產(chǎn)商紛紛推出自己的ARM芯片,其專注的應(yīng)用背景不同,各有自己的特色。ARM7和ARM9是目前ARM處理器中應(yīng)用較多、技術(shù)成熟的兩大系列ARM芯片。相比較而言,ARM9系列處理器無論從處理速度、外設(shè)接口以及應(yīng)用范圍等方面都更勝一籌。Intel的Xscale系列處理器,雖然各方面性能比較突出,但是其較高的定位,并不適合于大多數(shù)應(yīng)用場(chǎng)合。而ATMEL公司生產(chǎn)的AT91RM9200處理器,定位于工業(yè)過程控制,外設(shè)接口不夠arm以太網(wǎng)應(yīng)用齊全。
本文選擇了SAMSUNG公司的SS3C2410X作為系統(tǒng)的嵌入式處理器。這是一款以ARM920T為核心的嵌入式處理器,面向低端應(yīng)用,價(jià)格低廉。該芯片具有較高的處理速度,通過內(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總線控制器和IIS總線控制器,PWM定時(shí)器,看門狗,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具有極高的性價(jià)比以及應(yīng)用價(jià)值,且易于開發(fā)和功能擴(kuò)展,因此很適合作為嵌入式系統(tǒng)的中央處理器。
4 以太網(wǎng)模塊實(shí)現(xiàn)
S3C2410X本身并無網(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)行載波偵聽、沖突檢測(cè)、錯(cuò)誤重傳以及自動(dòng)填充、CRC校驗(yàn)等功能。對(duì)于處理器來說,對(duì)網(wǎng)絡(luò)芯片的訪問和控制,如同一段內(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ò)通信阻斷,可通過軟件復(fù)位重新啟動(dòng)網(wǎng)絡(luò)通信功能,保證網(wǎng)絡(luò)通信的健壯性。
以太網(wǎng)與CPU的示意性連接如圖2所示,CS8900A與CPU可以arm以太網(wǎng)應(yīng)用使用DMA,I/O以及Memory方式通信。為了提高與處理器間的訪問速度,圖中把CS8900A設(shè)計(jì)為Memory模式。CS8900A復(fù)位默認(rèn)方式為I/O模式,雖可通過E2PROM將其配置為Memory模式,但處于降低成本考慮,把電路設(shè)計(jì)為I/O,Memory兼容的連接方式,由軟件將其設(shè)置為Memory模式。相對(duì)于S3C2410X的訪問周期來說,CS8900A響應(yīng)時(shí)間大于其訪問周期,屬慢速設(shè)備?赏ㄟ^nWait信號(hào)延長(zhǎng)處理器的訪問周期。使用全局復(fù)位信號(hào)作為芯片的復(fù)位信號(hào),利用高電平觸發(fā)中斷,通知CPU事件的發(fā)生。
5 結(jié)語(yǔ)
隨著電路中信號(hào)頻率的提高,嵌入式系統(tǒng)中高速電路板設(shè)計(jì)已經(jīng)成為沒計(jì)人員非常關(guān)心的問題了。因此在系統(tǒng)設(shè)計(jì)過程中,還要考慮當(dāng)信號(hào)速度高,端接元件的布局不正確或者高速信號(hào)的錯(cuò)誤布局等引起的信號(hào)完整性問題,這些問題都可能導(dǎo)致系統(tǒng)輸出不正確的數(shù)據(jù),電路不能正常工作甚至完全不能工作。
本文設(shè)計(jì)的系統(tǒng)充分考慮到走線技巧。對(duì)外加電源以及DC—DC變換輸出,利川22μF的電解電容和O.01μF的陶瓷電容濾波;在芯片的每個(gè)電源引腳,就近使用O.1μF的濾波電容;CPU的片選、讀寫、中斷等信號(hào)線串聯(lián)22Ω的電阻,達(dá)到阻抗匹配的目的;對(duì)數(shù)據(jù)線、地址線等,進(jìn)行等長(zhǎng)處理;時(shí)鐘線對(duì)其進(jìn)行包地保護(hù);利用EDA工具的在線檢查功能,避免了人造環(huán)路的產(chǎn)生等。采取這些措施后,整個(gè)系統(tǒng)多次在不同環(huán)境連續(xù)運(yùn)行數(shù)百小時(shí)以上未出現(xiàn)任何故障,足以證明其良好的穩(wěn)定性和可靠性。 |
|