蓝牙芯片自主接入
本文介绍如何自主接入蓝牙芯片。以下步骤描述以 nRF52832 为例。
步骤 1:提供申请信息
如果您想使用 TuyaOS 开发框架进行产品开发,但是 TuyaOS 不支持您使用的芯片平台,此时可以通过 TuyaOS 移植的方式,向 TuyaOS 开发者团队申请。审批通过后,即可获取适用于期望芯片平台的 TuyaOS SDK 模式的开发框架,然后自主地进行 TuyaOS Kernel 接口的适配、调试和验证。移植完成之后,即可进行产品的开发。
准备工作
移植之前,要完成一些准备工作:
了解 TuyaOS。
了解和安装 Tuya Wind IDE。
申请模板
准备完成后,按照 TuyaOS 移植申请模板,发送邮件联系您在涂鸦的接口人。
TuyaOS 移植申请模板
标题:三方平台自主接入申请 - 蓝牙
申请人:<涂鸦 IoT 开发平台账号>
企业:<申请人所属企业>
联系方式:<申请人的联系方式,手机号码>
申请原因:<提供详细的申请原因和用途,有效地提高审批的效率>
开发类型:<联网单品/网关/中控/IPC/Zigbee/蓝牙/NB-IoT>
备注:<其他一些特别需求,需要详细描述>
芯片详情:
名称:<芯片名称,英文,如:nRF52832 >
厂商:<芯片生产厂商简写,英文,如:Nordic >
型号:<芯片型号,英文,如:nRF52832 >
架构:<芯片架构,如:ARM Cortex-M4 >
芯片类型:<芯片分类:Wireless SoC/MCU>
通信类型:<芯片的通信类型,仅 Wireless SoC 需要选择,包括 Ethernet/Wi-Fi/Wi-Fi& Bluetooth LE/Bluetooth/Zigbee/Cellular/NB-IoT>
bit 位宽:<芯片总线位宽,16 位/ 32 位 /64 位>
操作系统:<芯片操作系统类型:Linux/RTOS/Non-OS>
大小端:<小端/大端>
开发环境:
- 开发工具,例如 Keil
- 开发工具版本,例如 V5.28.0.0,可添加截图
- 电脑系统要求,例如 Windows 10 及以上,写您已知的要求即可
- 开发环境搭建步骤,详细且具备实操性,需要在新电脑上面验证过
- 编译并生成库文件的详细步骤及示例程序
- 相关资料压缩包,压缩包名称要求:
TuyaOS_SDK_公司名称\_芯片型号
,例如 TuyaOS_SDK_xxxx_nRF52832开发环境资料及使用说明详见附件:TuyaOS_SDK_xxxx_nRF52832
收件人:yidao.wang@tuya.com
,接口人邮箱
抄送:gaoyh@tuya.com
,litao@tuya.com
,suding@tuya.com
,louxu@tuya.com
,chengmj@tuya.com
邮件发送完成后,等待审批结果。审批通过或者是不通过,都会有邮件通知。
如果审批通过,则可以通过 Tuya Wind IDE,选择 TuyaOS SDK 模式,以及对应的开发框架、类型开发包、芯片平台来下载所需开发框架。更多信息,查看教程。
注意:SDK 中存在一些安全相关的 C 语言库文件,涂鸦根据您提供的芯片开发环境,对这些文件进行编译生成库文件,所以您提供的开发环境相关信息以实用性为主,目的是提供一个生成库文件的环境及相关信息,帮助涂鸦对接人员快速了解环境,以期更好地为您服务。
步骤 2:涂鸦准备并提供 SDK
涂鸦准备并提供 SDK,完成三方芯片自主对接的完整流程。
IDE 审批流程,目前由人工完成,后续会由 IDE 接管。
后台新增芯片型号及资料,目前由人工完成,后续会由自动化工具生成。
涂鸦对接人员会根据 步骤 1 中收到的相关资料生成库文件,目前蓝牙开发包核心组件库只有 3 个。已导入芯片平台位于
.\software\TuyaOS\libs
文件夹,自主接入芯片平台将位于.\software\TuyaOS\vendor\nrf52832_ble\sdk\lib
文件夹。libtal_ble_secure.lib
libtal_ble_mbedtls.lib
libtal_xxtea.lib
安全库生成,人工操作。
SDK 打包流程,人工操作。将库文件、源文件及其他相关资料打包后形成 SDK。
SDK 以白名单形式发布到 Tuya Wind IDE 平台,人工操作。关于如何获取 SDK,参考 TuyaOS 开发蓝牙产品之环境搭建。
步骤 3:由您移植 SDK
体验
在开始移植之前,强烈建议您先体验 已导入的芯片平台,再开始移植您自己的芯片平台。很多问题都可以参考已导入的芯片平台。
体验步骤一般为:
按顺序阅读 涂鸦开发者论坛 内 TuyaOS 快速入门 相关资料,根据资料获取相关开发包并体验。
移植一般分为三个阶段性目标:
将相关文件放置到指定位置。
添加源文件/头文件并编译通过。
实现接口并测试通过。
移植的所有工作都位于 .\software\TuyaOS\vendor
文件夹内,请勿修改其他位置的文件及代码。
移植
准备工作完成后,就可以开始移植,详细的移植步骤如下:
打开 步骤 2 获取的 SDK。
将芯片原厂的 SDK 放置到
.\software\TuyaOS\vendor\xxxx_ble\sdk
目录下。将以下文件夹内的所有源文件和库文件添加到芯片原厂提供的示例工程中。
Code: Select all
.\software\TuyaOS\apps\tuyaos_demo_ble_peripheral //tuyaos_demo_ble_peripheral 可能是其他的名字 .\software\TuyaOS\components\……\src //"\software\TuyaOS\components"文件夹下的所有子文件夹 .\software\TuyaOS\libs //为空则不添加 .\software\TuyaOS\vendor\nrf52832_ble\tuyaos\bluetooth .\software\TuyaOS\vendor\nrf52832_ble\tuyaos\drivers .\software\TuyaOS\vendor\nrf52832_ble\tuyaos\include .\software\TuyaOS\vendor\nrf52832_ble\tuyaos\system .\software\TuyaOS\vendor\nrf52832_ble\tuyaos\utilities .\software\TuyaOS\vendor\nrf52832_ble\sdk\lib
将以下头文件目录添加到芯片原厂提供的示例工程中。
Code: Select all
.\software\TuyaOS\apps\tuyaos_demo_ble_peripheral .\software\TuyaOS\apps\tuyaos_demo_ble_peripheral\include .\software\TuyaOS\components\……\include //"\software\TuyaOS\components"文件夹下的所有子文件夹 .\software\TuyaOS\include //"\software\TuyaOS\include"文件夹下的所有含头文件的子文件夹 .\software\TuyaOS\vendor\nrf52832_ble\tuyaos\include .\software\TuyaOS\vendor\nrf52832_ble\sdk\lib //".\software\TuyaOS\vendor\nrf52832_ble\sdk\lib"文件夹下的所有含头文件的子文件夹
尝试修改代码,直到编译通过。
根据
.\software\TuyaOS\include\vendor\adapter
里的头文件和\software\TuyaOS\vendor\ats2835x_bt_le\tuyaos_doc
里的 API 文档说明,实现涂鸦 Tuya Kernel Layer(TKL)层接口,所有接口位于以下文件夹的源文件中:Code: Select all
.\software\TuyaOS\vendor\nrf52832_ble\tuyaos\bluetooth .\software\TuyaOS\vendor\nrf52832_ble\tuyaos\drivers .\software\TuyaOS\vendor\nrf52832_ble\tuyaos\include .\software\TuyaOS\vendor\nrf52832_ble\tuyaos\system
不需要实现所有的接口,可参考 已导入的芯片平台,实现相同的接口即可。
在移植过程中遇到任何问题,请在 TuyaOS 开发者论坛 TuyaOS-蓝牙设备开发 版块通过发帖的方式寻求帮助。涂鸦有机器人实时关注论坛上帖子的情况,实时为您解决问题。
步骤 4:涂鸦准备并提供测试用例
涂鸦提供包含基本功能的测试用例,包含详细的测试步骤和测试现象。
步骤 5:您自测并提供结果
您结合涂鸦提供的测试用例和 已导入的芯片平台 进行自测,通过所有测试用例,实现 已导入的芯片平台 的同等功能或其他高级功能,并将测试结果发送给对接人。
测试过程中出现问题的排查方法:
步骤 6:您进行产品开发
在完成 TuyaOS 移植工作并自测完成后,您根据需要进行产品开发,也可以将 SDK 提供给第三方开发者进行产品开发。
为了方便其他开发者的使用,您在移植工作完成后,需要仿照已导入的芯片平台完成《平台功能说明》文档,例如:nRF52832 平台功能说明。
步骤 7:涂鸦将测试结果归档
涂鸦对接人将测试结果和《平台功能说明》文档进行归档。