资料介绍
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,否则继续等待。一次数据发送成功后,关闭发送使能,进入下一次数据循环发送状态。3.3 无线接收程序流程无线接收程序负责获取有效载荷数据长度,并读取接收FIFO中的有效数据,其流程如图4所示。在程序完成SPI和SI4432的初始化后,打开“有效包中断”和“同步字检测中断”,将其他中断都禁止,并使能接收功能。等待nIRQ引脚因中断产生而被拉低,读取中断标志位拉高nIRQ引脚。若引脚 nIRQ 变成低电平,表示接收到有效数据包,通过寄存器4 BH读取包长度信息,并通过SPI访问寄存器7 FH从接收 FIFO中读取接收到的数据,之后关闭接收使能,进入下一次数据接收状态。设计中参考了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×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)如果由于信道忙无法发出数据,则发送节点将返回信道忙错误。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发送机制在无线通信过程中,在一个通信域内可能存在几十个乃至几百个无线终端同时工作。在这样复杂的无线网络中,无线数据发送频繁,发生碰撞不可避免。当数据发送发生碰撞时,意味着有数据帧丢失。为了尽可能地避免由于发送数据时发生碰撞而导致数据帧的丢失,必须引入一种可以避免发送碰撞的机制。(mbbeetchina)
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 无线数传模块SI4463、SI4438、SI4432方案无线通信比对
- SI4432射频芯片方案物联网无线通信模块数传的典型应用
- DL-RTS4432高性能FSK无线收发模块 0次下载
- 基于Si4432无线收发系统设计应用 55次下载
- 基于LPC1766与Si4432的无线数据传输系统设计 10次下载
- STM32L152和SI4432的无线网络系统设计 47次下载
- 关于射频si4432的设计 5次下载
- 基于si4432的无线自组网抄表系统的设计_李冬 9次下载
- SI4432数据手册 11次下载
- Si4432射频芯片应用介绍 7次下载
- STM8 SPI 4432 收发1205 23次下载
- SI4432_datasheet 5次下载
- Si4432基于STM32的程序 400次下载
- 基于Si4432火灾监控系统的无线温度传感系统设计 212次下载
- 关于Si4432的无线射频收发系统设计
- 高性能2.4G SOC无线收发芯片XL2401D产品介绍 703次阅读
- 介绍一款高性能低功耗的SOC集成无线收发芯片—XL2409 1088次阅读
- 高性能低功耗SOC集成无线收发芯片XL2409介绍 1599次阅读
- 无线收发系统架构简述 979次阅读
- 可编程无线收发芯片TH71221的组成结构、性能特点及应用 2818次阅读
- Si446x系列收发器的性能特点及智能电网应用参考设计 5147次阅读
- 基于串口透明传输的无线射频收发系统设计 1662次阅读
- 基于通信芯片SI4432和μC/OS-II操作系统实现无线通信系统的设计 1636次阅读
- PSoC 6高性能超低功耗IoT应用方案 4238次阅读
- 基于搭建一种具有优秀可移植性的高性能通用软件无线电平台的目的 4165次阅读
- Silicon Labs无线收发器SI446x的应用技巧详细教程 2003次阅读
- Silicon Labs发布满足高速收发器需求的新一代高性能振荡器Si54x 4366次阅读
- 基于RF收发器Si4432A的无线射频收发系统设计 1528次阅读
- 单芯片无线MCU性能分析详解 5292次阅读
- 单片2.4GHz无线收发芯片nRF24E1的应用 1945次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1489次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 91次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 9次下载 | 免费
- 6基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
- 7基于单片机和 SG3525的程控开关电源设计
- 0.23 MB | 3次下载 | 免费
- 8基于单片机的红外风扇遥控
- 0.23 MB | 3次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30319次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537791次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233045次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多