Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
标准的CAMAC Dataway周期(定义于IEC 60516和IEC 61639)在每个微秒周期内传输一个24位数据字,理论吞吐量约为3 MByte/s。实际上,公路上的命令传输开销、机箱控制器解码和状态验证将可持续吞吐量降低到1-2 MByte/s。对于事件率适中(10-100 kHz)且数据负载较小(每个事件几个字)的核物理实验来说,这完全足够。然而,1980年代高亮度加速器、多参数符合实验和成像探测器的出现对更高数据吞吐量提出了需求。
IEC TR 61640通过定义多种块传输技术来应对这一挑战,这些技术将命令和寻址开销分摊到多个数据字上。其核心洞察是:许多数据采集场景涉及从单个模块读取顺序数据(例如多通道ADC读出)或从多个模块读取同一地址(例如扫描机箱中的所有模块)。通过消除冗余寻址,块传输可以比单周期操作更有效地接近原始Dataway带宽。
IEC TR 61640定义了三种主要的块传输模式,每种适用于不同的数据采集模式:
| 模式 | 别名 | 数据源 | 地址变化方式 | 终止条件 |
|---|---|---|---|---|
| Q-Stop | 重复直到Q=0 | 固定模块、固定子地址 | 无(重复同一地址) | 模块撤销Q |
| Q-Scan | 地址扫描 | 顺序子地址 | 自动递增A字段 | Q=0或N=0 |
| 列表顺序 | 命令列表 | 每条命令可变 | 预加载的命令列表 | 列表结束或Q=0 |
Q-Stop是最简单且使用最广泛的块传输模式。公路控制器发出单一命令,指定站号(N)、子地址(A)和功能码(F)。然后机箱控制器重复执行相同的Dataway周期,递增内部字计数器。每个周期后,模块通过置位或撤销Q线来表示是否还有更多数据可用。当Q变为0时,块传输终止。这种模式非常适合从先进先出(FIFO)缓冲区或逐次逼近ADC(数据顺序可用)读取数据。
Q-Scan模式从单个模块内的顺序子地址或多个模块的同一子地址读取数据。机箱控制器在每个Dataway周期后自动递增子地址字段(A0-A3)或站号字段(N1-N5)。这种模式对于读取多通道ADC模块特别有用,其中每个通道映射到不同的子地址。当模块返回Q=0时扫描终止,表示后续地址不再有有效数据。
Q-Scan相对于Q-Stop的主要优势在于它可以读取模块内不同的寄存器位置,而无需为每个位置发送单独命令。然而,Q-Scan比Q-Stop稍慢,因为地址递增逻辑给每个周期增加了微小延迟。
列表顺序是最灵活的块传输模式。公路控制器在内存中准备一个命令列表——一个(N, A, F)三元组数组——然后发起块传输。机箱控制器自动遍历命令列表,执行每条命令并存储或传输产生的数据。这种模式适用于复杂的读出序列,其中不同模块需要不同的功能码或子地址。
IEC TR 61640还解决了CAMAC块传输与主计算机直接内存访问系统的集成问题。在配置了DMA的CAMAC系统中,块传输数据直接从机箱控制器流向主计算机内存,无需CPU干预每个字。标准定义了两种DMA集成方法:
| DMA方式 | 数据路径 | 控制器硬件 | CPU开销 |
|---|---|---|---|
| 公路DMA | 机箱 → 公路 → 主机内存 | 公路接口上的DMA控制器 | 极小(仅初始化) |
| 本地DMA | 机箱 → 本地内存 → 主机(可选) | 机箱控制器中的DMA控制器 | 采集期间为零 |
在公路DMA方法中,主计算机中的公路接口卡包含一个DMA控制器,直接将块数据传送到主机内存。CPU初始化块传输参数(起始地址、字数、源模块),然后DMA控制器处理所有后续数据移动。传输完成或达到编程字数时产生中断。
本地DMA方法将DMA控制器和本地缓冲内存置于机箱控制器本身中。当主计算机距离实验现场较远(例如通过串行公路连接)时,这种方法特别有用,因为它将数据采集的时序与向主机传输数据的时序解耦。机箱控制器可以以全Dataway速度在本地内存中采集完整事件,然后以主机的节奏将事件传输到主机。
使用块传输实现CAMAC系统的最大吞吐量需要关注以下几个工程细节:
| 系统配置 | 持续吞吐量 | 最佳应用 |
|---|---|---|
| 单周期,分支公路 | 0.1–0.2 Mword/s | 控制、监测、慢速控制 |
| Q-Stop,分支公路,DMA | 0.6–0.8 Mword/s | 波形数字化、多参数事件 |
| Q-Scan,分支公路,DMA | 0.4–0.6 Mword/s | 多通道ADC扫描、探测器阵列读出 |
| 列表顺序,本地DMA | 0.5–0.7 Mword/s | 基于触发的复杂读出、混合模块类型 |
| 单周期,串行公路 | 0.02–0.05 Mword/s | 远程监测、分布式传感器 |
在使用DMA的并行分支公路上采用Q-Stop模式,可实现每秒700,000-800,000字的持续吞吐量,对应约2.1-2.4 MByte/s(24位字)。理论最大值(每个微秒1个字,满效率)为1 Mword/s,但实际开销使Q-Stop降低到理论值的约80%,Q-Scan为60-70%。
在Q-Stop模式中,每次字传输后,如果缓冲区中还有更多数据可用,模块置位Q=1。当缓冲区为空或达到编程限制时,模块返回Q=0。机箱控制器在每个周期后监视Q线,并在检测到Q=0时终止块传输。这提供了一个简单的硬件流控制机制。
可以,但性能显著降低。串行公路的5 Mbit/s数据速率将块传输吞吐量限制在每秒约50,000-200,000字(取决于消息格式和开销)。对于需要长距离块传输的应用,通常更可取的做法是使用本地DMA(在机箱控制器中缓冲),然后以较慢的速度将数据传输到主机。
虽然新安装的系统已不再使用CAMAC,但IEC TR 61640仍然具有两方面的意义:(1)许多遗留CAMAC系统在核电站和研究设施中继续运行,理解块传输模式对于维护和故障排除至关重要;(2)该标准中定义的块传输概念(命令列表、硬件流控制、DMA集成)直接影响了现代数据采集架构,为任何设计高吞吐量测量系统的工程师提供了宝贵的工程见解。