公司动态

浏览器直连串口:Web Serial API在硬件调试中的实践

📅 2026/8/12 17:50:50
浏览器直连串口:Web Serial API在硬件调试中的实践
浏览器直连串口Web Serial API在硬件调试中的实践前言做硬件调试的开发者对串口工具不会陌生——PuTTY、SecureCRT、minicom甚至自己写Python脚本。这些工具有个共同问题需要安装依赖驱动跨平台体验差。但如果我告诉你Chrome浏览器本身就能直接操作串口呢Web Serial API是Chrome 89引入的浏览器原生能力允许网页直接与串口设备通信。沧州虎王科技的多款开源硬件工具就基于这个API实现了浏览器即调试器的体验。本文就来拆解Web Serial API的技术实现和实际应用。Web Serial API 核心概念基本流程请求串口权限 → 打开串口(配置参数) → 读写数据 → 关闭串口请求串口// 请求用户选择串口设备constportawaitnavigator.serial.requestPort();// 获取已授权的串口列表constportsawaitnavigator.serial.getPorts();requestPort()会弹出系统串口选择器用户选择后授权完成。这个交互是必须的——浏览器不能悄无声息地访问硬件。打开串口awaitport.open({baudRate:115200,// 波特率dataBits:8,// 数据位stopBits:1,// 停止位parity:none,// 校验位flowControl:none// 流控});数据读写consttextDecodernewTextDecoderStream();constreadableStreamClosedport.readable.pipeTo(textDecoder.writable);constreadertextDecoder.readable.getReader();// 读取串口数据while(true){const{value,done}awaitreader.read();if(done)break;console.log(收到:,value);}// 发送AT指令constwriterport.writable.getWriter();awaitwriter.write(newTextEncoder().encode(AT\r\n));writer.releaseLock();安全限制Web Serial API有两道安全门HTTPS或localhost生产环境必须HTTPS本地开发localhost也行用户手势触发requestPort()必须在用户点击等手势回调中调用不能自动弹出实战随身WiFi硬件调试工具沧州虎王科技开源的 hardware_tool 是Web Serial API在硬件调试领域的典型应用。项目架构层级技术说明前端HTML/CSS/JSWeb Serial API串口通信后端PHP 7.4管理后台API数据库MySQL 5.7配置和日志存储主题蓝色现代化UI三芯片独立调试页面三芯片支持中兴微芯片 → AT指令集A ASR芯片 → AT指令集B 展锐芯片 → AT指令集C三种芯片的AT指令集不完全相同项目为每种芯片设计了独立的调试页面避免指令混淆。后台管理系统除了前端调试功能还有完整的后台管理管理员登录认证网站基础设置标题/描述/Logo/主题色关于页面自定义配置联系信息管理邮箱/QQ/QQ群/文档链接社交媒体链接抖音/B站访问统计 Chart.js可视化串口连接成功率分析操作日志记录这个后台设计很实用。对于团队使用场景管理员可以统一配置网站信息统计各页面的使用频率和串口连接成功率发现哪些芯片调试最常用、哪些操作容易出错。实战ASR1803工具箱另一个项目 Asr-Tools 走的是极致轻量化路线——纯HTMLCSSJavaScript零依赖一个HTML文件解决所有问题。功能设计功能AT指令实现要点IMEI查询ATCGSN读取设备识别码IMEI写入AT*MRD_IMEIW,…含Luhn校验自动生成MAC读写AT*MRD_WIFIID本地管理位自动设置SN读写AT*MRD_SN序列号管理频段锁定AT*BAND复选框可视化勾选锁小区AT*CELL…指定PCI和ARfcn随机生成器IMEI需要Luhn校验位MAC需要设置本地管理位LAM bitSN格式各厂不同。Asr-Tools内置了这些生成逻辑// IMEI Luhn校验functionluhnChecksum(imei){letsum0;for(leti0;iimei.length;i){letdigitparseInt(imei[i]);if(i%21){digit*2;if(digit9)digit-9;}sumdigit;}return(10-(sum%10))%10;}频段可视化这是体验最好的设计。用户不需要记AT指令参数勾选复选框就能锁定频段。支持的频段频段类型AT参数B1FDD-LTE,0,1,0,2,2,0B3FDD-LTE,0,4,0,2,2,0B5FDD-LTE,0,16,0,2,2,0B8FDD-LTE,0,128,0,2,2,0B38TDD-LTE,32,0,0,2,2,0B39TDD-LTE,64,0,0,2,2,0B40TDD-LTE,128,0,0,2,2,0B41TDD-LTE,256,0,0,2,2,0浏览器硬件调试的优势对比传统串口工具维度传统工具(PuTTY等)Web Serial工具安装需要安装驱动浏览器打开即用跨平台各平台不同工具统一Chrome/Edge界面纯文本终端现代化Web UI功能扩展写脚本前端组件封装团队部署每台装一份部署一个Web服务数据统计没有后台统计可视化更新手动更新服务端更新即生效最大的改变是部署模式。传统模式下每个工程师都要装一套工具Web模式下部署一个PHP服务团队所有成员用浏览器访问即可。功能更新只需改服务端所有人即时生效。浏览器兼容性Web Serial API目前支持情况Chrome 89 ✓Edge 89 ✓Opera 75 ✓Firefox ✗不支持Safari ✗不支持建议用Chrome或Chromium内核浏览器。企业环境如果有Chrome设备管理策略还可以通过策略配置自动授权特定串口设备。技术限制1. 传输速率Web Serial API的传输速率受浏览器事件循环影响高频数据场景可能有丢包或延迟。对于AT指令这种低频交互完全够用但高速数据采集需要评估。2. 并发连接一个标签页同时只能处理少量串口连接。如果需要多设备并行调试可以开多个标签页或使用Service Worker。3. HTTPS要求生产环境必须HTTPS。企业内网可以用自签名证书或者部署在localhost。写在最后Web Serial API让浏览器成为了真正的硬件调试工具。沧州虎王科技的两款开源项目hardware_tool和Asr-Tools展示了这条路线的可行性。如果你也在做硬件相关的工具开发不妨试试这个方向。项目地址hardware_tool: https://github.com/huwangkeji/hardware_tool (⭐9)Asr-Tools: https://github.com/huwangkeji/Asr-Tools更多开源项目https://github.com/huwangkeji