IEC 61958:核仪器 — CAMAC 单机箱多控制器系统

✅ 标准速览
IEC 61958(2000)规定了在单个 CAMAC 机箱中同时运行多个机箱控制器的系统要求和运行模式。IEC 60516(IEEE 583)中定义的标准 CAMAC 架构假设只有一个机箱控制器作为机箱数据路的唯一主控设备。然而,随着 1980-1990 年代数据采集系统日益复杂,出现了需要多个处理器同时访问同一机箱中模块的应用场景 — 例如,主控制器处理在线数据采集,同时辅助控制器执行诊断读出或校准序列而不中断主数据流。IEC 61958 定义了优先级仲裁机制、总线访问协议和时序要求,使最多 8 台控制器能够可靠地共享单个 CAMAC 机箱总线。该标准与 IEEE 675(CAMAC 机箱中的多控制器)密切相关。

🔌 一、多控制器架构

1.1 多控制器的应用动机

基本 CAMAC 的单机箱控制器模型适用于简单的数据采集,但在几个重要场景中存在局限性。在双端口内存应用中,一台控制器将数据写入内存模块,而第二台控制器读取数据以供传输,避免了单控制器的数据缓冲瓶颈。在在线/离线处理中,一台控制器以完整触发率处理实时数据采集,而第二台控制器执行较慢的分析、直方图绘制或数据压缩,不占用实时处理周期。在诊断和校准系统中,维护控制器可以在主数据采集控制器继续正常运行的同时,访问机箱中任何模块进行测试和校准。在多实验配置中,两个独立实验可以共享一个机箱模块,每个实验由其自己的机箱控制器控制,仅访问分配给它的一组模块。

IEC 61958 通过定义 CAMAC 数据路上冲突解决和控制器切换的标准协议,将这些用例正式化。没有这一标准化,多控制器实现将是专有的、在不同制造商之间不兼容的。该标准使得可以从不同供应商的组件组装多处理器 CAMAC 系统成为可能,大幅扩展了 CAMAC 的应用范围。

参数 单控制器(IEC 60516) 多控制器(IEC 61958)
最大控制器数 1 8
控制器优先级分配 不适用(仅一台控制器) 硬件决定优先级(1 = 最高,8 = 最低)
数据路主控权转移时间 不适用 <1 µs(数据路周期之间)
控制器寻址 站 25(固定) 站 25 + 每台控制器的 N 开关设置
控制器间通信 不适用 通过机箱数据路或专用控制线
LAM(中断)处理 单 LAM 分级器 共享 LAM 分级器,带控制器特定屏蔽
典型模块访问吞吐量 每个 CAMAC 周期约 1 µs 每个 CAMAC 周期约 1 µs(无争用时无额外开销)
💡 工程直觉
多控制器 CAMAC 系统中技术上最具挑战性的方面是数据路总线仲裁时序。CAMAC 数据路是同步总线,S1 和 S2 选通脉冲以固定间隔发生(通常在命令放置后 300 ns)。当多台控制器共享总线时,主控权从一台控制器转移到另一台控制器必须在周期间间隙内完成 — 即一个周期的 S2 选通与下一周期的命令放置之间的时段。IEC 61958 规定此传输必须在 400 ns 内完成。在 1970 年代的 TTL 逻辑时代实现这一点是一项重大的工程挑战,需要专用的优先级解析硬件、集电极开路总线驱动器和精心设计的总线终端。该标准的时序规范来源于满载 25 站机箱背板上最坏情况下的传播延迟。

1.2 控制器类型与优先级方案

IEC 61958 定义了两种基本类型的机箱控制器:主控制器(在某些文献中也称为”A”型控制器),具有最高优先级,通常是主数据采集控制器;以及辅助控制器(”B”型),具有较低优先级,承担诊断监测、校准或数据压缩等特定功能。主控制器可以在总线空闲时随时断言数据路的主控权。辅助控制器必须请求主控权并等待主控制器授予访问权限。优先级由机箱中的位置(站号)决定 — 在配置为控制器的站中,编号最低的站中的控制器具有最高优先级。这种硬件决定的优先级方案确保确定性行为,无需软件配置。

标准还定义了优先级中断(PI)机制,允许高优先级控制器通过断言数据路上的 BUSY 线在数据块传输过程中抢占低优先级控制器。低优先级控制器必须在检测到 PI 请求后的一个 CAMAC 周期内交出总线。这使时间关键型操作 — 例如在其内部采样保持电容开始衰减之前读取 ADC — 能够在优先级上优于不那么时间敏感的操作。

⚠️ 二、数据路仲裁与访问协议

2.1 总线请求与授予序列

IEC 61958 定义的数据路仲裁协议采用分布式菊花链方式。每台控制器有一个专用的总线请求(BRQ)输出和一个总线授予(BGT)输入,通过机箱背板上的菊花链从最高优先级站连接到最低优先级站。当控制器需要访问数据路时,它断言其 BRQ 线。总线授予信号从最高优先级控制器开始向下传播。每台控制器如果有挂起的总线请求则阻止授予信号通过;否则,将授予信号传递给链中的下一台控制器。收到授予信号且有挂起请求的控制器成为总线主控,可以开始 CAMAC 周期。

IEC 61958 规定通过每台控制器的总线授予传播延迟不得超过 25 ns,确保完整的仲裁周期(授予链中最多 8 台控制器)在数据路周期间间隙内完成。标准还定义了公平机制 — 刚刚完成数据路周期的控制器必须等待至少一个空闲周期才能重新断言其总线请求,防止单个高优先级控制器无限期独占数据路。

2.2 控制器间通信

在多控制器机箱中,控制器经常需要交换状态信息、同步信号和数据。IEC 61958 定义了多种控制器间通信机制。共享内存方法使用标准 CAMAC 内存模块(通常为 24 位宽 RAM 模块),任何获得总线主控权的控制器都可以访问该模块。邮箱寄存器方法使用专用的控制器寄存器,这些寄存器表现为 CAMAC 站,可被其他控制器读写。标准还定义了用于控制器间中断信令的LL(注意锁定)机制,一台控制器可通过写入特定控制寄存器向另一台控制器生成 LAM。

⚠️ 设计警告
多控制器 CAMAC 安装中最常见的问题是总线终端不当导致的总线争用。当多达八台控制器共享数据路时,背板上的总容性负载可能超过 500 pF,如果总线未在两端正确端接,会导致信号反射和时序违规。IEC 61958 规定数据路必须在背板每端用 100 Ω 端接到 +2 V。现场经验表明,许多为单控制器操作设计的商用 CAMAC 机箱只有一个终端器或根本没有。配置多控制器系统的工程师必须验证数据路两端都安装了正确的终端器。第二个常见问题是多台控制器在主控权交接期间同时驱动数据线时背板上的地弹。建议在机箱背板内使用独立模拟和数字接地平面,并在单点连接,以实现可靠的多控制器操作。

📈 三、工程应用与系统集成

3.1 双端口内存与流水线数据采集

IEC 61958 所实现的最强大应用之一是使用双端口内存模块的流水线数据采集。在此配置中,控制器 A(主控制器,最高优先级)在束流门期间从 ADC 模块读取数据,并将其写入双端口 CAMAC 内存模块。控制器 B(辅助控制器)在束流间隔期间从内存模块的另一端口读取数据,进行处理(格式化、压缩、直方图绘制),并通过单独的链路发送到主机计算机。这种流水线架构使有效数据吞吐量翻倍,相比之下,单控制器系统中控制器必须在读取 ADC 和向主机传输数据之间交替进行。双端口内存模块本身是一块 CAMAC 模块,在数据路上表现为两个逻辑设备,每个有自己独立的 N、A 地址,由不同控制器在不同时间槽访问。

3.2 冗余与容错配置

另一个重要应用是用于安全关键核仪器的冗余数据采集。在冗余配置中,两台相同的机箱控制器以”热备用”模式运行。主控制器处理所有正常数据采集。备用控制器通过控制器间通信寄存器和数据路活动线监测主控制器的活动。如果主控制器发生故障(通过看门狗定时器或心跳信号检测),备用控制器在一个周期间间隙内(小于 1 微秒)接管数据路主控权,确保故障切换期间不丢失数据。这种容错水平对于核反应堆安全监测系统和加速器束流损失监测系统至关重要,因为未检测到的控制器故障可能导致严重后果。

💡 工程直觉
对于构建多控制器 CAMAC 系统的集成商来说,关键的工程决策围绕控制器分配和 LAM 分布展开。机箱中的每个 CAMAC 模块在数据路 LAM 线上生成 LAM 中断。在单控制器系统中,所有 LAM 都路由到一台控制器。在多控制器系统中,必须仔细规划 LAM 分配:哪台控制器处理哪些模块的中断?IEC 61958 定义了 LAM 分级器,这是一种特殊的 CAMAC 模块,收集来自站 1-24 的所有 24 条 LAM 线,并根据屏蔽寄存器将其路由到适当的控制器。分级器可以编程将某些 LAM 专门导向某些控制器。一个常见错误是在不考虑服务延迟的情况下配置 LAM 分配 — 执行长数据块传输的控制器可能无法及时处理分配给它的 LAM,导致数据溢出。对于高计数率应用,推荐的架构是使用专用高优先级控制器处理时间关键的 LAM 服务,使用独立的控制器进行数据读出和数据处理。

❔ 常见问题

1. 根据 IEC 61958,单个 CAMAC 机箱中可以运行多少台控制器?

该标准支持单个 CAMAC 机箱中最多 8 台控制器。控制器占用数据路上的站号(主控制器通常占用站 25,辅助控制器占用相邻站)。每台控制器必须具有由其物理位置在菊花链授予线中的位置决定的唯一优先级分配,该授予线从最高优先级站到最低优先级贯穿背板。

2. 两台控制器能否同时访问同一 CAMAC 模块?

不能。CAMAC 数据路是单主控总线 — 在任何时刻只有一台控制器可以是数据路的主控,因此一次只有一台控制器可以访问任何模块。然而,通过 IEC 61958 中定义的双端口内存模块,两台控制器可以有效地访问同一数据集(但并非同时访问完全相同的内存位置),方法是使用具有两个独立数据路端口的内存模块。两个端口之间的仲裁在双端口内存模块内部处理。

3. 多台控制器同时请求总线时,优先级仲裁如何工作?

优先级仲裁使用硬件菊花链机制。总线授予信号从最高优先级位置开始,按顺序通过每台控制器传播。如果某台控制器有挂起的总线请求,它会阻止授予信号继续传播,从而声明主控权。如果两台控制器同时请求总线,则更靠近授予链起点(即编号较小的站)的控制器获胜。仲裁在 400 ns 内完成,适合数据路周期间间隙,确保不损失总线吞吐量。

4. CAMAC 多控制器系统的现状如何?是否仍在运行?

多控制器 CAMAC 系统在 1980 年代中期至 2000 年代期间被广泛应用于大型物理实验室(CERN、费米实验室、布鲁克海文、KEK)和核电站。虽然大多数新装系统已迁移到 VMEbus、CompactPCI 或 MTCA.4,但许多多控制器 CAMAC 系统仍在运行。IEC 61958 标准化的概念 — 特别是带菊花链优先级的多主控总线仲裁双端口共享内存分布式中断处理 — 直接影响了 VMEbus 多处理器系统(IEC 60821)的设计,并在现代总线标准中得到体现。CAMAC 实现在当时仍然是一个设计良好的实时数据采集多主控总线协议的参考范例。

© 2026 TNLab

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注