关于
necAnalyzer是一款在线NEC红外遥控解码分析工具,通过解析接收到的电平数据,完成基础的红外解码并对红外电平信号作图形化显示,同时根据数据与NEC协议标准定义作比较,以协助分析红外遥控信号质量。
工具使用:
- 在工具页中,点击左下角浮动图标,填入格式化数据,点击“解码”,即可对数据进行分析
- 数据终端,用以接收红外信号,并将数据格式化输出
a) 可以通过调试输出,将数据手动复制至工具;
b) 也可以通过USB/网络等方式实现数据自动上传&解析 - 服务端:仅在终端使用网络(比如WIFI)时需要部署,详细见后续章节
数据格式
1. 每位数据使用花括号包起
-
第一位为电平:0或1
-
第二位为电平持续时长,单位us
2. 常规0038接收头,默认输出高电平,接收到信号则输出低电平,NEC协议起始位为9ms,所以标准起始位应为:{0:9000}
3. 数据说明
- 有效数据应为 前导码2位 + 用户码16位 + 用户反码16位 + 指令码16位 + 指令反码16位,共66位
- 解析时建议末尾加上 {0:562}{1:0} 表示数据结束,共68位
PS.
- 花括号外的内容会自动过滤
- 网页默认填充数据来自ESP-IDF例程:ir_nec_transceiver
自动解析
通过USB或网络,可以实现数据自动上传与解析。如果喜欢,甚至两者可以同时使用。
USB上传
将设备连接至电脑,点击“连接设备”,选择对应端口即可
* 找不到设备,建议通过设备管理器查看驱动是否正常
常用USB转串口方案驱动:CH340/CH341 、 CP210x
网络上传
终端设备
USB-串口 通信
- ESP32固件: nec_analyzer_uart_esp32_Firmware
PIN_UART_TXD = 1, PIN_UART_RXD = 3, PIN_IR = 23 - ESP32-C3固件: nec_analyzer_uart_esp32_c3_Firmware
PIN_UART_TXD = 21, PIN_UART_RXD = 20, PIN_IR = 8 - IDF源码: nec_analyzer_uart_Source
- * 使用CH34X USB转串口芯片,务必使用双管自动下载电路,否则可能会导致通信异常,详细见 Hello AI-Thinker
WiFi-webSocket 通信
- IDF源码:nec_analyzer_webSocket_Source
- 不知道该怎么在配网时一起把服务端地址、端口这些也配了,算了,都硬写吧,又不是不能用.jpg,有生之年再更新一波
烧录
可以使用 Flash 下载工具 或 ESP Launchpad进行烧录
接口说明
串口通信
- 将 格式化 后的数据用串口发送
- 有效数据发送完后,发送一条空信息表示结束: \r\n
网络通信
- 通过websocket服务,将终端设备发来的数据以字符串格式转发至网页客户端
- 服务端通过 protocol 字段识别客户端与终端设备
客户端标识为 necAnalyzerClient ,终端设备标识为 necAnalyzer
可以在服务端中自定义终端设备的连接标识
NEC协议
关于NEC协议,网上已有太多讲解,在此不再赘述,没找到“官方资料”,可以参考 SB-Projects - IR - NEC Protocol
有意思的一点是,在查到的资料中,NEC拓展协议(Extended NEC协议)将用户码反码也划分到用户码,即用户码由8位拓展到16位。 指令数据段依旧使用8位+反码校验解析,而IDF例程却将数据码也按16位解析。
看不懂啊看不懂,明明 SB-Projects 这个网站还是通过他们例程说明知道的!
为防止新手误解,其中16位码显示,暂以IDF例程为准,但是……
没想到吧,我就没打算解析拓展协议,所以如果反码校验不通过,将不显示解析结果并提示,不过逻辑波形会显示出来,佬们自便吧