如何讓自動化領域的串口設備具備聯網能力?本文將基于EsDA平臺,帶你開發一個串口服務器之TCP服務器的業務,快速實現串口聯網功能。
簡介
隨著物聯網技術的發展,串口通信和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串口工具。
準備好HPM6450開發板,并按下圖連接好硬件。
DUART調試串口可用于打印調試信息與shell命令查詢:將HPM6450開發板引出的DUART的TXD與RXD分別與TTL轉USB串口工具的RX與TX連接,并將TTL轉USB串口工具插到PC機的USB口上。若用戶TTL轉USB串口工具數量告急,在使用shell命令獲取開發板網口IP號后串口工具可以給UTX1/RX1使用,連線方式相同。
網口下載流圖:將HPM6450的NET0網口通過網線與PC機上的網絡端口進行連接,組建一個小型局域網。
2. 軟件準備
2.1 網口下載流圖開發板固件運行之后,在串口調試助手sscom工具中選擇與DUART相連接的串口端口號,波特率115200,隨即打開串口,輸入"ip addr\r"即可查詢開發板網絡端口IP詳細信息。
根據硬件連接可知,本文使用的是NET0,對應的IP地址是192.168.137.251。得知開發板的網口IP接下來配置PC機上以太網的IP地址,與開發板對應的IP地址在同一局域網就可,本文配置的PC上IP地址如下:
怎樣確認PC與開發板成功在同一局域網下?PING通對方即可。
?業務處理
本文不再贅述串口通信連接與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。
2. 配置節點
雙擊serial_in_ex節點,并點擊配置節點名旁邊的鉛筆圖標去配置串口的屬性
根據HPM6450的硬件資料表,選擇所使用的串口設備對應的端口號:UTX1/RX1對應的是uart5,根據需要依次配置波特率,字節大小,奇偶校驗,停止位等屬性參數。
雙擊serial_in_ex的消費者節點fscript,這個節點主要是讀取serial_in_ex的串口數據并傳遞給后續節點。
var str = istream_read_string(msg.istream,100)msg.payload = strostream_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的端口號一致即可。
3. 下載驗證
根據流圖端口配置可知下載流圖的端口號為8888,以及軟件準備可知下載流圖網口IP號為192.168.137.251。那么下載流圖時選擇IP配置如下
本文在PC電腦上用NetAssist.exe網絡調試助手工具搭建了兩個TCP Clients,配置遠端主機IP地址和端口號后同時開啟連接,可在數據日志中查看TCP客戶端發出的數據以及從TCP服務端接收到的數據如下。
在PC上的串口調試助手SSCOM工具上可查看到從服務端讀取到的兩個TCP客戶端上報數據以及串口助手發送的數據如下。
由上可知,本實驗實現了串口服務器之TCP服務器與兩個不同的TCP客戶端進行雙向數據傳輸的功能。
-
服務器
+關注
關注
12文章
9160瀏覽量
85427 -
TCP
+關注
關注
8文章
1353瀏覽量
79077 -
串口
+關注
關注
14文章
1554瀏覽量
76523
發布評論請先 登錄
相關推薦
評論