FPGA通信协议变更说明

液相芯片检测系统中 PC / FPGA / 中位机 三者通信协议的变更文档。 版本:V1.0 修订6次 | 编制:国科医疗软件工程部 | 2019年6月

一、变更概述

本文档描述液相芯片检测系统 FPGA 通信协议相对于原协议的6项变更,涉及:

  • PC ↔ FPGA:USB 通信,12 条指令
  • 中位机 ↔ FPGA:串口通信,2 条指令

二、PC ↔ FPGA(USB 通信)变更

2.1 指令集变更

  • 指令总数:12 条(与原协议一致,数量不变)
  • 核心变更:“启动采集” 指令 → 更名为 “实时采集”
    • 指令码:0x02 → 0x05
    • 功能不变:在校准时实现实时数据采集

2.2 数据帧长度

  • “启动采集”、“读取采集” 返回数据帧:512 字节
  • 其它所有指令返回数据帧:与下发指令长度一致,统一为 32 字节

2.3 帧类型精简

保留的帧类型(已实现):

  • 命令帧
  • 应答帧
  • 数据帧
  • 结果帧

未实现(FPGA 不会返回):

  • 警告信息帧
  • 主动上传帧

2.4 数值格式

  • FPGA 实现困难,取消 0-99 十进制限制
  • 通信指令直接使用正常 16 进制,无需换算为十进制收发

三、中位机 ↔ FPGA(串口通信)变更

3.1 指令集

  • 指令总数:2 条(与原协议一致)
  • 具体指令见文档图 2(antiword 提取为 [pic] 占位,图表未提取到文字)

3.2 帧类型精简

保留的帧类型(已实现):

  • 命令帧
  • 应答帧
  • 结果帧

未实现(FPGA 不会返回):

  • 数据帧
  • 警告信息帧
  • 主动上传帧

四、三大通信流程详解

4.1 样本检测 / 质控检测通信过程

用到指令:串口”采集保存” + USB”读取数据”

步骤方向动作
1PC → 中位机发送”样本检测/质控检测”指令,中位机完成加样/温育/清洗/上样
2—打开鞘液泵/样品泵,样本通过流动池开始计数
3中位机 → FPGA发送”采集保存”指令 → FPGA 返回应答帧 → 按停止条件采集并保存微球数据 → 返回结果帧
4中位机 → PC发送”数据准备好”指令,同时关闭鞘液泵/样品泵
5PC → FPGA发送”读取数据”指令 → FPGA 返回应答帧 → 返回数据帧 → 返回结果帧

数据帧格式:

  • 帧头:fa,帧尾:fb
  • 每帧包含 14 个微球的数据
  • 总长度 512 字节,不足部分以 de ad 无效字符填充

4.2 校准通信过程

用到指令:USB”实时采集” + “停止采集”

步骤方向动作
1PC → 中位机发送”启动校准”指令,中位机完成加样等操作并上样校准品
2—打开鞘液泵/样品泵,样本通过流动池开始计数
3PC → FPGA发送”实时采集”指令 → FPGA 返回应答帧 → 持续发送数据帧(无结果帧)
4PC → FPGA发送”停止采集”指令 → FPGA 返回应答帧 → 上传缓存中剩余的 9 帧数据 → 返回结果帧
5PC → 中位机发送”停止校准”指令
6—中位机关闭鞘液泵/样品泵,停止校准品上样

注意:“实时采集”指令没有对应的结果帧,因为 FPGA 会持续发送数据帧。

4.3 握手 / 设置 / 查询 / 测试通信过程

其它 USB 指令(8 条):

指令类型说明
通信握手握手连接确认
自检测试FPGA 进入回环自测模式,不从 AD 采集,软件生成虚拟测试数据
复位控制退出回环自测模式,恢复正常测量模式
设置通道增益设置—
设置通道阈值设置—
设置停止条件设置—
读取通道增益查询—
读取通道阈值查询—
读取停止条件查询—

自检 / 复位机制:

  • 发送”自检” → 进入回环自测模式(数据为 FPGA 虚拟生成,非 AD 实测)
  • 回环模式下仍可使用”读取数据”、“实时采集”、“停止采集”获取虚拟数据
  • 发送”复位” → 退出回环,恢复正常测量模式
  • 每次进入回环都需要重新发送”自检”指令

五、与其他文档的关联