打印

检测到的音频AD值用什么编码方式传到一条线上?

[复制链接]
2335|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
MIKEZHONG|  楼主 | 2014-5-6 09:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位好,

    我现在做一个这样的产品,有两台产品,分别是A和B,类似对讲功能,中间用一条数据线,一个地线将两台机相连接,这两台机上面分别有话筒和喇叭,现在我遇到的问题是:

  比如说A机上我用8K的AD采样率采样到话筒音量数据,压缩后比如是1100 1001 0010(举个例子),用什么样的编码方式转成这条数据线上的脉冲传给B机? 速度要能跟上,采用曼彻斯特方式?
  请各位知道的提供下思路,谢谢啦。

相关帖子

沙发
MIKEZHONG|  楼主 | 2014-5-6 10:06 | 只看该作者
我看这里的高手很多,是否有做过类似的?

使用特权

评论回复
板凳
望断云山| | 2014-5-6 11:00 | 只看该作者
8k的采样,9600的串口就够了,距离远就转485好了,数据都不必压缩

使用特权

评论回复
地板
nbldelnan| | 2014-5-6 11:17 | 只看该作者
在一条线上用双向模拟开关将分开模拟和数字信号

使用特权

评论回复
5
holle| | 2014-5-6 12:53 | 只看该作者
码率13bit X 8K/S = 104000bit/s 采用差分LVDS。

使用特权

评论回复
6
MIKEZHONG|  楼主 | 2014-5-6 21:52 | 只看该作者
我看了,
1,3楼的:用的是普能IO口发送,是MEGA16的PB0,不是串口协议,串口一个TX,RX,GND,两台机之前会有3条线,我这个只有两条线,一条是地线,一条是传数据的,同时这条线上的数据又是双向的。所以各位仔细帮我看看。

2,4楼的:我也找了很多各方面的资料,没有发现你说的这种方法,我也不知道怎么实现。

3,5楼的:采用差分信号,也会有3条线,我这个两台产品距离是在100米以内。

谢谢三位,请各位继续啊。

使用特权

评论回复
7
ningling_21| | 2014-5-6 21:58 | 只看该作者
一条线,不如直接传送模拟量,接收端收到再处理...

使用特权

评论回复
8
yoyof3| | 2014-5-6 23:06 | 只看该作者
可不可以自己定义通信协议,模仿单总线协议,首先把A的模拟量解析为二进制,通过模仿单总线协议传输到B设备。或者模仿直流B码的协议,根据单线上的高、低电平的占空比去编码二进制数据,如数据线上高低电平的比为5:5 表示二进制“1”,2:8表示“0”,8:2表示“P”用这个“P”来区分一针数据的结束和开始。这种方式可以实现你的需求。备注:直流B码协议是用在授时系统上传输时间信息的,你可以搜一下看看,自己定义协议。如果你用单总线协议的话,你可以级联多个设备。

使用特权

评论回复
9
nbldelnan| | 2014-5-7 08:52 | 只看该作者
MIKEZHONG 发表于 2014-5-6 21:52
我看了,
1,3楼的:用的是普能IO口发送,是MEGA16的PB0,不是串口协议,串口一个TX,RX,GND,两台机之前 ...

就是用一条线,两个双向开关的输出端接在这条线上,输入端分别接单片机引脚和音频输出,单片机的通讯直接用高低电平的时间差判别,当音频通讯就关单片机通讯,当单片机通讯就关音频通讯

使用特权

评论回复
10
menfiss| | 2014-5-7 12:55 | 只看该作者
要是仅仅用于传输,使用电话方式的直流载波很方便。

使用特权

评论回复
11
ccmc| | 2014-5-8 00:02 | 只看该作者
谁告诉你串口一定要3条线的.
半双工模式,单线完成收发.
常见通信外设都可以完成你描述的功能. 比如uart spi

使用特权

评论回复
12
kakaoracle| | 2014-11-12 23:26 | 只看该作者
nbldelnan 发表于 2014-5-6 11:17
在一条线上用双向模拟开关将分开模拟和数字信号

请问一下双向模拟开关是什么

使用特权

评论回复
13
kakaoracle| | 2014-11-12 23:28 | 只看该作者
yoyof3 发表于 2014-5-6 23:06
可不可以自己定义通信协议,模仿单总线协议,首先把A的模拟量解析为二进制,通过模仿单总线协议传输到B设备 ...

自己定义协议该咋定义啊

使用特权

评论回复
14
coody| | 2014-11-13 11:02 | 只看该作者
传输数字声音信号,我8K采样压缩成ADPCM,码率为32kb,两条线我用RS485,115200来传,全双工,还带一些控制数据,效果很好。

使用特权

评论回复
15
MIKEZHONG|  楼主 | 2014-12-14 11:23 | 只看该作者
Coody,您好,关于ADPCM,这块你有成功做过产品,和我的产品有一定的相似,但也是大有不同。

首先我这个产品只能用一根线,两个人对话和控制信号(摘机,挂机等)同在一根线上传,所以在一根线上实现实时传送,那么就必须将得到的ADPCM数据分段传,比如10MS传的是A给B的语音同时10MS后又紧接着B给A的语音,从而分时实时传送两个人能在一根线上通话。

所以一个是ADPCM数据压缩的问题,一个是MEGA16这样的单片机实现(有前高人已经实现了)。

请教您有什么建议吗?另外ADPCM有好的资料能分享一下吗,非常感谢。我的QQ:395202699

可以一起讨论一下,这样相互进步。

使用特权

评论回复
16
coody| | 2014-12-14 11:37 | 只看该作者
ADPCM语音数据率为4KBps,所以,如果用串口那样的,得用40kbps的速度,准双工就要80kbps,那么,在通讯速度用115200bps是没有任何问题的,这个我方案已经使用过了。
数据帧中,带几个字节的控制信息和校验信息,可以实现很多功能。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

51

主题

250

帖子

1

粉丝