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加入嵌入式視覺聯盟
主站蜘蛛池模板: 国产一级在线播放| 国产亚洲高清在线精品99| 久久精品欧美一区二区| 亚洲天堂视频在线免费观看| 国产真实二区一区在线亚洲| 亚洲高清在线天堂精品| 中文精品久久久久国产网址| 国产草草影院18成年视频| 国语少妇高潮| 人妻丰满熟妇啪啪| 中文字幕丝袜一区二区| 久久综合色天堂av| 国产黑丝视频在线观看| 丰满的少妇人妻无码区| 高清不卡毛片| 成人午夜网址| 精品无码人妻一区二区| 国产美女免费网站| 日韩高清中文字幕| 性欧美久久| 久久精品人妻中文视频| 极品国产在线| 伊人激情综合网| 9丨情侣偷在线精品国产| 伊人91视频| 色婷婷视频在线| 在线不卡免费视频| 99视频在线精品免费观看6| 欧美97欧美综合色伦图| 久热re国产手机在线观看| 久久国产精品麻豆系列| 国产福利一区视频| 久久精品无码中文字幕| 亚洲视频二| 精品黑人一区二区三区| 亚洲无线观看| 欧美日韩精品一区二区在线线 | www.精品视频| 亚洲国产欧美中日韩成人综合视频| 在线日本国产成人免费的| 日韩免费中文字幕| 波多野结衣久久高清免费| h视频在线播放| 亚洲欧美日韩中文字幕在线| 国产精品视频观看裸模| 欧美伊人色综合久久天天| 成人午夜在线播放| 无码网站免费观看| 亚洲不卡av中文在线| 亚洲成人www| 六月婷婷精品视频在线观看| 久久午夜影院| 91精品久久久久久无码人妻| 婷婷六月综合| 亚洲av色吊丝无码| 国产精品无码久久久久久| 啪啪国产视频| 色天堂无毒不卡| 亚洲欧洲综合| 大陆精大陆国产国语精品1024 | 无码专区在线观看| 狠狠ⅴ日韩v欧美v天堂| 国产第三区| 在线99视频| 国产欧美日韩精品综合在线| 爱色欧美亚洲综合图区| 在线观看视频一区二区| 成人午夜精品一级毛片| 国产精品制服| 一级全免费视频播放| 久久国产精品娇妻素人| 又粗又大又爽又紧免费视频| 国产欧美视频在线| 99re免费视频| 欧美一级在线| 九九这里只有精品视频| 成人在线天堂| 夜夜高潮夜夜爽国产伦精品| 成人亚洲天堂| 国产高颜值露脸在线观看| 色婷婷在线播放| 国产成人精品18|