跳至主要内容

海思 星闪SLE hi3863芯片 SDK接口指南

· 閱讀時間約 12 分鐘
w0x7ce
MySelf

发布于 2024-09-09 21:28:10(微信公众号导出记录)。

本文来自公众号后台的“导出文章内容”功能。博客正文由导出长图进行本地 OCR 转写,并保留原始排版图用于逐段核对。

原文链接:查看原文

OCR 转写有效文字约 5939 字;代码、流程图和版式以文末原始排版图为准。

正文(本地 OCR 转写)

originalw6x7ce EI V1ajero 2824年9月9日 21:28 波兰

1.引言

本指南详细介绍了SLE(StarLinkExpress)SDK开放的技术组节,包括基本概念、关键接 口、参敬设置以及与其他无线技术的比较。参考一下链接 W1kiped1a https ://zh. wikipedia org/wik1/%E6%98%9FsE9$97%AA BearPi https://gitee.com/bearpi/bearpi-pico_h3863 海思 https://www.his111con.com/cn/products/connectivity/short-range- IoT/wif1-nearl1nk-ble/H13863V100

2.SLE技术概述

SLE(Star Link Express)是一种专为物联网(IoT)设备设计的低功耗无线通信技术。它 在某些方面类似于蓝牙低功耗(BLE),但具有独特的特性,使其更适合某些IoT应用场景。

2.1 SLE vs 蓝牙 vs Wi-Fi

特性 SLE Wi-Fi 蓝牙低功耗(BLE) 覆盖范 中等到长(可达几百 中等(比BLE稍远) 短(约10-100米) 米) 国 功耗 极低 相对较高 低 数据速 低到中等 高 低 率 网络拓 点对点、星型网络 点对点、广播 星型网络 扑 IoT设备、传感器网可穿戴设备、健康监高速数据传输、视频 主要应 络、智能家居 测、近距离控制 流、网页浏览 用场景 SLE的优势在于它结合了BLE的低功耗特性和Wi-Fi的较强网络能力,使其特别适合幂要长电池 寿命和稳定连接的IoT应用。

3.UART服务器在SLE生态系统中的角色

UART(Universal Asynchronous Receiver/Transmitter)服务器在SLE网络中扮演着 关键角色,它作为SLE网络和传统申行设备之间的桥梁, UART服务器的主要功能包括: L.数据转换:将UART数据格式转换为SLE数据包,反之亦然。

2.协议适配:处理UART和SLE协议之间的差异。

3.缓冲管理:管理效据缓冲,确保数据传输的可性。

1.流控制:在UART和SLE之间实现适当的流控制机制

4.广播数据设置接口

4.1 sle_set_adv_local_name

static uint16_t sle_set_adv_local_nane(uint8_t ×adv_data, uint16_t max 功能描述 此函数用于设置SLE设备的本地名称,该名称将被包含在广插数据中。 参数说明

  • acv_data:指向存情广播数据的缓冲区的指针。

  • max_Len:广播数据缓冲区的显大长度。

返回值 函数返回设置的广措数据长度。 实现细节 L,函数首先打印本地设备名称的长度和内容,用于调试目的。

2.然后,它将设备名称的长度和类型信息写入广播数据缓冲区。

3.使用memcpPy_s函数将实际的设条名称复制到广插数据中。

1.最后,返回设置后的广播数据总长度。

技术考虑

  • 设备名称在SLE网络中用于标识设备,葵似于BLE中的DeviceNane特性。

  • 名称长应受限于广播数据包的最大长度,通常不超过31字节。

  • 在资源受限的设备上,应考虑使用较短的名移以节省空间和能源。

4.2 sle_set_adv_data

static uint16_t sle_set_adv_data(uint8_t *adv_data) 功能描述 此函数用于设置SLE设备的广插微据内容。 参数说明

  • adv_data:指向存储广摄数据的缓冲区的指针。

返回值 函数返回设置的广播数据长度。 实现细节 L.设置发现级别(Discovery Level)数据。

2.设置访间模式(Access Mode)效据。

3.使用meTcPy_s函致将这些数据复制到广泄数据缓冲区中。

技术考虑

  • 广播数据的结构和内容直接影响设备的可发现性和连接性。

  • 数据应该经过精心设计,以在有限的空间内提供最有用的信息。

  • 考虑到功耗问题,广插数据应尽可能简洁。

4.3 sle_set_scan_response_data

static uint16_t sle_set_scan_response_data(uint8_t scan_rsp_data) 功能描述 此函数用于设置扫指响应数据的内容,提供额外的设备信息。 参数说明

  • scan_rsp_data:指向存储扫指响应数据的缓冲区的指针。

返回值 函数返回设置的扫措响应数据长度。 实现细节 L.设置发送功率级别(Tx Power Level)数据。

2.调用sle_set_adv_local_nane函数设置本地设备名称。

技术考虑

  • 扫推响应数据提供了一个额外的31字节空间案放置更多设备信息。

  • 这种两阶段的广播机制(广播数据+扫推响应)允许在保持低功耗的同时提供更多设备信

息。

  • 在设计扫描响应数据时,应考虑哪些信息对于潜在的连接设备显有用。

5.广播参数设置接口

5.1 sle_set_default_announce_param

static int sle_set_default_announce_param(void) 功能描述 此函数用于设置SLE设备的默认广播参数。 返回值 函数返回设置结果,成功返回0,失败返回错误码。 实现细节 函数设置以下参效:

1.广播模式(announce_mode)

?.广播句柄(announce_handle)

3.主副角色(announce_gt_role)

1.广播级别(announce_level)

5.广播通道映射(announce_channel_map)

. 广播间隔(announce_interval_min/max)

7. 连接间隔 ( conn_interval_min/max)

3.最大连接延迟(conn_max_Latency)

3.连接监替超时(conn_supervision_timeout )

3.发送功率(announce_tx_power)

L.本地设备地址(own_addr) 技术考虑

  • 这些参数直接影响设备的功耗、可发现性和连接性能。

  • 参数应根据具体应用场景和设备能力进行优化。

5.2 sle_set_default_announce_data

static int sle_set_default_announcc_data(void) 功能描述 此函数用于设置默认的广播数据和扫描响应数据。 返回值 函数返回设置结果,成功返回ERRCCDE_SLE_SUCCES5,失败返回其他错误码。 实现细节 L.调用sle set acv data设置广播数据。

2.调用sle set scan respnse data 设置扫描响应数据。

3.使用sle_set_announce_data应用设置的数据。

技术考虑

  • 广播数据和扫推响应数据的内容应该互补,共同提供完整的设备信息。

  • 数据内容应根据应用需求进行定制,以优化设备发现和连接过程。

6.回调函数

6.1 sle_announce_enable_cbk

static void sle_announce_enable_cbk(uint3z_t announce_id, errcode_t sta 功能描述 此回调函数在广启用操作完成时被调用。 参数说明

  • announce_id:广播的唯一标识符。

  • status:操作的结果状态。

技术考虑

  • 此回调可用于确认广播是否成功启动,并在必要时采取相应的错误处理措施。

  • 在实际应用中,可以利用此回调来更新用户界面或融发其他系统事件。

6.2 sle_announce_disable_cbk

static void sle_announce_disable_cbk(uint32_t announce_id, errcode_t st. 功能描述 此回调函数在广播禁用操作完成时被调用。 参数说明

  • announce_1d:广播的唯一标识符。

  • status:操作的结果状态,

技术考虑

  • 可用于确认广握是否成功停止,并在必要时进行清理操作或状态更新。

6.3 sle_announce_terminal_cbk

static void sle_announce_terminal_cbk(uint32_t announce_id) 功能描述 此回调函数在广播终止时被调用 参数说明 announcc_id:广播的唯一标识符。 技术考虑

  • 可用于处理意外的广插终止情况,如资源耗尽或系统错误。

  • 在此回调中,应考虑是否需要重新启动广插或通知上层应用。

7.注册回调函数接口

7.1 sle_uart_announce_register_cbks

errcode_t sle_uart_announce_register_cbks(void) 功能描述 此函数用于注册广播相关的回调函数。 返回值 函数返回注册结果,成功返回ERCCDE_SLE_SUCCES5,失败返回其他错误码。 实现细节

1.初始化 sle annaunee seek callbackst结构体。

2.设置启用、禁用和终止回调函数。

3. 调用 sle_anouncc_scek_register_callbacks 注册回调函数。

技术考虑

  • 正确注册回调函数对于管理广播生命周期和处理异常情况至关重要。

  • 在多线程环境中,应确保回调函数的线程安全性。

8.初始化接口

8.1 sle_uart_server_adv_init

crrcode_t sle_uart_scrver_adv_init(void) 功能描述 此函数用于初始化SLE UART服务器的广插功能。 返回值 函数透回初始化结果,成功返回ERRCODE_SLE_5UCCES5,失败透回其他错误码。 实现细节 L.调用 sle set default anaunce paran 设置默认广握参数。

2.调用sle set default_annaunce data设置默认广播数据。

3.调用sle_start_annaunce开始广播。

技术考虑

  • 此函数应在系统启动时调用,以确保广播功能正确初始化。

  • 应检查每个步骤的返回值,以确保初始化过程中没有错误发生。

9.SLE参数详解

9.1广播模式(announce_mode)

广插模式定义了设备在SLE网络中的可见性和连接性。 可选模式包括:

  • 只可被发现

  • 只可被连接

  • 可被发现且可被连接

这些模式影响设备的功耗和安全性。例如,只可被连接模式可能用于已知设备间的安全通信。

9.2广播间隔(announce_interval_min/max)

广播间理定义了连续两次广播包发送之间的时间。

  • 单位:通常为8.625ms的倍数

  • announce_interval_min:最小广播间隔

  • announce_interval_max:最大广播间隔

较短的间隔增加设备被快速发现的概率,但会增加功耗。较长的间隔可以节省电量,但可能延长 设备被发现的时间。

9.3连接间隔(conn_interval_min/max)

连接间障定义了主设备与从设备之间逼信事件的频本。

  • 单位:通需为1.25ms的倍数

  • conn_1nterval_min:最小连接间隔

  • conn_interval_max:最大连接间隔

9.4最大连接延迟(conn_max_latency)

显大连接延退允许从设备在不通知主设备的情况下跳过一定数量的连接事件。

  • 单位:连接事件的次数

较高的延退值可以让从设备在没有数据传输时进入深度睡眠状态,从而节省电量。然而,这也会 增加通信延迟。 技术考虑:

  • 延迟值应根据应用的实时性需求来设置。

  • 对于需要快速响应的应用,应使用较低的延退值。

  • 电池供电的设备可能会受益于较高的延退值,以延长电池寿命。

9.5连接监督超时(conn_supervision_timeout)

连接监督超时定义了在宣告连接丢失之前,允许没有成功通信的最长时间,

  • 单位:通常为18ms的倍数

计算公式:conn supervision timeout>(1+conn_maxlatency)* conn_interval_max 技术考虑:

  • 较长的超时值可以增加连接的稳定性,特别是在信号不稳定的环境中。

  • 过长的超时也可能导致实际断开的连接被维持过久,浪费资源。

  • 在设置这个值时,需要考虑网络的稳定性和应用的容错能力。

9.6发射功率(announce_tx_power)

发射功率决定了设备发送无线信号的强度。

  • 单位:dBm(分贝毫瓦)

技术考虑:

  • 较高的发射功率可以增加通信范围和可靠性,但会显著增加功耗。

  • 较低的发射功率可以节省电量和减少对其他无线设备的干扰,但可能减少通信范围。

  • 发射功率的选择应考虑预期的使用环境(室内/室外,预期的通信距离)和设备的电源能力。

10.SLEUART服务器的实现细节

10.1数据流程

SLEUART服务器的数据流程如下: I.UART接收数据

2.数据缓冲和处理

3.封装为SLE数据包

1.通过SLE协议栈发送

5.接收SLE数据包

5.解析SLE数据包

7.通过UART发送数据

10.2缓冲管理

有效的缓冲管理对于SLEUART服务器的性能至关重要:

  • 使用循环缓冲区来处理UART和SLE之间的数据流。

  • 实现适当的溢出处理机制。

  • 考虑使用双缓冲技术以提高吞吐量。

10.3错误处理

健壮的错误处理机制包括:

  • UART通信错误检测和恢复

  • SLE连接断开处理

  • 缓冲区溢出处理

  • 异常数据包的处理

10.4功耗优化

为了优化SLEUART服务器的功耗:

  • 在空闲时使用低功耗模式

  • 实现动态功率调节

  • 优化数据传输策略,减少不必要的传输

11.与其他无线技术的详细比较

11.1 SLE VS BLE

特性 SLE BLE

2.4 GHz

频段

2.4 GHz

通道数 40 40 GFSK GFSK 调制方式 2 Mbps 最大数据率 2 Mbps (BLE 5.0+) 点对点、星型 网络拓扑 点对点、广播、网状(Mesh) 安全性 128-bit AES 128-bit AES 功耗 极低 低 技术比较:

  • SLE在某些IoT应用中可能比BLE更节能,但具体取决于实现和使用场景。

  • BLE有更广泛的生态系统和设备支持。

  • SLE可能在某些特定应用中提供更优化的性能。

11.2 SLE vs Wi-Fi

特性 SLE Wi-Fi 频段

2.4 GHz

2.4 GHz, 5 GHz, 6 GHz

覆盖范围 中等(-100m) 长(可达300m+) 可达几Gbps 2 Mbps 最大数据率 功耗 极低 中等到高 低 高 网络复杂性 适用场景 低功耗IoT设备 高带宽应用,如视频流 技术比较:

  • SLE更适合电池供电的IoT设备,而Wi-Fi更适合需要高带宽的应用。

  • Wi-Fi提供更长的范围和更高的数据率,但功耗较高。

  • SLE的网络设置和管理通常比Wi-Fi更简单。

#mcu#国产系列#射频

原始排版图

海思  星闪SLE  hi3863芯片 SDK接口指南:微信公众号导出原始排版图