资讯动态

锂电池供电下PCA9422+PIC18F47Q10的PMIC电源管理实战

发布时间:2026/10/24 5:02:13 来源:尧图企业网站定制
前阵子接了一个锂电池供电的物联网项目需求不算复杂单节电池供电需要 3.3V 给主控和传感器1.8V 给一颗低功耗协处理器还要能对电池充电并且系统在休眠时要尽可能省电。一开始我想省钱用独立的 LDO 加一个充电芯片拼起来结果算完效率、待机电流和 PCB 面积之后还是老老实实回到 PMIC 加 MCU 的组合上。最后定下来的方案就是 PCA9422 这颗电源管理芯片搭配 PIC18F47Q10 这颗 8 位 MCU。这篇文章不是芯片手册的翻译而是把我从选型、画板、写驱动到调波形这一整条路走完之后觉得最值得分享的东西整理出来。适合正在做低功耗电池产品、或者准备把 PMIC 接入 MCU 工程的工程师参考。文章中涉及的具体寄存器和数值建议你拿到最新数据手册后对照确认但整体设计思路和坑点应该是通用的。1. 为什么是PMIC MCU而不是单芯片方案1.1 拆一拆完整电源管理到底要管哪些事很多人一听到电源管理第一反应是把电压稳住就行。真正做产品的时候这摊事要细得多。以我这个单节锂电池项目为例电源管理至少包含六块内容充电管理适配器插入后要以正确的恒流/恒压曲线给电池充电不能过压、不能过流充满后能自动终止电池电压跌落之后又能重新触发充电。电源路径选择有适配器时系统由适配器供电同时给电池充电拔掉适配器后无缝切换到电池供电。这个切换不能有长时间掉电。多路输出电压不同模块需要不同电压域且每路要有足够的负载能力、低纹波最好还支持动态调压。状态监测实时知道电池电压、充电状态、负载电流才能做低电告警、功耗统计和故障判断。故障保护过压、欠压、过流、过温任何一个发生都要有明确反应要么关输出要么拉中断通知 MCU。低功耗配合系统休眠时大电流负载要能关闭或进入低功耗模式PMIC 自身静态电流也不能拖后腿。这些需求如果全部用分立器件拼光是充电控制和路径切换就要好几颗芯片加上各种采样电阻、运放、比较器PCB 面积和物料成本都不低而且任何一个环节设计和计算失误排查起来非常痛苦。1.2 PCA9422 与 PIC18F47Q10 各自应该扛什么活选 PCA9422 的原因很简单它把这些脏活累活基本包圆了。电池充电管理、电源路径切换、多路降压输出、按键/模式切换、中断输出一颗芯片全部覆盖。MCU 只需要通过 I2C 总线去配置它的寄存器读取状态处理中断不需要自己去搭充电环路更不需要用运放去做电流检测。PIC18F47Q10 在里面的角色是电源管家。它负责上电后通过 I2C 完成对 PCA9422 的初始化配置用 ADC 采样电池电压、关键负载电流根据系统运行状态调整 PMIC 的输出模式和负载开关响应 PCA9422 的中断处理充电完成、输入插入、故障等事件休眠时用极低功耗维持监测。用 8 位 MCU 而不是 32 位 MCU 来做这件事不是因为性能不够而是因为这个活对性能要求确实不高反而是低功耗、外设灵活性、成本这些更关键。PIC18F47Q10 的调压器可以切到低速模式休眠电流很低同时它内部的 ADC、比较器、可配置逻辑单元CLC这类外设可以在 CPU 睡觉的时候继续工作很适合当电源管理大脑。1.3 三种方案选型对比分立、集成 PMU 与PMIC 8位MCU我画板之前把三种方案整体对比了一遍方案优势劣势适用场景全分立充电 IC LDO 采样电阻 运放物料灵活单颗成本低设计复杂、体积大、调试成本高、故障点多对成本极度敏感且团队硬件能力强高端应用处理器配套 PMU控制粒度细、扩展性强封装大、价格高、很多功能在 8 位系统里用不上应用处理器平台PCA9422 PIC18F47Q10集成度高、设计周期短、功耗可控、成本适中需要写 I2C 驱动初始化流程要自己控电池类 IoT、可穿戴、便携医疗设备最终选择第三种说到底还是因为确定性。PMIC 把功率相关的东西做成黑盒MCU 只需要管状态和策略这个边界清晰了软件和硬件的分工就明确出问题时也能快速定位。2. PCA9422 的电源通路与寄存器配置逻辑2.1 先看懂这几条电源通路把 PCA9422 的数据手册翻完你会发现它的结构其实可以简化为几个关键模块电池充电器、系统电源路径管理、多路降压输出、辅助 LDO、I2C 接口和中断控制器。实际项目中用到最多的几条通路VBUS - SYS适配器插入时VBUS 电压通过内部路径优先给系统供电多余能量给电池充电。这条路径的存在让插电瞬间系统重启这类问题在硬件层面就避免了。VBAT - SYS没有适配器时电池通过内部开关给系统供电。PCA9422 内部集成了低导通电阻的开关比外部用 MOSFET 做切换要省事得多。BUCKx - 负载多路输出电压从降压转换器出来直接给不同电压域。每路输出电压通过寄存器配置不是靠外部调反馈电阻。LDO - 模拟/待机供电LDO 的噪声通常比降压转换器低适合给模拟电路、参考电压这类负载供电。第一次接触 PMIC 的工程师经常犯一个错误拿到芯片就把它当成一个普通稳压器看看输出电容和电感就完事了完全忽略了电池充电部分。实际上电池充电的参数配置比如充电电压、预充电流、恒流电流、终止电流全部要通过 I2C 设置漏掉任何一个轻则充电慢重则电池过充或反复充放直接影响寿命。2.2 MODE 引脚MCU 没起来时谁把电供上这是 PCA9422 设计里一个特别关键也是最容易被忽略的地方。MCU 需要上电才能运行才能通过 I2C 给 PMIC 写寄存器但如果 PMIC 上电后的默认输出电压不是 MCU 需要的电压MCU 就永远跑不起来死锁。PCA9422 的做法是通过 MODE0/MODE1 这类引脚在芯片出厂或上电默认状态下把每一路输出预设成不同的电压组合。MCU 上电后可以正常工作然后通过 I2C 把需要的最终配置写进去之后还可以动态切换输出。我为了避免死锁做了两个保险把 MODE 引脚的默认组合选成3.3V 输出。预留跳线方便在调试时切换默认电压比如先用 3.3V 模式跑完引导再切到最终的低压模式验证动态调压。选型时还要确认一点这颗 PMIC 的默认配置是否支持非易失烧写。如果支持 OTP/EEPROM 固化可以一次性把默认电压改成项目需要的值如果不支持那 MODE 引脚的默认组合就必须作为硬件设计的一部分认真选而不是随便接个上下拉电阻。2.3 寄存器初始化顺序与参数换算寄存器配置顺序我是按照先通信、再功能、后中断的思路来做的。先读 ID 寄存器确认 I2C 真的通了配置充电参数充电电压、恒流电流、预充电流、终止电流配置各 BUCK 输出电压、限流值、工作模式配置 LDO 输出电压配置中断使能哪些事件需要拉 INT 引脚通知 MCU最后根据系统当前状态决定是否启动充电或切换输出模式。以充电参数为例电池规格是 1000mAh我设置的恒流充电电流是 500mA也就是 0.5C这个值对普通锂离子电池来说既不激进充电时间也能接受。预充电流按 0.1C 设置也就是 100mA。终止电流我设置在 0.05C 到 0.1C 之间实际操作中定在 50mA 左右。充电电压必须和电芯规格严格匹配常规 4.2V 的电池不要因为想多充一点电就改成 4.35V那通常需要专门的高压电芯。这类参数我一般会在代码里做成宏定义并且加注释方便后续换电芯时快速调整#define BATTERY_FULL_MV 4200 #define BATTERY_CHARGE_C_MA 500 #define BATTERY_PRECHARGE_MA 100 #define BATTERY_TERM_MA 50BUCK 输出电压的配置也是一样我习惯把所有电压域的宏定义集中放在一个头文件里方便对照电源树检查#define VDD_MCU_MV 3300 #define VDD_SENSOR_MV 1800 #define VDD_LDO_MV 1200换算成寄存器值的时候注意每一个位域的单位。有的寄存器以 10mV 为一个 LSB有的是 25mV直接在代码里做除法很容易踩坑我一般会写一个小的换算函数并且在原型验证阶段用万用表实测输出核对寄存器值和实际电压是否一致。3. 原理图与 PCB 设计里的实际取舍3.1 一张电源树与连接拓扑画原理图之前一定要先把电源树画清楚。我这里的电源树大概是这个结构VBUS 输入来自 USB 或适配器经过 TVS 和输入滤波电容进入 PCA9422 的 VBUS 引脚。电池正极直接接 PCA9422 的 VBAT 引脚电池负极通过采样电阻回到系统地。PCA9422 的 SYS 引脚接系统主供电轨。BUCK1 输出 3.3V给 PIC18F47Q10 和数字外设。BUCK2 输出 1.8V给低功耗协处理器和传感器。LDO 输出 1.2V给模拟电路和基准供电。PCA9422 的 I2C 引脚和中断引脚连接到 PIC 的对应引脚。PIC 的 ADC 通过分压电阻连接电池正极用于独立监测电池电压。PIC 的普通 GPIO 控制负载开关用于在休眠时断开大电流负载。这个拓扑的核心思想是主系统电压 VDD_MCU 由 BUCK1 直接供电而不是经过 LDO 再降压。因为 LDO 的压差损耗在电池电压较高的阶段相当明显用 BUCK 效率高得多。模拟部分单独用 LDO是为了获取更干净的电源把成本和性能做平衡。电源树确定后每个电压域的预算电流要写清楚。比如 VDD_MCU 预估峰值 50mAVDD_SENSOR 预估 100mAVDD_LDO 预估 20mA这样后面选电感、电容、限流值才有依据。3.2 降压环路的布局细节PCA9422 内部集成了降压转换器但外部环路布局仍然决定了纹波和 EMI 水平。这部分是硬件工程师最容易忽略的也是最容易在测试阶段翻车的地方。我的布局原则是输入电容尽量靠近 VBUS/VBAT 引脚最好是同一个平面层、规则走线不要用细长的走线连接。输入电容离引脚太远高频开关电流回路变大EMI 会明显变差。电感受到开关节点旁边SW 是高频开关点敷铜面积不能太大避免它充当天线。SW 走线要短而宽但面积又不能无限扩大这是一个需要权衡的点。反馈采样走线远离电感和 SW 节点。BUCK 的输出电压采样走线一旦靠近开关节点示波器上看纹波可能还过得去但板子量产后的噪声性能会参差不齐。输出电容尽量靠近负载。特别是 MCU 的电源引脚旁边要加一个 100nF 高频去耦电容这是很多明明 PMIC 输出正常MCU 还是偶发复位问题的根源。如果你用的是多层板BUCK 功率回路的地尽量单独走一个内层系统地和功率地通过单点连接避免大电流在地平面上产生压差干扰模拟电路。电感值的选择我直接参考数据手册推荐值一般是 1µH 到 2.2µH 这个量级。手上没有手册推荐值时可以按下面的简化公式做一个初步估算[ L \frac{(V_{in} - V_{out}) \times V_{out}}{V_{in} \times f_{sw} \times \Delta I_L} ]其中 ( \Delta I_L ) 是允许的电感纹波电流一般取负载电流的 20% 到 40%。算出来之后再找最接近的标准感值同时确认电感的饱和电流要大于实际峰值电流。这个公式通常情况下足够用但最终值还是以官方参考电路为准。3.3 充电通路的热设计与测试点充电通路在电池电压低、恒流充电阶段损耗主要集中在 PMIC 内部路径的导通损耗和充电环路的压差上。如果适配器输入是 5V电池电压 3.2V充电电流 500mA内部路径上的损耗大约在零点几瓦的量级不会很夸张但也会让芯片明显升温。PCB 上要给 PCA9422 的散热焊盘留足够过孔连接到地平面散热。实际画 PCB 的时候我加了这么几个测试点调试时帮了大忙VBAT 测试点直接量电池电压。SYS 测试点判断路径管理是否正常。BUCK1_OUT / BUCK2_OUT方便量各路输出电压和纹波。SW 测试点用示波器看开关节点波形判断电感是否饱和、环路是否稳定。I2C 测试点SCL/SDA 引出方便逻辑分析仪抓包。这些测试点在产品量产时可以不贴但在原型验证阶段几乎是必备的。我见过有些项目为了省地方不测测试点结果 I2C 通信异常时只能飞线反而更痛苦。4. PIC18F47Q10 侧的软件框架与状态机4.1 上电时序与 I2C 初始化顺序软件这一侧最重要的一件事是控制上电时序。MCU 本身由 PCA9422 的 BUCK1 供电因此 MCU 上电后先要等待系统电压稳定。我一般会在 main 函数最开始加一个延时比如 10ms用于等待 PMIC 内部参考和 LDO 稳定。这个延时不能省因为有些 PMIC 在刚上电时 I2C 接口还没就绪你急着写寄存器只会收到 NACK。初始化顺序我放在 PMIC_Init() 函数里逻辑很直白void PMIC_Init(void) { uint8_t id 0; // 等待 PMIC 内部电源稳定 __delay_ms(10); // 1. 读 ID 寄存器确认 I2C 总线正常 if (PMIC_ReadByte(0x00, id) ! 0) { // 通信失败进入错误处理 ERROR_Handle(); return; } // 2. 配置充电参数 PMIC_WriteByte(REG_CHG_VOLTAGE, 0x10); // 4.2V实际值需按位域换算 PMIC_WriteByte(REG_CHG_CURRENT, 0x0A); // 500mA PMIC_WriteByte(REG_CHG_TERM, 0x05); // 终止电流 50mA // 3. 配置 BUCK 和 LDO 输出电压 PMIC_WriteByte(REG_BUCK1_OUT, 0x20); // 3.3V PMIC_WriteByte(REG_BUCK2_OUT, 0x18); // 1.8V PMIC_WriteByte(REG_LDO_OUT, 0x0F); // 1.2V // 4. 使能需要的中断 PMIC_WriteByte(REG_INT_EN, 0x07); // 输入插入、充电完成、故障 // 5. 使能输出 PMIC_WriteByte(REG_SYS_CTRL, 0x01); }I2C 的读写函数我强烈建议封装成带超时和重试的版本。电源芯片在电池接入、适配器插拔瞬间可能会出现短暂的通信忙状态一次失败不代表总线坏了重试三次往往就过了。但如果每次重试之前没有适当延时PMIC 还没恢复你就重试那永远失败。重试延时我设置的是 5ms 到 10ms。4.2 ADC 电压监测与读数换算电池电压监测我用了 PIC18F47Q10 的 12 位 ADC配合分压电阻和 FVR固定电压参考模块。原理是电池电压直接超出 ADC 输入范围所以先用两个电阻分压比如 100kΩ 和 47kΩ把电池电压按比例降到 ADC 可测范围。为了减小功耗分压电阻不能太小但为了 ADC 采样稳定分压电阻的并联阻抗不能太大100k 级别通常还可以。如果要求极端低功耗可以考虑分压电阻串联 MOS 开关只在测量时使能但这个项目里没必要。ADC 换算公式很简单[ V_{bat} \frac{ADC_code}{4096} \times V_{ref} \times \frac{R1 R2}{R2} ]代码里我会用整数运算避免浮点开销同时把分压比值做成宏#define VBAT_DIV_SUM 147.0f #define VBAT_DIV_LOW 47.0f #define ADC_REF_MV 2048 uint16_t battery_mv (uint16_t)((uint32_t)adc_code * ADC_REF_MV / 4096 * VBAT_DIV_SUM / VBAT_DIV_LOW);需要特别注意参考电压的选择。PIC18F47Q10 可以用内部 FVR 作为 ADC 参考好处是电源电压波动不影响测量精度。如果直接用 VDD 做参考VDD 本身由 BUCK1 输出虽然电压稳定但受负载影响会有微小的波动精度也能接受只是不如 FVR 可预期。我最终选了 FVR并用万用表校准过一次偏移量。4.3 电源状态机设计软件作为一个电源管家核心就是一个状态机。我设计的几大状态状态触发条件主要动作POWER_OFF系统刚上电等待电压稳定完成 PMIC 初始化CHARGE_TRICKLE电池电压低于预充门限配置小电流预充使能充电中断CHARGE_CC预充完成进入恒流阶段检查充电电流寄存器监测电压CHARGE_CV电池电压到达满充电压进入恒压模式等待电流下降到终止值CHARGE_DONE终止电流达到关闭充电发送充电完成事件RUN_NORMAL充电完成或无适配器全速运行开启负载开关RUN_LOW_POWER系统空闲或休眠指令切换 PMIC 到低功耗模式关负载FAULT过压/欠压/过温/通信故障关闭负载记录故障状态状态转移的核心是从中断和查询两条路径获取触发。PCA9422 的 INT 引脚连接到 PIC 的 INT 引脚当充电完成、输入插入、故障事件发生时PMIC 会拉低 INTPIC 进入中断服务程序后读取 PMIC 的中断状态寄存器再根据事件类型转移状态。这种方式的好处是 MCU 不需要一直轮询省电。但要注意中断服务程序里不要直接执行复杂操作比如 I2C 多次读写。我习惯的做法是中断里只置一个事件标志主循环里根据标志再做完整处理。这是因为 I2C 通信如果被更高优先级中断打断容易协议错乱而且长中断也会影响系统的实时性。4.4 休眠与快速唤醒的配合这个项目的低功耗需求比较典型系统大部分时间在睡觉每 10 分钟醒一次采集传感器数据、通过无线模块上报然后继续睡。PIC18F47Q10 休眠时电流很低但 PCA9422 自身也有静态功耗。为了进一步降低系统功耗我在进入休眠之前会做几件事通过 I2C 把 BUCK2 和 LDO 关闭只保留给 MCU 供电的 BUCK1。通过 GPIO 关闭大电流负载的电源开关。将 PIC 切换到休眠模式保留 RTC 或定时器唤醒。这里有一个值得注意的点如果要保留 BUCK1 给 MCU 供电并且 MCU 休眠电流很低PCA9422 的 BUCK1 可能会进入轻载模式或者 PFM 模式这是正常的但需要确认输出纹波在 MCU 的工作范围内特别是有射频模块的项目纹波太大会影响发射指标。PIC18F47Q10 内部的可配置逻辑单元CLC在这里也派上了用场。比如可以用比较器监测 VBAT 电压一旦低于门限CL C 输出直接切断负载开关不需要 CPU 参与。这类休眠中也保护的功能用常规 MCU 做起来很费劲但在 Q10 系列上就是标配。5. 调试验证与实测数据5.1 关键波形上电时序、负载瞬态、开关节点上电时序是第一关。我第一次上电的时候先不焊 MCU只焊 PCA9422 及其外围电路用电子负载当系统负载直接将 PMIC 上电。这样做的好处是如果 PMIC 这边有问题不用牵扯 MCU 程序是否跑飞先把硬件基座打稳。测上电波形时需要注意VBUS 接入瞬间SYS 输出不能有明显跌落如果跌落超过 200mV说明路径切换或者输入电容偏小。BUCK1 输出从零到 3.3V 的上升时间要平缓不要出现阶梯或震荡。正常的开关电源软启动曲线是一条平滑上升的斜坡。开关节点的波形占空比要稳定如果占空比抖动、频率异常很可能电感到饱和了或者补偿有问题。负载瞬态测试我是这样做的系统空载时输出 3.3V用电子负载以 1kHz 的频率在 0mA 和 500mA 之间跳变观察 3.3V 的过冲和恢复时间。好的表现是过冲在几十毫伏以内恢复时间在几十微秒级别。如果过冲太大先加输出电容再检查反馈回路布局。5.2 充电曲线与效率数据充电测试是最耗时间的部分。我设置 500mA 恒流充电从空电池开始记录数据每隔一分钟记录一次电池电压和充电电流。整个曲线符合预期先恒流充到 4.2V然后进入恒压阶段电流逐渐下降直到降到 50mA 后充电终止。阶段电池电压充电电流状态预充3.0V 以下100mATRICKLE恒流3.0V - 4.2V500mACC恒压4.2V 保持500mA - 50mACV终止4.2V50mA 以下DONE效率方面BUCK1 在 3.3V、200mA 负载下的实测效率在 90% 左右满载略低。这个数据在电池供电产品里算正常。如果发现效率异常低优先检查电感是否进入饱和、开关频率设置是否合理。5.3 那些看软件怎么看也找不到的热点调试过程中我遇到了一个很有意思的现象系统功能一切正常但用手摸 PCA9422 附近发现温度偏高。用热成像一看问题出在电感位置靠得过近磁场耦合导致相邻电感发热。这在原理图上是看不出来的因为原理图不会标示元件的物理距离。调整布局、拉开电感间距之后温度立刻降下来了。另一个隐藏问题是充电电流测试方法。我一开始直接把万用表串在电池回路里测充电电流结果发现读数比寄存器设置值低很多还以为是寄存器配置不对。后来才意识到万用表的表笔和内部采样电阻有额外的压降相当于在电池回路里串联了一个电阻改变了充电环路的输入条件。正确的做法是用电流探头夹在 VBAT 走线上或者用霍尔电流传感器而不是把万用表串进去。6. 避坑清单与量产经验6.1 上电死锁最隐蔽的低频故障前面讲过PCA9422 的默认输出电压必须覆盖 MCU 的启动电压。这个问题在测试中特别隐蔽因为开发板上的 MODE 引脚已经被调试跳线设成了正确组合但进入小批量阶段贴片电阻值贴错、跳线遗漏、或者封装版本默认配置不同就会出现一批板子完全无法启动的现象。排查这种问题的方法先用可调电源直接给 MCU 供电确认固件和硬件没问题再回头查 PMIC 的 MODE 引脚配置。或者反过来先把 PMIC 输出量一遍确认各路电压到了没有。我给这个模块加了一个外部看门狗如果 MCU 因为 PMIC 默认电压不对起不来看门狗会周期性地重置 MCU 供电算是一种兜底手段但根本上还是靠前期设计保证。6.2 I2C 通信不稳定I2C 的坑主要出在电平域和时序上。PCA9422 的 VDDIO 如果和 MCU 的 VDD 不是同一路就需要做电平转换。我在最初设计时让两者都使用 3.3V问题不大但如果后续为了低功耗把 MCU 切换到 1.8V 工作就必须检查 I2C 引脚是否可以容忍还是要加转换电路。时序方面PMIC 对 I2C 时钟速率有上限要求一般 400kHz 甚至更低。MCU 使用 MSSP 硬件模块时可以通过波特率寄存器配置。如果发现偶发 NACK可以把 I2C 时钟降到 100kHz 试试很多时候问题就解决了。不要觉得 100kHz 慢对于配置频率很低的 PMIC完全够用。6.3 量测充电参数时的误操作量产阶段给产品做充电测试时有一类错误发生率很高测试工装里的电源线和电池线反接或者用了劣质转接头导致接触电阻过大。规范的做法是在生产测试治具中单独设计电池夹具确保正负极标识清晰并且在软件里增加电池反接检测逻辑。具体做法是上电后读取 PMIC 的故障状态寄存器如果是电池相关故障直接亮红灯并停止测试而不是让测试人员拿万用表去手摸。6.4 生产测试项建议小批量试产的时候我整理了一份快速测试清单每片板子过这一遍静态电流测试系统休眠电流是否在规格范围内。充电功能测试VBUS 接入后充电电流是否进入预期状态。输出电压测试三路输出的电压和纹波是否正常。I2C 通信测试固件启动时能否正确读取 PMIC ID。故障模拟测试短路输出过流保护是否动作。这些项目不用全套自动化设备也能执行至少第一次做 100 片小批量时能筛掉绝大多数硬件问题。6.5 量产固件中的安全策略还有一个容易被忽略的点量产固件里一定要有配置失败自动复位的逻辑。如果 MCU 在上电初始化 PMIC 时通信失败系统不能静默卡死应该在短暂重试后触发系统复位。否则现场设备一旦因为 EMI 或者其他原因导致 I2C 初始化异常这台设备就永久处于不可控状态只能派人上门处理。写在最后的一点经验做完这个项目我最大的感受是电源管理的复杂度不在某一块而在跨团队协作的边界。硬件工程师要理解 PMIC 的默认配置软件工程师要理解硬件布局限制只有这样才不会出现软件明明写了正确寄存器输出还是不对这类无法归类的故障。如果让我重新做一遍我会先把电源树画得更细每一路的峰值电流、平均电流、待机电流全部算清楚再开始选型。这个表虽然画起来麻烦但到了调 PCB 和写驱动的时候能节省大量来回确认的时间。另外调试阶段先把 PMIC 通信打通、把各路输出测完再往上挂 MCU 和传感器这个顺序真的值回票价。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑