新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于Web的單片機遠程監控系統的設計與實現

        基于Web的單片機遠程監控系統的設計與實現

        作者: 時間:2012-05-24 來源:網絡 收藏

        基于Web的單片機遠程監控系統的設計與實現

        圖4 軟件框圖

        3.2 RTL8019 接收與發送數據

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

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

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

        基于Web的單片機遠程監控系統的設計與實現

        圖5 RTL8019 報頭格式

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

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

        基于Web的單片機遠程監控系統的設計與實現

        圖6 MAC 幀首部

        (2)把上面的數據包通過遠程DMA 寫入RTL8019AS 的數據發送緩沖區;

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

        發送子程序為:void send_frame(UCHAR xdata * outbuf,UINT len)//發送一個數據包3.3 TCP/IP 協議棧的實現。

        3.3.1 ARP 協議的實現

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

        在實現網卡驅動程序后,所有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 地址的物理地址,如果沒有,就發送ARP 請求

        3.3.2 IP 協議的實現

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

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

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

        單片機相關文章:單片機教程


        單片機相關文章:單片機視頻教程


        單片機相關文章:單片機工作原理




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 肥东县| 庆元县| 陆川县| 通山县| 淮滨县| 施甸县| 安陆市| 永川市| 郁南县| 枝江市| 东丰县| 新郑市| 烟台市| 黄浦区| 偏关县| 宜川县| 湖南省| 红桥区| 类乌齐县| 常德市| 温宿县| 湘乡市| 剑河县| 长宁区| 民县| 梁河县| 香河县| 哈尔滨市| 通江县| 聂拉木县| 河曲县| 繁昌县| 沂南县| 吉首市| 昌邑市| 牡丹江市| 巍山| 镇雄县| 祁门县| 霍州市| 眉山市|