关于BLUNO和BLE-LINK数据走向的问题

2014-04-101.4万
AI 快速预览详细 收起
本文讨论了BLUNO和BLE-LINK的数据走向问题,并详细解释了AT+BLUNODEBUG和AT+USBDEBUG两个AT命令的功能。AT+BLUNODEBUG控制蓝牙已连接状态下,BLE芯片串口接收到的数据是否通过USB串口打印出来;而AT+USBDEBUG则控制蓝牙数据是否通过USB口打印出来。通过这些设置,用户可以灵活控制数据流的方向,确保数据正确传输并显示。


楼主小学语文是体育老师教的,不懂,请轻喷!关于BLUNO和BLE-LINK数据走向的问题图1
看过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串口方向的了,
应该是这样的了,对嘛?对嘛?



创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(9)
Grey
Grey
作者
第一个问题看一下原理图就好了
usb是直接连到CC2540的,usb用的是差分线,它不会和atmega328直接去连,需要一个中间人在中间处理数据,在普通的UNO上,这个角色是有FTDI,或者Atmeg16u2担任的,但这边就是由CC2540来作为中间人。通过CC2540连接到了atmega328p。
第二个问题我没有注意过,两块板子内部有程序吗?
如果没程序的话,我猜主机会把收到的信息全部广播一遍,但由于现在只有一块从机,所以当你通过从机发数据给主机的时候,主机把收到的数据广播了一遍,这样就又返回给了从机。 所以只有只有从机到主机,有返回的效果。以上仅是猜测,期待大神解释
alon
alon
小弟新手。。 请问 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
Grey
作者
发现大家在使用BLE link的时候还是会遇到一些问题,最常见的的事就从机能够向主机发送数据,但主机不能向从机发送数据,
简单解释一下,其实 这是从机的数据流向的问题,从机吧收到的数据给传给串口那边去了,并没有送到USB那端,
只要在AT命令汇总开启USBDEBUG,并且关闭BLUNODEBUG,就可以直接接收数据了。
rockmanxyj
rockmanxyj
BLE固件代码能开放吗?要不然这块板子能学习的真的很有限啊。。
Grey
Grey
作者
回复rockmanxyj
固件开放的话兼容性问题很难保证,出了什么问题也无法找到原因。
Mickey
Mickey
BLeonardo 无法通过蓝牙无线下载程序吧!
Youyou
Youyou回复Grey
话说,BLeonardo这名字也不是很好听吧。Bluenardo听起来还可以。大师,你怎么看?
Grey
Grey
作者
回复Mickey
对哦 ,忘了这茬了,mega应该可以吧,
齐天大妖孽
齐天大妖孽
另外:
BLUNODEBUG默认是打开的,因为这样可以在蓝牙连接的情况下看到Serial.print的信息。
USBDEBUG默认是关闭的
Grey
Grey
作者
回复齐天大妖孽
这下懂了!谢谢
齐天大妖孽
齐天大妖孽
用mspaint作图,就只能这样了,凑合一下看吧
齐天大妖孽
齐天大妖孽
在蓝牙连接状态下,2540的com口收到数据直接发到蓝牙了,不发送到USB口。而蓝牙接收到的数据直接发送到了com口,也不发送到USB口了,这就产生了无法检视数据的问题。
打开 BLUNODEBUG cc2540的com接收到的数据,com口接收到的数据除了发送到蓝牙外,还会发送一份到USB,达到监控的目的。
打开 USBDEBUG cc2540的蓝牙接收到的数据(DFB1),除了发送到com口外,还会发送一份到USB口。同样是为了监控。
其实这两个开关就是蓝牙数据来回传输的时候,是否通过USB监控一下。那么做成一个开关不就好了吗?为什么要做成两个呢?
因为如果做成一个开关,那么USB会接收到很多数据,不方便调试,所以做成了两个。
如果程序已经稳定了,不需要监控了,可以将这两个DEBUG都关掉。
在蓝牙未连接状态下,com和usb就是个透传,所以也就不存在数据流向问题了。
我感觉我的语文老师的语文老师一定是个体育专业毕业的。难道我只能写spec吗:dizzy:我怎么就写不出LZ一样高大上的句子
Grey
Grey
作者
回复齐天大妖孽

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

Grey
Grey
作者
期待 BLeonardo的出现
Grey
Grey
作者
回复齐天大妖孽
那还是BLE+MEGA比较好一点
齐天大妖孽
齐天大妖孽回复Grey
BLeonardo相对于Bluno有什么更大的优势?是否有些预期特点?
- 没有更多了 -