轻松学会三种Bluetooth Smart模块的编程方法
为了了解使用模块的不同方式,我们首先看一下蓝牙模块是怎样进行连接的。蓝牙模块是一款包含微控器的集成模块当供电时,它将自动初始化启动过程,从闪存读取参数,并开启串行端口,多数情况下是UART或SPI。从那里,你的硬件应用将能通过串行与模块通信,发送指令以及接受回应。一旦你的应用按照需求配置了蓝牙模块,模块接着将会进入特定的模式,你将通信发送到蓝牙连接的原始数据,并从该连接接收数据,而不是通过通信指令。
这实际上可以运行的很好,但开发是个问题。多数适配器使用老式的AT命令,你需要写你自己的API,这仅需要字符串操作的知识。但问题通常来自命令和数据模式。当处于命令模式时,适配器接受指令,并回应这些指令。就像是“告诉我有多少适配器可用”,“现在开始运行”。数据模式就简单了,UART上接收的每个字节被广播到连接设备,反之亦然。一个最为常见的问题是何时在两个模式间转换。如果出错,而且你没有检查,那么下一次你部署AT命令时,字符串将会被广播到所有连接的设备而不是被适配器处理,那些设备也许并不明白你的通信。
另一个问题是管理。制造商经常像他们添加功能那样添加新的模式,如果你的产品寿命为十年,你几乎可以确信需要使用,而且支持多个蓝牙适配器。也许这些蓝牙适配器的AT命令是不同的,这样你仅需要做出小小变动。几年之后,你的命令将会看起来像是:
If 设备=这个:
那么做这个
Else if 设备=这个:
做这个
Else if 设备=另一个设备:
做另一些事情
else printf:
唉, API还没有完成呢
那么如果客户因为任何原因需要特定的固件版本的话呢?谁需要新的硬件? 现在你的应用无需任何配置,模块本身就可以有足够的智能来照看所有的细节,你的应用可以接受分析过及处理过的数据,从而集中精力将功能发挥到最好。有些情况下,蓝牙模块可以替换整个应用。所以,让我们来看一下如何使用这些模块:
第一种编程方法:BGAPI
BGAPI协议设计作为应用和外部适配器的通信方法,值得一提的是,这不是真正意义上对模块编程。当蓝牙模块处于外部,BGAPI是一种与模块通信的方式。API结构清晰,可以用它来创建你自己的库。它具有两项主要优势。首先,你可以使用你想用的编程语言。如果出于种种原因你不想使用C语言,你可以使用其他的语言。因为API总是基本相同的,所以你无需为设备专门写一个库,但是对于一系列设备来说,我们就要说一下第二点,兼容性。你现有的设备如果使用寿命终结,那么你无需改变模块。如果模块使用相同的API(当然,有相同的功能),那么你可以简单的换另一个模块,无需改变任何一行命令。
所以,这是很有趣的,但是因为BGM111模块已经集成了微控器和蓝牙,为什么还需要BGAPI呢? 主要是因为第二个原因,兼容性。如果你的设备已经使用BGAPI,你可以连接这个设备,使用这个模块提供的功能。这并不意味着可以保证兼容性,如果你最初的应用使用带EDR的Bluetooth2.1,那么你不能和单一模式的蓝牙智能设备一起使用它。从另一方面来说,你的应用是蓝牙信标,记录临近模块的蓝牙地址,那么你也许无需做任何改变。
这也是为什么你使用BGAPI的另一个原因。我用我的台式电脑录制视频,我大多情况下用它进行开发。也就是说,我大多数时间在台式电脑上工作。我喜欢有三个屏幕。我还有其他两个笔记本,其中一个是i7内核,但是仍然不如台式电脑舒服。另一个是我仅用来记录的小型Ultrabook,它有11英寸的屏幕,不能升级内存,仅出于休闲的目的来使用。
笔记本电脑有着巨大的优势,它有Bluetooth 4.0模块。我的台式电脑也有集成蓝牙,但仅是Bluetooth 2.1,我不能直接与这些模块通信,所以我需要有一台笔记本电脑在附近。如果我的台式电脑上直接有Bluetooth 4.0我只需要买个适配器便可解决这一问题,但是这样做的乐趣在哪里呢? 所以早晚有一天,我将通过BGAPI将BGM111模块连接到我的台式电脑,并用它与其他模块通信。我认为这是很有趣的。因为我不想做系统编程,我将使用现有的Python库,立即开始运行一些程序。
第二种编程方法:BGLib
因为BGM111基于微控器,你也许会认为可以用C语言进行编程,就像EFM32一样。这就是BGLib的原理,它是一款ANSI C implementation,当你对微控器进行完全控制的时候,你可以获得所有的Bluetooth功能。传统上,BGLib曾被设计来用于外部处理器和微控器,在那些时候,模块还处于外部,所以使用BGAPI。今天,BGLib仍然存在,但是在微控器内部,再一次,兼容性成为了关键,既然有一个系统像期待的那样工作的好,那为什么不继续使用呢?
BGLib有一项主要的优势。通过使用ANSIC写成的库,你可以在C语言中创建应用,访问你的微控器或者微处理器的任何部分,从简单的事情像是激活GPIOs,一直到FPU命令,甚至汇编程序,当优化的库用于蓝牙功能时,你可以结合两者的优势。
BGM111也在BGLib的哲学范围之内。它可以直接在BGM111上使用,而不是将BGLib集成到外部处理器。它仍然使用BGLib,所以你可以通过简单的C命令来控制你的蓝牙视频,但是你也可以完全控制微控器内部的部分,带FPU的Cortex-M4功能十分强大。
第三种编程方法:BGScript
如果你想将BGM111当做独立的设备使用,那么你就不能使用BGAPI,而且如果你不用C语言,或者你不想使用Cortex-M编程的低级开发,那么BGScript就是你所需要的。让我们看一看,C语言有时令人望而生畏。虽然Simplicity Studio恰如其名,但即便是这样,有些人还是决定C语言十分难。你也许懂IOT,但是你确实不了解C,那么你将会花费更多的时间来调试而不是开发,当你完成项目的时候,也许有些项目已经赶在你前面了。如果你是是经验丰富的C开发者,仅仅想根据想法快速设计原型,来看看其运行效果,那么脚本语言此时就是最好的选择。
BGScript正如其名字建议的那样,是脚本语言。它去除了初始代码,内存分配,中断处理程序等麻烦,这一你可以集中精力在功能上。它要求特定的行动来处理数据,这些行动可以是连接或断开到设备的连接,无线接收数据,或者GPIO中断等。
如果你熟悉像Python这样的脚本语言,那么BGScript就会很快上手。Script有简单的指令,可以用来开发复杂的应用。就算你不熟悉,也没关系,它们是很容易学的。你可以在一小时内开发出一款应用!更多SILICON LABS蓝牙模块及SoC产品与技术信息,请联系世强公司。
- |
- +1 赞 0
- 收藏
- 评论 1
本网站所有内容禁止转载,否则追究法律责任!
相关研发服务和供应服务
相关推荐
【经验】Silicon Labs蓝牙模块的PCB设计要点
Silicon Labs的蓝牙模块不注意PCB的设计会造成硬件性能下降的问题,比如,可能与其它的无线设备存在干扰,通讯质量下降等。
【经验】如何用10分钟完成蓝牙模块与手机之间的数据读写交互?
作为物联网技术的一大核心,蓝牙其实上手起来非常快,本文我们一起来探讨一下如何使用蓝牙构造一个简单的通信系统。本文以Silicon Labs的低功耗蓝牙举例说明
【成功案例】基于BGM111蓝牙模块的蓝牙智能燃气表设计案例
本文主要介绍了基于BGM111蓝牙模块的蓝牙智能燃气表设计案例,并论述了行业中主流燃气表的种类和各自存在的问题,针对问题提出蓝牙技术与燃气表结合的新型应用模式。
要在电路板上增加蓝牙功能,都需要什么器件?
如果使用蓝牙SoC EFR32BG1xx系列,芯片电源部分需要电感(使能DC-DC)、退耦电容,射频链路1个电感、一个电容,陶瓷天线或者PCB板载天线。如果用蓝牙模块BGM11x,可预留串口和电源接口。
开发BGM111低功耗蓝牙模块,需要哪些软件和工具的支持?
开发BGM111低功耗蓝牙模块有两种设计方式:第一种设计方式是有外部MCU的NCP模式,可以安装BGTool软件。这个软件可以在电脑端模拟一个MCU功能,通过串口发送控制命名驱动BGM111模块。并实时显示串口与BGM111之间所有的交互数据,可以拷贝出来,作为用户自己的项目编程使用。第二种设计方式是BGM111独立运行,这个模式下采用BGScript脚本语言来编程,可以安装BGTool软件。这个软件包含了BGScript脚本编译器。用于编译工程代码,生成bin文件。BGScript编程时无需特殊的编程工具,任何文本编辑工具都可以使用。BGTool软件(BGScript Development)的下载链接:www.sekorm.com/doc/49625.html
Bluetooth®实时定位库7.2.0.0 GA Gecko SDK套件4.4
描述- Silicon Labs发布蓝牙实时定位库7.2.0.0 GA,包含角度到达估计和空间定位功能。该库适用于Windows和Linux主机,与蓝牙SDK集成。资料详细介绍了新版本的功能、改进、已知问题、已弃用和已删除的项目,并提供安装和使用指南以及技术支持信息。
蓝牙模块BLE112已通过了哪些认证?
蓝牙模块BLE112已经通过了蓝牙认证、FCC认证、IC认证、KCC认证、日本和韩国的质量认证。因此,如果产品要出口到国外,就不需要再做相应的认证了。
在市面上看到蓝牙BLE的耳机,请问BGM111是否可以做蓝牙耳机应用?
不能,BLE协议特点是低功耗、低速率,蓝牙耳机的目前最低的音频采样率为44.1KHZ,目前市面上所有厂商的BLE蓝牙模块都达不到此速率。如果有支持BLE的蓝牙耳机,那么应该是双模的蓝牙产品,即支持蓝牙BLE,也支持传统蓝牙3.0协议或者2.1+EDRx协议,在传输音频数据方面使用的蓝牙传统协议;我们有专门适合音频的蓝牙芯片WT32i,蓝牙3.0协议,支持速率24mps,内置DSP音频解码器。
DL-32-BLE4.2蓝牙模块规格
描述- 本资料介绍了DL-32-BLE4.2蓝牙模块的技术规格和应用指南。该模块是一款低功耗的蓝牙4.2模块,集成了高性能射频收发器、基带处理器和多种外围接口,适用于工业无线控制、可穿戴电子设备、健康产品等领域。
型号- DL-32-BLE4.2
蓝牙模块有哪些?
世强有提供Silicon Labs的蓝牙模块,包括有经典蓝牙模块、双模蓝牙模块及BLE 模块等等,具体的型号有:BLE112,BLE113,BT121,WT121,BGM1XX等。
远程蓝牙模块WT41通信距离能达到1000米吗?用在什么领域比较多?
远程蓝牙模块WT41,相应指标如下:1)发射功率:+20.5 dBm【MAX】2)接收灵敏度:-94dBm【MAX】可以计算出无线链路数据如下:20.5 dB(TX)+ 94 dB(RX灵敏度) - 4.5dB(TX和RX两种天线衰减,已假设天线较差)= 110 dB,在视距情况下的传输距离可以轻松达到1000米。WT41有如下典型应用:1)手持终端2)工业设备3)POS4)个人数字助理(PDA)5)汽车诊断单元
BGM111 Gecko Bluetooth®无线模块产品介绍
描述- 该资料介绍了BGM111无线Gecko蓝牙模块,一款适用于低功耗蓝牙应用的射频模块。它基于EFR32BG1 SoC,集成了蓝牙低能耗无线电、软件堆栈和基于GATT的配置文件,并支持用户应用程序,无需外部微控制器。BGM111具有高度灵活的硬件接口,可连接到不同的外围设备或传感器。
型号- BGM111,SLWSTK6101C,BGM111A256V2R,BGM111A256V21,BGM111A256V2,BGM111A256V21R
【Silicon Labs无线技术】Zigbee/Thread/蓝牙/WIFI/Sub-GHz齐齐来媲美
物联网连接,应挑选怎样的无线协议栈才是最佳的?世强为你解析时下最热Zigbee/Thread/蓝牙/WIFI/Sub-GHz技术
电子商城
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥8.1764
现货: 101,879
品牌:SILICON LABS
品类:Mighty Gecko Multi-Protocol Wireless SoC
价格:¥27.0929
现货: 90,767
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥10.4994
现货: 50,699
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥10.7778
现货: 17,407
现货市场
服务
根据用户的蓝牙模块,使用Bluetooth 蓝牙测试装置MT8852B,测试蓝牙1.0至5.1,包括传输速率、功率、频率、调制和接收机灵敏度,生成测试报告。支持到场/视频直播测试,资深专家全程指导。
实验室地址: 深圳 提交需求>
提供蓝牙BLE芯片协议、蓝牙模块、蓝牙成品测试认证服务;测试内容分Host主机层,Controller控制器层,Profile应用层测试。支持到场/视频直播测试,资深专家全程指导。
实验室地址: 深圳 提交需求>
登录 | 立即注册
提交评论