2014-4-10 17:43:22 [显示全部楼层]
7423浏览
查看: 7423|回复: 16

[常见问题] 关于BLUNO和BLE-LINK数据走向的问题

[复制链接]
本帖最后由 Grey 于 2014-4-10 17:45 编辑

楼主小学语文是体育老师教的,不懂,请轻喷! 300px-BLUNO_side.JPG
看过BLUNO的wiki童鞋同会发现这两个AT命令,相信小伙伴们一定有诸多疑惑



12. "AT+BLUNODEBUG" 控制蓝牙已连接状态下,BLE芯片串口接收到的数据是否通过usb串口打印出来。这样就可以通过Arduino的串口监视器得到BLUNO发送的串口数据(BLE firmware 1.6 新功能)
AT+BLUNODEBUG=ON<CR+LF>控制蓝牙已连接状态下,BLE芯片串口接收到的数据通过usb串口打印出来。
AT+BLUNODEBUG=OFF<CR+LF>控制蓝牙已连接状态下,BLE芯片串口接收到的数据不通过usb串口打印出来。
AT+BLUNODEBUG=?<CR+LF>查询蓝牙已连接状态下,BLE芯片串口接收到的数据是否通过usb串口打印出来 (默认: ON)

13. "AT+USBDEBUG" 控制蓝牙数据是否通过USB口打印出来 (BLE firmware 1.6 新功能)
AT+USBDEBUG=ON<CR+LF>开启蓝牙数据通过USB串口打印开关。
AT+USBDEBUG=OFF<CR+LF>关闭蓝牙数据通过USB串口打印开关。
AT+USBDEBUG=?<CR+LF>R查询当前蓝牙数据开关的状态 (默认: OFF)

众所周知,BLUNO现在大致有3个数据走向:蓝牙,串口,USB
如果使用BLE-LINK,当BLE-LINK插在Arduino 板上时,那就很容易理解,当蓝牙收到数据时,总会第一时间传给串口(也就是单片机),然后就可以通过usb查看单片机收到的数据了。也就是说,其实BLE-LINK这样的xbee结构的,或者是apc220 这样的直接连串口的通信模块所接收到的数据是隐形的,是看不见的,是要通过单片机转换后才能从usb口督导数据。这点大家估计能理解。
BLE-LINK直接插在microUSB 应该不会有啥问题,所以不做讨论。
重头戏来了,BLUNO!
BLUNO 的芯片CC2540可是同时连接USB和单片机的啊,也就是说你收到的数据会同时有两个数据方向,串口?还是USB? 这是变成了一个问题!
你总要收数据吧,你收到的数据总要显示吧,然后你收到数据有时还要处理吧,处理之后又要显示吧,这就又是一个问题!

好吧,其实还是一个问题:选择,人的一生就是在不停的选择,每一个你所做的决定又会对你的未来产生一定的影响。世间的事情没有绝对的对或错,你只需要做的只不过是你内心的真实想法。情感需要表达,思想也需要迸发,当自己前面所遇到的无论是荆棘或是坦途,你都只需要作出选择而已。走上荆棘的人,人生不一定就总是错,穿过坦途的人,也不见得人生就完美。年轻人要有自己的思想,不要在乎别人对你的指指点点,他人议论的事事非非,做自己就好。

Uhm......思绪有点飘远了,说到哪来着,对,选择!
你怎么去选择你将来的路?我呸,呸,呸。。。

关于数据流的走向,从上面两条AT命令 就知道应该是关于两条路的选择,USBDEBUG就应该是USB方向的了,BLUNODEBUG就应该是BLUNO串口方向的了,
应该是这样的了,对嘛?对嘛?



Grey  中级技匠
 楼主|

发表于 2014-7-23 18:24:25

发现大家在使用BLE link的时候还是会遇到一些问题,最常见的的事就从机能够向主机发送数据,但主机不能向从机发送数据,
简单解释一下,其实 这是从机的数据流向的问题,从机吧收到的数据给传给串口那边去了,并没有送到USB那端,
只要在AT命令汇总开启USBDEBUG,并且关闭BLUNODEBUG,就可以直接接收数据了。
回复

使用道具 举报

Grey  中级技匠
 楼主|

发表于 2014-4-10 17:46:02

期待 BLeonardo的出现
回复

使用道具 举报

齐天大妖孽  中级技师

发表于 2014-4-11 13:18:07

在蓝牙连接状态下,2540的com口收到数据直接发到蓝牙了,不发送到USB口。而蓝牙接收到的数据直接发送到了com口,也不发送到USB口了,这就产生了无法检视数据的问题。

打开 BLUNODEBUG cc2540的com接收到的数据,com口接收到的数据除了发送到蓝牙外,还会发送一份到USB,达到监控的目的。
打开 USBDEBUG   cc2540的蓝牙接收到的数据(DFB1),除了发送到com口外,还会发送一份到USB口。同样是为了监控。

其实这两个开关就是蓝牙数据来回传输的时候,是否通过USB监控一下。那么做成一个开关不就好了吗?为什么要做成两个呢?
因为如果做成一个开关,那么USB会接收到很多数据,不方便调试,所以做成了两个。

如果程序已经稳定了,不需要监控了,可以将这两个DEBUG都关掉。

在蓝牙未连接状态下,com和usb就是个透传,所以也就不存在数据流向问题了。

我感觉我的语文老师的语文老师一定是个体育专业毕业的。难道我只能写spec吗:dizzy:我怎么就写不出LZ一样高大上的句子
回复

使用道具 举报

Grey  中级技匠
 楼主|

发表于 2014-4-11 13:31:34

齐天大妖孽 发表于 2014-4-11 13:18
在蓝牙连接状态下,2540的com口收到数据直接发到蓝牙了,不发送到USB口。而蓝牙接收到的数据直接发送到了co ...

表示思维和逻辑处于混乱中,无法理解中。。。能就着这样一张图片,说明一下?
CC2540.png


回复

使用道具 举报

齐天大妖孽  中级技师

发表于 2014-4-11 13:51:56

本帖最后由 齐天大妖孽 于 2014-4-11 13:55 编辑

用mspaint作图,就只能这样了,凑合一下看吧
132938ufbpwswpscffnchs.png
132938ufbpwswpscffnchs.png
回复

使用道具 举报

齐天大妖孽  中级技师

发表于 2014-4-11 14:08:17

另外:

BLUNODEBUG默认是打开的,因为这样可以在蓝牙连接的情况下看到Serial.print的信息。

USBDEBUG默认是关闭的
回复

使用道具 举报

Grey  中级技匠
 楼主|

发表于 2014-4-11 14:17:38

齐天大妖孽 发表于 2014-4-11 14:08
另外:

BLUNODEBUG默认是打开的,因为这样可以在蓝牙连接的情况下看到Serial.print的信息。

这下懂了!谢谢
回复

使用道具 举报

齐天大妖孽  中级技师

发表于 2014-4-11 16:47:42

Grey 发表于 2014-4-10 17:46
期待 BLeonardo的出现

BLeonardo相对于Bluno有什么更大的优势?是否有些预期特点?
回复

使用道具 举报

mickey  NPC

发表于 2014-4-11 17:30:11

BLeonardo 无法通过蓝牙无线下载程序吧!
回复

使用道具 举报

Grey  中级技匠
 楼主|

发表于 2014-4-11 18:04:13

齐天大妖孽 发表于 2014-4-11 16:47
BLeonardo相对于Bluno有什么更大的优势?是否有些预期特点?

那还是BLE+MEGA比较好一点
回复

使用道具 举报

Grey  中级技匠
 楼主|

发表于 2014-4-11 18:10:54

mickey 发表于 2014-4-11 17:30
BLeonardo 无法通过蓝牙无线下载程序吧!

对哦 ,忘了这茬了,mega应该可以吧,
回复

使用道具 举报

Youyou  初级技匠

发表于 2014-4-11 20:52:56

Grey 发表于 2014-4-11 18:10
对哦 ,忘了这茬了,mega应该可以吧,

话说,BLeonardo这名字也不是很好听吧。Bluenardo听起来还可以。大师,你怎么看?
回复

使用道具 举报

rockmanxyj  学徒

发表于 2014-4-11 22:14:08

BLE固件代码能开放吗?要不然这块板子能学习的真的很有限啊。。
回复

使用道具 举报

Grey  中级技匠
 楼主|

发表于 2014-4-14 09:48:05

rockmanxyj 发表于 2014-4-11 22:14
BLE固件代码能开放吗?要不然这块板子能学习的真的很有限啊。。

固件开放的话兼容性问题很难保证,出了什么问题也无法找到原因。
回复

使用道具 举报

alon  见习技师

发表于 2014-9-29 12:17:57

小弟新手。。  请问 arduino的usb 串口和bluno的那几个部分连接呢 ?  是atmel 和 cc2540芯片都连到这个穿口上了吗?

还有这个数据流向问题不是很明白   
首先我在 bluno 的master上开了 usbdebug 关了 blunodebug , slave的设置和master 一样
然后打开串口moniter往master的串口写数据  master的moniter窗口没有显示输入的数据,slave的moniter窗口显示这些数据 ,证明slave收到了
但奇怪的是我通过slave的moniter 窗口写数据,不仅master的mointer有显示(证明收到了),而且slave自己的moniter 也显示刚写的数据  
为什么我主从的设置都一样(开了 usbdebug 关了 blunodebug)还会有上述现象呢 ???  如何用bluno的数据流向来解释??
麻烦能解释我在mointer窗口写入串口数据之后数据一路怎么走吗? (之前没用过usb和串口连一起的。。求指教)
回复

使用道具 举报

Grey  中级技匠
 楼主|

发表于 2014-9-29 17:54:48

第一个问题看一下原理图就好了
usb是直接连到CC2540的,usb用的是差分线,它不会和atmega328直接去连,需要一个中间人在中间处理数据,在普通的UNO上,这个角色是有FTDI,或者Atmeg16u2担任的,但这边就是由CC2540来作为中间人。通过CC2540连接到了atmega328p。

第二个问题我没有注意过,两块板子内部有程序吗?
如果没程序的话,我猜主机会把收到的信息全部广播一遍,但由于现在只有一块从机,所以当你通过从机发数据给主机的时候,主机把收到的数据广播了一遍,这样就又返回给了从机。 所以只有只有从机到主机,有返回的效果。以上仅是猜测,期待大神解释
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2022 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail