摘要:介紹了一種嵌入式WEB服務(wù)器的設(shè)計與實現(xiàn),實現(xiàn)了以太網(wǎng)與CAN總線網(wǎng)絡(luò)的直接互連,使用戶可以使用PC機(jī)通過Internet進(jìn)行遠(yuǎn)程訪問和控制Web服務(wù)器,從而能夠?qū)?a href="http://m.xsypw.cn/v/" target="_blank">工業(yè)現(xiàn)場測控層監(jiān)測設(shè)備得到的數(shù)據(jù)方便快捷地送到異地的管理監(jiān)控層。
在企業(yè)自動化的工業(yè)現(xiàn)場,下層車間的監(jiān)測設(shè)備之間都是采用現(xiàn)場總線相互連接,而企業(yè)的管理層和生產(chǎn)監(jiān)控層都是連于以太網(wǎng)的PC,甚至是位于異地的連于互連網(wǎng)上的PC。為了使工業(yè)現(xiàn)場的現(xiàn)場總線上的設(shè)備和管理監(jiān)控層之間的PC能夠通信,同時改善故障檢測和設(shè)備維護(hù)的遠(yuǎn)程訪問能力,筆者在CAN總線網(wǎng)與以太網(wǎng)的互連系統(tǒng)中設(shè)計了一個嵌入式WEB服務(wù)器。
1 嵌入式WEB服務(wù)器硬件設(shè)計
通常嵌入式系統(tǒng)硬件包括微控制器、存儲器及外設(shè)器件和I/O端口等,其核心是嵌入式微控制器。為適應(yīng)上網(wǎng)需求,嵌入式微控制器不僅要具有傳統(tǒng)的控制功能,還要具有與因特網(wǎng)連接的功能。而Ubicom公司的SX52芯片能比較容易實現(xiàn)TCP/IP協(xié)議,選擇它作為微控制器。關(guān)于傳輸媒質(zhì),采用最常用的連接模式即通過以太網(wǎng)連接Internet,利用網(wǎng)絡(luò)接口控制器RTL8019AS實現(xiàn)數(shù)據(jù)鏈路層協(xié)議。RTL8019AS采用***Realtek公司生產(chǎn)的RTL8019AS芯片。
嵌入式WEB服務(wù)器硬件結(jié)構(gòu)框圖如圖1所示。
嵌入式WEB服務(wù)器用SX52微控制器作為處理器,以太網(wǎng)驅(qū)動芯片RTL8019AS經(jīng)耦合隔離濾波器HR61101G和RJ45接口接入以太網(wǎng),配有RS232和CAN總線兩個擴(kuò)展接口,可以將具有RS232接口的設(shè)備或采用CAN總線協(xié)議通信的設(shè)備連到以太網(wǎng)上。RS232接口采用MAX232CPE芯片,CAN總線控制器采用Philips公司的SJAl000芯片,CAN收發(fā)器采用Philips公司的PCA82C250。
圖1
數(shù)據(jù)的流向為:請求和控制信息從局域網(wǎng)中來,通過nJ45送到RTL8019AS,RTL8019AS負(fù)責(zé)將以太網(wǎng)幀的首部和尾部信息剝離,將處理后的數(shù)據(jù)包送入SX52的TCP/IP協(xié)議棧,由協(xié)議棧對數(shù)據(jù)包進(jìn)行解析,得到原始的請求和控制信息。請求和控制信息再經(jīng)過SJAl000進(jìn)行CAN協(xié)議格式的數(shù)據(jù)封裝,再與現(xiàn)場的CAN總線設(shè)備進(jìn)行通信。請求和控制的回復(fù)信息到局域網(wǎng)的過程正好相反。
在嵌入式WEB服務(wù)器的硬件設(shè)計中,在確保通信功能順利實現(xiàn)的同時,充分利用了SX52芯片I/O口靈活配置的特點,最大程度地節(jié)約了微控制器SX52的硬件資源。
圖2為WEB服務(wù)器主要芯片連接電路簡圖,結(jié)合本圖詳細(xì)分析系統(tǒng)硬件設(shè)計。
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)關(guān)設(shè)計中,使用跳線模式(JP置為高)來硬配置RTLS019AS為8位模式;使用了RTL8019的低五位地址線A0~A4以及低8位數(shù)據(jù)線D0~D7。為滿足RTL8019AS的ISA時序,RTL8019AS高端地址A5~A19須設(shè)置為0X300。SX52的B口的B0~B4腳作為地址線連接RTL8019AS的低5位地址線,B5~B7作為控制線分別連接讀寫時序控制腳IORB、IOWB、IOCHRDY;C口作為數(shù)據(jù)線連接RTLS019AS的低8位數(shù)據(jù)線;A口保留,用作日后擴(kuò)展。設(shè)計中采用AT24C64這樣一個8KB的EEPROM來保存WEB服務(wù)器的配置信息,如網(wǎng)關(guān)IP地址、MAC地址和SJAl000的ID網(wǎng)絡(luò)標(biāo)示符、網(wǎng)絡(luò)掩碼AMR和總線定時(BTR0、BTR1)等。這樣就能夠靈活方便地修改網(wǎng)關(guān)參數(shù),適應(yīng)不同環(huán)境,同時也考慮到以后的擴(kuò)展。
圖2
要實現(xiàn)嵌入式WEB服務(wù)器接入以太網(wǎng),就要對RTL8019AS進(jìn)行編程,完成以太網(wǎng)幀的數(shù)據(jù)收發(fā),相當(dāng)于實現(xiàn)PC機(jī)中網(wǎng)卡的驅(qū)動程序功能。首先要對RTL8019AS進(jìn)行復(fù)位,并將其設(shè)置為跳線模式;然后對RTL8019AS的工作參數(shù)進(jìn)行設(shè)置,以使其開始工作;接下來讀寫RTL8019AS的RAM以完成數(shù)據(jù)包的接收和發(fā)送。程序流程如圖3所示。
1.2 TCP/IP協(xié)議棧的實現(xiàn)
并不是所有的協(xié)議在嵌入式WEB服務(wù)器中都要實現(xiàn),應(yīng)根據(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服務(wù)器要能在Internet上通信,在網(wǎng)絡(luò)層一定要實現(xiàn)IP協(xié)議,還要實現(xiàn)能報告數(shù)據(jù)傳送差錯等情況的ICMP協(xié)議;在應(yīng)用層,主要實現(xiàn)遠(yuǎn)端主機(jī)通過瀏覽器的訪問控制方式,所以要實現(xiàn)HTTP協(xié)議。而HTTP協(xié)議是基于TCP協(xié)議實現(xiàn)傳輸?shù)模由蟃CP協(xié)議是面向可靠的數(shù)據(jù)流的傳輸,基于應(yīng)用的需要和對可靠性的要求,在傳輸層采用TCP協(xié)議,并對TCP協(xié)議進(jìn)行簡化處理,主要針對HTTP協(xié)議開發(fā)TCP協(xié)議。
由于嵌入式系統(tǒng)的資源有限,因此將TCP/IP協(xié)議最大幅度精簡,以提高程序的運行速度,減少在SX52存儲器中占用的空間。TCP/IP協(xié)議棧主流程圖如圖4所示。
精簡協(xié)議主要遵循以下兩個原則:
(1)協(xié)議內(nèi)容精簡
嵌入式WEB服務(wù)器的實現(xiàn)需要ARP、IP、TCP、ICMP等網(wǎng)絡(luò)協(xié)議的支持,每一個完整協(xié)議都很龐大,在存儲容量并不大的SX52上全部實現(xiàn)是不現(xiàn)實的。應(yīng)該在保證實現(xiàn)網(wǎng)絡(luò)通信基本功能的前提下盡可能地精簡協(xié)議,確定出協(xié)議的哪一部分是必需的,哪一部分可以省略,以滿足系統(tǒng)要求。
(2)協(xié)議接口層次明確
TCP/IP協(xié)議分布在鏈路層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層上,是分層實現(xiàn)的,每一層只負(fù)責(zé)處理通信過程中的一部分問題,其它層不能實現(xiàn)其功能。采用模塊化的設(shè)計思路,如果需要修改哪個協(xié)議,只需修改相應(yīng)模塊的功能,其它模塊不用改動。協(xié)議分層簡化了程序的設(shè)計和調(diào)試,每層的協(xié)議相互獨立,使協(xié)議的開發(fā)更高效。在網(wǎng)絡(luò)系統(tǒng)中,按照分層的思想,從網(wǎng)絡(luò)最底層開始每一層都為高層提供服務(wù),明確層間接口對軟件開發(fā)十分重要。
2 嵌入式WEB服務(wù)器應(yīng)用程序的實現(xiàn)
Brower/Server(簡稱B/S)模式已經(jīng)成為流行的開發(fā)模式,課題中的嵌入式WEB服務(wù)器要實現(xiàn)的功能主要是現(xiàn)場實時數(shù)據(jù)發(fā)布功能。B/S訪問模式是WEBServer和Browser之間的直接訪問??蛻艉头?wù)器間的中間節(jié)點不對HTTP請求及響應(yīng)做任何操作,只需在客戶端采用如IE這樣的瀏覽器對服務(wù)器上的數(shù)據(jù)進(jìn)行瀏覽,不用開發(fā)客戶端程序。采用B/S結(jié)構(gòu)具有如下優(yōu)勢:
·具有分布性特點,可以隨時隨地進(jìn)行業(yè)務(wù)處理;
·系統(tǒng)維護(hù)或升級只在服務(wù)器端,對客戶端無須進(jìn)行改動,只需要改變服務(wù)器端網(wǎng)頁,即可實現(xiàn)所有用戶的同步更新,易于維護(hù)和升級;
·開發(fā)簡單,共享性強(qiáng)。
圖4
B/S訪問模式只需對服務(wù)器端程序進(jìn)行開發(fā)。在服務(wù)器端形成動態(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能夠被傳送到瀏覽器并且在瀏覽器所在的本地機(jī)上運行。本設(shè)計正是利用了這一特性改進(jìn)了傳統(tǒng)的B/S模式設(shè)計出的應(yīng)用程序,Java applet對于管理和處理動態(tài)數(shù)據(jù)也是一種行之有效的技術(shù)。Java applet能實時表示從輪詢得到的更新信息,利用這個特性顯示實時數(shù)據(jù)。所以程序客戶端采用Java applet設(shè)計實現(xiàn)。
嵌入式WEB服務(wù)器接入以太網(wǎng)時,在程序中設(shè)置了自身的IP地址和MAC地址,可以與局域網(wǎng)上任一臺微機(jī)通信。服務(wù)器端主要實現(xiàn)兩部分功能:利用HTTP協(xié)議實現(xiàn)網(wǎng)頁瀏覽功能和利用套接字編程實現(xiàn)與客戶端applet通信的功能。服務(wù)器程序用SX52的匯編語言實現(xiàn)。
在WEB服務(wù)器中實現(xiàn)HTTP協(xié)議才能實現(xiàn)網(wǎng)頁文件的瀏覽。方案中將WEB服務(wù)器上擴(kuò)展的EEPROM與SX52相連,用來存儲要瀏覽的WEB文件,EEPROM里的WEB內(nèi)容采用原始數(shù)據(jù)的形式存儲,沒有進(jìn)行封裝和編碼。文本內(nèi)容以ASCⅡ碼形式存儲,圖像內(nèi)容以二進(jìn)制數(shù)據(jù)形式存儲。
相關(guān)推薦
一種嵌入式Web服務(wù)器的設(shè)計方案
![](https://skin.elecfans.com/images/2021-soft/eye.png)
實現(xiàn)嵌入式Web服務(wù)器設(shè)計的方法
嵌入式WEB服務(wù)器常見的有哪些
嵌入式WEB服務(wù)器的相關(guān)資料分享
嵌入式WEB服務(wù)器網(wǎng)關(guān)系統(tǒng)的研究與實現(xiàn)
嵌入式Web服務(wù)器BOA怎么在ARM9上移植?
嵌入式Web服務(wù)器Embedthis Appweb 4.2.0相關(guān)資料下載
嵌入式Web服務(wù)器為什么不使用jetty
嵌入式Web服務(wù)器的設(shè)計與實現(xiàn)
嵌入式web服務(wù)器的設(shè)計資料,絕對實用
嵌入式FTP服務(wù)器能實現(xiàn)什么功能?
嵌入式監(jiān)控系統(tǒng)的視頻服務(wù)器該如何去設(shè)計?
Jetty可以作為一個嵌入式的Web服務(wù)器嗎
Jupiter處理器在嵌入式網(wǎng)關(guān)中有哪些應(yīng)用?
S3C2440是如何去移植嵌入式Web服務(wù)器的
為什么要使用嵌入式服務(wù)器?
介紹嵌入式Web服務(wù)器的工作原理
在嵌入式設(shè)備中所使用的web服務(wù)器主要有哪些
在uIP協(xié)議棧實現(xiàn)基于AJAX和CGI的動態(tài)Web服務(wù)器
基于Web服務(wù)器的遠(yuǎn)程控制系統(tǒng)該如何去實現(xiàn)?
基于嵌入式Web服務(wù)器的智能家居系統(tǒng)設(shè)計
基于ARM和Linux的嵌入式Web服務(wù)器的構(gòu)建及應(yīng)用
基于Android的嵌入式Web服務(wù)器該怎么設(shè)計?
基于Jupiter處理器的嵌入式網(wǎng)關(guān)平臺有什么功能?
基于Linux的WEB服務(wù)器增加了哪些功能?
基于ZigBee無線組網(wǎng)技術(shù)和嵌入式Web服務(wù)器
如何實現(xiàn)嵌入式Web服務(wù)器的設(shè)計?
如何實現(xiàn)對嵌入式WEB服務(wù)器系統(tǒng)的控制設(shè)計
如何使用Apache FtpServer實現(xiàn)嵌入式FTP服務(wù)器
如何去構(gòu)筑可現(xiàn)場控制的嵌入式Web服務(wù)器?
如何在TM1300上實現(xiàn)Web服務(wù)?
如何移植web服務(wù)器呢
如何設(shè)計一個基于TCP/IP協(xié)議的嵌入式網(wǎng)絡(luò)打印服務(wù)器?
如何配置嵌入式服務(wù)器
尋找!嵌入式linux利用web端服務(wù)器升級
常見的嵌入式web服務(wù)器有哪些
怎么實現(xiàn)基于嵌入式WEB的視頻服務(wù)器的設(shè)計?
怎樣去設(shè)計一種基于Linux的嵌入式網(wǎng)絡(luò)攝像機(jī)呢
怎樣在開發(fā)板上去搭建一個基于boa的web服務(wù)器呢
移植Boa(web服務(wù)器)到嵌入式Linux系統(tǒng)
移植Boa(web服務(wù)器)到嵌入式Linux系統(tǒng)
請問一下遠(yuǎn)程測控中嵌入式Web服務(wù)器的FPGA的實現(xiàn)方法
請問怎樣去設(shè)計一種嵌入式Web服務(wù)器系統(tǒng)?
采用嵌入式處理器PXA270與ARM-Linux相結(jié)合的Web服務(wù)器構(gòu)建
采用GR47和MCU實現(xiàn)無線嵌入式Web Server
基于ARM的嵌入式uClinux系統(tǒng)設(shè)計與Web服務(wù)器應(yīng)用的
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于ARMLinux新型嵌入式Web服務(wù)器設(shè)計
![](https://skin.elecfans.com/images/2021-soft/load.png)
嵌入式Web 服務(wù)器的分析與研究
![](https://skin.elecfans.com/images/2021-soft/load.png)
CAN 總線的嵌入式Web 服務(wù)器設(shè)計
![](https://skin.elecfans.com/images/2021-soft/load.png)
嵌入式WEB服務(wù)器中TCP/IP協(xié)議棧的設(shè)計與實現(xiàn)
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于ARM的嵌入式Web服務(wù)器的研究與實現(xiàn)
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于SOPC的嵌入式Web服務(wù)器設(shè)計與實現(xiàn)
![](https://skin.elecfans.com/images/2021-soft/load.png)
嵌入式Web服務(wù)器的設(shè)計與研究
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于Linux的WEB服務(wù)器的設(shè)計與實現(xiàn)
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A5/4B/wKgZomUMN8WAEMMYAAA95og0_3U960.jpg)
嵌入式Web服務(wù)器的實現(xiàn)及其CGI應(yīng)用
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于Android的嵌入式Web服務(wù)器設(shè)計
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于EPA標(biāo)準(zhǔn)的嵌入式Web服務(wù)器的設(shè)計_李萌
![](https://skin.elecfans.com/images/2021-soft/load.png)
嵌入式Web服務(wù)器BOA移植與測試設(shè)計概述
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file.elecfans.com/web1/M00/AC/19/pIYBAF273eyAes1SAABph6lkNqM392.png)
嵌入式web服務(wù)器
![](https://skin.elecfans.com/images/2021-soft/load.png)
嵌入式web服務(wù)器系統(tǒng)設(shè)計,嵌入式Web服務(wù)器的設(shè)計與實現(xiàn)
![](https://skin.elecfans.com/images/2021-soft/load.png)
嵌入式web服務(wù)器系統(tǒng)設(shè)計,基于-ARM簡單嵌入式WEB服務(wù)器系統(tǒng)設(shè)計.doc
![](https://skin.elecfans.com/images/2021-soft/load.png)
嵌入式web服務(wù)器系統(tǒng),嵌入式Web服務(wù)器的設(shè)計與實現(xiàn)
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于Android的嵌入式Web服務(wù)器設(shè)計
![](https://skin.elecfans.com/images/2021-soft/load.png)
嵌入式Web服務(wù)器的實現(xiàn)及其CGI應(yīng)用
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于單片機(jī)的嵌入式web服務(wù)器設(shè)計與實現(xiàn)
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于ARM平臺的嵌入式WEB服務(wù)器的設(shè)計與實現(xiàn)
![](https://skin.elecfans.com/images/2021-soft/load.png)
評論