《MP3的软硬件实现毕业论文.doc》由会员分享,可在线阅读,更多相关《MP3的软硬件实现毕业论文.doc(74页珍藏版)》请在三一办公上搜索。
1、 学科分类号 0712 本科生毕业论文设计题目(中文): MP3的软硬件实现 (英文):Hardware And Software Desiment for MP3学生姓名: 学号: 系别: 物 电 系专业: 电子信息科学与技术指导教师: 起止日期: 2008.11-2009.4 2009年 5 月 1 日怀化学院本科毕业论文(设计)诚信声明本人郑重声明:所呈交的本科毕业论文(设计),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议,除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以
2、明确方式标明。本人完全意识到本声明的法律结果由本人承担。 本科毕业论文(设计)作者签名: 年 月 日目 录摘 要I关键词IAbstractIKey wordsI1 前言12 硬件设计32.1 主要芯片和主要理论介绍32.1.1 芯片总体描述32.1.2 典型应用32.1.3 引脚的描述32.1.4 核心芯片框图72.1.5 寄存器的描述82.1.6 波形分析102.1.7 外围设备112.2 其他外围芯片介绍142.2.1 存储芯片K9F5608142.2.2 CS4330音频DA芯片172.2.3 MAX856芯片提供的电源电路182.3 硬件电路板的设计203 U盘设计233.1 USB通
3、信的基本原理233.1.1 通用串行总线USB233.1.2 信号在USB总线上的传递243.1.3 USB通信的完全实现253.2 USB通信数据流模型263.2.1 总线的构成263.2.2 USB通信流263.2.3 传输类型273.2.4 数据的转换与分装283.3 USB Mass Storage、Bulk-Only与SCSI283.3.1 USB Mass Storage 协议283.3.2 Bulk-Only传输协议和SCSI命令集293.4 Flash存储与文件系统303.4.1 Flash存储器303.4.2 FAT16文件系统323.4.2 硬盘结构323.5 U盘设计流程
4、333.5.1 USB接口333.5.2 固件编程333.5.3 调试343.6 USB设备的C语言设计343.6.1 U盘固件程序结构框架343.6.2 接口芯片初始化编程363.6.3 设备配置阶段程序设计373.6.4 批量传输阶段的程序设计383.6.5 SCSI命令集处理38参考文献40致 谢41附录A 42附录B 67 附录C .69Mp3的软硬件实现摘 要 设计利用的是音乐播放器的专用单片机芯片ATMEL公司AT89S51SND1A芯片作为核心芯片,采用三星公司K9F5608作为存储芯片,CS4330做为数模转换芯片,采用尽可能简单的方式实现MP3播放器的设计,同时侧重了USB通
5、信的一些内容,和软件设计的内容,使得本设计内容丰富了不少。USB产品是现阶段最为流行的接口,已经在多种消费类产品的联机方面取得了垄断性的地位,同时使得各方面得到优化,但是在该毕业设计时,成为最核心的问题,也就是设计的第二个功能:U盘功能。本设计已经通过各方面的测试,同时便于更深入的学习,设计留下了扩展的空间。关键词单片机; U盘; MP3;USB 通讯 Hardware And Software Desiment for Music Player AbstractThis disignment is rely on the core CMOS chip AT89S51SND1A which i
6、s empolder for the music player by ATMEL Corporation.And memory CMOS chip K9F5608 by SAMSUNG.K9F5608 for DAC CMOS chip.Adopt the briefest project to realize the designment. At the same time,emphasize particularly on USB communications and software designment, so as to enrich the entire designment.Th
7、e USB interface is monopolizing the consume electron market,so it is the difficulty and emphases for the designment.At the same time ,its increases the function as U-disk.This designment was tested in kinds of aspects,at the same time ,its leave over some enlarge function for studying.Key wordsSingl
8、echip; U Disc; MP3; USB communication1 前言MP3全称是动态影像专家压缩标准音频层面3(Moving Picture Experts Group Audio Layer III)。是当今较流行的一种数字音频编码和有损压缩格式,它设计用来大幅度地降低音频数据量,而对于大多数用户来说重放的音质与最初的不压缩音频相比没有明显的下降。 MP3格式有如下几个特点:1.MP3是一个数据压缩格式。2.它丢弃掉脉冲编码调制(PCM)音频数据中对人类听觉不重要的数据(类似于JPEG是一个有损图像压缩),从而达到了小得多的文件大小。3.MP3音频可以按照不同的位速进行压缩,提
9、供了在数据大小和声音质量之间进行权衡的一个范围。MP3格式使用了混合的转换机制将时域信号转换成频域信号。4.32波段多相积分滤波器(PQF)。5.36或者12 tap 改良离散余弦滤波器(MDCT);每个子波段大小可以在0.1和2.31之间独立选择。6.MP3不仅有广泛的用户端软件支持,也有很多的硬件支持比如便携式媒体播放器(指MP3播放器)DVD和CD播放器。当代科技日新月异,MP3作为时下最为流行的嵌入式产品在技术上面已经没有多大的上升空间,只有在外形、稳定性、附加功能和质量方面各个厂家有着各自的个性化设计,但是作为USB的一个最为普通的产品,却要经历USB通信的方方面面,同时本毕业设计要
10、求对单片机有着比较全面的了解,对芯片的英文资料阅读能力有着很高的要求,同时,这也是单片机向嵌入式升级的一个很好的锻炼。本次设计的重点在于三个方面:控制器的使用和编程、以存储芯片为主的外围芯片的使用,USB通信的编程,硬件的设计与调试。控制器的使用和编程需要对单片机有着比较好的了解,本控制器嵌入了USB控制芯片,对硬件的设计进行了不少的简化,硬件编程基于C语言,因为本设计采用的是较为基础的设计方案,控制器与外围芯片的连接方面可以参考芯片资料,同时把P1P5引脚扩展出来,可以在以后的设计中方便的对硬件进行升级。外围芯片的使用主要参考其英文资料,使得设计进度上有一定得难度,但是在进行使用的时候,资料
11、里面推荐的典型应用电路图对设计起了不少的参考,使得设计难度大幅度减少。存储芯片在论文中做了比较详细的介绍,是最重要和最难使用的外围器件之一。USB通信是本设计的最难点,其内容包括U盘的设计和各种固件的编写,在设计中占有最大的比重,也是此设计最重要的一环,同时也是后面的调试环节中最重要的一环。在此设计中,参考了大量的有关USB的资料包括USB1.0规范和驱动开发网,以及网友提供了各种解决方案以及疑难点的解答,同时采用时下较为流行的软件对后来的软件调试起了很大的作用。硬件设计过程,是理论加实践的过程,本设计是我进行的最为复杂的设计,在很多的方面欠考虑使得毕业设计PCB生成过程中经过了多次的修改最终
12、定型,同时本设计采用的是ATMEL公司提供的高集成芯片和samsung公司的存储芯片,此两种芯片体积下,加工难度大,使得此设计只能进行双面板的设计,在学校实验室的条件下无法完成,必须送外面进行加工,使得毕业设计的难度相对增加了不少。通过本毕业设计,增加了对英文资料的理解,更加深入的了解了单片机及其应用,同时也是对嵌入式应用的一个过渡,增加了自己不少的信心,难者不会,会者不难,所谓的困难,只是一个过程。同时相信,对学工科的而言,严谨乃成功之母,这也是我最大的收获之一。2 硬件设计2.1 主要芯片和主要理论介绍2.1.1 芯片总体描述AT89X51SND1是一款带有51内核,支配数据流和MP3播放
13、器控制的高集成优越MP3解码芯片。包含64K的flash存储器和支持通过4K嵌入存储器在线编程。为人机交互提供所有的特征:如定时计数,键盘接口,串并接口,模数转换输入,I2S输出,和其他外部存储器接口。2.1.2 典型应用MP3播放器,照相机,手机,个人数据辅助系统汽车多媒体MP3家庭音频/多媒体MP32.1.3 引脚的描述本报告中“#”表示低电平有效,以下不再说明。图2.1 AT89C51SND1A 引脚图表2.1 输入输出口的描述引脚名称类型描述备用功能P0I/O八位双向口,高阻抗输入,为了消除寄生电流,不用的脚接地或接电源。AD7:0P1I/O八位双向口,含内部上拉电阻。KIN3:0,S
14、CL,SDAP2I/O八位双向口,含内部上拉电阻。A15:8P3I/O八位双向口,含内部上拉电阻。RXD,TXD,INT0,INT1,TO,T1,WR#,RD#P4I/O八位双向口,含内部上拉电阻。MISO,MOSI,SCK,SS#P5(P5.0-P5.3)I/O八位双向口,含内部上拉电阻。-表2.2 时钟信号的描述信号名称类型描述备用功能X1I输入到芯片晶振放大放大器。如果使用内部晶振,此脚连接电阻,如果接外部晶振,则从此处输入。X1是内部定时器的时钟源。-X2O输出到芯片晶振放大放大器。如果使用内部晶振,此脚连接电阻,如果接外部晶振,则此脚不连接。-FILTI相同步低通滤波器输入-表2.3
15、 定时器的描述信号名称类型描述备用功能INT0#I外部中断0P3.2INT1#I外部中断1P3.3T0I定时计数器0P3.4T1I定时计数器1P3.5表2.4 音频接口信号描述信号名称类型描述备用功能DCLKODAC数据时钟-DOUTODAC 音频数据-DSELODAC信道选择-SCLKODAC系统时钟-表2.5 USB控制信号描述信号名称类型描述备用功能D+I/OUSB正数据端口。为了全速运行,此脚建议连接一个1.5K的外部上拉电阻。-D-I/OUSB负数据端口。-表2.6 多媒体接口信号描述信号名称类型描述备用功能 MCLKOMMC时钟输出-MCMDI/OMMC命令出入-MDATI/OMM
16、C数据出入-表2.7 通用异步通信信号描述信号名称类型描述备用功能RXDI/O串口接收P3.0TXDO串口发送P3.1表2.8 串行外部接口SPI信号描述信号名称类型描述备用功能SCLI/O双总线时钟P1.6SDAI/O双总线数据P1.7表2.9 A/D转换信号描述信号名称类型描述备用功能 AIN1:0IA/D转换模拟输入-AREFPI模拟参考正电压-AREFNI模拟参考负电压-表2.10 键盘接口信号描述表信号名称类型描述备用功能 KIN3:0I键盘输入行P1.3:0表2.11 ISP接口描述信号名称类型描述备用功能 A15:8I/O高八位外部地址P2.7:0AD7:0I/O低八位/数据P0
17、.7:0ALEO锁存ISP#I/OISP使能输入RD#O读信号P3.7WR#O写信号P3.6表2.12 系统信号描述信号名称类型描述备用功能RSTI复位输入- TST#I测试输入-表2.13 电源信号描述信号名称类型描述备用功能 VDDPWR电路板供电-VSSGND电路板接地-AVDDPWR模拟供电AVSSGND模拟接地PVDDPWRPLL供电-PVSSGNDPLL接地UVDDPWRUSB供电UVSSGNDUSB接地-2.1.4 核心芯片框图图2.2 AT89C51SND1A芯片框图2.1.5 寄存器的描述AT89S51SND1A的寄存器可以分为一下几类,分别加以说明。1)C51的内核寄存器:
18、ACC,B,PSW, PS,DPL,DPH,在这里不做重点介绍。2)系统管理寄存器:PCON,AUXR0(辅助寄存器0),AUXR1(辅助寄存器1),NVERS(译码号)。3)PLL和系统时钟寄存器:CKCON(时钟控制),PLLCON(PLL控制),PLLNDIV(PLL的N分隔),PLLRDIV(PLL的R分隔)。4)中断寄存器:IEN0(中断使能控制0),IEN1(中断使能控制1),IPH0(中断优先级控制0高),IPH1(中断优先级控制1高),IPL0(中断优先级控制0低),IPL0(中断优先级控制0低)。5)端口寄存器:P1, P2, P3, P4, P5。6)FLASH存储器控制寄
19、存器:FCON。7)定时器寄存器:TCON,TMOD,TL0,TH0,TH1,TL1,WDTRET(看门狗定时复位),WDTPRG(看门狗定时器程序)。8)MP3解码寄存器:MP3CON(MP3控制寄存器),MP3STA0(MP3状态寄存器0),MP3TA1(MP3状态寄存器1),MP3DAT(MP3数据寄存器),MP3ANC(MP3辅助数据寄存器),MP3VOL(MP3右音频控制寄存器),MP3VOR(MP3左音频控制寄存器),MP3BAS(MP3低音控制寄存器),MP3MED(MP3中音控制寄存器),MP3BAS(MP3低音控制寄存器),MP3TRE(MP3高音控制寄存器),MP3CLK(
20、MP3时钟分配寄存器)。9)音频接口寄存器:AUDDON0(AUD控制寄存器0), AUDCON1(控制寄存器1), AUDSTA(AUD状态寄存器), AUDDAT(AUD数据寄存器), AUDCLK(AUD时钟分配寄存器)。10)USB控制器寄存器:USBCON(USB全局控制寄存器),USBADDR(USB地址寄存器),USBINT(USB全局中断寄存器),USBIEN(USB全局中断使能寄存器),UEPNUM(USB终端数字控制寄存器),UEPCONX(USB终端X控制寄存器),UEPSTAX(USB终端状态寄存器),UEPRET(USB终端复位寄存器),UEPINT(USB终端中断寄
21、存器),UEPIEN(USB终端中断使能寄存器),UEPDATX(USB终端X数据寄存器),UBYCTX(USB终端X比特计数寄存器),UFNUML(USB结构号码低寄存器),UFNUMH(USB结构号码高寄存器),USBCLK(USB时钟分配寄存器)。11)MMC控制器寄存器:MMCON0(控制器0寄存器),MMCON1(控制器1寄存器),MMCON2(控制器2寄存器),MMSTA(控制和状态寄存器),MMINT(中断寄存器),MMMSK(中断屏蔽寄存器),MMCMD(命令寄存器),MMDAT(数据寄存器),MMCLK(时钟分配寄存器)。12)IDE接口接口寄存器:DAT16H(高定制数据比
22、特寄存器)。13)串行I/O端口寄存器:SCON(串行控制寄存器),SBUF,SADEN(从地址屏蔽寄存器),SADDR(从地址寄存器),BDRCON(比特率控制寄存器),BRL(比特率重载寄存器)。14)SPI控制寄存器:SPCON(控制),SPSTA(状态),SPDAT(数据)。15)I2C控制寄存器:SSCON(异步串行控制),SSSTA(异步串行状态),SSDAT(异步串行数据),SSADR(异步串行地址)。16)键盘接口寄存器:KBCON(键盘控制),KBSTA(键盘状态)。17)A/D控制寄存器:ADCON(ADC控制),ADCLK(ADC时钟),ADDL(高数据位),ADDH(低
23、数据位)。2.1.6 波形分析图2.3 外部八位数据读操作的波形1)外部八位数据读操作说明:当ALE,RD#为高时,表示锁存已开,并且是读数据,此时在P0,P2上面发送要读的地址,当从器件接收到信号时,从器件把数据放到P0口,主器件接收到8位数据。2)外部八位数据写操作波形: 同上,只要把RD#编程WR#就行了,这里不再解释。3)IDE16位数据读写波形:图2.4 外部八位数据写操作波形说明:和8位数据一样,P0和P2同时传送地址和数据。写数据同上。4)SPI通信波形图2.5 SPI通信波形 说明:在主机收到SS#控制的低电平时,随着SCK的进行开始传输数据,MISO表示主机接收数据而丛机发送
24、数据。由图可以看出来,丛机首先传送的是高位的数据,然后是中间六位,最后的是低位数据。而主机也是按照丛机发送的顺序接收。2.1.7 外围设备这里对主要的外围设备做一点介绍,关于详细的硬件和软件,将在相关章节里面对其进行介绍。1)时钟发生器:AT89C51SND1A的内部时钟选中是通过PLL反馈片上晶振来完成的,四种时钟主要是为51内核,MP3解码器,音频接口,和其他外围器件各自的生成。51和外围器件时钟主要来自晶振时钟,MP3解码的时钟是通过PLL输出时钟,音频接口的时钟也由PLL分频获得。2)端口: AT89C51SND1A实现了5个八位I/O(P0-P4)和一个四位I/O。除了实现一般的I/
25、O功能之外,一些端口可以实现对外部存储器的操作和一些外部的备用功能。所有的端口都是双向的,并且每一端口都带有一个锁存器,一个输入缓冲和一个输出驱动。P0和P2的输入缓冲和输出驱动使其能访问外部的存储器。一些P1,P3和P4脚用于普通I/O和一些备用的功能。3)定时计数器:AT89C51SND1A实现了两个16位普通功能的定时计数器。分别定义为定时计数器0和定时计数器1,它们能够单独设置实现定时和计数功能。当使用其定时功能时,可以设定初始值,然后通过产生中断来计时。而计数时通过外部的负脉冲实现,当计数到达设定值后,产生一个中断。4)看门狗电路:AT89C51SND1A实现了一个硬件看门狗电路用于
26、当程序不正确运行或是硬件出了差错时实现芯片的复位。5)MP3解码: AT89C51SND1A实现了MPEG的三个层次编码。通俗说来就是采样的实现和还原,这样通过压缩的音频文件可以通过对高音,中音,低音三种效果的控制,实现不同的音效。6)音频输出接口:AT89C51SND1A实现了以各种各样的格式输出的音频文件,可以方便的实现与市场上的各自播放器连接。7)USB接口:AT89C51SND1A实现了一个全速的USB接口,方便用于以下的用途:第一,通过USB下载MP3编码文件。第二用于在线编程实现固件升级。8)多媒体接口:AT89C51SND1A实现了适应V2.2规范的多媒体接口,它也许了MP3编码
27、文件可以快速的实现FLASH和记忆卡之间的移植,同时可以用于在线编程。9)IDE接口:AT89C51SND1A提供了IDE的接口可以通过其连接其他的外部存储设备,它由16位双向的总线低电平ANSI规范,可以提供大容量的接口,同时可以用来实现在线的编程。10)串行的I/O接口(i2c):AT89C51SND1A实现了一个串行的端口,它可以实现异步的全双工通讯,用于在线编程和通过AT89C51SND1A主器件对其他器件的遥控。11)串行外围接口(SPI):AT89C51SND1A提供了一个主从模式的串行器件接口,它用于对编码文件的访问,对其他器件的遥控和在线编程。12)双线控制:AT89C51SN
28、D1A提供双线的标准主从多主机的访问,可以实现对LCD,DAC等的访问,同时可以进行对其他器件的遥控,同时用于在线编程。13)A/D控制器:提供两通道的10位(实际上是八位)模数转换,用于对电源的监控,声音的录制,和遥控功能。14)键盘接口:AT89C51SND1A提供外部接4*X的矩阵键盘接口。2.2 其他外围芯片介绍2.2.1 存储芯片K9F5608 1)主要描述K9F5608是一片32*8BIT的存储芯片,可以提供1.8V,2.65V,3.3V的电压。它使用与非单元的结构使其在固态大规模存储上实现了一个高性价比的解决方案。在其上面可是很方便的实现程序的运行和在线修改和擦除。I/O端口提供
29、了和其他命令输入类似的数据和地址的输入输出。其引脚外形如下:图2.6 K9F560引脚图 由于芯片为TQFP的封装,在焊接的时候正确的焊接方法决定着硬件电路板的成败,在焊接的时候可以按照如下流程来焊接:1)先在引脚上涂抹助焊剂。2)把引脚和电路板对其,一定要注意方向。3)先焊接四个角落的引脚。4)在焊接的时候要掌握拖动焊锡粒的技巧,使得焊接漂亮和不会短路。2)引脚描述表2.14 K9F5608 引脚描述引脚名称引脚功能I/O7:0使用来输入命令,地址和数据。没有使用到时被拉高。CLE命令锁存器CE#芯片使能RE#读使能ALEADDRESS LATCH ENABLE引脚名称引脚功能WE#写使能W
30、P#用于擦除或者是写的时候有掉电情况的锁存。当外部掉电时,内部电源发生器会产生一个复位,当此脚为低且LOCKPRE为高的时候,存储器处于锁的状态。R/B#用于显示芯片的运行状态,当为低的时候,便是芯片处于忙碌的状态,忙完后返回到高的状态。VccQ提供输出缓冲的电源,在内部连接Vcc。Vcc芯片供电电源。Vss接地。N.C不接。DNU不接。LOCKPRE锁结构或者是读音频使能。3)结构描述:芯片内部方框图如下:由于核心芯片上集成了多媒体的接口,在硬件电路的设计时不要考虑接口芯片的选择与操作,直接连接到核心芯片上对存储芯片进行读写,这也是本设计在选用芯片的时候考虑的最大因素,同时,存储芯片有很多引
31、脚是不用接的,这在设计硬件的时候要引起注意。图2.7 存储芯片框图由上图可以看出,其内部主要由X,Y的缓冲器/锁存器/解码器、命令寄存器、控制逻辑/高电压生成器、256MBIT的与非闪存矩阵、I/O的缓冲或锁存器、全局缓冲器,输出驱动组成。其与外部交流信息可以由下面的波形图看出:图2.8 存储芯片与外部交换数据上图为写数据进去的波形图,由上看出,以80H开始到10H结束。图2.9 读数据的波形图上图为读数据的波形图,由上可以看出,以00H表示读数据的开始,然后加上地址后开始读出数据。其他波形在编写程序的时候再加以说明。下图为传输命令集:图2.10 传输命令集2.2.2 CS4330音频DA芯片
32、音频DA芯片在MP3播放器中承担音频信号的数字/模拟转换功能,其性能直接影响最终的音乐效果和音质。本MP3学习板采用CS4330,该芯片没有配置引脚,无需软件配置。CS4330的内部框图如图9所示。SDATA是位流数据输入,SCLK是位流时钟,LRCK是声道选择时钟,其频率即采样率。MCLK则是DAC电路所需的主时钟。CS4330 支持的数字音频格式如图所示。图2.11 CS4330 的数据格式从图中可以看出,CS4330支持右对齐的18位数据格式,工作于外部SCLK模式。在软件中应该正确配置AT89C51SND1的音频部件,选择这种数据格式保证正确工作。其时序图在软件编程时再进行说明。2.2
33、.3 MAX856芯片提供的电源电路:图2.12 电源电路本设计的外部电源采用220v到4.5v的外部变压器,经过j9后输入电路板,上图即为向电路板提供电源的电路图。这里值得注意的是当插入USB 电缆时,板上电路获得USB5V 电压,该电压经分压后送到MCU,复位时软件查询该引脚电平判断是进入U盘功能还是进入MP3 播放功能。同时只要USB5V存在,该电压经过AS1117-3.3 稳压芯片就可以作为板上电路的电源使用。另外,本设计还具有由MAX856构成的升压电路,支持电压低于3.3V 的电池供电,但AT89C51SND1C和CS4330芯片本身的功耗并不适用于低功耗应用,所以无法苛求使用电池
34、作为电源。所以,板上的电源输入配置有三种插座,一个是小二的插座(2节电池供电、JP1的短路冒打在1处),另一个是DC5V的电源插座(内正外负、JP1的短路冒打在2处);还一种是实验箱供电,用二号导线连接PCB板上VCC和GND到实验箱(JP1的短路冒打在2处)。同时,从这两个电源插座输入的电压如果大于4.5V 的时候,通过跳线JP1 选择到相应位置(PCB 丝印中有JP1 跳线的说明),就可不经过升压电路,而直接送入AS1117 降压到3.3V 使用。但如果JP1 跳线选择升压电路时,由于升压电路当输入电压大于3.3V 后其输出不再受控制(将随输入电压而增加),所以此时输入电压严禁超过3.3V
35、,否则会烧毁其他负载芯片。电路中加入若干低压降二极管1N5817 来分别防止USB5V 和外接电源VCC5V、升压器输出的3.3V 和AS1117 稳压器输出的3.3V 之间的冲突。MAX856 升压电源输入端对地的100K 电阻用来保证在没有外接电源的时候,升压芯片处于关断状态。 2.3 硬件电路板的设计AT89C51SND1单片机各引脚在本学习板的具体定义和功能划分见图11。RESET 引脚在单片机内部有下拉电阻,所以只需一个上拉电容即可完成上电复位。ISP按键主要是用于下载时候进行芯片的准备工作。AT89C51SND1的引脚使用情况分类说明如下:图2.13 AT89C51SND1 电路原
36、理图1)键盘中断输入引脚KIN0KIN3,和P1.0P1.3 复用。外接4个键盘作为MP3控制2)时钟电路FILT、OSCX1 和OSCX2。时钟电路见图13。接在FILT引脚的阻容网络是单片机内部PLL锁相环的滤波电路,以给USB和MP3部件提供更高的频率。OSCX1和OSC2外接晶体振荡器,为系统提供基本的20M时钟。图2.14 键盘电路 图15 时钟电路3)USB接口USBD+和USBD-。这两个引脚就是单片机内部USB部件的差分信号输入输出引脚,通过图14所示的电路接到USB Device插口上。USB_INS定义的是IO端口P3.4,用来检测USB电缆上的5V电压,判断是否插入USB
37、电缆,以决定是U 盘功能还是MP3功能,如图14所示。4)FLASH 芯片接口引脚:FALE(P5.2)、nFCE(P5.3)、FCLE(P5.1)、FR/nB(P5.0)。图2.16 USB 电路 图2.17 NAND Flash 芯片电路5)音频输出信号MCLK、LRCLK、SCLK、SDATA 等。这些信号将数字音频信息送到立体声音频DA芯片CS4330中,再通过TDA2822放大后推动耳机。图2.18 音频DA 及功放电路6)电源电路,包括升压芯片MAX856和降压芯片AS1117。电源电路如图所示。 图2.19 AS1117 电源电路USB 的5V 电压经过AS1117-3.3 稳压
38、芯片就可以作为板上电路的电源使用。另外,电路板还具有由MAX856构成的升压电路,支持电压低于3.3V的电池供电,但AT89C51SND1C和CS4330芯片本身的功耗并不适用于低功耗应用,所以无法苛求使用电池作为电源。所以,板上的电源输入配置有三种插座。同时,从这三个电源插座输入的电压如果大于4.5V的时候,通过跳线JP1选择到相应位置(PCB 丝印中有JP1 跳线打到2位置),就可不经过升压电路,而直接送入AS1117降压到3.3V使用。但如果JP1 跳线选择升压电路时(PCB 丝印中有JP1 跳线打到1位置),由于升压电路当输入电压大于3.3V 后其输出不再受控制(将随输入电压而增加),
39、所以此时输入电压严禁超过3.3V,否则会烧毁其他负载芯片。电路中加入若干低压降二极管1N5817来分别防止USB5V和外接电源VCC5V、升压器输出的3.3V和AS1117稳压器输出的3.3V 之间的冲突。MAX856升压电源输入端对地的100K电阻用来保证在没有外接电源的时候,升压芯片处于关断状态。PCB见附录C。 3 U盘设计 3.1 USB通信的基本原理3.1.1 通用串行总线USBUniversal Serial Bus,它和RS232不同,USB接口是一个总线接口,可以连接多达128个设备。在其总线构架中,有主机,设备,集线器三个成员。如下图,USB Root Hub是跟集线器,我们
40、看到的是其下行界面:图3.1 根集线器示意图这里有一点值得注意的是,USB通信建立的是主从模式,任何设备到设备的尝试都是不可能成功的,主机才是发起端。USB根集线器通过PCI和计算机系统相连,然后才是连接集线器,再可以接设备。3.1.2 信号在USB总线上的传递USB主机USB设备应用客户软件逻辑设备系统软件总线接口控制器功能层设备层总线接口层 图3.2 信号传递方框图RS232接口通信基本上都是在物理层完成的,但是USB却有以上三层,数据总是沿着黑色箭头传输,且在物理层也是通过串行传输。V+ D+ D-GND 图3.3 USB数据线示意图但是也有不同,首先是数据线的数量,RS232是两根,但
41、是USB却有四根:电源,地,D+,D-。在这里,我们知道,USB通信是一种高速度的传输方式,并且是一种串行传输给计算机和设备进行处理的,所以首先我们需要一个串行并行相互转换的部件,这个部件叫做SIE,同时,为了实现高速,不能使用传统的通信方式,因为频率过高会影响其正常接收,这样,我们使用了差模输出驱动器和差模输入接收器来实现。差模信号传输时不再使用高低电平,而是用J和K数据状态来表示,其中J和K的状态由低速和全速,D+和D-与VSE(最小值)和VSE(最大值)共同决定。这样可以判断出200mv的电压差异,提高了灵敏度,为高速传输奠定了基础。3.1.3 USB通信的完全实现端点 USB逻辑 设备
42、SIE主机控制器SIE USB总线 界面 接口的集合 非USB 格式 帧格式数据管理设备管理一个接口主机 物理设备界面 Z 帧格式 图3.4 通信的完全实现框架图首先必须确定的是信号只能通过黑线传输,数据先分组,然后组合为帧,然后串行化,在通过SIE传递,设备解析帧,还原成并行数据,客户软件通过调用USB驱动程序来完成,USB逻辑层和总线接口层这两个软件和硬件一起协调完成工作。在以后的内容中,本设计忽略接口层,直接认为数据是通过逻辑层的通信。在这里,我们可以放开总线接口层的原因在于,主控制器接口芯片和设备接口芯片已经实现了其总线接口层的复杂工作,我们可以把时间放在软件的设计上。3.2 USB通信数据流模型3.2.1 总线的构成USB主机的逻辑结构可以通过上图看出,分为主机控制器,USB系统软件集,客户软件构成,它主要是分配设备使用权,对设备插入和拆除进行管理等。设备分为总线接口,垃圾设备,和应用层,可以通过描述符来确认其身份,方便主机辨认。总线的物理拓扑结构为主机通过嵌入根HUB,连接HUB,然后连接设备,逻辑拓扑结果为主机连接包括HUB在内的所有逻辑设备。3.2.2 USB通信流 主机上的软件通过通信流与逻辑设备进行通信,逻辑设备是由一个或者多个接口构成,接口由端点组成,连接客户软件与逻辑设备端点的叫做管道,管道里面流动的就是通信