??簡(jiǎn)介串口服務(wù)器本質(zhì)是將串口數(shù)據(jù)通過(guò)各種網(wǎng)絡(luò)協(xié)議傳輸?shù)狡渌O(shè)備。本文主要基于TCP/IP協(xié)議簇中的UDP協(xié)議實(shí)現(xiàn)一個(gè)UDP Server的串口服務(wù)器通信實(shí)驗(yàn)。
本實(shí)驗(yàn)選用EPC6450-AWI開發(fā)板,以及將節(jié)點(diǎn)進(jìn)行拖拽連線的圖形化設(shè)計(jì)工具AWFlow Designer,搭建一個(gè)串口轉(zhuǎn)UDP Server的串口服務(wù)器并與多個(gè)UDP Clients進(jìn)行雙向透明傳輸實(shí)驗(yàn)。該實(shí)驗(yàn)用到了serial_in_ex,fscript,push,udp_server_ex,serial_out_ex節(jié)點(diǎn)。
前期準(zhǔn)備
在本文之前,已有多篇串口服務(wù)器系列的博客文章,在此羅列部分文章鏈接,若有興趣可在 EsDA技術(shù)專欄 查看相關(guān)全部文章。-
EsDAMPC-ZC1應(yīng)用——串口服務(wù)器(一)
-
EsDAMPC-ZC1應(yīng)用——串口服務(wù)器(二)
-
【EsDA應(yīng)用】串口轉(zhuǎn)zws物聯(lián)網(wǎng)云平臺(tái)
-
【EsDA應(yīng)用】串口服務(wù)器——TCPServer
業(yè)務(wù)處理
本文不再贅述串口通信連接與UDP通信連接成功的過(guò)程(與TCP通信連接不同的是UDP并沒(méi)有三次握手的過(guò)程只記錄一些地址信息等),具體細(xì)節(jié)可查看以下鏈接進(jìn)行學(xué)習(xí)。-
【EsDA應(yīng)用】5分鐘實(shí)現(xiàn)一個(gè)串口通信業(yè)務(wù)
-
【EsDA應(yīng)用】串口服務(wù)器——UDPClient
-
建立UDP連接后,由UDP客戶端上報(bào)數(shù)據(jù)給EPC6450-AWI開發(fā)板搭建的UDP服務(wù)器,隨后從UDP服務(wù)器讀取數(shù)據(jù)并發(fā)送到UTX1/RX1串口,最終在串口助手上進(jìn)行打印顯示。
-
從UTX1/RX1串口讀取串口助手發(fā)送的數(shù)據(jù),并將數(shù)據(jù)發(fā)送到UDP服務(wù)器,由UDP服務(wù)器將數(shù)據(jù)下發(fā)給已建立UDP通信連接的客戶端。
1. 添加節(jié)點(diǎn)并連線
本實(shí)驗(yàn)實(shí)現(xiàn)串口轉(zhuǎn)UDP Server的串口服務(wù)器與多個(gè)UDP Clients進(jìn)行雙向透明數(shù)據(jù)傳輸?shù)墓δ?。采用的?jié)點(diǎn)有serial_in_ex,fscript,push,tcp_server_ex和serial_out_ex。
2. 配置節(jié)點(diǎn)
雙擊serial_in_ex節(jié)點(diǎn),并點(diǎn)擊配置節(jié)點(diǎn)名旁邊的鉛筆圖標(biāo)去配置串口的屬性。
根據(jù)EPC6450-AWI的硬件資料表,選擇所使用的串口設(shè)備對(duì)應(yīng)的端口號(hào):UTX1/RX1對(duì)應(yīng)的是uart5,根據(jù)需要依次配置波特率,字節(jié)大小,奇偶校驗(yàn),停止位等屬性參數(shù)。雙擊serial_in_ex的消費(fèi)者節(jié)點(diǎn)fscript,這個(gè)節(jié)點(diǎn)主要是讀取serial_in_ex的串口數(shù)據(jù)并傳遞給后續(xù)節(jié)點(diǎn)。
var str = istream_read_string(msg.istream,100)
msg.payload = str
雙擊fscript的消費(fèi)者節(jié)點(diǎn)push,因?yàn)槭菍erial_in_ex讀取到的數(shù)據(jù)傳遞給UDP Server所以push的目標(biāo)節(jié)點(diǎn)為udp_server_ex。
雙擊udp_server_ex節(jié)點(diǎn),因UDP通信與流圖下載都是用NET0的IP地址,所以端口號(hào)不能有沖突,因?yàn)閿?shù)據(jù)是自定義沒(méi)有幀頭,所以屬性值輸出選擇1不攜帶報(bào)文頭部。雙擊udp_server_ex的消費(fèi)者節(jié)點(diǎn)serial_out_ex,因?yàn)閡dp_server_ex與serial_out_ex節(jié)點(diǎn)使用的是輸入流istream和輸出流ostream,所以不需要數(shù)據(jù)轉(zhuǎn)換節(jié)點(diǎn),直連即可。綁定的串口與serial_in_ex的端口號(hào)一致即可。3. 下載驗(yàn)證AWFlow Designer工具擁有自動(dòng)識(shí)別可用目標(biāo)板的功能,硬件連接成功且程序開始正常運(yùn)行后,即可在AWFlow Designer界面上看到如下圖所示已經(jīng)成功自動(dòng)識(shí)別出的下載途徑,隨后點(diǎn)擊旁邊的下載按鈕即可下載流圖。
本文在PC電腦上用TCP&UDP測(cè)試工具搭建了兩個(gè)UDP Clients,打開工具軟件后點(diǎn)擊創(chuàng)建連接選擇UDP類型,并配置遠(yuǎn)程UDP Server的目標(biāo)IP和端口號(hào),本機(jī)端口可選擇隨機(jī)配置也可指定需注意的是兩個(gè)UDP Clients都是在同一臺(tái)電腦上搭建的所以本機(jī)端口號(hào)不能一致(符合端口號(hào)范圍之內(nèi)隨意取)。創(chuàng)建UDP連接后就可以進(jìn)行發(fā)送和接受數(shù)據(jù)了,可以在數(shù)據(jù)日志的發(fā)送區(qū)域中查看UDP客戶端發(fā)出的數(shù)據(jù)以及從接收區(qū)域查看UDP服務(wù)端接收到的數(shù)據(jù)如下。
在PC上的串口調(diào)試助手工具上可查看到從服務(wù)端讀取到的兩個(gè)UDP客戶端上報(bào)數(shù)據(jù)以及串口助手發(fā)送的數(shù)據(jù)如下。由上可知,本實(shí)驗(yàn)實(shí)現(xiàn)了串口服務(wù)器之UDP服務(wù)器與兩個(gè)不同的UDP客戶端進(jìn)行雙向數(shù)據(jù)傳輸?shù)墓δ堋?/span> 技術(shù)交流群長(zhǎng)按識(shí)別如下二維碼可加入“EsDA嵌入式系統(tǒng)設(shè)計(jì)自動(dòng)化交流群”,與志同道合的朋友交流,并有專業(yè)技術(shù)人員為您答疑解惑,如有問(wèn)題可以咨詢小致微信:zlgmcu-888。 ?
-
致遠(yuǎn)電子
+關(guān)注
關(guān)注
13文章
405瀏覽量
31258
原文標(biāo)題:【EsDA應(yīng)用】串口服務(wù)器——UDP Server
文章出處:【微信號(hào):ZLG_zhiyuan,微信公眾號(hào):ZLG致遠(yuǎn)電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論