一、前言:
算起来从高一对音响发生浓厚的兴趣开始,漫长的DIY生涯至今已经将近20年的时间了,从小到DAC解码器、PASS P1.7前级到大吨位的单端甲类PASS A5等等,走过了一山又一山,淌过了一水又一水,有道是“为伊消得人憔悴,衣带渐宽终不悔”。不过长久以来听音乐一直没有一个理想的音源,现在大部分时间都是听从网上下载的音乐,直接通过声卡的SPDIF输出到外置的DAC来充当音源。一者始终需开着计算机,又费电噪音又大;二者毕竟绝大大部分PC声卡都是48KHZ采样而CD采样为44.1KHZ,这里就涉及到一个重采样的问题,会造成音质的大幅度劣化,并且SPDIF等传输环节也容易造成所谓时钟抖动问题,丢失信号造成音质损失。
市场上的MP3这类播放器,虽然轻巧方便,价格也非常便宜,可是受到内置DAC等等先天的制约音质无法令人满意。一直在想如果能有一个方便轻巧,无机械装置的并且能达到HIFI级别的播放设备就好了。好在这些年收敛了盲目的发烧,对软件编程以及电子技术理论以及实践的积累,终于有能力自己来设计并DIY一个让自己满意的高品质播放设备了,也算是响应国家科技创新,从中国制造到中国设计的号召,从之前单纯模仿制作到完全自己自主创新设计的一个质的转变吧(所以从去年开始我把我的陋室命名为CookZeng的创新实验室,CookZeng Innovation Lab,嘿嘿),o(∩_∩)o…
二、构思:
对于数字音源来说,WAV文件就是最原始的PCM信号流在文件系统上的实现,CD的音轨实际就是用于保存WAV文件,CD回放时将音轨还原成WAV数据流,通过DAC再转换成模拟信号量,并且不管什么多比特还是一比特处理技术,CD的格式就是44.1KHZ 16BIT双声道采样。
音频文件的格式有多种,如APE、WAV、MP3等等,其中流行的MP3是有损压缩,音质损失很大,显然不符合HIFI的基本要求;而APE格式虽然较流行,但因其版权关系,自己编程软解压APE文件是个难题,好在现在可以找到一些软件可以将APE很方便快捷地还原成WAV文件(如monkey’s audio等),文件是大了一倍,不过现在的SD卡实在是太便宜了(现在2G的才60元)。
所以现在还是把设计目标定在能够最大程度的高质量还原WAV音源,减小甚至避免可能对音质造成损失的环节,真正达到HIFI的目标。一月中旬的时候做了个实验,从SD卡文件系统上读取WAV文件再通过微处理器的I2S接口直接输出到DAC来实现回放,花了将近二周时间实验程序初步完成,把我的SAM7S64最小系统板的I2S接口输出直接接到了TDA1541电子管DAC(HIFIDIY的套件)上,回放实验证明这个想法是完全可行的,取得了非常理想的效果。
三、基本功能流程框图:
基本的思路如下面的流程图所示,这里有几点值得关注
1、 时钟问题:对于CD的PCM流格式是44.1KHZ 16BIT立体声取样,因此,I2S接口的时钟通常为44.1KHZ*16bit*2声道=1411.2KHZ,由处理器的时钟通过锁相环及分频而来,处理器时钟最好是1411.2KHZ的整数倍。这里的时钟稳定性和准确性对音质是至关重要的,通常的普通晶振为30PPM以上,而温度补偿有源晶振可以做到几个PPM甚至更低(就是价格贵不易买到,通常都没现货要订货)。
2、 直接从I2S同步接口输出到DAC芯片,不经过SPDIF这类异步传输的中间环节,可以最大程度的减小避免时钟抖动问题。另一方面,I2S接口设计并非是可以长距离传输的,若信号线外接电缆过长,则要考虑传输线的信号完整性问题(要加匹配电阻甚至用高电流驱动电路)。
3、 WAV播放器设计为最大程度还原WAV文件本身,也就是说处理器及数字电路本身不会引起任何比特流的差异或者说音质差异,WAV文件本身素质如何,I2S输出流也就是同样素质。另一方面模拟信号还原程度还要取决于DAC部分,其中LPF的设计又是关键,很大程度上决定了听感。