📄 21ic 基于atmega128l的大容量mp3播放机.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0063)http://www.21ic.com/new_info/news/files/news/2004325232410.html -->
<HTML><HEAD><TITLE>21IC: 基于ATmega128L的大容量MP3播放机</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>TD {
FONT-SIZE: 12px
}
INPUT {
FONT-SIZE: 12px; font-fammily: verdana,宋体
}
A:link {
FONT-SIZE: 12px; COLOR: #0000ff; LINE-HEIGHT: 16px; TEXT-DECORATION: underline
}
A:visited {
FONT-SIZE: 12px; COLOR: #660066; LINE-HEIGHT: 16px; TEXT-DECORATION: underline
}
A:hover {
FONT-SIZE: 12px; COLOR: #ff0000; TEXT-DECORATION: underline
}
.unnamed1 {
FONT-SIZE: 12px; FONT-FAMILY: "Arial", "Helvetica", "sans-serif"
}
.white {
FONT-SIZE: 12px; COLOR: #ffffff; LINE-HEIGHT: 16px
}
.b:link {
FONT-SIZE: 12px; COLOR: #3366cc; LINE-HEIGHT: 18px; TEXT-DECORATION: underline
}
.b:visited {
FONT-SIZE: 12px; COLOR: #813f1b; LINE-HEIGHT: 18px; TEXT-DECORATION: none
}
.b:hover {
FONT-SIZE: 12px; COLOR: #ffa037; LINE-HEIGHT: 18px; TEXT-DECORATION: underline
}
.148xg {
FONT-SIZE: 14px; COLOR: #0000ff; LINE-HEIGHT: 14pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: underline
}
.128dt {
FONT-SIZE: 14px; COLOR: #9999cc; LINE-HEIGHT: 14pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.heigh150 {
LINE-HEIGHT: 150%
}
</STYLE>
<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY text=#000000 bgColor=#ffffff leftMargin=0 topMargin=5>
<TABLE cellSpacing=0 cellPadding=0 width=768 align=center border=0>
<TBODY>
<TR>
<TD align=middle width=168 height=80><IMG
src="21IC 基于ATmega128L的大容量MP3播放机.files/21ic.gif"></TD>
<TD width=472>
<SCRIPT language=javascript
src="21IC 基于ATmega128L的大容量MP3播放机.files/ads.htm"></SCRIPT>
</TD>
<TD height=80>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD class=b12 align=middle height=30><FONT
face="Arial, Helvetica, sans-serif" color=#000000>
<SCRIPT language=JavaScript
src="21IC 基于ATmega128L的大容量MP3播放机.files/date.js"></SCRIPT>
</FONT></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=1 width=768 align=center border=0>
<TBODY>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=3 width=766 align=left border=0>
<TBODY>
<TR bgColor=#d8d6ba>
<TD width=3 height=20></TD>
<DIV id=Position></DIV>
<TD width=378>
<FORM name=email
action=http://www.21icsearch.com/buzi/mail2/chkemail.asp method=post
target=_blank><B>电子工程周刊:</B> <INPUT class=main
style="BORDER-RIGHT: #0097cf 1px solid; BORDER-TOP: #0097cf 1px solid; BORDER-LEFT: #0097cf 1px solid; BORDER-BOTTOM: #0097cf 1px solid; BACKGROUND-COLOR: #ffffff"
maxLength=255 size=30 value=输入您的Email name=email> <INPUT class=jbutton type=submit value=订阅> </TD></FORM>
<DIV></DIV>
<DIV id=Time></DIV>
<DIV id=Image></DIV>
<DIV id=Title></DIV>
<TD width=418>
<MARQUEE onmouseover=this.scrollDelay=99000
onmouseout=this.scrollDelay=80 scrollAmount=2 scrollDelay=80
width="80%"><FONT color=#cc0000><IMG height=12
src="21IC 基于ATmega128L的大容量MP3播放机.files/xilan_arrow.gif"
width=16>每周自动接收行业新闻,技术资料,设计文章</FONT></MARQUEE></TD>
<DIV></DIV>
<TD width=9></TD></TR></TBODY></TABLE>
<DIV></DIV>
<DIV id=Time></DIV>
<DIV id=Image></DIV>
<DIV id=Title><TD< td></DIV></TD></TR></TBODY></TABLE></TD></TR></TABLE><BR>
<TABLE cellSpacing=0 cellPadding=0 width=768 align=center border=0>
<TBODY>
<TR>
<TD vAlign=top width=617 height=2>
<TABLE cellSpacing=0 cellPadding=0 width=583 align=center border=0>
<TBODY>
<TR>
<TD align=middle height=31><FONT size=4><B>基于ATmega128L的大容量MP3播放机
</B></FONT></TD></TR>
<TR>
<TD align=middle height=15>文章作者:中国矿业大学 孙素丽 薄 勇 杨公训<BR>文章类型:设计应用
文章加入时间:2004年3月25日23:24</TD></TR>
<TR>
<TD align=right><FONT color=#cc0000>文章出处:单片机及嵌入式系统应用</FONT> </TD></TR>
<TR>
<TD height=15>
<HR width="100%" noShade SIZE=1>
</TD></TR>
<TR>
<TD height=15>
<TABLE cellSpacing=0 cellPadding=0 align=center border=0>
<TBODY>
<TR>
<TD></TD></TR></TBODY></TABLE><BR></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=530 align=center border=0>
<TBODY>
<TR>
<TD class=heigh150 height=15>
<DIV id=Content>
<P class=MsoNormal><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
<B>摘要:</B></SPAN>介绍Atmel公司生产的ATmega128L单片机的特点;提出一种以硬盘为存储介质的MP3播放机的设计方案;给出硬件设计结构和软件设计思路。</P>
<P class=MsoNormal><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
<B>关键词:</B></SPAN>ATmega128L MP3播放机 解码器LCD</P>
<P style="TEXT-INDENT: 0px"><B>引言</B></P>
<P
style="TEXT-INDENT: 30px">以Flash为存储介质的MP34播放器,由于其体积小、携带方便、价位合理及其时尚的外围观设计,受到很多人的青睐。但Flash的价位由于受其制造工艺的制约一直居高不下,从而使MP3播放器的容量仅限于32M、64M、128M等几个档次。本文旨在提出一种以笔记本硬盘为存储介质的MP3播放机的设计方案。该款播放机既具有移动硬盘的功能,又可作为MP3播放机使用。<B><BR><IMG
height=202 hspace=10 src="21IC 基于ATmega128L的大容量MP3播放机.files/19a.gif"
width=549 vspace=10 border=0><BR>1 系统结构</B></P>
<P
style="TEXT-INDENT: 30px">在该系统的设计中,采用Atmel公司生产的ATmega128L作为主控MCU。整个系统的结构框图如1所示。PC机通过USB接口实现对硬盘的管理和对MP3歌曲、文档等数据信息的存储。系统启动后,首先将硬盘上的一部分MP3歌曲送入Flash中存储,由MCU控制将储存于Flash中歌曲的码流信息送入MP3解码芯片中解码,并产生解码输出。在系统的DAC模块把解码输出转换为模拟音频声音后,经一级音频放大并驱动耳机,实现MP3歌曲的播放功能。在按键的控制下,通过LCD中菜单选项的选择,实现对歌曲播放模式、声音音效、液晶对比度的调度以及歌曲选择等功能;在播放的同时,LCD上显示的信息除滚动的歌曲名称、演唱者、码流率等ID3信息外,还包括系统供电电池的电量及歌曲播放模式等图标。</P>
<P
style="TEXT-INDENT: 30px">系统包括主控MCU、硬盘、Flash缓存、按键、LCD、解码器和D/A转换器等几部分。</P>
<P style="TEXT-INDENT: 0px"><B>2 ATmega128L的主要特点</B></P>
<P style="TEXT-INDENT: 30px">ATmega128L内核为AVR,具有以下特点:</P>
<P
style="TEXT-INDENT: 30px">*先进的RISC架构,内部具有133条功能强大的指令系统,而且大部分指令是单周期;32个8位通用工作寄存器+外围接口控制寄存器。</P>
<P style="TEXT-INDENT: 30px">*内部有128KB在线可重复编程Flash、4KBEEPROM和4KB
SRAM。</P>
<P
style="TEXT-INDENT: 30px">*有53个I/O引脚,每个I/O口分别对应输入、输出、功能选择、中断等多个寄存器,使功能口和I/O口可以复用,大大增强了端口功能和灵活性,提高了对外围的开发能力。</P>
<P
style="TEXT-INDENT: 30px">*内部有2个8位定时器/计数器和2个具有比较/捕捉寄存器的16位定时器/计数器;1个具有独立振荡器的实时计数器;1个可编程看门狗定时器;2通道8位PWM通道;8路10位A/D转换器;双向I2C串行总线接口;主/从SPI串行接口;可编程串行通信接口;片内精确的模拟比较器等。<BR><IMG
height=296 hspace=40 src="21IC 基于ATmega128L的大容量MP3播放机.files/19b.gif"
width=443 vspace=10 border=0><BR><FONT size=3>
</FONT><SPAN
class=main1>*功耗低。CPU可工作在IDLE、POWERSAVE、POWERDOWN、STANDYBY等几种省电模式下;可软件编程选择时钟频率。ATmega128L的软件结构也是针对低功耗而设计的,具有内外多种中断模式。丰富的中断能力减少了系统设计中查询的需要,可以方便地设计出中断程序结构的控制程序、上电复位和可编程的低电压检测。</P>
<P
style="TEXT-INDENT: 30px">*带JTAG接口。通过该口利用JTAG仿真器,可以很方便地实现程序的在线调试和仿真,编译调试正确的代码,通过JTAG口直接写入ATmega128的Flash代码区中。另外,支持Bootloader功能,即MCU上电后,首先通过驻留在Flash中的BootLoader程序,将存储在外部媒介中的应用程序搬移到ATmega128L的Flash代码区。搬移成功后自动去执行代码,完成自启动。这对于产品化后程序的升级和维护提供了极大的方便。</P>
<P style="TEXT-INDENT: 30px">*电源电压为2.7~5.5V</P>
<P style="TEXT-INDENT: 0px"><B>3 系统硬件设计中的各个接口模块</B></P>
<P style="TEXT-INDENT: 30px">3.1 MCU与硬盘的接口设计</P>
<P
style="TEXT-INDENT: 30px">系统设计中选择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寻址方可以实现对硬盘的每一个物理地址的访问。<BR><BR><B>表1 </B></P>
<TABLE height=181 borderColorDark=#ffffff width="100%"
borderColorLight=#000000 border=1>
<TBODY>
<TR class=main>
<TD align=middle width="7%" height=12>DA0</TD>
<TD align=middle width="6%" height=12>DA1</TD>
<TD align=middle width="7%" height=12>DA2</TD>
<TD align=middle width="41%" height=12>扇区读操作</TD>
<TD align=middle width="32%" height=12>扇区写操作</TD>
<TD align=middle width="7%" height=12>位 数</TD></TR>
<TR class=main>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -