1、XR系列芯片概述:全志XR系列芯片家族介绍、芯片选型指南、XR872与XR808等主流型号对比、芯片内部架构框图解析
各位同学,欢迎来到《全志XR系列WiFi蓝牙芯片驱动开发实战》的第一课。
我是你们这门课的主讲。做嵌入式驱动开发有些年头了,从早期的单片机到现在的无线SoC,摸过的芯片不少。全志XR系列,是我这几年在IoT项目里用得最多的一个家族。说实话,第一次拿到XR872的样片时,我还有点惊讶——这么小的封装,居然集成了WiFi、蓝牙、ARM核和那么多外设。
今天咱们不聊虚的,直接切入正题。把XR系列芯片的家族谱系、怎么选型、主流型号的差异,以及内部到底长什么样,一次性讲清楚。
1.1 全志XR系列芯片家族介绍
全志的XR系列,定位是低功耗、高集成度的无线连接SoC。说白了,就是一颗芯片搞定联网+控制+数据处理。主要面向智能家居、物联网终端、工业无线控制这些场景。
目前市面上主流的XR芯片,按时间线和性能定位,大致可以分为三代:
- 第一代:XR808 / XR809 —— 经典款,主打WiFi,蓝牙是配角。我早期做智能插座项目用的就是XR808,稳定,但资源偏紧。
- 第二代:XR871 / XR872 —— 性能跃升,双模蓝牙+WiFi,RAM和Flash翻倍。目前出货量最大的主力型号。
- 第三代:XR872AI / XR系列新成员 —— 开始加入AI加速单元,面向端侧推理。不过目前资料还不多,咱们课程主要聚焦前两代。
嗯,这里要注意:XR系列并不是简单的升级替代关系。不同型号针对的应用场景差异很大。比如XR808主打低成本WiFi控制,XR872则更适合需要蓝牙Mesh+WiFi双模通信的复杂场景。
1.2 芯片选型指南
很多刚入行的朋友问我:「老师,我该选XR808还是XR872?」
我的回答是:先看你的需求,再看你的钱包。
我整理了一个选型决策树,大家对照着看:
选型核心三要素:
- 通信协议:只需要WiFi?选XR808。需要WiFi+蓝牙双模?选XR872。
- 资源需求:代码量小、外设少?XR808够用。需要跑RTOS、做OTA、处理音频?必须上XR872。
- 功耗预算:电池供电、要求极低功耗?XR872的Deep Sleep模式更优。市电供电?两者都可以。
我个人习惯是:如果项目预算允许,直接上XR872。为什么?因为开发周期短。XR872的RAM和Flash更大,调试时不用抠抠搜搜省空间。我曾经在一个XR808项目上,为了把代码塞进256KB Flash,硬是优化了三天三夜……后来换了XR872,半天搞定。
避坑指南:千万不要只看芯片单价。XR808虽然便宜几块钱,但如果你的产品需要后续OTA升级、需要蓝牙配网,那XR808的Flash和RAM根本不够用,最后还得换型号。我见过好几个团队因为这个原因返工,得不偿失。
1.3 XR872与XR808等主流型号对比
咱们直接上硬货。下表是我整理的XR系列主流型号对比,大家保存好,以后选型直接查:
| 参数项 | XR808 | XR809 | XR871 | XR872 |
|---|---|---|---|---|
| CPU核心 | ARM Cortex-M4F | ARM Cortex-M4F | ARM Cortex-M4F | ARM Cortex-M4F |
| 主频 | 160MHz | 160MHz | 240MHz | 240MHz |
| SRAM | 256KB | 256KB | 512KB | 512KB |
| Flash | 2MB(内置) | 2MB(内置) | 4MB(内置) | 4MB(内置) |
| WiFi | 802.11 b/g/n | 802.11 b/g/n | 802.11 b/g/n | 802.11 b/g/n |
| 蓝牙 | BLE 4.2(仅从机) | BLE 4.2(仅从机) | BLE 5.0 + BR/EDR | BLE 5.0 + BR/EDR |
| 最大GPIO | 18 | 18 | 32 | 32 |
| 硬件加密 | AES/SHA | AES/SHA | AES/SHA/RSA | AES/SHA/RSA |
| 封装 | QFN40 | QFN40 | QFN68 | QFN68 |
| 典型功耗(TX) | ~300mA | ~300mA | ~350mA | ~350mA |
| Deep Sleep | ~10uA | ~10uA | ~5uA | ~5uA |
小提示: 注意看蓝牙这一行。XR808和XR809的蓝牙只能做从机,不能做主机。这意味着你不能用它来扫描并连接其他蓝牙设备。而XR872支持完整的蓝牙双模,既可以当主机也可以当从机。这个差异在实际项目中非常关键。
你想想看,如果你要做的是一个蓝牙网关,需要扫描周围的蓝牙传感器并上报到云端,那XR808根本做不了。必须上XR872。
1.4 芯片内部架构框图解析
好了,接下来咱们看看芯片内部到底是怎么组织的。我画了一个简化的架构框图,大家对照着理解:
┌─────────────────────────────────────────────────┐
│ XR872 内部架构 │
├─────────────────────────────────────────────────┤
│ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
│ │ Cortex-M4│ │ WiFi │ │ 蓝牙 │ │
│ │ @240MHz │ │ MAC/BB │ │ BR/EDR+BLE │ │
│ │ FPU │ │ 802.11 │ │ 双模 │ │
│ └────┬─────┘ └────┬─────┘ └──────┬───────┘ │
│ │ │ │ │
│ ┌────▼──────────────▼───────────────▼───────┐ │
│ │ 系统总线(AHB/APB) │ │
│ └────┬──────────────┬───────────────┬───────┘ │
│ │ │ │ │
│ ┌────▼─────┐ ┌────▼─────┐ ┌──────▼───────┐ │
│ │ SRAM │ │ Flash │ │ 外设总线 │ │
│ │ 512KB │ │ 4MB │ │ (GPIO/UART/ │ │
│ │ │ │ │ │ SPI/I2C/ │ │
│ │ │ │ │ │ PWM/ADC) │ │
│ └──────────┘ └──────────┘ └──────────────┘ │
│ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
│ │ PMU │ │ Crypto │ │ Timer/WDT │ │
│ │ 电源管理│ │ AES/SHA │ │ 定时器/看门狗│ │
│ └──────────┘ └──────────┘ └──────────────┘ │
└─────────────────────────────────────────────────┘
这个框图,大家要记住几个关键点:
- CPU核心:ARM Cortex-M4F带浮点运算单元。这意味着你可以做简单的音频处理、FFT运算,不用外挂DSP。
- WiFi和蓝牙是独立的硬件模块:它们通过系统总线与CPU通信。所以WiFi和蓝牙可以同时工作,但要注意共享天线时的调度问题——这个咱们后面章节会详细讲。
- SRAM和Flash都在片内:不需要外挂存储芯片。但512KB SRAM对于复杂应用来说,其实并不宽裕。我建议把常量数据、只读配置都放在Flash里,SRAM留给堆栈和动态数据。
- PMU电源管理单元:这是XR872的亮点。它支持多种睡眠模式,从浅睡到深度睡眠,功耗从mA级降到uA级。做电池产品时,这个模块的配置直接决定了续航。
注意: 很多初学者拿到芯片后,直接跑例程,发现功耗很高。其实是因为默认配置下,WiFi和蓝牙的射频部分一直处于待机状态。我曾经在一个温湿度传感器项目上,客户要求电池续航一年。我花了整整两周调PMU的睡眠策略,最后才把平均功耗压到20uA以下。所以,功耗优化一定要从项目一开始就考虑,不要等产品做完了再回头改。
好了,第一节课的内容就到这里。咱们把XR系列的家族、选型、对比和内部架构都过了一遍。下一节课,我会带大家搭建开发环境,亲手点亮第一颗LED。到时候咱们再细聊。
记住:选对芯片,项目就成功了一半。选错了,后面全是坑。