基于BasicRF点对点无线开发基础知识 您所在的位置:网站首页 len函数功能描述 基于BasicRF点对点无线开发基础知识

基于BasicRF点对点无线开发基础知识

2024-07-13 13:12| 来源: 网络整理| 查看: 265

BasicRF点对点概述

BasicRF软件包有四大部分:

硬件层:Hardware Layer。

硬件抽象层:Haware Abstraction Layer。

基本无线传输层:Basic RF Layer。

应用层:Appliaction。

 

 

 

BasicRF的特点:

BasicRF包括了IEEE 802.15.4标准数据包的发送和接收,采用了与IEEE 802.15.4 MAC兼容的数据包结构和ACK结构。在使用中,有如下的功能限制: 不具备“多跳”、“设备扫描”功能。 不提供多种网络设备,如协调器、路由器等。所有的节点为同一等级,只能实现点对点的数据传输。 传输时会等待信道空闲,但不会按照IEEE 802.15.4 CSMA-CA的要求进行两次CCA检测。 不支持数据重传。

 

在basic_rf.h的文件中,有一个basicRfCfg_t类型的数据结构定义,该结构体包含了无线相关的所有参数。 在应用开发中,先创建一个该类型的结构体变量,再根据实际情况,把本机地址、网络ID、通信信道、应答信号和加密设置填充到该结构体变量中。然后再通过basicRfInit(basicRfCfg_t* pRfConfig)初始化函数将参数写入到无线模块中。 注意:两个要建立通信的节点,网络ID和通信信道必须一致。

 

 

 

无线模块初始化

在hal_rf.c文件中,有一个halRfInit()函数,该函数初始化射频无线模块,设置默认配置选项,允许自动确认和允许随机数产生。 在应用开发中,直接调用该函数来初始化无线模块。

 

 

 

 

常用API函数

 

 

 

basicRfInit(basicRfCfg_t *pRfConfig) 无线传输初始化函数

 

basicRfSendPacket(uint16 destAddr, uint8 *pPayload, uint8 length);无线数据发送函数  1、目的地址2、发送数据内容的首地址3、发送数据的长度

在basic_rf.c文件中,有一个basicRfSendPacket()函数,负责无线数据的发送。 该函数有三个参数,依次是: uint16 destAddr———->发送目标的地址 uint8* pPayload———->发送内容的数组 uint8 length———->发送数据的长度 在应用开发中,先创建一个字节数组作为数据发送的缓冲区,将要发送的内容置于数组之中,然后直接调用该无线数据发送函数进行发送即可。 函数执行成功返回:SUCCESS。 函数执行失败返回:FAILED。

 

 

basicRfReceiveOn(void); 开启接收功能

basicRfReceiveOff(void); 关闭接收功能

在无线数据的接收中,首先要查询并判断是否接收到新的数据,如果有,则把接收的数据读出去来,因此需要用到basic_rf.c文件中的2个API函数:

basicRfPacketIsReady(void) 是否有数据需要接受

basicRfReceive(uint8 *pRxData, uint16 len, int16 *pRssi); 数据接收函数pRxData指向一个地址,用于存放接收的内容,len接收数据的长度pRssi表示链路传输质量

首先调用basicRfPacketIsReady()函数来查询是否收到新的数据包,如果有新的数据包,则返回TRUE。新的数据包信息会存放在basicRfRxInfo_t类型结构体的rxi成员中。在应用开发中,我们不需要过多关注该结构体。因为当查询到新的数据包后,调用basicRfReceive()函数就可以把新接收到的数据复制到自定义的数据缓冲区中,然后进行应用开发。

basicRfReceive()函数有三个参数,依次是: uint8* pRxData———->数据接收缓冲区 uint8 len———->要接收的数据长度 int16* pRssi———->无线信号强度,实际应用中填NULL 函数执行成功返回:接收的字节数。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有