【BLE进阶日记】⑤BLE硬件平台

【BLE进阶日记】专栏目录

第一章 BLE介绍
第二章 BLE协议基础知识
第三章 BLE–GAP (Advertising and Connections)
第四章 BLE–GATT (Services and Characteristics)
第五章 BLE硬件平台
第六章 BLE调试工具
第七章 嵌入式应用程序开发



前言

本专栏旨在提供对低功耗蓝牙的一个坚实的、实用的、高水平的理解:数据是如何组织的,设备之间如何相互通信,以及协议设计团队所
做出的关键设计决策和权衡。
1. 第1~4章提供了低功耗蓝牙技术的高级概述,解释了数据是如何组织的以及它的关键限制,同时也介绍了所有你在使用BLE时可能遇到
   的关键概念。
2. 第5~6章介绍用于开发或对支持ble的应用程序或设备进行测试的有用工具(包括硬件和软件)。这些章节集中在低成本,易于访问的
   工具,以帮助你开始低成本开发。
3. 第7章介绍了您可能为BLE使用的主要开发平台(用于产品设计和嵌入式硬件工程师的各种嵌入式电子平台)。
本专栏提供了示例代码,您可以免费在程序和文档中使用它。

本章提供产品设计师最新的嵌入式开发平台介绍,用于BLE外设或产品。


一、BLE硬件平台简介

大多数基于蓝牙低功耗技术的商业应用场景涉及外设,而不是针对与之交互的中心设备(如手机、平板电脑或个人电脑)进行产品设计。因此,本章介绍了一些用于设计和原型制作蓝牙低功耗外设的特定开发平台。

本章的讨论假定读者对嵌入式系统设计有基本的了解,并且主要目标是指导产品设计师选择廉价和易得的平台,以适用于他们的产品。

二、nRF51822-EK(Nordic Semiconductors)

Nordic Semiconductors多年来一直从事低功耗无线解决方案,并作为Bluetooth SIG的董事会成员,在BLE标准的制定和塑造方面发挥了重要作用。在无线市场上,Nordic以其受欢迎的通用射频(RF)硅解决方案而闻名,它是第一批将价格实惠的BLE外设模式硅材料推向市场的公司之一(即nRF8001)。其最新的nRF51系列代表了对他们以往许多单芯片射频产品的全面重新设计,将无线电和现代32位ARM微处理器集成在一颗芯片中。

2.1、技术规格:

Nordic的nRF51系列是一款高度集成的片上系统,将BLE兼容的无线电和现代ARM处理器合并在一个低成本的单芯片封装中,具有以下特点:
• 运行在16 MHz的ARM Cortex-M0内核
• 128或256 KB的闪存(S110 BLE堆栈需要80至90 KB之间的闪存空间)
• 16 KB的静态随机存储器(S110 BLE堆栈提供8 KB的应用程序可用空间)

nRF51822是一款全闪存设备,这是区别于其他产品设计的一个重要特点。这意味着BLE堆栈被写入可修改的闪存中,并且可以根据核心规范的更新进行更新,而无需新的硅片修订。

选择这种方案的一个不足之处在于相比于只读存储器(ROM)解决方案,它增加了一些额外的每个设备的制造成本。但鉴于蓝牙核心规范的快速发展,这个决策在长期来看可能会带来回报,因为它使得Nordic有可能比其他选择低成本ROM芯片的硅片供应商更快地支持最新的规范,从而更早进入市场。

2.2、软设备架构

为了在其芯片上实现BLE支持(也可用于非BLE标准,如ANT+和专有的2.4GHz协议),Nordic使用了它所称之为软设备(SoftDevice)的东西。软设备本质上是一个坐落在Flash存储器底部的黑盒子,实现了诸如BLE协议栈和周边角色支持等功能。用户(应用)代码位于Flash存储器的较高地址,并根据需要调用这个较低级别的软设备。

大多数BLE产品使用S110软设备,这是一个仅支持周边角色的解决方案。设备架构还包括一个支持中央角色的S120软设备,但由于BLE的此用例较少见,本节中的讨论将重点放在S110上。

Nordic的软设备设计方法有其好处和缺点。从积极的一面来看,将BLE协议栈作为软设备的形式单独使用,可以使固件工程师将更多精力集中于应用级代码上。他们可以处理更小的API和更高级的概念,如GAP(第3章)和GATT(第4章),将最低级别的细节留给软设备(安全实现,消息验证等)。

软设备还允许固件开发人员避免处理无线电配置,这在大多数射频产品的固件开发过程中可能是一个重要的部分。将这些细节转变为一个黑盒子可以保护固件工程师免受低级错误的影响,并可以显著简化产品验证过程,因为低级别的BLE代码将根据蓝牙核心规范自行操作。

软设备方法的另一个优点是它允许一种硬件设计支持多种无线电协议或使用情景,包括设计自定义协议的能力,这可能降低基于单个PCB设计的多个类似内部产品的公司的产品成本。

最后,软设备的架构对应用程序开发人员来说是无干扰的。因为它独立运行,并且应用程序不需要与任何库进行链接,所以SD和应用程序的更新可以分别执行,互相之间没有依赖,就像Linux内核或用户空间库的更新一样,不用担心受到更新影响的另一侧。

不过,软设备需要系统资源,这些资源将无法供应用程序使用。S110软设备分配了底部80 KB的闪存和8 KB的SRAM,所以在使用256 KB版本的nRF51822时,你将剩下176 KB的闪存和8 KB的SRAM供应用程序使用。

软设备的设计还引入了时延和架构限制,因为较高级别的代码需要从你的高级别代码中调用软设备,这通过ARM核心上的软件中断来实现。就像任何大型工程任务一样,软设备带来的众多优点需要做一些牺牲,主要体现在时序和实时要求方面。

2.3、使用nRF51822-EK开发板

如果您有兴趣评估nRF51822,最好的平台是北欧半导体的nRF51822-EK。如下图所示,该评估套件包括两块开发板:PCA10001(左侧显示)和PCA10000(右侧显示)。
在这里插入图片描述

PCA10000是一个小型USB dongle,主要用于调试,可以通过北欧半导体的Master Control Panel模拟一个中央设备,或者作为sniffer将数据推送到Wireshark中。但它也是一款功能齐全的独立开发板,配有集成的Segger J-Link,可以使用各种开发工具来编程和调试固件。

较大的PCA10001是套件中的主要开发板。它突出了nRF51822上的所有可用引脚,使您能够连接I2C或SPI传感器或外设,通过UART与其他设备通信等。该板还包括一个集成的J-Link用于编程和调试MCU,以及一些额外的电路用于功耗测量和简化原型设计和调试。例如,UART输出可以选择通过USB进行重定向,这样您可以轻松可视化调试消息或向MCU发送简单命令。它还配有一个CR2032电池插槽,可以使用小型电池为开发板供电。

2.4、示例和工具链

Nordic公司为基于该开发套件的许多示例提供了大量示例代码,如果您想要迅速开始并确保代码可靠运行,那么选择该套件将非常方便。大多数示例代码使用Keil的uVision进行开发(IAR工具链是第二选择),可以在非商业项目(小于32 KB)中免费使用ARM提供的uVision(实际上这已经覆盖了广泛的项目范围,因为32 KB的限制并不包括SoftDevice,仅包括应用程序代码)。

在访问该芯片组的最新演示代码和开发工具之前,您需要在Nordic Semiconductor网站上创建一个MyPages账户并注册nRF51822-EK的序列号。

此外,还为基于GNU的工具提供了一些支持材料和示例项目,尽管GNU(和Eclipse)的支持程度不及Keil uVision。但值得注意的是,目前在GNU/Linux和Mac OS X上开发完整的应用程序而不必依赖Windows是有可能的。

为了提供一个开源选项,我们还在GitHub存储库中包含了一个基本的代码库。这个代码基于免费提供的GNU工具链,包括makefiles、启动代码和一些用于使用内置J-Link调试器编程Flash的基本工具。

三、CC2541DK-MINI (Texas Instruments)

Texas Instruments(TI)是低功耗 RF 领域具有悠久历史的另一家公司,设计了许多面向外围市场的 BLE 系统级芯片(SoCs),并且是第一个在市场上提供外围 BLE 解决方案的公司。

CC2541具有以下特点:

  • 8051核心与2.4 GHz无线电
  • 128或256 KB的用户可编程闪存
  • 8 KB SRAM

TI相对于一些竞争对手的最大优势之一是其BLE堆栈功能非常完整,基本覆盖了蓝牙核心规范4.0版本的全部内容。一些供应商选择不实现某些不经常使用的可选功能,而TI则有意努力在功能覆盖范围上走得更远。

CC2541与CC2540兼容,后者为SoC添加了USB支持。这潜在地延长了围绕该芯片家族进行的任何设计工作的寿命,并且只需进行最少的额外设计工作,因为您可以轻松将设计转移到通过USB连接到台式机或笔记本电脑的外设上。

TI非常重视设计和测试,其射频芯片系列具有悠久的设计传承。TI使用设计良好的射频芯片制造可靠的芯片,并为硬件设计师和固件工程师提供了丰富的设计资源。对于没有大量内部射频或嵌入式固件设计专业知识的小公司来说,这可能是一个重要的考虑因素。

CC2541的一个主要缺点是其驱动SoC的相对陈旧的8051核心,您需要使用昂贵的商业编译器和集成开发环境(如IAR Embedded Workbench)进行开发。相比其他许多SoC中采用了更新的ARM Cortex-M核心,8051核心看起来已经相对落伍。随着SoC供应商感受到更大的压力转向更新的核心,TI肯定对这一趋势有很好的意识,未来看他们如何应对将是有趣的。

在众多为TI的CC254x系列提供的开发套件中,低成本的CC2541DK-MINI平台可以让外围设备设计者充分评估开发平台和SoC。

这个套件包括您开始使用CC2541所需的所有硬件,包括硬件调试器、可在PC上充当BLE主设备的USB dongle,以及可以运行自定义BLE代码的按键开发板。

这个开发套件的一个吸引人的特点是它非常接近一个真实产品,具有注塑外壳和两个大物理按钮,在初始开发和调试过程中提供了真实的反馈。在产品开发的早期阶段很容易忽视这些细节,但它们可以帮助了解BLE设备在现实世界中的实际性能,即使一些具体细节(如工作范围)在不同设备设计之间当然会有所不同。

简单地将低功率设备握在手中通常会衰减信号,与放在离笔记本电脑几英尺远的桌子上的原始PCB相比,提供了非常不同的体验。将一台带电池的设备置于外壳中并在真实世界中进行一些操作,比如将其连接到其他事物或其他人身上,也更容易。这是一个细节,但如果您在设计过程的早期没有将开开发工具包离开你的办公桌,它可以节省你时间,并避免潜在的意外。

有关此开发工具包的更多信息,包括订购详情,请参阅德州仪器网站上的CC2541产品页面。

四、其他硬件平台和模块

如果你不想从零开始构建自己的射频设备和电路板,模块提供了一种替代方法。模块的一个关键优势是它们通常已经通过各种监管机构(如FCC或CE / ETSI)的意向发射器认证,而且很可能会通过各种协议机构(如蓝牙SIG)设置的任何测试程序。FCC或CE认证可以轻松耗费10,000美元,这使得模块成为相对低产量产品的一个有吸引力的选择。

使用模块的另一个优势是射频设计已经为你完成了,而定制的射频硬件设计需要专业知识、工具和测试。在产品上正确设计天线或射频前端是一个非常重要的任务,而糟糕的设计可能会显着影响产品的操作范围和效率。模块制造商通常通过提供一个经过正确设计和调谐的射频前端和天线,或者一个允许你轻松添加外部天线的通用连接器来解决这个问题,而无需担心传输线(将能量从无线电发送和接收的金属线路)上的阻抗匹配问题。

作为另一个优势,一些模块(例如本节稍后讨论的Bluegiga模块或Laird模块)配备了高级开发脚本语言,可以显著缩短开发时间,并避免使用Keil的uVision或Texas Instruments的IAR等低级编程环境带来的一些困难。它们只需要一个文本编辑器进行代码开发。

当然,使用模块的好处也是有代价的。与使用单独的集成电路(如nRF51822或CC2541)设计自己的硬件相比,模块的每单位价格要高得多。模块制造商将设计、验证和认证成本分摊到多个产品上,并允许低产量产品达到它们自己无法实现的价格点,但在某个点上(可能是10,000个单位以上),设计和认证自己的硬件可能更具成本效益。
本节的剩余部分介绍了在本文撰写时可用的三个BLE模块。

4.1、Laird的BL600模块

Laird的BL600模块基于Nordic Semiconductor的nRF51822。除了nR51822中包含的所有原始功能外,这些模块还添加了一个基于事件驱动的smartBASIC编程语言,使您能够轻松创建基本应用程序,而不需要学习或投资于昂贵的商业IDE和编译器,也不需要使用低级语言如C或C++编程。

您可以自由使用标准C代码和Nordic的SDK和工具包直接编程模块,但对于简单用例,smartBASIC选项可能会很有用,您只需通过最少的开发工作来添加无线连接到您的产品,而无需深入学习新的堆栈和技术。

该模块已通过CE/ETSI(欧洲)、FCC、Industry Canada、日本以及NCC(台湾)的监管认证,并获得了蓝牙SIG资格认证,同时也可以从许多主要的在线零部件供应商购买。

4.2、Bluegiga的BLE112/BLE113模块

Bluegiga的BLE112和BLE113模块是基于德州仪器的CC2540/CC2541开发的。它们支持BGScript,可以使用简单的XML文件编程特定类型的应用。Bluegiga还提供了一个C API来与这些模块进行通信,使用外部MCU通过UART口与模块进行通信。
BLE112和BLE113之间的主要区别在于较新的BLE113模块具有稍低的功耗,并且添加了一个硬件I2C接口,可用来与各种低成本传感器进行通信(温度传感器、加速度计、陀螺仪、压力传感器等)。
这些模块已经获得了CE/ETSI(欧洲)、FCC、Industry Canada、日本和韩国的监管认证,并且可以在大多数主要的零件经销商(Digikey、Mouser、Farnell等)处购买。

4.3、RFDuino

RFDuino是一个小型BLE模块,允许您使用流行的Arduino IDE和开发平台来创建BLE设备。如果您已经熟悉Arduino,RFDuino是一个很好的入门点,可以大大降低学习曲线,快速开始制作初步的原型。
这些模块已通过CE/ETSI(欧洲)、FCC和Industry Canada的认证,并可以从几个组件经销商购买,包括Mouser和Arrow。


总结

本章提供产品设计师最新的嵌入式开发平台介绍,用于BLE外设或产品。

关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。

  • 23
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

量子君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值