《电子技术应用》
您所在的位置:首页 > 通信与网络 > 设计应用 > 基于SI4432的高性能无线收发应用平台设计
基于SI4432的高性能无线收发应用平台设计
来源:电子技术应用2010年第12期
张 玲, 刘九维, 何 伟
重庆大学 通信工程学院, 重庆 400030
摘要: 针对无线产品设计中的产品可靠性、功耗、有效距离和成本问题,设计了一款基于SI4432和STM32F103的高性能无线收发应用平台。设计中实现了ACK双向通信、精简CSMA/CA发送机制,增强了系统的可靠性,减少了由于数据冲突造成的数据丢失现象,可满足不同的应用需求。实验表明,该平台简化了无线产品的设计,可应用于安防、无线抄表、无线传感器网络等系统。
中图分类号: TN92
文献标识码: A
文章编号: 0258-7998(2010)12-0124-04
Design of high-performance wireless transceiver application platform based on SI4432
ZHANG Ling, LIU Jiu Wei, HE Wei
College of Communication Engineering, Chongqing University, Chongqing 400030, China
Abstract: Against the reliability, power consumption, valid transmit range and costs which are greatly concerned in the design of wireless products, in this paper a high-performance wireless transceiver application platform based on STM32F103 and SI4432 is designed and SI4432. In order to meet the needs of different applications, designed the ACK bidirectional communication and the streamlined sending mechanisms based on CSMA/CA, which increased the stability of the system and reduced the data loss caused by data conflict. Experiments show that the platform can simplify the design of wireless products, so it can be widely used in home security,wireless meter reading, sensor networks and other systems.
Key words : STM32F103; SI4432; ACK bidirectional communication; CSMA/CA

    近些年来,随着集成电路技术的发展,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),具有&ldquo;距离之王&rdquo;的美誉(空旷距离可达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),最后打开&ldquo;发送完中断允许&rdquo;标志,将其他中断都禁止。完成中断使能后,使能发送功能,数据开始发送。当数据包发送完时,引脚nIRQ会被拉低产生一个低电平并通知STM32数据包已发送完毕,当nIRQ引脚变为低时读取中断状态并拉高 nIRQ,否则继续等待。一次数据发送成功后,关闭发送使能,进入下一次数据循环发送状态。


3.3 无线接收程序流程
    无线接收程序负责获取有效载荷数据长度,并读取接收FIFO中的有效数据,其流程如图4所示。在程序完成SPI和SI4432的初始化后,打开&ldquo;有效包中断&rdquo;和&ldquo;同步字检测中断&rdquo;,将其他中断都禁止,并使能接收功能。等待nIRQ引脚因中断产生而被拉低,读取中断标志位拉高nIRQ引脚。若引脚 nIRQ 变成低电平,表示接收到有效数据包,通过寄存器4 BH读取包长度信息,并通过SPI访问寄存器7 FH从接收 FIFO中读取接收到的数据,之后关闭接收使能,进入下一次数据接收状态。

4 高性能应用设计
    在实际的产品应用中,通常采用ACK握手信号、载波监听多路访问/冲突防止(CSMA/CA)等机制来保证数据收发的高效、稳定、可靠。而SI4432硬件不支持这些机制。为了增加本系统的高效适应性,设计了以下高性能通信机制。
4.1 基于ACK的双向通信
    在无线数据传输过程中,为了确保发送过程的可靠性,发送端需要一应答信号以确保发送数据已被准确无误接收。本设计中,接收端也可以通过ACK数据包发送有效数据至发送端,大大提高了信道的使用率。应答信号数据包格式如图5所示。

    图5中,ACK控制字节的数据格式如图6所示。如果发送节点需要一反馈以判断数据包是否到达目的地,则需要将应答请求位(ACKRQ位)置1。发送完数据包以后,自动转为接收状态,等待ACK状态的到来并接收应答信号数据包。如果接收节点接收到有效数据包且检测到ACK控制字节中的ACKRQ位为1,则会自动产生应答信号并且发送至发送节点。应答信息数据包中,ACK控制字节中的应答标志位(ACK位)被置1,并且有效数据为接收节点发给发送方的数据(当不需要发送有用数据时,全部用0x00填充),同时源地址和目的地址相互交换。具体通信过程如图7所示。

    程序中,为了防止发送节点长时间地等待,设定只需等待固定的时间,等待的时间长短主要由实际的网络参数决定:是否使能了包转发、实际的数据速率等。若在规定的时间内,发送方未能接收到ACK数据包,则进入ACK接收错误状态;若成功接收将进入休眠、发送或是空闲状态。
 使用ACK信号可以实现收发节点的双向通信,能很好地解决手动切换无线收发状态导致双方互相等待的问题,同时只在需要ACK信号的应用中才附带应答有效信息,减少不必要的通信过程,大大提高了系统的稳定性和高效性。
4.2 精简的CSMA/CA发送机制
 在无线通信过程中,在一个通信域内可能存在几十个乃至几百个无线终端同时工作。在这样复杂的无线网络中,无线数据发送频繁,发生碰撞不可避免。当数据发送发生碰撞时,意味着有数据帧丢失。为了尽可能地避免由于发送数据时发生碰撞而导致数据帧的丢失,必须引入一种可以避免发送碰撞的机制。
  设计中参考了802.15.4中CSMA/CA的相关原理,采用非信标的方式实现符合系统要求的精简的CSMA/CA发送机制[3]。非信标的方式即:结点若有数据要发送,需要先通过CSMA/CA机制进行信道监测,也就是在等待一个随机时间后,对当前信道进行监听,若监测到信道空闲,就可以开始传送数据;若监测到信道忙,则需要重新等待一个随机时间,然后再继续监听信道,具体实现流程如图8[4-5]所示。步骤如下:
  (1)在开始发送数据之前先监听信道0.5 ms。如果在这段时间内信道是空闲的(通过读取寄存器26 H的接收信号强度(RSSI)值,则与设定的信道空闲阈值做比较来判断,发送节点将随机延时0或1个时隙(1时隙为1 ms)。如果信道仍然是空闲的就开始发送数据;若信道变得忙碌,则跳到第(3)步骤。
  (2)如果在0.5 ms内信道为忙,则发送节点每隔0.5 ms采样一次RSSI值,直到RSSI值小于设定的门阈值或是采样次数达到10次。如果采样次数达到10次,则跳转到步骤(5)。
  (3)若信道仍然为忙,则发送方将再等待一随机时间,等待时间的大小是由下式确定:
    RandomTime = n&times;time[1:0]
其中,n是0~15中的一个随机数,time[1:0]可以设定为固定的时间(0.25 ms、0.5 ms、1 ms、2 ms),可以根据应用的需要选择不同的值。
  (4)如果在这段时间内信道是空闲的,则发送数据;若忙碌则跳转到步骤(5)。
    (5)若尝试的次数超出限定值(MAX_TRY_NUMBER),则跳转到步骤(6)。
  (6)如果由于信道忙无法发出数据,则发送节点将返回信道忙错误。

    为了验证精简CSMA/CA发送机制的性能,在空旷场地进行了多节点(1个接收4个发送节点)数据收发测试,发送5 000次,MAX_TRY_NUMBER=4,实验结果如表1所示。

    由表1可以看出,当距离近、传输速率低时,两种情况丢包率为0;当距离远且传输速率高时,未使用CSMA/CA的丢包率随着距离和速率的增加而大幅增加,而使用CSMA/CA的丢包率则很小,其性能最大可提高28倍。因此,使用精简的CSMA/CA发送机制可以大大减少由于数据冲突而产生的丢包概率,从而提高了通信吞吐率。
5 低功耗处理
    STM32和SI4432是模块的耗电&ldquo;大户&rdquo;,但它们都提供了低功耗运行功能。STM32支持三种省电模式:睡眠、停机和待机,并带有自动唤醒功能。在本系统中STM32的常态为待机,在接收到任何中断时,将从待机状态切换到正常状态,在执行完任务后,立即从正常状态切换回待机状态。而SI4432中集成了一个基于内部32.768 kHz RC振荡器的定时唤醒器,可以从睡眠模式定期唤醒芯片,而且SI4432内部集成的功放(PA)的输出功率是可编程的,工作电流与发射功率成正比,可根据RSSI的值来动态调整输出功率的值,当RSSI的值大时可减小输出功率;反之,则可增大输出功率[2]。
    本文设计的无线收发模块可用于一对一、一对多以及网状网近距离无线通信环境中,系统工作稳定可靠,具有很好的通用性。因STM32自带ADC,SI4432自带温度传感器,稍作改动就可以应用到安防、自动抄表、传感器网络、无线遥控等一些短距离无线通信场合。该平台具有较高的应用价值,为无线数据传输提供了一个很好的解决方案。
参考文献
[1] STMicroelectronics Inc. STM32F10xxx_reference_manual[R]. 2008.
[2] Silicon Laboratories Inc. Si4432 user&prime;s manual[R].2009.
[3] IEEE Std 802. part 15.4: wireless medium access control (MAC) and physical layer(PHY) specifications for lowrate wirelesspersonal area networks(WPANs)[S]. IEEE,  2006.
[4] Silicon Laboratories Inc. EZMACPRO user&prime;s guide[R].  2009.
[5] 郑朝霞,邹雪城,姜天杰,等. WSN中CSMA/CA协处理器的软硬协同设计[J]. 固体电子学研究与进展,
2009,29(1):132-137.

此内容为AET网站原创,未经授权禁止转载。