
1. 项目概述与核心价值在汽车电子和工业控制领域当工程师们谈论FlexRay时往往聚焦于其高带宽、确定性和容错能力。然而真正让这些特性落地的是通信控制器Communication Controller, CC内部那一系列精密如瑞士钟表般的寄存器。这些寄存器是协议栈的“神经末梢”每一个比特位的设置都直接决定了节点如何感知时间、如何调度消息、如何响应异常。如果说FlexRay协议规范是宪法那么这些寄存器就是具体的法律法规和执法机构。我接触过不少项目初期网络不稳定、节点同步失败、调试信息难以捕捉追根溯源问题往往出在对寄存器配置的理解偏差上。特别是停止监视寄存器Stop Watch和全局时间单元Global Time Unit, GTU配置寄存器它们是诊断网络“健康”和定义网络“心跳”的核心。停止监视寄存器就像给高速运行的FlexRay网络装上了一台高速摄影机。当特定事件如一个关键中断触发或一个外部信号到来发生时它能瞬间“冻结”时间记录下那一刻的精确“快照”——包括当前的通信周期号、宏节拍Macrotick值以及两个通道各自的时隙Slot计数器值。这对于调试偶发的时序违规、分析总线竞争、验证同步精度来说是无价之宝。而全局时间单元配置寄存器则是构建整个网络时间体系的基石。它定义了通信周期有多长多少微节拍、一个周期被划分成多少个宏节拍、以及每个通道的初始时间偏移。这些参数配置不当轻则导致网络无法启动重则引发间歇性通信故障。理解它们是进行任何FlexRay节点开发、网络集成和深度优化的必修课。本文将从一线工程师的视角掰开揉碎地讲解这些关键寄存器不仅告诉你每个位是干什么的更会分享在实际配置中“为什么”要这么设以及踩过哪些坑。2. 停止监视寄存器STPW1/STPW2深度解析与实战应用停止监视功能是FlexRay通信控制器提供的一个强大的调试和诊断工具。它的核心思想很简单在某个你关心的事件发生时立刻捕获并锁存当前的时间状态信息。这个“事件”可以是软件触发、内部中断也可以是外部引脚上的一个边沿信号。2.1 STPW1寄存器控制与状态捕获STPW1寄存器偏移地址0x4C是停止监视功能的总控制台和第一部分数据记录仪。它的位域可以分为控制区和状态区。控制区位0-7这部分决定了“快门”何时按下。ESWT位0外部停止监视触发使能。这是总开关之一。只有当它被置1时外部触发引脚如果芯片支持或内部中断事件EINT0/EINT1才能使能停止监视功能。一个常见的误区是只设置了EINT0/1却忘了打开ESWT导致功能失效。在单次模式SWMS0下一次捕获事件发生后该位会自动清零防止重复触发。SWMS位1停止监视模式选择。这是关键配置项。0单次模式。事件触发一次捕获一次数据然后功能自动禁用ESWT可能清零取决于触发源。适用于捕获特定、偶发的事件。1连续模式。事件可以重复触发每次都会更新STPW1和STPW2寄存器中的值。适用于监控周期性事件或连续监测。注意在连续模式下读取捕获值时要小心因为数据可能在读取过程中被新事件覆盖。通常建议在读取前先禁用触发或采用缓存机制。EDGE位2触发边沿选择。当使用外部触发引脚时此位决定是上升沿1还是下降沿0有效。务必根据实际硬件连接和信号特性来配置否则可能无法捕获。SSWT位3软件停止监视触发。这是一个非常实用的功能。当ESWT0时主机可以通过写1到此位来手动触发一次停止监视。捕获完成后硬件会自动将此位清零。这为软件主动打点、标记特定代码执行时刻提供了可能。手册中特别强调ESWT和SSWT不能同时为1否则写操作会被忽略。EETP位4使能外部触发引脚。如果芯片支持专用的停止监视外部引脚需要将此位置1以使能该引脚的功能。需要查阅具体芯片的数据手册来确认此功能是否可用。EINT0/EINT1位5和位6使能中断0/1触发。当ESWT1时这些位分别控制是否允许通信控制器内部产生的中断0CC_int0或中断1CC_int1事件来触发停止监视。这允许你将停止监视与特定的通信事件如特定消息缓冲区传输完成、错误中断等关联起来。状态区位8-29这部分是“快照”的第一部分。SCCV[5:0]位13-8停止的周期计数器值。记录事件发生时通信周期计数器Cycle Counter的值0-63。这是判断事件发生在哪个通信周期内的关键。SMTV[13:0]位29-16停止的宏节拍值。记录事件发生时宏节拍计数器Macrotick Counter的值0-16000对应0x3E80。这提供了周期内的精确时间位置精度达到一个宏节拍。操作流程与心得初始化首先根据你想捕获的事件类型配置控制位。例如想用中断1触发单次捕获则设置ESWT1 SWMS0 EINT11。等待与捕获当配置的中断1事件发生时硬件自动将当前的SCCV和SMTV锁存到STPW1中。读取数据在中断服务程序或主循环中读取STPW1中的SCCV和SMTV以及STPW2中的时隙计数器值。软件触发如果想在代码某处手动标记先确保ESWT0然后写SSWT1。完成后SSWT会自动清零此时即可读取捕获的时间戳。注意读取STPW1/2寄存器的时机很重要。在连续模式下数据可能变化。一种稳妥的做法是在读取前先暂时禁用触发清零ESWT读完后再恢复。另外SCCV和SMTV的组合才能唯一确定一个时间点需要结合全局时间单元配置的周期长度来换算成绝对时间如微秒。2.2 STPW2寄存器通道时隙信息捕获STPW2寄存器偏移地址0x50是“快照”的第二部分专门捕获事件发生时两个通道的时隙计数器状态。SSCVA[10:0]位10-0停止监视捕获的通道A时隙计数器值。范围0-20470x7FF。它告诉你事件发生时通道A正处在哪个静态或动态时隙期间。SSCVB[10:0]位26-16停止监视捕获的通道B时隙计数器值。范围0-20470x7FF。实战意义这两个值对于分析双通道调度问题至关重要。例如你可以设置当“传输冲突错误”中断触发时启动停止监视。捕获后通过SSCVA和SSCVB你就能精确知道错误发生时两个通道各自正在处理哪个时隙的消息从而快速定位是哪个节点的哪个消息槽配置可能存在问题或者是否是通道间干扰导致的。一个典型的调试场景网络中出现零星的消息丢失。你怀疑是某个节点在特定时隙的传输偶尔超出了时间窗。你可以配置停止监视由“传输错误中断”或“外部GPIO在消息发送前后由软件触发”触发。捕获多次事件后分析SCCV、SMTV和SSCVA/B绘制出事件发生的时序图很可能就会发现其与特定周期、特定时隙的相关性从而将问题范围从整个网络缩小到某个节点的某个具体行为上。3. 全局时间单元GTU配置寄存器构建网络的时间基石如果说停止监视是诊断工具那么GTU配置寄存器就是定义FlexRay网络生命节奏的基因序列。所有节点必须就这些参数达成严格一致网络才能同步运行。3.1 GTUC1定义通信周期的基本长度GTUC1寄存器偏移地址0xA0只有一个核心参数UT[19:0]每个通信周期的微节拍数。范围0x280 (640) 到 0x9C400 (640,000) 微节拍。如何计算和配置微节拍µT是FlexRay网络中最基本的时间单位其实际时长由通信控制器的输入时钟例如80MHz系统时钟和预分频器决定。一个通信周期的长度T_Cycle由UT和微节拍时长T_µT共同决定T_Cycle UT * T_µT。例如一个典型的10Mbps FlexRay网络比特时间bit time为100ns。根据协议1个宏节拍MT通常对应2个或更多微节拍而一个静态时隙Static Slot包含几个宏节拍。假设我们设计一个周期长度为5ms的网络且T_µT 25ns由80MHz时钟和特定分频得出。那么UT T_Cycle / T_µT 5ms / 25ns 200,000。 将十进制200,000转换为十六进制即0x30D40。这个值就需要写入GTUC1的UT位域。配置心得先算后配务必在纸上或配置工具中先根据网络需求周期长度、静态/动态段比例、时隙数量等计算出所有时间参数再填写寄存器。盲目填写必然导致网络无法启动。范围校验UT的值必须在0x280到0x9C400之间。过小会导致周期时间精度不够过大可能超出计数器范围或导致性能问题。集群一致这是铁律网络中所有节点的UT值必须完全相同。通常由系统架构师或网络设计者给出这个值所有节点开发者严格遵循。3.2 GTUC2划分周期内的宏节拍GTUC2寄存器偏移地址0xA4定义周期内的宏观结构。MPC[13:0]每个通信周期的宏节拍数。范围0xA (10) 到 0x3E80 (16000) 宏节拍。SNM[3:0]同步节点最大数量。范围0x2到0xF。它定义了集群中允许发送同步帧SYN位为1的节点的最大数量。这个值用于时钟同步的容错计算。MPC与UT的关系T_Macrotick T_Cycle / MPC (UT * T_µT) / MPC因此宏节拍的时长T_MT也必须是所有节点一致的关键参数。MPC的配置决定了静态段和动态段能容纳多少“时间格子”。每个静态时隙会占用固定数量的宏节拍gdStaticSlot每个最小动态时隙Minislot也占用固定数量的宏节拍gdMinislot。配置流程示例 延续上面的例子T_Cycle 5ms。假设我们设计每个宏节拍T_MT 1µs。那么MPC T_Cycle / T_MT 5ms / 1µs 5000。 十进制5000的十六进制是0x1388在有效范围内。 接下来你需要根据消息数量和实时性要求决定静态段占用多少宏节拍gdStaticSlot * NumberOfStaticSlots动态段占用多少宏节拍gdMinislot * NumberOfMinislots它们的总和应小于等于MPC。静态段必须从周期开始处连续分配。关于SNM的陷阱 SNM不是实际同步节点的数量而是一个上限值。例如你配置SNM4意味着网络设计最多允许4个节点发送同步帧。即使实际只有2个同步节点也必须配置为4。如果实际同步节点数超过SNM时钟同步算法可能会出错。这个值也需要集群内所有节点严格一致。3.3 GTUC3通道时间偏移校准GTUC3寄存器偏移地址0xA8用于微调两个通道之间的时间关系是解决通道间细微时钟偏差的关键。MIOA[6:0] / MIOB[6:0]通道A/B的宏节拍初始偏移单位宏节拍。范围0x2到0x48。这个偏移是相对于“静态时隙边界”到下一个“宏节拍边界”的偏移。所有节点必须相同。UIOA[7:0] / UIOB[7:0]通道A/B的微节拍初始偏移单位微节拍。范围0x0到0xF0。这个偏移是通道实际的“时间参考点”到上述“宏节拍边界”的微调量。每个通道需要独立设置通常用于补偿物理层传输延迟的不对称性。为什么需要两个偏移想象一下网络中有两个节点它们各自的晶体振荡器频率有微小差异。虽然通过FlexRay的时钟同步算法基于同步帧可以纠正宏观上的时钟漂移但两个通道A和B的信号在PCB板上的走线长度可能不同导致信号到达控制器引脚的时间有纳秒级的差异。MIO提供了粗调宏节拍级UIO提供了精调微节拍级。通过配置UIOA和UIOB可以对齐两个通道在本地控制器视角下的时间基准确保双通道操作的正确性。配置实战MIOA/MIOB通常由网络设计统一规定一个值例如2个宏节拍所有节点照此配置。UIOA/UIOB这往往需要在硬件板卡制作完成后通过示波器或专业的FlexRay分析仪进行测量和校准。测量方法通常是发送一个测试帧测量两个通道上同一信号边沿如帧起始序列到达的时间差然后将这个时间差换算成微节拍数配置到UIO寄存器中。这个过程是硬件依赖的每块板子可能都需要单独校准。4. 关键控制寄存器SUCC1配置精讲SUCC1寄存器偏移地址0x80是通信控制器的“大脑”控制着节点的基本行为模式、启动属性和命令接口。4.1 节点连接与工作模式配置CCHA / CCHB位26, 27连接通道A/B。这必须与硬件实际连接情况一致。如果节点是单通道的只连接了A通道那么必须设置CCHA1, CCHB0。如果配置错误例如未连接的通道被使能控制器可能会在总线上产生错误电平或无法正确接收信号。TSM位22传输时隙模式。1单一时隙模式默认。节点只能在预配置的“关键时隙”Key Slot通常由消息缓冲区0的ID定义中发送消息。这是启动和集成阶段使用的模式安全性高。0全时隙模式。节点可以在所有配置给它使用的时隙中发送消息。节点成功启动并集成到网络后主机可以通过发送ALL_SLOTS命令CMD0101将其切换到全时隙模式以发挥其全部通信能力。HCSE位23时钟同步错误时暂停。这是一个重要的安全特性。0发生时钟同步错误时节点进入或保持在NORMAL_PASSIVE状态只监听不发送。1发生时钟同步错误时节点进入HALT状态完全停止通信活动。在要求高可用性的系统中通常设置为0让节点在出错后降级运行而非完全宕机。在安全苛求Safety-Critical系统中可能需要根据安全机制设置为1立即停止可能不安全的通信。4.2 启动与同步关键参数PTA[4:0]位20-16被动到主动转换阈值。定义节点需要连续观察到多少个“偶数/奇数周期对”具有有效的时钟校正项后才被允许从NORMAL_PASSIVE状态转换到NORMAL_ACTIVE状态。设置为0则禁止转换。这个参数增加了状态转换的迟滞防止节点因短暂的同步质量波动而频繁在主动和被动模式间切换增强了网络稳定性。CSA[4:0]位15-11冷启动尝试次数。配置一个冷启动节点在未收到任何其他节点有效响应的情况下尝试启动网络的最大次数。所有节点必须设置相同的值。如果尝试次数用完仍未成功冷启动节点将放弃启动。TXSY / TXST位9, 8关键时隙传输同步帧/启动帧。TXSY1该节点是同步节点会在其关键时隙发送同步帧。TXST1该节点是冷启动节点或跟随冷启动节点会在其关键时隙发送启动帧。协议要求对于冷启动节点必须同时设置TXSY1和TXST1。对于仅同步的非冷启动节点则设置TXSY1,TXST0。对于普通节点既不冷启动也不发送同步帧两者都设为0。4.3 控制器主机接口CHI命令详解CMD[3:0]是主机控制通信控制器协议操作控制POC状态机的接口。在发送任何命令前必须检查PBSY位7是否为0确保POC不忙。核心命令流程与避坑指南上电/复位后控制器处于DEFAULT_CONFIG状态。首先主机需要配置所有必要的寄存器SUCC1, SUCC2, SUCC3, PRTC1, PRTC2, MHDC, GTUC1, GTUC2, GTUC3等。这些寄存器只能在DEFAULT_CONFIG或CONFIG状态下写入。进入CONFIG状态写CMD 0x1(CONFIG)。成功后POC状态变为CONFIG。此时可以配置消息缓冲区等更多参数。进入READY状态写CMD 0x2(READY)。控制器等待唤醒或启动。启动网络如果是冷启动节点TXST1在READY状态下当满足条件如唤醒模式后主机可以写CMD 0x4(RUN)控制器进入STARTUP状态并开始发送启动帧。如果是非冷启动节点它会监听总线等待接收到的启动帧和同步帧自动完成集成进入NORMAL_ACTIVE或NORMAL_PASSIVE状态。运行中命令ALL_SLOTS (0x5)在NORMAL_ACTIVE/PASSIVE状态下将节点从单一时隙模式切换到全时隙模式。SEND_MTS (0x8)在NORMAL_ACTIVE状态下请求在下一周期的符号窗口Symbol Window发送一个媒体访问测试MTS符号。需要提前在SUCC1中配置MTSA/MTSB选择通道。HALT (0x6)请求在下一周期结束时进入HALT状态。FREEZE (0x7)立即进入HALT状态并设置冻结状态指示器FSI。这是一个紧急停止命令。最重要的注意事项命令有效性每个命令只在特定的POC状态下有效。在错误状态下发送命令会导致CMD被重置为0x0(command_not_accepted)并触发CNA错误中断。务必参考状态机图或手册中的表格来发送命令。PBSY标志在写CMD之前必须读取SUCC1并检查PBSY位。如果PBSY1表示控制器正在处理上一个命令或内部操作如清理RAM此时写入CMD是无效的。一个健壮的驱动代码应该包含对PBSY的轮询等待。CLEAR_RAMS命令这个命令CMD0xC只能在DEFAULT_CONFIG或CONFIG状态下使用。它会初始化所有内部RAM过程需要2048个VBUS时钟周期。在此期间绝对不能访问输入/输出缓冲区IBF/OBF或消息RAM否则可能导致数据损坏或硬件异常。执行此命令前务必确保没有正在进行的数据传输。5. 其他关键配置寄存器精要除了上述核心寄存器其他配置寄存器共同塑造了网络的物理层和行为层特性。5.1 协议时序相关寄存器PRTC1/PRTC2这些寄存器配置与总线物理信号相关的时序所有节点必须严格一致。PRTC1BRP[1:0]波特率预分频。根据80MHz采样时钟选择10Mbps、5Mbps或2.5Mbps。SPP[1:0]采样点位置。FlexRay协议v2.1规定必须使用00第5个采样点。其他设置可用于补偿非对称的物理层延迟但需谨慎。TSST[3:0]传输开始序列TSS长度。这是帧开始前的一段低电平用于同步。必须集群一致。CASM[6:0]冲突避免符号CAS最大窗口。定义识别CAS符号的时间上限。RXW[8:0]唤醒符号接收窗口长度。节点用此时间来检测接收到的唤醒模式是否有效。RPW[5:0]唤醒模式重复发送次数。PRTC2TXL[5:0]/TXI[7:0]发送唤醒符号的低电平和空闲相位时长比特时间。RXL[5:0]/RXI[5:0]接收唤醒符号时用于检测低电平和空闲相位的时长。关键点PRTC2的参数定义了唤醒符号的“形状”发送和接收节点必须对此有完全一致的理解否则唤醒过程会失败。这些时间参数通常由系统级设计给出。5.2 消息处理与网络管理寄存器MHDCSFDL[6:0]静态帧数据长度。集群内所有节点必须相同。它定义了静态段中所有帧的负载长度以双字节为单位。即使某个静态时隙的消息实际数据没这么多帧结构也会按此长度发送不足部分填充。SLT[12:0]最晚发送起始点。定义了动态段中允许开始新帧传输的最晚最小动态时隙Minislot编号。用于限制动态段消息的传输防止其溢出到下一个静态段。NEMCNML[3:0]网络管理向量长度字节。配置网络管理NM报文的长度。同样需要集群内所有节点一致。5.3 监听与容错寄存器SUCC2/SUCC3SUCC2LT[20:0]监听超时基准值微节拍。LTN[3:0]监听超时噪声乘数。计算公式Wakeup/Startup Timeout LT * (LTN 1)。这个超时决定了节点在启动或唤醒阶段等待有效总线活动的最长时间。如果超时仍未检测到有效活动启动/唤醒过程会失败。必须集群一致。SUCC3WCP[3:0]最大无时钟校正被动阈值。定义连续缺失时钟校正项的“偶数/奇数周期对”数量达到此值后节点从NORMAL_ACTIVE降级到NORMAL_PASSIVE。WCF[3:0]最大无时钟校正致命阈值。定义连续缺失时钟校正项的“偶数/奇数周期对”数量达到此值后如果SUCC1.HCSE1节点进入HALT状态。作用这两个参数是时钟同步的容错机制。允许时钟同步在短暂丢失后恢复避免因瞬时干扰导致节点不必要的状态切换。必须集群一致。6. 寄存器配置实战流程与排错指南理解了每个寄存器后如何系统地进行配置和调试6.1 标准配置流程硬件复位后控制器处于DEFAULT_CONFIG状态。所有配置寄存器恢复为复位值。基础网络参数配置 a. 配置GTUC1/2/3设定网络的时间基石周期、宏节拍、偏移。 b. 配置PRTC1/2设定物理层时序波特率、唤醒、TSS等。 c. 配置SUCC2/3设定监听超时和时钟同步容错。 d. 配置MHDC设定静态帧长度和最晚发送点。 e. 配置NEMC设定网络管理向量长度。以上所有步骤中凡是标注“必须集群一致”的参数必须使用网络设计文档中规定的统一值。节点特性配置SUCC1 a. 设置CCHA/CCHB匹配硬件连接。 b. 设置TXSY/TXST定义节点角色冷启动、同步、普通。 c. 设置TSM、HCSE、PTA、CSA等定义节点行为模式。进入CONFIG状态写CMD0x1 (CONFIG)。等待PBSY清零确认。配置消息缓冲区在CONFIG状态下配置消息缓冲区的ID、长度、数据区指针、控制位等。进入READY状态写CMD0x2 (READY)。此时节点已准备好等待总线活动或主机启动命令。启动与集成冷启动节点在满足条件如本地唤醒后写CMD0x4 (RUN)。非冷启动节点自动监听并集成到已运行的网络中。正常运行集成成功后节点进入NORMAL_ACTIVE状态。可根据需要发送ALL_SLOTS命令切换到全时隙模式。6.2 常见问题排查表问题现象可能原因排查步骤与解决方法节点无法进入CONFIG状态1. 写CMD前未检查PBSY。2. 硬件复位未完成或时钟未稳定。3. 寄存器写入顺序或值错误导致控制器异常。1. 确保在写CMD前轮询PBSY位直到为0。2. 检查电源、复位信号和时钟输入。增加复位后的延时。3. 使用调试器查看关键配置寄存器如SUCC1的值是否正确写入。网络启动失败冷启动节点不断重试1. CSA值设置过小。2. 监听超时SUCC2设置不合理过早放弃。3. 物理层问题终端电阻、线缆。4. 关键时序参数GTU, PRT节点间不一致。1. 适当增加CSA值。2. 检查并调整LT和LTN。3. 用示波器检查总线波形确认信号完整性。4.逐字节比对所有节点的GTUC1/2/3、PRTC1/2寄存器配置必须完全一致。节点能启动但无法同步1. 同步节点TXSY1数量超过SNM配置。2. 时钟同步容错参数WCP/WCF过于严格。3. 同步帧未在预期时隙内收到时隙ID配置错误。1. 确认实际同步节点数 ≤ SNM否则增大SNM或减少同步节点。2. 适当增大WCP和WCF值。3. 使用停止监视或分析仪检查同步帧的时隙计数器SSCVA/B是否与预期匹配。消息发送失败或接收不到1. 节点未切换到全时隙模式TSM1且未发ALL_SLOTS命令。2. 消息缓冲区配置错误ID过滤、通道选择。3. 静态帧数据长度SFDL不匹配。4. 动态段消息发送起始点超过SLT限制。1. 确认在NORMAL_ACTIVE下发过ALL_SLOTS命令并检查CCSV寄存器中的SLM位确认模式已切换。2. 仔细检查消息缓冲区的配置寄存器特别是消息ID、通道掩码。3. 确认所有节点的MHDC.SFDL值完全相同。4. 检查动态消息的发送请求是否在SLT定义的窗口内。停止监视功能不触发1. ESWT总使能位未置1。2. 触发源EINT0/1, SSWT, 外部引脚未正确使能。3. 在单次模式SWMS0下触发一次后ESWT自动清零未重新使能。1. 确保ESWT1。2. 根据想捕获的事件正确设置EINT0/1或EETP。对于软件触发确保ESWT0后再写SSWT1。3. 在单次模式捕获后如需再次捕获需重新配置ESWT1。6.3 调试技巧与心得活用停止监视不要仅把它当作高级调试功能。在开发初期就可以用它来验证你的基础时序。例如配置一个GPIO引脚在软件的关键位置如进入中断、开始发送消息翻转并将此引脚连接到停止监视的外部触发输入。这样就能精确测量代码执行时间与FlexRay通信周期的关系。寄存器配置的“快照”与比对在软件初始化函数中将所有配置寄存器的值在写入后立即读回并打印或存储到非易失性存储器中。这能第一时间发现写入失败如因为状态不对或硬件异常。状态机监控持续监控CCSV寄存器中的POC状态POCS[5:0]。节点的状态迁移是诊断问题的第一线索。如果节点卡在某个状态如STARTUP结合错误中断寄存器EIR和停止监视捕获的数据能快速定位是同步问题、总线冲突问题还是配置问题。参数计算的工具化手动计算UT、MPC等参数容易出错。建议编写或使用一个小工具输入期望的周期长度、波特率、静态/动态段参数后自动计算并校验所有GTU和PRT寄存器的值并生成配置代码片段。这能极大减少人为错误。关于“集群一致”的绝对性这是我踩过最深的坑。早期测试时两个节点仅GTUC1的UT值差了几个微节拍网络居然能偶尔启动但同步极不稳定出现各种随机错误。花了两天时间才定位到这个细微差别。任何标注“must be identical in all nodes of a cluster”的参数都必须像对待密码一样确保绝对一致。最好的实践是使用一个中心化的配置文件或头文件所有节点的软件都包含它。