芯的排列常见的有如下两种: 1、国家标准
2、国际标准
国际标准耳机座MIC和GND和国内标准是反的,其它的一样! 不难发现有了左右声道,向外设扩展头供电和发送数据就有了相应通信线路的支持,另外有了MIC这个打电话时输入说话的信号通道,那么手机接收数据也有了硬件通道的支持了!
三、如何调制数据
说到信号的调制解调,很多人都会想到收音机,没错,收音机之所以能听到千里之外的歌声,正是利用了电磁波作为传输媒介,将声源的信号通过特定的调制加载到电磁波上,然后传输到广阔的空间里的,无线电的调制有调幅(AM)、调频(FM)和调相(PM)三种,而调制又有模拟调制和数字调制之分,模拟调制
就是把模拟信号(比如人说话的声音)直接加载到电磁波上,使得电磁波的某一特性随着声源的变化而变化;而数字调制是近现才发展起来的,特别是DSP(没错,就是数字信号处理)技术的发展,数字调制中的FM有2FSK(2进制调制)、4FSK(4进制调制)、8FSK(8进制调制)等等。
由于在数字系统中,使用的是0、1表示的二进制数据,在这里,我使用了2FSK来作为信号的调制。
3.1 何为2FSK
2FSK按字面的英语全称是:2(binary
system) Frequency-shift keying(二进制频移键控),就是用二进制里的0、1来控制载波的频率,从而达到通信的目的!例如:我们用1ms长、1KHz的正弦信号来代表二进制里的1;用1ms长、2KHz的正弦来代表二进制里的0;那一连串的1KHz、2KHz的信号解调出来就是一连串的0和1,这样是不是达到了我们想要的二进制调制的目的了?
下面我们来看一张更加形像的gif动画图
3.2 android下实现2FSK(纯软件调制)
要实现2FSK,首先我们得在android系统下面获得一个基准的正弦信号发生器,有了这个基准的正弦信号发生器,只要给它
一个二进制量(0 or 1),就可改变输出频率,从而达到我们想要的信号调制目的。
下面直接上图了,经过调制后的信号输出波形图:(黄色的是实际输出波型、红色方波是我后来P上去的对应二进制数据)
这是我定义的通信协议头的一部分是:0x5AA5
3.3 android下音频播放相关
android下音频播放的基本步骤如下: ①获取对应音频采样率下的最小缓冲区的大小
[java] view plaincopyprint?
1. public static int pwMinBufferSize = AudioTrack.getMinBufferSize(Enco
derCore.getPowerSupplySamplerate(),
2. AudioFormat.CHANNEL_OUT_STEREO, 3. AudioFormat.ENCODING_PCM_8BIT);
②新建AudioTrack
[java] view plaincopyprint?
1. AudioTrack pwAT = new AudioTrack(AudioManager.STREAM_MUSIC, 2. EncoderCore.getPowerSupplySamplerate(), 3. AudioFormat.CHANNEL_OUT_MONO, 4. AudioFormat.ENCODING_PCM_8BIT, 5. pwMinBufferSize*2, 6. AudioTrack.MODE_STATIC);
③将缓冲区中的音频数据写入音频播放线程并设置左右声道音量等
[java] view plaincopyprint?
1. pwAT.write(carrierSignal, 0, EncoderCore.getPowerSupplyBufferSize())
;//写入音频数据
2. pwAT.flush();//刷新
3. pwAT.setStereoVolume(1, 0);//设置左右声道播放音量
4. pwAT.setLoopPoints(0, EncoderCore.getPowerSupplyBufferSize()
, -1);//设置音频播放循环点 5. pwAT.play();//开始播放
这部分代码是左声道对外部扩展头进行供电的,所以要设置循环播放,如果是发送消息就不必循环了!
android音频口通信——2FSK信号解调
一、解调电路
我的设计中,解调端用的是MSP430的单片机,因为TI这种系列的单片机功耗很低,在休眠状态下,电流可达到uA级,正常工作下电流也可以保持在几个mA级左右。
将手机右声道接至MSP430单片机的P2.3脚,在代码里设置并
激活此引脚的第二功能(比较器0)的正向输入端,并将比较器0的反向输入端配置成内部VCC/2参考电压,如图,在手机右声道上用两个100K的电阻对VCC进行分压,所以只要右声道的电压在比较器导通的范围内变化时,比较器就能捕获到手机右声道上的信号了!下图是比较器的输出特性:
像上一节中的那种调制信号经过比较器之后的输出波形图如
下: