• Z-Stack


    CCM - Counter with CBC-MAC          (mode of operation)
    HAL - Hardware Abstraction Layer        ( 硬件抽象层)   提供接口访问TIMER,GPIO,UART,ADC等
    PAN - Personal Area Network           (个人局域网)
    RF - Radio Frequency              (射频)
    RSSI - Received Signal Strength Indicator   (接收信号强度指示)

    以简单的无线数据通信为例,其一般步骤为:

    ① 组网:调用协议栈组网函数、加入网络函数,实现网络的建立和节点的加入

    ② 发送:发送节点调用协议栈的发送函数,实现数据无线发送

    ③ 接收:接收节点调用协议栈的无线接收函数,实现无线数据接收

      由于协议栈都把这些函数都封装好了,因此我们用起来比较方便。下面是协议栈无线发送函数:

                        

    启动程序

    typedef struct {
    uint16 myAddr;
    uint16 panId;
    uint8 channel;  //RF通道,必须在11-26之间
    uint8 ackRequest;
    #ifdef SECURITY_CCM  //预定义取消加密
    uint8* securityKey;
    uint8* securityNonce;
    #endif
    } basicRfCfg_t;//typedef struct{...} basicRfCfg_t,
                    //在这里basicRfCfg_t类似于一个新的变量名称            

     basicRfCfg_t 的数据结构,并初始化其中的成员,在basic_rf.h 代码中可以找到

    uint8 basicRfInit(basicRfCfg_t* pRfConfig)//调用 basicRfInit()函数进行协议的初始化,在 basic_rf.c 代码中可以找到

    函数功能:对 Basic RF 的数据结构初始化,设置模块的传输通道,短地址,PAD ID。

    发送程序

    1. 创建一个 buffer,把 payload 放入其中。Payload 最大为103 个字节
    2. 调用 basicRfSendPacket()函数发送,并查看其返回值
    uint8 basicRfSendPacket(uint16 destAddr, uint8* pPayload, uint8 length)
    //destAddr 目的短地址
    //pPayload 指向发送缓冲区的指针
    //length 发送数据长度

    函数功能:给目的短地址发送指定长度的数据,发送成功刚返回 SUCCESS,失败则返回 FAILED

    接收程序

    uint8 basicRfPacketIsReady(void)
    //  上层通过 basicRfPacketIsReady()函数来检查是否收到一个新数据包

    函数功能:检查模块是否已经可以接收下一个数据,如果准备好刚返回TRUE

    uint8 basicRfReceive(uint8* pRxData, uint8 len,int16* pRssi)
    //用 basicRfReceive()函数,把收到的数据复制到 buffer 中

    函数功能:接收来自 Basic RF 层的数据包,并为所接收的数据和 RSSI 值

  • 相关阅读:
    DS博客作业02--线性表
    DS博客作业01--日期抽象数据类型设计与实现
    C语言博客作业06--结构体&文件
    C语言博客05--指针
    DS博客作业07--查找
    DS博客作业06--图
    DS博客作业05--树
    DS博客作业03--栈和队列
    DS博客作业02--线性表
    DS博客作业01--日期抽象数据类型设计与实验
  • 原文地址:https://www.cnblogs.com/Tea1024/p/6791879.html
Copyright © 2020-2023  润新知