搜索
bottom↓
回复: 188

关于手机音频通信实际开发经验分享

  [复制链接]

出0入0汤圆

发表于 2013-1-31 17:16:22 | 显示全部楼层 |阅读模式
本帖最后由 seewolf 于 2013-2-1 09:59 编辑

大家好,本人在阿莫潜水多年,深受“阿莫的教诲”学到了很多东西。自12年毕业至今工作将近一年,也积累了一些经验,接下来会一一分享出来,算是对阿莫的感恩吧!第一篇是关于手机音频通信方面的,12年上半年从事过几个月的手机音频通信的开发(我主要负责设备一端的程序和电路,手机软件部分不负责),积累了一点经验,在这里献丑了。
一、手机音频通信的特点
1、        通用性强:在智能手机普及的今天,手机的对外通信接口多种多样,而其中以3.5mm的音频接口通用新最强,基本所有的手机、平板电脑都会有这个接口,所以在一些要求通用性的设备上,音频接口登上了舞台。
2、        速率低:由于手机音频部分的采样频率一般为44.1KHZ(部分国产山寨为8KHZ),这极大的限制了音频通讯的速率。我们都知道44.1KHZ的采样频率,那么最高的信号频率只能为20KHZ左右,而信号周期也不可能只有2个采样点,通常要到10个以上,这样层层下来通讯速率可想而知。
3、        小信号:音频通信的信号都是毫伏级的,各个手机厂商略有不同,但通常最大不超过200mv,通常我们通信使用的信号强度也就100mv左右,这导致信号比较容易受干扰,且在开发阶段对工具有着种种限制。
二、        手机音频通信分类
1、        无线方式:
a)        无线方式大家可能不太熟悉,容我慢慢道来。我们都知道人耳能听到的声音频率为20HZ~20KHZ,而手机通信的信号频率最高也就20KHZ,所以无线通信方式是可行的。因为虽然人耳的极限听力能到20KHZ,但普通人一般在19KHZ以上时基本就听不到了,所以如果信号的强度比较弱,且控制在19KHZ到20KHZ之间,那么我们就可以将之当做是“超声波”来看待了。
b)        其实在此提到手机音频通信的无线方式,算是给大家一种产品开发思路吧。它的通讯半径在10M左右,前景还是很广阔的,大家有兴趣的可以试试。(其实已经有这方面的产品了)
2、        有线方式:
a)        有线方式分为单向(设备→手机)和双向两种,单向的限制少,开发难度也小一些,但实际应用时会受限制。而双向通信限制多,开发难度也大一些,但实际应用时更方便些。
b)        设备→手机:曼彻斯特编码;FSK;DTMF;自定义正弦波
c)        手机→设备:由于手机输出的音频信号很小,无法直接使用,要么用运放发大到合适的范围,要么用电压比较器转换成TTL方波。
三、手机音频通信硬件通信方式分类:手机音频通信的硬件通信方式大体可分为方波和正弦波两种。
1、        方波:方波通常使用的是曼彻斯特编码方式(什么是曼彻斯特编码自己去查),它的好处是可以用单片机直接输出方波,经过衰减后即可使用,方便简单。缺点是兼容性不好,因为手机音频部分有这样一个特性,它只识别变化的电平信号,当麦克输入的信号长时间保持在某一非零电平时,手机会将其视为零,而强行拉回零电位。这就是采用方波通讯方式的兼容性不好的最大原因了,并且方波也容易受干扰。
2、        正弦波:正弦波不会出现上面所说的方波的问题,故正弦波的兼容性和稳定性更好一些。通常采用方案有FSK、DTMF、信号发生器、或方波转正弦波等。(后面会对以上方案逐一分析)
3、        通信信道分析
a)        我们知道音频接口有4根线,MIC、地、左、右声道。设备→手机用MIC,手机→设备用地、左、右声道中的任意一个。这里说一下,实际产品中,有一些厂家会更换地线,即将原本左、有声道中的一根改为地线来用,其实道理是一样的。因为音频通信的信号时交流信号,而地其实也是悬浮地,即便地线换了,最终的波形还是一样的,因为最终手机解析信号时需要的是频率和幅值。这样还剩下一个声道,通常被用来帮助设备进行上电识别,因为音频通信的设备通常都是电池供电的。
b)        另外还要在MIC和地之间并联一个4.99K的电阻,因为手机是通过检测MIC和地之间的阻抗是否为4.99K(也有其他阻值的)来判断是否有设备(耳机)插入,这一点要谨记。
四、各个通信方案对比分析
1、        设备→手机:
a)        曼彻斯特编码:在诸多通信方式中,曼彻斯特编码是最灵活简便的一种方法,编码信号可由单片机直接产生,经衰减电路衰减后便可直接使用。注意事项:曼彻斯特编码信号的生成有两种方式,一种是用PWM生成,一种是用定时器中断翻转IO,我个人比较倾向于定时器中断方式。因为我们知道曼彻斯特编码中有宽沿河窄沿之分,且宽沿和窄沿可能会灵活变化,而用PWM方式不容易精确控制宽沿、窄沿输出的变化,而定时器中断方式则非常灵活且容易控制。(后面会送上我自己写的曼彻斯特编码、解码函数)
b)        FSK、DTMF方式:FSK和DTMF两种方式大同小异,使用时通常都是用集成的芯片来生成的,而这些芯片通常都是遵守固定的通信协议的的要求(FSK为Bell202或V.23协议,DTMF记不清名字了)。这两种通信方式的优点是采用正弦波通信、稳定性好且使用简便。但由于固定通信协议的限制导致通信速率、比特率也受到限制而缺乏灵活性。在这里跟他家推荐一款英国的通信芯片CMX系列,这个系列的芯片融合的FSK、DTMF的编码、解码,还是很不错的,大家有兴趣可以试试。(相关手册在附件里)
c)        信号发生器、锁相环方式:这种方式用信号发生器或者锁相环来产生方波或正玄波,由单片机来控制波形的输出,也可以实现音频通信,且十分灵活。但缺点是电路较复杂,且不同频率信号之间衔接不好掌握,用不好反而是麻烦。(相关手册在附件里)
d)        在这里送上一种我个人认为比较好的方案:就是曼彻斯特编码加低通滤波器,由单片机输出曼彻斯特编码,再经由低通滤波器将方波滤成正弦波后输出。既解决了FSK、DTMF灵活性的问题,又解决了曼彻斯特编码方波稳定性、通用性的问题。在低通滤波器方面我个人采用的是“集成低通开关电容滤波器”,它成本虽然高一些,但好处也是明显的,电路简单,使用方便,且占用的空间亦很小。(相关手册在附件里)
2、        手机→设备:
a)        放大电路方式:将手机输出信号经放大电路放大到合适的幅值,然后有锁相环或者结成FSK、DTMF芯片进行解析。该中方式难度最大,需要非常强的模拟电路功底,我个人水平有限,故采用的另一种方式。
b)        电压比较器方式:将手机输出的交流信号经电路强行拉到Vcc/2级别,然后加到电压比较器一端,另一段接比较电压Vcc/2,这样交流信号即被转化为TTL方波信号,此时再进行解析就变得很简单了。
五、研发注意事项(通讯方案分析部分由于过长,放到最后来讲)
1、        一个好手机录音软件是必须的,最好能在手机上直接看到波形的。
2、        建议用笔记本电脑进行开发,而非台式机。因为音频信号很小,容易受干扰,而台式机干扰较大,笔记本还有一个好处是必要时可将外接电源拔掉,用电池供电。
3、        一个好录音笔必不可少,有时需要得到纯净的音频信号,方便更加准确的分析。
4、        做一个转接板,一边接音频母座,一边接音频公头,将MIC、地、左、右声道4跟线用排阵引出,方便录音。
5、        做一个信号衰减电路,可将设备电路产生的信号衰减至音频接口能承受的范围内。前期调试时,我们可以用该电路将信号录进电脑进行信号分析。(推荐一个电脑音频信号分析软件:Goldwave)
6、        录音用的音频线切记不要太长,不然会给你带来不少麻烦。最好自己做,用音频裸头、杜邦线、排阵即可制作,方便好用。

曼彻斯特编码的编码解码函数如下:
  1. /**********************************************************************
  2. 注释:编码函数都是采用定时器中断的形式,以曼彻斯特编码的窄沿作为定时器周期。
  3. 发送的数据包括1个起始位、8个数据位、1个奇偶校验位、3个停止位。
  4. ***********************************************************************/
  5. static void VIC_VECT_Fucton_00(void)//发送编码数据中断函数
  6. {
  7.         TIMER0IS =0x0;
  8.         if((send_time%2==0) && (send_start==1))
  9.         {
  10.                 switch(FSK_txState)
  11.         {
  12.           case STARTBIT:
  13.                 if((GPIODATA&0x00000002)==0x00000000)//如果检测到数据发送管脚为零
  14.                         send_time++;
  15.                         else
  16.                         {
  17.                                 currentSym=0;
  18.                                 FSK_txState = BYTE;
  19.                         }
  20.                         break;
  21.           case BYTE:
  22.             if(txBit < 8)
  23.             {
  24.                     currentSym = (send_byte >> txBit) & 0x01;
  25.                 txBit++;
  26.                 txParity += currentSym;                  //奇偶校验位
  27.             }
  28.                         else if (txBit == 8)
  29.             {
  30.                     currentSym = txParity & 0x01; //发送奇偶校验位
  31.                 txBit++;
  32.             }
  33.                         else if(txBit>8 && txBit<12)
  34.             {
  35.                     // next bit is the stop bit
  36.                 currentSym = 1;                                  //发送停止位
  37.                                 txBit++;
  38.             }
  39.                         else if(txBit == 12)
  40.                         FSK_txState = STOPBIT;       
  41.             break;
  42.           case STOPBIT :
  43.             txBit=0;
  44.                         FSK_txState=IDLE;
  45.                         send_start=0;
  46.                         txParity=0;
  47.                         send_byte=0;
  48.                         break;
  49.                }
  50.                 if(lastSym!=currentSym)
  51.                 {
  52.                         timer1_num++;
  53.                         lastSym=currentSym;
  54.                 }
  55.         }
  56.         if(timer1_num%2==0)
  57.         GPIODATA&=0xFFFFFFFD;//输出管脚复位
  58.         else
  59.         GPIODATA|=0x00000002;//输出管脚置位

  60.         timer1_num++;//用来控制IO口的电平翻转
  61.         send_time++;//用来控制发送的字节的每一位
  62.         Delay++;//Delay就是延时函数
  63. }
  64. /**********************************************************************
  65. 注释:解码函数采用外部IO中断形式(上升沿或下降沿中断,即电平电平跳变中断),
  66. 用一个定时器作为时钟,每次产生中断时便从定时器见时间值取出,并和上一次的
  67. 记录做差求出时间间隔,以此来判断当前为宽沿还是窄沿。
  68. ***********************************************************************/
  69. static void VIC_VECT_Fucton_04(void)//接受解码数据中断函数
  70. {
  71.         GPIOIC|=0x00000001;//清楚上一次中断内容
  72.         RX_time=TIMER1VALUE;
  73.         if(RX_lasttime>=RX_time)
  74.         RX_diff=RX_lasttime-RX_time;                  //lasttime初始值为0
  75.         else
  76.         RX_diff=65535-RX_time+RX_lasttime;
  77.         RX_lasttime=RX_time;       
  78.     switch(RX_state)                  //启动代码时state已经被配置为STARTBIT
  79.     {
  80.           case STARTBIT_FALL:
  81.             if ((SHORTINTERVAL<RX_diff) && (RX_diff<LONGINTERVAL))
  82.         {
  83.                 if(RX_ones<5)           //ones初始值为0
  84.             {
  85.                     RX_ones = 0;
  86.             }
  87.                         else
  88.                         {
  89.                                 RX_state = DECODE;        //将状态配置为解码
  90.             }
  91.         }
  92.         else if(RX_diff < SHORTINTERVAL)
  93.         RX_ones++;
  94.                 else
  95.                 RX_ones=0;
  96.         break;
  97.       case DECODE:
  98.               /**************通过间隔长短来判定数据**************/
  99.                 if ((SHORTINTERVAL<RX_diff) && (RX_diff<LONGINTERVAL))// 若间距在范围内则当前数据位值和前一个相反
  100.         {                                               
  101.                         currentbit=(currentbit+1)&0x01;
  102.                         RX_times+=2;
  103.         }
  104.         else if( RX_diff < SHORTINTERVAL)                                         
  105.         {
  106.                         currentbit=currentbit;
  107.                         RX_times++;
  108.                 }
  109.         else
  110.                 RX_state = DATAINIT;                          

  111.                 /****************接受数据位,从低位接起****************/
  112.                 if(RX_times%2==0)
  113.                 {
  114.                         if(RX_bitcounter<8)
  115.                         {
  116.                                 if (currentbit==1)
  117.                             {
  118.                                       uartByteRx = (uartByteRx >> 1) + (1<<7);
  119.                                         rxParity++;                                                //奇偶校验位
  120.                                         RX_bitcounter++;                                //接受数据位数
  121.                             }
  122.                             else
  123.                             {
  124.                                         uartByteRx = (uartByteRx >> 1);
  125.                                         RX_bitcounter++;
  126.                             }
  127.                         }
  128.                         else
  129.                         {
  130.                                 rxParity&=0x01;                                                 //进行奇偶校验
  131.                                 if(rxParity==currentbit)
  132.                                 {
  133.                                         RX_bitcounter++;
  134.                                         RX_finish=1;
  135.                                         RX_state=DATAINIT;
  136.                                 }
  137.                                 else
  138.                                 RX_state=DATAINIT;                                         //若奇偶校验错误则,重新检测
  139.                         }
  140.                 }
  141.                 break;
  142.       case DATAINIT :                                                                 //初始化参数状态
  143.                 RX_bitcounter=0;
  144.                 RX_ones=0;
  145.                 rxParity=0;
  146.                 currentbit=0;
  147.                 RX_state=STARTBIT_FALL;
  148.                 RX_times=0;
  149.                 break;
  150.       default:
  151.         break;
  152.     }
  153. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2013-2-5 09:56:48 | 显示全部楼层
本帖最后由 seewolf 于 2013-2-5 10:28 编辑
bonn_y 发表于 2013-2-5 09:11
同16楼的问题


好,我重传了,你再下载试试看,不过有10MB的限制,今天是传不完了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-1-31 17:43:28 | 显示全部楼层
学习一下,谢谢LZ

出0入0汤圆

发表于 2013-1-31 17:45:49 | 显示全部楼层
好东西,非常感谢楼主分享!

出0入0汤圆

发表于 2013-1-31 17:53:43 | 显示全部楼层
很好的东西,谢谢分享~

出0入0汤圆

发表于 2013-1-31 18:11:39 | 显示全部楼层
这个不错,最近在研究,谢谢分享

出0入0汤圆

发表于 2013-1-31 18:39:33 | 显示全部楼层
学习一下,现在好多这方面的应用呀,谢谢

出0入0汤圆

发表于 2013-1-31 18:51:37 来自手机 | 显示全部楼层
帮顶一下

出0入0汤圆

发表于 2013-1-31 18:53:41 | 显示全部楼层
帮顶一下

出0入0汤圆

发表于 2013-1-31 19:10:35 | 显示全部楼层
多谢楼主分享。。。学习中

出0入0汤圆

发表于 2013-1-31 21:42:50 | 显示全部楼层
好东西。之前一段时间我也在做这方面的研究,感觉和楼主思路很接近。
等忙过手头的事情,继续研究。

出0入0汤圆

发表于 2013-1-31 21:50:15 | 显示全部楼层
对此技术是什么感兴趣,谢谢楼主分享,先MARK下来。

出0入0汤圆

发表于 2013-2-1 08:35:21 | 显示全部楼层
很好的东西,谢谢分享~

出0入8汤圆

发表于 2013-2-1 09:16:21 | 显示全部楼层
怎么我下载的,解压不出来,说是损坏的,试了N次了,不行啊

出0入0汤圆

 楼主| 发表于 2013-2-1 09:32:56 | 显示全部楼层
WGJ5767351 发表于 2013-2-1 09:16
怎么我下载的,解压不出来,说是损坏的,试了N次了,不行啊

你应该是没下载完全吧,阿莫下东西时常会出这问题,你再试试,不行我重传一次

出0入0汤圆

 楼主| 发表于 2013-2-1 09:33:28 | 显示全部楼层
htjgdw 发表于 2013-1-31 21:42
好东西。之前一段时间我也在做这方面的研究,感觉和楼主思路很接近。
等忙过手头的事情,继续研究。 ...

呵呵~那有机会多交流一下

出0入8汤圆

发表于 2013-2-1 09:38:13 | 显示全部楼层
本帖最后由 WGJ5767351 于 2013-2-1 09:40 编辑

还是解压说损坏, 晕,怎么回事, 其它页面的文件都可以下载,解压成功

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2013-2-1 09:39:59 | 显示全部楼层
WGJ5767351 发表于 2013-2-1 09:38
还是解压说损坏, 晕,怎么回事, 其它页面的文件都可以下载,解压成功

你哪个有问题?我重传一次,再传点别的,昨天没传完,有10MB的限制

出0入8汤圆

发表于 2013-2-1 09:41:49 | 显示全部楼层
3个都不行

出0入0汤圆

 楼主| 发表于 2013-2-1 09:44:27 | 显示全部楼层
。。。我试试看,我看不少人都下载了,就你一个人说有问题呀

出0入0汤圆

发表于 2013-2-1 09:47:46 | 显示全部楼层
另外还要在MIC和地之间并联一个4.99K的电阻,因为手机是通过检测MIC和地之间的阻抗是否为4.99K(也有其他阻值的)来判断是否有设备(耳机)插入,

标记这个

出0入0汤圆

发表于 2013-2-4 15:04:20 | 显示全部楼层
文件异常

出0入0汤圆

 楼主| 发表于 2013-2-4 17:07:14 | 显示全部楼层
bonn_y 发表于 2013-2-4 15:04
文件异常

哪个异常?

出0入0汤圆

发表于 2013-2-4 17:37:39 | 显示全部楼层
mark 一下“关于手机音频通信实际开发经验分享”

出0入0汤圆

发表于 2013-2-4 17:44:08 | 显示全部楼层
关注经验!

出0入0汤圆

发表于 2013-2-4 19:29:53 来自手机 | 显示全部楼层
本帖最后由 515135896 于 2013-2-4 19:30 编辑

强势支持!佩服楼主的分享精神!!
我估计咱俩年龄差不多-_-||

出0入0汤圆

发表于 2013-2-5 09:11:28 | 显示全部楼层
seewolf 发表于 2013-2-4 17:07
哪个异常?

同16楼的问题

出0入0汤圆

 楼主| 发表于 2013-2-5 09:12:52 | 显示全部楼层
515135896 发表于 2013-2-4 19:29
强势支持!佩服楼主的分享精神!!
我估计咱俩年龄差不多-_-||

呵呵~是吗,你也是12年刚毕业的?

出0入0汤圆

发表于 2013-2-5 10:12:17 | 显示全部楼层
锁相环及信号发生那个包下不了

出0入0汤圆

 楼主| 发表于 2013-2-5 10:29:07 | 显示全部楼层
WGJ5767351 发表于 2013-2-1 09:41
3个都不行

文件我已经重传,可以下载了,在后面回复中

出0入0汤圆

 楼主| 发表于 2013-2-5 10:29:55 | 显示全部楼层
EONE 发表于 2013-2-5 10:12
锁相环及信号发生那个包下不了

后面回复中已经重传了,你再下载试试看

出0入0汤圆

发表于 2013-2-5 10:39:19 | 显示全部楼层
seewolf 发表于 2013-2-5 10:29
后面回复中已经重传了,你再下载试试看

可以下载了,谢谢了

出0入0汤圆

发表于 2013-2-6 14:57:31 | 显示全部楼层
好东西,看完之后了解很多东西,谢谢!

出100入0汤圆

发表于 2013-2-6 15:08:15 | 显示全部楼层
GOOD,可以考虑用手上的安卓手机做些东东

出0入0汤圆

发表于 2013-2-6 17:40:06 | 显示全部楼层
这个必须顶啊。。。。。。

出0入17汤圆

发表于 2013-2-6 17:49:53 | 显示全部楼层
才发现,不错

出0入0汤圆

 楼主| 发表于 2013-2-7 14:12:51 | 显示全部楼层
wochai 发表于 2013-2-6 15:08
GOOD,可以考虑用手上的安卓手机做些东东

手机一端音频信号解码部分的程序算法可不好弄,你若是写出来大家一起交流下,我对手机不太懂呢,只知道大概的思想,具体程序就不会写了,呵呵~

出0入0汤圆

发表于 2013-2-8 10:21:17 | 显示全部楼层
这个不错,是未来发展的趋势,在新的突破性解决方案出现之前,音频通讯很有潜力

出0入0汤圆

发表于 2013-2-8 19:15:18 | 显示全部楼层
请问楼主
二、        手机音频通信分类
1、        无线方式:
a)        无线方式大家可能不太熟悉,容我慢慢道来。我们都知道人耳能听到的声音频率为20HZ~20KHZ,而手机通信的信号频率最高也就20KHZ,所以无线通信方式是可行的。因为虽然人耳的极限听力能到20KHZ,但普通人一般在19KHZ以


这方式怎么工作的呢,不太明白,是不是说手机直接通过喇叭发出特定的声音,,,,,硬件部分就麦克风输入出放大,,再解析出声音,,手机只是通过喇叭发音,和硬件没有连接,所以为无线的方式 ,,,,,,,,是不是这样的工作的,请给我解释一下,谢谢!

出0入0汤圆

发表于 2013-2-8 22:46:00 | 显示全部楼层
真牛!先马克一下。

出0入0汤圆

 楼主| 发表于 2013-2-8 23:18:25 | 显示全部楼层
hongfadg 发表于 2013-2-8 19:15
请问楼主
二、        手机音频通信分类
1、        无线方式:

是这样的,目前来看,无线通信的方式只能做到单向通信,即设备->手机。这主要是由于信号强度的问题,设备端可以讲产生的信号通过功放后经喇叭发出,手机作为接收端,而手机和设备直接无线通信目前不容易实现,因为信号强度太小,除非加外接设备,通过外接设备间接实现无线的通信。了解了它的特点,使用环境就靠你自己想了,比如:图书馆、超市等室内的定位。

出0入0汤圆

发表于 2013-2-9 13:36:15 | 显示全部楼层
看不懂有什么用,能举一个具体例子吗?

出0入0汤圆

 楼主| 发表于 2013-2-9 17:33:49 | 显示全部楼层
zhengyi 发表于 2013-2-9 13:36
看不懂有什么用,能举一个具体例子吗?

具体的例子?你要把现成的方案给你吗...不可能给的,现成的方案就是实际的产品了,这涉及到职业道德的问题!我提供的是开发的思路,和注意事项,剩下的你要自己实际去搞的

出0入0汤圆

发表于 2013-2-9 18:02:30 | 显示全部楼层
seewolf 发表于 2013-2-9 17:33
具体的例子?你要把现成的方案给你吗...不可能给的,现成的方案就是实际的产品了,这涉及到职业道德的问 ...

我连你用来干啥都不知道,要你的方案干嘛?我只是不知道用在那方面,比如是遥控方面的吗?

出0入0汤圆

发表于 2013-2-9 18:25:47 | 显示全部楼层
很好,信息量很大

出0入0汤圆

 楼主| 发表于 2013-2-9 19:05:07 | 显示全部楼层
zhengyi 发表于 2013-2-9 18:02
我连你用来干啥都不知道,要你的方案干嘛?我只是不知道用在那方面,比如是遥控方面的吗? ...

这种通信方式的特点我已经分析过了,具体的应用就要靠你自己去分析了,等你有手机音频通信的需求时,再来看这篇帖子吧

出0入0汤圆

发表于 2013-2-11 23:30:06 | 显示全部楼层
Mark
Mobile phone

出0入0汤圆

发表于 2013-2-12 00:32:55 | 显示全部楼层
拉卡啦 mark

出0入0汤圆

发表于 2013-2-12 00:43:22 | 显示全部楼层
手机→设备:由于手机输出的音频信号很小,无法直接使用,要么用运放发大到合适的范围,要么用电压比较器转换成TTL方波。

楼主非常专业啊!

出0入0汤圆

 楼主| 发表于 2013-2-12 22:27:13 | 显示全部楼层
tyqhaha 发表于 2013-2-12 00:43
手机→设备:由于手机输出的音频信号很小,无法直接使用,要么用运放发大到合适的范围,要么用电压比较器 ...

呵呵~碰巧做过而已

出0入0汤圆

发表于 2013-2-15 12:12:32 | 显示全部楼层
大家视乎把问题复杂化了吧?! 手机就像一个座机,手机跟手机通讯就是有线连接,只是距离有些远,就像2个异地电话机的通讯。。。。这个技术和应用可以参考成熟的电话机或传真机的相关技术。

出0入21汤圆

发表于 2013-2-17 19:42:34 | 显示全部楼层
谢谢楼主分享,估计这类应用将会普及

出0入0汤圆

 楼主| 发表于 2013-2-18 11:12:51 | 显示全部楼层
ANHOME 发表于 2013-2-15 12:12
大家视乎把问题复杂化了吧?! 手机就像一个座机,手机跟手机通讯就是有线连接,只是距离有些远,就像2个异 ...

呵呵~我不太清楚你是如何理解的?就手机所拥有的有线对外接口而言,音频接口是最通用的。关于电话线的通信我知道,主要是FSK和DTMF,且一般都是用符合bell202协议的集成通信芯片,我在上面已经提到这种方式,并做了分析。

出0入0汤圆

发表于 2013-2-18 14:31:50 | 显示全部楼层
很好的东西,谢谢分享~

出0入0汤圆

发表于 2013-2-20 15:43:17 | 显示全部楼层
请教下楼主,由手机向设备发送时,是在数据流编码时就按方波编码,比较器只负责放大信号。还是编码为正弦波,比较器负责比较和转换为方波?
我现在是用前者,但因为手机输出音频幅值差别较大,有时候有杂波被错误比较出来,所以手机兼容性一直很难解决,在一款手机上很稳定,但是换一款可能就得做很多参数调整。
不知道楼主的方案手机兼容性做到什么程度?

出0入0汤圆

 楼主| 发表于 2013-2-21 09:26:42 | 显示全部楼层
呵呵~兼容性确实是个大问题,我们之前做的可以兼容常见的所有智能手机,包括中兴、华为、联想、小米、魅族这些国产的牌子。手机向设备发送时,才用前一种方案我觉得并不好,我们采用的是后面一种,手机输出正弦波,再经过比较器转换成方波。音频传输中,正弦波的传输效果比方波好很多。

出0入0汤圆

 楼主| 发表于 2013-2-21 09:27:19 | 显示全部楼层
blxl 发表于 2013-2-20 15:43
请教下楼主,由手机向设备发送时,是在数据流编码时就按方波编码,比较器只负责放大信号。还是编码为正弦波 ...


呵呵~兼容性确实是个大问题,我们之前做的可以兼容常见的所有智能手机,包括中兴、华为、联想、小米、魅族这些国产的牌子。手机向设备发送时,才用前一种方案我觉得并不好,我们采用的是后面一种,手机输出正弦波,再经过比较器转换成方波。音频传输中,正弦波的传输效果比方波好很多。

出0入0汤圆

发表于 2013-2-21 10:30:25 | 显示全部楼层
seewolf 发表于 2013-2-21 09:27
呵呵~兼容性确实是个大问题,我们之前做的可以兼容常见的所有智能手机,包括中兴、华为、联想、小米、魅 ...

多谢。我也改正弦波试试,有效果了再来跟大家分享

出0入0汤圆

发表于 2013-3-18 15:55:50 | 显示全部楼层
标记一下,非常好

出0入0汤圆

发表于 2013-4-7 19:25:56 | 显示全部楼层
好文章    绝对的干货    给需要掌握这技术的人提供了很多信息   少走很多弯路啊

出0入0汤圆

 楼主| 发表于 2013-4-8 09:40:08 | 显示全部楼层
没壳儿了 发表于 2013-4-7 19:25
好文章    绝对的干货    给需要掌握这技术的人提供了很多信息   少走很多弯路啊 ...

呵呵~能帮到大家就是好

出0入0汤圆

发表于 2013-4-8 10:06:24 | 显示全部楼层
3Q                  

出0入0汤圆

发表于 2013-4-8 10:07:03 | 显示全部楼层
楼主对音频口取电有研究吗?

出0入0汤圆

 楼主| 发表于 2013-4-8 10:39:46 | 显示全部楼层
lgnativs 发表于 2013-4-8 10:07
楼主对音频口取电有研究吗?

这个没有研究过,因为电流太小,我们的设备肯定不够用,所以直接把这种方式否定了

出0入0汤圆

发表于 2013-4-8 11:08:17 | 显示全部楼层
标记一个,谢谢楼主无私分享。音频口通讯自从被发现以来已经有很多很好的应用,而且随着智能手机的不断发展,基于音频口通讯的外设会越来越丰富。

出0入0汤圆

 楼主| 发表于 2013-4-8 17:11:34 | 显示全部楼层
ztflmm 发表于 2013-4-8 11:08
标记一个,谢谢楼主无私分享。音频口通讯自从被发现以来已经有很多很好的应用,而且随着智能手机的不断发展 ...

是呀,这个行业还是很有潜力的,呵呵

出0入0汤圆

发表于 2013-4-19 23:10:13 | 显示全部楼层
谢谢楼主的分享。。。。。。。。。。。。。。。。。

出0入0汤圆

发表于 2013-4-25 19:44:30 | 显示全部楼层
很好,很强大,收藏了

出0入0汤圆

发表于 2013-4-26 10:53:47 | 显示全部楼层
学习学习

出0入0汤圆

发表于 2013-4-26 13:48:42 | 显示全部楼层
LZ这个思路非常好

出0入0汤圆

发表于 2013-5-6 11:55:08 | 显示全部楼层
seewolf 发表于 2013-4-8 10:39
这个没有研究过,因为电流太小,我们的设备肯定不够用,所以直接把这种方式否定了 ...

楼主是从事哪方面研发啊?    我是做NFC的,最近正好在研究音频口通信    可以私下交流下么

出0入0汤圆

 楼主| 发表于 2013-5-6 12:36:28 | 显示全部楼层
没壳儿了 发表于 2013-5-6 11:55
楼主是从事哪方面研发啊?    我是做NFC的,最近正好在研究音频口通信    可以私下交流下么 ...

我现在在做物联网方面的产品的研发,主要做传感器、zigbee,以太网什么的,以前在上一家公司是做音频通信的,做的设备和拉卡拉功能一样

出0入0汤圆

发表于 2013-5-6 14:45:18 | 显示全部楼层
seewolf 发表于 2013-5-6 12:36
我现在在做物联网方面的产品的研发,主要做传感器、zigbee,以太网什么的,以前在上一家公司是做音频通信 ...

我也是在做物联网   不过是偏向医疗方向的   本人一直在关注BLE和NFC等技术    有兴趣可以交流下    企鹅452251911

出0入0汤圆

发表于 2013-6-2 17:51:17 | 显示全部楼层
seewolf 发表于 2013-2-5 09:12
呵呵~是吗,你也是12年刚毕业的?

OH,no……
我是14年毕业。
估计你是属蛇的吧……?

出0入0汤圆

发表于 2013-6-2 21:11:00 | 显示全部楼层
谢谢楼主分享经验

出0入0汤圆

发表于 2013-6-2 22:41:31 | 显示全部楼层
markmarkmark

出0入0汤圆

发表于 2013-6-4 09:29:55 | 显示全部楼层
好支持

出0入0汤圆

发表于 2013-6-4 10:33:59 | 显示全部楼层
seewolf你好,我看了你写的关于手机音频通信实际开发经验分享,写得很好,我最近在做相关项目,想跟你讨教一下,方便的话加下我的QQ:164174034

出0入0汤圆

发表于 2013-6-4 10:35:49 | 显示全部楼层
不错,马克一下吧

出215入169汤圆

发表于 2013-6-4 10:42:57 | 显示全部楼层
lz有没有试过QAM方式?看看通信原理的课本吧,会有收获的

出0入0汤圆

 楼主| 发表于 2013-6-4 12:06:11 | 显示全部楼层
515135896 发表于 2013-6-2 17:51
OH,no……
我是14年毕业。
估计你是属蛇的吧……?

属龙的,比你大,呵呵~

出0入0汤圆

 楼主| 发表于 2013-6-4 12:08:51 | 显示全部楼层
trillion 发表于 2013-6-4 10:33
seewolf你好,我看了你写的关于手机音频通信实际开发经验分享,写得很好,我最近在做相关项目,想跟你讨教 ...

你加我吧,呵呵~342271700

出0入0汤圆

 楼主| 发表于 2013-6-4 12:27:28 | 显示全部楼层
monkeynav 发表于 2013-6-4 10:42
lz有没有试过QAM方式?看看通信原理的课本吧,会有收获的

刚查了下,这种方式确实可以提高通讯速率,不过我没有试过,你有试过这种方法吗?

出0入0汤圆

发表于 2013-6-4 12:50:35 | 显示全部楼层
seewolf 发表于 2013-6-4 12:06
属龙的,比你大,呵呵~

oh,no
我是属蛇的……你比我大一岁……

出215入169汤圆

发表于 2013-6-4 13:34:37 | 显示全部楼层
seewolf 发表于 2013-6-4 12:27
刚查了下,这种方式确实可以提高通讯速率,不过我没有试过,你有试过这种方法吗? ...

我在别的地方用过,估计18k带宽可以跑出64kbit/s

出0入0汤圆

 楼主| 发表于 2013-6-4 16:23:04 | 显示全部楼层
monkeynav 发表于 2013-6-4 13:34
我在别的地方用过,估计18k带宽可以跑出64kbit/s

你是直接用的专门的编码解码芯片吗?还是什么其它的方式?你当时用的时候是类似手机这种一边硬件编码解码一边软件编码解码吗?

出0入0汤圆

 楼主| 发表于 2013-6-4 16:24:10 | 显示全部楼层
515135896 发表于 2013-6-4 12:50
oh,no
我是属蛇的……你比我大一岁……

那还好,不是90后,不会有什么代沟,哈哈~

出0入0汤圆

发表于 2013-6-5 19:47:32 来自手机 | 显示全部楼层
标记一下。

出0入0汤圆

发表于 2013-6-15 16:30:30 | 显示全部楼层
手机端解码有点麻烦,主要是手机接收数据不好做,

出0入0汤圆

 楼主| 发表于 2013-6-16 09:57:35 | 显示全部楼层
LXXAVR 发表于 2013-6-15 16:30
手机端解码有点麻烦,主要是手机接收数据不好做,

对呀,手机端解码对算法要求很高

出0入0汤圆

发表于 2013-7-9 16:54:10 | 显示全部楼层
为了多多摄取技术营养,
我冲破了口袋滴苦涩,注册了一个号,,,
HI,流星,我是简单,,,
特地跑来跟你打个招呼~~

出0入0汤圆

 楼主| 发表于 2013-7-9 20:21:20 | 显示全部楼层
small_jobs 发表于 2013-7-9 16:54
为了多多摄取技术营养,
我冲破了口袋滴苦涩,注册了一个号,,,
HI,流星,我是简单,,,

看来是下定决心啦,其实以后你会发现这是值得的哦~有时间分享些帖子出来,我也去你那看看,呵呵

出0入0汤圆

 楼主| 发表于 2013-7-9 22:49:25 | 显示全部楼层
small_jobs 发表于 2013-7-9 16:54
为了多多摄取技术营养,
我冲破了口袋滴苦涩,注册了一个号,,,
HI,流星,我是简单,,,

正想给你发资料呢,突然想到你已经注册会员啦,不用再给你发邮件啦,呵呵~你自己下载吧,省的我再上传一次了,不过还是把我邮箱告诉你:langchaojian@126.com

出0入0汤圆

发表于 2013-7-10 10:58:19 | 显示全部楼层
seewolf 发表于 2013-7-9 22:49
正想给你发资料呢,突然想到你已经注册会员啦,不用再给你发邮件啦,呵呵~你自己下载吧,省的我再上传一 ...

恩呢,收到!
这钱花滴相当值啊,昨天从里头搜到了一极其重要滴信息,,,嘿嘿
以后多多交流,若真有好东东,一定努力贴出共享之~~

出0入0汤圆

发表于 2013-8-15 14:03:11 | 显示全部楼层
谢谢啊!我咋做相关项目。

出0入0汤圆

 楼主| 发表于 2013-8-16 09:11:12 | 显示全部楼层
zuoqiangavr 发表于 2013-8-15 14:03
谢谢啊!我咋做相关项目。

呵呵~希望对你有所帮助

出0入0汤圆

发表于 2013-8-17 21:44:29 | 显示全部楼层
想到了拉卡拉之类的东西...

出0入0汤圆

 楼主| 发表于 2013-8-18 19:15:23 | 显示全部楼层
hendry 发表于 2013-8-17 21:44
想到了拉卡拉之类的东西...

呵呵~我之前做的就是那种东西。。。

出0入0汤圆

发表于 2013-9-12 11:16:31 | 显示全部楼层
很感谢楼主的经验之谈,很受益。

出0入0汤圆

发表于 2013-9-12 16:05:41 | 显示全部楼层
学习了, mark 谢谢
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-7 12:57

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表