液相芯片检测系统通信协议全集(20190515版)
来源:20190515液相芯片新协议.xls(16个Sheet,335KB) 项目:液相芯片 / 小型全自动微流控化学发光免疫分析仪 版本:2019年5月15日新协议版本 与 20190924版 相比:此为更早版本,包含CAN总线各子模块协议(20190924版缺失),是理解系统底层通信架构的关键补充。
一、协议总览
1.1 三层通信架构
上位机 (PC)
│ 串口 (RS-232 / USB转串口)
▼
中位机 (0x21) ─── CAN总线 ─── 各功能模块 (0x01~0x16)
│ USB
▼
AD采集卡 (0x22)
1.2 双总线架构
| 总线 | 连接对象 | 模块号范围 | 帧格式 |
|---|---|---|---|
| 串口 | 上位机 ↔ 中位机 / AD采集卡 | 中位机 0x21、AD卡 0x22 | 32字节固定帧(FA头/FB尾) |
| CAN总线 | 中位机 ↔ 各功能子模块 | 0x01~0x16(16个模块) | 变长帧(DLN数据长度) |
1.3 模块号分配(共16+2个)
| 模块号 | 模块名称 | 总线 | Sheet |
|---|---|---|---|
| 0x01 | 样本供应模块 | CAN | Sheet 7(TIP供应) |
| 0x02 | TIP供应模块 | CAN | Sheet 7 |
| 0x03 | 样本针模块 | CAN | Sheet 8 |
| 0x04 | 试剂仓模块 | CAN | Sheet 9 |
| 0x05 | 液路模块1(测量) | CAN | — |
| 0x06 | 液路模块2(系统) | CAN | — |
| 0x07 | 试剂针模块1 | CAN | Sheet 10 |
| 0x08 | 试剂针模块2 | CAN | Sheet 10 |
| 0x09 | 试剂针模块3 | CAN | Sheet 10 |
| 0x10 | 反应盘模块 | CAN | Sheet 11 |
| 0x11 | 清洗模块1 | CAN | Sheet 12 |
| 0x12 | 清洗模块2 | CAN | Sheet 12 |
| 0x13 | 清洗模块3 | CAN | Sheet 12 |
| 0x14 | 进测量室模块 | CAN | Sheet 13 |
| 0x15 | 固体废料仓模块 | CAN | Sheet 14 |
| 0x16 | 测量模块 | CAN | — |
| 0x21 | 中位机模块 | 串口 | Sheet 0 |
| 0x22 | AD采集卡 | 串口/USB | Sheet 1 / Sheet 2 |
二、串口协议(上位机 ↔ 中位机/AD卡)
2.1 帧格式(32字节固定帧)
【FA】【帧类型】【帧号】【模块号】【指令长度】【指令类型】【指令】【参数1】…【参数N】【校验和高】【校验和低】【FB】
- 帧头:0xFA
- 帧尾:0xFB
- 帧号:0x00~0x99 循环累加(发送方维护,应答/结果帧沿用原帧号)
- 指令长度:除 FA、FB 之外的所有字节长度
- 校验和:被校验字节累加取和的低4位?(原文描述”千位×16+百位”放高字节,“十位×16+个位”放低字节 — 实际为 BCD 编码的 16 位校验和)
- 除 AD 采集卡返回数据帧外,所有通信指令固定 32 字节,不足补零
2.2 帧类型(8种)
| 帧类型 | 值 | 说明 |
|---|---|---|
| 命令帧 | 0x01 | 上位机下发指令 |
| 重发命令帧 | 0x02 | 暂不写 |
| 重获结果帧 | 0x03 | 暂不写 |
| 命令应答帧 | 0x04 | 下位机应答(正确/错误码) |
| 命令结果帧 | 0x05 | 下位机执行结果 |
| 数据帧 | 0x06 | 下位机返回数据 |
| 警告信息帧 | 0x07 | 故障/告警上报 |
| 主动上传帧 | 0x08 | 状态自动上报(待细化) |
2.3 指令类型(6类)
| 指令类型 | 码 | 说明 |
|---|---|---|
| 握手 | 0x01 | 通信握手 |
| 工作模式 | 0x02 | 复位、启动检测、停止等 |
| 单步 | 0x03 | 单步调试指令 |
| 设置 | 0x04 | 参数设置 |
| 查询 | 0x05 | 状态查询 |
| 测试 | 0x06 | 自检 |
2.4 应答结果码
| 码 | 含义 |
|---|---|
| 0x01 | 正确 |
| 0x02 | 校验和错误 |
| 0x03 | 指令超长 |
| 0x04 | 指令太短 |
| 0x05 | 指令不完整(无帧尾) |
| 0x06 | 其它 |
三、中位机串口指令(模块号 0x21)
3.1 工作模式指令
| 指令 | 码 | 参数 | 返回 | 说明 |
|---|---|---|---|---|
| 复位 | 0x01 | — | 无数据帧 | |
| 样本条码扫描 | 0x02 | 起始槽位/孔位 + 停止槽位/孔位 | 数据帧(槽位+孔位+10字节条码) | 每次扫描多个,每条码最长20位=10字节 |
| 试剂条码扫描 | 0x03 | 孔位 | 数据帧(孔位+10字节条码) | 每次扫描1个 |
| 样本/质控检测 | 0x04 | 取TIP位/进反应杯位/测试项目/样本序号/起止槽孔位 | 数据帧(样本序号) | 每个数据帧表示一个项目测试结果就绪,上位机再发指令给AD卡取数据 |
| 启动校准 | 0x05 | 取TIP位/进反应杯位/校准品1~2槽孔位 | 无数据帧 | 仅完成校准品上样,采集数据需另发AD卡指令 |
| 停止校准 | 0x06 | — | 无数据帧 |
3.2 单步指令(液路维护)
| 指令 | 码 | 说明 |
|---|---|---|
| 复位 | 0x01 | |
| 试剂针清洗 | 0x02 | |
| 清洗针清洗 | 0x03 | |
| 系统排空 | 0x04 | |
| 系统液路灌注 | 0x05 | |
| 测量液路灌注 | 0x06 | |
| 测量液路除气泡 | 0x07 | |
| 测量液路排堵 | 0x08 | |
| 上样针清洗 | 0x09 |
3.3 设置指令
| 指令 | 码 | 参数 |
|---|---|---|
| 上样流速档位 | 0x01 | 档位 |
| 鞘液流速档位 | 0x02 | 档位 |
| TIP/反应杯状态 | 0x03 | TIP盒数量 + TIP头余量 |
| 试剂仓状态 | 0x04 | 试剂位1~6 的测试项目 + 剩余人份 |
3.4 查询指令(返回对应数据帧)
- 上样流速档位 → 返回上样档位
- 鞘液流速档位 → 返回鞘液档位
- TIP/反应杯状态 → 返回 TIP盒数量 + TIP头余量
- 试剂仓状态 → 返回 试剂位1~6 测试项目 + 剩余人份
3.5 主动上传帧(0x08)
TIP架/反应杯状态/样本/耗材/仪器状态 合并上传:
- TIP盒数量、TIP头余量
- 完成样本槽位/孔位
- 鞘液充足/不足
- 废液未满/将满
- 系统液充足/不足
- 试剂仓温度(高位+低位)
- 孵育仓温度(高位+低位)
- 运行时间片(高位+低位,测试用)
试剂仓状态 上传:试剂位1~6 测试项目 + 剩余人份
四、AD采集卡协议(模块号 0x22)
4.1 USB 指令集(Sheet 1)
| 指令类型 | 指令 | 码 | 参数 | 返回 |
|---|---|---|---|---|
| 握手 | 通信握手 | 0x01 | — | 无数据帧 |
| 工作模式 | 复位 | 0x01 | — | 无数据帧 |
| 停止采集 | 0x03 | — | 无数据帧 | |
| 读取数据 | 0x04 | 样本序号高位+低位 | 数据帧(数据包长度n + 微球1~n数据) | |
| 实时采集 | 0x05 | — | 无数据帧 | |
| 设置 | 通道增益 | 0x01 | 通道 + 增益高位+低位 | 无数据帧 |
| 通道阈值 | 0x02 | 通道 + 阈值高位+低位 | 无数据帧 | |
| 停止条件 | 0x03 | 停止条件高/中/低位 | 无数据帧 | |
| 查询 | 通道增益 | 0x01 | — | 通道 + 增益高位+低位 |
| 通道阈值 | 0x02 | — | 通道 + 阈值高位+低位 | |
| 停止条件 | 0x03 | — | 停止条件高/中/低位 | |
| 测试 | 自检 | 0x01 | — | 无数据帧 |
4.2 微球数据格式
每个微球包含 8个通道的分析结果:
- H1/A1/W1(高度/面积/宽度,通道1)
- H2/A2/W2(通道2)
- H3/A3/W3(通道3)
- H4/A4/W4(通道4)
每个参数:
- 高度 H:24 bit
- 面积 A:24 bit
- 宽度 W:16 bit
共计:(24+24+16) × 4 = 256 bit = 32 字节 / 每微球
注:Sheet 1 备注描述为”512bit即64字节”,但按8通道计算实际为256bit。可能是8通道+4参数的笔误,待确认。
4.3 串口指令集(Sheet 2)
AD采集卡串口版本指令较少,仅含:
- 握手(0x01)
- 工作模式-采集保存(0x04):样本序号高位+低位
- 应答帧/结果帧/警告帧/主动上传帧(同USB版格式)
五、故障代码体系(AABBCC 格式)
5.1 编码规则
AA = 模块号(2位十六进制)
BB = 错误类型(2位十六进制)
CC = 错误码(2位十六进制)
5.2 错误类型
| 类型码 | 类型名称 |
|---|---|
| 00XX | 通讯类错误 |
| 01XX | 参数类错误 |
| 02XX | 执行类错误 |
5.3 典型故障代码示例
| 代码 | 含义 |
|---|---|
| 010001 | 样本供应模块 CAN 总线通讯异常 |
| 020202 | TIP供应模块 TIP盒抽屉未到位 |
| 030206 | 样本针模块吸液量过大 |
| 040601 | 试剂仓模块制冷温度异常 |
| 030601 | 样本针未取到 TIP |
| 030602 | 样本针未探测到液面 |
完整故障代码表见 Sheet 4(54行定义,覆盖所有模块)
六、CAN总线协议(中位机 ↔ 子模块)
6.1 帧格式(变长帧)
【数据长度 DLN】【指令类型 D0】【指令码 D1】【参数2 D2】…【参数7 D7】
- DLN:数据长度(指令类型+指令码+参数的总字节数)
- 指令类型编码与串口一致:0x01握手 / 0x02工作模式 / 0x03单步 / 0x04查询 / 0x05测试 / 0x06警告
- 指令码:各模块自定义
6.2 帧类型(CAN版)
| 帧类型 | 对应串口类型 | 说明 |
|---|---|---|
| 命令帧 | 0x01 | 中位机下发 |
| 应答帧 | 0x04 | 子模块应答(0x00正确 / 0x01指令错误) |
| 数据帧 | 0x06 | 子模块返回查询数据 |
| 结果帧 | 0x05 | 子模块执行结果(0x00正确 / 0x01错误) |
| 警告帧 | 0x07 | 子模块告警上报 |
6.3 指令命名规则
IMM_<模块缩写>_CAN_<指令类型>_<指令码>_<子序号>
例:IMM_TSM_CAN_04_03_01 = TIP供应模块 CAN 命令帧(04) 设置(03) 第01条
七、各模块 CAN 指令集详解
7.1 TIP供应模块(TSM, 0x02)- Sheet 7
核心功能:TIP架取放、推TIP、TIP车X/Y电机控制、电磁铁控制
| 类别 | 指令数 | 关键指令 |
|---|---|---|
| 初始化 | 3 | 握手 / 复位 / 自检 |
| 工作模式 | 3 | 取TIP架 / 推TIP至取TIP位 / 放回TIP架 |
| 单步-设置 | 7 | X电机归零/走位/走位至TIP架位、Y电机归零/走位/走位至公共槽TIP位、拖钩电磁铁 |
| 查询 | 1 | 查询TIP车状态 |
| 测试 | — | (数据帧返回TIP车状态) |
| 警告 | 1+ | TIP不足(0x06 0x01) |
7.2 样本针模块(SSM, 0x03)- Sheet 8
核心功能:取TIP/取样/加样/抛TIP、X/Z1/Z2三轴电机、ADP(自动探测)吸吐样
| 类别 | 指令数 | 关键指令 |
|---|---|---|
| 初始化 | 3 | 握手 / 复位 / 自检 |
| 工作模式 | 7 | 取TIP头 / 取样 / 加样 / 抛TIP头 / 取反应杯 / 加杯 / 复位 |
| 单步 | 14+ | X电机归零/走位/设速度、Z1电机归零/走位/设速度、Z2电机归零/置底/走位/设速度、ADP检测TIP/抛TIP/吸样/吐样 |
| 查询 | 1+ | (0x04类) |
| 测试 | 1+ | (0x05类) |
| 警告 | 5+ | 未取到TIP / 未探测到液面 / 吸液量过大 / 加样泵未初始化 / 吸样中无TIP |
7.3 试剂仓模块(RWM, 0x04)- Sheet 9
核心功能:6位试剂仓旋转、条码扫描、试剂摇匀、温控、冷凝水
| 类别 | 指令数 | 关键指令 |
|---|---|---|
| 初始化 | 3 | 握手 / 复位 / 自检 |
| 工作模式 | 5 | 试剂摇匀振荡 / 试剂信息扫描上传 / 至磁珠位 / 至亲和素 / 至抗体位 |
| 单步 | 8 | 电机归零/走位/振荡、加热开关、冷凝水泵阀、条码扫描、走位/归零速度、摇匀速度 |
| 查询 | 2 | 查询扫描条码信息 / 查询试剂仓温度 |
| 测试 | 3 | (3条测试指令) |
| 警告 | 2 | 制冷温度异常 / 试剂仓盖打开 |
数据帧返回:
- 试剂条码信息:6个试剂位条码(以 AA
FF 结尾标记16位) - 试剂仓温度:4字节(高位×2 + 低位×2)
7.4 试剂针模块(RPM, 0x07/0x08/0x09)- Sheet 10
3根试剂针共用协议(ID 7/8/9),每根针独立控制
核心功能:Z/R旋转双轴 + 柱塞泵 + 多阀组(洗针阀/隔离阀/废液阀)
| 类别 | 指令数 | 关键指令 |
|---|---|---|
| 初始化 | 3 | 握手 / 复位 / 自检 |
| 工作模式 | 5 | 试剂针复位 / 取试剂 / 加试剂 / 清洗试剂针 / 强制重启 |
| 单步 | 12 | Z电机归零/走位/设速度、R电机归零/走位/设速度、柱塞泵归零/吸吐/设速度、洗针阀开关、隔离阀开关、废液阀开关 |
| 查询 | 1+ | (0x04类) |
| 测试 | 1+ | (0x05类) |
| 警告 | 8 | 液面监测警告 / 试剂盒空 / 试剂针污染 / 电机未复位 / 步程方向错误 / 电机未开启 / 装帧报警 / 心跳 |
取试剂完整流程(12步):
- R电机高速逆时针旋转180°
- 隔离阀开启
- 柱塞泵吸取10μL
- Z电机高速下降30mm
- Z电机低速下降48mm
- 探测到液面
- Z电机低速下降2mm
- 柱塞泵吸取50μL
- Z电机低速上升67-a
- 柱塞泵吸5
- Z电机归零
- 隔离阀关闭
7.5 反应盘模块(RDM, 0x10)- Sheet 11
核心功能:旋转伺服电机、反应杯进出、混匀、温控、废液吸附
| 类别 | 指令数 | 关键指令 |
|---|---|---|
| 初始化 | 3 | 握手 / 复位 / 自检 |
| 工作模式 | 4 | 至出杯位 / 返回工作位 / 至进杯位 / 反应盘混匀 |
| 单步 | 8 | 旋转伺服归零/走位/振荡、废液电磁阀、急停、混匀速度、走位速度、混匀次数 |
| 查询 | 1 | 查询反应盘温度 |
| 测试 | 1+ | (0x05类) |
| 警告 | 3 | 清洗位检测不到反应杯 / 工作位未检测到反应杯 / 温育温度异常 |
7.6 清洗模块(CMM, 0x11/0x12/0x13)- Sheet 12
3组清洗针共用协议(ID 11/12/13)
核心功能:Z/X双轴定位 + 6组吸吐液针阀控制
| 类别 | 指令数 | 关键指令 |
|---|---|---|
| 初始化 | 3 | 握手 / 复位 / 自检 |
| 工作模式 | 3 | 清洗模块复位 / 清洗操作(针选择+次数+时间) / 维护操作 |
| 单步 | 12+ | Z电机归零/走位/设速度、X电机归零/走位/设速度、吸液针1 |
| 查询 | 1+ | (0x04类) |
| 测试 | 1+ | (0x05类) |
| 警告 | 2+ | (至少2种) |
7.7 进测量室模块(MMM, 0x14)- Sheet 13
核心功能:反应杯进出测量室、吸废液、抛杯、X/Y双轴、阀组
| 类别 | 指令数 | 关键指令 |
|---|---|---|
| 初始化 | 3 | 握手 / 复位 / 自检 |
| 工作模式 | 4 | 复位 / 出反应杯 / 吸废液 / 抛弃反应杯 |
| 单步 | 8 | X电机归零/走位/设速度、Y电机归零/走位/设速度、吸样阀开关、吸废液阀开关 |
| 查询 | 1+ | (0x04类) |
| 测试 | 1+ | (0x05类) |
| 警告 | 1+ | (0x06类) |
7.8 固体废料仓模块(SWM, 0x15)- Sheet 14
核心功能:废料摇匀、废料仓满检测
| 类别 | 指令数 | 关键指令 |
|---|---|---|
| 初始化 | 3 | 握手 / 复位 / 自检 |
| 工作模式 | 1 | 废料摇匀(时长参数) |
| 单步 | 1 | 设置摇匀速度 |
| 查询 | 1+ | (0x04类) |
| 测试 | 1+ | (0x05类) |
| 警告 | 2 | 废料仓满 / 废料仓未推到位 |
八、单样本检测连续时序(Sheet 3)
8.1 三版时序对比
Sheet 3 包含 3 组 45 秒单样本时序图(上中下三组),展示不同工作模式下各模块的协同工作流程:
| 模块 | 关键时间节点 |
|---|---|
| 样本架 | ~3s取架 → ~9s取样位 → ~42s退架 |
| TIP架/反应杯架 | ~3s取架 → ~9s取TIP位 → ~42s退架 |
| 样本针/进杯叉 | ~12s取TIP/取样/加样/丢TIP/取反应杯 → ~36s进反应杯 |
| 试剂仓 | 试剂1位→试剂2位→试剂3位 依次定位 |
| 试剂针1/2/3 | 各取试剂→加试剂→清洗 三步循环 |
| 清洗针1/2/3 | |
| 反应盘 | ~3s出杯位 → ~9s工作位 → ~12s磁铁吸附 → ~33s/39s进杯位 |
| 出杯叉 | ~6s出反应杯 → ~42s吸废液&抛杯 |
| 采集卡 | ~9s测量 |
| 测量液路 | ~9s启动样品泵 → ~42s关闭 |
8.2 流水线设计原则
- 样本针/试剂针/清洗针/反应盘 并行工作
- 3根试剂针分别吸取3种试剂,时间上错开
- 反应盘在磁铁吸附位停留时间最长(约24秒),用于免疫反应
- 测量在第9秒即开始(之前样本已处理好),实现流水线重叠
九、加样模块指令概览(Sheet 15:0x02)
Sheet 15 以简表形式列出加样模块(0x02)的高层指令:
| 类别 | 指令 | 参数 |
|---|---|---|
| 握手 | 通信握手 | — |
| 工作模式 | 复位 | — |
| 取TIP | TIP孔位 | |
| 抛TIP | — | |
| 吸稀释液和样本稀释 | TIP孔位、稀释液体积、样本体积、注样体积 | |
| 吸注全血 | TIP孔位、注样体积 | |
| 吸注血清(质控/校准/定标/血浆) | TIP孔位、注样体积 | |
| 吸注试剂 | TIP孔位、注试剂体积 | |
| 吸注磁珠 | TIP孔位、注磁珠体积 | |
| 吸注清洗液(3次) | TIP孔位、注清洗液体积 | |
| 吸注底物 | TIP孔位、注底物体积 | |
| 单步/设置/查询/测试 | — | (分类框架列出,指令待细化) |
这一高层指令集与 Sheet 8(样本针CAN协议)形成分层关系:上位机通过串口发高层加样指令给中位机,中位机拆解为多条CAN底层指令下发给样本针模块执行。
十、与 20190924 版协议的对比
| 维度 | 20190515版(本文件) | 20190924版 |
|---|---|---|
| 文件格式 | .xls(旧版) | .xlsx |
| Sheet数量 | 16 | 2 |
| 覆盖范围 | 全栈:串口协议 + 各模块CAN协议 + 时序 + 故障码 | 仅串口侧:中位机指令 + AD采集卡指令 |
| 帧类型 | 8种(01命令~08主动上传) | 8种(相同) |
| 模块号 | 18个(含中位机+AD卡+16个子模块) | 18个(相同) |
| AD卡采集模式 | 读取数据(0x04) + 实时采集(0x05) | 启动采集(0x02) + 实时采集(0x05) |
| CAN总线协议 | ✅ 完整定义(10个模块) | ❌ 无 |
| 连续时序 | ✅ 3组45秒时序图 | ❌ 无 |
| 故障代码 | ✅ 完整AABBCC编码表 | ❌ 仅警告信息帧提及 |
| 加样模块高层指令 | ✅ | ❌ 无 |
版本演进判断:20190515版是系统级完整协议定义,包含底层CAN总线细节;20190924版是上位机对接用的精简版,只保留串口侧指令。两者互补,结合阅读可获得完整的系统通信视图。
关联笔记
- USB与串口通信协议20190924-液相芯片检测系统(2019年9月版,串口侧更新版)
- FPGA通信协议变更说明-液相芯片检测系统(FPGA协议变更记录)
- 液相芯片测试软件需求分析及界面设计方案(上位机软件需求)
- 荧光补偿算法-液相芯片多色荧光检测(检测数据处理算法)
- 小型全自动微流控化学发光免疫分析仪-系统调试软件方案说明(调试软件方案)