Sar*_*yan 4 java android bluetooth connectivity rfcomm
我正在开发Android蓝牙项目,以便从定制硬件发送和接收数据.我在SDK中使用蓝牙聊天示例作为基础.
我意识到,有没有办法改变波特率在客户端(Android手机)和波特率取决于硬件.我尝试在硬件上设置不同的波特率,但都没有达到我们的预期;
我能获得的最快速度是91Kbps(当波特率设置为2.7Mbps~910Kbps时).使用最小波特率(115Kbps)我得到43Kbps.我尝试使用不同的手机,它是一样的.我需要每秒将170KB数据传输到硬件.
规范
协议:使用最大520字节大小的包将同步或生成的数据发送到硬件.收到并批准每个包后,硬件发送验证命令,然后电话发送下一个数据包.
客户端:Android 2.3.3,三星galaxy w i8150,蓝牙v3.0,RFCOMM
硬件:自定义,蓝牙v2.1 BlueGiga WT11i
我完全糊涂了..这可能是手机上的Android或蓝牙设备引起的问题吗?我想知道最大波特率是多少?有没有办法加快传输速度(如增加最大包大小,或发送所有包而不等待硬件验证命令).
编辑
将包大小更改为4160字节后,吞吐量增加到254Kbps.我试图找出最佳封装尺寸达到1.5Mbps.我很感激任何建议
首先,改变蓝牙RFCOMM /串行端口协议的波特率应该没有什么区别,因为它不是真正的串行端口而只是模拟.(特定的制造商可以这么特别,但一般的蓝牙或Android不使用该参数来控制空中比特率)
影响SPP数据速率的因素将是数据包的大小,您可以通过蓝牙获得的实际最大数据速率以及接收器读取的速度/发送者发送的频率.对于数据包的大小,你可以看一下内部文档或者尝试不同的大小,以达到最佳的编号为您的应用程序.此外,我建议发送多个数据包(或全部),直到流可以连续发送数据,类似地连续读取.
这里的主要问题似乎是你可以通过蓝牙实现的实用组合.如果你正在使用你在问题中提到的非EDR版本,那么非常低级别的理论速度是720Kbps,并且在头部添加协议和应用程序以及RFCOMM协议开销,你可以获得最大450-500 Kbps.
如果您可以访问两个+ EDR即蓝牙版本2.0或更高+ EDR的设备,那么您可以预期应用程序throuput大约1.2到1.5 Mbps(理论上空中比特率为2.0或3.0 Mbps)
| 归档时间: |
|
| 查看次数: |
10878 次 |
| 最近记录: |