<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于Linux的WEB服務(wù)器的設計與實(shí)現

基于Linux的WEB服務(wù)器的設計與實(shí)現

作者: 時(shí)間:2009-12-18 來(lái)源:網(wǎng)絡(luò ) 收藏

1.2 Modem接口

本系統利用主控制器的 UART2進(jìn)行模擬 Modem通信的基本過(guò)程:DS80C400先把準備寫(xiě)入串行設備的數據發(fā)送到 UART的寄存器中,再通過(guò) FIFO傳送到串行設備。 Modem接口電路我們采用芯片 MAX213EAI。MAXZ13EAI是 5V工作電源的 RS-232電平轉換芯片。它集成了 4個(gè)輸入和 5個(gè)輸出的 RS-232電平轉換口,可以很好的滿(mǎn)足 Modem接口標準傳輸的需要。接口電路如圖 3所示。

2 嵌入式 軟件角度,則可將嵌入式軟件分為 4個(gè)模塊:網(wǎng)絡(luò )通訊模塊、接口管理模塊、人機交互模塊和遠程加載模塊。

2.1 網(wǎng)絡(luò )通訊模塊設計

2.1.1 以太網(wǎng)接入 Internet的

嵌入式 是溝通客戶(hù)和控制現場(chǎng)的重要橋梁,客戶(hù)通過(guò)認 Web瀏覽器來(lái)遠程監控的功能。本 服務(wù)是以 TCP/IP協(xié)議來(lái)傳輸數據,以 HTTP協(xié)議來(lái)進(jìn)行客戶(hù)端與之間的請求和響應,其體系結構如圖 4所示。

當客戶(hù)在界

當客戶(hù)在界面上進(jìn)行操作時(shí),如點(diǎn)擊復選框或在文本框中輸入數據。 Applet根據用戶(hù)的操作進(jìn)行響應,從而構造出新的命令字,向嵌入式 WEB服務(wù)器發(fā)出請求,服務(wù)器根據新的命令字驅動(dòng)控制系統中相應的執行機構,并將新的狀態(tài)信息和數據信息返回到客戶(hù)端,客戶(hù)端解析返回的數據,并進(jìn)行實(shí)時(shí)顯示。

2.1.2公用電話(huà)網(wǎng)接入 Internet的

為保證能在無(wú)以太網(wǎng)環(huán)境的情況下進(jìn)行通信,系統還采用了串口外接調制解調器通過(guò)電話(huà)網(wǎng)來(lái)實(shí)現與遠程客戶(hù)機的通信。網(wǎng)絡(luò )建立的實(shí)現就要用到 PPP協(xié)議(Point to Point Protocol點(diǎn)對點(diǎn)協(xié)議)。在程序運行的時(shí)候先要讀取 PPP通信的控制信息,判斷是否使用 PPP進(jìn)行通信,否則默認使用 Ethernet來(lái)進(jìn)行數據的傳輸。而不是同時(shí)開(kāi)啟這兩種模式。

由于 PPP通信并不區分客戶(hù)端和服務(wù)器,把負責認證和 IP分配的端認為是服務(wù)器,而不需要認證和使用服務(wù)器提供 IP的端認為是客戶(hù)端。設計了 LinkManger類(lèi)、PPPDaemon類(lèi)、PPPModemLink類(lèi)、ModemCommand類(lèi)、PPPException類(lèi),用來(lái)實(shí)現 PPP通信。其中 LinkManger類(lèi):用于管理 PPP連接,啟動(dòng)經(jīng)由網(wǎng)絡(luò )接到遠端服務(wù)器的出站連接,生成一個(gè) PPPDaemon實(shí)例用來(lái)設置 IP,驗證用戶(hù)名和密碼。并實(shí)現接收 PPP事務(wù)。

PPPModemLink類(lèi)首先打開(kāi)一個(gè)串口并進(jìn)行初始化,初始化完成后,把一個(gè)串口的對象傳遞給 PPP,然后創(chuàng )建 ModemCommand對象來(lái)控制與調制解調器的串行通信,并通過(guò) SerialPortEvenlistener接口監視 CD以檢測調制解調器是否掛起。其定義了 Modem的初始化和復位方法:initializeLink()和 resetModem()。

ModemCommand類(lèi)負責和 modem具體的串行通信,其分別定義了 sendcommand()、 waitFoResponse()和 receiveCommand()方法。分別用來(lái)發(fā)送、等待和接收命令。當操作超時(shí),則拋出 DataLinkException;waitforMatc()主要用來(lái)供 sendCommand()和 receiveCommand()進(jìn)行調用,用來(lái)判斷接收到的字符串是否和匹配字符串一致。當相應操作超時(shí),則拋出 DataLinkException。

2.2 電子郵件功能的實(shí)現

在系統設計時(shí),考慮到系統的存儲容量,不可能將采集的數據全部存儲在本地的系統中,為了保存系統的日志,可以采取定時(shí)向指定郵箱發(fā)送數據。本系統用 Java語(yǔ)言開(kāi)發(fā)了后臺自動(dòng)發(fā)送郵件的功能。郵件采用 BASE64編碼,并且支持 SMTP認證。

在本系統中,只需要完成 SMTP的發(fā)送方式,而不要求其完成 SMTP的接收方式,這樣就簡(jiǎn)化了編程的難度。SMTP開(kāi)服務(wù)器和 SMTP客戶(hù)之間的對話(huà)過(guò)程:首先建立 TCP連接,然后客戶(hù)端發(fā)送 HELO命令以標識發(fā)件人的身份,客戶(hù)端發(fā)送 MAIL命令,服務(wù)器端以 OK作為響應,表明準備接收。接下來(lái)客戶(hù)端發(fā)送 RCPT命令,以標識該電子郵件的計劃接收人,服務(wù)器端如表示愿意為收件人接收郵件。則在協(xié)商結束后發(fā)送郵件,用命令 DATA發(fā)送,將輸入內容一起發(fā)送出去。最后結束此次發(fā)送,用 QUIT命令退出。所有的命令都是以換行符作為結束。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>