999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

增氧泵自動控制系統通信協議的設計與實現

2016-10-21 06:40:54肖微孫亞新
常熟理工學院學報 2016年4期

肖微,孫亞新

(常熟理工學院a.計算機科學與工程學院;b.電氣與自動化工程學院,江蘇常熟215500)

增氧泵自動控制系統通信協議的設計與實現

肖微a,孫亞新b

(常熟理工學院a.計算機科學與工程學院;b.電氣與自動化工程學院,江蘇常熟215500)

結合應用層協議設計與實現中常見的問題,給出了增氧泵自動控制系統通信協議的設計方案,在此基礎上提出了增氧泵自動控制系統通信協議的制定方法.該方法建立在TCP/IP通信技術基礎上,能夠有效地實現增氧泵控制箱與服務器間的通信.

應用層協議;網絡編程;同步通信;異步通信

現代計算機網絡編程技術源于伯克利套接字技術[1].該技術提供了以C語言為基礎,基于Unix平臺的用于進程間通信的接口.通過TCP/IP和套接字實現自定義應用層通信協議,能夠有效的實現數據的可靠傳輸.通信協議精確地定義了雙方通信控制信息和解釋信息[2].進程雙方以服務器與客戶端的方式進行通信.通信雙方通過IP地址與通信端口進行鑒定,進而實現鏈接的建立、維護、關閉以及消息的傳輸.與人類對話相似,為了完成特定的功能,通信雙方必須使用相同的“語言”——應用層協議.應用層協議規定了接送的消息內容的實際含義.應用層協議指定的好壞不僅關系到網絡帶寬的占用,報文解析代碼的繁簡,還關系到通信安全性,它直接決定著一個項目的質量.對于一個實際的項目而言,掌握如何設計應用層協議以及如何實現給定的應用層協議具有重要的意義.

1 增氧泵控制系統通信協議的設計方案

在淡水漁業養殖中必須確保水中的溶氧度達到一定的指標,否則容易引起魚因缺氧而死亡,因而必須保證增氧泵在水溶氧度低于臨界值時處于啟動狀態.傳統作業中,農戶必須定時打開增氧泵,盡管這項工作的工作強度不大,但由于工作人員晚上無法正常休息,因而非常耗費精力.

為了改進農戶的生活質量,常熟市智勝信息技術有限公司聯合常熟理工學院計算機科學與工程學院物聯網工程項目組,開發了一款智能魚塘增氧泵控制系統.該系統通過傳感器檢測水中溶氧度的值,自動控制增氧泵的開啟與關閉,并將數據上傳服務器.用戶可以遠程查看水溶氧度與增氧泵狀態的變化過程,也可以人工遠程控制增氧泵的狀態.為了達到前述功能,在系統運行過程中,需要增氧泵控制箱中的單片機與遠程服務器保持實時通信.為實現控制箱與服務器間的消息傳送,需要設計一個應用層協議.

應用層協議的制定既要考慮到消息的語言表達也應考慮到通信節點對消息完整性、正確性的驗證.此外協議的制定應當充分考慮到開發人員的實現難度.

1.1消息完整性定義

套接字是計算機網絡編程的核心和基礎.計算機網絡通信中,客戶端與服務端所扮演的角色不同,因而套接字在客戶端與服務器端的使用方法有所不同.服務端的IP地址以及通信端口在通信前對客戶端公開.服務啟動后,服務端程序在通信端口偵聽客戶端發出的鏈接請求.當客戶端向服務端IP地址與特定通信端口發出鏈接請求后,服務端接受鏈接請求,并在服務端維護一個到該通信端口的套接.此后,雙方便建立了計算機網絡上的虛鏈接[3,4].在鏈接套接字關閉前,通信雙方可以通過網絡流的形式來進行消息的收發.

由于計算機網絡中通信雙方的鏈接是通過路由器的中轉所完成的虛鏈接,而路由器同時服務于不同的通信鏈接,因此計算機通信的雙方的“發送”與“接收”不存在一一對應的關系.增氧泵控制箱中的單片機與遠程服務器的通信中,接收方在進行消息解析前必須確保所接收到的數據是完整和正確的.

有兩種常用的技術方法可以用來驗證協議中消息的完整性.第一種方法可以在消息的頭部規定固定長度的字節用來描述該消息的總長度或剩余長度.當消息接收端接收到足夠長度的字節后,可以確認所收數據為完整,從而開始校驗與解析工作;第二種方法將一個特殊字節(如0x0D)放置到消息的最后,當消息接收方接受的最后一個字節為規定的特殊字節時,便可判定所收數據為完整,否則將所收包裹進行緩存,繼續接收剩余數據[5,6].

采用頭部描述消息長度的方式進行完整性驗證具有通用性,可以適應不同的情況.然而當消息長度較大時,必須使用多個字節定義消息的長度,此時必須規定長度數據的編碼方式(大端方式或小端方式);此外對于開發人員來講實現這種完整性定義的協議相對較為困難.

采用尾部特征字節的方式進行完整性驗證對于開發人員來講實現起來較為容易(只需對每次接收到的數據的最后一位進行檢查即可).然而,協議制定者必須確保完整性驗證字節不出現在消息的其它部分,否則消息的完整性驗證將無效.

增氧泵控制系統應用層協議中采用0x0D字節作為消息結束位以保證消息的完整性.

1.2消息的正確性檢測

為了確保所接收的數據是發送方所發送的原始數據,在應用層協議制定時經常采用數據校驗技術來對接收到的數據進行校驗.通常校驗位的計算建立在數學方法的基礎之上,如CRC校驗、異或校驗等[7].

當頭部字節規定數據長度時,校驗數據會放置到數據的最后;當結尾完整性校驗字節被采納時,校驗數據會被放置到完整性校驗字節前面相鄰的位置.

由于校驗數據是通過消息中原始數據計算得出,因此在采用結尾完整性校驗技術時有可能出現正確性校驗數據中含有完整性校驗字節的情況.此時如果不做任何技術處理就會出現消息解析錯誤.為了正確地解析消息,增氧泵控制系統應用層協議中采用字節替換的方式來解決完整性校驗位與正確性校驗位沖突的問題.如:以0x0D作為完整性校驗字節,當正確性校驗數據中出現0x0D字節時可以規定以0x20進行替換.

1.3消息體中字段的定義

應用層通信協議用于規定通信雙方所發送/接收消息的功能性語意,換言之,應用層協議規定了期待對方發送的數據的具體格式,消息的組織方式等細節.

常見的協議組織方式有兩種:第一種直接規定了消息中每一字節(或bit這種情況較少見)的取值范圍和對應含義;第二種將消息的定義建立在字符串基礎之上,這時通信協議中規定了協議軀干所采用的編碼方式(通常為標準編碼),并在此基礎之上規定如何用字符串來表達消息的具體內容.第一種協議更為緊湊但實現時的開發任務相對繁重;第二種協議用于建立在字符串的基礎上,因而完成相同功能所耗費的字節數較多,但由于大多數語言或平臺都有針對字符串的強大支持,因此系統實現較為方便快捷.

應用層協議的軀干部分可以看作將結構體中的數據進行串行化的表達.當消息中所有字段都有固定的長度時,可以用定長的字節來規定特定的字段.當某些字段無法預知其長度時,應用層協議中需要規定字段標識和字段分隔符.通常在一個應用協議中,當存在定長字段與不定長字段時,建議將定長字段集中放置在消息的前部,而不定長字段放置于消息的后部,這樣的定義便于協議解析程序的實現.

2 增氧泵控制系統通信協議的制定與實現方法

2.1通信協議框架

根據1中所描述的設計方案,增氧泵控制系統應用層協議格式設置如下:

由于控制箱與服務器間通過中國移動的通信網關進行交互,為區分本協議與AT命令,本協議的所有數據包前統一加入消息頭0x24($).

消息頭代表通信雙方所發消息的鑒定值;數據段用于所傳輸的數據或命令;校驗位為從消息頭(包括消息頭)到數據段結束按字節亦或運算所得到的一個字節的校驗位,用于驗證信息在傳輸中是否存在通信錯誤(或被篡改);結束符在本協議中固定為0x13(CR),用于判斷所接收的消息是否完整.根據本文2.2中的原則,當驗證字節的計算結果為0x13時,將其值修改為0x20.

以該協議中的心跳包消息對為例,該消息對包含從水泵控制箱向服務器返送的消息(消息編號003)和從服務器返回的確認消息,消息內容如下:

心跳包$<003><16字節控制芯片ID><checksum><CR>

心跳包確認$<004><16字節控制芯片ID><|><節點ID列表><checksum><CR>

該消息對中除上述描述的協議頭、消息頭、checksum以及結束位CR外,還包括了16字節控制箱芯片ID號和返回消息中的傳感器節點芯片ID列表(一個控制箱可以鏈接多個傳感器).控制節點間以‘|'進行分割可以方便通過split方法進行消息解析.

2.2消息同步機制

增氧泵控制系統通信雙方采用標準的客戶端服務器消息同步機制,連接的建立以及周期性心跳包的起始由增氧泵控制箱(客戶端)完成;當連接建立后客戶端和服務器均可發起消息對應答.每個消息對由一個發送消息和一個與之對應的答復消息構成.根據消息對的發起方不同可以將消息對分為兩類:第一類消息對由控制箱(客戶端)發起,服務器負責應答;第二類消息對由服務器發起,控制箱負責應答.

圖1 系統流程

第一類消息對消息頭小于等于“499”,第二類消息對消息頭大于等于“500”.客戶端發送消息的消息頭為奇數;服務器端發送消息的消息頭為偶數.

2.3系統流程設計

由于該系統采用TCP長連接,服務端與客戶端均能發起消息對,因而在系統的設計中要求通過異步的方式進行消息的接收,以達到事件觸發的效果.系統流程如圖1所示.

系統啟動后,首先從配置文件中讀取配置信息并根據配置數據對系統初始化,然后進行TCP鏈接(客戶端與服務器在此過程中實現邏輯有所差異見參考文獻[1]中對此的描述).

當TCP連接建立后,系統開始偵聽系統觸發事件.系統觸發事件由系統業務層決定,如數據庫中的數據滿足觸發條件,系統狀態信息滿足觸發條件等.當系統觸發事件發生后,系統向通信方發送消息并處理應對消息,此后系統重新開始偵聽系統觸發事件;當系統中沒有觸發事件時,系統持續接收通信方消息直至接收到完整的消息并對之解析與應答后,系統重新開始偵聽系統觸發事件.

3 結論

按照本文所提出的協議制定方法,常熟理工學院物聯網工程項目組與常熟市智勝信息技術有限公司聯合開發了智能增氧泵控制系統.目前該產品已應用于常熟市小山基地、張家港鴻屹水產養殖有限公司,已分別經過2年和1年的運行,目前系統運行穩定,達到了預期要求.

[1]王榕,許磊,樊宇濤.VxWorks下基于BSDsocket的網絡通信[J].電腦編程技巧與維護,2006(08):77-80.

[2]魯士文.計算機網絡協議和實現技術[M].北京:清華大學出版社,2000:21.

[3]許銳炮.Socket在C#程序中的應用[J].科技視界,2014(21):64.

[4]李軍,倪宏,陳君,等.一種應用層協議解析加速算法[J].四川大學學報(工程科學版),2014(04):14.

[5]李鵬飛,馬恒太,侯玉文,等.移動代理完整性協議形式化分析方法研究[J].電子學報,2009,37(8):1669-1674.

[6]艾祝.基于ISCSI的數據完整性研究與實現[D].蘭州:蘭州大學,2014.

[7]楊超,張偉哲,張宏莉,等.基于檢查點算法的網絡計算機容錯機制研究[J].微電子學與計算機,2006,23(9):82-84.

Design and Implementation of Communication Protocol of Oxygen Pump Controllingsystem

XIAO Weia,SUN Yaxinb
(a.School of Computerscience and Engineering;b.School of Electric and Automatic Engineering,Changshu Institute of Technology,Changshu 215500,China)

It is effective to improve aquaculture technology and automation level of aquatic products by oxygen pump controllingsystem.Pond water oxygen lack willseriously affect the growth of aquatic products,and even cause death.At thesame time,over-aeration will cause unnecessary waste.Thus the oxygen pump automatic controlsystem undertakes communication tasks in thestate of emergency.Considering common problems on the application layer protocol design and implementation,the paper gives the communication protocol design of the oxygen pump automatic controlsystem,and on the basis of it,a method is presented for designing communication protocol applied on oxygen pump controllingsystem.Based on TCP/IP communication technology,this method can effectively achieve the communication between the oxygen pump control box andservers.

application protocol;network programming;synchronous communication;asynchronous communication

TP311

A

1008-2794(2015)04-0085-04

2016-04-10

肖微,助教,碩士,研究方向:物聯網應用,E-mail:Xiaowei@cslg.cn.

主站蜘蛛池模板: 一区二区影院| 国产成人艳妇AA视频在线| 四虎永久免费地址| 欧美亚洲一二三区| 国内精品九九久久久精品| 欧美亚洲一二三区| 国产精品永久免费嫩草研究院| 欧美日韩一区二区在线播放| 嫩草在线视频| 国产成人91精品| 色偷偷一区二区三区| 亚洲三级电影在线播放| 国产精品视频猛进猛出| 99色亚洲国产精品11p| 91av成人日本不卡三区| 玖玖精品视频在线观看| 免费视频在线2021入口| 欧美综合成人| 久久黄色影院| 亚洲乱亚洲乱妇24p| 亚洲首页在线观看| 高清无码手机在线观看 | 香蕉国产精品视频| 亚洲欧美人成人让影院| 亚洲男女在线| 亚洲a级毛片| 国产精品第三页在线看| 国产成人做受免费视频| 国产成人高清亚洲一区久久| 欧美精品亚洲日韩a| AV不卡在线永久免费观看| 亚洲成人网在线观看| 免费国产福利| 中文字幕久久波多野结衣| 丰满的熟女一区二区三区l| 国产在线精彩视频二区| 国产欧美性爱网| 午夜视频免费试看| 中文国产成人久久精品小说| 四虎国产精品永久一区| 亚洲欧美日韩中文字幕在线| 国产制服丝袜91在线| 成人免费黄色小视频| 久久精品丝袜| 国产精品第5页| aaa国产一级毛片| 亚洲精品无码成人片在线观看| 操国产美女| 亚洲综合亚洲国产尤物| 欧美国产日韩在线观看| 日本人又色又爽的视频| 亚洲色图欧美视频| 国产青青操| 久久这里只有精品66| 女人18一级毛片免费观看| 国产精品网址你懂的| 欧美伦理一区| 亚洲国产成熟视频在线多多| 欧美成人影院亚洲综合图| 久久免费视频播放| 亚洲a级毛片| 亚洲精品无码av中文字幕| 国语少妇高潮| 亚洲综合色在线| 国产网站免费观看| 中日韩一区二区三区中文免费视频| 国产性猛交XXXX免费看| 伊人蕉久影院| 欧美啪啪一区| 激情爆乳一区二区| 中文字幕人成乱码熟女免费| 国产成人AV综合久久| 国产喷水视频| 国产真实乱子伦视频播放| 青青青亚洲精品国产| 福利片91| 色综合天天娱乐综合网| 亚洲天堂网视频| 亚洲色中色| 欧美日韩动态图| 日本不卡在线视频| 日本午夜三级|