CSR配置字典之Fan类
更新时间:2025/7/22
在Gitcode上查看源码📋 文档信息
项目 | 内容 |
---|---|
文档标题 | Fan类配置字典 |
版本 | v1.0 |
创建日期 | 2025-01-27 |
最后更新 | 2025-01-27 |
维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
---|---|---|---|---|---|
v1.0 | 2025-01-27 | 初始版本 | 创建Fan类配置字典 | 全新文档 | 系统管理员 |
🎯 类概览
Fan 类
属性 | 值 |
---|---|
类名称 | Fan |
功能描述 | 风扇对象,提供风扇硬件信息管理和控制功能,包括转速、状态、调速等 |
所属SIG组 | thermal |
所属组件 | 风扇对象 |
责任人 | 热设计组 |
最后更新 | 2025-01-27 |
状态 | 🟢 正常运行 |
📊 属性定义详表
必选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
Coefficient | U8 | 0 | U8 | - | 风扇转速系数 风扇前转子转速(或后转子转速)* Coefficient得到风扇当前的实际转速 | 风扇转速计算 | 1 | 软件配置 | 硬件 |
FanId | U16 | 0 | U16 | - | 风扇ID | 风扇管理基础信息 | 1 | CSR配置 | 硬件 |
FrontPresence | U8 | 0 | U8 | "<=/Scanner_Fan1_Presence.Value" | 前转子在位状态 1:在位;0:不在位 | 风扇管理基础信息 | "<=/Scanner_Fan1_Presence.Value" | 硬件读取 | 硬件 |
FrontSpeed | U16 | 0 | U16 | "<=/Scanner_Fan1_FSpeed.Value" | 前转子转速 | 风扇管理基础信息 | "<=/Scanner_Fan1_FSpeed.Value" | 硬件读取 | 硬件 |
HardwarePWM | Double | 0 | Double | "#/Accessor_Fan1_PWM.Value" | 硬件转速百分比 | 风扇管理基础信息,用于风扇调速 | "#/Accessor_Fan1_PWM.Value" | 硬件读取 | 硬件 |
IdentifySpeedLevel | U8 | 0 | U8 | - | 识别风扇转速级别 通过设置特定转速,判断风扇型号 | 风扇型号识别 | 35 | CSR配置 | 硬件(热设计) |
MaxSupportedPWM | U32 | 0 | U32 | - | 支持的最大占空比 | 用于计算风扇占空比 | 255 | CSR配置 | 硬件 |
Position | String | "" | String | - | 容器信息,风扇的位置 格式:"CLU${Slot}",Slot取值范围为U8 | 北向接口风扇位置信息 | "CLU1" | CSR配置 | 硬件 |
PowerGood | U8 | 0 | U8 | "#/Scanner_PowerGood.Value" | 上下电信息 | 风扇状态检测项,下电后不进行风扇状态检测 | "#/Scanner_PowerGood.Value" | 硬件读取 | 硬件 |
RearPresence | U8 | 0 | U8 | "<=/Scanner_Fan1_Presence.Value" | 后转子在位状态 1:在位;0:不在位 | 风扇管理基础信息 | "<=/Scanner_Fan1_Presence.Value" | 硬件读取 | 硬件 |
RearSpeed | U16 | 0 | U16 | "<=/Scanner_Fan1_RSpeed.Value" | 后转子转速 | 风扇管理基础信息 | "<=/Scanner_Fan1_RSpeed.Value" | 硬件读取 | 硬件 |
Slot | U8 | 0 | U8 | - | 风扇槽位号 | 风扇管理基础信息 | 1 | CSR配置 | 硬件 |
SystemId | U8 | 0 | U8 | - | 系统ID | 该风扇所属system | 1 | CSR配置 | 硬件 |
可选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
FrontStatus | U8 | 0 | U8 | - | 前转子状态 1:异常;0:正常 | 风扇状态检测,与风扇告警相关 | 0 | 软件刷新 | 软件 |
RearStatus | U8 | 0 | U8 | - | 后转子状态 1:异常;0:正常 | 风扇状态检测,与风扇告警相关 | 0 | 软件刷新 | 软件 |
🔗 动态关联机制
语法规范
使用多种动态关联语法:
yaml
# 硬件读取关联
FrontPresence: "<=/Scanner_Fan1_Presence.Value"
FrontSpeed: "<=/Scanner_Fan1_FSpeed.Value"
RearPresence: "<=/Scanner_Fan1_Presence.Value"
RearSpeed: "<=/Scanner_Fan1_RSpeed.Value"
# 寄存器访问关联
HardwarePWM: "#/Accessor_Fan1_PWM.Value"
PowerGood: "#/Scanner_PowerGood.Value"
# 静态配置
FanId: 1
Slot: 1
Coefficient: 1
Position: "CLU1"
关联说明
- Scanner关联: 通过Scanner对象获取硬件状态
- Accessor关联: 通过Accessor对象访问硬件寄存器
- 动态命名: Position支持动态命名模式"CLU${Slot}"
📂 分类标准
硬件属性
- 定义:与风扇硬件直接相关的参数
- 特点:转速、在位状态、PWM控制、硬件配置等
- 示例:
FanId
,FrontPresence
,FrontSpeed
,HardwarePWM
,Position
,Slot
软件属性
- 定义:由软件管理和维护的风扇状态参数
- 特点:状态检测、告警处理等
- 示例:
FrontStatus
,RearStatus
热设计属性
- 定义:与热设计和风扇识别相关的参数
- 特点:风扇型号识别等
- 示例:
IdentifySpeedLevel
📝 配置示例
基础风扇配置
json
{
"Fan_1": {
"Coefficient": 1,
"FanId": 1,
"FrontPresence": "<=/Scanner_Fan1_Presence.Value",
"FrontSpeed": "<=/Scanner_Fan1_FSpeed.Value",
"FrontStatus": 0,
"HardwarePWM": "#/Accessor_Fan1_PWM.Value",
"IdentifySpeedLevel": 35,
"MaxSupportedPWM": 255,
"Position": "CLU1",
"PowerGood": "#/Scanner_PowerGood.Value",
"RearPresence": "<=/Scanner_Fan1_Presence.Value",
"RearSpeed": "<=/Scanner_Fan1_RSpeed.Value",
"RearStatus": 0,
"Slot": 1,
"SystemId": 1
}
}
双转子风扇配置
json
{
"Fan_2": {
"Coefficient": 1,
"FanId": 2,
"FrontPresence": "<=/Scanner_Fan2_Presence.Value",
"FrontSpeed": "<=/Scanner_Fan2_FSpeed.Value",
"FrontStatus": 0,
"HardwarePWM": "#/Accessor_Fan2_PWM.Value",
"IdentifySpeedLevel": 40,
"MaxSupportedPWM": 255,
"Position": "CLU2",
"PowerGood": "#/Scanner_PowerGood.Value",
"RearPresence": "<=/Scanner_Fan2_RearPresence.Value",
"RearSpeed": "<=/Scanner_Fan2_RSpeed.Value",
"RearStatus": 0,
"Slot": 2,
"SystemId": 1
}
}
多系统风扇配置
json
{
"Fan_System2_1": {
"Coefficient": 1,
"FanId": 5,
"FrontPresence": "<=/Scanner_Fan5_Presence.Value",
"FrontSpeed": "<=/Scanner_Fan5_FSpeed.Value",
"FrontStatus": 0,
"HardwarePWM": "#/Accessor_Fan5_PWM.Value",
"IdentifySpeedLevel": 35,
"MaxSupportedPWM": 255,
"Position": "CLU1",
"PowerGood": "#/Scanner_PowerGood.Value",
"RearPresence": "<=/Scanner_Fan5_Presence.Value",
"RearSpeed": "<=/Scanner_Fan5_RSpeed.Value",
"RearStatus": 0,
"Slot": 1,
"SystemId": 2
}
}
🔧 使用指南
配置步骤
- 硬件调研: 了解风扇硬件规格和接口
- Scanner配置: 配置对应的Scanner对象
- Accessor配置: 配置对应的Accessor对象
- Fan配置: 创建Fan对象配置
- 测试验证: 验证风扇功能是否正常
风扇ID和槽位号说明
- FanId: 系统内唯一的风扇标识符
- Slot: 风扇的物理槽位号
- SystemId: 风扇所属的系统ID
- 关系: 不同系统的风扇可以有相同的Slot,但FanId必须唯一
转速系数说明
- Coefficient: 转速计算系数
- 计算公式: 实际转速 = 前转子转速(或后转子转速)× Coefficient
- 用途: 校正转速读数,适配不同类型的风扇
风扇型号识别
- IdentifySpeedLevel: 识别转速级别
- 工作原理: 设置特定转速,通过转速响应判断风扇型号
- 配置方法: 根据风扇规格设置合适的识别转速
动态关联配置
- Scanner关联: 用于读取硬件状态
- Accessor关联: 用于控制硬件寄存器
- 命名规则: 根据风扇编号动态生成关联名称
使用场景
- 风扇管理: 监控和控制风扇运行状态
- 转速调节: 根据温度调节风扇转速
- 故障检测: 检测风扇故障和异常
- 型号识别: 自动识别风扇型号
注意事项
- 硬件匹配: 确保配置与实际硬件匹配
- 关联正确: 确保Scanner和Accessor关联正确
- ID唯一: 确保FanId在系统中唯一
- 转速合理: 确保转速系数和识别转速合理
故障排除
风扇状态异常:
- 检查Scanner对象是否正确配置
- 确认硬件连接是否正常
- 验证电源供应是否正常
转速读数错误:
- 检查Coefficient是否正确设置
- 确认Scanner转速读取是否正常
- 验证硬件转速传感器是否正常
调速不生效:
- 检查HardwarePWM关联是否正确
- 确认Accessor对象是否正确配置
- 验证PWM控制电路是否正常
性能优化
- 状态缓存: 缓存风扇状态,减少硬件访问
- 批量操作: 批量处理多个风扇的操作
- 异步处理: 异步处理风扇状态更新
扩展功能
- 智能调速: 基于AI算法的智能风扇调速
- 故障预测: 基于历史数据预测风扇故障
- 自适应控制: 根据环境自适应调整风扇策略