从CC1310到CC1311:Sub-1GHz多频段无线系统移植与混合射频设计实战

1. 项目概述与核心价值

在物联网和无线传感网络领域,Sub-1GHz无线通信技术因其远距离传输和强穿透能力,成为智能家居、工业监控等场景的关键技术。其核心原理在于利用低于1GHz的频段(如433MHz、915MHz)进行数据传输,相比2.4GHz频段,具有更低的路径损耗和更强的绕射能力,从而实现了更广的覆盖范围。这项技术的价值在于为低功耗、广覆盖的物联网应用提供了可靠的连接方案。在工程实践中,开发者常面临硬件平台升级和多频段兼容的设计挑战。例如,从德州仪器(TI)的CC1310平台迁移到功能更强的CC1311平台,并构建支持345MHz、433MHz和915MHz的多频段混合系统,是提升产品性能和适应复杂市场需求的常见需求。本文聚焦于CC1311的硬件与软件移植,并详细阐述了如何结合CC110L射频前端,实现一个高效、灵活的多频段无线系统参考设计,为相关开发提供实践指导。

对于已经基于CC1310开发了产品的团队来说,升级到CC1311意味着什么?最直观的好处是片上Flash容量的显著提升,这直接解决了以往需要外挂Flash才能实现OTA(空中升级)的痛点,不仅简化了BOM(物料清单),降低了成本,更重要的是提升了系统的可靠性。此外,TI还推出了发射功率高达+20dBm的CC1311P3(功率增强版),这对于那些对传输距离有极致要求的应用,如广域农业传感、长距离抄表等,无疑是一个强有力的选项。然而,升级并非简单的芯片替换,它涉及到硬件、软件乃至系统架构的调整。同时,面对全球不同地区的频段法规(如北美915MHz、欧洲868MHz、部分地区的433MHz和345MHz)以及需要兼容老旧设备(如使用345MHz OOK调制的霍尼韦尔安防传感器)的复杂需求,设计一个能灵活切换于915MHz、433MHz和345MHz的多频段系统,就成为了一个极具挑战性的课题。本文将结合我多年的射频与嵌入式开发经验,手把手带你完成从CC1310到CC1311的平滑移植,并深入剖析一个基于CC1311与CC110L的混合射频系统设计,分享其中的设计思路、实操要点与避坑指南。

2. 从CC1310到CC1311:硬件移植的平滑过渡

硬件移植是整个升级过程的第一步,也是最基础的一步。幸运的是,TI在SimpleLink家族的设计上充分考虑了向后兼容性,这为我们降低了大量的迁移成本。

2.1 封装兼容性与关键差异点解析

TI SimpleLink系列芯片的一大优势在于其封装兼容性策略。对于CC1311,它主要提供两个版本:CC1311R3(标准版)和CC1311P3(功率增强版)。在硬件移植时,我们必须首先明确这两个版本与CC1310的兼容关系。

核心原则:CC1311R3 RGZ封装(7mm x 7mm QFN)与同封装的CC1310是Pin-to-Pin兼容的。这意味着,如果你原先的设计使用的是RGZ封装的CC1310,那么你可以直接将芯片更换为CC1311R3,而无需对PCB布局做任何改动。这极大地保护了原有的硬件投资,缩短了产品迭代周期。

注意:这里有一个至关重要的细节。CC1311P3虽然也采用RGZ封装,但由于其内部集成了功率放大器(PA)以支持高达+20dBm的发射功率,其引脚定义与CC1310/CC1311R3并不相同。因此,CC1311P3与CC1310不是Pin-to-Pin兼容的。如果你计划使用P3版本以获得更远的传输距离,就必须重新设计PCB。这一点在项目规划初期就必须明确,避免误选型号导致硬件返工。

2.2 外围电路改动:聚焦高速晶振

在确认封装兼容后,外围电路的改动是检查的重点。从CC1310移植到CC1311R3,唯一必须修改的外围器件是高速晶振(HF Crystal)

  • CC1310需求:通常需要一颗24MHz的外部高速晶振,为内核和射频系统提供主时钟。
  • CC1311需求:需要一颗48MHz的外部高速晶振。

为什么是48MHz?更高的系统时钟频率意味着处理器能运行在更高的主频,从而提升整体处理能力。CC1311相较于CC1310,不仅在存储容量上有所提升,其内核性能也进行了优化,48MHz的时钟为其提供了更好的性能基础。在更换晶振时,除了频率,还需要关注晶振的负载电容(CL)、等效串联电阻(ESR)以及精度。建议直接参考TI官方文档《CC13xx/CC26xx Hardware Configuration and PCB Design Considerations》中关于晶振选型的推荐列表,选择经过验证的型号,以保证起振可靠性和时钟稳定性。

实操建议:在原有CC1310的PCB上,24MHz晶振的匹配电路(通常为两个负载电容)是针对24MHz设计的。当更换为48MHz晶振时,这两个负载电容的容值很可能需要调整。你需要根据新选型48MHz晶振的规格书推荐值,重新计算并更换负载电容。一个常见的做法是,在PCB改版时,将这两个电容位设计为可替换的封装(如0402),方便后续调试。

2.3 功率增强版(CC1311P3)的硬件设计要点

如果你选择了CC1311P3,那么硬件设计几乎等同于重新开始。除了前述引脚不兼容外,还需要特别关注以下两点:

  1. 电源设计:内置PA在发射时会产生较大的峰值电流。必须确保电源网络(特别是给RF内核供电的电源)具有低阻抗和充足的电流供给能力。需要仔细计算电源路径上的压降,并可能需要在芯片的电源引脚附近增加更大容值的去耦电容。
  2. 热设计:+20dBm的发射功率会产生更多的热量。需要评估芯片在高温环境下的结温。对于持续高功率发射的应用,可能需要考虑PCB的散热设计,如在芯片底部增加散热过孔并连接到接地铜皮,甚至增加额外的散热措施。

硬件移植检查清单:

  • [ ] 确认目标芯片型号:CC1311R3(Pin-to-Pin兼容) 或 CC1311P3(需重新设计)。
  • [ ] 若使用R3版本,检查PCB封装是否为7x7mm QFN (RGZ)。
  • [ ] 将高速晶振从24MHz更换为48MHz,并相应调整负载电容。
  • [ ] 复查电源网络,确保能满足新芯片的功耗需求(特别是P3版本)。
  • [ ] 下载并查阅最新的官方硬件设计指南。

3. 软件移植:从传统代码到现代配置框架

如果说硬件移植是“换壳”,那么软件移植就是“换心”。CC1310到CC1311的软件栈经历了从传统模式到现代配置驱动模式的演进,理解这个变化是成功移植的关键。

3.1 开发环境与SDK准备

首先,确保你的开发环境已更新。CC1311需要使用新版Code Composer Studio (CCS)或IAR Embedded Workbench,并安装对应的SimpleLink CC13xx SDK(例如5.30或更高版本)。这个SDK中已经集成了对CC1311的全部支持,包括驱动程序、协议栈(如TI 15.4-Stack)以及最重要的SysConfig工具。

3.2 理解SysConfig:图形化配置的核心

这是软件移植中最大的变化点。CC1310及更早的SDK中,所有硬件初始化、外设配置、协议栈参数都通过纯C代码文件(如CC1310_LAUNCHXL.c,mac_settings.c,ccfg.c)来定义。而在CC1311的SDK中,TI引入了SysConfig这一图形化配置工具。

SysConfig做了什么?它提供了一个直观的GUI界面,让你通过勾选、下拉、填参的方式,配置芯片引脚功能、外设参数(UART波特率、I2C地址等)、协议栈特性,甚至RTOS内核设置。配置完成后,SysConfig会自动生成对应的C代码和头文件。这样做的好处是:

  • 降低错误:避免手动编写初始化代码时的笔误。
  • 提高效率:快速切换配置,例如更换UART引脚。
  • 保持同步:硬件配置与软件声明自动同步,减少不一致。

移植时的对应关系:你需要将CC1310工程中分散在各处的硬件配置代码,“翻译”到SysConfig的配置界面中。主要对应关系如下表所示:

CC1310 工程中的文件功能描述在CC1311 SysConfig中的对应配置模块
CC1310_LAUNCHXL.c/.h开发板引脚映射、外设实例定义Driver → GPIO, Driver → UART2等外设模块,进行引脚分配和参数设置。
Application/subg/config.h
Application/subg/features.h
TI 15.4协议栈的配置和功能开关TI 15.4-Stack模块,配置网络角色、射频参数、安全选项等。
Application/MAC/LowLevel/mac_settings.c/.h射频物理层(PHY)参数配置RF模块,或TI 15.4-Stack模块内部的射频设置。
ccfg.c芯片配置(CCFG),如Flash保护、引导加载程序设置Device → CCFG模块。
app.cfgTI-RTOS内核配置(任务、信号量、时钟等)TI-RTOS → Kernel等模块。

实操步骤:

  1. 在CCS中为CC1311创建一个新的工程(或导入一个相近的示例工程,如collector示例)。
  2. 双击打开工程中的.syscfg文件。
  3. 根据上表,逐一在SysConfig界面中找到对应模块,并按照你CC1310项目中的原始参数进行配置。
  4. 配置完成后保存,SysConfig会自动生成文件(如ti_drivers_config.c/h,ti_radio_config.c/h等)。
  5. 你的应用程序代码将不再直接操作硬件寄存器,而是调用SysConfig生成的API(如GPIO_open(),UART2_open())来使用外设。

3.3 TI-RTOS 7与API变更

CC1311 SDK 5.30+版本默认使用TI-RTOS 7,而CC1310使用的是旧版TI-RTOS。TI-RTOS 7更轻量、编译更快,且其配置也集成到了SysConfig中。

主要变更点:

  1. 配置方式:如前所述,RTOS内核配置从app.cfg脚本文件迁移到了SysConfig的图形界面。
  2. DPL(Driver Porting Layer)API:为了增强可移植性,CC1311的示例工程普遍采用了一套名为DPL的中间层API来封装RTOS功能。这意味着你原来直接调用的TI-RTOS API需要替换。
    • Clock模块Clock_Struct,Clock_getTicks()需要改为ClockP_Struct,ClockP_getTicks()
    • Timer模块:如果使用了util_timer.c中的函数,如Timer_start(),需要改为UtilTimer_start()

移植建议:不要试图在旧版RTOS API和新版DPL API之间混用。最好的方法是,在SysConfig中完成RTOS基础配置(如堆栈大小、任务优先级)后,参照CC1311 SDK中的示例代码,将你应用程序中所有与任务、信号量、事件、时钟相关的调用,逐步替换为DPL API或SysConfig生成的新API。

3.4 外设驱动升级:GPIO与UART

外设驱动也有显著变化,主要集中在GPIO和UART上。

  1. GPIO驱动(PIN → GPIO++): CC1310时代,GPIO操作需要通过PIN驱动(管理引脚复用)和GPIO驱动(控制电平)配合使用。在CC1311上,TI将其整合为更强大的GPIO++驱动。新的驱动使用更简洁,例如,打开一个GPIO并设置输出高电平可能只需要几行代码。移植时,你需要根据《GPIO++ Driver Porting Guide》将旧的PIN_open()PIN_setOutputValue()等调用,迁移到新的GPIO_open()GPIO_write()等函数。

  2. UART驱动(UART → UART2): CC1311引入了UART2驱动,其最大改进是利用DMA进行数据收发,极大降低了CPU在串口通信时的负载。虽然API名称从UART_变成了UART2_,但函数的功能和参数大多保持相似,移植工作量相对较小。主要注意打开配置(UART2_Params)和回调函数(Callback)机制的使用变化。务必参考《UART to UART2 Porting Guide》。

软件移植心得:软件移植最稳妥的策略是“对比移植法”。不要直接在原CC1310工程上修改,而是新建一个CC1311的工程。然后,将原工程中的纯应用逻辑代码(如数据处理、业务状态机)逐模块地复制到新工程中。每复制一个模块,就同步解决该模块依赖的硬件驱动、RTOS服务的配置问题(通过SysConfig和修改API调用)。这样能有效隔离问题,便于调试。

4. 构建多频段混合系统:CC1311与CC110L的协同设计

完成单芯片移植后,我们面临一个更复杂的场景:如何让一个设备同时支持915MHz(TI 15.4协议栈)、433MHz和345MHz(兼容传统OOK设备)?答案是利用CC1311与CC110L进行组合设计。

4.1 系统架构与方案选型

为什么是CC1311 + CC110L?

  • CC1311:性能强大的无线MCU,内置Cortex-M4内核和优秀的射频内核,完美运行TI 15.4协议栈,处理915MHz频段的高速率、低功耗网络通信。
  • CC110L:一款经典的Sub-1GHz低功耗射频收发器。它支持多种调制方式(FSK, GFSK, OOK等),且通过SPI接口受主控芯片控制,可以灵活工作在345MHz和433MHz频段。其电路成熟,成本较低。

系统工作流程:MCU(CC1311)作为主控制器,通过SPI总线控制CC110L。当需要与915MHz网络中的设备通信时,CC1311使用自身的射频部分。当需要接收或发送345MHz/433MHz的OOK信号(例如,监听霍尼韦尔门磁传感器)时,CC1311则通过SPI配置CC110L的工作频率、调制方式和功率,并通过GPIO控制射频开关,将天线路径切换到CC110L。

4.2 射频前端拓扑设计与BOM考量

射频路径设计是本系统的核心难点,目标是让两路射频信号(CC1311的915MHz和CC110L的345MHz/433MHz)高效、互不干扰地共用天线或使用独立天线。

推荐拓扑结构:

CC1311 RFIO -> 匹配网络 -> SPDT开关1 (端口A) CC110L RFIO -> 匹配网络 -> 巴伦(Balun) -> 低通滤波器(LPF) -> SPDT开关2 (端口A) SPDT开关1 (端口B) & SPDT开关2 (端口B) -> 双工器/合路器 -> 天线 (915MHz) SPDT开关1 (端口C) -> 匹配网络 -> 天线 (345/433MHz)

(注:这是一个简化示意图,实际需根据频段间隔和隔离度要求选择合路器或更复杂的开关矩阵。)

设计要点与BOM选择:

  1. 频段隔离:915MHz与345MHz/433MHz频率间隔较大,可以使用双工器(Diplexer)将它们合并到一根天线上。双工器能有效抑制带外干扰,但会增加插入损耗。如果对损耗敏感,或使用两根独立天线,则只需用SPDT(单刀双掷)开关进行切换。
  2. CC110L的匹配网络:这是性能优化的关键。CC110L的输出需要经过一个巴伦(Balun)将差分信号转为单端,然后接低通滤波器(LPF)抑制谐波。参考设计中的BOM(物料清单)是针对345MHz优化的。如果你想同时在433MHz也有良好表现,可能需要折衷。
    • 一个现实问题:一个LC匹配网络很难在345MHz和433MHz两个频点同时达到最优。文中提到,如果为345MHz优化LPF,433MHz的输出功率可能会从12dBm下降到8dBm。你需要根据产品的主次频段需求来决定优化方向。
  3. 天线设计:345MHz和433MHz波长较长(约87cm和69cm),天线尺寸较大。在小型设备中,天线带宽可能只有10-20MHz。因此,很难用一根天线同时高效覆盖345MHz和433MHz。文中建议为这两个频段设计两个独立的匹配网络,甚至使用两根天线。如果空间实在有限,必须共用一根天线,则需接受在非中心频点上的性能下降(如效率降低、带宽变窄)。
  4. 法规符合性(以FCC为例):在345MHz频段,FCC 15.231条款对发射功率、占空比有严格限制。计算表明,最大允许等效辐射功率(ERP)对应约-13.3dBm。即使利用占空比放宽,最大功率也仅在+6.7dBm左右。而CC110L在该频段最大可输出+12dBm。因此,在软件上必须通过配置CC110L的PA_TABLE寄存器,将其输出功率限制在法规允许范围内,这是产品认证通过的前提。

4.3 PCB布局(Layout)实战要点

射频电路的性能一半靠设计,一半靠Layout。对于这种混合系统,布局更为关键。

CC1311部分布局守则:

  • 电源去耦:在芯片的每个电源引脚(VDDR, VDDS)附近,严格按照数据手册推荐,放置不同容值的陶瓷电容(如1μF, 100nF, 10pF),并优先使用0402或更小封装以减小寄生电感。电源走线要宽,形成低阻抗路径。
  • 射频路径:从CC1311的RFIO引脚到匹配网络、再到开关或滤波器的路径必须尽可能短。使用微带线控制50欧姆阻抗。路径周围用地过孔“围栏”进行屏蔽,避免与其他数字信号线交叉。
  • 晶振:48MHz晶振及其负载电容必须紧靠芯片相关引脚布局。晶振下方和周围必须保持完整的地平面,且禁止在晶振区域走任何高速信号线。

CC110L部分布局守则:

  • 模拟与数字隔离:CC110L的电源最好使用独立的LDO供电,并与数字电源(如CC1311的I/O电源)通过磁珠或0欧电阻隔离。模拟地(AGND)和数字地(DGND)在芯片下方单点连接。
  • 射频元件布局:巴伦、电感和电容等匹配元件必须紧靠CC110L的RF_N和RF_P引脚。这些元件之间的走线要短而直,最好放在顶层,减少过孔。
  • SPI布线:虽然SPI是数字信号,但为了减少对射频的干扰,也应尽量缩短走线长度,并远离射频路径。可以在SPI线上串联小电阻(如22欧姆)来减缓边沿,降低谐波辐射。

4.4 软件配置与测试验证

硬件完成后,软件配置是让系统跑起来的关键。

  1. CC110L的驱动与配置:CC1311通过SPI控制CC110L。你需要实现CC110L的寄存器读写函数。TI提供的SmartRF Studio 7软件是神器,它可以图形化配置CC110L的所有寄存器(频率、数据率、调制方式、功率等),并直接生成C代码数组,你只需将其写入初始化流程即可。
  2. OOK调制配置:对于345MHz的OOK调制,重点配置MDMCFG2(调制方式选择OOK)、PKTCTRL0(数据包格式)以及PA_TABLE寄存器。如文中所述,通过调整PA_TABLE0的值(例如设置为0x51)可以控制“0”比特的发射功率,从而实现所需的调制深度。
  3. 射频开关控制:CC1311需要通过GPIO控制外部SPDT开关,切换天线路径。在发送/接收不同频段信号前,必须提前配置好开关状态,并留出足够的切换稳定时间(通常为几微秒到几十微秒)。
  4. 性能测试
    • 发射测试:使用频谱分析仪,测量各频段下的输出功率、谐波抑制比(确保符合法规)、以及调制波形(用示波器看OOK波形是否干净)。
    • 接收灵敏度测试:使用矢量信号源发射标准信号,逐渐降低功率,直到CC110L或CC1311的误码率(BER)达到1%(或应用可接受的水平),此时的信号功率即为接收灵敏度。文中在345MHz OOK模式下达到了-104.5dBm的灵敏度,这是一个不错的指标。
    • 共存测试:让CC1311在915MHz频段持续通信,同时CC110L在345MHz频段收发,观察两者是否有相互干扰,导致误包率升高。

5. 常见问题、调试技巧与经验总结

在实际开发中,你一定会遇到各种预料之外的问题。这里分享一些典型的坑和排查思路。

5.1 移植与系统调试问题速查表

问题现象可能原因排查思路与解决方案
程序无法烧录或启动1. 晶振未起振。
2. CCFG配置错误,禁用了调试接口。
3. 电源电压不正常。
1. 用示波器测量48MHz晶振引脚,确认波形幅值频率正常。检查负载电容。
2. 检查SysConfig中Device -> CCFG设置,确保DEBUGGER_LOCK未被使能。
3. 测量芯片各电源引脚电压,确保在额定范围内。
SysConfig生成的代码编译报错1. 软件包(SDK)版本不匹配。
2. 工程路径包含中文或特殊字符。
1. 确认使用的CCS/SDK版本与SysConfig模板版本兼容。建议使用TI官方推荐组合。
2. 将工程移动到全英文路径下。
GPIO或UART功能不正常1. SysConfig中引脚配置冲突或错误。
2. 未调用GPIO_open()UART2_open()
3. 驱动API使用错误(新旧API混用)。
1. 在SysConfig中检查引脚分配图,确认无冲突。
2. 确保在任务初始化时调用了驱动的open函数。
3. 对照Porting Guide,将所有旧API替换为新API。
CC110L SPI通信失败1. SPI引脚接线错误。
2. SPI时钟极性/相位(CPOL/CPHA)设置与CC110L要求不符。
3. CC110L未进入正确状态(如未拉低CSn)。
1. 用逻辑分析仪抓取SPI波形,检查CSn, SCLK, MOSI, MISO信号。
2. CC110L通常要求CPOL=0, CPHA=0。检查CC1311的SPI主模式配置。
3. 确保在操作CC110L前,其CSn引脚被正确拉低。
CC110L发射功率不足或频谱异常1. 射频匹配网络偏离设计值。
2. PA_TABLE寄存器配置错误。
3. 电源供电能力不足,在大功率发射时被拉低。
1. 用网络分析仪测量匹配网络的S11参数,调整电感电容值,使其在目标频点谐振。
2. 使用SmartRF Studio生成正确的PA表配置,特别是对于OOK调制,需单独设置“0”和“1”的功率值。
3. 测量发射时CC110L的电源引脚电压波形,确认无大幅跌落。可增加电源去耦电容或使用输出能力更强的LDO。
多频段间相互干扰1. 射频开关隔离度不够。
2. 电源噪声耦合。
3. 软件切换时序不当,导致一个射频正在工作时另一个被开启。
1. 选择隔离度更高的射频开关(如>30dB)。
2. 加强电源滤波,模拟射频部分使用独立电源树。
3. 在软件中严格设计状态机,确保在切换频段前,当前活跃的射频部分已完全关闭(进入IDLE或休眠状态),并等待开关稳定后再开启另一部分。

5.2 射频性能优化心得

  1. 匹配网络调试:理论计算只是起点,最终一定要用网络分析仪进行调试。通过焊接替换不同值的电感电容,观察S11(回波损耗)曲线,找到最低点(即谐振点)落在目标频点。没有网分的情况下,可以用频谱仪和信号源做“穷举法”测试,但效率极低。
  2. 天线是最终瓶颈:再好的射频电路,如果天线效率低下,一切白搭。对于345/433MHz这种低频段,PCB天线(如倒F天线)尺寸大、效率难做高。如果空间允许,优先考虑外接鞭状天线或弹簧天线,能极大改善性能。
  3. 灵敏度与选择性权衡:CC110L的接收带宽(RX BW)设置会影响灵敏度和抗邻道干扰能力。带宽越窄,灵敏度可能越高,但对晶振频率误差和发射端频率漂移的要求也越苛刻。文中提到OOK模式使用了58kHz的接收带宽,这是一个在灵敏度和容错性之间取得平衡的值。你需要根据实际应用环境的数据率和频率稳定度来调整这个参数。

5.3 关于法规认证的提前规划

如果你的产品需要上市销售,无线电法规认证(如FCC, CE)是必须跨过的门槛。在设计初期就要考虑:

  • 频段与功率:严格按目标市场法规设计频点和输出功率。文中提到的FCC 15.231对345MHz的限制就是典型例子。
  • 谐波与杂散发射:低通滤波器(LPF)的设计至关重要,它决定了谐波抑制水平。务必在最终测试中,用频谱仪扫描至10次谐波,确保所有杂散发射都在法规限值以下。
  • 预认证测试:在板子定型前,可以送测一些关键项目(如传导发射、辐射发射)进行预扫描,提前发现潜在问题,避免后期大面积改板。

从CC1310到CC1311的移植,以及多频段混合系统的设计,是一个从芯片升级到系统架构创新的完整过程。硬件上的Pin-to-Pin兼容降低了入门门槛,但深入软件框架的变迁才能真正释放新平台的潜力。而结合CC110L构建多频段系统,则体现了在物联网碎片化市场下,一种务实且灵活的解决方案思路。整个过程中,最深的体会是:射频设计无小事,每一个元件的选型、每一毫米的走线、每一个寄存器的配置,都可能对最终性能产生决定性影响。理论计算、仿真工具(如ADS)和实际仪器调试(网分、谱仪)三者结合,才是通往稳定可靠射频产品的唯一路径。最后,务必善用TI提供的海量资源,从数据手册、应用笔记、参考设计到E2E支持论坛,绝大多数你遇到的问题,前辈们都可能已经踩过坑并找到了答案。