WIoTa 协议版本更新说明

WIoTa 协议源码下载地址

终端侧代码:GitHub - ucchip/wiota_dev_customer
基站侧代码:GitHub - ucchip/wiota_ap_customer
异步节点代码:GitHub - ucchip/wiota_async_customer: WIoTa async code

备用地址:
终端侧代码wiota_dev_customer: WIoTa IoTE
基站侧代码wiota_ap_customer: WIoTa AP CUSTOMER
异步节点代码wiota_async_customer: WIoTa async code

:watermelon: :arrow_down: :arrow_down: :arrow_down: 最新版本说明见底部

2022.01.16
同步v2.2和异步v2.5版本更新了!!!请有需要的及时更新。

------同步主要修改点:
AP侧:
1、修改发送接口超时时间设置过短导致的后续发送返回结果异常问题,建议超时时间不能小于当前配置下的一帧的时间
2、修改发送timer启动时机为发送第一个包时启动,避免数据堆积过多时,还未发送就以超时的情况
3、修改发送数据at指令在数据发送失败或超时后at为返回结果的问题
4、修改link文件中cce trace地址配置错误导致的无法抓取cce log问题
终端侧:

  1. OTP功能更新,校准数据不会被擦除
  2. 扫频接口更新,增加子网配置,可频点和子网配对扫频
  3. 协议栈测试bug修复
  4. 温度曲线更新

------异步主要修改点:

  1. OTP功能更新,校准数据不会被擦除
  2. 增加快速扫频功能,返回RSSI列表
  3. 温度曲线更新
  4. rtthread at bug
  5. 基带挂死检测和自动reset功能
  6. 打开bit加扰功能,数据全0也可传输
  7. 900M频点频偏bug修复
  8. 基带测试bug修复
  9. 完成单播/广播接收后快速停止接收过程优化
  10. 基带版本更新
2 个赞

WIoTa同步版本V2.3已更新,新增feature如下,欢迎更新体验:

终端修改:

  1. 扫频上报频点个数更新,不再限制为最优的4个
  2. run之后可动态修改userid、subsysid、频点,需要先disconnect再配置,再重新connect
  3. 断开连接的bug修复
    AP修改如下:
    1、run之后可以动态修改subsysid、频点
    2、终端接入上报优化

WIoTa同步v2.4版本已更新:
终端修改如下:

  1. 超低功耗唤醒功能(终端作为paging休眠和被唤醒方)
  2. 组播功能
  3. 自动功率bug修复
  4. 系统配置增加,bitscb和oldSubsysV,新版本默认分别为1和0,如果要v2.4之前的版本通信,需要将这两个值设置为0和1
  5. IDLE态下行接收默认打开,以防止终端异常重新同步后,AP无法直接发下行数据
  6. rtc闹钟mask设置bug修复
  7. 开机初始化默认重置uart IO配置,防止休眠唤醒后uart异常
  8. sleep前清除uart fifo,防止休眠唤醒后uart异常
  9. 静态数据备份问题
  10. 量产流程string问题
  11. 扫频后自动重置子网ID和频点
  12. 断开同步bug修复
  13. 帧长计算更新
  14. IDLE和NULL状态下处理异常短消息

AP修改如下:

  1. 修改ota发送的slot冲突,cce新增保护机制,修改ota后终端无法接收下行的问题
  2. 发送下行和发送广播接口新增参数void *para,改参数可在非阻塞发送时传入发送数据的地址,在数据发送完成后会将该参数通过callback返回,方便用户知道具体哪条数据的发送情况
  3. 更新发送下行和广播的at,兼容新参数和非阻塞发送,去除单独的非阻塞发送at指令
  4. 新增gps授时功能和1588协议授时功能(注意如果开启GPS授时,在GPS运行期间会占用50K左右内存,过程大概持续3分钟左右,授时完成后GPS停止,会释放占用内存),可通过接口选择开启gps或1588,不可同时开启,接口使用参考application/time_service_demo.c
  5. WIoTa协议栈代码和GPS代码段划分,请合并最新的link文件
  6. 子网配置增加旧版本(v2.3之前的版本)兼容标志位(old_subsys_v),默认为0,表示匹配v2.4的iote,如果只升级AP不升级iote,该标志位填1
  7. 子网配置增加比特加扰标志位(bitscb),默认为1,表示开启
  8. AP默认关闭了iote_info_list和ap_state_list,与其相关的api和at将失效,意味着AP不再存储boostlevel 0的iote的任何信息,只做数据传输,此改动后AP能接入的boostlevel 0的iote个数将不再有限制(不代表同时连接态的数量)
  9. AP新增paging tx相关api和at,可用ap唤醒iote
  10. AP新增组播发送相关api和at,发送前需知道有效组播id(iote设置的id)并通过接口设置,最多支持8个不同的组播id
  11. AP新增查询AP8288运行状态接口和at,只能通过该返回值判断异常或正常,当异常时不能判断导致异常的原因

AP和终端的API文档、AT文档、静态数据等在线文档均已更新

同步v2.5和异步v2.7版本更新了!!!请需要的同时及时到github更新,具体修改如下:
v2.5_ap8088修改如下:
1、修改下行连续数据包模式bug
2、子网配置移除系统id,请注意适配
3、提高了协议栈线程优先级
4、协议栈搬数改为spi标准接口,避免直接二次开发使用spi发生冲突,请对比合入spi驱动文件
5、修改paging tx bug

v2.5_iote修改如下:
1. 系统配置中删除系统ID
2. 超低功耗唤醒配置,增加extra period设置,可额外继续sleep一段时间
3. 修复超低功耗唤醒和RTC定时唤醒混用bug
4. 修复连续传输模式bug
5. 修复扫频bug,增加扫频结果中子网ID上报
6. 增加低功耗中物理层gating接口

v2.7_async修改如下:
1. 接收单播数据结果中增加分包大小和发送端功率
2. 物理层是否IDLE态查询接口
3. 优化低功耗时的数据接收成功率
4. 超低功耗唤醒配置,增加extra period设置,可额外继续sleep一段时间
5. 修复超低功耗唤醒和RTC定时唤醒混用bug
6. 修复基带数据mask异常bug

异步v2.8版本更新了!!!具体更新如下:

  1. 更新app驱动demo
  2. 修复paging tx和数据发送bug
  3. 按子帧发送api更新
  4. at波特率设置并保存进静态数据
  5. spi cs唤醒bug修复(uc_boot_strap.c更新!)
  6. 唤醒原因接口
  7. 外部32K晶振设置api
  8. license功能更新,暂未启用
  9. 指定帧头发送数据功能,上报接收时刻子帧边界
  10. 语音数据加速功能
  11. 获取rf状态api更新
  12. 获取当前时刻rf counter

同步v2.6版本更新了!

AP修改如下:
1.修改ap8288 gpio7复用为第一功能后(ap_sync),由于gpio7接地情况的不同导致有些版子出现dfe挂死问题,上层表现为协议栈停止运行或扫频超时
2.修改多线程临界区处理不当,导致下行任务异常触发断言的问题
3.关闭log口(uart1)rx中断,避免rx悬空状态接收到乱码问题,同时关闭FINSH功能(因为FINSH功能会重新打开rx中断),如需使用请用menuconfig配置打开
4.修改通过userid查询该id在帧结构位置信息的接口,请对比uc_wiota_api.h
5.修改上行接收重复包处理时,长度计算错误导致的内存越界问题,该问题会直接耗光内存池并导致程序卡死
6.将spi操作接口放到了packages/slave_uc8x88/目录下,二次开发是时请使用该接口,避免和协议栈发生冲突
备注:禁止在回调函数(包括接受回调和发送数据回调)里面加延迟操作,避免在回调函数里做大量操作!!!

IOTE修改如下:
1.修复paging时,32K时钟降频导致检测间隔不准的问题
2.修复上行失败时,继续接收下行的bug
3.唤醒原因API
4.外部32K晶振设置api
5.spi cs唤醒bug修复(uc_boot_strap.c更新!)
6.协议栈代码空间增加(link.flash.ld更新!)
7.默认at波特率保存到静态数据
8.LE模组的功率表更新,tx mode api设置(LE模组设为0)

同步v2.7版本和异步v2.9更新了,相关文档也已更新,具体内容如下:
AP:
1. 增加同步paging功能及相关api和at指令
2. 增加驱动demo,在application目录下
3. uboot刷写ap8288镜像增加校验,AT串口(uart0)默认不输出uboot的打印,uboot镜像更新
4. 修改分区不当导致OTA无法升级的问题,link文件更新
5. 1588协议授时精度优化
6. 优化协议栈log
IOTE:
1. 修复协议栈错误数据异常处理问题
2. uboot更新,默认配置及打印更新
3. 修复超长数据发送异常处理问题
4. 更新tcxo校准频偏配置和保存
5. otp write cache miss问题修复
6. at波特率存入静态数据
7. 内存检查at
8. sync paging功能,可根据userid唤醒特定终端,被唤醒后可快速同步
9. 唤醒原因api,paging唤醒原因api
10. 超低功耗唤醒支持最大次数自动醒来
11. 更新0a6g模组功率曲线
12. 超低功耗唤醒配置、频点保存到静态数据
13. 自动管理功能更新(配合网关使用)
ASYNC:
1. 更新按指定帧头发送数据功能,及上报收到数据的第一帧帧头rf counter
2. 更新低功耗LE模组的功率曲线,0a6g模组功率曲线
3. 修改api名字,uc_wiota_get_physical_status
4. 频点规则更新,频点间隔(不再是固定的200KHz)与带宽相同,更新为16bits类型
5. 子帧数为3的单播数据异常问题修复
6. 频段1范围更新为400M~470M
7. uboot更新,默认配置及打印更新
8. otp write cache miss问题修复
9. 根据输入配置参数计算帧长
10. 超低功耗唤醒支持窄带配置,支持最大次数自动醒来
11. 唤醒原因api,paging唤醒原因api
12. 接收数据的猜频偏bug修复
13. 超低功耗唤醒配置、频点保存到静态数据
14. 串口初始化时,先清空buf

异步v3.00 更新了,相关文档也已更新,具体内容如下:

  1. 新增获取dcxo值的接口
  2. 可在运行过程中动态配置子网id的接口
  3. 新增获取tx mode的接口
  4. 新增单独配置是否需要外部唤醒的接口
  5. 修复单播ack的功率问题
  6. 修复定时器与回调冲突问题
  7. 优化收发切换耗时
  8. 修复sleep可能无法成功的问题
  9. 修复cs awaken cause保存问题
  10. 增加resource test,可查看资源使用情况

异步v3.01 更新了,相关文档也已更新,具体内容如下:

  1. 优化单播传输成功率
  2. 增加单播ack自动功率控制接口(默认打开时,ack功率比发送端功率高0~5dbm,关闭时,使用本地配置功率)
  3. 增加suspend/recover接口,用于避免wiota运行和读写flash的冲突
  4. 获取paging唤醒原因接口中,增加唤醒检测次数
  5. 模组ID打印
  6. 温度adc接口更新,在uc_adda.c文件中
  7. 增加了协议栈代码空间
  8. 200K带宽的帧头gap减小

同步v2.8版本已更新,具体内容如下:
AP:
1. 对外接口编码采用C99规范,变量类型修改较多,请注意核对
2. 增加发送单音功能及相关api和at指令
3. 增加帧长查询api及at指令
4. 增加广播帧发送周期设置api及at指令(不建议更改)
5. 增加广播发送轮数设置,默认发送三轮
6. 去除单个子帧最大连接态iote个数设置接口,替换为设置最大连接态iote个数接口,用户不设置使用默认值(1:1为72个,1:2为144个)
7. 优化上行搬数逻辑,增加搬数校验
8. 系统配置中ap_max_power改名为ap_tx_power,表示当前AP的发射功率
9. 增加发送demo(供参考)
10. 优化上行接收性能
11. 增加资源管理,默认关闭,可在main函数打开,注意rt-thread/include/rtdef.h一定要对比合入
12. 修复已知bug
13. 对应api和at文档已更新,除了添加新增api和at外,还对广播和单波在不同symbol_length下的最大MCS和注意事项做了详细说明,具体请查看广播MCS设置部分

IOTE:
1. 新增idle paging消息上报
2. 系统配置中ap_tx_power名字更新
3. sync paging唤醒后的快速同步的接口,增加立即进入active状态的参数
4. 获取paging唤醒原因接口,增加当前检测次数上报
5. 新增获取校准参数接口、获取dcxo接口、获取tx mode接口
6. 新增底层分包重发次数接口
7. 新增获取当前帧号接口、获取当前帧号是否已与ap同步接口
8. 新增外部唤醒源配置接口
9. 降低了paging rx和sync paging的虚警率
10. 修复上下行高速模式中的bug
11. 默认关闭中速模式
12. 更新保存静态数据接口
13. 修复subsystemid list获取接口的bug
14. 修复单包数据(应用数据量小的情况)的重复上报问题
15. 增加数据收发测试例程

单路网关v2.8版本也同步更新,主要修改OTA、远程配置相关bug、增加DTU分时发送配置静态数据(请参考DTU分时发送策略文档),静态数据表同步更新

异步版本v3.02 已发布,相关文档也已更新。 版本更新内容如下:

  1. 规范c标准变量类型及命名
  2. 超低功耗唤醒支持同时检测第二个唤醒id
  3. 增加获取module id接口
  4. 增加wiota init/run/exit的切换中间态,获取运行状态接口
  5. 增加ack信息位功能
  6. 增加双向帧结构功能
  7. 增加gating相关接口
  8. 增加根据当前数据量和mcs计算匹配的子帧数的接口
  9. 增加主动等待接收数据接口
  10. 注意rt-thread库文件的更新

同步v2.9版本发布,主要更新如下:
AP修改如下:
1. 同步paging修改为周期性发送paging信号,具体用法见api接口文档
2. 新增帧号查询接口、让指定IOTE离开连接态接口、获取模组ID接口
3. 子网ID的高12bit,默认固定为模组内部的id_mask,默认值为0x214, 故默认的子网ID仍为0x21456981
4. 修改v2.8版本由于整理代码导致的GPS授时无法使用的问题
IoTE修改如下:
1. subsys id 的高12bit,测试版本默认固定为0x214, 32bit的整体默认值仍为0x21456981
2. 规范c标准变量类型及命名
3. 超低功耗唤醒支持同时检测第二个唤醒id,更新结构体 uc_lpm_rx_cfg_t
4. 增加 wiota init/run/exit 接口的中间态 SWITCHING
5. 增加获取模组ID的接口
6. 获取唤醒原因接口中,增加唤醒id的idx
7. 优化了sync paging和paging的虚警率和漏检率
8. 更新了功率ramp爬坡曲线,优化了射频谐波
9. 重发次数可配置为0,uc_wiota_set_sm_resend_times
10. sync paging模式更新,增加了睡前上行ctrl消息,可精确到特定帧唤醒
11. 全扫频超时bug修复
12. 更新外设demo
13. buliding.py更新,代码编译排版固定化