一、引言:边缘认知设备的通信挑战
在国防安全、边境巡逻、无人机反制等场景中,AI边缘认知设备需要与上位机软件、云台控制端进行实时通信。这类通信面临多重挑战:不同操作系统间的兼容性、视频流与控制指令的并行传输、二进制图像数据与JSON文本的混合帧解析、以及网络不稳定时的连接管理。
本文以Tofu系列设备的T-JSON通信协议为案例,从协议架构、数据帧格式、JSON指令设计、图像抓拍机制等维度进行技术分析,帮助开发者理解边缘AI设备的通信架构设计思路,为二次开发提供参考。
二、协议架构概述

2.1 角色定义
T-JSON协议采用经典的客户端-服务器架构,角色定义如下:
- AI端(Server):边缘AI识别跟踪设备,作为TCP服务器,负责视频推流、目标识别、状态信息推送
- 客户端(Client):操控端软件或平台软件,作为TCP客户端,负责发送控制指令、接收状态信息
- 视频端:采用RTSP协议,默认H.264编码,端口554,与JSON控制协议独立
控制端口固定为8089,所有JSON控制指令和状态推送均通过此端口。视频流通过独立的554端口传输,实现控制面数据与视频流的分离。
2.2 网络拓扑
整体网络通信架构包含三条独立链路:
- JSON控制链路(TCP 8089):用于指令下发、状态上报、图像抓拍、心跳维护
- RTSP视频链路(TCP 554):用于视频点播与解码显示
- PV串口链路(TCP 8090):用于向吊舱发送PelcoD/VISCA云台控制指令
这种分离设计使得开发者可以独立处理控制逻辑和视频解码,降低系统耦合度。
三、数据帧格式
3.1 JSON 指令帧格式
T-JSON协议的每一帧数据均由固定帧头和可变帧内容组成,帧头包含标识码、帧类型和帧长度三个部分:
|--------|---------------|---------------|---------|---------|
| 字段 | 标识码 1 | 标识码 2 | 帧类型 | 帧内容 |
| 长度 | 1Byte | 1Byte | 1Byte | N Byte |
| 值 | 0xEC | 0x91 | 见帧类型表 | JSON数据 |
其中帧长度字段为4Byte,表示后续JSON内容的字节数。标识码0xEC 0x91是固定的协议标志,用于帧同步和数据解析时的定位。
3.2 帧类型表
协议定义了多种帧类型,覆盖状态推送、控制指令、图像抓拍、查询配置等场景:
|---------|---------|--------|-----------------|
| 帧类型 | 类型名 | 方向 | 说明 |
| 0x01 | 状态帧 | 设备→客户端 | AI算法信息与设备状态推送 |
| 0x03 | 控制指令 | 客户端→设备 | 工作模式切换、区域设置等 |
| 0x04 | 图像抓拍 | 设备→客户端 | JPEG目标截图二进制传输 |
| 0x05 | 图像参数查询 | 客户端→设备 | 查询分辨率、码率、编码格式等 |
| 0x06 | 检测区域设置 | 客户端→设备 | 设置目标检测的围栏区域 |
| 0x08 | 算法模型设置 | 客户端→设备 | 切换人车/船/无人机等识别模型 |
| 0x09 | 目标截图状态 | 客户端→设备 | 开启/关闭目标图像抓拍功能 |
| 0x0A | 数字变倍 | 客户端→设备 | 1X~2X无级数字变倍开关 |
| 0x11 | 心跳 | 双向 | 连接保活,15秒超时断开 |
| 0x12 | ACK | 双向 | 帧确认应答,含状态码 |
值得注意的是,所有JSON数据上下帧间隔不得小于100毫秒,这是为了避免设备端解析压力过大。
四、 JSON 指令协议详解

4.1 算法信息 AIInfo 推送
设备端在AI运行过程中会主动推送算法信息,这是客户端获取目标检测结果的主要方式。AIInfo数据结构包含控制类型、工作模式、目标总数和目标详细信息。