久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 測試測量 > 設計應用 > 基于硬件協議棧的以太網遠程數據傳輸系統

基于硬件協議棧的以太網遠程數據傳輸系統

作者: 時間:2013-09-11 來源:網絡 收藏

2.2 軟件程序設計
W5100的程序設計包括初始化和Socket驅動兩個部分,初始化過程主要對芯片內部的各寄存器編程來實現芯片的復位、收發緩沖器設置等底層工作,初始化過程涉及的寄存器包括:
①RMSR(接收緩沖區寄存器)和TMSR(發送緩沖區寄存器)設置為0xAA(默認為0x55),本系統中只用到了Socket0和Socket1兩個端口,岡此將緩沖區設置為4 KB,增大發送和接收空間。
②RTR(重發時間寄存器)按照默認值設置,即200 ms(0x07D0)。通信過程中,當發出連接、斷開等命令后,在200 ms內沒有收到對方的響應時,將會觸發重發機制。
③RCR(重發計數寄存器)設置為8次。
④IMR(中斷屏蔽寄存器),通過向相應的中斷屏蔽位寫入1使能相應的中斷源,指出了IMR的每一位對應的中斷源,本系統中需要開啟7、6、1、0即可。即設置IMR寄存器為0xC3,中斷產生后,STM32F103VET6可以通過訪問IR寄存器獲得中斷來源,從而進行相應的中斷程序處理。中斷屏蔽寄存器如下。

本文引用地址:http://cqxgywz.com/article/192755.htm

f.jpg


除了上面幾個寄存器之外,還需要設置MAC地址、IP地址、網關地址等,根據實際應用向對應的控制位寫入相應的地址即可,這里不再贅述。
W5100可以工作在TCP和UDP兩種通信模式下,在不同的通信模式下又分為客戶端和服務器兩種工作狀態,TCP是面向連接的通信,相比UDP可以提供更可靠的通信服務。本文通過W5100建立TCP的客戶端工作模式,將采集到的數據通過發送至數據中心的服務器。如圖5所示,客戶端首先向服務器發起請求連接,成功建立連接之后,當周期性數據采集任務結束后,將向服務器發送數據包;如果遇到網絡阻塞,會產生通信超時或者沒有響應等情況,將會終止一次通信連接,關閉Socket,然后重新發起新的連接請求,循環反復。

g.jpg



3 系統應用
目前,通過本文開發的基于W5100的遠程數據采集與已經成功應用在遼寧省建筑能耗監測平臺、太原理工大學節約型校園監管平臺、大連市公共機構能耗監管平臺等多個能耗監測項目當中。其中,遼寧省項目覆蓋范圍最廣,涉及到省內14個地級市共50棟建筑的能耗采集與傳輸工作。調試期間,因能耗采集周期和上傳周期均一致,并且各客戶端的時間信息通過服務器進行同步,導致所有的客戶端均在同一個時刻向數據中心發起連接或者發送能耗信息數據,如圖6所示(上傳周期為5 min),第1分鐘的C1~Cn表示各地的數據采集器在同一時刻向服務器發起連接請求,第5 min的C1~Cn表示各數據采集器在同一時刻向服務器發送能耗數據信息,從而造成服務器偶爾因連接負載過多造成采集軟件死機等情況發生。

h.jpg


解決該問題的方法其實很簡單,設置各客戶端分時發送數據即可,但如果對不同的客戶端下載不同版本的程序,從而達到分時的目的,實際操作過程中很不方便,而且造成程序版本不唯一,容易出現問題。經過進一步分析發現,各客戶端的網絡通信質量不一,與服務器成功建立連接的時間不同,通過下面的方法巧妙地將該問題解決,如圖7所示。

i.jpg


通過在程序中加入下面兩行代碼:
Write_W5100(W5100_S0_CR,S_CR_SEND KEEP);
//監測網絡狀態
ssr0_state=Read_W5100(W5100_S0_SSR);
//讀取當前網絡狀態
對當前的網絡進行監測,客戶端與服務器成功建立連接之后,寄存器ssr0_state變為0x17,記錄從發起連接到建立連接之間的時間差△T,發送數據時順延△T時刻再發送,從而零成本解決了負載過大的難題。遼寧省項目自2010年7月開始運行,至今已經連續運行2年多時間,結果表明該系統能夠準確地將數據上傳,工作穩定可靠。

結語
本文以STM32F103VET6為核心處理器,通過單片網絡控制芯片W5100建立了遠程數據,該系統具有高集成度、低成本、開發周期短等優勢。針對建筑能耗監測系統多個客戶端同時發起連接和上傳數據造成的服務器壓力過大問題,文中通過監測客戶端與服務器之間的連接時間點,在發送數據時順延時間差△T,巧妙地解決了該問題。實際項目運行結果表明,該系統運行可靠穩定,應用前景良好。

tcp/ip相關文章:tcp/ip是什么



上一頁 1 2 3 下一頁

評論


相關推薦

技術專區

關閉