4、CT数据采集系统(DAS)设计:探测器阵列与数据读出电路、模拟前端(AFE)与模数转换(ADC)、数据缓存与乒乓操作、采集触发同步机制

好,咱们今天聊点硬核的——CT数据采集系统,也就是DAS。这玩意儿是CT成像的“耳朵”和“嘴巴”。探测器阵列负责“听”到穿过人体的X射线,读出电路和模拟前端负责把微弱的信号“翻译”成电信号,ADC再把它变成数字世界的语言。最后,数据缓存和触发同步机制保证这些数据能整整齐齐地排好队,送到重建系统手里。

我做了这么多年嵌入式,坦白讲,DAS设计是CT系统里最容易出幺蛾子的地方。信号太弱、噪声太大、时序对不上……每一个坑我都踩过。今天咱们就掰开揉碎了讲清楚。

4.1 探测器阵列与数据读出电路

先说说探测器阵列。CT用的探测器,主流是固态探测器,比如闪烁体+光电二极管的组合。X射线打上去,闪烁体发光,光电二极管把光转成电流。这个电流有多小?我告诉你,通常是皮安(pA)级别,也就是10的负12次方安培。你想想看,这比蚊子扇翅膀产生的电流还小。

读出电路的核心任务,就是把这么微弱的电流信号,无损地、快速地读出来。怎么做?

  • 积分放大器:这是标配。把电流对时间积分,变成电压信号。积分时间决定了采样率,也决定了信号幅度。
  • 多路复用:一个探测器模块可能有几百个通道,不可能每个通道配一个ADC。所以要用多路复用器,分时把信号送到ADC。
  • 低噪声设计:这是重中之重。我见过不少团队,探测器选得挺好,结果读出电路噪声太大,信号全淹没了。

关键参数:

  • 动态范围:通常要求80dB以上,才能同时看清骨骼和软组织。
  • 线性度:积分电容的线性度直接影响成像质量。
  • 读出速度:每通道的读出时间,决定了扫描速度。

我个人习惯,在探测器阵列的PCB布局上,会把模拟地和数字地严格分开,中间用磁珠或0欧电阻单点连接。为什么?因为数字信号的高频噪声一旦串进模拟前端,那图像上就是一条条横纹,修都修不好。

4.2 模拟前端(AFE)与模数转换(ADC)

模拟前端,简称AFE,是读出电路和ADC之间的桥梁。它的任务包括:

  • 信号调理:放大、滤波、偏置调整。
  • 增益控制:根据信号强弱自动调整增益,保证ADC输入满量程。
  • 抗混叠滤波:滤除高于奈奎斯特频率的噪声,防止采样后出现假频。

ADC的选择,我建议重点关注三个指标:分辨率、采样率、信噪比(SNR)。

ADC类型 分辨率 采样率 典型应用
逐次逼近型(SAR) 12-18位 几MHz 中速、高精度CT
Σ-Δ型 16-24位 几百kHz 低速、超高精度
流水线型 12-16位 几十MHz 高速CT

嗯,这里要注意。ADC的采样时钟抖动,是CT图像噪声的一个重要来源。我曾经在一个项目中,ADC的时钟源用了普通的晶振,结果图像上出现了明显的“雪花点”。后来换成低抖动时钟芯片,问题才解决。所以,时钟质量千万别省。

避坑指南: 我曾经在AFE和ADC之间加了一级RC滤波,结果发现信号衰减严重。后来才意识到,RC的截止频率设得太低了,把有用信号也滤掉了。正确的做法是,截止频率设为信号最高频率的3-5倍。

4.3 数据缓存与乒乓操作

ADC出来的数据,速率很高。比如一个16位ADC,采样率10MHz,那数据率就是160Mbps。这么高的速率,如果直接往DDR里写,很容易丢数据。怎么办?用乒乓操作。

乒乓操作,说白了就是两个缓冲区轮流干活。一个缓冲区在接收ADC数据,另一个缓冲区在把数据搬走(比如通过DMA写到DDR)。等接收满了,两个缓冲区角色互换。

我画个简单的示意图:

ADC数据流 → 缓冲区A(写) → DMA → DDR
           缓冲区B(读) ← 空闲

等缓冲区A写满:

ADC数据流 → 缓冲区B(写) → DMA → DDR
           缓冲区A(读) ← 空闲

这样做的好处是:

  • 无丢数:ADC数据永远不会因为缓冲区被占用而丢失。
  • 流水线处理:采集和传输可以并行进行,效率翻倍。
  • 降低实时性要求:DMA传输不需要CPU干预,CPU可以干别的活。

我个人习惯,缓冲区大小要按“一个完整扫描周期”来算。比如一次扫描产生1MB数据,那缓冲区至少2MB(两个1MB的乒乓区)。太小了容易溢出,太大了浪费内存。

警告: 乒乓操作的关键是“切换时机”。如果切换早了,数据还没写完;切换晚了,数据已经覆盖了。我建议用硬件标志位(比如FIFO的半满标志)来触发切换,而不是用软件定时器。软件定时器有延迟,容易出问题。

4.4 采集触发同步机制

CT扫描不是一直采的。它需要和旋转机架、X射线脉冲严格同步。触发同步机制,就是保证“该采的时候采,不该采的时候别采”。

常见的触发方式有:

  • 外部硬件触发:由机架上的编码器或位置传感器发出脉冲,DAS收到脉冲后开始采集。
  • 软件触发:由主控CPU发命令,启动采集。这种方式延迟大,不推荐用于高速CT。
  • 混合触发:硬件触发启动,软件控制停止。

我建议用外部硬件触发。为什么?因为CT对时间精度要求极高。机架每转一圈,可能要采集上千个投影。如果触发抖动超过几微秒,重建出来的图像就会模糊。

具体实现上,我会用FPGA来做触发管理。FPGA收到外部触发信号后,立即启动ADC采样,同时产生一个时间戳,记录下这个触发事件。这样,每个采样点都有精确的时间标签,方便后续重建。

同步机制的关键点:

  • 触发信号的电平标准(TTL、LVDS等)要统一。
  • 触发信号的传输路径要短,避免信号反射。
  • 多个DAS模块之间,触发信号要同步分发,保证所有模块同时开始采集。

我记得有一次,客户反映图像有“重影”。排查了半天,发现是触发信号线太长,导致不同DAS模块收到触发的时间差了几个微秒。后来换成差分信号传输,问题解决。所以,触发信号的布线,一定要走等长线,或者用时钟分配芯片。

好了,DAS设计这部分就讲到这里。总结一下:探测器阵列要低噪声,AFE要精准调理,ADC要选对类型,乒乓操作要保证不丢数,触发同步要精确到微秒级。每一步都马虎不得。下一章咱们聊聊CT图像重建的嵌入式实现,那又是另一番天地了。