<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è) > 嵌入式系統 > 設計應用 > 一種新型嵌入式遠程監控系統的設計開(kāi)發(fā)

一種新型嵌入式遠程監控系統的設計開(kāi)發(fā)

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

1 引言

本文引用地址:http://dyxdggzs.com/article/152531.htm

是當前工業(yè)自動(dòng)化監控應用領(lǐng)域研究的熱點(diǎn)之一。微電子技術(shù)和微處理器制造工藝的提高以及網(wǎng)絡(luò )技術(shù)的飛速發(fā)展,使得構建基于Web的得以實(shí)現。這樣的可以直接通過(guò)TCP/IP網(wǎng)絡(luò )協(xié)議接入Internet實(shí)現監控,成為真正不受時(shí)間和空間限制的系統。

由于近年來(lái)一些半導體廠(chǎng)家新推出的MCU的存儲能力都有了很大的提高,以及用C語(yǔ)言編寫(xiě)的程序具有移植性強、可讀性好等優(yōu)點(diǎn),因此本文監控軟件采用標準C語(yǔ)言編寫(xiě),并在m6811-elf-gcc中編譯通過(guò)。本文將從Web監控系統的通信基礎--接口模塊著(zhù)手,分別講述各個(gè)功能模塊的設計與實(shí)現。

2 接口程序設計

接口程序是與硬件設計中的網(wǎng)絡(luò )控制芯片密切相關(guān)的,不同的網(wǎng)絡(luò )控制芯片具有不同的以太網(wǎng)接口程序,但是一個(gè)完整的以太網(wǎng)接口程序通常包括三個(gè)部分:硬件模塊初始化、以太幀的發(fā)送和以太幀的接收。

1、硬件模塊初始化

本文使用的Freescale公司的MC9S12NE64 MCU集成了EPHY和EMAC兩個(gè)硬件子模塊,它們的初始化必須嚴格按照技術(shù)手冊進(jìn)行,避免忽略一些細節。

2、以太幀的發(fā)送

在NE64中發(fā)送一個(gè)以太幀,必須將該幀內容寫(xiě)入至EMAC模塊的發(fā)送緩沖區(TX緩沖區),然后再通過(guò)發(fā)送命令將其發(fā)送出去,接下來(lái)的工作由下層硬件完成。與以太幀的發(fā)送相關(guān)的寄存器包括發(fā)送緩沖區幀結束指針寄存器(TXEFP)、發(fā)送控制和狀態(tài)寄存器(TXCTS)。

3、以太幀的接收

判斷以太幀的接收有兩種方法:查詢(xún)法和中斷法。由于中斷法有更好的執行效率,本文使用了中斷法接收以太幀。由于NE64有兩個(gè)接收緩沖區A和B,因此到達的幀可能存儲在A(yíng)緩沖區也可能存儲在B緩沖區,所以中斷矢量也有兩個(gè):A緩沖區接收完成中斷和B緩沖區接收完成中斷,其矢量地址分別是$FFB2和$FFB4。無(wú)論是A緩沖區還是B緩沖區接收到數據,處理方法是一樣的,都是將接收到的數據幀讀出來(lái),再進(jìn)行相應的處理。

3 uIP協(xié)議實(shí)現的程序設計

3.1 TCP協(xié)議的實(shí)現

TCP協(xié)議是嵌入式Web的核心,它提供一種基于連接的帶確認的可靠的數據流傳輸方式,可增強網(wǎng)絡(luò )的服務(wù)質(zhì)量。TCP協(xié)議的機制很復雜,它的完整實(shí)現對處理器的存儲能力和運算能力要求較高。這對于來(lái)說(shuō)是比較奢侈的,因此必須對其進(jìn)行簡(jiǎn)化。本文要實(shí)現的是一個(gè)基于嵌入式Web服務(wù)器的監控系統,經(jīng)過(guò)仔細分析,本文得到如圖1所示的簡(jiǎn)化的TCP狀態(tài)機。其中連接的斷開(kāi)由服務(wù)器主動(dòng)執行,通過(guò)多次實(shí)驗總結出來(lái)該方式在本文系統中,比標準的TCP協(xié)議主動(dòng)斷開(kāi)連接的狀態(tài)機簡(jiǎn)單且穩定。

圖1 服務(wù)端簡(jiǎn)化的TCP狀態(tài)圖

另外本系統可以根據不同的應用要求調整TCP所支持的連接數量,但是通常在同一時(shí)刻僅支持單個(gè)TCP連接。同時(shí)為了避免因為數據報的丟失而造成狀態(tài)機的死鎖,本文使用簡(jiǎn)單定時(shí)機制,使TCP狀態(tài)機在超時(shí)后復位。

TCP協(xié)議連接建立的過(guò)程被稱(chēng)為“三次握手”。首先,客戶(hù)端向服務(wù)端提出連接請求。此時(shí)客戶(hù)端在TCP報頭中插入自己的ISN,并置SYN標志為1,表示序列號字段合法,需要檢查。其次,服務(wù)端收到該TCP分段后,以自己的ISN回應,同時(shí)確認收到客戶(hù)端的TCP分段,置ACK標志為1。最后,客戶(hù)端確認收到服務(wù)端的ISN,置ACK標志為1。至此完整的TCP連接建立,開(kāi)始全雙工模式的數據傳輸過(guò)程。

3.2 其他協(xié)議的實(shí)現

在實(shí)現以太網(wǎng)底層驅動(dòng)的基礎上,接下來(lái)實(shí)現用于以太網(wǎng)通信的上層協(xié)議。ARP協(xié)議是為了通信雙方獲取對方MAC地址的通信協(xié)議,是網(wǎng)絡(luò )通信的基礎,本文實(shí)現了ARP請求報文的發(fā)送和接收以及ARP響應報文的接收和處理功能。為方便網(wǎng)絡(luò )調試,在uIP中實(shí)現了Ping命令,當監控設備正常工作后可省略該部分內容。SD12-MCS是實(shí)現一個(gè)基于嵌入式Web的應用設備,并非嵌入式網(wǎng)關(guān)或路由器,因此為了節約資源,本文裁減了IP協(xié)議的路由功能,有關(guān)路由問(wèn)題都由默認網(wǎng)關(guān)完成。盡管基于Web方式的SD12-MCS使用了TCP協(xié)議,但是目前也有一些應用是基于UDP協(xié)議的,為了系統具有更好的擴展性,本文也實(shí)現了UDP協(xié)議。

4 Web服務(wù)器的設計與實(shí)現

該監控系統的工作模式為嵌入式Web服務(wù)器方式,因此本文在實(shí)現uIP協(xié)議的基礎上,設計并實(shí)現了應用層的HTTP協(xié)議以及CGI處理程序。

4.1 HTTP協(xié)議的設計與實(shí)現

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

上一頁(yè) 1 2 下一頁(yè)

評論


相關(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>