摘要:介紹了一種嵌入式WEB服務器的設計與實現(xiàn),實現(xiàn)了以太網(wǎng)與CAN總線網(wǎng)絡的直接互連,使用戶可以使用PC機通過Internet進行遠程訪問和控制Web服務器,從而能夠?qū)?a href="http://www.www27dydycom.cn/v/" target="_blank">工業(yè)現(xiàn)場測控層監(jiān)測設備得到的數(shù)據(jù)方便快捷地送到異地的管理監(jiān)控層。
在企業(yè)自動化的工業(yè)現(xiàn)場,下層車間的監(jiān)測設備之間都是采用現(xiàn)場總線相互連接,而企業(yè)的管理層和生產(chǎn)監(jiān)控層都是連于以太網(wǎng)的PC,甚至是位于異地的連于互連網(wǎng)上的PC。為了使工業(yè)現(xiàn)場的現(xiàn)場總線上的設備和管理監(jiān)控層之間的PC能夠通信,同時改善故障檢測和設備維護的遠程訪問能力,筆者在CAN總線網(wǎng)與以太網(wǎng)的互連系統(tǒng)中設計了一個嵌入式WEB服務器。
1 嵌入式WEB服務器硬件設計
通常嵌入式系統(tǒng)硬件包括微控制器、存儲器及外設器件和I/O端口等,其核心是嵌入式微控制器。為適應上網(wǎng)需求,嵌入式微控制器不僅要具有傳統(tǒng)的控制功能,還要具有與因特網(wǎng)連接的功能。而Ubicom公司的SX52芯片能比較容易實現(xiàn)TCP/IP協(xié)議,選擇它作為微控制器。關于傳輸媒質(zhì),采用最常用的連接模式即通過以太網(wǎng)連接Internet,利用網(wǎng)絡接口控制器RTL8019AS實現(xiàn)數(shù)據(jù)鏈路層協(xié)議。RTL8019AS采用***Realtek公司生產(chǎn)的RTL8019AS芯片。
嵌入式WEB服務器硬件結(jié)構(gòu)框圖如圖1所示。
嵌入式WEB服務器用SX52微控制器作為處理器,以太網(wǎng)驅(qū)動芯片RTL8019AS經(jīng)耦合隔離濾波器HR61101G和RJ45接口接入以太網(wǎng),配有RS232和CAN總線兩個擴展接口,可以將具有RS232接口的設備或采用CAN總線協(xié)議通信的設備連到以太網(wǎng)上。RS232接口采用MAX232CPE芯片,CAN總線控制器采用Philips公司的SJAl000芯片,CAN收發(fā)器采用Philips公司的PCA82C250。
圖1
數(shù)據(jù)的流向為:請求和控制信息從局域網(wǎng)中來,通過nJ45送到RTL8019AS,RTL8019AS負責將以太網(wǎng)幀的首部和尾部信息剝離,將處理后的數(shù)據(jù)包送入SX52的TCP/IP協(xié)議棧,由協(xié)議棧對數(shù)據(jù)包進行解析,得到原始的請求和控制信息。請求和控制信息再經(jīng)過SJAl000進行CAN協(xié)議格式的數(shù)據(jù)封裝,再與現(xiàn)場的CAN總線設備進行通信。請求和控制的回復信息到局域網(wǎng)的過程正好相反。
在嵌入式WEB服務器的硬件設計中,在確保通信功能順利實現(xiàn)的同時,充分利用了SX52芯片I/O口靈活配置的特點,最大程度地節(jié)約了微控制器SX52的硬件資源。
圖2為WEB服務器主要芯片連接電路簡圖,結(jié)合本圖詳細分析系統(tǒng)硬件設計。
1.1 RTL8019AS驅(qū)動程序?qū)崿F(xiàn)
RTLS019AS是***Realtek公司制造的一種高集成度的全雙工10Mbps以太網(wǎng)控制芯片,實現(xiàn)了基于Ethernet協(xié)議的MAC層的全部功能,內(nèi)置16KB的SRAM、雙DMA通道和FIFO完成數(shù)據(jù)包的接收和發(fā)送功能。在網(wǎng)關設計中,使用跳線模式(JP置為高)來硬配置RTLS019AS為8位模式;使用了RTL8019的低五位地址線A0~A4以及低8位數(shù)據(jù)線D0~D7。為滿足RTL8019AS的ISA時序,RTL8019AS高端地址A5~A19須設置為0X300。SX52的B口的B0~B4腳作為地址線連接RTL8019AS的低5位地址線,B5~B7作為控制線分別連接讀寫時序控制腳IORB、IOWB、IOCHRDY;C口作為數(shù)據(jù)線連接RTLS019AS的低8位數(shù)據(jù)線;A口保留,用作日后擴展。設計中采用AT24C64這樣一個8KB的EEPROM來保存WEB服務器的配置信息,如網(wǎng)關IP地址、MAC地址和SJAl000的ID網(wǎng)絡標示符、網(wǎng)絡掩碼AMR和總線定時(BTR0、BTR1)等。這樣就能夠靈活方便地修改網(wǎng)關參數(shù),適應不同環(huán)境,同時也考慮到以后的擴展。
圖2
要實現(xiàn)嵌入式WEB服務器接入以太網(wǎng),就要對RTL8019AS進行編程,完成以太網(wǎng)幀的數(shù)據(jù)收發(fā),相當于實現(xiàn)PC機中網(wǎng)卡的驅(qū)動程序功能。首先要對RTL8019AS進行復位,并將其設置為跳線模式;然后對RTL8019AS的工作參數(shù)進行設置,以使其開始工作;接下來讀寫RTL8019AS的RAM以完成數(shù)據(jù)包的接收和發(fā)送。程序流程如圖3所示。
1.2 TCP/IP協(xié)議棧的實現(xiàn)
并不是所有的協(xié)議在嵌入式WEB服務器中都要實現(xiàn),應根據(jù)項目要求有選擇地加以實現(xiàn)。以太網(wǎng)數(shù)據(jù)的傳輸采用MAC地址來識別,而ARP協(xié)議提供IP地址和數(shù)據(jù)鏈路層使用的MAC地址之間的轉(zhuǎn)換功能,為了保證系統(tǒng)在以太網(wǎng)的通信,首先要實現(xiàn)ARP協(xié)議;由于嵌入式WEB服務器要能在Internet上通信,在網(wǎng)絡層一定要實現(xiàn)IP協(xié)議,還要實現(xiàn)能報告數(shù)據(jù)傳送差錯等情況的ICMP協(xié)議;在應用層,主要實現(xiàn)遠端主機通過瀏覽器的訪問控制方式,所以要實現(xiàn)HTTP協(xié)議。而HTTP協(xié)議是基于TCP協(xié)議實現(xiàn)傳輸?shù)?,加上TCP協(xié)議是面向可靠的數(shù)據(jù)流的傳輸,基于應用的需要和對可靠性的要求,在傳輸層采用TCP協(xié)議,并對TCP協(xié)議進行簡化處理,主要針對HTTP協(xié)議開發(fā)TCP協(xié)議。
由于嵌入式系統(tǒng)的資源有限,因此將TCP/IP協(xié)議最大幅度精簡,以提高程序的運行速度,減少在SX52存儲器中占用的空間。TCP/IP協(xié)議棧主流程圖如圖4所示。
精簡協(xié)議主要遵循以下兩個原則:
(1)協(xié)議內(nèi)容精簡
嵌入式WEB服務器的實現(xiàn)需要ARP、IP、TCP、ICMP等網(wǎng)絡協(xié)議的支持,每一個完整協(xié)議都很龐大,在存儲容量并不大的SX52上全部實現(xiàn)是不現(xiàn)實的。應該在保證實現(xiàn)網(wǎng)絡通信基本功能的前提下盡可能地精簡協(xié)議,確定出協(xié)議的哪一部分是必需的,哪一部分可以省略,以滿足系統(tǒng)要求。
(2)協(xié)議接口層次明確
TCP/IP協(xié)議分布在鏈路層、網(wǎng)絡層、傳輸層和應用層上,是分層實現(xiàn)的,每一層只負責處理通信過程中的一部分問題,其它層不能實現(xiàn)其功能。采用模塊化的設計思路,如果需要修改哪個協(xié)議,只需修改相應模塊的功能,其它模塊不用改動。協(xié)議分層簡化了程序的設計和調(diào)試,每層的協(xié)議相互獨立,使協(xié)議的開發(fā)更高效。在網(wǎng)絡系統(tǒng)中,按照分層的思想,從網(wǎng)絡最底層開始每一層都為高層提供服務,明確層間接口對軟件開發(fā)十分重要。
2 嵌入式WEB服務器應用程序的實現(xiàn)
Brower/Server(簡稱B/S)模式已經(jīng)成為流行的開發(fā)模式,課題中的嵌入式WEB服務器要實現(xiàn)的功能主要是現(xiàn)場實時數(shù)據(jù)發(fā)布功能。B/S訪問模式是WEBServer和Browser之間的直接訪問??蛻艉头掌鏖g的中間節(jié)點不對HTTP請求及響應做任何操作,只需在客戶端采用如IE這樣的瀏覽器對服務器上的數(shù)據(jù)進行瀏覽,不用開發(fā)客戶端程序。采用B/S結(jié)構(gòu)具有如下優(yōu)勢:
·具有分布性特點,可以隨時隨地進行業(yè)務處理;
·系統(tǒng)維護或升級只在服務器端,對客戶端無須進行改動,只需要改變服務器端網(wǎng)頁,即可實現(xiàn)所有用戶的同步更新,易于維護和升級;
·開發(fā)簡單,共享性強。
圖4
B/S訪問模式只需對服務器端程序進行開發(fā)。在服務器端形成動態(tài)網(wǎng)頁最常用的工具有ASP和JSP。由于采用的嵌入式芯片SX52只有4KB存儲容量,在SX52中既實現(xiàn)TCP/IP協(xié)議棧,又實現(xiàn)ASP和JSP的功能是很困難的。所以可以采用字節(jié)傳輸方式針對SX52用匯編語言編程實現(xiàn)動態(tài)網(wǎng)頁。
Java applet能夠被傳送到瀏覽器并且在瀏覽器所在的本地機上運行。本設計正是利用了這一特性改進了傳統(tǒng)的B/S模式設計出的應用程序,Java applet對于管理和處理動態(tài)數(shù)據(jù)也是一種行之有效的技術(shù)。Java applet能實時表示從輪詢得到的更新信息,利用這個特性顯示實時數(shù)據(jù)。所以程序客戶端采用Java applet設計實現(xiàn)。
嵌入式WEB服務器接入以太網(wǎng)時,在程序中設置了自身的IP地址和MAC地址,可以與局域網(wǎng)上任一臺微機通信。服務器端主要實現(xiàn)兩部分功能:利用HTTP協(xié)議實現(xiàn)網(wǎng)頁瀏覽功能和利用套接字編程實現(xiàn)與客戶端applet通信的功能。服務器程序用SX52的匯編語言實現(xiàn)。
在WEB服務器中實現(xiàn)HTTP協(xié)議才能實現(xiàn)網(wǎng)頁文件的瀏覽。方案中將WEB服務器上擴展的EEPROM與SX52相連,用來存儲要瀏覽的WEB文件,EEPROM里的WEB內(nèi)容采用原始數(shù)據(jù)的形式存儲,沒有進行封裝和編碼。文本內(nèi)容以ASCⅡ碼形式存儲,圖像內(nèi)容以二進制數(shù)據(jù)形式存儲。
相關推薦
一種嵌入式Web服務器的設計方案

實現(xiàn)嵌入式Web服務器設計的方法
嵌入式WEB服務器常見的有哪些
嵌入式WEB服務器的相關資料分享
嵌入式Web服務器BOA怎么在ARM9上移植?
嵌入式Web服務器Embedthis Appweb 4.2.0相關資料下載
嵌入式Web服務器為什么不使用jetty
嵌入式Web服務器的設計與實現(xiàn)
嵌入式web服務器的設計資料,絕對實用
嵌入式FTP服務器能實現(xiàn)什么功能?
嵌入式監(jiān)控系統(tǒng)的視頻服務器該如何去設計?
Jetty可以作為一個嵌入式的Web服務器嗎
Jupiter處理器在嵌入式網(wǎng)關中有哪些應用?
S3C2440是如何去移植嵌入式Web服務器的
為什么要使用嵌入式服務器?
介紹嵌入式Web服務器的工作原理
在嵌入式設備中所使用的web服務器主要有哪些
在uIP協(xié)議棧實現(xiàn)基于AJAX和CGI的動態(tài)Web服務器
基于嵌入式Web服務器的智能家居系統(tǒng)設計
基于ARM和Linux的嵌入式Web服務器的構(gòu)建及應用
基于Android的嵌入式Web服務器該怎么設計?
基于Jupiter處理器的嵌入式網(wǎng)關平臺有什么功能?
基于Linux的WEB服務器增加了哪些功能?
基于ZigBee無線組網(wǎng)技術(shù)和嵌入式Web服務器
如何實現(xiàn)嵌入式Web服務器的設計?
如何實現(xiàn)對嵌入式WEB服務器系統(tǒng)的控制設計
如何使用Apache FtpServer實現(xiàn)嵌入式FTP服務器
如何去構(gòu)筑可現(xiàn)場控制的嵌入式Web服務器?
如何移植web服務器呢
如何設計一個基于TCP/IP協(xié)議的嵌入式網(wǎng)絡打印服務器?
如何配置嵌入式服務器
尋找!嵌入式linux利用web端服務器升級
常見的嵌入式web服務器有哪些
怎么實現(xiàn)基于嵌入式WEB的視頻服務器的設計?
怎樣去設計一種基于Linux的嵌入式網(wǎng)絡攝像機呢
移植Boa(web服務器)到嵌入式Linux系統(tǒng)
移植Boa(web服務器)到嵌入式Linux系統(tǒng)
請問一下遠程測控中嵌入式Web服務器的FPGA的實現(xiàn)方法
請問怎樣去設計一種嵌入式Web服務器系統(tǒng)?
采用嵌入式處理器PXA270與ARM-Linux相結(jié)合的Web服務器構(gòu)建
采用GR47和MCU實現(xiàn)無線嵌入式Web Server
基于ARM的嵌入式uClinux系統(tǒng)設計與Web服務器應用的

基于ARMLinux新型嵌入式Web服務器設計

嵌入式Web 服務器的分析與研究

CAN 總線的嵌入式Web 服務器設計

嵌入式WEB服務器中TCP/IP協(xié)議棧的設計與實現(xiàn)

基于ARM的嵌入式Web服務器的研究與實現(xiàn)

基于SOPC的嵌入式Web服務器設計與實現(xiàn)

嵌入式Web服務器的設計與研究

基于Linux的WEB服務器的設計與實現(xiàn)


嵌入式Web服務器的實現(xiàn)及其CGI應用

基于Android的嵌入式Web服務器設計

嵌入式Web服務器BOA移植與測試設計概述


嵌入式web服務器

嵌入式web服務器系統(tǒng)設計,嵌入式Web服務器的設計與實現(xiàn)

嵌入式web服務器系統(tǒng)設計,基于-ARM簡單嵌入式WEB服務器系統(tǒng)設計.doc

嵌入式web服務器系統(tǒng),嵌入式Web服務器的設計與實現(xiàn)

嵌入式Web服務器的實現(xiàn)及其CGI應用

基于單片機的嵌入式web服務器設計與實現(xiàn)

基于ARM平臺的嵌入式WEB服務器的設計與實現(xiàn)

評論