Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
原始 CAMAC 并行分支公路定义于 IEC 60516(IEEE 583),使用 66 线并行总线将分支驱动器(通常安装在计算机或主机中)连接到最多七个机箱。每个机箱可容纳最多 23 个插件模块(站号 1-24,站号 25 保留给机箱控制器)。并行分支速度较快(典型数据传输率为每秒 100 万 24 位字),但由于信号偏斜和驱动能力限制,电缆长度限制在约 30 米以内。这一距离限制对于需要将探测器阵列分布在数百米甚至数公里范围的大型物理实验来说是一个严重问题。
IEC TR 61955 通过定义字节串行和位串行公路解决了这一问题,该方案使用少量信号线(通常为 2-4 根同轴电缆或一对光纤),使机箱间距达到数公里,同时每个串行公路最多支持 62 个机箱。串行公路的基本速率为 5 MHz(字节串行)或 1 MHz(位串行),并允许扩展至更高速度。
| 特性 | 并行分支公路(IEC 60516) | 串行公路(IEC TR 61955) |
|---|---|---|
| 最大机箱数 | 7 | 62 |
| 最大电缆长度 | ~30 m | >5 km(使用光纤) |
| 信号线数量 | 66 根并行线 | 2-4 根同轴或 1 对光纤 |
| 数据传输率 | ~100 万词/s(24 位) | ~30 万词/s(字节串行,5 MHz 时钟) |
| 可寻址模块数 | 161(7×23) | 1426(62×23) |
| 错误检测 | 无(可选并行奇偶) | 内置 CRC + 消息重试协议 |
| 控制器类型 | 分支驱动器(A-1 或 A-2) | 串行驱动器 + 串行机箱控制器 |
IEC TR 61955 定义的串行公路系统由三个主要组件组成:串行驱动器(主机接口,通常作为主控计算机所在机箱中的一块 CAMAC 模块)、传输介质(同轴电缆或光纤链路)以及安装在每个远程机箱中的串行机箱控制器。每个串行机箱控制器被分配一个唯一的串行地址(1 至 62),作为串行公路与机箱内部并行数据路之间的桥梁。
消息协议采用命令/响应结构。消息帧以同步模式(16 位)开始,后跟命令字(24 位)、可选数据字(各 24 位)和 CRC-16 校验和(16 位)。串行机箱控制器解码命令,在机箱数据路上执行 CAMAC 周期,并返回包含数据(如果是读操作)和状态信息(X、Q 响应线)的响应消息。标准定义了重试机制:如果串行机箱控制器检测到接收命令中的 CRC 错误,则返回否定应答,串行驱动器自动重传该消息,重试次数可配置。
每个 CAMAC 串行公路命令消息编码了标准 CAMAC 操作参数:N(站地址,1-23)、A(子地址,0-15)、F(功能码,0-31)和C(机箱号,1-62)。24 位命令字的组织方式为:F(4:0) 位表示功能、A(3:0) 位表示子地址、N(4:0) 位表示站号,以及数据方向、消息类型等附加控制位。串行机箱控制器解码此命令并在寻址模块上执行相应的 CAMAC 数据路周期(读、写或控制功能)。
标准还定义了寻址命令(针对特定机箱)、广播命令(由公路上所有机箱同时执行)和系统命令(用于公路初始化、机箱状态轮询和诊断环回测试)。广播命令特别有利于跨多个机箱的同步数据采集 — 单次”LAM(注意信号)清除”广播可以同时重置整个系统中所有中断标志。
IEC TR 61955 实现了在当时相当先进的全面错误检测与恢复方案。CRC-16 多项式(xⁿ⁺ + x⁻⁺ + x² + 1)覆盖包括命令和数据字段在内的整个消息进行计算。接收端串行机箱控制器重新计算 CRC 并与发送的校验和进行比较。CRC 不匹配时,串行机箱控制器发送 NAK 响应,串行驱动器重试传输。标准规定重试次数必须可编程(通常为 3 到 7 次),且持续错误必须作为硬件故障报告给主机系统。
典型的大规模 CAMAC 串行公路系统由分布在设施各处的多个机箱组成,每个机箱包含模数转换器(ADC)、时间-数字转换器(TDC)、鉴别器、定标器和其他物理仪器模块。主控计算机机箱中的串行驱动器启动所有数据传输。报告中定义了三种常见拓扑:菊花链(布线最简单,但单台串行机箱控制器故障会中断整个链路)、星形(每台机箱通过专用线路直接连接到驱动器,需要更多电缆但提供故障隔离),以及冗余环路(两条串行公路以相反方向连接所有机箱,为关键应用中的容错提供路径冗余)。
虽然 CAMAC 已在很大程度上被 VMEbus(IEC 60821)、CompactPCI/PXI 以及更近期的 MTCA.4(用于物理学的微型电信计算架构)等现代标准所取代,但 IEC TR 61955 中定义的串行公路概念影响了核聚变实验(JET、ITER)、高能物理(CERN 实验)以及大型中子和同步辐射设施中分布式数据采集架构的发展。带 CRC 错误校验的命令/响应协议、寻址与广播消息模型以及多点串行总线拓扑是后来标准中采纳和完善的概念。许多 CAMAC 串行公路系统持续运行至 2010 年代,部分至今仍在服役,特别是在核电站监测系统中,漫长的鉴定周期使得更换改造成本高昂。
1. CAMAC 串行公路支持的最大机箱数是多少?
IEC TR 61955 定义的串行公路每路支持最多 62 个机箱。这远多于仅支持 7 个机箱的并行分支公路。地址 63 保留给串行驱动器本身。单个系统可以安装多个串行公路,每个拥有自己的串行驱动器,从而提供几乎无限的扩展能力。
2. CAMAC 串行公路如何处理来自远端机箱的 LAM(注意信号)中断请求?
串行公路中的 LAM 处理使用两种机制。首先,每个串行机箱控制器维护一个 LAM 汇总位,串行驱动器通过”状态扫描”操作轮询该位。其次,标准定义了LAM 梯度模式,其中挂起 LAM 的机箱可以通过二分搜索轮询技术快速识别。这使得驱动器能够以 O(log₂ N) 步而非逐一扫描全部 62 个机箱的方式定位请求机箱,显著降低了大型系统中的中断延迟。
3. CAMAC 串行公路和并行分支公路能否在同一系统中共存?
可以。IEC TR 61955 定义了辅助机箱控制器配置,允许一个机箱同时安装串行机箱控制器和并行分支控制器。两者之间的选择由优先级仲裁方案决定。这使得”混合”系统成为可能 — 靠近主机的本地机箱接入并行分支以获得最高速度,而远程机箱通过串行公路连接。标准提供了详细的时序要求以防止两种控制器之间的总线冲突。
4. CAMAC 串行公路支持哪些数据速率?
标准定义的基本数据速率为字节串行操作 5 MHz 和位串行操作 1 MHz。但标准包括可选的更高速度模式条款,部分专有实现在优化介质上达到了 10-20 MHz。在 5 MHz 字节串行速率下,考虑协议开销和消息帧结构,可实现约每秒 30 万次 CAMAC 操作的吞吐量。相比之下,这约为并行分支公路吞吐量的三分之一,但传输距离要远得多。