簡介
隨著物聯網技術的發展,串口通信和TCP/IP通信業務越來越廣泛。在實際應用中,我們經常會遇到需要將串口數據轉發到TCP服務器或將TCP服務器數據轉發到串口的情況,所以本文將介紹如何實現串口接入TCP服務器進行網絡通信以達到擴展串口通信傳輸距離的目的等。
本實驗選用HPM6450開發板,以及可將節點進行拖拽連接的圖形化設計工具AWFlow Designer,搭建一個串口轉TCP Server的串口服務器與多個TCP Clients進行雙向透明數據傳輸實驗。該實驗用到了serial_in_ex,fscript,push,tcp_server_ex和serial_out_ex節點。
前期準備
在本文之前,已有多篇串口服務器系列的博客文章,在此羅列部分鏈接文章,若有興趣可在EsDA技術專欄查看相關全部文章。
- EsDAMPC-ZC1應用——串口服務器(一)
- EsDAMPC-ZC1應用——串口服務器(二)
-
【EsDA應用】串口轉zws物聯網云平臺
1. 硬件準備
準備TTL轉USB串口工具。![fb67a322-0a64-11ee-962d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9C/05/wKgaomTnvXeAC-B2AAMFN6hhxe0542.png)
準備好HPM6450開發板,并按下圖連接好硬件。
-
DUART調試串口可用于打印調試信息與shell命令查詢:將HPM6450開發板引出的DUART的TXD與RXD分別與TTL轉USB串口工具的RX與TX連接,并將TTL轉USB串口工具插到PC機的USB口上。若用戶TTL轉USB串口工具數量告急,在使用shell命令獲取開發板網口IP號后串口工具可以給UTX1/RX1使用,連線方式相同。
2. 軟件準備
2.1 網口下載流圖開發板固件運行之后,在串口調試助手sscom工具中選擇與DUART相連接的串口端口號,波特率115200,隨即打開串口,輸入"ip addr "即可查詢開發板網絡端口IP詳細信息。
根據硬件連接可知,本文使用的是NET0,對應的IP地址是192.168.137.251。得知開發板的網口IP接下來配置PC機上以太網的IP地址,與開發板對應的IP地址在同一局域網就可,本文配置的PC上IP地址如下:
怎樣確認PC與開發板成功在同一局域網下?PING通對方即可。
![fc3d52f6-0a64-11ee-962d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9C/06/wKgaomTnvXiAQC9hAADU1NJstr4682.png)
![fb35b6d2-0a64-11ee-962d-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9C/05/wKgaomTnvXeALzt7AAABH5UOQQI732.jpg)
本文不再贅述串口通信連接與TCP通信連接成功的過程,具體細節可查看以下鏈接進行學習。
- 【EsDA應用】5分鐘實現一個串口通信業務
-
【EsDA應用】串口轉TCP客戶端
- 建立TCP連接后,由TCP客戶端上報數據給HPM6450搭建的TCP服務器,隨后從TCP服務器讀取數據并將發送到UTX1/RX1串口,最終在串口助手上進行打印顯示。
- 從UTX1/RX1串口讀取串口助手發送的數據,并將數據發送到TCP服務器,由TCP服務器將數據下發給已建立TCP通信連接的客戶端。
1. 添加節點并連線
本實驗實現串口轉TCP Server的串口服務器與多個TCP Clients進行雙向透明數據傳輸實驗。采用的節點有serial_in_ex,fscript,push,tcp_server_ex和serial_out_ex。![fcc5302c-0a64-11ee-962d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9C/06/wKgaomTnvXiAfBGNAABDLyDoZrI069.png)
2. 配置節點
雙擊serial_in_ex節點,并點擊配置節點名旁邊的鉛筆圖標去配置串口的屬性
根據HPM6450的硬件資料表,選擇所使用的串口設備對應的端口號:UTX1/RX1對應的是uart5,根據需要依次配置波特率,字節大小,奇偶校驗,停止位等屬性參數。
var str = istream_read_string(msg.istream,100)
msg.payload = str
ostream_write_string(msg.ostream,msg.payload)
雙擊fscript的消費者節點push,因為是將serial_in_ex讀取到的數據傳遞給TCP Server所以push的目標節點為tcp_server_ex。
雙擊tcp_server_ex節點,因TCP通信與流圖下載都是用NET0的IP地址,所以端口號不能有沖突,因為數據是自定義的沒有幀頭,所以屬性值輸出選擇1并不攜帶報文頭部。
雙擊tcp_server_ex的消費者節點serial_out_ex,因為tcp_server_ex與serial_out_ex節點使用的是輸入流istream和輸出流ostream,所以不需要數據轉換節點,直連即可。綁定的串口與serial_in_ex的端口號一致即可。
![fd592174-0a64-11ee-962d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9C/06/wKgaomTnvXiANipcAAAzx8Y2Y4o700.png)
3. 下載驗證
根據流圖端口配置可知下載流圖的端口號為8888,以及軟件準備可知下載流圖網口IP號為192.168.137.251。那么下載流圖時選擇IP配置如下![fd718fe8-0a64-11ee-962d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9C/06/wKgaomTnvXmAa1OJAAArAMmGx2k639.png)
本文在PC電腦上用NetAssist.exe網絡調試助手工具搭建了兩個TCP Clients,配置遠端主機IP地址和端口號后同時開啟連接,可在數據日志中查看TCP客戶端發出的數據以及從TCP服務端接收到的數據如下。
![fdc826aa-0a64-11ee-962d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9C/06/wKgaomTnvXmAbl0RAACkfB_p17o511.png)
在PC上的串口調試助手SSCOM工具上可查看到從服務端讀取到的兩個TCP客戶端上報數據以及串口助手發送的數據如下。
由上可知,本實驗實現了串口服務器之TCP服務器與兩個不同的TCP客戶端進行雙向數據傳輸的功能。
![fb35b6d2-0a64-11ee-962d-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9C/05/wKgaomTnvXeALzt7AAABH5UOQQI732.jpg)
![fb35b6d2-0a64-11ee-962d-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9C/05/wKgaomTnvXeALzt7AAABH5UOQQI732.jpg)
-
致遠電子
+關注
關注
13文章
409瀏覽量
31440
原文標題:【EsDA應用】串口服務器——TCP Server
文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠電子】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
串口服務器在能源物聯網數據采集中的應用技術參數介紹#
![<b class='flag-5'>串口服務器</b>在能源物聯網數據采集中的應用技術參數介紹#](https://file1.elecfans.com//web3/M00/06/19/wKgZO2eHS7qAYupgAAJqCYDERT4525.jpg)
【新品】性能飛躍,一鍵部署!NE2系列多款型號串口服務器上線
![【新品】性能飛躍,一鍵部署!NE2系列多款型號<b class='flag-5'>串口服務器</b>上線](https://file.elecfans.com/web2/M00/3E/6A/pYYBAGJhBGGAGyDYAACBPQuBZQI711.png)
串口服務器是什么?4路、8路、16路串口服務器有什么區別?
串口服務器和TCP/IP協議棧是什么關系
串口服務器的定義和功能
PLC連接串口服務器RS485轉以太網步驟
![PLC連接<b class='flag-5'>串口服務器</b>RS485轉以太網步驟](https://file1.elecfans.com/web2/M00/FD/1F/wKgZomaYa8GAXSReAABYWK9pJJM438.png)
WiFi串口服務器與工業路由器:局域網應用的協同之力
![WiFi<b class='flag-5'>串口服務器</b>與工業路由<b class='flag-5'>器</b>:局域網應用的協同之力](https://file1.elecfans.com/web2/M00/EA/AE/wKgZomZZqIOAZ6uZAAIo9MdUjCE546.png)
智嵌物聯串口服務器成對使用模式演示
![智嵌物聯<b class='flag-5'>串口服務器</b>成對使用模式演示](https://file1.elecfans.com//web2/M00/EA/97/wKgZomZZScWAUTQ9AABzOb0JBpQ059.jpg)
串口服務器——小巧精致的高性能串口轉以太網/WIFI服務器
![<b class='flag-5'>串口服務器</b>——小巧精致的高性能<b class='flag-5'>串口</b>轉以太網/WIFI<b class='flag-5'>服務器</b>](https://file1.elecfans.com/web2/M00/BB/AA/wKgZomWcxK6ATbXmAACLtc5ICi8673.png)
什么是DTU和串口服務器的區別
二代串口服務器模組煥新
![二代<b class='flag-5'>串口服務器</b>模組煥新](https://file.elecfans.com/web2/M00/3E/6A/pYYBAGJhBGGAGyDYAACBPQuBZQI711.png)
評論