1:透傳
透傳(又稱透明傳輸)是一種通信模式,其核心特點是:通信設備對傳輸的數據不做任何解析或處理,僅作為“管道”原封不動地轉發數據,仿佛數據“透明”地穿過設備。
透傳的本質
關鍵特征 | 說明 |
---|---|
無協議解析 | 設備不識別數據內容(如HTTP/MQTT等協議),直接轉發原始字節流 |
無數據修改 | 不添加頭部/尾部信息、不加密/解密、不壓縮/解壓 |
雙向透明 | 上行(設備→服務器)和下行(服務器→設備)均保持數據原樣 |
硬件無關性 | 數據來源/去向可以是串口、WiFi、4G等任意接口,設備只負責通路建立 |
二:
1. TCP Client 單連接透傳
以下為 ESP8266 作為 station 實現 TCP client 單連接透傳的舉例例,ESP8266 作為 softAP
可同理理實現透傳。
1. 配置 WiFi 模式
AT+CWMODE=3 // softAP+station mode
響應 :
OK
2. 連接路路由器?
AT+CWJAP="SSID","password" // SSID and password of router
響應 :
OK
3. 查詢 ESP8266 設備的 IP 地址
AT+CIFSR
響應 :
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"1a:fe:34:a5:8d:c6"
+CIFSR:STAIP,"192.168.3.133"
+CIFSR:STAMAC,"18:fe:34:a5:8d:c6"
OK
4. PC 與 ESP8266 設備連接同?一路路由器?,在 PC 端使?用?網絡調試?工具,建?立?一個 TCP 服
務器?。
- 假設,PC 創建的服務器? IP 地址為 192.168.3.116,端?口為 8080。
5. ESP8266 設備作為 TCP client 連接到上述服務器?
AT+CIPSTART="TCP","192.168.3.116",8080 //protocol, server IP and port
響應 :
OK
6. 使能透傳模式
AT+CIPMODE=1
響應 :
OK
7. ESP8266 設備向服務器?發送數據
AT+CIPSEND
> //From now on, data received from UART will be transmitted to server automatically.
? <link ID>:?網絡連接 ID 號 (0 ~ 4),?用于多
連接的情況
? <length>:數字參數,表明發送數據的?長
度,最?大?長度為 2048
? [<remote IP>]:UDP 傳輸可以設置對端 IP
? [<remote port>]:UDP 傳輸可以設置對端
端?
? 注意:
? 發送數據時,如果輸?入的字節數超過了了設置?長度(n):
- 系統將提示 busy,并發送數據的前 n 個字節,發送完成后響應 SEND OK。
- 超出?長度的部分數據被認為是?無效數據,不不被接受。
8. 退出發送數據:
在透傳發送數據過程中,若識別到單獨的?一包數據 “+++”,則退出透傳發送。
- 如果使?用鍵盤打字輸?入 “+++” ,可能耗時太?長,不不被認為是連續的三個 “+”,建議使
?用串串?口?工具?一次性發送 “+++”,并請注意不不要攜帶空格或換?行行符等不不可?見字符。
- 之后,請?至少間隔 1 秒,再發下?一條 AT 指令。
? 注意:
“+++“ 退出透傳發送數據,回到正常 AT 指令模式。此時,TCP 連接仍然是保持的,可以再發 AT+CIPSEND
指令,重新開始透傳。
9. 退出透傳模式
AT+CIPMODE=0
響應 :
OK
10.斷開 TCP 連接
AT+CIPCLOSE
響應 :
CLOSED
OK
2. UDP 透傳
以下為 ESP8266 作為 softAP 實現 UDP 透傳的舉例例,ESP8266 作為 station 可同理理實現
透傳。
1. 配置 WiFi 模式
AT+CWMODE=3 // softAP+station mode
響應 :
OK
2. PC 連?入 ESP8266 softAP
3. 在 PC 端使?用?網絡調試?工具,建?立?一個 UDP 傳輸。
- 假設,PC 創建的 UDP ?自身 IP 地址為 192.168.4.2,端?口為 1001。
4. ESP8266 與 PC 對應端?口建?立固定對端的 UDP 傳輸
AT+CIPSTART="UDP","192.168.4.2",1001,2233,0
響應 :
OK
5. 使能透傳模式
AT+CIPMODE=1
響應 :
OK
6. ESP8266 設備向服務器?發送數據
AT+CIPSEND
> //From now on, data received from UART will be transmitted to server automatically.
? 注意:
? 發送數據時,如果輸?入的字節數超過了了設置?長度(n):
- 系統將提示 busy,并發送數據的前 n 個字節,發送完成后響應 SEND OK。
- 超出?長度的部分數據被認為是?無效數據,不不被接受。
7. 退出發送數據:
在透傳發送數據過程中,若識別到單獨的?一包數據 “+++”,則退出透傳發送。
- 如果使?用鍵盤打字輸?入 “+++” ,可能耗時太?長,不不被認為是連續的三個 “+”,建議使
?用串串?口?工具?一次性發送 “+++”,并請注意不不要攜帶空格或換?行行符等不不可?見字符。
- 之后,請?至少間隔 1 秒,再發下?一條 AT 指令。
? 注意:
“+++“ 退出透傳發送數據,回到正常 AT 指令模式。此時,TCP 連接仍然是保持的,可以再發 AT+CIPSEND
指令,重新開始透傳。
8. 退出透傳模式
AT+CIPMODE=0
響應 :
OK
9. 斷開 ?連接
AT+CIPCLOSE
響應 :
CLOSED
OK

多連接 TCP Server?
ESP8266 AT 僅?支持建?立?一個 TCP 服務器?,且必須使能多連接,即允許連接多個 TCP
client。
以下為 ESP8266 作為 softAP ,建?立 TCP 服務器?的舉例例;如果是 ESP8266 作為 station,
可在連接路路由后,同理理建?立服務器
1. 配置 WiFi 模式
AT+CWMODE=3 // softAP+station mode
響應 :
OK
2. 使能多連接
AT+CIPMUX=1
響應 :
OK
3. 建?立 TCP server
AT+CIPSERVER=1 // default port = 333
一定要寫端口號
響應 :
OK
4. PC 連?入 ESP8266 softAP
5. 在 PC 端使?用?網絡調試?工具,建?立?一個 TCP client,連接 ESP8266 的 TCP server
? 注意:
ESP8266 作為 TCP server 有超時機制,如果連接建?立后,?一段時間內?無數據來往,ESP8266 TCP server 會
將 TCP client 踢掉。因此,請在 PC TCP client 連上 ESP8266 TCP server 后建?立?一個 2s 的循環數據發送,
?用于保持連接。

6. 發送數據
// ID number of connection is defaulted to be 0.
AT+CIPSEND=0, 4 // send 4 bytes to connection NO.0
>test // enter the data, no CR
響應 :
Recv 4 bytes
SEND OK
? 注意:
? 發送數據時,如果輸?入的字節數超過了了設置?長度(n):
- 系統將提示 busy,并發送數據的前 n 個字節,發送完成后響應 SEND OK。
- 超出?長度的部分數據被認為是?無效數據,不不被接受。
7. 接收數據。 當 ESP8266 設備接收到服務器?發來的數據,將提示如下信息:
+IPD,0,n:xxxxxxxxxx // received n bytes, data=xxxxxxxxxxx
8. 斷開 UDP 傳輸
AT+CIPCLOSE=0
響應 :
0,CLOSED
OK

今日心得
透傳模式 VS 非透傳模式(以ESP8266為例)
對比項 | 透傳模式 | 非透傳模式(AT指令模式) |
---|---|---|
數據交互方式 | 直接通過串口發送/接收原始數據 | 需用AT指令封裝數據(如AT+CIPSEND=5 ) |
模塊角色 | 純“管道” | 協議解析者(需識別指令格式) |
延遲 | 極低(無指令解析開銷) | 較高(需等待指令響應) |
適用場景 | 實時流媒體/高速數據傳輸 | 調試/小數據量控制 |
透傳的核心價值
簡化開發
MCU無需處理網絡協議棧,專注業務邏輯
降低代碼復雜度(例:傳感器直接輸出字符串
"TEMP:25.6C"
即可上傳)
提升實時性
省去AT指令交互時間(每條指令需50-200ms響應)
適合高速數據采集(如工業振動傳感器每秒千次采樣)
協議靈活性
可傳輸任意私有協議(設備與服務器約定格式即可)
無懼協議升級(模塊無需固件更新)
注意事項
數據邊界問題
TCP透傳是字節流,需自定義幀分隔符(如
\r\n
)UDP透傳保留報文邊界,但需處理丟包(例:傳感器加時間戳)
退出沖突風險
避免數據中含
+++
(可通過AT+UART_DEF
修改退出序列)
流控必要性
高速傳輸時啟用硬件流控(RTS/CTS),防止串口緩沖區溢出