低功耗蓝牙:开帖研究低功耗蓝牙率先发一个NORDIC翻译文档

2020-02-11 08:56发布

本帖最后由 wazhiyi 于 2014-12-12 15:13 编辑

从今天开始开帖研究低功耗蓝牙,首先发一个NORDIC的翻译文档。
背景资料:
使用的开发板是关于NRF51822的芯片,用的是去年团购(在此处感谢阿莫和Overhead兄,话说去年的团购还是挺让人怀念的,做人不能忘本,overhead的资料也放在楼主位了)的板子。
1、第一步实现无协议栈的无线收发;(已经更新在楼主位,代码是跑通了,具体的原理还需要看一段时间的资料)
2、第二布实现蓝牙协议栈。蓝牙没有弄过,弄一步算一步吧。估计顶到200楼,就差不多了;
2+增加一些飞思卡尔的相关性,到这一步出一个基于Freescale的蓝牙Demo,后续的程序走Freescale和Nordic两个平台;
3、第三步实现6轴的控制,话说DMP还没有弄过,到时候也移植一下;预计到250楼;
4、第四步实现一个基于6轴和蓝牙的3轴模拟飞行器。话说现在弄这个的人很多啊,一直没有机会弄,到时候可以使用匿名的软件模拟一个;预计到300楼;
5、第五步弄个Android的手机APP,做一个防丢器,或者空气盒子(具体参数暂定为温湿度,话说墨迹的空气盒子不错);预计到400楼;
6、第六步弄个智能手环,参考百度手环。


加油啊!!!也欢迎拍砖!!!
接下去的例程,都发布在各个楼层了。楼主位不能在编辑了,欢迎下载。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
99条回答
overheat
1楼-- · 2020-02-17 07:08
协议栈一般是核心的东西,代码没人会公开。
倒是有一本书,好像叫Bluetooth Low Energy Handbook,还有中文版。讲了挺多的协议相关内容。
fengyunyu
2楼-- · 2020-02-17 10:30
nRF51822 SDK初体验

作为两家BLE芯片大厂之一,nordic不像TI那么开放,nordic的开发资料是很难找的。
今天有幸得到nordic的BLE芯片nRF51822的SDK,看了一下。

首先,nordic号称协议栈(称为SoftDevice)和应用完全分开,是怎么实现的呢?
TI的协议栈以库的形式提供,用户应用在链接时和库链在一起形成最终的机器代码,TI提供库和头文件供用户使用。
nordic用了不同的方式:SoftDevice,这样协议栈和用户应用可以单独编译和链接。实现BLE的SoftDevice似乎叫S110,由nordic提供。我猜nordic应该只提供S110的机器码,应该不会提供源代码。
看了nRF51 SDK,里面确实没有BLE的库,所有sd_打头的函数都是SoftDevice相关的。比如:sd_ble_gap_adv_data_set
这个函数是这么定义的:
SVCALL(SD_BLE_GAP_ADV_DATA_SET, uint32_t, sd_ble_gap_adv_data_set(uint8_t const * const p_data, uint8_t dlen, uint8_t const * const p_sr_data, uint8_t srdlen));
这个SVCALL在使用MDK时是这么定义的:
#define SVCALL(number, return_type, signature) return_type __svc(number) signature
似乎是使用了Cortex-M0的SVC机制实现Softdevice。
(题外话,我在想Nordic会把自己的协议栈绑在一种CPU架构上吗?不是的,代码里有一个开关SVCALL_AS_NORMAL_FUNCTION
可以让上面的SVCALL宏定义变成普通的函数声明。当然在没有
源代码和库的情况下打开这个开关会出现找不到函数实现的链接错误)

总体来说我觉得softdevice就是nordic一种封闭协议栈核心代码的方式,和TI提供库文件的方式没有区别。
nordic号称自己的协议栈可以配合其它的RTOS,但是如果RTOS也用了相同的SVC呢?
我不关心nordic或者TI的协议栈核心代码实现,就算给我源代码我也懒得看,但是我觉得TI用库提供协议栈的方式更直接和通用;nordic这种方式太取巧了,某些时候会给用户带来一些限制。
当然51822还是有一些优势的,至少封装比较小。

至于怎么在nRF51822上开发应用我还没来得及看,没办法和TI的架构比较
wazhiyi
3楼-- · 2020-02-17 10:56
 精彩回答 2  元偷偷看……
wazhiyi
4楼-- · 2020-02-17 11:39
overheat 发表于 2014-12-12 19:33
协议栈一般是核心的东西,代码没人会公开。
倒是有一本书,好像叫Bluetooth Low Energy Handbook,还有中文 ...

抽空学习一下
fengyunyu
5楼-- · 2020-02-17 13:37
wazhiyi 发表于 2014-12-12 20:50
楼上很有研究啊,但是我感觉Nordic,也有其自己的优点。

和以库的方式相比,Nordic的更容易维护,是独立 ...

http://blog.sina.com.cn/s/blog_7cedb56d0101ckap.html,转的
wazhiyi
6楼-- · 2020-02-17 14:05
clesun 发表于 2014-12-12 20:51
现在低功耗的选择dialog的芯片

SmartBond™ DA14580(小米的芯片)
蓝牙® 智能解决方案:绝不牺牲功耗、尺寸和系统性能
蓝牙智能解决方案节省功耗、易于使用,是便携式电池供电设备之间,及其与云端连接的理想选择。Dialog的SmartBond™系列产
品是蓝牙智能解决方案的典范,也是市面上采用最易于使用、最节省功耗的蓝牙智能技术连接产品的理想选择。
由于吸收了Dialog数十年积累的低功耗RF连接性和功耗管理经验,SmartBond™产品具有业界最低的功率消耗。这些高度集成的解
决方案所需的外部组件比其它任何蓝牙智能解决方案都要少,而且无需外部处理器即可支持完全托管的应用。这些解决方案可与
Dialog 的 SmartSnippets™ 软件结合使用,后者包括一个完全合格的蓝牙智能协议栈、一份 SIG 认证的配置文件清单以及可用作
最受欢迎的用户案例的应用设计实例。

一周热门 更多>