EG800Z-CN SSL透明模式持续上行32KB/s时MAIN_CTS约3秒后长期拉高不释放

各位移远工程师好,我们使用EG800Z-CN通过SSL透明传输模式持续上传PCM音频,遇到MAIN_CTS约2.5~3秒后持续拉高、UART发送被阻塞的问题,希望协助确认CTS触发原因、透明传输缓存机制及是否涉及固件问题。

一、测试环境

模组型号:EG800Z-CN
固件版本:EG800ZCNLAR08A02M04
主控平台:JL701N / AC701
主串口波特率:460800,主控实际输出约461538,误差约0.16%
硬件流控:AT+IFC=2,2
连接关系:

  • EG800Z MAIN_CTS输出 → MCU CTS输入
  • MCU RTS输出 → EG800Z MAIN_RTS输入
  • 中间经过TXS0108电平转换

网络信号:测试时CSQ约22~23
传输方式:QSSLOPEN SSL透明模式,access_mode=2
透明传输参数:

  • transpktsize=1024
  • transwaittm=2

业务数据:

  • 16kHz、单声道、16bit PCM
  • PCM原始数据速率约32KB/s(256kbps)
  • 每40ms产生1280字节PCM
  • 通过WebSocket二进制帧发送,每个完整帧约1288字节
  • WebSocket握手和START控制消息均能正常完成

二、问题现象

设备建立SSL透明连接和WebSocket连接后,可以正常发送音频。

连续发送通常约2.5~3秒后,EG800Z的MAIN_CTS被拉高并持续不释放,MCU UART DMA随后进入暂停状态,无法继续向模组发送。

CTS首次拉高时通常已经发送:

  • 约70~75个WebSocket音频帧
  • 约90~95KB数据

部分测试中MAIN_CTS持续拉高十几秒仍未恢复,设备侧最终只能执行超时恢复并重新建立连接。

CTS拉高后,MCU已经停止UART发送,没有无视硬件流控继续向模组写入数据。

三、服务器侧现象

服务器在故障发生前能够持续收到约80~94KB音频数据。

故障发生时服务器TCP连接的Recv-Q为0,没有观察到服务器接收队列积压。CTS拉高后,服务器不再收到新数据;设备执行连接恢复时,服务器侧才出现EOF或连接关闭。

因此目前未发现服务器应用层消费过慢导致Recv-Q堆积的证据。

四、对照测试

我们做了以下对照:

每发送16帧PCM(20480字节,约640ms音频)后,主动停止MCU向EG800Z发送UART数据1秒,并丢弃空窗期间新产生的PCM。

采用该方式后,MAIN_CTS可以较长时间保持在允许发送的状态,连接暂时不容易中断。

但是这种方式会丢失大量音频,声音规律性断续,无法用于实际实时收听。该测试仅说明给模组留出较长的UART输入空窗后,阻塞现象会有所缓解。

我们也试过:

  • 将UART DMA分片缩小
  • 调整WebSocket发送节奏
  • transpktsize分别设置为1024和1460

这些调整均未从根本上解决连续发送时CTS长期拉高的问题。

五、当前已确认的情况

  1. WebSocket每个二进制帧均使用独立且完整的发送缓冲区。
  2. MCU会等待UART物理发送完成后才复用缓冲区。
  3. 不会在一个音频帧中间插入WebSocket PONG或其他数据。
  4. 遇到CTS拉高后,MCU会遵守硬件流控并暂停发送。
  5. PCM持续数据速率只有约32KB/s。
  6. 服务器侧Recv-Q为0,暂未看到服务器接收不及时造成的积压。
  7. 不增加1秒空窗时,问题通常可以稳定复现。

六、希望确认的问题

  1. EG800Z-CN的MAIN_CTS具体由哪个内部缓存或任务控制?
    是UART接收缓存、SSL缓存、TCP发送缓存,还是透明传输任务状态?

  2. MAIN_CTS拉高和释放的高低水位阈值分别是多少?
    是否有AT命令能够查询UART、SSL或TCP内部缓存的当前占用量?

  3. 在网络正常、服务器Recv-Q为0的情况下,MAIN_CTS持续拉高十几秒是否属于正常现象?

  4. EG800ZCNLAR08A02M04固件是否存在SSL透明模式下CTS长时间不释放、透明传输任务调度异常或发送缓存无法排空的问题?

  5. 是否有更新版本的正式固件或补丁可以测试?

  6. transpktsize和transwaittm在QSSLOPEN SSL透明模式下的准确作用是什么?

    • transpktsize是否只是UART数据打包阈值?
    • transwaittm的单位和触发条件是什么?
    • 这两个参数是否会影响MAIN_CTS的释放?
  7. SSL透明模式是否支持长期、无间断地持续输入32KB/s数据?
    对这种持续音频上行业务,移远推荐的参数和发送方式是什么?

  8. 如果SSL透明模式不适合该业务,是否建议改成非透明模式分块发送?推荐使用哪些AT命令或接口?

非常期待和感谢您的回答与帮助。

针对该现象,可先按“透明传输上行链路背压”方向处理。您描述的 CTS 在连续约 90KB 数据后拉高,且加入 1 秒空窗后缓解,说明模组侧 UART 入口到 SSL/TCP 发送链路之间存在排空速度低于输入速度的阶段性积压。

  1. MAIN_CTS 控制来源
    MAIN_CTS 是硬件流控信号,用于通知主控暂停向模组主串口继续发送数据。其拉高通常表示模组侧串口接收链路或后级发送链路暂时无法继续接收更多数据。
    具体由 UART 接收缓存、透明传输任务、SSL/TCP 发送缓存中的哪一级触发,以及内部高低水位阈值,公开资料未披露,需官方工程师结合固件确认。

  2. 缓存占用查询与阈值
    当前公开 AT 命令中,未见可直接查询 UART、SSL、TCP 内部缓存实时占用量的通用命令。
    MAIN_CTS 的拉高/释放水位属于模组内部实现参数,公开资料中未给出可配置项。

  3. CTS 长时间不释放是否正常
    在主控严格遵守硬件流控、服务器 Recv-Q 无积压、网络侧无明显异常的情况下,MAIN_CTS 长时间保持拉高十几秒不释放,不建议直接按正常现象处理。
    建议重点排查以下方向:

    • SSL 透明模式下持续输入速率是否超过当前网络与协议栈实际可持续发送能力;
    • 模组是否存在发送窗口、TLS 加密任务或透明传输任务排队;
    • 电平转换器是否影响 CTS/RTS 信号状态,尤其是 TXS0108 这类自动方向电平转换器在高速 UART/硬件流控场景下可能引入边沿、驱动能力或方向判断问题;
    • 是否存在网络瞬时抖动导致 TCP/SSL 发送链路短时阻塞,进而触发串口侧反压。
  4. 关于当前固件版本
    EG800ZCNLAR08A02M04 是否存在 SSL 透明模式下 CTS 长时间不释放的问题,需要移远工程师结合内部版本记录确认。
    如需获取可测试的更新固件或补丁,请提供邮箱地址,以便官方工程师后续发送对应资料或确认版本。

  5. transpktsize / transwaittm 的作用
    在透明传输场景下,这两个参数通常用于控制串口透明数据进入协议栈前的打包策略:

    • transpktsize:达到指定数据长度后触发一次打包发送;
    • transwaittm:未达到打包长度时,等待一定时间后触发发送。
      这两个参数主要影响 UART 输入数据到网络发送之间的分包时机和打包效率。
      它们不能直接理解为 CTS 释放阈值配置项,也不一定能解决后级 SSL/TCP 发送缓存排空不足导致的 CTS 长时间拉高。
  6. 业务方式建议
    对 32KB/s 连续 PCM 音频上行,建议优先验证以下方案:

    • 降低主串口输入突发度,避免长时间无间隔连续写入;
    • 增大应用层发送缓冲,按网络实际吞吐做平滑发送;
    • 使用更稳定的硬件电平转换方案或临时直连验证 CTS/RTS 波形;
    • 抓取 MAIN_TXD、MAIN_RXD、MAIN_CTS、MAIN_RTS 四线逻辑分析波形,确认 CTS 拉高前后是否存在异常电平、毛刺或 RTS 状态异常;
    • 对比非透明模式分块发送,由 MCU 控制每次发送长度和发送间隔,便于做超时、重传和状态管理。
  7. 透明模式与非透明模式选择
    如果业务要求长期、稳定、连续音频上行,且当前透明模式会稳定复现 CTS 长时间拉高,建议评估非透明模式分块发送。
    非透明模式下主控可按应用层帧长度分块写入,并根据返回结果控制下一包发送,更利于定位是 UART 侧、SSL 侧还是网络侧阻塞。

建议后续提供以下信息给工程师定位:

  • 完整 AT 交互日志;
  • CTS 拉高前后的四线串口逻辑分析波形;
  • 同一环境下非 SSL TCP 透明模式、SSL 非透明模式的对比结果;
  • 是否去掉 TXS0108 或更换电平转换方案后的测试结果;
  • 需要测试新固件时,请补充邮箱地址。

本回答仅供参考。若问题已解决,可标记为 :white_check_mark:解决方案 ;若仍有疑问,请等待官方技术人员回复,最终请以专业解答为准。

感谢回复。当前暂不具备四线逻辑分析仪抓取条件,希望先协助转交EG800Z-CN模组或协议栈工程师,从固件和SSL透明传输机制侧核实。

补充一个重要信息:

当前并不是按照460800线速无间隔持续灌入数据。每个WebSocket音频帧约1288字节,UART按10bit/byte计算,单帧发送约28ms;音频每40ms产生一帧,因此正常帧间已经有约12ms的UART空闲时间。

即使存在上述空闲,仍然会在约2.5~3秒、累计约90~95KB后出现MAIN_CTS持续拉高。只有额外增加1秒停止输入的长空窗后,现象才明显缓解。

希望人工工程师重点确认:

  1. EG800ZCNLAR08A02M04是否存在QSSL透明模式下MAIN_CTS长时间不释放的已知问题?
  2. 是否有可供测试的更新固件或补丁?
  3. MAIN_CTS由UART接收缓存、透明传输任务还是SSL/TCP发送缓存触发?
  4. CTS持续拉高15秒是否符合该固件的正常设计?
  5. 是否有不依赖逻辑分析仪的软件调试方式,可查询缓存占用或导出模组内部日志?
  6. transpktsize=1024、transwaittm=2是否适用于QSSLOPEN access_mode=2?
  7. 请提供EG800Z-CN使用SSL非透明模式持续分块发送的推荐AT流程、单包长度和发送节奏。
  8. 请提供官方推荐的持续上行吞吐测试方法,以便我们分别测试8、16、24、32KB/s的CTS表现。

如需发送固件或相关资料,可通过邮箱联系:847460735@qq.com

我尝试上传日志,但显示新用户无法上传附件,日志对照信息大致如下:

共同参数:

  • EG800Z-CN,固件EG800ZCNLAR08A02M04
  • 实时传输UART 460800,实际约461538
  • AT+IFC=2,2
  • QSSLOPEN SSL透明模式,access_mode=2
  • transpktsize=1024
  • 16kHz/单声道/16bit PCM
  • 每40ms发送1280字节PCM,WebSocket完整帧约1288字节

无空窗版本:
WebSocket START后约2.547秒、约80KB数据时,MAIN_CTS拉高;80ms后出现PAUSED,持续15秒未释放并触发STALL_TIMEOUT。自动重连后再次在约2.596秒复现。

16帧后空窗1秒版本:
每发送16帧、20480字节PCM后停止UART输入1秒。测试发送至240帧、累计307200字节PCM,CTS检查始终为0,没有出现PAUSED或STALL_TIMEOUT。

EG800Z-CN_SSL透明模式_16帧后空窗1秒_无CTS阻塞

[00:00:11.210][EG800Z_DIAG] Power ready after 11020 ms
[00:00:11.210][EG800Z_DIAG] UART baud requested=921600, actual=888888
[00:00:11.210][EG800Z_DIAG] Startup RX: bytes=61, boot.rom=0
[00:00:11.220][EG800Z_DIAG] AT OK at 921600 baud
[00:00:11.230][EG800Z] HW flow control ON: RTS=PC1, CTS=PC2
[00:00:11.240][EG800Z_DIAG] AT+IPR?

+IPR: 921600

OK
[00:00:11.250][EG800Z_DIAG] AT+IFC?

+IFC: 2,2

OK
[00:00:11.250][EC800_UPLOAD] Init HTTP upload module
[00:00:11.260]EC800 AT ready, retry=1
[00:00:11.260][EC800_UPLOAD] Checking network…

[2026-09-03 09:18:59.721]# RECV ASCII/140 <<<
[00:00:11.290][EC800_UPLOAD] Network OK, CSQ=24
[00:00:11.320][EC800_UPLOAD] RTC synced 2026-04-08 09:00:10 → 2026-09-03 01:18:56 tzq=32

[2026-09-03 09:19:00.095]# RECV ASCII/52 <<<
[00:00:11.690][EC800_UPLOAD] QIACT context 2 ready

[2026-09-03 09:19:00.142]# RECV ASCII/360 <<<
[00:00:11.730][EC800_UPLOAD] SSL context config OK
[00:00:11.730][EC800_UPLOAD] HTTP upload module init OK
[00:00:11.750]AT+QSCLK=1 configured; PC0/DTR controls sleep
[00:00:11.750]sleep scheduled: upload init finished delay=2000 ms timer=203
[00:00:11.751][UPLOAD_TEST] Network/RTC ready
[00:00:11.751][UPLOAD_TEST] Worker ready, waiting for recordings

[2026-09-03 09:19:21.025]# RECV ASCII/68 <<<
[00:00:32.630]EC800 UART switched: requested=460800, actual=461538

[2026-09-03 09:19:21.089]# RECV ASCII/200 <<<
[00:00:32.690][RT_BAUD] requested=460800 actual=461538 error_ppm=1602 limit_ppm=20000
[00:00:32.690][RT_BAUD] enter requested=460800 ret=0 unsafe=0
[00:00:32.690][EC800_UPLOAD] Checking network…

[2026-09-03 09:19:21.136]# RECV ASCII/170 <<<
[00:00:32.720][EC800_UPLOAD] Network OK, CSQ=24

[00:00:32.730][EC800_UPLOAD] PDP not active, trying to activate…

[00:00:32.741]wavhead_init ch 1, sr 16000, bitw 0

[2026-09-03 09:19:21.643]# RECV ASCII/211 <<<

[00:00:33.220][EC800_UPLOAD] PDP activate OK
[00:00:33.240][RT_MODEM_CFG] transpktsize current ret=37 response=+QICFG: “transpktsize”,1024 OK
[00:00:33.240][RT_MODEM_CFG] transpktsize=1024 already verified

[2026-09-03 09:19:21.707]# RECV ASCII/94 <<<
[00:00:33.300][RT_TRANSPARENT] open :8288 id=1 access_mode=2 transpktsize=1024

[2026-09-03 09:19:24.947]# RECV ASCII/466 <<<
[00:00:36.539][clock-manager]cpu0: 2% cpu1: 18% jlstream: 17% curr_clk:192000000 min_clk:128000000 dest_clk:128000000, 1
[00:00:36.541][CLOCK]—HSB CLK : 128000000
[00:00:36.541][CLOCK]—LSB CLK : 64000000
[00:00:36.541][CLOCK]—XIP CLK : 64000000
[00:0036.542][CLOCK]—PLL_DIV : 1 * 1
[00:00:36.542][CLOCK]—SYS DVDD : 0 / 10 10
[00:00:36.542][CLOCK]—RAM DVDD : 10 / 10
[00:00:36.542][CLOCK]—VDC13 : 10 / 10
[00:00:36.543][CLOCK]—RANGE : 2

[2026-09-03 09:19:25.328]# RECV ASCII/64 <<<

[00:00:36.929]rec.time=4
[00:00:36.929]rec-left.time=235800

[2026-09-03 09:19:26.732]# RECV ASCII/162 <<<
[00:00:38.341][RT_AT_GUARD] ENABLE reason=CONNECT ret=0 link_owner=realtime data_owner=realtime
[00:00:38.341][RT_TRANSPARENT] CONNECT; UART is raw SSL data only

[2026-09-03 09:19:27.344]# RECV ASCII/141 <<<

[00:00:38.940][RT_MONITOR] WebSocket upgrade OK
[00:00:38.943][RT_MONITOR] START sn= file=20260903011917.wav wav_header=0

[2026-09-03 09:19:28.012]# RECV ASCII/111 <<<
[00:00:39.608][RT_CTS_PROBE] begin frame=16 pcm=20480B stream=665ms buffered=1024B cts=0 tx_idle=1 gap=1000ms

[2026-09-03 09:19:28.935]# RECV ASCII/123 <<<
[00:00:40.539][clock-manager]cpu0: 3% cpu1: 26% jlstream: 25% curr_clk:128000000 min_clk:128000000 dest_clk:128000000, 1

[2026-09-03 09:19:29.012]# RECV ASCII/101 <<<
[00:00:40.610][RT_CTS_PROBE] end frame=16 waited=1002ms dropped=32768B cts=0 cts_high=0ms tx_idle=1

[2026-09-03 09:19:29.665]# RECV ASCII/111 <<<
[00:00:41.269][RT_CTS_PROBE] begin frame=32 pcm=40960B stream=2326ms buffered=512B cts=0 tx_idle=1 gap=1000ms

[2026-09-03 09:19:29.727]# RECV ASCII/62 <<<
[00:00:41.330]rec.time=8
[00:00:41.330]rec-left.time=235796

[2026-09-03 09:19:30.661]# RECV ASCII/101 <<<
[00:00:42.270][RT_CTS_PROBE] end frame=32 waited=1001ms dropped=32768B cts=0 cts_high=0ms tx_idle=1

[2026-09-03 09:19:31.346]# RECV ASCII/112 <<<
[00:00:42.939][RT_CTS_PROBE] begin frame=48 pcm=61440B stream=3996ms buffered=1024B cts=0 tx_idle=1 gap=1000ms

[2026-09-03 09:19:32.344]# RECV ASCII/101 <<<
[00:00:43.940][RT_CTS_PROBE] end frame=48 waited=1001ms dropped=32768B cts=0 cts_high=0ms tx_idle=1

[2026-09-03 09:19:32.935]# RECV ASCII/123 <<<
[00:00:44.539][clock-manager]cpu0: 3% cpu1: 26% jlstream: 25% curr_clk:128000000 min_clk:128000000 dest_clk:128000000, 1

[2026-09-03 09:19:32.998]# RECV ASCII/112 <<<
[00:00:44.598][RT_CTS_PROBE] begin frame=64 pcm=81920B stream=5655ms buffered=1024B cts=0 tx_idle=1 gap=1000ms

[2026-09-03 09:19:34.000]# RECV ASCII/101 <<<
[00:00:45.600][RT_CTS_PROBE] end frame=64 waited=1002ms dropped=32768B cts=0 cts_high=0ms tx_idle=1

[2026-09-03 09:19:34.125]# RECV ASCII/63 <<<
[00:00:45.729]rec.time=13
[00:00:45.729]rec-left.time=235791

[2026-09-03 09:19:34.657]# RECV ASCII/112 <<<
[00:00:46.259][RT_CTS_PROBE] begin frame=80 pcm=102400B stream=7316ms buffered=512B cts=0 tx_idle=1 gap=1000ms

[2026-09-03 09:19:35.656]# RECV ASCII/101 <<<
[00:00:47.260][RT_CTS_PROBE] end frame=80 waited=1001ms dropped=32768B cts=0 cts_high=0ms tx_idle=1

[2026-09-03 09:19:36.328]# RECV ASCII/113 <<<
[00:00:47.928][RT_CTS_PROBE] begin frame=96 pcm=122880B stream=8985ms buffered=1024B cts=0 tx_idle=1 gap=1000ms

[2026-09-03 09:19:36.932]# RECV ASCII/123 <<<
[00:00:48.539][clock-manager]cpu0: 3% cpu1: 26% jlstream: 25% curr_clk:128000000 min_clk:128000000 dest_clk:128000000, 1

[2026-09-03 09:19:37.323]# RECV ASCII/101 <<<
[00:00:48.930][RT_CTS_PROBE] end frame=96 waited=1002ms dropped=32768B cts=0 cts_high=0ms tx_idle=1

[2026-09-03 09:19:37.980]# RECV ASCII/114 <<<
[00:00:49.589][RT_CTS_PROBE] begin frame=112 pcm=143360B stream=10646ms buffered=512B cts=0 tx_idle=1 gap=1000ms

[2026-09-03 09:19:38.527]# RECV ASCII/63 <<<
[00:00:50.129]rec.time=17
[00:00:50.129]rec-left.time=235787

[2026-09-03 09:19:38.992]# RECV ASCII/102 <<<
[00:00:50.590][RT_CTS_PROBE] end frame=112 waited=1001ms dropped=32768B cts=0 cts_high=0ms tx_idle=1

[2026-09-03 09:19:39.664]# RECV ASCII/115 <<<
[00:00:51.258][RT_CTS_PROBE] begin frame=128 pcm=163840B stream=12315ms buffered=1024B cts=0 tx_idle=1 gap=1000ms

[2026-09-03 09:19:40.662]# RECV ASCII/102 <<<
[00:00:52.260][RT_CTS_PROBE] end frame=128 waited=1002ms dropped=32768B cts=0 cts_high=0ms tx_idle=1

[2026-09-03 09:19:40.943]# RECV ASCII/122 <<<
[00:00:52.539][clock-manager]cpu0: 3% cpu1: 26% jlstream: 25% curr_clk:128000000 min_clk:128000000 det_clk:128000000, 1

[2026-09-03 09:19:41.319]# RECV ASCII/115 <<<
[00:00:52.918][RT_CTS_PROBE] begin frame=144 pcm=184320B stream=13975ms buffered=1024B cts=0 tx_idle=1 gap=1000ms

[2026-09-03 09:19:42.316]# RECV ASCII/102 <<<
[00:00:53.920][RT_CTS_PROBE] end frame=144 waited=1002ms dropped=32768B cts=0 cts_high=0ms tx_idle=1

[2026-09-03 09:19:42.927]# RECV ASCII/63 <<<
[00:00:54.530]rec.time=22
[00:00:54.530]rec-left.time=235782

[2026-09-03 09:19:42.973]# RECV ASCII/114 <<<
[00:00:54.579][RT_CTS_PROBE] begin frame=160 pcm=204800B stream=15636ms buffered=512B cts=0 tx_idle=1 gap=1000ms

[2026-09-03 09:19:43.984]# RECV ASCII/102 <<<
[00:00:55.580][RT_CTS_PROBE] end frame=160 waited=1001ms dropped=32768B cts=0 cts_high=0ms tx_idle=1

[2026-09-03 09:19:44.652]# RECV ASCII/115 <<<
[00:00:56.248][RT_CTS_PROBE] begin frame=176 pcm=225280B stream=17305ms buffered=1024B cts=0 tx_idle=1 gap=1000ms

[2026-09-03 09:19:44.933]# RECV ASCII/123 <<<
[00:00:56.539][clock-manager]cpu0: 4% cpu1: 27% jlstream: 25% curr_clk:128000000 min_clk:128000000 dest_clk:128000000, 1

[2026-09-03 09:19:45.655]# RECV ASCII/102 <<<
[00:00:57.250][RT_CTS_PROBE] end frame=176 waited=1002ms dropped=32768B cts=0 cts_high=0ms tx_idle=1

[2026-09-03 09:19:46.311]# RECV ASCII/114 <<<
[00:00:57.909][RT_CTS_PROBE] begin frame=192 pcm=245760B stream=18965ms buffered=512B cts=0 tx_idle=1 gap=1000ms

[2026-09-03 09:19:47.322]# RECV ASCII/165 <<<
[00:00:58.910][RT_CTS_PROBE] end frame=192 waited=1002ms dropped=32768B cts=0 cts_high=0ms tx_idle=1
[00:00:58.929]rec.time=26
[00:00:58.929]rec-left.time=235778

[2026-09-03 09:19:47.975]# RECV ASCII/115 <<<
[00:00:59.579][RT_CTS_PROBE] begin frame=208 pcm=266240B stream=20636ms buffered=1024B cts=0 tx_idle=1 gap=1000ms

[2026-09-03 09:19:48.938]# RECV ASCII/123 <<<
[00:01:00.540][clock-manager]cpu0: 5% cpu1: 27% jlstream: 25% curr_clk:128000000 min_clk:128000000 dest_clk:128000000, 1

[2026-09-03 09:19:48.984]# RECV ASCII/102 <<<
[00:01:00.580][RT_CTS_PROBE] end frame=208 waited=1001ms dropped=32768B cts=0 cts_high=0ms tx_idle=1

[2026-09-03 09:19:49.640]# RECV ASCII/115 <<<
[00:01:01.238][RT_CTS_PROBE] begin frame=224 pcm=286720B stream=22295ms buffered=1024B cts=0 tx_idle=1 gap=1000ms

[2026-09-03 09:19:50.635]# RECV ASCII/102 <<<
[00:01:02.240][RT_CTS_PROBE] end frame=224 waited=1002ms dropped=32768B cts=0 cts_high=0ms tx_idle=1

[2026-09-03 09:19:51.306]# RECV ASCII/113 <<<
[00:01:02.899][RT_CTS_PROBE] begin frame=240pcm=307200B stream=23956ms buffered=512B cts=0 tx_idle=1 gap=1000ms

[2026-09-03 09:19:51.729]# RECV ASCII/63 <<<
[00:01:03.329]rec.time=30
[00:01:03.329]rec-left.time=235774

[2026-09-03 09:19:52.290]# RECV ASCII/102 <<<
[00:01:03.900][RT_CTS_PROBE] end frame=240 waited=1001ms dropped=32768B cts=0 cts_high=0ms tx_idle=1

EG800Z-CN_SSL透明模式_无空窗_CTS持续阻塞

[00:00:11.210][EG800Z_DIAG] Power ready after 11020 ms
[00:00:11.210][EG800Z_DIAG] UART baud requested=921600, actual=888888
[00:00:11.211][EG800Z_DIAG] Startup RX: bytes=61, boot.rom=0
[00:00:11.220][EG800Z_DIAG] AT OK at 921600 baud
[00:00:11.230][EG800Z] HW flow control ON: RTS=PC1, CTS=PC2
[00:00:11.240][EG800Z_DIAG] AT+IPR?

+IPR: 921600

OK
[00:00:11.250][EG800Z_DIAG] AT+IFC?

+IFC: 2,2

OK
[00:00:11.250][EC800_UPLOAD] Init HTTP upload module
[00:00:11.260]EC800 AT ready, retry=1
[00:00:11.260][EC800_UPLOAD] Checking network…

[2026-09-03 09:33:04.801]# RECV ASCII/140 <<<
[00:00:11.290][EC800_UPLOAD] Network OK, CSQ=23
[00:00:11.320][EC800_UPLOAD] RTC synced 2026-09-03 01:32:00 → 2026-09-03 01:33:00 tzq=32

[2026-09-03 09:33:05.162]# RECV ASCII/52 <<<
[00:00:11.690][EC800_UPLOAD] QIACT context 2 ready

[2026-09-03 09:33:05.226]# RECV ASCII/360 <<<
[00:00:11.730][EC800_UPLOAD] SSL context config OK
[00:00:11.730][EC800_UPLOAD] HTTP upload module init OK
[00:00:11.750]AT+QSCLK=1 configured; PC0/DTR controls sleep
[00:00:11.750]sleep scheduled: upload init finished delay=2000 ms timer=202
[00:00:11.751][UPLOAD_TEST] Network/RTC ready
[00:00:11.751][UPLOAD_TEST] Worker ready, waiting for recordings

[00:00:48.520]EC800 UART switched: requested=460800, actual=461538

[2026-09-03 09:33:42.053]# RECV ASCII/200 <<<
[00:00:48.580][RT_BAUD] requested=460800 actual=461538 error_ppm=1602 limit_ppm=20000
[00:00:48.580][RT_BAUD] enter requested=460800 ret=0 unsafe=0
[00:00:48.580][EC800_UPLOAD] Checking network…

[2026-09-03 09:33:42.114]# RECV ASCII/170 <<<
[00:00:48.610][EC800_UPLOAD] Network OK, CSQ=22

[00:00:48.620][EC800_UPLOAD] PDP not active, trying to activate…

[00:00:48.631]wavhead_init ch 1, sr 16000, bitw 0

[2026-09-03 09:33:42.745]# RECV ASCII/212 <<<

[00:00:49.250][EC800_UPLOAD] PDP activated OK
[00:00:49.270][RT_MODEM_CFG] transpktsize current ret=37 response=+QICFG: “transpktsize”,1024 OK
[00:00:49.270][RT_MODEM_CFG] transpktsize=1024 already verified

[2026-09-03 09:33:42.808]# RECV ASCII/94 <<<
[00:00:49.330][RT_TRANSPARENT] open :8288 id=1 access_mode=2 transpktsize=1024

[2026-09-03 09:33:45.907]# RECV ASCII/467 <<<
[00:00:52.430][clock-manager]cpu0: 4% cpu1: 17% jlstream: 17% curr_clk:192000000 min_clk:128000000 dest_clk:128000000, 1
[00:00:52.431][CLOCK]—HSB CLK : 128000000
[00:00:52.431][CLOCK]—LSB CLK : 64000000
[00:00:52.432][CLOCK]—XIP CLK : 64000000
[00:00:52.432][CLOCK]—PLL_DIV : 1 * 1
[00:00:52.432][CLOCK]—SYS DVDD : 0 / 10 10
[00:00:52.432][CLOCK]—RAM DVDD : 10 / 10
[00:00:52.433][CLOCK]—VDC13 : 10 / 10
[00:00:52.433][CLOCK]—RANGE : 2

[2026-09-03 09:33:46.301]# RECV ASCII/64 <<<

[00:00:52.819]rec.time=4
[00:00:52.819]rec-left.time=235768

[2026-09-03 09:33:47.818]# RECV ASCII/225 <<<
[00:00:54.340][RT_AT_GUARD] ENABLE reason=CONNECT ret=0 link_owner=realtime data_owner=realtime
[00:00:54.340][RT_TRANSPARENT] CONNECT; UART is raw SSL data only
[00:00:54.341][RT_CTS] armed drain_window=0 cts=0 tx_idle=1

[2026-09-03 09:33:48.419]# RECV ASCII/139 <<<
[00:00:54.940][RT_MONITOR] WebSocket upgrade OK
[00:00:54.943][RT_MONITOR] START sn= file=20260903013337.wav wav_header=0

[2026-09-03 09:33:49.909]# RECV ASCII/123 <<<
[00:00:56.429][clock-manager]cpu0: 3% cpu1: 26% jlstream: 25% curr_clk:128000000 min_clk:128000000 dest_clk:128000000, 1

[2026-09-03 09:33:50.704]# RECV ASCII/62 <<<
[00:00:57.220]rec.time=8
[00:00:57.220]rec-left.time=235764

[2026-09-03 09:33:50.969]# RECV ASCII/83 <<<
[00:00:57.490][RT_CTS] HIGH seq=65 tag=ws phase=dma offset=0/1288 cts=1 tx_idle=0

[2026-09-03 09:33:51.047]# RECV ASCII/106 <<<
[00:00:57.570][RT_TX] PAUSED seq=65 tag=ws chunk=1/1 offset=0/1288 phase=dma wait_ret=11 cts=1 tx_idle=0

[2026-09-03 09:33:53.901]# RECV ASCII/123 <<<
[00:01:00.429][clock-manager]cpu0: 3% cpu1: 26% jlstream: 25% curr_clk:128000000 min_clk:128000000 dest_clk:128000000, 1

[2026-09-03 09:33:55.107]# RECV ASCII/63 <<<
[00:01:01.621]rec.time=13
[00:01:01.622]rec-left.time=235759

[2026-09-03 09:33:57.902]# RECV ASCII/123 <<<
[00:01:04.429][clock-manager]cpu0: 6% cpu1: 29% jlstream: 25% curr_clk:128000000 min_clk:128000000 dest_clk:128000000, 1

[2026-09-03 09:33:59.501]# RECV ASCII/63 <<<
[00:01:06.021]rec.time=17
[00:01:06.021]rec-left.time=235755

[2026-09-03 09:34:01.903]# RECV ASCII/123 <<<
[00:01:08.429][clock-manager]cpu0: 3% cpu1: 26% jlstream: 25% curr_clk:128000000 min_clk:128000000 dest_clk:128000000, 1

[2026-09-03 09:34:03.738]# RECV ASCII/99 <<<
[00:01:10.255]e[32me[1mcur_voltage: 4188 mV, tmp_percent: 100, cur_percent: 100, cur_level: 9
e[0m

[2026-09-03 09:34:03.895]# RECV ASCII/65 <<<

[00:01:10.421]rec.time=22
[00:01:10.422]rec-left.time=235750

[2026-09-03 09:34:05.904]# RECV ASCII/123 <<<
[00:01:12.429][clock-manager]cpu0: 3% cpu1: 26% jlstream: 25% curr_clk:128000000 min_clk:128000000 dest_clk:128000000, 1

[2026-09-03 09:34:05.951]# RECV ASCII/372 <<<
[00:01:12.471][RT_TX] STALL_TIMEOUT seq=65 tag=ws chunk=1/1 offset=0/1288 phase=dma wait_ms=15000 wait_ret=11 cts=1 tx_idle=0
[00:01:12.471][RT_MONITOR] audio send failed at frame=63 pcm=79360B stale=0B buffered=16128B send_ret=-7 final_rx=0
[00:01:12.472][RT_TRANSPARENT] trying AT&D1 DTR escape
[00:01:12.473]transparent escape: DTR low->high, hold for command OK

[2026-09-03 09:34:06.666]# RECV ASCII/181 <<<
[00:01:13.184][RT_TRANSPARENT] DTR drain=0 flow_off=0 bypass=1 cts=0 tx_idle=1
[00:01:13.185][RT_AT_GUARD] DISABLE reason=DTR command OK ret=0 link_owner=realtime data_owner=none

[2026-09-03 09:34:06.758]# RECV ASCII/150 <<<
[00:01:13.280]transparent escape complete: DTR low, modem kept awake
[00:01:13.280][RT_TRANSPARENT] DTR escape OK; command mode provenflow_bypass=1

[2026-09-03 09:34:07.104]# RECV ASCII/171 <<<
[00:01:13.630][RT_TRANSPARENT] socket closed; AT mode restored flow_bypass=1
[00:01:13.630][RT_TRANSPARENT] TX summary attempted=65 completed=64 backpressure=1 resued=0

[2026-09-03 09:34:07.136]# RECV ASCII/68 <<<
[00:01:13.660]EC800 UART switched: requested=921600, actual=888888

[2026-09-03 09:34:07.200]# RECV ASCII/789 <<<
[00:01:13.720][RT_BAUD] restore requested=921600 ret=0
[00:01:13.720][RT_TRANSPARENT] HW flow restored after baud cleanup waited_ms=0 cts=0 tx_idle=1
[00:01:13.721][RT_FLOW] final restore ret=0 cts=0 tx_idle=1
[00:01:13.722][CLOCK]—HSB CLK : 192000000
[00:01:13.722][CLOCK]—LSB CLK : 64000000
[00:01:13.723][CLOCK]—XIP CLK : 96000000
[00:01:13.723][CLOCK]—PLL_DIV : 1 * 1
[00:01:13.723][CLOCK]—SYS DVDD : 0 / 13 13
[00:01:13.723][CLOCK]—RAM DVDD : 13 / 13
[00:01:13.724][CLOCK]—VDC13 : 11 / 11
[00:01:13.724][CLOCK]—RANGE : 3
[00:01:13.724][RT_CLOCK] release alloc_ok=1 free_ret=0 before=128000000 after=192000000
[00:01:13.725][RT_UART_HEALTH] rx_ovf=0->0 parity=0->0 cts=0 tx_idle=1
[00:01:13.725][RT_MONITOR] session failed=-3; retry while recording

[2026-09-03 09:34:08.307]# RECV ASCII/63 <<<
[00:01:14.822]rec.time=26
[00:01:14.822]rec-left.time=235746

[2026-09-03 09:34:10.244]# RECV ASCII/295 <<<
[00:01:16.720]read_sn_num:
[00:01:16.720][RT_CLOCK] alloc ret=0 minimum=128000000 before=192000000 after=192000000
[00:01:16.721]wake request: realtime monitor, DTR low
[00:01:16.730]modem awake, attempt=1
[00:01:16.760]EC800 UART switched: requested=460800, actual=461538

[2026-09-03 09:34:10.291]# RECV ASCII/200 <<<
[00:01:16.820][RT_BAUD] requested=460800 actual=461538 error_ppm=1602 limit_ppm=20000
[00:01:16.820][RT_BAUD] enter requested=460800 ret=0 unsafe=0
[00:01:16.821][EC800_UPLOAD] Checking network…

[2026-09-03 09:34:10.322]# RECV ASCII/49 <<<
[00:01:16.850][EC800_UPLOAD] Network OK, CSQ=22

[2026-09-03 09:34:10.354]# RECV ASCII/163 <<<
[00:01:16.880][RT_MODEM_CFG] transpktsize current ret=37 response=+QICFG: “transpktsize”,1024 OK
[00:01:16.880][RT_MODEM_CFG] transpktsize=1024 already verified

[2026-09-03 09:34:10.416]# RECV ASCII/94 <<<
[00:01:16.940][RT_TRANSPARENT] open :8288 id=1 access_mode=2 transpktsize=1024

[2026-09-03 09:34:12.693]# RECV ASCII/63 <<<
[00:01:19.222]rec.time=30
[00:01:19.223]rec-left.time=235742

[2026-09-03 09:34:14.207]# RECV ASCII/467 <<<
[00:01:20.720][clock-manager]cpu0: 1% cpu1: 18% jlstream: 18% curr_clk:192000000 min_clk:128000000 dest_clk:128000000, 1
[00:01:20.721][CLOCK]—HSB CLK : 128000000
[00:01:20.721][CLOCK]—LSB CLK : 64000000
[00:01:20.722][CLOCK]—XIP CLK : 64000000
[00:01:20.722][CLOCK]—PLL_DIV : 1 * 1
[00:01:20.722][CLOCK]—SYS DVDD : 0 / 10 10
[00:01:20.722][CLOCK]—RAM DVDD : 10 / 10
[00:01:20.723][CLOCK]—VDC13 : 10 / 10
[00:01:20.723][CLOCK]—RANGE : 2

[2026-09-03 09:34:15.052]# RECV ASCII/227 <<<

[00:01:21.580][RT_AT_GUARD] ENABLE reason=CONNECT ret=0 link_owner=realtime data_owner=realtime
[00:01:21.580][RT_TRANSPARENT] CONNECT; UART is raw SSL data only
[00:01:21.581][RT_CTS] armed drain_window=0 cts=0 tx_idle=1

[2026-09-03 09:34:15.655]# RECV ASCII/139 <<<
[00:01:22.180][RT_MONITOR] WebSocket upgrade OK
[00:01:22.184][RT_MONITOR] START sn= file=20260903013337.wav wav_header=0

[2026-09-03 09:34:17.094]# RECV ASCII/63 <<<
[00:01:23.623]rec.time=35
[00:01:23.623]rec-left.time=235737

[2026-09-03 09:34:18.202]# RECV ASCII/123 <<<
[00:01:24.720][clock-manager]cpu0: 3% cpu1: 27% jlstream: 25% curr_clk:128000000 min_clk:128000000 dest_clk:128000000, 1

[2026-09-03 09:34:18.250]# RECV ASCII/83 <<<
[00:01:24.780][RT_CTS] HIGH seq=66 tag=ws phase=dma offset=0/1288 cts=1 tx_idle=0

[2026-09-03 09:34:18.343]# RECV ASCII/106 <<<
[00:01:24.860][RT_TX] PAUSED seq=66 tag=ws chunk=1/1 offset=0/1288 phase=dma wait_ret=11 cts=1 tx_idle=0

[2026-09-03 09:34:21.496]# RECV ASCII/63 <<<
[00:01:28.024]rec.time=39
[00:01:28.024]rec-left.time=235733

[2026-09-03 09:34:22.202]# RECV ASCII/123 <<<
[00:01:28.721][clock-manager]cpu0: 2% cpu1: 26% jlstream: 25% curr_clk:128000000 min_clk:128000000 dest_clk:128000000, 1

[2026-09-03 09:34:25.901]# RECV ASCII/63 <<<
[00:01:32.424]rec.time=44
[00:01:32.424]rec-left.time=235728

[2026-09-03 09:34:26.198]# RECV ASCII/123 <<<
[00:01:32.720][clock-manager]cpu0: 2% cpu1: 26% jlstream: 25% curr_clk:128000000 min_clk:128000000 dest_clk:128000000, 1

您好,这个问题发生的概率是多少(测试了多少台,其中多少台有这个问题)?
降低波特率:460800到115200会有改善吗?

你好,因为我手上只有一台设备,所以没有进行多台测试。降低波特率没有明显改善,波特率从921600降至460800没有改观,115200因为速度不满足我的要求所以我并没有特意尝试。不过我现在已经没有使用SSL透明模式上行32KB/s的PCM音频了,转而采用的是SSL非透明模式(access_mode=0),上行4KB/s左右的Opus音频;更换模式后在921600波特率下也趋于稳定,只有偶尔的波动导致掉线但也能很快通过重试建立起新的连接。