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

嵌入式系統中Modbus/TCP 協議棧的設計和實現

2020-12-22 10:36:44
機電產品開發與創新 2020年6期
關鍵詞:嵌入式設計

柳 青

(北京電子科技職業學院, 北京 100176)

0 引言

隨著工業物聯網、制造智能化進程的推進,嵌入式設備之間能夠實現簡單、 可靠的通信成為自動化領域的實際需要。 Modbus/TCP 將Modbus 協議嵌入到TCP 協議的應用層,由于其具有開放的、標準的協議格式,廣泛應用于工業通信。 而TCP/IP 協議結構龐大,嵌入式系統的存儲計算資源有限,因此研究Modbus/TCP 在嵌入式系統上的設計方法很有必要。

渠薇等設計了基于W5500 的Modbus/TCP 服務器[1],這種方案需要采用專用的協議芯片完成TCP/IP 協議解析,不僅使電路設計復雜,而且受限于外圍芯片與處理器的通信帶寬,會影響系統的整體性能。劉大千等提出了一種μC / OS 實時操作系統、LWIP 輕型協議棧和MODBUS協議相結合的方法[2],這種方案需要對操作系統和協議棧進行移植,軟件代碼量較大,對系統的維護升級提出很大挑戰。 綜合以上研究,設計了一種直接運行于微處理器上的,精簡的Modbus/TCP 協議棧,避免了設計專用電路和代碼移植的工作,同時能夠改善通信的實時性能。

1 Modbus /TCP 協議棧整體設計

Modbus/TCP 協議底層以TCP/IP 協議為基礎,在桌面系統中,該協議由操作系統提供的套接字接口來實現,但是在嵌入式系統中,芯片驅動只包含最底層的以太網接收、發送數據的功能, 所以需要構建TCP/IP協議。 另外,由于以太網數據包中必須包含硬件MAC 地址,所以需要實現ARP 協議[3]。

設計的協議棧整體流程如圖1 所示, 處理器不斷從網卡讀取數據包, 然后判斷該數據包是ARP 數據還是IP 數據,如果是ARP 數據,則對該數據包進行地址解析;如果是IP 數據包,進一步判斷是否是TCP 數據包,最后判斷是不是Modbus 協議數據,如果全部成立則進行Modbus 協議解析。

圖1 Modbus/TCP 協議棧流程

2 Modbus/TCP 協議棧實現

2.1 TCP 協議

TCP 協議是面向連接的協議,在數據通信之前,必須要建立連接,否則通信的雙方不能交換數據;在通信結束之前也必須關閉連接,以便節省系統資源,并且保證下次通信連接能夠正確建立。 建立連接的過程稱為 “三次握手”,關閉連接的過程稱為“四次揮手”[4]。通過判斷TCP 協議中的控制字字段來判斷該報文是請求連接報文還是關閉連接報文。

在TCP 協議解析中,會對SYN 標志位和FIN 標志位依次進行判斷。如果數據包的SYN 位為1,則表示該數據包為請求連接數據包,協議棧將返回ACK 應答包,通知客戶端本機已經準備好接收數據, 客戶端收到收到應答包后則通信連接完全建立,可以開始數據交換。 如果FIN標志位為1,則表示該數據包為關閉連接數據包,協議棧等待發送緩沖區為空時,返回ACK 應答包,通知服務器可以斷開連接,服務器收到應打包后,斷開連接,數據交換終止。 TCP 協議解析代碼如下所示:

2.2 Modbus 協議

Modbus/TCP 是以標準modbus 作為用戶層協議,modbus 協議報文格式如下[5]:

首先計算寄存器的其實地址,由于Modbus 的數據順序與內存存儲順序相反,因此地址的計算需要移位操作,然后用同樣的方法計算寄存器數量。 根據寄存器地址和數量可以計算出數據塊在內存中的存儲地址以及長度,將內存數據復制到數據包中,作為返回數據。最后再將實際讀取的數據長度更新到協議中的長度字段中, 作為數據包長度返回到客戶端。 第106 個數據包和第107 個數據包是一對Moubus/TCP 請求應答數據,可以看出從請求到應答的時間間隔僅有132μs, 說明該協議棧具有一定的實時性。

2.3 ARP 協議

客戶端第一次向服務器請求連接或者數據的時候,客戶端只知道服務器的IP 地址,并不知道客戶端的網卡設備硬件地址, 因此主機需要將詢問硬件地址的報文廣播到網絡上,具有匹配的IP 地址的服務器會將自己的網卡地址添加到返回數據包中發送回客戶端, 客戶端就得到了對應服務器的網卡地址, 這個協議稱為地址解析協議(arp),地址解析協議的數據類型字段為0x0608,當程序檢查出數據包具有該種類型是, 則跳轉至地址解析函數中。 地址解析協議源碼如下:

首先判斷該數據包的Message Type 字段是不是類型1,類型1 代表該數據包為地址請求操作,進而判斷該數據包的目的IP 地址是否與本地IP 地址一致, 如果一致則說明該數據包即為請求本地IP 的網卡地址,本地機需要對該數據包進行相應。此時協議棧需要組裝響應報文,將報文的Messege Type 字段設置為類型2, 表示返回數據包為ARP 響應包;之后將源IP 和源MAC 地址均設置為本地地址,目標地址則利用請求包中的源地址。

3 Modbus/TCP 通信實驗

為了驗證所設計的modbus/TCP 協議棧的正確性,搭建了如圖2 所示的通信實驗平臺。 其中嵌入式板卡以xilinx 的zynq-7020 為 處 理器, 其上運行了設計的協議棧,IP 設置為192.168.1.9。筆記本電腦上運行測試程序,IP 設置為192.168.1.1, 并采用Wireshark 軟件進行抓包,抓取的數據包如圖3 所示。

從圖3 中可以看出, 第101 個數據包為計算機發出的ARP 請求包, 詢問IP 地址為192.168.1.9 的主機的MAC 地址, 第102 個數據包是板卡返回的ARP 應答包,報告了板卡的地址信息。 第103 個數據包為計算機發出的TCP 建立連接請求, 第104 個數據包為板卡返回的請求應當, 第105 個數據包為計算機對應答的確認, 至此TCP 連接建立完成。 從第105 個數據包開始,計算機和板卡開始利用Modbus/TCP 協議進行數據交互。

圖2 Modbus/TCP 通信實驗平臺

圖3 Wireshark 抓包數據

4 結論

通過詳細分析TCP/IP 協議和Modbus 協議規范,并在此基礎上設計了Modbus/TCP 協議棧,實現了ARP 地址解析協議,最后將設計的協議棧代碼在xilinx 微處理器上運行,與計算機進行通信實驗。 實驗表明,協議棧能夠與計算機進行數據交換,應答時間小于1ms,實時性較好。

猜你喜歡
嵌入式設計
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
搭建基于Qt的嵌入式開發平臺
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
Altera加入嵌入式視覺聯盟
主站蜘蛛池模板: 国产00高中生在线播放| 91久久精品国产| 最新无码专区超级碰碰碰| 日韩人妻无码制服丝袜视频| 国产欧美日韩资源在线观看| 国内精品一区二区在线观看| 免费高清毛片| 制服丝袜无码每日更新| 99视频在线精品免费观看6| 四虎成人精品| 国产美女精品在线| 欧美综合一区二区三区| 5388国产亚洲欧美在线观看| 国产亚洲男人的天堂在线观看| 日本免费新一区视频| 男女精品视频| 国产毛片高清一级国语| 国产无码在线调教| 国产黑丝一区| 亚洲美女视频一区| 国产亚洲精品精品精品| 国产精品毛片一区视频播| 全部免费毛片免费播放| 国产精品女熟高潮视频| 四虎永久免费网站| 亚洲国产第一区二区香蕉| 亚洲区第一页| 亚洲欧洲美色一区二区三区| 99久久国产综合精品女同| 人人爽人人爽人人片| 亚洲丝袜中文字幕| 国产99视频精品免费观看9e| 色综合狠狠操| 伊人色综合久久天天| 香蕉在线视频网站| 国产18在线| 国产本道久久一区二区三区| 精品小视频在线观看| 99久久亚洲综合精品TS| 国产成人综合日韩精品无码首页| 欧美午夜理伦三级在线观看| 国产成人综合亚洲网址| 男女男精品视频| 国产欧美日韩另类精彩视频| 午夜视频www| 日本午夜精品一本在线观看 | 亚洲国产成人在线| 黄色网在线免费观看| 91在线精品麻豆欧美在线| 香蕉久久国产精品免| 亚洲国产天堂久久综合| 人妻出轨无码中文一区二区| 91丨九色丨首页在线播放| 日韩毛片在线播放| 国内精品久久久久鸭| 蝌蚪国产精品视频第一页| 国产精品部在线观看| 成人年鲁鲁在线观看视频| 精品综合久久久久久97超人| 欧美怡红院视频一区二区三区| 久久久久国产一区二区| 亚洲人精品亚洲人成在线| 日韩欧美国产综合| 无遮挡一级毛片呦女视频| 国产精品视屏| 一本大道东京热无码av| 亚洲欧洲免费视频| 国产拍在线| 国产成人高清精品免费5388| 国产一区二区三区免费观看| 国产欧美亚洲精品第3页在线| 国产精品嫩草影院视频| 大香网伊人久久综合网2020| 国产尹人香蕉综合在线电影| 免费国产高清视频| 野花国产精品入口| 国产美女无遮挡免费视频网站| 欧美成人免费一区在线播放| 国产欧美高清| 欧美一区中文字幕| 国产色婷婷| 久久semm亚洲国产|