手机与设备音频接口通信原理及案例分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.2 android下实现2FSK(纯软件调制)
要实现2FSK,首先我们得在android系统下面获得一个基准的正弦信号发生器,有了这个基准的正弦信号发生器,只要给它一个二进制量(0 or 1),就可改变输出频率,从而达到我们想要的信号调制目的。
下面直接上图了,经过调制后的信号输出波形图:(黄色的是实际输出波型、红色方波是我后来P上去的对应二进制数据)
这是我定义的通信协议头的一部分是:0x5AA5
3.3 android下音频播放相关
android下音频播放的基本步骤如下:
①获取对应音频采样率下的最小缓冲区的大小
[java]view plaincopyprint?
1.public static int
2.
3.
1.
②新建AudioTrack
[java]view plaincopyprint?
2.new
3.
4.
5.
6.2
③将缓冲区中的音频数据写入音频播放线程并设置左右声道音量等
[java]view plaincopyprint?
1.0
//写入音频数据
2.//刷新
3.10//设置左右声道播放音量
4.01//
设置音频播放循环点
5.//开始播放
这部分代码是左声道对外部扩展头进行供电的,所以要设置循环播放,如果是发送消息就不必循环了!
四补充
一、解调电路
我的设计中,解调端用的是MSP430的单片机,因为TI这种系列的单片机功耗很低,在休眠状态下,电流可达到uA级,正常工作下电流也可以保持在几个mA级左右。
将手机右声道接至MSP430单片机的P2.3脚,在代码里设置并激活此引脚的第二功能(比较器0)的正向输入端,并将比较器0的反向输入端配置成内部VCC/2参考电压,如图,在手机右声道上用两个100K的电阻对VCC进行分压,所以只要右声道的电压在比较器导通的范围内变化时,比较器就能捕获到手机右声道上的信号了!下图是比较器的输出特性
像上一节中的那种调制信号经过比较器之后的输出波形图如下:
二、解调原理
既然前面的调制信号是用不同频率的波形来表示的,经过比较器之后,输出的波形如上图所示,很容易发现,这些宽窄有续的
方波里就携带了我们想要的信息,然后再通过MSP430单片机里的捕获器来捕获这些方波信号
并用定时器来计算这些方波的时间,从而解调出我们前面调制的信号,从而获得码元。
解调方框图如下:
如何从手机音频口获得电能
时下手机音频(耳塞)口的外设配件已不是什么新鲜事了。
目前应用最广的就是支付领域了,似乎Square公司在2011年就展开了移动支付业务,推出的刷卡支付方式受到的广泛的使用和好评,在短短的一年时间做出了惊人的成绩。现在国内也有很多厂商模仿退出类似产品和服务。
Square的产品
国内的类似产品
从图上可以看出,这些个玩意儿只是利用了手机的耳塞插口,所以电源、通信都在一个耳塞插口。
这个项目Hijack
/~prabal/projects/hijack/ 是另外一个更好的应用耳塞插口的例子。
Hijack
HiJack是一个硬件和软件平台,用来在小型、低耗电周边设备和iOS设备之间建立通信。该系统采用22kHz音频信号,将其转换为7.4mW电能(转化效率47%),可以带动一个TI MSP430微控制器和其它电子元件,允许HiJack和iOS应用进行通信。所有的资料都能在上面给的链接找到,有兴趣的可以自己动手做一个。
本文就单独对如何从手机音频口获得电能做一个介绍。
下面是我的实验过程:
1. 手机的耳塞插孔简介
手机耳塞插孔线都是由四根线组成,也就是插头前面分成四部分,1和2是两路音频输出,这个对所有耳机插孔都是兼容的,极个别厂商也许会有例外?至少我没见过。因为普通的3根线的耳塞在那款设备上都可以用,普通耳塞的3、4两根线其实只有一根的,也就
是上图中的3、4中间是没有隔开的,就是一跟底线GND。而手机的
耳塞插孔3、4有一根是GND,还有一根则是麦克风MIC输入。这两根线好多厂商都不一样,比如iphone就是3对应GND,4是MIC;而我手头的索爱E15i和诺基亚E63则是3对应MIC,4对应GND,华为C8812则跟iphone一样。
2. 电路
这是电路和对应的元器件型号表(价目都列出来了):
J1接耳塞一路输出(另外一路还可以留作他用)。之后是一个升压变压器T1,因为输出的音频电压很低,甚至不能触发后面的FET 导通,所以需要先升压。升压完了之后经过FET组成的桥整流电路,再经D1调整以后就得到直流输出。实际做电路的时候发现T1很难买,价格比起这个指导价巨贵,这个指导价是一万片的价格,另外Q1-Q4也不好买,就用了A3401和A3402代替。
做好以后像下面这样,ugly but works:
3. 实验
音频输出找了个Android simple frequency generator的软件,它可以调整输出频率和波形,结果发现输出16448HZ的方波的时候输出电压最大。其实是可以通过最佳匹配输入阻抗来计算这个频率值的,但是不清楚厂商的技术指标,所以直接试也是不错的办法,而且很方便。
华为手机能得到2.2v的电压,发光二接管亮了。
索爱的能得到2.8V。
Hijack的文档上说它在iphone能得到3.5v电压,不曾考究过。如果电压在2.2V-2.8V,可以加个charge pump来调整到3.3V。只要最
后功率能达到驱动应用电路就可以了。