蓝牙技术序和目录
来源:互联网 发布:个人职业规划 知乎 编辑:程序博客网 时间:2024/05/23 21:34
序
当年在清华大学研究院做过一个项目,需要在展讯的功能手机平台上实现蓝牙远程SIM卡(SAP profile)的功能。这个功能比较冷门,只有车载设备才会有这样的需求,而展讯平台目标是手机市场,所以默认情况下不会提供这样的功能。
跟领导提供过三个方案,一是找到提供此功能的供应商,二是让展讯合作开发,三是移植开源协议栈。市面上的蓝牙供应商找了一圈,包括知名的CSR、RDA、Nodic。其中CSR实现的协议栈是最全的,他们有SAP协议,但都是在其他平台上实现的。如果要在展讯平台上实现SAP profile,需要做移植。而CSR不会对研究院的项目产生兴趣,也不会投入他们的研发资源。第一方案走不通,而第二方案也同时在走。领导和清华紫光的总经理是老同学,而清华紫光当年刚好收购展讯完毕,因此尝试一下是否有合作机会。展讯有仔细评估过我们的项目,但是蓝牙协议这块还是跟CSR、RDA合作。前两条路都受阻, 就只剩下自己移植这条路。
研究院优势在于资金和时间都比较充足,可以静下心来做技术研究。所以趁此机会,把蓝牙技术都研究了一遍。一开始不知道从何入手,不会有人给你指导。搜编全网,当时开发蓝牙协议的人没几个, 资料也寥寥无几。后来找到了清华大学出版社出版的一本蓝牙核心原理的书,下载了蓝牙官方的蓝牙核心协议栈pdf,还有找到了蓝牙开源的协议bluez和btstack。感觉有点小米加步枪就开干了。
了解蓝牙原理还是需要的,因为蓝牙里面很多概念,蓝牙的架构要搞清楚。否则一开始就看bluez或btstack的代码,只会加速让你放弃。所以我的学习路线是,边看原理概念,边找一些bluez上层应用例子去看,边写一些简单应用。这样一步步,形成了一个由浅入深的过程。但bluez对我来说只是学习用的。因为bluez比较重,如果移植到一个展讯平台上的Threadx这种RTOS上面,会有很多改动,所以选用轻量级btstack移植。btstack本身支持嵌入式系统,移植过程中,只修改HCI驱动部分和一些系统调用。移植过程比较顺利,没有遇到很棘手的问题。只是btstack太轻,当时SDP协议都没有,要自己实现;ACTIVE、SNIFF模式没有,所以休眠时功耗有问题,这部分也需要自己实现。还有很多诸如此类的问题。小路虽然难行,但能够通往最终目标。后来我们自己在btstack之上完善了很多协议,也解决了btstack上一些bug。
还记得当时把协议栈调通时候的心情。不是做技术的,鬼知道我们在傻乐什么?
目录
- 蓝牙架构
- 一 概述
- 1.0. 总体概述
- 1.1. BR/EDR概述
- 1.2. LE概述
- 1.3. AMP概述
- 1.4. 术语命名
- 二 核心架构
- 2.1 核心系统架构
- 一 概述
- 蓝牙技术序和目录
- 2.4G和蓝牙技术
- WIFI和蓝牙技术
- 蓝牙技术
- 蓝牙技术
- 蓝牙技术
- 蓝牙技术
- 蓝牙技术
- 蓝牙技术
- 蓝牙技术
- 蓝牙技术
- 蓝牙技术和802.11b/g之间的信号干扰
- 蓝牙技术和802.11b/g之间的信号干扰
- 蓝牙技术和802.11b/g之间的信号干扰
- 蓝牙技术简介
- 蓝牙技术规范
- 蓝牙技术词汇表
- 蓝牙技术研究
- 用 Kotlin 开发现代 Android 项目 Part 1
- nordicN51822 ble_app_hrs 属性服务器 示例 句柄分布
- java生成缩略图
- hadoop
- 图论课次①
- 蓝牙技术序和目录
- AndroidStudio中使用plantUML
- Linux下rz/sz(上传下载)命令的安装及使用方法
- matrix67大神
- 验证码生成程序,包括成语验证码
- 微软混合开发经验总结
- Spring 4.2.5 + Hibernate 5.2.10 报错笔记
- java IO流读取保存图片文件
- Linux 多线程