1. SDK相关重要名词介绍

本章节主要讲解一些SDK的重要名词,旨在帮助客户更好地了解SDK,并且解决用户对一些名词上的理解出现歧义。与名词相关的配置方法,本章节会提供超链接给用户参考相关章节去配置。

1.1. 常见名词介绍

1.1.1. 1、系统flash

指运行程序的flash,也可存放读写资源文件。
  • 该flash可能外挂(A0芯片)可能内封(A2/4/8芯片)

1.1.2. 2、数据flash

指存放读写资源文件/数据的flash
  • 仅外挂

1.2. 蓝牙相关名词介绍(带连接)

相关的配置说明文档章节:
  1. 完整GATT相关蓝牙配置说明:->”完整GATT服务(GATT_complete)介绍“;

  2. 简易GATT相关蓝牙配置说明:->”简易GATT服务(GATT_simple)介绍“;

1.2.1. 1、ATT_LOCAL_MTU_SIZE

备注

ATT发送包长

1.2.2. 2、连接间隔(conn_interval)

备注

也成为连接周期,单位1.25ms

1.2.3. 3、从机延迟回应(latency)

备注

单位conn_interval,从机延迟N个conn_interval才对主机做一次回应

1.2.4. 4、连接超时时间(timeout)

备注

单位10ms,蓝牙在timeout时间长度内收不到数据就会触发超时断连

1.2.5. 5、普通(未连接)广播周期(ADV_INTERVAL)

备注

从机广播参数,单位0.625ms

1.2.6. 6、SET_SCAN_WINDOW

备注

主机的搜索窗口大小(unit:0.625ms)

1.3. 蓝牙相关名词介绍(非连接周期广播)

相关的配置说明文档章节:
  1. 蓝牙周期广播配置说明:->”周期广播(periodic_advertise)介绍“;

1.3.1. 1、广播端

备注

周期广播应用的发送端,注意是非连接广播,即发送端发出的数据,接收端不一定能接收到

1.3.2. 2、扫描端

备注

周期广播应用的接收端

1.3.3. 3、周期广播间隔(frame_interval)

备注

广播端从应用层取数的间隔,扫描端同步成功后会按照这个间隔推数据给应用层

1.3.4. 4、重发间隔(retry_interval)

备注

广播使用不同的phy,重发间隔也不同。

  • 1m phy重发间隔为2.5ms;

  • 2m phy重发间隔为1.25ms(V1.4.0版本开始不适用2M phy);

  • coded S2 phy重发间隔为5ms;

1.3.5. 5、重发次数(retry_num)

备注

重发次数限制关系为:retry_num=frame_interval/retry_interval

1.3.6. 6、周期广播包长度(frame_len)

备注

广播每次发送的数据包长度

1.3.7. 7、周期广播蓝牙名(adv_name)

备注

周期广播应用的蓝牙设备名,广播端和扫描端的设备名一致才能通信

1.3.8. 8、事件回调

备注

用户在初始化时注册给广播端和接收端的回调函数,蓝牙会根据用户的操作推出对应的事件到回调函数中。数据收发以及同步成功和超时也会推送对应的事件到回调中,并且需要在回调中执行收发.

1.3.9. 9、同步丢失

备注

广播需要在广播端和扫描端同步成功后,扫描端才能收到广播端的数据。而同步丢失意味着扫描端不能再接收广播端的数据,需要在下一次同步成功才能接收数据。

1.4. 音频传输相关名词介绍

音频传输相关说明文档章节:
  1. 音频传输相关文档说明:->”音频传输管理模块说明“;

1.4.1. 1、数据打包(packet)

备注

该名词特指AW30N_SDK的音频传输应用将用户数据写入发送队列之前,对需要发送的用户数据打包的过程(该打包协议不是蓝牙协议);

1.数据打包步骤主要包括在用户数据之前加上数据包头,打包后的数据包头部用于给接收端拆包解析。

2.涉及代码文件
  • apps/app/bsp/common/audio_rf_trans/trans_packet.c

3.打包之后的数据结构如图,目前占用10个byte;

"图1.1 用户数据打包结构"

图1.1 用户数据打包结构

1.4.2. 2、拆数据包(unpacket)

备注

该名词特指AW30N_SDK的音频传输应用在接收端接收用户数据时,对数据包进行拆包解析的过程;

1.拆数据包流程主要包含对收到的数据包进行逐个字节解析校验流程。拆包完成后会分发给应用层。

2.涉及代码文件
  • apps/app/bsp/common/audio_rf_trans/trans_unpacket.c

1.4.3. 3、unpacket接收状态机

备注

该名词特指AW30N_SDK的音频传输应用在接收端对数据包进行拆包解析过程中依赖的状态机流程;

1.涉及代码文件
  • apps/app/bsp/common/audio_rf_trans/trans_unpacket.c

2.状态机的流转状态与数据包结构息息相关。由于拆包是逐个字节进行校验,所以校验前后流转的状态必须与打包的结构一致,否则视为校验失败。

1.4.4. 4、发送队列(send_queue)

备注

该名词特指AW30N_SDK的音频传输应用的发送端,将用户数据输出给蓝牙前级的缓存;

1.发送队列主要用于对单链路发送应用时,通过数据打包和数据队列的方式对数据进行排列管理,用户可将不同类型的数据打包后写入队列,这样接收端即使一次收到多种类型的数据也可通过unpacket拆包,然后按类型分发到应用层。详细参考对讲机应用。

2.涉及代码文件
  • apps/app/bsp/common/audio_rf_trans/rf_send_queue.c

1.4.5. 5、接收数据分发(packet_2_app)

备注

该名词特指AW30N_SDK的音频传输应用的接收端对收到的用户数据拆包完成后,按照数据包头记录的类型,然后将数据分发给应用模块的过程;

1.该流程主要在packet_2_app函数中执行,根据数据解析完成之后,读取数据头的type,然后按照type信息分发数据给应用层

2.涉及代码文件
  • apps/app/bsp/common/audio_rf_trans/trans_unpacket.c