首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
DW1000的instance_init
2024-09-02
DWM1000 测距原理简单分析 之 SS-TWR代码分析2 -- [蓝点无限]
蓝点DWM1000 模块已经打样测试完毕,有兴趣的可以申请购买了,更多信息参见 蓝点论坛 正文: 首先将SS 原理介绍中的图片拿过来,将图片印在脑海里. 对于DeviceA 和 DeviceB来说,初始化代码都一样,而后面部分是一个while循环,一直执行测距任务. DeviceA(ex_06a_ss_twr_init ) 部分代码 tx_poll_msg[ALL_MSG_SN_IDX] = frame_seq_nb; dwt_write32bitreg(SYS_STATUS_ID, SYS_S
关于UWB技术:DecaWave公司的DW1000芯片资料
关于人在隧道工作时都需要准确的精确度确定精准的位置.DecaWave公司的DW1000芯片,对定位上的精确度更是再适合不过了.符合IEEE802.15.4-2011超宽带标准.按照数据手册上应该最小误差在10厘米以内.DW1000的最远传输距离为450米(直视距离,非直视距离为45米).芯片功耗低,可双向测距和定位,可作为室内定位. 单电源电压:2.8 V至3.6 V 数据传输速率:110 kbit/s,850 kbit/s和6.8 Mbit/s: 6频段:从3.5 GHz至6.5 GHz 发射
基于UWB技术的DW1000芯片简单解析
近些年来随着物联网和机器人技术的大发展,精确定位技术的热度也随之攀升.目前精确定位的技术有很多,如基于wifi.RFID.zigbee.超声波.UWB等技术都可以实现精准定位.由于技术的不同,精度也不尽相同,造假也不同.本文将讲述基于超宽带技术的定位系统的技术实现框架和流程,由于本文主要参考DECAWAVE公司出品的DW1000芯片相关技术问题,因此对DW1000芯片实现产品化具有推动作用. 自从UWB定位芯片DW1000推向市场,UWB定位终于有了竞争力的方案了,芯片方案的出台给了这个行业良性
DW1000芯片定位技术解析
近些年来随着物联网和机器人技术的大发展,精确定位技术的热度也随之攀升.目前精确定位的技术有很多,如基于wifi.RFID.zigbee.超声波.UWB等技术都可以实现精准定位.由于技术的不同,精度也不尽相同,造假也不同.本文将讲述基于超宽带技术的定位系统的技术实现框架和流程,由于本文主要参考DECAWAVE公司出品的DW1000芯片相关技术问题,因此对DW1000芯片实现产品化具有推动作用. 系统框架 技术DW1000芯片的定位技术主要包括锚站.标签.应用服务器和数据库 锚站:锚站与标签进行无线
DW1000 用户手册中文版 附录3:双向测距(Two-Way Ranging)
由于已经在wode中排版无法直接复制到博客中,故本节博客发布使用了图片. 论坛可下载PDF http://bphero.com.cn/forum.php?mod=viewthread&tid=70&fromuid=2 其中关于SS-TWR原理解释部分可以参见早期博文: https://www.cnblogs.com/tuzhuke/p/9948520.html
DW1000 用户手册中文版 附录2 IEEE-802.15.4 MAC层
由于已经在wode中排版无法直接复制到博客中,故本节博客发布使用了图片. 论坛可下载PDF http://bphero.com.cn/forum.php?mod=viewthread&tid=70&fromuid=2
DW1000 用户手册中文版 第5章 媒体访问控制(帧过滤)
由于已经在wode中排版无法直接复制到博客中,故本节博客发布使用了图片. PDF下载 http://bphero.com.cn/forum.php?mod=viewthread&tid=68
【DWM1000】 code 解密2一 工程初始化代码分析
instance_init 函数追下去,绝大多数的代码都在初始化如下结构体 typedef struct { INST_MODE mode; instance_init -ANCHOR //instance mode (tag or anchor) INST_STATES testAppState ; int instance_init_s(int mode) TA_INIT //state machine - current state INST_STATES nextState ; //st
JAVA静态代码审查之checkstyle
技术总监来巡查,刚巧前段时间遇到了一个问题还没解决,就拉着大牛开问.结果,问题是解决了,还附带了另一个问题,或是要求出来,没啥技术含量,但是很麻烦的一个东西:代码格式. 之前我写代码,因为屏幕比较小,所以就尽量一行写的不写两行,每一行都是一个逻辑片段,后期审阅时超级方便,但"这只是我自己的习惯而已",可我觉着这么写,超级爽啊!但是,但是,但是,技术总监严厉要求,要按照公司自己的一套标准来写. 后来我自己也想了下,我这么写的原因是,自己开发的笔记本的屏幕比较小,代码看不全所以才这么来的,
checkstyle配置文件说明
属性说明 basedir代码所在的位置 AbstractClassNameformat: 定义抽象类的命名规则 PackageNameformat: 定义包名的命名规则 TypeNameformat: 定义类和接口的命名规则tokens: 定义规则适用的类型,例如:CLASS_DEF表示类,INTERFACE_DEF 表示接口 ParameterNameformat: 定义参数名的命名规则 ParameterNumbermax: 定义最多有多少个参数tokens: 定义检查的类型 StaticV
Azure DW
1. 安装环境a. 安装环境https://www.microsoft.com/web/downloads/platform.aspx b. InputImport-Module 'C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\ServiceManagement\Azure\Azure.psd1'具体的路径因人而异,要改成自己机器的Azure.psd1的位置 2. 安装DWa. Login Add-AzureRmAccount -E
Javac早期(编译期)
从Sun Javac的代码来看,编译过程大致可以分为3个过程: 解析与填充符号表过程. 插入式注解处理器的注解处理过程. 分析与字节码生成过程. Javac编译动作的入口是com.sun.tools.javac.main.JavaCompiler类,上述3个过程的代码逻辑集中在这个类的compile()和compile2()方法中,整个编译最关键的处理就由图中标注的8个方法来完成,下面我们具体看一下这8个方法实现了什么功能. 解析与填充符号表 解析步骤由上图中的parseFiles()方法(过程
java 命名代码检查-注解处理器
命名代码检查 根据 <Java 语言规范( 第 3 版 ) > 中第6.8节的要求, Java 程序命名应当符合下列格式的书写规范: 类 ( 或接口 ) : 符合驼式命名法, 首字母大写. 方法 : 符合驼式命名法,首字母小写 字段 : 类或实例变量 : 符合驼式命名法 , 首字母小写 常量 : 要求全部有大写字母或下划线构成, 并且第一个字符不能是下划线. 要通过注解处理器的API 实现一个编译器插件 , 首先需要了解这组 API 的基本知识.我们实现注解处理器的代码需要继承抽象类 java
[虚拟化/云][全栈demo] 为qemu增加一个PCI的watchdog外设(二)
这篇文章的理解,需要一些专业知识了. 我们可以创建模拟自己的外设吗? 我们已经知道什么是qemu了,我们可以通过qmeu的提供的外设,DIY一个计算机了. 但是我们可能还不满足,我们可以自己制造一个外设吗? 答案是可以的.而且这是了解计算机体系结构的一个很好的实践活动. watchdog 外设 watchdog, 即看门狗. 如果狗饿了,便会”咬人“(CPU),让CPU重新启动. 为了不让狗狗”咬人“,我们需要不停的喂他. 我们将创建一个最简单的PCI的外设watchdog.如果你是一个硬件工程
maven项目添加findbugs,checkstyle,jacoco,assembly,maven-jar-plugin插件的配置
(1)名称解释(插件的作用) findbugs:检测代码的不明显的语法错误.例如:用了==去比较字符串,定义了没有用的变量-- checkstyle:检测代码的格式规范.例如:方法没有写注释,类的命名不规范,括号的位置-- jacoco:检测代码覆盖率.例如:类中有10个方法,对应的测试类中只测试了8个方法,这里的方法覆盖率就是80%-- assembly:将需要用得到的脚本文件和jar/war包一起打包到target目录下,一般只需要用到java项目中-- maven-jar-plugin:执
DWM1000 帧过滤代码实现
帧过滤功能可以在同一个环境内组建多个网络而不干扰(非频段不同),可以通过PANID(网络ID)区分不同网络,不同网络中的模块无法直接通信, 再之,利用短地址,网络中可以同时有多个模块发送信息,而接收端会根据信息短地址不同而自动过滤. 1 发送端部分,组建发送结构体,按照MAC 数据结构组织. srd_msg_dsss msg_f ; // ranging message frame with 16-bit addresses ; //set frame type (0-2), SEC (3),
DWM1000 Blink结构 -- 帧过滤第一节
DWM1000 帧结构分析主要学习DWM1000 帧过滤功能,希望在目前DS-TWR定位系统中增加中断和帧过滤功能,帧过滤功能可以有效减少系统中的各个模块同时收发数据时的干扰问题,从而极大的提供系统稳定性以及刷新频率.帧过滤以及中断是近期学习的重点,学习基于官方代码为准,部分摘录官方代码进行说明解释. 1 Blink 数据格式 1.1 Blink 数据结构格式定义 1.2 Blink数据结构代码定义 typedef struct { uint8 frameCtrl; // frame contr
DWM1000 多个标签定位讨论 --[蓝点无限]
多标签代码已经基本实现,完成代码可以在论坛上下载 http://bphero.com.cn/forum.php?mod=viewthread&tid=53&fromuid=2 蓝点DWM1000 模块已经打样测试完毕,有兴趣的可以申请购买了,更多信息参见 蓝点论坛 20181125 更新,按照下面的逻辑,已经完成代码,全部代码编译通过,需要后期测试. 1 单个标签定位模式 定位实现基于DWM1000 基础API 实验SS-TWR或者DS-TWR方法,非官方定位源码,官方定位源码使用的是大
DWM1000 测距原理简单分析 之 SS-TWR代码分析1 -- [蓝点无限]
蓝点DWM1000 模块已经打样测试完毕,有兴趣的可以申请购买了,更多信息参见 蓝点论坛 正文: 这一篇内容主要是通过官方源码理解SS-TWR 细节 代码下载链接:https://download.csdn.net/download/duanfei255/10787882 所有代码使用方法:复制example 中的main.c到Keil MDK工程目录,即可编译出不同的工程 使用开发环境:Keil MDK 对应与SS-TWR工程一共有两个文件夹,分别是ex_06a_ss_twr_init 和 e
【DWM1000】 code 解密8一 TAG接收blink response 信号
在分析这个部分前,目前我看到DWM1000 的资料,data可以分为blink和一般无线数据,后面有内容我们再扩充, 上面我们已经看到接收到blink触发的事件为 case SIG_RX_BLINK : 一般数据包应该触发的的是 case DWT_SIG_RX_OKAY : 表示接收到一个无线无线数据包,具体怎么解析这个数据包我们一点点分析. 好了,看TAG收到ANCHOR的blink response,这个数据包为一般数据包,具体数据内容我们前面简单列出来了,这里从TAG接收的角度一点点在分析
热门专题
filebeat集群同步到es问题
centos7 重装python2.7.5后yum不可用
hadoop集群 centos7 时间同步
vue格式化代码如何换行
请求头过来的数据一堆url编码
SWT RuntimeException显示抛出
oracle存储过程报错说实际返回行数大于请求行数什么意思
使用PHP脚本创建数据表
mapper如何注入静态方法中
turn.js 实现翻页
windows批处理创建网络适配器
k8s中node ip 不通
gym自定义环境如何重写reward
spring boot 学生表 增删改查
mysql数据库时间和电脑时间不一致
中国省市区镇乡数据json
0x字符串转化为int
sublim快速打代码
kali无线网卡推荐
xshell用秘钥怎么登陆