【星闪】SLE传输速率评估
基于F63开发板的星闪SLE传输速率评估
·
环境搭建
-
需要准备2块F63 开发板

-
主芯片为:ws63
-
SDK版本为:WS63 1.10.102
-
官方代码仓库:https://gitee.com/HiSpark/fbb_ws63.git
-
IDE为:HiSpark Studio 1.0.0.6
-
环境搭建细节参考《星闪试验指导手册》(fbb_ws63\docs)中的“Windows开发环境搭建”章节或者链接: https://gitee.com/HiSpark/fbb_ws63/blob/master/tools/README.md
注意:工程编译需要python环境且必须是3.11.4(64bit),在安装HiSpark Studio时会弹出提醒,在不影响已有工作的情况下,建议安装前删除已有python版本 -
工程编译以及程序烧录ok,确认环境搭建完毕。
SLE传输速率测试例程
- 确保环境搭建完毕且编译通过,串口烧录正常后,点击上方菜单栏中的“系统配置”按钮,勾选官方测试例程:SLE Throughput Sever/Client Sample(两块星闪开发板通过SLE发送消息并显示速率)。
- 一块板子烧录Server Sample例程作为服务端;另一块板子烧录Client Sample作为客户端。
全部烧录完成后,连接各自的串口,看打印信息;
- 烧录完成后,先复位Client端再复位Server端(按键复位或者串口AT指令软复位;两块板子需要离得比较近)二者会自动建立连接,开始传输数据,进行速率测试。
- 在Client端的串口观察测试结果。

连接间隔参数设置保持默认:
sle_speed_server_adv.c
...
/* sle device name */
#define NAME_MAX_LENGTH 15
/* 连接调度间隔1.25ms,单位125us */
#define SLE_CONN_INTV_MIN_DEFAULT 0x0A
/* 连接调度间隔1.25ms,单位125us */
#define SLE_CONN_INTV_MAX_DEFAULT 0x0A
/* 连接调度间隔25ms,单位125us */
#define SLE_ADV_INTERVAL_MIN_DEFAULT 0xC8
/* 连接调度间隔25ms,单位125us */
#define SLE_ADV_INTERVAL_MAX_DEFAULT 0xC8
/* 超时时间5000ms,单位10ms */
#define SLE_CONN_SUPERVISION_TIMEOUT_DEFAULT 0x1F4
/* 超时时间4990ms,单位10ms */
#define SLE_CONN_MAX_LATENCY 0x1F3
/* 广播发送功率 */
#define SLE_ADV_TX_POWER 10
/* 广播ID */
#define SLE_ADV_HANDLE_DEFAULT 1
/* 最大广播数据长度 */
#define SLE_ADV_DATA_LEN_MAX 251
...
sle_sped_server.c
...
#define DEFAULT_SLE_SPEED_DATA_LEN 512
#define DEFAULT_SLE_SPEED_MTU_SIZE 512
#define SEND_PKT_TIMES 1000
#define SEND_PKT_NUMS 1000
#define DEFAULT_SLE_SPEED_MCS 10
#define SPEED_DEFAULT_CONN_INTERVAL 0x0A
#define SPEED_DEFAULT_TIMEOUT_MULTIPLIER 0x1f4
#define SPEED_DEFAULT_SCAN_INTERVAL 400
#define SPEED_DEFAULT_SCAN_WINDOW 20
#define PKT_DATA_LEN 236
...
- 实测1M、2M、4M PHY情况下的传输速率分别约为:

遗留问题
- 按照AT指令手册描述:SLE的连接间隔取值范围为[0x0002,0x32000],理论最小连接间隔应该可以设置到250μs,但是实测最小只能设置到0x0A,设置小于0x0A时会出现SLE连接不上或者断连的情况。

- 查询海思论坛,看到有网友也有相同疑问,目前暂未解决,欢迎大佬们指点。

学习交流,个人邮箱:imxyp9x@163.com
更多推荐



所有评论(0)