基于ATmega64的遠(yuǎn)程控制系統(tǒng)的研究
3 服務(wù)器端工作過程
圖4 所示為本系統(tǒng) TCP/IP 各層協(xié)議,鏈路層協(xié)議由單片機(jī)控制RTL8019AS 實(shí)現(xiàn),而其他協(xié)議由單片機(jī)內(nèi)部程序?qū)崿F(xiàn)。
服務(wù)器接收數(shù)據(jù)時(shí),以太網(wǎng)驅(qū)動(dòng)程序負(fù)責(zé)接收數(shù)據(jù),由以太網(wǎng)控制器中斷處理程序喚醒數(shù)據(jù)接收任務(wù),由數(shù)據(jù)接收任務(wù)將接收到的數(shù)據(jù)幀交給網(wǎng)絡(luò)接口 層,網(wǎng)絡(luò)接口層取出幀頭,判斷接收數(shù)據(jù)的類型,如果是ARP 報(bào)文,則將ARP 報(bào)文交給ARP 協(xié)議模塊處理;如果是IP 數(shù)據(jù)包,則將IP數(shù)據(jù)包交給IP 協(xié)議模塊處理,IP協(xié)議模塊取出IP 首部信息,然后根據(jù)數(shù)據(jù)包的類型,將報(bào)文交給相應(yīng)的協(xié)議模塊(UDP 模塊、TCP 模塊或ICMP 模塊)處理,UDP 模塊或TCP 模塊收到報(bào)文后,取出首部進(jìn)行處理,并將用戶數(shù)據(jù)交給應(yīng)用程序。
服務(wù)器發(fā)送數(shù)據(jù)時(shí),將用戶數(shù)據(jù)交給UDP協(xié)議模塊或TCP 協(xié)議模塊處理,UDP協(xié)議模塊或TCP協(xié)議模塊將其首部和數(shù)據(jù)封裝成UDP數(shù)據(jù)包或TCP數(shù)據(jù)包,然后將封裝好的數(shù)據(jù)包交給IP協(xié)議模塊,IP模塊在上層 交給的數(shù)據(jù)包上添加IP首部,并封裝成IP數(shù)據(jù)包,然后為 IP 數(shù)據(jù)包尋找路由,如果找不到相應(yīng)路由,則向ICMP 協(xié)議發(fā)送出錯(cuò)報(bào)文,由ICMP 協(xié)議模塊進(jìn)行處理,在找到了合適的路由后,如果是以太網(wǎng)方式,則將數(shù)據(jù)包發(fā)送到網(wǎng)絡(luò)接口層,利用ARP協(xié)議找到目的IP對應(yīng)的物理地址,然后封裝成以太網(wǎng) 幀,由網(wǎng)卡驅(qū)動(dòng)程序?qū)⒁蕴W(wǎng)幀發(fā)送出去。
4 利用HTTP協(xié)議實(shí)現(xiàn)Web接收與發(fā)送控制數(shù)據(jù)
在單片機(jī)系統(tǒng)中實(shí)現(xiàn)HTTP 協(xié)議服務(wù)端的功能,就可以為其他的客戶機(jī)提供超文本信息,客戶端只需要使用統(tǒng)一的瀏覽器就可以與服務(wù)器進(jìn)行信息交換。
超文本傳輸協(xié)議(HTTP)是目前通過Internet進(jìn)行信息交換最主要的方式。在Internet上HTTP 通訊經(jīng)常發(fā)生在 TCP/IP 連接之上。其缺省端口是TCP 協(xié)議的80 端口,當(dāng)然,其他的端口也是可以使用的。HTTP 協(xié)議是建立在請求/響應(yīng)(request/response) 模型上的。首先由客戶建立一條與服務(wù)器的TCP鏈接,并發(fā)送一個(gè)請求到服務(wù)器,請求中包含請求方法、URI、協(xié)議版本以及相關(guān)的 MIME(Multipurpose Internet Mail Extensions) 樣式的消息。服務(wù)器響應(yīng)一個(gè)狀態(tài)行,包含消息的協(xié)議版本、一個(gè)成功或失敗碼以及相關(guān)的MIME 式樣的消息(包含服務(wù)器的信息、資源實(shí)體的信息和可能的資源內(nèi)容)。
單片機(jī)服務(wù)器除了包括HTML 文件以外,還有一個(gè)HTTP 駐留程序,用于響應(yīng)計(jì)算機(jī)端的控制請求。用HTML 文件編寫的網(wǎng)絡(luò)界面,可以通過瀏覽器訪問并利用相應(yīng)的按扭向服務(wù)器發(fā)送HTTP 請求,此請求被送往由IP地址指定的URL。駐留程序接收到請求,在進(jìn)行必要的操作后回送所要求的文件。在這一過程中,在網(wǎng)絡(luò)上發(fā)送和接收的數(shù)據(jù)已經(jīng)被分 成一個(gè)或多個(gè)數(shù)據(jù)包(packet),每個(gè)數(shù)據(jù)包包括:要傳送的數(shù)據(jù);控制信息,即告訴網(wǎng)絡(luò)怎樣處理數(shù)據(jù)包。TCP/IP決定了每個(gè)數(shù)據(jù)包的格式。
圖5 是通過Web 瀏覽器看到的網(wǎng)絡(luò)控制界面,必需將客戶計(jì)算機(jī)與服務(wù)器系統(tǒng)的IP地址設(shè)置在一個(gè)段內(nèi)。如本系統(tǒng)服務(wù)器IP地址設(shè)為192.168.0.10,客戶機(jī)IP地址設(shè)為192.168.0.11,默認(rèn)網(wǎng)關(guān)均為255.255.255.0。
(1) 發(fā)送控制數(shù)據(jù)過程:①通過瀏覽器向服務(wù)器系統(tǒng)(單片機(jī))發(fā)送HTTP 請求;②服務(wù)器系統(tǒng)通過HTTP服務(wù)程序查看網(wǎng)頁程序中表單內(nèi)輸入變量的變化;③取出變量值,調(diào)用串口程序?qū)?shù)據(jù)發(fā)出。
(2)接收采集數(shù)據(jù)過程:①系統(tǒng)HTTP 協(xié)議程序的http_serve 中調(diào)用串口程序接收串口數(shù)據(jù),并用此數(shù)據(jù)取代其內(nèi)部網(wǎng)頁中的表格內(nèi)“NO DATA”標(biāo)記;②服務(wù)器系統(tǒng)把Web頁面?zhèn)魉徒o用戶界面的瀏覽器。
用低成本的AVR單片機(jī)和以太網(wǎng)控制器,配合適當(dāng)?shù)木W(wǎng)絡(luò)協(xié)議,實(shí)現(xiàn)了通過網(wǎng)絡(luò)對RS232接口設(shè)備的數(shù)據(jù)采集及系統(tǒng)控制。如對其進(jìn)行適當(dāng)?shù)母淖兣c擴(kuò)展,便可以用于其他接口的儀器儀表,并應(yīng)用于更廣泛的領(lǐng)域。由于系統(tǒng)的控制器使用的是單片機(jī),限于其內(nèi)部資源,所以網(wǎng)頁文件不能過大。
參考文獻(xiàn)
[1] 何蘇勤. TMS320C2000系列DSP原理及實(shí)用技術(shù)[M]. 北京:電子工業(yè)出版社,2003.
[2] 賈云飛,王景芹. 利用單片機(jī)控制以太網(wǎng)網(wǎng)卡進(jìn)行數(shù)據(jù)傳輸?shù)?a class="contentlabel" href="http://2s4d.com/news/listbylabel/label/研究">研究.網(wǎng)絡(luò)與總線,2003,(6):41.
[3] 閆保中,虞凌宏,王仁龍. 基于AVR高速單片機(jī)的Web sever的研究.應(yīng)用科技,2006,33(3):25.
[4] J. Magid. Web服務(wù)器技術(shù)指南.李謙譯.北京:機(jī)械工業(yè)出版社,1996.
[5] Network Working Group: RFC 2616 - Hypertext Transfer Protocol——HTTP/1.1.
陀螺儀相關(guān)文章:陀螺儀原理
評論