DWM1000 Blink数据结构 -- 帧过滤第一节

数据结构分析主要学习DWM1000 帧过滤功能,希望在目前DS-TWR定位系统中增加中断和帧过滤功能,帧过滤功能可以有效减少系统中的各个模块同时收发数据时的干扰问题,从而极大的提供系统稳定性以及刷新频率。帧过滤以及中断是近期学习的重点,学习基于官方代码为准,部分摘录官方代码进行说明解释。

1 Blink 数据格式

1.1 Blink 数据结构格式定义

1.2 Blink数据结构代码定义

typedef struct
{
    uint8 frameCtrl;                                 //  frame control bytes 00
    uint8 seqNum;                                   //  sequence_number 01
    uint8 tagID[BLINK_FRAME_SOURCE_ADDRESS];        //  02-09 64 bit address
    uint8 fcs[2] ;                                  //  10-11 CRC
} iso_IEEE_EUI64_blink_msg ;

Blink 数据供12byte,用于需要填写的10byte,CRC是硬件自动附加在数据上的,无需用户处理,只需要留空即可。Blink 数据中使用的地址为IEEE 64位长地址。

1.3 EVK1000 TAG发送blink 代码

memcpy(inst->blinkmsg.tagID, inst->eui64, ADDR_BYTE_SIZE_L);
//blink frames with IEEE EUI-64 tag ID
inst->blinkmsg.frameCtrl = 0xC5 ;
inst->blinkmsg.seqNum = inst->frameSN++;

dwt_writetxdata(flength, (uint8 *)  (&inst->blinkmsg), 0) ; // write the frame data
dwt_writetxfctrl(flength, 0, 1);

上述代码摘录拼凑而成

1.4 EVK1000 ANTHOR接收blink 代码

//主循环禁止帧过滤dwt_enableframefilter(DWT_FF_NOTYPE_EN); //disable frame filtering
inst->frameFilteringEnabled = 0 ;

//接收回调函数
switch(rxd->fctrl[0])
{
    //blink type frame
    case 0xC5:
    if(rxd->datalength == 12)
    {
        rxd_event = DWT_SIG_RX_BLINK;
    }
    else
        rxd_event = SIG_RX_UNKNOWN;
    break;

 Blink 是自定义数据结构,非标准IEEE 802.15.4 MAC 数据格式,在接收这样的数据结构时需要 禁止帧过滤功能。

Frame filtering is a feature of the DW1000 IC that can parse the received data of a frame that complies with the MAC encoding defined in the IEEE 802.15.4–2011 standard, identifying the frame type and its
destination address fields, match these against the IC’s own address information, and only accept frames that pass the filtering rules.

  

2 标准IEEE 802.15.4 MAC 数据

2.1 标准IEEE 802.15.4 MAC 数据格式定义

1.6 标准IEEE 802.15.4 MAC 数据代码定义

typedef struct
{
    uint8 frameCtrl[2];                             //  frame control bytes 00-01
    uint8 seqNum;                                   //  sequence_number 02
    uint8 panID[2];                                 //  PAN ID 03-04
    uint8 destAddr[ADDR_BYTE_SIZE_S];                 //  05-06
    uint8 sourceAddr[ADDR_BYTE_SIZE_S];               //  07-08
    uint8 messageData[MAX_USER_PAYLOAD_STRING_SS] ; //  09-124 (application data and any user payload)
    uint8 fcs[2] ;                                  //  125-126  we allow space for the CRC as it is logically part of the message. However ScenSor TX calculates and adds these bytes.
} srd_msg_dsss ;

我们分析使用短地址方式,从代码结构体定义可以看出没有Source PAN Identifier 这一项。messageData 为实际传输的数据

原文地址:https://www.cnblogs.com/tuzhuke/p/10261192.html

时间: 2024-08-30 16:18:26

DWM1000 Blink数据结构 -- 帧过滤第一节的相关文章

DWM1000 帧过滤代码实现

帧过滤功能可以在同一个环境内组建多个网络而不干扰(非频段不同),可以通过PANID(网络ID)区分不同网络,不同网络中的模块无法直接通信, 再之,利用短地址,网络中可以同时有多个模块发送信息,而接收端会根据信息短地址不同而自动过滤. 1 发送端部分,组建发送结构体,按照MAC 数据结构组织. srd_msg_dsss msg_f ; // ranging message frame with 16-bit addresses int psduLength = 0; //set frame typ

第一节 基本概念

变量 在erlang中所有的变量名必须以大写字母开头. 例如:X = 1.在shell中输入X就会得到1.erlang中的变量有一个特点,就是一旦被赋值不可改变. 例如:X = 1.已经在之前的shell被赋值,再次赋值X = 2.的时候就会报错** exception error: no match of right hand side value 2 "="在erlang中,变量获得值是一次成功模式匹配操作的结果.别的语言中,=是赋值语句,但是在erlang中,=是一次模式匹配操作

【v2.x OGE-example 第一节】 绘制实体

[v2.x OGE-example 第一节] 绘制实体 前言: OGE即 OGEngine,是由橙子游戏开发的基于Java支持跨平台的开源游戏引,从12年4月项目成立至今已经有2年多的发展历程.在此期间基于OGEngine开发的项目已经有很多成功投放市场.从正式开源开始,好多开发者开始加入OGEngine的行列,同时在官网.论坛.Q群.看到有好多的问题,大部分是一些新手的问题,经常会被重复的提问.有些是之前用过AndEngine的,对OGEngine的使用会有些出入,开发时不是很顺手.为此今天开

辛星解读之php中的重点函数第一节之数组函数

这里我已经写好它的pdf版本了,比本博客更加适合阅读.首先说一下它在百度网盘的下载地址把:百度网盘下载 ,如果左边连接跪了,可以在浏览器中输入:http://pan.baidu.com/s/1qW5AYzM 来下载.然后说一下它在csdn的下载地址,是免积分的奥,下载地址:csdn资源下载处 ,如果连接不起作用,可以在浏览器输入:http://download.csdn.net/detail/xinguimeng/7697309  来手动下载. 好,我们知道php中函数还是很多的,正是这些函数为

第一节,基本用法

推荐播客:我的Tensorflow学习之路 http://wiki.jikexueyuan.com/project/tensorflow-zh/get_started/basic_usage.html 项目代码: https://github.com/yongyehuang/Tensorflow-Tutorial 一 TensorFlow安装 TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tsnsor(张量)意味着N维数组,Flo

【软件构造】第七章第一节 健壮性和正确性的区别

第七章第一节  健壮性和正确性的区别 第七章:进入软件构造最关键的质量特性 --健壮性和正确性. 本节在1-2节的基础上,重申了Robustness and Correctness的重要性,澄清了二者之 间的差异,并指明了在软件构造中处理二 者的典型技术(防御式编程.异常处理. 测试.调试等) Outline 健壮性(Robustness)和正确性(correctness) 如何测量健壮性和正确性 Notes ## 健壮性(Robustness)和正确性(correctness) [健壮性] 定

火云开发课堂 - 《Shader从入门到精通》系列 第一节:Shader介绍与工程搭建

<Shader从入门到精通>系列在线课程 第一节:Shader介绍与工程搭建 视频地址:http://edu.csdn.net/course/detail/1441/22665?auto_start=1 交流论坛:http://www.firestonegames.com/bbs/forum.php 工程下载地址:请成为正式学员获取工程 课程截图: 项目实例: 版权声明:本文为博主原创文章,未经博主允许不得转载.

杨森翔:春节文化大观上编 第三章 春节古诗词 目录 第一节:春节诗词概述 一、 除夕诗词概述 二、元日诗词概述 三、 元宵诗词概述 第二节:春节古诗词拾萃

杨森翔:春节文化大观上编 第三章 春节古诗词 目录 第一节:春节诗词概述 一. 除夕诗词概述 二.元日诗词概述 三. 元宵诗词概述 第二节:春节古诗词拾萃 一.腊祭诗词 二.祭灶诗词 三.除夕诗词 四.元旦诗词 五.人日诗词 六.元宵诗词 第一节:春节古诗词概述 中国的春节,作为除旧迎新的节日,时间相当长,从年前的腊月二十三,天空中就似乎弥漫了节日的气息.这种节日的气氛,在保持传统风俗较好的地方,甚至会持续到二月二龙抬头的时候,但欢度春节的高潮,应该说是自除夕始一直到上元之夜.因此,历代歌咏和反

第一节课作业

1 C语言是在国内外广泛使用的一种计算机语言.其语言功能丰富.表达能力强.使用灵活方便.既具有高级语言的优点,又具有低级语言的许多特点,适合编写系统软件.其功能强大,不仅用在计算机上广泛用在电子,机械等方面上,而且,所有的windows,Unix,Linux,Mac,os/2,无一例外,哪一个不是C语言写的?很多新型的语言如,C++,Java,C#,J#,perl...都是衍生自C语言.掌握了C语言,可以说你就掌握了很多门语言. 学习C程序这门课一年了,这是我们学的第一门专业课,在大学里C语言不