CSR配置字典之Smc类
更新时间:2025/7/22
在Gitcode上查看源码📋 文档信息
项目 | 内容 |
---|---|
文档标题 | Smc类配置字典 |
版本 | v1.0 |
创建日期 | 2025-01-27 |
最后更新 | 2025-01-27 |
维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
---|---|---|---|---|---|
v1.0 | 2025-01-27 | 初始版本 | 创建Smc类配置字典 | 全新文档 | 系统管理员 |
🎯 类概览
Smc 类
属性 | 值 |
---|---|
类名称 | Smc |
功能描述 | 系统管理控制器(SMC)配置和通信参数设置 |
所属SIG组 | hardware |
所属组件 | 硬件通信 |
责任人 | 硬件通信组 |
最后更新 | 2025-01-27 |
状态 | 🟢 正常运行 |
📊 属性定义详表
必选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
Name | String | N/A | - | - | SMC的命名 1、基础板-CpuBrdSMC 2、扩展板-ExpBoardSMC | 配置Smc器件实现Smc命令字读写 | "ExpBoardSMC" | CSR配置 | 硬件 |
Address | U32 | N/A | - | - | 器件总线地址 十进制,如0x60的地址对应十进制96 | 配置Smc器件实现Smc命令字读写 | 96 | CSR配置 | 硬件 |
AddrWidth | U8 | N/A | - | - | 地址位宽 单位Byte | 配置Smc器件实现Smc命令字读写 | 1 | CSR配置 | 硬件 |
OffsetWidth | U8 | N/A | - | - | 偏移宽度 | 配置Smc器件实现Smc命令字读写 | 1 | CSR配置 | 硬件 |
可选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
WriteTmout | U32 | 0 | - | - | 描述写入寄存器的超时时间 单位ms | 无需配置 | 0 | CSR配置 | 硬件 |
ReadTmout | U32 | 0 | - | - | 描述读取寄存器的超时时间 单位ms | 无需配置 | 0 | CSR配置 | 硬件 |
🔗 动态关联机制
语法规范
Smc对象通常被Scanner、Accessor等组件通过Chip属性引用:
yaml
# 在Scanner中引用SMC
Scanner:
Chip: "#/ExpBoardSMC" # 引用扩展板SMC
Chip: "#/CpuBrdSMC" # 引用基础板SMC
# 在Accessor中引用SMC
Accessor:
Chip: "#/ExpBoardSMC" # 引用扩展板SMC
关联说明
- Scanner关联: Scanner通过Chip属性引用SMC进行周期性数据扫描
- Accessor关联: Accessor通过Chip属性引用SMC进行按需数据读写
- 命令字通信: SMC通过I2C等总线协议实现命令字级别的通信
📂 分类标准
硬件属性
- 定义:与SMC硬件通信直接相关的参数
- 特点:影响硬件通信协议和性能
- 示例:
Name
,Address
,AddrWidth
,OffsetWidth
,WriteTmout
,ReadTmout
📝 配置示例
基础板SMC配置
json
{
"CpuBrdSMC": {
"Name": "CpuBrdSMC",
"Address": 96,
"AddrWidth": 1,
"OffsetWidth": 1,
"WriteTmout": 0,
"ReadTmout": 0
}
}
扩展板SMC配置
json
{
"ExpBoardSMC": {
"Name": "ExpBoardSMC",
"Address": 96,
"AddrWidth": 1,
"OffsetWidth": 1,
"WriteTmout": 0,
"ReadTmout": 0
}
}
多地址SMC配置
json
{
"ExtSMC_0x62": {
"Name": "ExtSMC_0x62",
"Address": 98,
"AddrWidth": 1,
"OffsetWidth": 1,
"WriteTmout": 100,
"ReadTmout": 100
}
}
宽地址SMC配置
json
{
"WideSMC": {
"Name": "WideSMC",
"Address": 96,
"AddrWidth": 2,
"OffsetWidth": 2,
"WriteTmout": 0,
"ReadTmout": 0
}
}
🔧 使用指南
配置步骤
- 确定SMC类型:根据板卡类型选择合适的命名(基础板/扩展板)
- 设置总线地址:配置Address为十进制的I2C地址
- 配置位宽参数:设置AddrWidth和OffsetWidth
- 可选超时配置:根据需要设置WriteTmout和ReadTmout
- 验证通信:确保SMC能够正常响应命令字操作
注意事项
- 地址格式转换:Address需要从十六进制转换为十进制(如0x60 → 96)
- 位宽匹配:AddrWidth和OffsetWidth必须与SMC硬件规格匹配
- 命名规范:Name应该遵循统一的命名规范
- 超时设置:WriteTmout和ReadTmout通常设置为0,表示使用默认值
- 总线冲突:确保Address不与其他器件冲突
性能建议
- 地址优化:选择合适的I2C地址避免总线冲突
- 超时配置:根据SMC响应特性合理设置超时时间
- 位宽选择:使用合适的位宽以平衡性能和复杂度
- 命名管理:建立清晰的命名体系便于维护
SMC类型说明
- 基础板SMC(CpuBrdSMC):
- 位于CPU基础板上的SMC
- 通常管理CPU相关的监控和控制功能
- 地址通常为标准的I2C地址
- 扩展板SMC(ExpBoardSMC):
- 位于扩展板上的SMC
- 管理扩展板特定的功能
- 可能使用不同的I2C地址
通信协议说明
- I2C协议:SMC通常使用I2C协议进行通信
- 命令字模式:通过命令字实现寄存器级别的读写操作
- 地址映射:AddrWidth和OffsetWidth定义了地址映射方式
- 超时机制:WriteTmout和ReadTmout提供通信超时保护
常见问题
- Q: SMC对象能否做成固定的模板配置?
- A: 可以,常见的基础板和扩展板SMC配置相对固定,可以创建标准模板
- Q: 为什么Address要用十进制?
- A: JSON配置文件不支持十六进制格式,需要转换为十进制进行配置
- Q: AddrWidth和OffsetWidth如何确定?
- A: 根据SMC硬件规格确定,通常为1字节,特殊情况可能需要2字节
- Q: 何时需要配置超时时间?
- A: 当SMC响应较慢或需要特殊超时控制时,可以配置非零的超时值
地址转换对照表
十六进制地址 | 十进制地址 | 常见用途 |
---|---|---|
0x60 | 96 | 标准SMC地址 |
0x62 | 98 | 扩展SMC地址 |
0x64 | 100 | 备用SMC地址 |
0x66 | 102 | 特殊SMC地址 |