打印
[蓝牙芯片]

ch573实现Ibeacon的问题

[复制链接]
6912|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
目前,使用ch573按照 ibeacon数据格式修改了广播数据
然后,我在IOS下,使用 Beacon Scan 这个第三方工具进行测试,
可以找到Ibeacon的Major跟Minor值,但是发现RSSI值一直固定不动
而在使用nordic的芯片及固件进行测试,RSSI值是变动的
Beacon Scan 这个第三方工具,应该没有问题

官方能否提供一下Ibeacon实现的参考示例及相应的 BLE调试助手 工具关于ibeacon的测试方法


使用特权

评论回复
沙发
单片小菜| | 2021-5-26 22:16 | 只看该作者
这个是否可以进行室内的定位?

使用特权

评论回复
板凳
lanjackg2003|  楼主 | 2021-5-27 09:19 | 只看该作者
单片小菜 发表于 2021-5-26 22:16
这个是否可以进行室内的定位?

室内定位需要多个ibeacon跟应用程序配合才可以实现

使用特权

评论回复
地板
kingsleych| | 2021-5-27 11:06 | 只看该作者
首先, 要搞明白 iBeacon 和 普通Beacon的区别,
然后再根据自己的实际需求,去做合适的开发.

在iBeacon 的规范中,其广播包中带了个RSSI值,这个通常是按照BLE的规范,来填的1米处的rssi值,用来进行相对距离估算参考的.这个值对于一个独立工作的设备来说,工作中是不应该变化的.
另一个RSSI,是 接收端输出的rssi, 是在接收对应数据包时量化的信号强度, 指示当前接收到数据的信号的强度,受限于量化误差,以及链路的不稳定, 这个通常是变化的,刷新率受限于接收到的数据包的更新次数.

ch573 搜索出来,指示了Major跟Minor 值,并且后面跟着的RSSI, 如果是 ibeacon的参考rssi ,那这个不应该变动,
建议使用更广泛使用的工具, 诸如lightblue之类的工具.





使用特权

评论回复
评论
lanjackg2003 2021-5-27 11:41 回复TA
我说的这个RSSI的值,不是协议包指定的那个值 
5
lanjackg2003|  楼主 | 2021-5-27 11:38 | 只看该作者
kingsleych 发表于 2021-5-27 11:06
首先, 要搞明白 iBeacon 和 普通Beacon的区别,
然后再根据自己的实际需求,去做合适的开发.

是的,楼上正解
RSSI在1米的参考值是不变,是在IBeacon的协议包里面设置的
测试工具的rssi值应该是检测到的RSSI值,但是该值没有变化
是不是ch573需要进行设置

同样的Ibeacon协议包,在nordic芯片上,没有问题,测试工具也是没有问题。
lightblue不能看ibeacon吧?
我在iphone上用一个叫 Locate 工具,对ch573进行测试,也是发现RSSI值没有变化。
所以手机端的App应该不会有问题

使用特权

评论回复
6
WCHTech2| | 2021-5-27 14:24 | 只看该作者
lanjackg2003 发表于 2021-5-27 11:38
是的,楼上正解
RSSI在1米的参考值是不变,是在IBeacon的协议包里面设置的
测试工具的rssi值应该是检测到 ...

参考CH579的ibeacon Demo, 实测RSSI值可以变化。
Peripheral_ibeacon_test.zip (1.64 MB)

  

使用特权

评论回复
7
lanjackg2003|  楼主 | 2021-5-27 14:30 | 只看该作者
WCHTech2 发表于 2021-5-27 14:24
参考CH579的ibeacon Demo, 实测RSSI值可以变化。

好的,谢谢
我稍后对比一下的代码
我的代码是从broadcast示例修改的
你给demo从peripheral中修改的
估计是有些缺少东西

使用特权

评论回复
8
lanjackg2003|  楼主 | 2021-5-28 08:55 | 只看该作者
我用官方提供的代码,然后修改了

peripheral_main.c及peripheral.c文件
让示例代码能够运行在ch57x上面




但是结果仍然跟我的原来示例代码一样,无法获取动态RSSI值

请FAE帮忙看一下谢谢
附件是修改过的ch57x版本

Peripheral_modify.zip (70 KB)


使用特权

评论回复
9
lanjackg2003|  楼主 | 2021-5-28 10:54 | 只看该作者

测试结果

使用特权

评论回复
10
WCHTech2| | 2021-5-28 13:56 | 只看该作者
lanjackg2003 发表于 2021-5-28 08:55
我用官方提供的代码,然后修改了

peripheral_main.c及peripheral.c文件

代码如下,我这测试正常
Peripheral_ibeacon_test.zip (934.25 KB)

使用特权

评论回复
11
lanjackg2003|  楼主 | 2021-5-28 14:48 | 只看该作者
谢谢,貌似差异点在
GAPRole_BroadcasterInit(); 与 GAPRole_PeripheralInit( );

使用特权

评论回复
评论
WCHTech2 2021-6-4 16:35 回复TA
可以测试我给你的代码,改为GAPRole_BroadcasterInit() 也是可以正常使用的 
12
caigang13| | 2021-6-1 08:07 | 只看该作者
蓝牙信标定位精度咋样?

使用特权

评论回复
13
chenjun89| | 2021-6-1 18:54 | 只看该作者
原厂有个BLE工具和APP

使用特权

评论回复
14
单片小菜| | 2021-6-1 19:21 | 只看该作者
室内定位的精度是多少?

使用特权

评论回复
15
lanjackg2003|  楼主 | 2021-6-2 09:04 | 只看该作者
这种东西,应该可以参考别人的精度标准
差也差不了多少,好也好不了多少

使用特权

评论回复
16
名字是啥样| | 2021-6-3 11:51 | 只看该作者
我想知道这个的原理是什么?一直没有搞明白是咋回事?

使用特权

评论回复
17
lanjackg2003|  楼主 | 2021-6-4 15:49 | 只看该作者
名字是啥样 发表于 2021-6-3 11:51
我想知道这个的原理是什么?一直没有搞明白是咋回事?

通过RSSI转换成距离

使用特权

评论回复
18
lanjackg2003|  楼主 | 2021-6-4 15:51 | 只看该作者
本帖最后由 lanjackg2003 于 2021-6-4 15:55 编辑
/*-------------------------------------------------------------------
* FUNCTIONS - BROADCASTER_PROFILE_API Broadcaster Profile API
*/
/**
* @internal
*
* @brief       Initialization function for the GAP Role Task.
*
* @param       the ID assigned by tmos.  This ID should be
*                    used to send messages and set timers.
*
* @return      SUCCESS,bleInvalidRange
*/
extern bStatus_t GAPRole_BroadcasterInit( void );

/**
* @brief       Does the device initialization.  Only call this function once.
*
* @param       pAppCallbacks - pointer to application callbacks.
*
* @return      SUCCESS or bleAlreadyInRequestedMode
*/
extern bStatus_t GAPRole_BroadcasterStartDevice( gapRolesBroadcasterCBs_t *pAppCallbacks );




/*-------------------------------------------------------------------
* FUNCTIONS - PERIPHERAL_PROFILE_API Peripheral Profile API
*/
/**
* @internal
*
* @brief       Initialization function for the GAP Role Task.
*          This is called during initialization and should contain
*          any application specific initialization (ie. hardware
*          initialization/setup, table initialization, power up
*          notificaiton ... ).
*
* @param       the ID assigned by tmos.  This ID should be
*                    used to send messages and set timers.
*
* @return      SUCCESS,bleInvalidRange
*/
extern bStatus_t GAPRole_PeripheralInit( void );

/**
* @brief       Does the device initialization.  Only call this function once.
*
* @param       pAppCallbacks - pointer to application callbacks.
*
* @return      SUCCESS or bleAlreadyInRequestedMode  
*/
extern bStatus_t GAPRole_PeripheralStartDevice( uint8 taskid, gapBondCBs_t *pCB,gapRolesCBs_t *pAppCallbacks );




请问原厂FAE

什么情况下选择Broadcaster方式初始化?

什么情况下选择Peripheral方式初始化?

是不是Peripheral包含有Broadcaster的初始化?
   

使用特权

评论回复
评论
lanjackg2003 2021-6-4 17:36 回复TA
@WCHTech2 :OK,谢谢 
WCHTech2 2021-6-4 16:36 回复TA
Peripheral方式初始化包含Broadcaster的所有功能 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

56

主题

440

帖子

7

粉丝