3、硬件平台选型:主控、计量与存储
好,咱们进入第三章。这一章我打算聊聊硬件选型。说实话,很多初学者一上来就纠结“用哪颗芯片”,其实选型背后是有逻辑的。我个人习惯先想清楚三个问题:谁来算?谁来测?谁来存?
说白了,就是主控MCU/SoC、计量芯片、存储芯片这三块。咱们一个一个拆开看。
3.1 主控MCU/SoC:三足鼎立
现在市面上做智能电表的主控,基本就是三大阵营:STM32、ESP32、还有新冒出来的RISC-V。我三个都用过,各有各的脾气。
3.1.1 STM32:老牌劲旅
STM32在电表领域,那真是“老黄牛”一样的存在。我最早做电表项目,用的就是STM32F103。为什么选它?稳定,太稳定了。
- 生态成熟:HAL库、LL库、各种例程,网上资料一抓一大把。你遇到问题,基本都能搜到答案。
- 可靠性高:工业级温度范围,抗干扰能力强。我在项目里遇到过雷击浪涌测试,STM32愣是没死机。
- 外设丰富:多路SPI、I2C、UART,接计量芯片、接LCD、接通讯模块,完全够用。
我的建议:如果你做的是三相表、关口表这种对稳定性要求极高的产品,STM32是首选。别犹豫。
但STM32也有短板。价格这两年涨得厉害,而且供货不稳定。我记得有一年,STM32F103的价格翻了快三倍,搞得我们项目差点延期。
3.1.2 ESP32:性价比之王
ESP32,大家可能觉得它是做WiFi的。没错,但它做电表主控也完全够用。我最近几个项目都用了ESP32-S3。
- 自带WiFi/BLE:省掉一个通讯模块,成本直接降一大截。对于家用智能电表,这个优势太明显了。
- 性能强劲:双核240MHz,还有FPU。跑计量算法、FFT计算,绰绰有余。
- 价格便宜:同样是Cortex-M4级别的性能,ESP32的价格只有STM32的零头。
避坑指南:我曾经在ESP32上踩过一个坑——它的ADC精度不太行。做计量采集时,千万别用ESP32内置ADC,一定要外挂专用计量芯片。切记!
ESP32的缺点呢?功耗偏高。做电池供电的场合,得小心。另外,它的工业级温度范围是-40°C到85°C,如果环境更极端,得考虑别的方案。
3.1.3 RISC-V:新势力
RISC-V这两年火得不行。我去年开始接触,用的是博流智能的BL602和嘉楠的K210。说实话,RISC-V给我的感觉是“未来可期”。
- 开源免费:没有ARM那样的授权费,成本可以压得很低。
- 指令集灵活:你可以自己定制指令,做专用加速。比如加一条专门算电量的指令,效率能翻倍。
- 生态在快速成长:虽然现在工具链不如ARM成熟,但进步很快。我用的RISC-V GCC已经很好用了。
注意:RISC-V目前最大的问题是碎片化。不同厂家的RISC-V芯片,外设寄存器、中断控制器可能都不一样。代码移植起来比较头疼。我建议你先用STM32或ESP32把产品做出来,再考虑迁移到RISC-V。
做个简单对比吧:
| 特性 | STM32 | ESP32 | RISC-V |
|---|---|---|---|
| 稳定性 | 极高 | 高 | 中等 |
| 成本 | 高 | 低 | 低 |
| 生态 | 非常成熟 | 成熟 | 成长中 |
| 无线能力 | 需外挂 | 内置 | 需外挂 |
| 适用场景 | 工业/关口表 | 家用/物联网表 | 未来/定制化 |
3.2 计量芯片选型:精度是灵魂
电表的核心是什么?计量。计量不准,其他都是白搭。我选计量芯片,主要看两个指标:精度和动态范围。
3.2.1 ADE9000:ADI的旗舰
ADE9000,这是ADI家的王牌产品。我第一个量产项目用的就是它。一个字:稳。
- 精度极高:0.1级精度,做关口表都没问题。内部有7个24位Σ-Δ ADC,同时采集三相电压电流。
- 功能全面:有功、无功、视在功率、谐波分析、相角测量……你能想到的,它都有。
- 数字信号处理强:内置DSP内核,可以直接输出RMS、功率、电能等计算结果,主控只需要读寄存器就行。
我的经验:ADE9000的SPI通信速率可以跑到10MHz以上。我建议你用DMA方式读取数据,别用轮询,否则主控会被拖死。
缺点呢?贵。一颗ADE9000的价格,能买好几颗国产计量芯片。另外,它的封装是QFN,焊接时要注意温度控制,我见过有人焊短路了。
3.2.2 RN8302:国产之光
RN8302是上海锐能微的产品。说实话,国产计量芯片能做到这个水平,我很佩服。我后来很多项目都换成了RN8302。
- 性价比高:性能接近ADE9000,价格只有一半。对于家用表、小三相表,完全够用。
- 兼容性好:寄存器定义、SPI时序,跟ADE9000高度相似。代码移植工作量很小。
- 功耗低:典型功耗只有15mW,适合电池供电的场合。
避坑指南:我曾经在RN8302上遇到一个问题——它的启动电流阈值比ADE9000高。做小电流计量时,要注意校准。建议在出厂前做一次全量程校准,尤其是0.1A以下的区间。
RN8302的缺点?谐波分析能力不如ADE9000。如果你需要做电能质量分析,还是得用ADI的方案。
3.3 存储芯片选型:数据不能丢
电表里的数据,比如电量累计值、事件记录、参数配置,都是不能丢的。我选存储芯片,最看重的是可靠性和寿命。
3.3.1 铁电存储器FRAM
FRAM是我个人最喜欢的存储方案。它结合了RAM的读写速度和Flash的非易失性。
- 读写速度快:SPI接口,可以做到40MHz。写一个字节只需要几十纳秒,不像Flash要等几毫秒。
- 寿命长:100万亿次擦写。你每天写1000次,能用27万年。电表用个十年八年,完全不用担心。
- 低功耗:待机电流只有几微安。
我的建议:对于电量累计值这种频繁写入的数据,一定要用FRAM。我见过用Flash存电量的项目,两年就写坏了,用户投诉不断。
FRAM的缺点?容量小,一般就64KB到512KB。而且价格比Flash贵不少。
3.3.2 NOR Flash
NOR Flash是电表里最常用的存储方案。存固件、存参数、存事件记录,都行。
- 容量大:从1MB到256MB,随便选。
- 价格便宜:同样容量,比FRAM便宜一个数量级。
- 可靠性不错:一般能支持10万次擦写,对于参数存储来说够用了。
注意:NOR Flash写数据前要先擦除,而且擦除是按扇区来的。如果你只改一个字节,也得把整个扇区读出来、擦掉、再写回去。这个过程很慢,而且容易出错。我建议你做一个“日志式存储”,每次写新数据都追加到末尾,避免频繁擦写。
3.3.3 存储方案搭配
我一般这样搭配:
- FRAM:存电量累计值、运行状态、校准参数。这些数据频繁读写,不能丢。
- NOR Flash:存固件、事件记录、历史数据。这些数据不常写,但需要大容量。
- EEPROM:如果成本敏感,可以用EEPROM替代FRAM。但EEPROM的寿命只有100万次,不如FRAM。
嗯,硬件选型这块,其实没有绝对的好坏。关键看你的产品定位和成本预算。我个人习惯是:先定功能需求,再选主控,然后配计量芯片,最后搭存储方案。这样一步步来,不容易出错。
下一章,咱们聊聊软件架构。到时候我会分享一个我用了好几年的分层设计思路,保证让你少走弯路。