打印
[Atmel]

转:这才叫真正超强DIY-打造自己的MP3

[复制链接]
1709|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

  DIY自己的MP3的一个很大原因是手头有几个小硬盘(1,2个G),扔了可惜,放在电脑里简直是浪费主板的IDE接口,相信DIY玩家们都深有同感吧。所以我就想,如果不需要PC,直接接个解码板就可以播放里面的MP3,那该是多好的事情啊。
MP3播放机的工作原理

  首先来看看硬件结构:


  一个完整MP3播放机要分几个部分:中央处理器、解码器、存储设备、主机通讯端口、音频DAC和功放、显示界面和控制键。如上图。其中中央处理器和解码器是整个系统的核心,在我的DIY作品中,这两个部分集成在一个芯片中。这里的中央处理器我们通常称为MCU(单片微处理器),简称单片机。它运行MP3的整个控制程序,也称为fireware。控制MP3的各个部件的工作:从存储设备读取数据送到解码器解码;与主机连接时完成与主机的数据交换;接收控制按键的操作,显示系统运行状态等任务。解码器是芯片中的一个硬件模块,或者说是硬件解码(有的MP3播放机是软件解码,由高速中央处理器完成)。它可以直接完成各种格式MP3数据流的解码操作,并输出PCM或I2S格式的数字音频信号。

  存储设备是MP3播放机的重要部分,通常的MP3随身听都是采用半导体存储器(FLASH MEMORY),在我的作品中是用硬盘存作为存储器。它通过主机通讯端口传来的数据(通常以文件形式),回放的时候MCU读取存储器中的数据并送到解码器。数据的存储是要有一定格式的,众所周知,PC管理磁盘数据是以文件形式,MP3也不例外,最常用的办法就是直接利用PC的文件系统来管理存储器,微软操作系统采用的是FAT文件系统,这也是最广泛使用的一种。播放机其中一个任务就是要实现FAT文件系统,即可以从FAT文件系统的磁盘中按文件名访问并读出其中的数据。

  主机通讯端口是MP3播放机与PC机交换数据的途径,PC通过该端口操作MP3播放机存储设备中的数据,拷贝、删除、复制文件等操作。目前最广泛使用的是USB总线,并且遵循微软定义的大容量移动存储协议规范,将MP3播放机作为主机的一个移动存储设备。这里需要遵循几个规范:USB通信协议、大容量移动存储器规范和SCSI协议。

  音频DAC是将数字音频信号转换成模拟音频信号,以推动耳机、功放等模拟音响设备。这里要介绍一下数字音频信号。数字音频信号是相对模拟音频信号来说的。我们知道声音的本质是波,人说能听到的声音的频率在20Hz到20kHz之间,称为声波。模拟信号对波的表示是连续的函数特性,基本的原理是不同频率和振幅的波叠加在一起。数字音频信号是对模拟信号的一种量化(如下图),典型方法是对时间坐标按相等的时间间隔做采样,对振幅做量化。单位时间内的采样次数称为采样频率。这样一段声波就可以被数字化后变成一串数值,每个数值对应相应抽样点的振幅值,按顺序将这些数字排列起来就是数字音频信号了。这是ADC(模拟-数字转换)过程,DAC(数字-模拟转换)过程相反,将连续的数字按采样时候的频率顺序转换成对应的电压。MP3解码器解码后的信息属于数字音频信号(数字音频信号有不同的格式,最常用的是PCM和I2S两种),需要通过DAC转换器变成模拟信号才能推动功放,被人耳所识别。

  MP3播放机的显示设备通常采用LCD或者LED发光二极管。显示系统的工作状态。

  控制键盘通常是按钮开关。键盘和现实设备合起来构成了MP3播放机的人机交互界面。

  MP3播放机的软件结构跟硬件是相对应的,即每一个硬件部分都有相应的软件代码,这是因为大多数的硬件部分都是数字可编程控制的。最简化的MP3软件处理任务只有两个操作:

  1. 读取存储器上的数据,送到解码器,解码器的输出送到音频DAC;

  2. 分析USB主机控制器发的指令,完成对存储器的操作,将操作结果送回USB主机。

  前一个处理过程完成了MP3数据的回放,后一个处理过程实现了USB移动存储器。这两个过程也是整个软件部分最复杂的。除此之外的部分都是为了实现主要功能设计的,由于篇幅限制,不能对每个模块详细说明。

[center]DIY过程

  如此复杂的一个系统,DIY的过程也是漫长艰难的,从最初到初步完成历时8个月。大致分成几个阶段:资料搜集和器件选型、绘制电路图、制作印刷电路板、焊接和硬件调试、软件编码、外壳包装。

  资料搜集和器件选型

  这项工作我很早就开始了。 小小的MP3播放机汇聚了多项标准协议,包括MP3标准本身,用于存储的FAT文件系统,USB通信协议和微软大容量移动存储标准。互联网真是个好东东,假如没有互联网,这个东西恐怕也不可能造出来。所有的参考资料都来自于网络。

  资料是有了,能否实现关键依赖于能否找到合适的器件。好在一开始就选定了ATMEL公司的MP3单芯片解决方案,这颗IC真是做MP3绝好的选择,它集成了MP3需要的大多数部件。外围芯片也很重要,首先要解决的就是音频DAC,选择的要点是要能与解码器输出的数字音频信号格式匹配,其次要考虑价格,是否能买到等因素。剩下的就是一些普通芯片了,逻辑门、存储器,电源、功放、各种插件等。这可是一个痛苦的过程,在网上找到资料,经研究符合使用条件,于是就到市场上找,买到后回来做实验。很多器件不是很容易就能买到的,买不到就得重新查资料,选新的型号,然后再去市场。辗转很多次,最终定了现在看到的这些东西。


  接下来是绘制电路图。首先要做的是根据各种芯片的数据手册绘制原理图,工具是protel 99se,这是一个广泛使用的电路图CAD软件。

  原理图设计好后是画印刷电路板图(简称PCB)。这种复杂程度的电路图至少要用双面板来设计了,否则走线根本走不通。这个过程需要准确测量元件的外形尺寸,安排他们的位置,叫做元件布局。当然大多数元件都有标准的外形尺寸,我们叫做封装。所有的元件位置放好后就开始布线了(将原理图中标记的需要连通的两个管脚在线路板上用连起来)。虽然PROTEL提供了自动布线的能力,但是机器布线的目标是全部走通,并不考虑美观问题和走线对信号的影响(这点在高速电路中尤其重要,MP3还不算是高速系统)。最终布线的结果就是下面这个样子。


  接下来就是制作印刷电路板,如此密度的线路板已经不可能手工制作了,只能外包加工。电子市场有很多加工线路板的厂家,交给他们做就好了,这个我也不多介绍了。下面的图就是最终做好的线路板,表面一层绿色的是阻焊层,因为多数IC的管脚非常密,如果没有阻焊层焊接的时候很可能造成短路。银白色的叫做焊盘,因为没有被阻焊层覆盖,裸露的铜表面烫了一层焊锡,为了将来焊接更方便。

焊接

  焊接是个很大的挑战,为了小型化和降低布线难度,大部分器件都采用表面焊接技术,表面焊接的器件特点是IC的管脚密度很大,阻容元件体积很小。其中主芯片有84个引脚,分布在芯片四周,两管脚的中心距只有0.65mm,间距更是小到0.35mm。最小的是FLASH存储器的管脚,中心距只有0.5,间距0.3mm。手工焊接这样的器件一般有两种方法,一种就是用普通烙铁焊,焊接短路的地方用吸锡带修整;另一种就是用热风抢吹。我没有热风抢,只能用前一种方法。下面是我的焊接工具。


电路调试

  线路板不能一次把所有的器件焊上,主要是为分部测试考虑,如果一下都焊上,有的器件有问题,影响整个电路工作,就不好找原因了。要先焊主芯片,以及主芯片运行所必需的一些外围器件,完成后可以加点,看看主芯片是否正常运行。正常情况主芯片内部有一个引导程序(相当于PC的BIOS),它运行后连接USB总线能够被PC发现新硬件。

  这些正常后可以继续焊完其他的器件。如下图,就是焊接完成的板子。其它部分的硬件需要程序来测试,比如硬盘的读写,串口通信,液晶显示,键盘处理等。针对每个部件写一段最简单的程序进行测试,证明其能正常工作。

  软件编码

  完成了上面的所有工作,大约值进行了整个工程的30%,软件至少占了50%的工作量。由于要实现文件系统和USB的通讯协议,需要大量复杂的数据结构和运算,为了提高开发效率,完全使用C语言来写程序。软件编码很抽象,不象硬件值做那样直观,也就不过的描述了。这部分工作最终的结果就是赋予MP3播放机以灵魂,使一堆密密麻麻的电路动了起来,能够接受人的控制,显示自己的状态,读取硬盘的数据,最终播放出音乐。


  由于程序都是分模块写的,我没精确统计过程序长度,大概估计有4000行C源代码,编译后有40多KB。也许朋友们会问怎么这么少?这对MCU来说已经很大了,要知道这个芯片只有64K的地址空间,也就是程序最大不能超过64K。


  至此可以说一个完整的MP3播放机已经诞生了,来看看它的完整照片。剩下的就是给他弄个外壳了。

  这个壳子在电子市场随便就可以买到。选了半天就是为了能把上面图中的这些东西都放进去。回到家开始对壳子进行改造,上学的时候我们称这种活为土木工程,需要动用电动工具。把各个定位空都画好后,打空,用锉刀修整。最后打造出面板和背板。


外壳内部也需要改造,做一些支架固定线路板、硬盘、电源、液晶等等。


  这就是最后的整机了。放在桌子上,书架上还是很好。如果你的MM宿舍没有电脑,送给MM放在宿舍也不错,呵呵。

制作后记

  半年多的努力终于有了成果,由于是完全由自己DIY的东西,还有不少技术细节很难在这里完全表达清楚,而且我还要不断完善我的这个作品。马上要做的是给它加上遥控器,随便找一个家电的遥控器就可以控制。

  最后,我要对大家说的是,一些产品并不是我们想像中的那么高深莫测的,只要肯动脑动手去摸索,其实是可以弄明白它的原理及制法的。通过这篇**,我希望能让更多的朋友尝试这个原本让人不敢接触的领地,让朋友们能轻松打造自己的MP3播放机。不过我也知道不少朋友单是通过这篇**恐怕还很难完全掌握所有的细节,真正制作起来可能还存在着这样那样的疑问。



li58EzAwcndro.gif (3.65 KB )

li58EzAwcndro.gif

相关帖子

沙发
xygyszb| | 2015-3-31 09:51 | 只看该作者
楼主的盒子在哪买的?最近一个项目上需要这么大小的盒子。

使用特权

评论回复
板凳
ningling_21| | 2015-3-31 13:30 | 只看该作者
xygyszb 发表于 2015-3-31 09:51
楼主的盒子在哪买的?最近一个项目上需要这么大小的盒子。

涛宝搜索一大把

使用特权

评论回复
地板
xygyszb| | 2015-3-31 13:50 | 只看该作者

是金属的还是塑料的?

使用特权

评论回复
5
ningling_21| | 2015-3-31 15:04 | 只看该作者
xygyszb 发表于 2015-3-31 13:50
是金属的还是塑料的?

塑料的或塑胶的壳体

使用特权

评论回复
6
missnihao| | 2015-3-31 17:25 | 只看该作者
不错的**。

使用特权

评论回复
7
wadjk6yh| | 2015-3-31 17:48 | 只看该作者
实力还不够 惭愧

使用特权

评论回复
8
okyouwin| | 2015-3-31 18:09 | 只看该作者
DIY一个空气净化器吧,这货使用。

使用特权

评论回复
9
壹佰| | 2015-3-31 18:44 | 只看该作者
功能不粗哦

使用特权

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

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2398

主题

6955

帖子

67

粉丝