蓝牙模块,蓝牙设备,无线传输
更新时间:2015-10-30 09:32:29 信息编号:3921005 浏览:326次- 供应商
- 深圳市龙岗区南湾汇域沣电子厂 商铺
- 认证
- 报价
- 人民币¥19.00元每
- 所在地
- 中国 广东 东莞 长安镇上沙明和电子城B-B1172A
- 联系电话
- 86 769 82388235
- 手机号
- 13827283137
- 联系人
- 易林 请说明来自顺企网,优惠更多
- 让卖家联系我
产品详细介绍
第一章产品概述
1.1概述
本模块是基于bluetooth sig发布的bluetooth low energy标准设计的ble透传模块。本模块通过串口、iic、spi进行控制,同时也支持通过主机端进行无线控制,用户无需关注复杂的蓝牙协议应用软件,就可在短期内开发出标准的低功耗蓝牙(ble) 产品。通过串口控制建立连接后,可以在ble 主机和从机之间实现双向数据传输。
1.2功能介绍
1. 支持透传模式和命令模式:透传模式下,串口收到的数据会原封不动地传送给主机端,而收到主机端数据之后,也会原封不动地通过传送给用户mcu。命令模式下, 用户mcu 可以通过相应命令对模块的参数进行配置和获取;
2. 可自由切换模式工作于纯透传模式和命令模式;
3. 通用串口设计,波特率可通过串口或者主机端配置,便于对不同mcu 资源的适配,默认9600bps,掉电保存;
4. 蓝牙广播周期和蓝牙连接间隔可通过串口或者主机端配置,便于合理控制蓝牙功耗,掉电保存;
5. 通过串口或主机端配置蓝牙设备名称,便于实际应用中进行设备区分,掉电保存;
6. 可通过串口或者主机端对蓝牙配对码进行配置,并设置配对码使能与否;
7. 可通过串口或主机端复位模块;
8. 可通过串口或主机端回复模块出厂设置;
9. 可通过串口获取模块的蓝牙mac 地址(物理地址)
10. 可通过串口或者主机端设置模块的蓝牙发射功率,合理控制通信距离和功耗
11. 支持Zui简开发,即在功能要求简单的情况下,只需要连接串口即可进行产品开发。
比如模式控制引脚,当不需要控制时,该引脚就可以直接下拉到低电平,节省mcu 的i/o 资源。
第二章模块硬件及管脚说明
table1 ble模块管脚说明
管脚 |
功能 |
方向 |
备注 |
1 |
ant |
/ |
天线 |
2,10 |
gnd |
/ |
模块gnd |
3 |
3.3v |
/ |
模块电源端3v-3.6v |
4 |
p2.2 |
i/o |
普通双向i/o |
5 |
p2.1 |
i/o |
普通双向i/o |
6 |
p2.0 |
i |
悬空 |
7 |
p1.6 |
o |
防丢器应用蜂鸣器输出 |
8 |
dp |
i/o |
usb正极 |
9 |
dn |
i/o |
usb负极 |
11 |
p1.7 |
i/o |
普通双向i/o |
12 |
p1.5 |
i/o |
普通双向i/o |
13 |
p1.4 |
i/o |
普通双向i/o |
14 |
p1.3 |
i/o |
普通双向i/o |
15 |
p1.2 |
i/o |
普通双向i/o |
16 |
p1.1 |
o |
pwm1 |
17 |
p1.0 |
o |
pwm2 |
18 |
p0.7 |
o |
pwm3 |
19 |
p0.6 |
o |
pwm4 |
20 |
p0.5 |
i |
数据发送唤醒模块 |
21 |
p0.4 |
o |
输入信号唤醒模块 |
22 |
p0.3 |
o |
txd |
23 |
p0.2 |
i |
rxd |
24 |
p0.1 |
i |
模拟采集通道0 |
25 |
p0.0 |
i |
模拟采集通道1 |
26 |
reset |
i |
模块复位,低有效 |
备注:
20脚:作为数据发送请求来唤醒模块;
0:主机有数据发送,模块将等待接收来自主机的数据,此时模块不睡眠。
1:主机无数据发送,主机数据发送完毕之后,此信号线须置1。
21脚:作为数据输入信号来唤醒模块(可选)
0:模块有数据发送到主机,主机接收模块数据。
1:模块无数据发送到主机,数据发送完后,此信号线须置1。
第三章模块控制
3.1串口控制协议
用户可通过串口方式控制ble 数据传输模块,串口数据的传输如下图所示,主控制器端发送数据或者命令给ble 透传模块。
3.2 at命令和透传
当需要改变模块的波特率,设备名,连接间隔时,采用wr+xxxx+xx xx”格式的方式发送给模块。
当需要进行透传时,请不要将wr+或rd+作为透传的数据头。透传时的格式,需自行定义。
不论是否包含通信头,校验。每次透传以20字节进行发送。
每次设定了某个项目后,由于基本都是掉电保存项目,因此需要上电重启模块。
at命令可以通过串口或者手机端相应端口进行设置。
功能 |
命令 |
应答 |
参数说明 |
设置串口波特率 |
wr+bandrate+x" |
ok\\r\\n |
x:0-4 0 9600 1 19200 2 38400 3 57600 4 115200 |
自定义广播数据 (模块名称) |
wr+name+xx" |
ok\\r\\n |
xx:长度不能大于20字节 |
设置防劫持密码 |
wr+pincode+xx" |
ok\\r\\n |
xx:长度不能大于6字节,不能以“0”开头,范围1-999999 |
复位模块 |
wr+restart" |
无 |
|
设置连接间隔 |
wr+coninterval+xx" |
ok\\r\\n |
xx:20-2000 (ms) |
设置广播间隔 |
wr+advtime+xx" |
ok\\r\\n |
xx:200-5000 (ms) |
设置产品识别码 |
wr+consumeruuid+xx" |
ok\\r\\n |
xx: 0x0000~0xffff 除0x1800、0x1801、0x180a、0x180f外 |
读取串口波特率 |
rd+bandrate" |
band:x\\r\\n |
|
读取模块名称 |
rd+name" |
name:xx\\r\\n |
|
读取防劫持密码 |
rd+pincode" |
pin: xx\\r\\n |
|
读取蓝牙物理地址 |
rd+addr" |
mac:xx:xx:xx:xx:xx:xx\\r\\n |
|
读取连接间隔 |
rd+coninterval" |
coninterval: xx\\r\\n |
|
读取广播间隔 |
rd+advtime" |
advtime: xx\\r\\n |
|
读取产品识别码 |
rd+consumeruuid" |
consumeruuid: xx\\r\\n |
第四章 规格参数
供电电压:2.0~3.6,典型 3.3v;电压过低易导致通讯错误;电压过高会损坏模块 串口特性:波特率默认 9600bps,8n1,可命令修改;
3. 模块的尺寸(mm)如下图所示。
第五章uuid服务接口
1 串口透传
串口数据透传app 写数据uuid:0xfff1 串口数据透传模块通知app 的uuid:0xfff2 备注:串口每次20 字节透传。
2pwm 输出(4 路): pwm1 通道uuid:0xffe1 pwm2 通道uuid:0xffe2 pwm3 通道uuid:0xffe3 pwm4 通道uuid:0xffe4
3adc 输入(2 路):
adc 使能控制:0xffd1 adc 采集周期:0xffd2 adc 采集通道1:0xffd3 adc 采集通道2:0xffd4
4电池电量报告电池电量报告uuid:0x180f
5设备信息
设备信息服务服务uuid:0x180a
6按键报告
按键报告uuid:0xffe1
7电池报告
电池报告uuid:0x2a19
8发射功率
发射功率uuid:0x2a07
9linkloss
linkloss uuid:0x2a06第六章手机app编程参考
第六章 手机app编程参考
ios 编程参考:
模块总是以从模式进行广播,等待智能移动设备做为主设备进行扫描,以及连接。这
个扫描以及连接通常是由 app 来完成,由于 ble 协议的特殊性,在系统设置中的扫描蓝 牙连接没有现实意义。智能设备必须负责对 ble 从设备的连接,通讯,断开等管理事宜, 而这一切通常是在 app 中实现。
有关 ble 在 ios 下的编程,Zui关键的就是对特征值(characteristic,本文叫通道)的读, 写,以及开启通知开关。通过对通道的读写即可实现对模块直驱功能的直接控制,无需 额外的 cpu。典型函数说明摘抄如下:
/*!
* @method writevalue:forcharacteristic:withresponse:
* @param data the value to write.
* @param characteristic the characteristic on which to perform the write operation.
* @param type the type of write to be executed.
* @discussion write the value of a characteristic.
* the passed data is copied and can be disposed of after the call finishes.
* the relevant delegate callback will then be invoked with the status of the request.
* @see peripheral:didwritevalueforcharacteristic:error: */
- (void)writevalue:(nsdata *)data forcharacteristic:(cbcharacteristic *)characteristic type:(c bcharacteristicwritetype)type;
说明:对某个特征值进行写操作。
nsdata *d = [[nsdata alloc] initwithbytes:&data length:mdata.length];
[p writevalue:d forcharacteristic:c type:cbcharacteristicwritewithoutresponse]; /*!
* @method readvalueforcharacteristic:
* @param characteristic the characteristic for which the value needs to be read.
* @discussion fetch the value of a characteristic.
* @see peripheral:didupdatevalueforcharacteristic:error: */
- (void)readvalueforcharacteristic:(cbcharacteristic *)characteristic;
说明:读取某个特征值。
[p readvalueforcharacteristic:c]; /*!
* @method setnotifyvalue:forcharacteristic:
* @param notifyvalue the value to set the client configuration descriptor to.
* @param characteristic the characteristic containing the client configuration.
* @discussion ask to start/stop receiving notifications for a characteristic.
* @see peripheral:didupdatenotificationstateforcharacteristic:error: */
- (void)setnotifyvalue:(bool)notifyvalue forcharacteristic:(cbcharacteristic *)characteristic;
说明:打开特征值通知使能开关。
[self setnotifyvalue:yes forcharacteristic:c];//
打开通知使能开关
[self setnotifyvalue:no forcharacteristic:c]; //
关闭通知使能开关
/*
* @method didupdatevalueforcharacteristic* @param peripheral pheripheral that got updated
* * @param characteristic characteristic that got updated
* * @error error error message if something went wrong
* * @discussion didupdatevalueforcharacteristic is called when corebluetooth has updated a
* * characteristic for a peripheral. all reads and notifications come here to be processed. */
* -(void)peripheral:(cbperipheral *)peripheral didupdatevalueforcharacteristic:(cbcharacteristic *)characteristic error:(nserror *)error
* 说明:每次执行完读取操作后,会执行到这个回调函数。应用层在此函数内保存读取到
* 的数据。
* ios 的测试 ble 软件是 lightblue,本司具有源码和相应的 lightblule。
6.2 安卓编程参考
原理通信机制与 ios 大同小异,connectionhandle 默认为 0,通过 uuid 进行通讯。下载安卓官网上的 bledemo,即可与bm01模块进行串口透传,本司具有其 demo。
七 说明和建议:
连接间隔可以简单理解为,是两个连接着的蓝牙设备发送“心跳包”的时间间隔。蓝牙设备认定它们之间 的连接是否断开,就是看心跳包是否及时到达。举个例子,比如设置 conninterval=100ms,slavelatency=1, supervisiontimeout=1s。conninterval=100ms,是指蓝牙主机每 100ms 发一次心跳包给从机,从机收到后回复 一次。slavelatency=1,是指如果从机没有数据发送时,可以跳过一次心跳包的回复,让自己省电。 supervisiontimeout=1s,对从机来说,当它发现连续 1 秒钟都没有收到心跳包,就认为连接断开。对主机说, 当它连续发了 11 个心跳包,都没有得到回复,认为连接断开。
根据 ble4.0 协议规定:master 设备可以随时发送一个连接更新请求到 slave,来改变连接参数。在链 路层,连接参数的更新总是被 master 发起,但是 l2cap 层允许 slave 向 master 发送一个连接参数更新请 求。ble 协议允许应用层根据实际需要动态的调整连接参数,这个会产生相应的功耗及数据吞吐量。当两蓝牙设备每次创建连接时,这三个连接参数都由是主机给定的。比如 iphone4s 和 iphone5,设定的连接参数都 是:24, 0, 72 。转换一下:
conninterval = 24*1.25ms=30ms;
slavelatency = 0;
supervisiontimeout = 72*10ms = 720ms;
我们看到 iphone 的连接间隔设置的比较短,所以数据吞吐量大,但是能耗比较大,大概平均电流达到
900ua~1000ua 左右,监督超时 720ms,快速监测到连接断开。另外,三星 galaxys3 设定的连接参数值为 54, 0, 42。根据经验,从机潜伏设定值一般要低一点或者为 0,监督超时一般也不宜太长,连接间隔可以根据 不同应用需要而设定。数据交换少,对功耗敏感的应用,连接间隔可以设置长一点。总而言之,对于 ble 连 接参数的设定,可以多做试验,得到一组在数据吞吐量和功耗方面都比较满意的值。另外,当该模块与 ios 设 备连接时,apple 公司规定,ios 设备的蓝牙附件的连接间隔参数,除了要符合 sig 组的规定外,要必须符 合 apple 的规定:
conninterval * (slavelatency + 1) ≤??1??78??1??792 seconds conninterval ≥??1??78??1??7920 ms
slavelatency ≤??1??78??1??794
supervisiontimeout ≤??1??78??1??796 seconds
conninterval * (slavelatency + 1) * 3 < supervisiontimeout.
- 二氧化碳检测仪,CO2检测器,二氧化碳检测板200.00元/
加工定制:是