基于 S2-LP 实现 802.15.4g 帧格式的数据透传

news2025/2/26 9:51:53

1. 引言

S2-LP 硬件上支持 802.15.4g 的帧格式,但是现有的 SDK 包并没有基于该帧格式的示例工程,因此本篇文章将介绍如何实现基于 802.15.4g 帧格式的数据透传。

2. 802.15.4g 帧格式

在开始之前,需要对 802.15.4g 帧格式有一个初步的了解,如下图 1 如所示:

图1.802.15.4 帧格式
在这里插入图片描述

  • 前导码(Preamble) :由 0~1023 对’01’或’10’组成,即总共 0~2046 个比特。

  • 同步字(Sync) :用于判断一帧数据的开始,长度为 0~32 个比特;其中 S2-LP 支持双同步字配置,但不能两个同时一起生效,只能二选一附上数据包并发送出去。对于接收者来说,如果第二个同步字被使能,那么就会同时识别这两个同步字,只要其中之一被识别出来,那么就对这一包数据进行解调。就 802.15.4g 帧格式而言,当 FEC 被使能,那么在发送数据时,第二个同步字会被自动附上,无须专门使能第二个同步字。

  • 物理头(PHR):802.15.4g 特有的字段,根据不同的配置自动附到数据包上。
    其中,
    • MS 字段一直都是 0
    • FCS 字段用于选择 CRC 模式
    • DW 字段则是用于配置是否使能数据白化功能
    • L10-L0 字段,用于设置帧数据包的长度 (MHR + MAC Payload + CRC)

  • ▪ 载荷包(Payload):填充需要发送的内容

  • ▪ 循环冗余码校验(CRC):硬件会自动计算并附到 MHR+MAC Payload 后面

2.1. 配置

接下来,我们对 S2-LP 进行以下步骤的配置,使其可以基于 802.15.4g 帧格式进行数据透传,打开 S2-LP DK 上位机工具软件,如下图 2 所示:

图2.射频参数设置
在这里插入图片描述
其中,

  1. 配置想要的 RF 参数
  2. 帧数据的配置,如前导码、同步字、CRC 等。
    紧接着,我们继续进行 802.15.4g 帧格式的相关配置,双击右侧的寄存器列表即可修改对应寄存器的内容,如下图 3 所示:
    图3.802.15.4g 参数配置
    图3.802.15.4g 参数配置

其中,上述各步骤的含义如下:

  1. 表示当前的帧格式设置为 802.15.4g
  2. 配置 CRC 模式,当前选择 CRC 模式 3:
    a. 0b,CRC 模式 5 (4 字节)
    b. 1b,CRC 模式 3 (2 字节)
  3. CRC 多项式选择,这里选择模式 3
    a. 0,没有 CRC 字段
    b. 1,模式 1、8 比特、多项式为 0x07
    c. 2,模式 2、16 比特、多项式为 0x8005
    d. 3,模式 3、16 比特、多项式为 0x1021
    e. 4,模式 4、24 比特、多项式为 0x864CFB
    f. 5,模式 5、32 比特、多项式为 0x04C011BB7,802.15.4g 兼容
  4. 双同步字选择
    a. 发送模式
    -i. 0,选择首要同步字
    -ii. 1,选择次要同步字
    b. 接收模式,如果设为 1,那么双同步字都会被用于识别

此时,802.15.4g 相关的参数均配置完成。

3. 代码生成

按照上述的步骤配置之后,输出对应的寄存器配置即可,如下图 4 所示:

图4.寄存器配置输出
在这里插入图片描述
有了导出寄存器的设置之后,导入当前 SDK 包中的 Basic_Generic 示例工程即可实现基
于 802.15.4g 帧格式的数据透传,其中修好后的源码文件见下述的附件。

4. 实验结果

为了验证上述的配置是否正确,通常会监控传输的数据包是否符合要求,如下图5、6 所示:

图5.802.15.4g 数据 (逻辑分析仪)
在这里插入图片描述
图6.802.15.4g 数据 (串口打印)
图6.802.15.4g 数据 (串口打印)
上述的实验结果基本符合我们的预期。

5. 小结

本篇章描述了如何利用 S2-LP DK 上位机工具软件生成 802.15.4g 对应寄存器配置内容,并导入至当前 SDK 包中去,从而实现基于 802.15.4g 的数据透传,弥补了 SDK 包该帧格式例程的缺失。


本文档参考ST官方的《【应用笔记】LAT1223+基于S2-LP实现802.15.4g帧格式的数据透传》文档。
参考下载地址:https://download.csdn.net/download/u014319604/88969408

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1586557.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VS中使用QT的UI提升类时,找不到头文件的情况

1、情况简述 在使用VS时,会发现与QCreator存在一些差异。最主要的就是要设置很多东西,如果不配置的话,就会遇到一些问题。下面我分享下我调试过程中遇到的一个问题。使用Qdesigner的UI提升类时,找不到头文件的情况: …

Flutter - 环境配置提示 cmdline-tools component is missing

问题: flutter doctor运行命令 flutter doctor 报错: Android toolchain - develop for Android devices (Android SDK version 30.0.2) ✗ cmdline-tools component is missing Run path/to/sdkmanager --install "cmdline-tools;lates…

ChatGPT国内镜像站大全(全都是能白嫖的)

今天在知乎看到一个问题:“平民不参与内测的话没有账号还有机会使用ChatGPT吗?” 从去年GPT大火到现在,关于GPT的消息铺天盖地,真要有心想要去用,途径很多,别的不说,国内GPT的镜像站到处都是&a…

OpenHarmony4.0分布式任务调度浅析

1 概述 OpenHarmony 分布式任务调度是一种基于分布式软总线、分布式数据管理、分布式 Profile 等技术特性的任务调度方式。它通过构建一种统一的分布式服务管理机制,包括服务发现、同步、注册和调用等环节,实现了对跨设备的应用进行远程启动、远程调用、…

ES13:类的新增特性、最外层的await、at...

1-类的新增特性 类私有属性和方法:# class Person{// 不需要传参、一开始就需要初始化的,就可以在类的最外面直接声明这个成员state{a:1,b:2}constructor(name,age){this.namename;this.ageage;}}在属性和方法前加#表示私有 #obj{} #prest(){}静态成员…

DP例题详解(二)最短编辑距离和编辑距离

902. 最短编辑距离 - AcWing题库 #include<bits/stdc.h>using namespace std;const int N1010;int n,m; char a[N],b[N]; int f[N][N];int main() {cin>>n>>a1;cin>>m>>b1;for(int i0;i<m;i)f[0][i]i;for(int i0;i<n;i)f[i][0]i;//先初始化…

Leetcode算法训练日记 | day20

一、合并二叉树 1.题目 Leetcode&#xff1a;第 617 题 给你两棵二叉树&#xff1a; root1 和 root2 。 想象一下&#xff0c;当你将其中一棵覆盖到另一棵之上时&#xff0c;两棵树上的一些节点将会重叠&#xff08;而另一些不会&#xff09;。你需要将这两棵树合并成一棵新…

linux中rpm包与deb包的区别及使用

文章目录 1. rpm与deb的区别2. deb软件包的格式和使用2.1 deb软件包命令遵行如下约定2.2 dpkg命令2.3 apt-命令 3. Unix和Linux的区别Reference 1. rpm与deb的区别 有的系统只支持使用rpm包安装&#xff0c;有的只支持deb包安装&#xff0c;混乱安装会导致系统问题。 关于rpm和…

绿联 安装火狐浏览器(Firefox),支持访问路由器

绿联 安装火狐浏览器&#xff08;Firefox&#xff09;&#xff0c;支持访问路由器 1、镜像 linuxserver/firefox:latest 前置条件&#xff1a;动态公网IP。 已知问题&#xff1a; 直接输入中文时&#xff0c;不能完整输入&#xff0c;也可能输入法无法切换到中文&#xff0c;可…

【LeetCode刷题笔记】LeetCode 1365.有多少小于当前数字的数字

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 更多算法知识专栏&#xff1a;算法分析&#x1f525; 给大家跳段街舞感谢…

【STM32G431RBTx】备战蓝桥杯嵌入式→省赛试题→第十四届

文章目录 前言一、题目二、模块初始化三、代码实现interrupt.h:interrupt.c:main.h:main.c: 四、完成效果五、总结 前言 无 一、题目 二、模块初始化 1.LCD这里不用配置&#xff0c;直接使用提供的资源包就行 2.KEY, 四个按键IO口都要配置&#xff0c;分别是PB0, PB1,PB2,PA…

看了下雷军的两份个人简历,的确厉害。。。

最近在网上浏览信息时&#xff0c;偶然看到了雷军的两份简历&#xff0c;一份是详细的工作履历&#xff0c;另一份则是他的干部履历表。 从大学时期开始&#xff0c;雷军就展现出了非凡的才华和毅力。高考成绩惊人&#xff0c;仅仅丢了2分&#xff0c;堪称完美&#xff0c;被武…

Linux网络名称空间和虚拟机有何区别

在Linux系统中&#xff0c;网络名称空间和虚拟机都是实现资源隔离和虚拟化的技术&#xff0c;但它们在设计理念、实现机制、资源消耗、使用场景等方面存在着显著的区别。本文旨在全方位、系统性地分析这两种技术的区别。&#x1f50d; 1. 设计理念与实现机制 1.1. 网络名称空…

Qt Creator 12.0.2 debug 无法查看变量的值 Expression too Complex

鼠标放在局部变量上提示“expression too complex”。 在调试窗口也看不到局部变量的值。 这应该是qt的一个bug&#xff0c;https://bugreports.qt.io/browse/QTCREATORBUG-24180 暂时解决方法&#xff1a; 如下图&#xff0c;需要右键项目然后执行"Clean"和&quo…

LeetCode第十六题: 掌握双指针技巧 最接近的三数之和 【python】

&#x1f464;作者介绍&#xff1a;10年大厂数据\经营分析经验&#xff0c;现任大厂数据部门负责人。 会一些的技术&#xff1a;数据分析、算法、SQL、大数据相关、python 欢迎加入社区&#xff1a;码上找工作http://t.csdnimg.cn/Q59WX 作者专栏每日更新&#xff1a; LeetCode…

ssm038汽车养护管理系统+jsp

汽车养护管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本汽车养护管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短…

QT实现客户端断开连接

Widget.cpp #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget), socket(new QTcpSocket(this)) {ui->setupUi(this);//初始化界面ui->msgEdit->setEnabled(false); //不可用ui-…

PTA 应急救援站选址(floyd+打印路径)

大学城虎溪社区有很多居民小区&#xff0c;居民小区道路图是连通的。现要在该社区新建一个应急救援站&#xff0c;且该应急救援站要和某个小区建在一起。为了使应急救援最快速&#xff0c;经各部门商量决定&#xff1a;应急救援站建好后&#xff0c;离应急救援站最远的小区到应…

【SpringBoot整合系列】SpringBoot整合FastDFS(二)

目录 SpringBoot整合FastDFSJava客户端/依赖常用api接口解释1.uploadFile参数返回值 2.uploadSlaveFile参数返回值 3.getMetadata参数返回值 4.overwriteMetadata参数&#xff1a;返回值&#xff1a;无 5.mergeMetadata参数&#xff1a;返回值&#xff1a;无 6.queryFileInfo参…

数学之光照亮AI之路:探究数学背景在人工智能学习中的优势

在科技日新月异的今天&#xff0c;人工智能&#xff08;AI&#xff09;已成为引领未来发展的重要力量。然而&#xff0c;对于许多初涉此领域的学习者来说&#xff0c;AI的复杂性和深度常常让他们望而却步。有趣的是&#xff0c;那些数学基础扎实的人在学习AI时&#xff0c;往往…