當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]基于ARM和eCos的 嵌入式WEB服務器設計

引 言
    隨著現(xiàn)代通信技術(shù)和網(wǎng)絡技術(shù)的迅猛發(fā)展,以太網(wǎng)技術(shù)也越來越成熟,特別是基于TCP/IP通信協(xié)議的Web技術(shù)得到了廣泛應用。我們可以用微控制器加以太網(wǎng)接口芯片,取代PC機進行現(xiàn)場控制,組成嵌入式Web Serv-er系統(tǒng)?,F(xiàn)場傳感器自動跟蹤各監(jiān)測點的信息,把檢測到的數(shù)據(jù)存儲在非易失性存儲器中,并及時發(fā)布到互聯(lián)網(wǎng)上;相關的工作人員就可以通過Web技術(shù)對設備進行遠程控制、管理和維護,從瀏覽器上直接監(jiān)控現(xiàn)場設備的運行,這樣就大大提高了生產(chǎn)效率和管理水平。
    為了實現(xiàn)Web服務器的功能,嵌入式操作系統(tǒng)和一個可實現(xiàn)的TCP/IP協(xié)議棧是必需的,因此對嵌入式處理器提出了更高的要求。與傳統(tǒng)的8/16位單片機相比,ARM核處理器在運算速度、功耗和存儲容量方面都有很大的優(yōu)勢,而且ARM核處理器可以很方便地實現(xiàn)嵌入式TCP/IP協(xié)議棧,所以ARM核處理器成為嵌入式Web服務器設備的首選處理器。系統(tǒng)的設計模型如圖1所示。

1 系統(tǒng)硬件設計
    ARM核處理器LPC2210基于支持實時仿真和嵌入跟蹤的32/16位ARM7TDMI—S CPU。片內(nèi)有16 KBSRAM,通過外部存儲器接口配置成4組,每組的容量達16 MB。LPC2210采用144腳封裝,功耗極低,具有多個32位定時器、8路10位ADC、PWM輸出,最多可提供76個GPIO以及多達9個外部中斷引腳;采用3級流水線技術(shù),極大地提高了指令執(zhí)行效率,通過可編程的片內(nèi)鎖相環(huán)(PLL)可實現(xiàn)最大60 MHz的CPU操作頻率。
    LPC2210的EMC組合符合ARM公司的PL090標準,總線寬度可設置為8位、16位或32位,通常16位總線寬度的存儲器具有較高的性價比。
    以Philips公司的ARM核處理器LPC2210為核心來實現(xiàn)嵌入式Web服務器;網(wǎng)絡接口芯片采用Realtek公司的NE2000兼容芯片RTL8019AS,它內(nèi)置了10BASE—T收發(fā)器,通過HR901170A器件接入以太網(wǎng)。硬件結(jié)構(gòu)如圖2所示。

    在圖1中,LPC2210擴展了2 MB的NOR Flash(芯片型號為SST39VFl60)和8.MB PSRAM(芯片型號為MT45W4Mwl6)。為了方便調(diào)試及最終代碼的固化應用,使用LPC2210外部存儲器接口BankO和Bankl的地址空間,通過片選信號選通nCE_F和nCE_R,來將地址空間Bank0和Bankl分別分配給PSRAM和Flash。通常將代碼固化到Flash,分配Flash為Bank0,PSRAM為Bankl,因為Bank0可以用來引導程序的運行。
    LPC2210的大容量片上存儲器為TCP/IP協(xié)議棧的實現(xiàn)和數(shù)據(jù)處理提供了足夠的存儲空間;利用LPC2210SPI接口擴展MMC/SD卡作為外部非易失性存儲器,可以將ADC現(xiàn)場采集的數(shù)據(jù)、IP地址、網(wǎng)卡物理地址以及更新網(wǎng)頁保存在里面,需要時還可隨時更換MMc/SD卡。LPC2210具有ARM和Thumb指令集,采用流水線處理技術(shù),能在指令執(zhí)行期間預處理下一條指令,極大地提高了指令執(zhí)行效率,為需要快速傳輸數(shù)據(jù)的網(wǎng)絡應用提供了有效的支持。

2 系統(tǒng)軟件設計
    eCos(embedded Configurable operating system,嵌入式可配置操作系統(tǒng))是一種針對16位、32位和64位處理器的可移植嵌入式實時操作系統(tǒng)。由于其源代碼公開,因而越來越多的設計人員開始關注eCos操作系統(tǒng)。eCos最大的特點是模塊化、內(nèi)核可配置。最小版本的eCos只有幾百字節(jié),非常適合小型嵌入式系統(tǒng)的開發(fā)。與嵌入式Linux相比,eCos有配置靈活和節(jié)省資源的優(yōu)勢。它的其他優(yōu)點是使用多任務搶占機制、具有最小的中斷延遲、支持嵌入式系統(tǒng)所需的所有同步原語,并擁有靈活的調(diào)度策略和中斷處理機制。因而eCos具有良好的實時性,與μClinux和μC/OS等操作系統(tǒng)相比,它更適用于處理實時信號的設備,如移動通信、WLAN等通信設備的開發(fā)。

3 eCos的移植
    圖3所示為eCos的移植流程。eCos的移植通過3個子模塊來完成,即體系結(jié)構(gòu)抽象層(Architeeture Hal)、變體抽象層(Variant Hal)和平臺抽象層(Platform Hal)。對一個新的體系結(jié)構(gòu)來說,系統(tǒng)結(jié)構(gòu)抽象層的建立相對來說比較困難。目前,eCos已經(jīng)支持各種主流CPU,也就是說,eCos源碼中包含了CPU的體系結(jié)構(gòu)層和變體抽象層,所以移植工作主要集中在平臺抽象層。

    RedBoot移植是平臺抽象層移植的最好開始。RedBoot是位于硬件抽象層之上的命令行接口,并且包含GDB調(diào)試工具及其調(diào)試stub。一旦硬件抽象層移植到目標板中,RedBoot能將程序加載到目標板中,并且能在目標板上調(diào)試代碼。


4 TCP/IP協(xié)議?!狶wIP的實現(xiàn)
    LwIP是瑞士計算機科學院Adam Dunkles等人開發(fā)的用于嵌入式系統(tǒng)的開放源代碼TCP/IP協(xié)議棧。它既可以移植到操作系統(tǒng)上,也可以在無操作系統(tǒng)的情況下運行。LwIP實現(xiàn)的重點是,在保持TCP協(xié)議主要功能的基礎上,減少對RAM的占用;一般只需要幾十字節(jié)的RAM和40 KB左右的ROM就可以運行,這使得LwIP適合在中低端的嵌入式系統(tǒng)中應用。
    LwIP主要可以分為圖4所示的幾個層次。主要功能模塊有:操作系統(tǒng)模擬層、網(wǎng)絡接口函數(shù)、實現(xiàn)TCP/IP協(xié)議的各部分模塊 (IP、UDP、TCP、IC—MP、ARP)、緩沖和存儲管理子系統(tǒng)、校驗和函數(shù)。
    LwIP API是一組應用程序接口,通過該接口程序員就可以使用LwIP所有的功能。另外,LwIP也為開發(fā)者提供了更加高級的BSD Socket APl,使其可以使用通用的Socket函數(shù)來編寫網(wǎng)絡通信軟件。操作系統(tǒng)模擬層可以使LwIP能夠使用操作系統(tǒng)提供的一些高級管理功能,例如信號量管理、消息隊列管理、創(chuàng)建線程等。

4.1 IP處理
    LwIP僅能實現(xiàn)IP層大部分基本功能。它雖然能夠發(fā)送、接收以及轉(zhuǎn)發(fā)信息包,但不能接收和發(fā)送IP分片包,也不能處理攜帶IP參數(shù)選項的信息包。不過對大多數(shù)的應用來說,這不會成為問題。
    ①接收信息包。對于到達的IP信息包,可由網(wǎng)絡設備驅(qū)動調(diào)用ip_input()函數(shù)開始處理,并在這里完成對IP版本字段及包頭長度的初始完整性檢查,同時還要計算和驗證包頭校驗和。
    ②發(fā)送信息包。外發(fā)的信息包由ip_output()函數(shù)處理,該函數(shù)使用ip_route()函數(shù)查找適當?shù)木W(wǎng)絡接口來傳送信息包。當外發(fā)的網(wǎng)絡接口確定后,信息包傳給以外發(fā)網(wǎng)絡接口為參數(shù)的ip_output_if()函數(shù)。
    ③轉(zhuǎn)發(fā)信息包。如果沒有網(wǎng)絡接口的地址與到達信息包的目標地址相同,信息包應被轉(zhuǎn)發(fā)。這項工作由ip_ forward()函數(shù)完成。
    ④ICMP處理。ICMP處理相當簡單。ip_input()函數(shù)收到的ICMP信息包被移交給icmp_input()函數(shù),后者對ICMP包頭解碼,然后進行適當?shù)膭幼鳌?br />4.2 UDP處理
    UDP是被用來在不同進程問分解信息包的簡單協(xié)議。每個UDP會話的狀態(tài)保存在一個PCB結(jié)構(gòu)體中。UDP PCB保存在一個鏈表中,當一個UDP數(shù)據(jù)包到達時對這個鏈表進行匹配檢索。
4.3 TCP處理
    TCP屬于傳輸層協(xié)議,它為應用層提供了可靠的字節(jié)流服務。對它的描述要比對其他協(xié)議的描述復雜的多,其代碼占了LwIP代碼總量的50%。基本的TCP處理過程被分割為6個功能函數(shù)來實現(xiàn),tcp_input()、tep_ process()及tcp_receive()函數(shù)與TCP輸入有關,tcp_write()、tcp_enqueue()及tcp_output()則用于TCP輸出。TCP的處理過程如圖5所示。

4.4 應用程序接口設計
    LwIP API專為LwIP設計,所以它可以充分利用LwIP的內(nèi)部結(jié)構(gòu)實現(xiàn)其設計目標。LwIP API與BSDAPI類似,但操作相對低級。API不需要在應用程序和協(xié)議棧之間復制數(shù)據(jù),因為應用程序可以巧妙地直接處理內(nèi)部緩沖區(qū)。另外,BSD Socket API易于理解,并且很多應用程序為它而寫,所以LwIP保留一個BSD Socket兼容層是很有用的。
    鑒于TCP/IP協(xié)議棧的處理模式,APl分成兩部分實現(xiàn)。如圖6所示,一部分作為應用程序的連接庫實現(xiàn),另一部分在TCP/IP進程內(nèi)實現(xiàn)。這兩部分之間采用由操作系統(tǒng)模擬層提供的進程間通信機制(IPC)進行通信。當前的實現(xiàn)采用以下3種IPC方式:共享內(nèi)存、消息傳遞和信號量。雖然這些IPC方式被操作系統(tǒng)支持,但它們并不需要操作系統(tǒng)底層支持,實際上是操作系統(tǒng)模擬層在模擬它們。

結(jié) 語
    基于實時內(nèi)核eCos,在嵌入式系統(tǒng)中實現(xiàn)了LwIP協(xié)議棧的移植與優(yōu)化。移植優(yōu)化后的LwIP棧做為一個網(wǎng)絡模塊運行,代碼占用40 KB的ROM,實現(xiàn)了Ethernet/IP/TCP網(wǎng)絡功能,并提供了模塊API,與系統(tǒng)實現(xiàn)無縫連接?;贚wIP的網(wǎng)絡應用任務與其他非網(wǎng)絡應用任務在eGos實時內(nèi)核管理下協(xié)調(diào)運行。進一步增強了協(xié)議棧的網(wǎng)絡安全性與穩(wěn)定性,并開發(fā)相應的的網(wǎng)絡應用程序?!癳Cos/LwIP協(xié)議?!奔軜?gòu)有望應用在信息家電和網(wǎng)絡化的儀器、儀表方面。

本站聲明: 本文章由作者或相關機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術(shù)
關閉
關閉