摘要:介绍Atmel公司生产的ATmega128L单片机的特点;提出一种以硬盘为存储介质的MP3播放机的设计方案;给出硬件设计结构和软件设计思路。 关键词:ATmega128L MP3播放机 解码器LCD 引言 以Flash为存储介质的MP34播放器,由于其体积小、携带方便、价位合理及其时尚的外围观设计,受到很多人的青睐。但Flash的价位由于受其制造工艺的制约一直居高不下,从而使MP3播放器的容量仅限于32M、64M、128M等几个档次。本文旨在提出一种以笔记本硬盘为存储介质的MP3播放机的设计方案。该款播放机既具有移动硬盘的功能,又可作为MP3播放机使用。 1 系统结构 在该系统的设计中,采用Atmel公司生产的ATmega128L作为主控MCU。整个系统的结构框图如1所示。PC机通过USB接口实现对硬盘的管理和对MP3歌曲、文档等数据信息的存储。系统启动后,首先将硬盘上的一部分MP3歌曲送入Flash中存储,由MCU控制将储存于Flash中歌曲的码流信息送入MP3解码芯片中解码,并产生解码输出。在系统的DAC模块把解码输出转换为模拟音频声音后,经一级音频放大并驱动耳机,实现MP3歌曲的播放功能。在按键的控制下,通过LCD中菜单选项的选择,实现对歌曲播放模式、声音音效、液晶对比度的调度以及歌曲选择等功能;在播放的同时,LCD上显示的信息除滚动的歌曲名称、演唱者、码流率等ID3信息外,还包括系统供电电池的电量及歌曲播放模式等图标。 系统包括主控MCU、硬盘、Flash缓存、按键、LCD、解码器和D/A转换器等几部分。 2 ATmega128L的主要特点 ATmega128L内核为AVR,具有以下特点: *先进的RISC架构,内部具有133条功能强大的指令系统,而且大部分指令是单周期;32个8位通用工作寄存器+外围接口控制寄存器。 *内部有128KB在线可重复编程Flash、4KBEEPROM和4KB SRAM。 *有53个I/O引脚,每个I/O口分别对应输入、输出、功能选择、中断等多个寄存器,使功能口和I/O口可以复用,大大增强了端口功能和灵活性,提高了对外围的开发能力。 *内部有2个8位定时器/计数器和2个具有比较/捕捉寄存器的16位定时器/计数器;1个具有独立振荡器的实时计数器;1个可编程看门狗定时器;2通道8位PWM通道;8路10位A/D转换器;双向I2C串行总线接口;主/从SPI串行接口;可编程串行通信接口;片内精确的模拟比较器等。 *功耗低。CPU可工作在IDLE、POWERSAVE、POWERDOWN、STANDYBY等几种省电模式下;可软件编程选择时钟频率。ATmega128L的软件结构也是针对低功耗而设计的,具有内外多种中断模式。丰富的中断能力减少了系统设计中查询的需要,可以方便地设计出中断程序结构的控制程序、上电复位和可编程的低电压检测。 *带JTAG接口。通过该口利用JTAG仿真器,可以很方便地实现程序的在线调试和仿真,编译调试正确的代码,通过JTAG口直接写入ATmega128的Flash代码区中。另外,支持Bootloader功能,即MCU上电后,首先通过驻留在Flash中的BootLoader程序,将存储在外部媒介中的应用程序搬移到ATmega128L的Flash代码区。搬移成功后自动去执行代码,完成自启动。这对于产品化后程序的升级和维护提供了极大的方便。 *电源电压为2.7~5.5V 3 系统硬件设计中的各个接口模块 3.1 MCU与硬盘的接口设计 系统设计中选择2.5英寸的笔记本硬盘作为存储介质。笔记本硬盘接口是标准并行IDE接口。MCU与硬盘的接口电路如图2所示。ATmega128L的PA、PC口与硬盘的16根数据线相连。IDE接口是基于寄存器结构的,所有对硬盘的控制操作均通过对相应寄存器操作来实现。IDE接口的硬盘驱动器有16个寄存器,分为2段,每段有8个寄存器,两段寄存器的选择由CS0、CS1来确定,通过DA0、DA1、DA2来选通每个段的8个寄存器。寄存器如表1所列。IDE接口有两种传输模式:PIO模式和DMA模式。在本系统的设计中,采用PIO传输模式。PIO传输模式由处理器负责信息的传输,硬盘以扇区为单位与处理器进行数据交换;在进行扇区读写时,一次通过端口的数据为16位。8G以上的硬盘支持CHS、LBA两种寻址方式,寻址方式的选择通过驱动器/磁头寄存器的第6位控制。通过LBA寻址方可以实现对硬盘的每一个物理地址的访问。 表1 DA0 DA1 DA2 扇区读操作 扇区写操作 位 数 0 0 0 数据寄存器 数据寄存器 16 0 0 1 出错状态寄存器 写预补偿寄存器 8 0 1 0 扇计数器 扇区计数器 8 0 1 1 扇区号寄存器或LBA的A7~A0 扇区号寄存器或LBA的AD7~AD0 8 1 0 0 柱面号寄存器(高字节)或LBA的A15~A8 柱面号寄存器(高字节)或LBA的A15~A8 8 1 0 1 柱面号寄存器(高字节)或LBA的A23~A16 柱面号寄存器(高字节)或LBA的A23~A16 8 1 1 0 驱动器或磁头寄存器 驱动器或磁头寄存器 8 1 1 1 (LBA的A27~A24)状态寄存器 (LBA的A27~A24)命令寄存器 8 3.2 Flash接口 作为便携式产品的设计,功耗问题是一个要重点解决的问题。作业存储介质的硬盘,其工作电压为5V,最大功耗可达20W,硬盘工作时间的长短对系统功耗将产生直接的影响。由于硬盘提供了STANDBY、IDLE、SLEEP等几种低功耗运行模式,因此在系统设计过程中,考虑使用一片Flash存储器作业缓存,即首先将存储硬盘中的一部分音频压缩文件送入Flash中存储(文件数目由Flash的容量决定),然后控制硬盘进入SLEEP低功耗模式。存储在Flash中的数据进入解码芯片中进行解码。待Flash中所有音频文件播放完,则唤醒硬盘重新进入正常的工作模式,启动下一次的数据缓存任务。 图3 解码+D/A接口 系统中采用Sumsung公司生产的KM29U128T Flash存储器作为缓存。KM29U128T是16M×8位NAND Flash存储器。该芯片支持块擦除、页读、页写的功能。它的寻址采用串行方式,即8根数据线既作地址线也作数据线。先输入地址,再传送数据。控制地址、命令锁存口和读写允许口实现对Flash的读写。 3.3 解码和D/A接口 压缩音频数据的解码和D/A转换采用Micronas Intermetall公司专为个人音频播放器设计的MAS3507D和DAC3550A芯片组。MAS3507D是单芯片解码器,数据的处理由内部嵌入的RISC DSP核来完成。单芯片上嵌入的还有电源管理器、程序存储器、时钟管理器、音频基带处理器以及I2S、I2C、PIO多种接口。采用集成I2S的音频输出方式,可方便地与DAC3550A连接。在芯片内集成了数字、音量、立体声、声道混合、低音、高音控制等功能。DAC3550A是与MAS3507D匹配的高质量的音频DAC,内部集成了耳机放大器;内置时钟振荡器并由CLKOUT端提供给MAS3507D;具有I2S总线音频输入和I2C控制总线;具有低功耗模式。它把MP3播放机中D/A转换和音频放大两部分集成在一起,非常适合于便携式MP3播放机的开发。 [1] [2] 下一页 |