近些年来,随着集成电路技术的发展,ISM频段单芯片的无线数据通信IC的性能日益提高,短距离无线应用领域也在不断地扩大,其中包括消费电子、工业控制、安防、自动抄表等诸多领域。数据的无线收发在无线产品设计中占有很大的比重。为缩短产品设计周期以及提高产品的稳定性,使产品设计工程师在设计过程中只需关注系统应用的设计,而将数据收发交付一种成熟稳定的收发系统来完成。为此,本文设计了一种基于SI4432+STM32F103的高性能无线收发平台。
1 STM32F103和SI4432芯片简介
STM32系列是采用ARM CortexTM-M3 内核的闪存微控制器,所有功能都具有业界最优的功耗水平。在结合了高性能(最高72 MHz频率)、低功耗(睡眠、停机和待机模式)和低电压(可2.0 V~3.6 V供电)特性[1]的同时保持了高度的集成性能和简易的开发特性,为用户提供最大程度的灵活性。
SI4432是Silicon Labs公司的ISM频段收发一体芯片,最大输出功率达到了+20 dBm(100 mW),具有“距离之王”的美誉(空旷距离可达2 000 m)。SI4432具有特有的连续频率覆盖范围(240 MHz~960 MHz)、宽工作电压(+1.8 V~+3.6 V)、高灵敏度(在BER<0.1%, 数据速率2.0 kb/s时为-118 dBm)等特点,还集成了一些可节省应用成本的特性,如唤醒定时器、温度传感器、发射和接收数据FIFO、高性能ADC[2],这些特性可大幅简化系统设计师的工作,并允许使用低端的微控制器。高集成度使得外围仅需一个30 MHz的晶体和几个用于匹配/滤波的无源器,因此非常适用于对尺寸和成本敏感的大批量生产中的应用。
2 硬件设计
该平台主要由微处理器ARM7 STM32F103(以下简称STM32)和RF收发芯片SI4432组成。STM32通过SPI接口对SI4432进行初始化配置、数据收发控制等,而SI4432通过nIRQ脚将相应的中断发送至STM32。该平台采用单天线进行数据的收发,所以必须采用RF收发切换开关用于对SI4432的收发状态进行切换, 其中GPIO1控制RF切换开关为发送状态,GPIO2控制RF切换开关为接收状态[2]。系统硬件组成如图1所示。
为满足用户各种不同的设计需求,该平台还提供串口、通用IO口和AD转化接口。其中,AD转化接口可以用于需要处理模拟信号的系统,如有各种传感器的环境监控系统。
3 软件设计
软件编程采用模块化设计思想,系统中各主要功能模块均编成独立的函数由主程序调用。功能模块包括:初始化程序(初始化SPI、 SI4432)、无线发送程序和无线接收程序等。
3.1状态转化
为了最大限度地降低功耗,软件设计中采用SI4432的自动唤醒功能,在没有数据收发时芯片处于空闲状态,定时一段时间后将状态切换至发送或是接收,检查是否有数据的收发。SI4432主要有四种状态:关闭、空闲、发送和接收,这些状态在满足一定的条件时可实现相互转移,状态转移如图2所示。在关闭状态下功耗最低,空闲次之。空闲状态有五种不同的模式,用户可以根据不同的应用灵活选择。这些状态或模式可以在操作模式和功能控制寄存器07H中设定,通过在寄存器07H中设定txon/rxon控制位可以从空闲状态中的任一模式自动转移到发送/接收状态。不同模式/状态下转换需要的时间和功耗都不相同,可以根据系统需要选择最佳的状态和模式。
3.2 无线发送程序流程
无线发送程序负责写入数据载荷,并根据通信协议为数据载荷加上前导码、同步字、数据载荷长度等,形成数据包并将其发送出去,其流程如图3所示。在完成 SPI和 SI4432 的初始化后,通过配置 SI4432 的寄存器3EH来设置包的长度,然后清除发送FIFO,并通过SPI连续写寄存器7FH将待发送数据写入发送 FIFO(字节数小于64 B),最后打开“发送完中断允许”标志,将其他中断都禁止。完成中断使能后,使能发送功能,数据开始发送。当数据包发送完时,引脚nIRQ会被拉低产生一个低电平并通知STM32数据包已发送完毕,当nIRQ引脚变为低时读取中断状态并拉高 nIRQ,否则继续等待。一次数据发送成功后,关闭发送使能,进入下一次数据循环发送状态。