zhang32568 发表于 2026-4-30 11:29:06

ADPCM音频编解码,遇到问题了

想用CAN 总线传输双向对讲音频。采样率8K .采用ADPCM 压缩。用8点1K正弦波测试。波形不定期扭动。
如果直接播放无压缩的。波形非常稳定。只要经过编解码。(通过CAN总线接收也是,现在在本地测试编解码)
波形就出行不定期扭动。定时器中断125us。单片机STC32F12K128。主频24M .通过P34通过PWM 两阶滤波接示波器
。数据采集是通过DMA (采集音频和5路数据),在125us定时器中断定期取12位音频数值。
编码是将12位左移4位。解码复原。卡了很多天不知道什么原因?

zhang32568 发表于 2026-4-30 11:34:03

下面的波形是正常不经过解压缩。通过CAN总线也是正常。CAN总线500K ,定时器32MS 发送一次。采集双缓冲。32毫秒刚好256字节,压缩后128字节。和5路数据一块发送。(主机和从机通过乒乓发送)大概需要8毫秒左右。从机收到信号后,被动发送自己的数据(同样数据)。这样保证任何时候总线都是一个设备发送。这样一个32毫周期互发信号时间绰绰有余。

lcwswust 发表于 2026-4-30 14:22:38

大概就是缺了1ms的波形?大概就是8个采样点?传输占用4字节?
每一个CAN数据包传输多少字节的音频数据?
万一某一包发送失败、然后重发是否会影响波形?
压缩、解压算法耗时多少?
上代码瞧瞧呗。

zhang32568 发表于 2026-4-30 19:30:23

压缩后每一帧发送8个字节的音频数据。如果不压缩。刚好发送256/8=32帧。压缩后发送16帧。不压缩单向接收出来波形很完整。
但是感觉带宽压力大。代码稍后上 没在这个电脑上

zhang32568 发表于 2026-5-5 23:47:01

不简单 总算是能够双向对讲了。现在是声音有点失真。但是双向对讲没有任何问题。明天吧采样率提高到15K 试一试。

神农鼎 发表于 2026-5-6 09:59:51

能否改成 STC32G144K246-LQFP64 / 100 来测试推进,
CAN-FD/CAN 有 DMA 支持。
我们好请内部人员一起来看,
STC32F12K52系列是前期研发样品,早已不推荐




zhang32568 发表于 2026-5-6 14:19:23

神农鼎 发表于 2026-5-6 09:59
能否改成 STC32G144K246-LQFP64 / 100 来测试推进,
CAN-FD/CAN 有 DMA 支持。
我们好请内部人员一起来看, ...

我先看看这个芯片的资料。另外测试至少需要做两个同样的板子。
页: [1]
查看完整版本: ADPCM音频编解码,遇到问题了