《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于Web的單片機遠程監(jiān)控系統(tǒng)設計方案
基于Web的單片機遠程監(jiān)控系統(tǒng)設計方案
摘要: 傳統(tǒng)的遠程監(jiān)控系統(tǒng)一般采用C/S模型的方式,針對大型設備,成本高。文章采用SOC芯片C8051F020和10M自適應網(wǎng)絡芯片RTL8019AS接口的方案,在單片機中嵌入了精簡的TCP/IP協(xié)議棧,構建了基于Web的單片機遠程監(jiān)控系統(tǒng)軟、硬件平臺,在此基礎上實現(xiàn)了基于單片機的數(shù)據(jù)采集和遠程監(jiān)控,所實現(xiàn)的系統(tǒng)具有成本低廉、操作方便、可靠等優(yōu)點。
Abstract:
Key words :

1. 引言

單片機系統(tǒng)以其簡單、高效的特點,在工業(yè)控制和日常生活中應用越來越廣泛。目前大多數(shù)單片機系統(tǒng)是以51 單片機為核心,與檢測、伺服、顯示設備配合起來實現(xiàn)監(jiān)控功能。

然而,這些監(jiān)控系統(tǒng)的數(shù)據(jù)傳輸多采用RS-232、RS-485 以及各種現(xiàn)場總線,這些方式有些通信速度不夠快,有些距離不夠遠,且各種總線之間難于實現(xiàn)互連和互操作。以太網(wǎng)作為目前應用最為廣泛的局域網(wǎng),在工業(yè)自動化和過程控制領域得到了越來越多的應用。同時,隨著Internet 的普及,現(xiàn)代通信技術的進步,基于TCP/IP 和Client/Server 架構的分布式監(jiān)控技術也日趨成熟。把嵌入式系統(tǒng)連接到Internet 上,就可以方便、低廉地把信息傳送到世界的任何一個地方。

傳統(tǒng)的遠程監(jiān)控系統(tǒng)一般采用C/S 模型的方式,主要針對大型的設備進行監(jiān)控。對于如攝像頭圖象監(jiān)控﹑家用儀表﹑門禁控制系統(tǒng)等小型的設備的監(jiān)控就需要采用低成本的方案。

鑒于此,在低成本的單片機系統(tǒng)上移植精簡的TCP/IP 協(xié)議簇,實現(xiàn)對于小型設備遠程監(jiān)控是最佳選擇。該系統(tǒng)以Web 方式實現(xiàn),用戶可以在任何一臺裝有瀏覽器的PC 機上進行遠程監(jiān)視與控制,具有價格低廉、操作方便、界面友好等優(yōu)點。傳統(tǒng)的遠程監(jiān)控系統(tǒng)模型與本系統(tǒng)采用的模型如圖1 和圖2 所示。

圖1 傳統(tǒng)遠程監(jiān)控系統(tǒng)模型

圖2 單片機監(jiān)控系統(tǒng)模型
圖2 單片機監(jiān)控系統(tǒng)模型

2. 系統(tǒng)硬件設計

本系統(tǒng)以 Cygnal 公司的完全集成的混合信號系統(tǒng)級芯片(SOC)C8051F020 單片機為核心,采用Realtek 公司的10M 自適應以太網(wǎng)控制器RTL8019AS 實現(xiàn)系統(tǒng)的網(wǎng)絡接口部分。

SRAM 部分用于存放大量的數(shù)據(jù)信息。數(shù)據(jù)采集部分用于采集系統(tǒng)需要監(jiān)控的設備的運行情況,由于C8051F020 內部帶有真正12 位100 ksps 的8 通道ADC 帶PGA 和模擬多路開關,還有兩個12 位DAC 可編程更新時序,可以方便的進行模擬信號采集和對外設進行控制。

C8051F020 單片機內置64K FLASH 程序存儲器、4K 內部SRAM,可以嵌入TCP /IP 協(xié)議, 從而實現(xiàn)嵌入式Web Sever 的功能。RTL8019AS 集成了介質訪問控制子層(MAC)和物理層的性能,與單片機的接口簡單,可以方便地用來設計基于ISA 總線的系統(tǒng)。另外,它還具有與NE2000 兼容、軟件移植性好以及價格低廉等優(yōu)點,所以特別適合用于嵌入式系統(tǒng)。

圖3 系統(tǒng)框圖
圖3 系統(tǒng)框圖

3.系統(tǒng)軟件設計

3.1 軟件流圖設計

軟件的實現(xiàn)主要是根據(jù)數(shù)據(jù)在網(wǎng)絡中傳輸?shù)姆较蚝蛿?shù)據(jù)的流向來實現(xiàn)的。在本設計中數(shù)據(jù)的流向為:請求信息從局域網(wǎng)中來,通過RJ 45 送到RTL80l9AS,處理后的數(shù)據(jù)包送入單片機系統(tǒng)的協(xié)議棧,由協(xié)議棧對數(shù)據(jù)包進行解析,得到原始請求信息。請求信息再經(jīng)過單片機系統(tǒng)的處理,產生回復信息。回復信息到局域網(wǎng)的過程與上面正好相反。整個系統(tǒng)的軟件流程如上圖4 所示。

圖4 軟件框圖
圖4 軟件框圖

3.2 RTL8019 接收與發(fā)送數(shù)據(jù)

1.RTL8019 芯片初始化主要是將網(wǎng)卡設置成正常的模式,跟外部網(wǎng)絡連接。清除所有中斷標志位,讓芯片開始工作。

2.對RTL8019 接收數(shù)據(jù)操作,有查詢和中斷兩種方式。因為單片機的速度和PC 機相差太遠,而且還有一些采集任務,本系統(tǒng)不采用中斷方式,用查詢方式。在查詢方式下,通過查詢CURR 和BNRY 兩個寄存器的值來判斷是否收到一幀數(shù)據(jù)。當BNRY+1 與CURR不相等,說明接收緩沖區(qū)接收到了新的數(shù)據(jù)幀。圖5 為RTL8019 報頭格式,接收部分子程序如下:

UCHAR xdata * rcve_frame(void) //如收到有效數(shù)據(jù)包,返回收到的數(shù)據(jù),否則返回NULL

圖5 RTL8019 報頭格式
圖5 RTL8019 報頭格式

3.數(shù)據(jù)的發(fā)送包含三個步驟:封裝數(shù)據(jù)包;通過遠程DMA 將數(shù)據(jù)包送入RTL8019AS的數(shù)據(jù)發(fā)送緩沖區(qū);通過RTL8019 的本地DMA 將數(shù)據(jù)送入FIFO 進行發(fā)送。具體過程如下:

(1)包在發(fā)送前應該按規(guī)定的格式封裝好,格式如下圖6 所示:

圖6 MAC 幀首部
圖6 MAC 幀首部

(2)把上面的數(shù)據(jù)包通過遠程DMA 寫入RTL8019AS 的數(shù)據(jù)發(fā)送緩沖區(qū);

(3)啟動本地DMA,把數(shù)據(jù)發(fā)送出去,數(shù)據(jù)包長度最小為60 字節(jié),最大1514 字節(jié)。

發(fā)送子程序為:void send_frame(UCHAR xdata * outbuf,UINT len)//發(fā)送一個數(shù)據(jù)包3.3 TCP/IP 協(xié)議棧的實現(xiàn)。

3.3.1 ARP 協(xié)議的實現(xiàn)

ARP 地址解析協(xié)議的本質是完成網(wǎng)絡地址到物理地址的映射。物理地址有以太網(wǎng)和令牌環(huán)網(wǎng)兩種基本類型,網(wǎng)絡地址特指IP 地址。具體到以太網(wǎng),使用的是動態(tài)綁定轉換的方法,但是會遇到許多細節(jié)問題,例如減少廣播,ARP 包丟失,物理地址變更(更換網(wǎng)卡)、移動(移動設備到另一子網(wǎng))、消失(關機)等。一般是設置ARP 高速緩存,通過學習、老化、更新、溢出算法處理ARP 映射表來解決這些問題。整個ARP 處理過程,主要用5 個函數(shù)實現(xiàn)。

在實現(xiàn)網(wǎng)卡驅動程序后,所有ARP 處理操作就是填寫ARP 包。主要程序代碼編制如下:

(1)void init_arp(void)//完成ARP 表初始化,概括說就是ARP 表state 字段清0

(2)void arp_send(UCHAR * hwaddr,ULONG ipaddr,UCHAR msg_type)//完成ARP 請求

(3)void arp_rcve(UCHAR xdata * inbuf)// 完成響應操作

(4)UCHAR xdata * arp_resolve(ULONG dest_ipaddr) //完成從cache 里面查找對應//IP 地址的物理地址,如果沒有,就發(fā)送ARP 請求

3.3.2 IP 協(xié)議的實現(xiàn)

網(wǎng)際協(xié)議 IP 是TCP/IP 協(xié)議族中最為核心的協(xié)議,它的主要功能是負責把數(shù)據(jù)交付給主機,當目標主機與原主機處于不同的物理網(wǎng)絡中時,IP 負責把數(shù)據(jù)包路由到相應的目標網(wǎng)絡上。Internet 上所有的數(shù)據(jù)都以IP 數(shù)據(jù)包格式傳輸。IP 協(xié)議最大的特點是提供不可靠的和無連接的數(shù)據(jù)包傳送服務。IP 協(xié)議主要實現(xiàn)以下兩個子程序:

(1) void ip_send(UCHAR xdata*outbuf,ULONG ipaddr, UCHAR proto_ id,DINT len)//發(fā)送IP 數(shù)據(jù);該子程序用來創(chuàng)建一個發(fā)送數(shù)據(jù)報。

(2) void ip_rcve(UCHAR xdata *inbuf) //接收IP 數(shù)據(jù);該子程序檢測一個外來數(shù)據(jù)包,并對數(shù)據(jù)包作相應的處理。

3.3.3 TCP 協(xié)議的實現(xiàn)

1.使用TCP 狀態(tài)機:TCP 協(xié)議是整個TCP/IP 協(xié)議的核心,也是傳輸層中最復雜的協(xié)議。TCP 協(xié)議在兩個端點之間建立了等效于物理連接的邏輯連接。數(shù)據(jù)沿著這個連接雙向傳輸。連接的雙方必須對發(fā)送和接收的數(shù)據(jù)保持跟蹤,以便能夠檢測出數(shù)據(jù)流中的遺漏和重復。

2.使用簡單的確認機制:序列號和確認號這兩個字段用于協(xié)同完成TCP 協(xié)議中的確認工作。對于每個接收到的數(shù)據(jù)包進行確認號的計算,需要從接收到的數(shù)據(jù)包中提取TCP 報文的數(shù)據(jù)部分長度,并進行計算,這增加了處理器的運算量。但如果每次只對單個TCP 報文進行確認的話,并沒有太大的難度。TCP 協(xié)議主要包含的程序如下:

(1) init_tcp(void) //初始化TCP 協(xié)議

(1) Tcp_send(UINT flags, DINT hdr_len, UCHAR nr) //發(fā)送TCP

(2) Tcp_retransmit(void) //重發(fā)TCP 數(shù)據(jù)

(3) Tcp_inactivity(void) //停止TCP

(4) Tcp_rcve(UCHAR xdata * inbuf, UINT len) //接收TCP 數(shù)據(jù)

3.3.4 HTTP 協(xié)議簡介

HTTP 協(xié)議是TCP 協(xié)議的高層協(xié)議,HTTP 的請求和應答都是一行或多行文本,它的結束標志是一個換行符[5]。如果請求成功,數(shù)據(jù)就沿著該連接發(fā)送,直到發(fā)送完為止。HTTP的端口號為80.HTTP 中的命令稱呼為方法(method),其中GET 語句用來獲取文檔,POST語句用來粘貼文檔。通過判斷GET 和POST 語句后面的文件名來判斷所需要傳遞的文件的位置。

請求:

GET / HTTP/1.1

響應:

HTTP/1.1 200 OK

Content-type: text/html

……

《html》

《body》

……

《/body》

《/html》

4.應用部分

本 WEB 服務器系統(tǒng)幾乎可以應用于所有對實時性要求不是很高的場合,只要對本系統(tǒng)的相關部分做些修改或改進,例如:客戶端的訪問權限、IP 地址的過濾等,就可應用于諸如遠程抄表、信息家電的遠程控制等場合。下面圖7 為ping 命令測試網(wǎng)絡不通到通的連接狀態(tài),圖8 實現(xiàn)了局域網(wǎng)內任意主機通過ip 地址形式訪問單片機內部存諸的網(wǎng)頁,從而實現(xiàn)對單片機系統(tǒng)的遠程監(jiān)控。

圖7 網(wǎng)絡連接測試
圖7 網(wǎng)絡連接測試

圖8 遠程監(jiān)控溫度
圖8 遠程監(jiān)控溫度

5.結束語

實現(xiàn)了基于單片機的 TCP/IP 協(xié)議棧,使單片機控制的系統(tǒng)具有了WebServer 的功能,這樣可以使用PC 機通過因特網(wǎng)遠程訪問單片機系統(tǒng),也可以使用單片機系統(tǒng)將有用的信息通過因特網(wǎng)發(fā)送到遠端的PC 或其它終端上。為嵌入式設備實現(xiàn)遠程數(shù)據(jù)采集、遠程監(jiān)控、遠程診斷、遠程幫助、遠程升級、遠程重構等功能提供了可能,這是嵌入式系統(tǒng)發(fā)展的趨勢。

此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲国产女人aaa毛片在线| 一区二区三区 在线观看视频| 一区二区三区在线视频播放| 国产精品美女在线观看| 欧美精品v日韩精品v国产精品| aⅴ色国产欧美| 一二三区精品福利视频| 亚洲人成啪啪网站| 亚洲国产精品久久久久秋霞不卡| 国语自产精品视频在线看一大j8 | 一区二区三区久久久| 亚洲激情一区二区三区| 在线观看日韩精品| 尤物精品国产第一福利三区 | 99视频精品全国免费| 亚洲人被黑人高潮完整版| 亚洲激情国产精品| 亚洲毛片在线观看.| 亚洲另类视频| 9l国产精品久久久久麻豆| 99这里只有久久精品视频| 亚洲毛片av| 亚洲天堂av综合网| 亚洲一区二区欧美日韩| 亚洲女同同性videoxma| 亚洲欧美中文另类| 欧美一区二区三区喷汁尤物| 欧美中文在线免费| 亚洲国产毛片完整版| 亚洲毛片一区| 亚洲一级黄色片| 午夜伦欧美伦电影理论片| 欧美在线日韩在线| 久久久九九九九| 鲁大师成人一区二区三区| 欧美激情成人在线| 欧美体内she精视频| 国产精品久久久久久户外露出| 国产精品日韩一区| 国产一区二区精品丝袜| 亚洲第一在线综合网站| 亚洲最新在线| 性色一区二区| 亚洲激情av在线| 一区二区福利| 欧美亚洲日本网站| 久久综合一区二区三区| 欧美日韩国产色综合一二三四| 国产精品久久久久天堂| 国产曰批免费观看久久久| 91久久夜色精品国产九色| 在线一区二区日韩| 久久大逼视频| 一区二区高清视频在线观看| 欧美专区福利在线| 欧美/亚洲一区| 国产精品都在这里| 一区视频在线看| 亚洲视频免费看| 久久精品五月婷婷| 亚洲一区在线播放| 久久久爽爽爽美女图片| 免费美女久久99| 亚洲欧美日韩视频一区| 久久久久国产精品一区二区| 欧美精品www在线观看| 国产精品一二三视频| 亚洲第一天堂av| 亚洲综合色激情五月| 亚洲国产小视频| 亚洲免费在线观看视频| 免费观看日韩| 国产欧美亚洲精品| 日韩视频在线播放| 久久电影一区| 亚洲一区二区三区视频播放| 久久阴道视频| 国产精品久久久久久久久免费| 一区二区亚洲精品| 在线亚洲自拍| 亚洲九九爱视频| 久久精品1区| 欧美少妇一区| 亚洲第一精品夜夜躁人人爽| 欧美一级视频免费在线观看| 亚洲深夜av| 欧美高清在线观看| 国产亚洲精品久久久久久| 亚洲麻豆av| 亚洲日本中文字幕| 久久国产直播| 国产精品人人做人人爽| 亚洲欧洲在线一区| 久久精品国产99精品国产亚洲性色 | 欧美日韩国产一区| 精品不卡一区| 欧美在线一级va免费观看| 亚洲欧美日本视频在线观看| 欧美日韩国产免费| 亚洲福利专区| 亚洲黄色有码视频| 美女精品网站| 国产日韩一级二级三级| 亚洲综合另类| 亚洲欧美日韩第一区| 欧美视频日韩视频| 亚洲狼人精品一区二区三区| 亚洲片区在线| 欧美暴力喷水在线| 精品av久久707| 久久精品男女| 久久久久国产一区二区三区| 国产伦精品一区二区三区高清版| 中日韩高清电影网| 亚洲图色在线| 欧美日韩天天操| 日韩午夜在线视频| 亚洲视频在线观看免费| 欧美三级电影网| av成人动漫| 亚洲一区二区欧美日韩| 欧美私人网站| 亚洲一区二区毛片| 欧美在线视频免费| 国产小视频国产精品| 欧美一区二区三区在线看| 久久久久久久999| 国产一区二区三区奇米久涩| 性欧美暴力猛交69hd| 久久gogo国模裸体人体| 国产一区二区三区在线观看免费视频| 欧美一区二区三区免费观看视频| 久久久久久久999精品视频| 雨宫琴音一区二区在线| 亚洲精品欧美在线| 欧美另类极品videosbest最新版本 | 亚洲一区二区三区在线视频| 午夜精品久久久99热福利| 国产精品日韩在线播放| 性做久久久久久久久| 久久综合久久综合九色| 亚洲丁香婷深爱综合| 一区二区三区四区五区精品| 国产精品久久7| 欧美亚洲免费| 久久综合激情| 亚洲美女精品成人在线视频| 亚洲综合不卡| 国产婷婷色一区二区三区在线 | 亚洲精品在线视频| 欧美日韩美女在线| 亚洲在线网站| 久热这里只精品99re8久| 亚洲片区在线| 午夜精品久久久久久久久久久久 | 国产日韩欧美自拍| 亚洲国产精品一区二区第四页av| 欧美精品国产一区二区| 这里只有精品电影| 久久九九99| 亚洲精选视频免费看| 欧美中文字幕不卡| 亚洲激情小视频| 久久av资源网| 亚洲精品国产精品乱码不99按摩| 亚洲综合精品一区二区| 国外成人性视频| 亚洲天堂久久| 国产综合精品| 亚洲午夜激情在线| 韩国久久久久| 亚洲一区二区三区精品在线| 国语自产偷拍精品视频偷| 99综合精品| 国产一区二区三区在线播放免费观看| 久久精品国产成人| 欧美黄色一区| 韩日精品视频| 亚洲影院免费观看| 伊人久久噜噜噜躁狠狠躁| 亚洲免费在线观看| 136国产福利精品导航网址| 亚洲欧美日韩天堂| 亚洲黄网站黄| 久久久www成人免费毛片麻豆| 亚洲国产精品女人久久久| 欧美在线欧美在线| 亚洲最新视频在线播放| 牛牛国产精品| 久久动漫亚洲| 国产精品美女久久久免费| 最新高清无码专区| 国产一区二区av| 亚洲欧美日韩成人| 亚洲看片一区| 欧美福利专区| 亚洲电影av| 国产亚洲欧美aaaa| 亚洲欧美春色| 日韩一级精品视频在线观看|