新版全自动QPCR_CAN通讯协议(十月版)
概述
全自动 QPCR 仪器的 CAN 总线通讯协议规范,250K 波特率,主从架构(Master->Slave)。小端序(低位在前)。
协议版本:十月版(较 20210723 版更新) 波特率:250K 帧格式:11 位功能码 + 节点ID + 8 字节数据 数据类型:uint32 / int32 / float32
模块地址分配
| 地址 | 模块名称 | 说明 |
|---|---|---|
| 1 | Z模块 | Z轴运动 + 夹爪 |
| 2 | XY模块 | XY移液模块(含液面探测/吸吐液/取丢TIP) |
| 3 | 排枪模块1 | X/Y双轴排枪 |
| 4 | 排枪模块2 | X/Y双轴排枪 |
| 5 | 条杯托模块 | Z + 泵 + 脱TIP电磁阀 + 吸吐液/混匀/取丢TIP |
| 6 | 温控模块(扩增等) | 磁铁电机 + 翻盖电机 + 3路PID温控(试剂/加热带1/加热带2) |
| 7 | 测量模块 | 荧光检测 + 扩增温控 + 多步骤PID + 6模块 |
| 8 | 样本xyz模块 | 荧光扫描 + 光源控制 + 32通道连续读取 |
| 9 | 样本转移模块 | XYZ三轴 + 夹爪 + 脱帽/盖帽/扫码 |
报文格式
1. 读数据
Master->Slave(11位功能码 + ID + 序号 + 数据/参数):
- 功能码高3位:
101(十进制 5) - ID:4位节点地址
- 序号:4位
- 数据/参数位:0=数据,1=参数
Slave->Master(应答帧):
- 功能码高3位:
001(十进制 1) - ID + 序号 + 值
2. 写数据
Master->Slave:
- 功能码高3位:
110(十进制 6) - ID + 序号 + 数据/参数 + 值
Slave->Master(应答):
- 功能码高3位:
111(十进制 7) - ID + 序号 + 错误码(0=正确)
3. 数据警告(主动上报)
Slave->Master(仅前256个寄存器):
- 功能码高4位:
0001(十进制 1) - ID + 序号 + 数据
主动上报参数定义(寄存器参数值):
| 值 | 含义 |
|---|---|
| 0 | 不主动发送 |
| 1 | 变化时主动发送(最小间隔10ms) |
| 2 | 10ms间隔主动发送 |
| 20 | 100ms间隔主动发送 |
| 200 | 1000ms间隔主动发送 |
通用寄存器架构
每个模块都遵循统一的寄存器布局:
| 地址(16进制) | 寄存器 | R/W | 类型 | 说明 |
|---|---|---|---|---|
| 1 | 错误码 | RO | uint32 | 0=无错误 |
| 2 | 动作码 | RW | uint32 | 触发具体动作(各模块不同) |
| 3 | 控制码 | RW | uint32 | BIT0=触发动作,高字节=电机使能 |
| 4 | 状态码 | RO | uint32 | BIT0=动作完成,高字节=电机是否使能 |
| 100/0x64 | 数字输入口状态 | RO | uint32 | 通用DI |
| 101/0x65 | 数字输出口状态 | RW | uint32 | 通用DO |
各模块核心寄存器与动作码
Z模块(地址1)
动作码:初始化 / 总体归零 / X归零 / 夹爪电机归零 / X走位 / 夹爪走位 / 原点至夹取位 / 夹取位至取样位 / 取样位至夹取位
关键寄存器:X设定位置、X相对绝对、X当前位置、夹爪设定位置、夹爪相对绝对、夹爪夹取/释放运动距离、原点至夹取位X距离、原点至取样位X距离
XY模块(地址2)
移液核心模块,32个寄存器,5大类参数:
| 参数组 | 寄存器范围 | 核心参数 |
|---|---|---|
| 基础运动 | 10-16 | Z设定/当前位置、泵设定位置、托盘设定位置 |
| 吸液参数 | 16-27 | 液面探测开关、起始/结束高度、吸液高度、吸液量/速度、容器直径、上气封/下气封 |
| 吐液参数 | 28-35 | 吐液高度、吐液后上升高度、吐液体积/速度、混匀次数/体积/速度 |
| 取TIP参数 | 36-38 | 开始高度、结束高度、取TIP后上升高度 |
| 抛TIP参数 | 39-41 | 抛TIP高度、抛TIP后上升高度、TIP有无标志 |
动作码(12种):初始化 / Z归零 / 移液泵归零 / 托盘归零 / Z走位 / 移液泵走位 / 托盘走位 / 液面探测 / Z轴吸液 / Z轴吐液 / 取TIP / 丢TIP / 总体归零
排枪模块(地址3、4)
X/Y双轴运动,无移液功能。
动作码(6种):初始化 / X归零 / Y归零 / X走位 / Y走位 / X&Y走位
条杯托模块(地址5)
Z + 泵 + 脱TIP电磁阀,完整移液流程。
动作码(12种):总体归零 / Z电机归零 / 泵电机归零 / 退TIP电磁阀归零 / Z走位 / 泵走位 / 脱TIP电磁阀走位 / 脱TIP / 吸液 / 吐液 / 混匀 / 取TIP
参数组:吸液参数 / 吐液参数 / 取TIP参数 / 抛TIP参数 / 混匀参数
扩增温控_T(地址6)
磁铁电机 + 翻盖电机 + 3路独立PID温控。
动作码(4种):磁铁电机归零 / 翻盖电机归零 / 磁铁电机走位 / 翻盖电机走位
3路温控(每路7个寄存器:开关+设定值+当前值+PID P/I/D/T):
| 基地址 | 温控对象 |
|---|---|
| 0xA000 | 试剂模块 |
| 0xA100 | 条杯托模块加热带1 |
| 0xA200 | 条杯托模块加热带2 |
测量模块_T(地址7)
最复杂模块,荧光扩增检测,6模块 × 多步骤 × 多PID参数。
核心寄存器:
- 目标循环数、当前循环计数、步骤数、当前步骤ID、模块数
- 扩增开关(0关1开)、加热带开关
- 模块当前温度(第10号寄存器)
- 子模块当前温度(11~1F,最多16个)
- 加热带当前温度(20号)
步骤参数编码规则:步骤ID_模块ID_参数ID(从1开始)
- 0x1101 = 步骤1目标温度
- 0x1102 = 步骤1变温速率
- 0x1110-0x1113 = 步骤1恒温PID(P/I/D/T)
- 0x1115-0x1118 = 步骤1变温PID(P/I/D/T)
- 步骤2~4以此类推(至0x4FFF)
加热带PID参数(A001-A013):目标温度、变温速率、PID P/I/D/T
控制码:BIT0 = 重置循环计数器 状态码:BIT0 = 动作完成,BIT8 = 扩增使能,BIT9 = 扩增加热使能
样本xyz模块(地址8)
荧光扫描模块,支持32通道连续读取。
动作码(5种):电机归零 / 电机走位 / 光源控制 / 荧光调试读取 / 荧光连续读取
核心寄存器:
- 电机设定/当前位置
- 光源开关(每BIT对应一路激光,0关1开)
- 调试模式荧光通道读数(10~2F,最多32通道)
- 连续读取位置数组长度(3F)
- 连续读取位置1
32(405F) - 各位置荧光读数(0100~21FF,每位置6通道)
样本转移模块(地址9)
XYZ三轴 + 夹爪 + 脱帽/盖帽/扫码,样本处理全流程。
动作码(16种):初始化 / 总体归零 / XYZ归零 / XYZ走位 / XY走位 / 夹爪复位 / 夹爪加持 / 夹爪旋转 / 取样本 / 放样本 / 扫码 / 脱帽 / 盖帽
参数组:
- 取样本参数:Z起始/结束高度、夹爪位置/角度
- 放样本参数:放样本Z高度
- 脱帽参数:脱帽夹爪旋转角度、脱帽Z结束高度
- 盖帽参数:盖帽夹爪旋转角度、盖帽Z起始/结束高度
- 样本有无标志(RO)
协议设计特点
- 统一架构:所有模块遵循 错误码/动作码/控制码/状态码 + DI/DO 的标准寄存器布局,降低学习成本
- 动作码驱动:通过写动作码触发完整操作(如”取TIP”一步到位,无需分步控制电机)
- 参数化设计:复杂动作(吸液、吐液、混匀、取TIP等)全部通过寄存器参数配置,灵活适配不同场景
- 主动上报机制:支持变化上报和定时上报两种模式,最小间隔10ms
- 多模块独立寻址:9个模块独立节点ID,并行工作
- 分级温控:测量模块支持步骤级PID(恒温+变温各一套),扩增温控模块支持3路独立PID
- 多通道荧光:样本xyz模块支持32位置×6通道连续读取,满足高通量荧光检测需求
与20210723版的关系
十月版为更新版本,20210723版为旧版。十月版模块定义更完整(测量模块/样本xyz/样本转移均有详细定义),建议以十月版为准。
关联笔记:
- 全自动QPCR仪器概要设计
- 全自动QPCR仪器HLD高层设计
- QPCR软件需求信息梳理
- 双激光流式细胞仪下位机CAN通信协议-V0.1.2(流式细胞仪CAN协议,架构相似可对比)