声波通信(声波传输)在iOS、Android中的应用场景深入分析(含部分声波通信源代码)

nj_jeff 发布于 2014/11/11 19:06
阅读 3K+
收藏 16

最近声波通信非常火爆,尤其在很多嵌入式设备中的应用倍受关注,前段时间发布了声波通信部分源代码(iOS和Android版本,源代码最新版本下载地址:http://www.oschina.net/code/snippet_730666_43807),也受到了广大声波爱好者的关注。

声波技术从理论上决定了它比较适合做短距离、少量信息的传输(声波通信原理请见:http://blog.csdn.net/jcgu/article/details/12834483)一般常以“握手”角色出现在应用中。前段时间和很多声波爱好者交流,发现很多人对声波通信技术的应用存在一定误解,下面就以一些知名的应用为例,对声波通信应用的主要场景进行分析。

1.Chirp

chirp是声波通信应用的始祖,最先把声波通信技术在智能手机中进行商用。它主要功能是可以在手机间任意传递文本,图像和视频等。

实现原理:比如A手机把图像传递给附近的B手机,A手机首先将图片传输到服务器,然后把服务器对应的地址后缀(10个以内字符)通过声波发送出去,(注意这时候A是不停的循环发送声波)。B一直处于监听状态,在B收到A发送的声波后,解码,如果解码成功,则从服务器上下载图片,图片传输成功;如果解码失败(可能由于周围有比较强的干扰),则继续监听A发送的声波,继续解码。。。

关键点:

1)通过声波发送的信息是10个以内的地址后缀。这点很重要,因为声波发送的多,受到干扰的概率就越大,传输失败的可能性就越高,而且传输的时间也越长。

2)A在不停的循环发送声波。因为声波容易受到干扰,A无法确保B是否正确收到信息,所以最简单的方式就是不停的发送,直到B收到信息后,再手工停止A的发送。

3)真正的信息通过网络传输的,声波作为握手的工具


2.支付宝声波支付

支付宝作为支付相关的应用的代表,相信声波支付功能很多人都用过,但对其原理不一定都了解。

实现原理:声波支付听起来好像都是咻咻的声音,其实咻咻声并不是信息的载体,真正的信息是通过超声波传输的。比如A手机发起咻咻声(此时A也是不停的在循环发送信息),售货机B则在不停的监听。A手机在发送信息前,会先和后台服务器交互,把各种关键的交互信息上传到服务器,然后将要发送的信息加密(支付者的id信息),把加密后的信息转换成超声波,然后再叠加咻咻声,最后发送出去。B在正确收到A的信息后,解码成功后,就连接服务器,确认本次交易,确认成功后,支付生效。

关键点:

1)发送的是支付者的id信息,一般10个字符以内

2)发送信息的手机在不停的发送支付者的id


3.茄子快传

茄子快传用于在手机间快速传递大量信息(不需要互联网),比如文件,视频等。茄子快传和chirp都可以传输大文件,但原理上有比较大的区别。

实现原理:A手机发送文件给B手机。B是接收者,B首先建立wifi热点,然后建立sockt通道,最后把wifi用户名和密码通过声波发送出去(用户名和密码在10字符左右)。A处于监听状态,在收到声波,解码出wifi用户名和密码后,连接wifi热点,连接成功后,通过socket把文件发送给B。茄子快传和chirp的根本不同在于chirp高度依赖于互联网;而茄子快传则不需要互联网,仅需要wifi。

关键点:

1)发送的信息为10个字符左右的用户名和密码

2)接收者不停的在发送wifi用户名和密码

3)真正的信息传输是通过wifi传输的,声波作为握手的工具


4.嵌入式应用

现在很多嵌入式设备在使用声波通信技术,比如智能路由器、相机、车载电子(比如行车记录仪)等等。

实现原理:一般使用声波通信作为握手信号自动为wifi和蓝牙建立连接(用声波通信传输用户名密码);或者发送简单的信息数据,比如温度信息;或者发送控制命令,比如控制智能家居等等。A发送,B接受,一般发送者也要不停发送,直到接收者收到为止。

加载中
0
afpro
afpro
拉倒吧 android高版本(ios貌似也)支持使用wifi连点对点了 苹果生态里面还有air drop可用 再不济还有蓝牙
n
nj_jeff
请仔细阅读文章,再发评论,不要胡乱评论
0
afpro
afpro
还有NFC
0
netkiller-
netkiller-

这个不就是AFSK吗 Audio 移频键控。40年前的玩意,这东西不安全,可以使用录音机录音后重放。通过麦克风,与扬声器实现信息传输,当然你也可以使用耳机线缆延长距离:)

有兴趣的可以看看SSTV,RTTY,PSK31 我还汉化了很多这类软件,其中CW 等副电报(莫尔斯码)也属于这种通信:)

oschinaxxxx
oschinaxxxx
回复 @neo-chen : 你说的对,这就是一种普通的调频解调。但因此就鄙视楼主的作品是没有道理的
蒋圣
@nj_jeff 能给我您的联系方式吗?我想请您帮帮忙。。
netkiller-
netkiller-
怎么不一样? 例如 AFSK 我们使用 500Hz 的音频作为0,1000Hz音频作为1,然后交替两个频率形成10101的二进制。这个是2FSK窄带。如果使用4FSK 就是同时使用四个频率传输,如果8FSK 可以同一时刻传输一个字节。。通过DSP解码,这个过程就是AD,DA过程。
n
nj_jeff
原理不一样的
0
netkiller-
netkiller-
同理,可以使用两种频率的光实现数据传输。为了不受日光影响,我们通常使用红外线,但当日光很强的时候仍然影响传输。所以光传输一直受限制。声音也会受到环境噪音影响。
0
netkiller-
netkiller-

再提醒一下,电话机拨号的时候0,1,2,3,4,5,6,7,8,9按下去各有一个声音,这个叫双音频信令 DTMF,电话机将这个声音发送给交换机,交换机完成拨号。老式电话机拿下听筒使用录音机播放DTMF信令,不使用拨号盘也能打电话。 这是声波通信的典范:)


0
n
nj_jeff
请访问sinvoice官网www.sinvoice.com下载最新版本
返回顶部
顶部