<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于Linux的WEB服務器的設計與實現(xiàn)

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

          作者: 時間:2009-12-18 來源:網(wǎng)絡 收藏

          1.2 Modem接口

          本系統(tǒng)利用主控制器的 UART2進行模擬 Modem通信的基本過程:DS80C400先把準備寫入串行設備的數(shù)據(jù)發(fā)送到 UART的寄存器中,再通過 FIFO傳送到串行設備。 Modem接口電路我們采用芯片 MAX213EAI。MAXZ13EAI是 5V工作電源的 RS-232電平轉換芯片。它集成了 4個輸入和 5個輸出的 RS-232電平轉換口,可以很好的滿足 Modem接口標準傳輸?shù)男枰=涌陔娐啡鐖D 3所示。

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

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

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

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

          當客戶在界

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

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

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

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

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

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

          2.2 電子郵件功能的實現(xiàn)

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

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

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();