【经验】无线收发器如何实现超长前导码发送?
有些应用,需要发送很长的前导码,例如发送持续1秒钟的AA AA …前导码,或者500bit或者1000字节的前导码,唤醒处于LDC状态的设备等等。但是SILICON LABS sub-GHz无线收发器Si446x控制前导码长度的寄存器只有1个字节,最长只可发送255字节的前导码,这种超长的前导码该如何发送呢?
首先我们来分析si446x的数据包格式(图1),一个完整的无线数据包由前导码,同步字,数据负载,在加上CRC校验(可选),共4部分组成。
图1:si446x的数据包格式
前导码:正常的数据包,前导码不会太长,通常在4字节到12字节左右。本文以WDS软件中默认的8字节为例。
同步字:可设置为1字节到4字节,本文以2字节为例。
数据负载:F1L+F2是数据负载区域,本文以变长包,F1L为1字节为例,用于变长包的数据长度指示。F1L容易和field1 的长度混淆,在此,就把F1L当成1字节的数据即可。
CRC校验:本文以不加CRC校验为例,此处忽略。
从以上数据格式,我们给出一个正常的数据包作为参考:
---------------------------------------------------------------------------
AA AA AA AA AA AA AA AA 2D D4 07 01 02 03 04 05 06 07
解析如下:
AA AA AA AA AA AA AA AA :8字节长度前导码;
2D D4 :同步字;
07 01 02 03 04 05 06 07:负载数据
---------------------------------------------------------------------------
如果我们要发送一个超长的前导码的数据包,就可按照以下思路实现,注意区分颜色:
AA AA AA AA AA AA AA AA AA AA AA AA AA………AA AA AA 2D D4 07 01 02 03 04 05 06 07
解析如下:
AA AA:把原来同步字2D D4位置换成了前导码 AA AA;
AA AA AA………AA AA AA:数据前半段填充前导码发送出去,例如990字节的AA AA;
2D D4 07 01 02 03 04 05 06 07:用户数据。
---------------------------------------------------------------------------
那么我们来算算一共发送了多少字节的前导码,8字节AA AA AA AA AA AA AA AA + 2字节 AA AA + 990字节 AA AA AA………AA AA AA = 1000字节。具体需要发送多少字节的AA AA 前导码,请根据通信速率和前导码持续的时间来反算。算出了总共需要的前导码长度,然后减去8字节,再减去2字节,剩下的就是需要放到数据区域去发送的那一部分。
下面我们介绍具体的代码实现:
1、修改同步字为AA AA :
同步字在空中传输时会高低位反向,需要用WDS来算出API命令应该填入的值。如下:
si446x_set_property( 0x11,0x04,0x01,0x55,0x55,0x00,0x00);//设置同步字AA AA
因为同步字最多可用4字节,如果只用到两字节,后面的就写0x00.
如果需要回到正常短前导码数据包发送,同步字需修改为原来的,例如2D D4
si446x_set_property( 0x11,0x04,0x01,0xB4,0x2B,0x00,0x00);//设置同步字2D D4
2、修改数据区域的发送长度。
我们需要准确的计算出需要发送的数据长度。
990字节的前导码 + 2字节的同步字 + N字节的数据 = M字节
除去原本8字节的前导码,2字节的同步字(已改成了AA AA),还有990字节的AA AA + 2字节同步字 + 8字节的负载数据需要发送,一共是M字节(本文1000字节为例)。因为负载数据在实际应用时,长度会随时变化,这部分要计算准确,否则会影响数据发送。
从以上计算,我们得出F1L + F2区域一共需要发1000字节,为了简单起见,可以减少修改寄存器,因为是变长包收发,F1L保持1字节长度不做任何修改,那么F2区域的需要发的长度就是M-1字节(本文999字节)。以后代码中需要修改的长度也仅仅是F2区域的,每个field区域的长度是13bit表示,因此M值最大不要超过13bit。
代码如下:
si446x_set_property(0x12,0x02,0x11,M-1高字节,M-1低字节);
常长前导码的数据包发送,原理是简单的。关键就是如何准确的计算F1L和F2区域的长度,以及同步字处理。注意,在同步字2D D4写到F2区域去发送的时候,是当成数据来看的,因此不需要高低位反向,直接把2D D4填入FIFO发送即可。
参考文档:
由于本文实现需要使用到超长数据包发送,边长数据包收发,更多详细的文档请参考:
- |
- +1 赞 0
- 收藏
- 评论 1
本文由紫云提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】如何测试无线收发器的发射功率和频偏?
在设计好Sub-GHz无线收发器si446x 或者si4438的PCB板,完成元器件贴板和焊接之后,就可以开始测试PCB板的射频性能了。
设计经验 发布时间 : 2018-02-23
【经验】低电流无线收发器锁存RSSI值读取该如何操作?
Silicon Labs 无线收发器Si446x或者Si4438开发产品的时候,应用代码中很多需要使用到信号强度RSSI值。
设计经验 发布时间 : 2017-08-17
【经验】如何实现无线收发器Si446x的异步直接数据收发模式?
Silicon Labs无线收发器Si4438和Si446x,可实现多种调制方式的数据发送,在一些开发中客户会用到OOK调试模式,OOK调制在开发中要用到直接数据收发方式(Direct Mode),本文主要介绍如何实现一个简单的数据发送和数据接收工程。
设计经验 发布时间 : 2020-10-02
【经验】仅需3步,轻松实现Si446x无线收发器的变长包收发
Silicon labs EZRadioPro 系列的si446x 无线收发器,具备高级自动包处理功能。其中可变包长的收发在应用中非常普遍。那么如何轻松快速实现可变包长收发呢?仅需三步即可。
设计经验 发布时间 : 2016-05-08
【经验】低电流无线收发器实时RSSI值读取该如何操作?
Silicon Labs 无线收发器Si446x或者Si4438开发产品的时候,应用代码中很多需要使用到信号强度RSSI值。
设计经验 发布时间 : 2017-08-20
【经验】无线收发器Si4460定频测试程序生成操作方法
Silicon Labs推出的无线收发器si4460是EZRadioPRO系列产品的主推型号之一,频点可覆盖从142 MHz至1050 MHz的Sub-Ghz频段。射频性能强,灵敏度高达-129dBm,输出功率最大可达+20dBm,50nA的超低待机功耗。广泛应用于物联网(IoT)、智能家居、智能工业、四表等市场。下面就以Si4460模块为例。介绍产品开发使用定频测试通信模块发射功率工程配置及操作
设计经验 发布时间 : 2019-12-01
如何配置低功耗无线收发器射频参数和代码实现接收灵敏度测试?
Si446x是Silicon Labs公司的一款高性能低功耗Sub-Ghz频段的小无线收发器,可支持142MHZ - 1050MHZ频率(Si4438 支持425MHZ - 525MHZ,适用中国频段)。最大发射功率可达+20dbm,接收灵敏度可达-129dbm@500bps。本文就详细介绍如何实现Si4438 和 si446x 接收灵敏度测试所需要的射频参数设置和代码实现。
设计经验 发布时间 : 2018-05-30
【经验】SUB-G无线通信模块的SPI波形图解与上电过程
SUB-G无线通信模块采Silicon Labs 公司的Si4438无线收发器设计,兼容si446x,最大发射功率+20dBm,接收灵敏度高达-124dBm,超低睡眠电流740nA,广泛用于室内照明及智能家居,安防监控,测量及四表等领域。有些产品或应用需要低功耗功能,又需要无线数据接收功能。那么我们就需要使用到Si4438/Si446x的LDC功能了。
设计经验 发布时间 : 2019-04-09
【经验】如何把Sub-GHz无线收发器评估板变成抓包工具
在无线射频开发调试过程中,抓包工具也是必不可少的一员,Silicon labs推出的Sub-Ghz无线收发器Si446x也能秒变抓包工具,本文就针对此过程进行了详细介绍。
设计经验 发布时间 : 2019-09-03
【经验】如何配置寄存器,实现无线收发器LDC低功耗接收功能?
Silicon labs公司的si4438/si446x系列Sub-Ghz无线收发器支持LDC低功耗接收功能,本文讲述的就是实现LDC低功耗接收功能的方法及步骤。
设计经验 发布时间 : 2018-03-23
【经验】应用技巧:如何轻松实现无线收发器硬件CRC校验?
无线收发器支持硬件CRC校验,在WDS软件中点点鼠标就能快速完成CRC相关的设置。
设计经验 发布时间 : 2017-01-10
SUB-G无线收发器超强的“穿墙”能力助拓智能照明领域
在家门口用遥控器直接按“回家“场景,提前打亮房间的灯!基于Si4463 SUB-G无线收发芯片的智能照明系统优点多多:控制自如、智能调光、全开全关、场景设置……
新应用 发布时间 : 2019-09-03
Si4460无线收发器是否支持直接模式?是如何实现数据收发的?
对于在主机MCU内或其他基带芯片内执行数据包处理的传统系统,不适合使用FIFO。对于这种情况,Si4460无线发射器提供可完全绕过FIFO的直接模式。在TX直接模式下,TX调制数据被应用于芯片的输入引脚并进行“实时”处理(即不会存储在寄存器中稍后发送)。任何GPIO可被配置成TX数据输入功能来使用。而且,如果需要GFSK调制,则TX时钟输出功能需要一个额外的引脚(FSK只需要TX数据输入引脚)。为达到直接模式,GPIO必须在“GPIO_PIN_CFG”API命令和“MODEM_MOD_TYPE”API属性中进行配置。对于GFSK,“TX_DIRECT_MODE_TYPE”必须设置到同步。对于2FSK或OOK,类型可设置为异步或同步。对于所有的直接模式配置,MOD_SOURCE[1:0] 应设置为01h。在RX直接模式下,RX数据和RX时钟可被编程以实现直接(实时)输出到GPIO引脚,然后微控制器可以在不使用FIFO或RFIC分组处理程序功能的情况下处理RX数据。
技术问答 发布时间 : 2017-05-10
【经验】SUB-G无线通信模块AN512助力超长前导码发送模式下的硬件CRC校验实现
SUB-G无线通信模块采Silicon Labs 公司的Si4438无线收发器设计,兼容Si446x,最大发射功率+20dBm,接收灵敏度高达-124dBm,超低睡眠电流740nA,广泛用于室内照明及智能家居,安防监控,测量及四表等领域,普通短数据包一般用到2个field就可以,超长前导码发送通常需要用到3个field,那么如何实现硬件CRC校验功能呢?
设计经验 发布时间 : 2019-06-01
【经验】 Si446x Sub-Ghz频段无线收发器的GND引脚该如何处理?
Si446x 是silicon Labs公司的一款高性能Sub-Ghz频段的无线收发器。广泛用于室内照明及智能家居,安防监控,楼宇自动化,测量及四表等领域。Si446x芯片的pin18引脚和芯片底部焊盘都是GND,在设计的时候该如何处理?
设计经验 发布时间 : 2019-08-30
电子商城
品牌:SILICON LABS
品类:HIGH-PERFORMANCE LOW-CURRENT TRANSCEIVER
价格:¥15.8878
现货: 2,359
品牌:SILICON LABS
品类:HIGH-PERFORMANCE LOW-CURRENT TRANSCEIVER
价格:¥16.5384
现货: 2,355
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥8.1764
现货: 104,128
品牌:SILICON LABS
品类:Mighty Gecko Multi-Protocol Wireless SoC
价格:¥27.0929
现货: 90,767
现货市场
品牌:SILICON LABS
品类:Switch Hall Effect Magnetic Position Sensor
价格:¥2.2924
现货:126,000
服务
提供是德(Keysight),罗德(R&S)测试测量仪器租赁服务,包括网络分析仪、无线通讯综测仪、信号发生器、频谱分析仪、信号分析仪、电源等仪器租赁服务;租赁费用按月计算,租赁价格按仪器配置而定。
提交需求>
可定制胶棒天线频率范围包括GSM/GRPS/2G/3G/5G/2.4G/5G/5.8GHZ/WIFI/蓝牙、LoRa、433/470/315/868/915Mhz/NB等;增益:0~15dBi;天线尺寸、接口连接器可按需定制。
最小起订量: 1000 提交需求>
登录 | 立即注册
提交评论