3.5mm耳机插头有三段(TRS, Tip-Ring-Sleeve)和四段(TRRS,Tip-Ring-Ring-Sleeve)之分,
其中三段的不带麦克风,尾段(Sleeve)是公共地,中间环(Ring)是右声道,尖部(Tip)是左声道.
四节的分两种,一种是CTIA,一种是OMTP,请看图:
<img src="https://pic1.zhimg.com/ab3cb66bef1eeb1b2bc15a0d6824b200_b.png" data-rawwidth="1600" data-rawheight="899" class="origin_image zh-lightbox-thumb" width="1600" data-original="https://pic1.zhimg.com/ab3cb66bef1eeb1b2bc15a0d6824b200_r.png">HP-L 耳机左声道 HP-R 耳机右声道 GND 接地 V-Mic 语音麦克风
HP-L 耳机左声道 HP-R 耳机右声道 GND 接地 V-Mic 语音麦克风
所以看着一样的4段3.5mm插头可能是两种定义.
在耳机插入手机的时候,手机会在麦克风V-Mic对应的触点(图片中标V-Mic的段,具体是哪段要看手机使用的什么标准)上加载麦克风的直流偏压(驻极体麦克风的直流偏压可以简单理解成供电),并检测是否与地线GND连通,如果连通则证明是不带麦克风的3段插头,否则是按4段插头处理.(补充:现在许多芯片也会检测其他极之间的电阻)
如安卓OMTP耳机插入苹果CTIA插座,就会听到哒哒的声音(直流脉冲被加载到GND,而左右声道电平为0,构成回路),反之则不能识别.
安卓机OMTP插座使用CTIA耳机可以出声音,但是由于缺少地线,声音会失真,两个声道相位抵消,就会出现类似消音伴奏的效果.
至于线控,单键线控按下时短路麦克风触点V-Mic与接地GND,手机检测到V-Mic电平被拉低则判定线控被按下.多个按键的线控需要线控内元件的支持,不同厂家控制方式也不一样.
标准的安卓耳机支持4个线控按键.控制方式如下
(图中是CTIA标准,OMTP的安卓手机需要将GND和MIC对调)
<img src="https://pic1.zhimg.com/def155a441af905d0b7ca93163520ed4_b.png" data-rawwidth="554" data-rawheight="329" class="origin_image zh-lightbox-thumb" width="554" data-original="https://pic1.zhimg.com/def155a441af905d0b7ca93163520ed4_r.png"> 麦克风阻抗5kΩ 功能A 电阻0Ω 功能B 电阻252Ω 功能C 电阻519Ω 功能D 电阻139Ω
麦克风阻抗5kΩ 功能A 电阻0Ω 功能B 电阻252Ω 功能C 电阻519Ω 功能D 电阻139Ω
每个按钮串接一个不同大小的电阻,接在MIC和GND之间.线控不同按键是通过MIC端对地电阻来识别的,
线控耳机不一定包含所有四个键
1个键的必须包含A(播放/暂停/接听/挂断电话等等,其他功能可以软件定义)
2个键的必须包含A D(功能保留,可以是发送/启动语音识别等等)
3个键的必须包含A B C(B/C是音量/上一曲下一曲)
4个键的必须包含A B C D
苹果的线控标准与通用的标准不一样,线控里有芯片,处理线控操作和DRM所以会出现不兼容的问题
但是功能A是可以通用的(短路MIC与GND).
<img src="https://pic1.zhimg.com/4e97f64c9ae555533aa3920fb6da82c8_b.jpg" data-rawwidth="520" data-rawheight="345" class="origin_image zh-lightbox-thumb" width="520" data-original="https://pic1.zhimg.com/4e97f64c9ae555533aa3920fb6da82c8_r.jpg">
首先,无论苹果还是安卓,它们的线控实际都是通过麦克风的线路来发送控制信号的。与耳机的两条线无关;
其次,线控本身只负责产生信号,具体如何处理这个信号,完全由手机操作系统和它上面运行的应用程序来负责。举个最简单的例子,iPhone线控的音量键平时是调节音量,但在使用相机时按音量键可以拍照;
第三,「苹果安卓的耳机线控不兼容」也不完全正确,中间的播放/暂停键是能用的,不兼容的是音量键。
播放/暂停键为什么会兼容?因为它的原理其实就是在麦克风的线路上并联了一个开关。
不按开关时线路两端默认会有1.9V电压,而按下开关导致短路,电压直接降为0。手机可以捕捉到这个明显的电压变化,通过AD转换,由手机操作系统判断当前动作是单击、双击、三击或者长按。
这个简单的操作被苹果安卓所有智能手机支持。
而音量键则不然。安卓采用的方法是:为两个按钮各自串一个阻值不同的电阻,在按下按钮时下拉电平,手机检测到电平变化情况即可判断当前按下了哪个键。
但坑爹的是,由于安卓厂商众多,并没有统一标准,具体电阻和电平范围都是各厂商自己决定的。比如三星的原装耳机插在魅族手机上很可能就无法控制音量。
苹果的办法则更复杂:在线控上有专门的信号发生芯片。按下音量键时会产生一段约3ms的高频信号,根据信号频率的不同区分是音量加还是音量减。
<img src="https://pic1.zhimg.com/v2-eb08f11742087b9b5dd924b7e3b5bb44_b.png" data-rawwidth="627" data-rawheight="474" class="origin_image zh-lightbox-thumb" width="627" data-original="https://pic1.zhimg.com/v2-eb08f11742087b9b5dd924b7e3b5bb44_r.png">图片引自 https://groups.google.com/forum/#!topic/szdiy/5Y_AQ73SEmg 的研究
这段信号的频率超过了100KHz,远大于人类听觉范围(20Hz~20KHz)和发声范围(80Hz~1000Hz),属于超声波,所以对麦克风和耳机都不会产生任何影响。
这也是苹果和安卓线控音量键互相不兼容的原因。
而且苹果还要求在线控耳机插入时输出一个特定的握手信号,如果没有这个信号,就算后续信号格式正确手机也不会接受。
但这点小问题难不住智慧的国人,我们早就研发了苹果安卓智能识别的线控芯片(如SP507等),检测到不同手机就输出不同的音量控制信号。在很多不限手机系统的高端耳机、时尚耳机、降噪耳机上面都会用到这种芯片。
(内容摘自网络 个人整理)