基于单片机的U接口设计.docx
《基于单片机的U接口设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的U接口设计.docx(34页珍藏版)》请在冰豆网上搜索。
基于单片机的U接口设计
摘要
通用串行总线USB是PC体系中的一套全新的工业标准,它支持单个主机与多个外设同时进行数据交换。
论文首先简要介绍USB的体系结构和特点,包括总线优势、协议简介、传输方式等。
这部分内容会使用户对USB有一个整体的初步了解。
接下来论文会着重介绍一个USB项目的设计过程和技术细节,即MP3的硬件设计。
其内容主要包括:
采用AT89C51SND1C提供USB控制和MPEG2解码器、存储部分用16M的存储器(K9F2808U0A)存放MP3播放文件;音频转换部分是将数据流转化成声音信号并输出音频信号;前置放大部分是将MIC的信号放大,并将其转换成数字信号(A/D转换);设计采用通过USB接口进行串口通讯;采用122×32的LCD液晶显示屏显示;论文第三章除了详细介绍MP3硬件设计外,还简要设计了相关接口程序和寄存器的技术细节,包括USB的文件存储格式、接口程序以及寄存器的配置等。
最后论文对我们初学者具有一定的参考价值,可以尽快掌握USB设备的特点,以及硬件电路设计的注意事项。
关键字:
微控制器通用串行总线接口驱动程序MP3
Basedon51monolithicintegratedcircuitsUSBsystemdesigns
Student:
HuLiTeacher:
JiangCun-bo
Abstract:
TheUniversalSerialBusUSBisspecifiedtobeanindustrystandardextensiontothePCarchitecture.USBisaserialcablebusthatsupportsdataexchangebetweenahostcomputerandawiderangeofsimultaneouslyaccessibleperipherals.
First,thethesisdescribesthearchitectureandfeaturesofUSB,includingthebusattributes,theprotocoldefinition,andsoon.IttriestogivedevelopersandusersasnapshotofUSB.
Afterthat,thethesiswilltalkabouthowtodeveloptheUSBsystem,including:
devicehardwarethenthethesisdescribesonedevelopmentandtechniquedetailsofoneUSBproject:
thedevelopmentofMP3.Iwillgiveyouthedetailsofthehardwareanditincluding:
makeuseofAT89C51SND1CwhichprovidestheUSBcontrolandtheMPEG2decoding,thememorypartially(K9F2808U0A)depositstheMP3documentwiththe16Mmemory;Theaudiofrequencytransformationpartispaststhedataturnsintothesoundsignalandtheoutputaudiofrequencysignal;Thepre-amplificationpartismakingtheMICsignalenlargement,andtransformsitthedigitalsignal(theA/Dtransformation);ThedesignusesthroughtheUSBconnectioncarriesontheserialcommunication;Usingthe122×32LCDliquidcrystaldisplaymonitordemonstration;thethirdchapterofthepaperbesidesindetailintroducestheMP3hardwaredesign,butalsobrieflyhasdesignedthecorrelationinterfaceroutineandtheregistertechnicaldetail,includingUSBdocumentmemoryform,interfaceroutineaswellasregisterdispositionandsoon
FinallythethesisisveryusefultoUSBdevicebeginners.Thesecanhelpthemrapidlygraspthemainfeathersandimportantplaceinhardwaredesign.
Keywords:
microcontrollerUSBinterfacedriverMP3
目次
1引言
1.1USB技术
为了满足用户追求高速度和高通用性的需求,以Intel公司为首于1994年推出了USB(UniversalSerialBus,通用串行总线)协议的第一个草案,用于低、中速的计算机外设。
USB可把多达127个外设同时连到用户的系统上,所有的外设通过协议来共享USB的带宽,其12Mbps的带宽对于键盘,鼠标等低中速外设是完全足够的。
在USB2.0中,USB支持的带宽已提升到480Mbps。
USB允许外设在主机和其它外设工作时进行连接、配置、使用及移除,即所谓的即插即用。
同时USB总线的应用可以清除PC上过多的I/O端口而以一个串行通道取代,使PC与外设之间的连接更容易。
现在USB不仅是微机主板上的标准端口,而且还成为了所有微机外设(包括键盘、鼠标、显示器、打印机等)与主机相连的标准协议之一。
其主要的优点是速度高、功耗低、支持即插即用和维护方便[1]。
1.2设计概述
(1)题目:
基于51单片机的USB系统硬件设计
(2)设计内容要求:
该设计包括USB系统的软件和硬件设计及通讯协议的分析。
我负责的是硬件设计部分。
设计一个带USB接口的MP3,该MP3除能播放音频文件外,还具有录音、液晶显示等功能。
硬件设计包括MP3的电路设计、显示和按键接口驱动程序以及文件的存储格式等。
2USB协议简介
2.1USB技术背景
传统的计算机外部设备一般使用并口或串口与计算机相连。
这两种端口已使用多年,物理层的协议也已经相当成熟。
但仍然无法满足目前计算机设备不断提高的速度和使用要求。
但USB具有速度高、成本低、功耗低、支持即插即用和使用维护方便等优点。
在协议成熟以后,迅速地占领了计算机低、中速外部设备的市场,大有取而代之之势[2]。
2.2USB总线优势
USB总线的主要优势体现在以下几个方面:
速度、总线拓扑体系、即插即用、低功耗、标准接口和外设。
论文将从这五个方面简要介绍USB协议内容和特点:
1)USB的速度
在USB1.1规范版本中,USB支持两种总线数据传输率:
一种是在全速模式下的12Mbps,另一种是低速模式下的1.5Mbps。
引入低速模式主要是为了降低对速度要求不高的设备的成本,比如鼠标、键盘等。
在USB2.0版本中,USB支持了一种新的总线数据传输率;在高速模式下的480Mbps。
这个速度较全速和低速设备而言是一个飞跃。
2)USB的总线拓扑体系
整个USB总线拓扑体系由三个元素组成:
主机、集线器和设备。
在目前的PC应用中,PC就是主机和根集线器,用户可以将外设或附加的与之相连,这些附加的Hub可以连接其他的外设以及下层Hub。
在USB1.1规范版本中,USB在一个拓扑网络中支持最多4个Hub层以及127个外设[4]。
3)USB的即插即用
USB采用四线电缆来传输信号与电源。
USB的结构使USB设备在插上时,首先接触的是信号线,然后才是电源线;而在向外拔时,由于电源线较短,所以首先被切断,而后才是数据线。
这对整个系统及USB设备都没有影响,所以可以热插拔。
即插即用这一特点在使用上极其方便,这是USB最吸引用户的地方。
4)USB的低功耗
USB协议规定:
如果总线供电设备在3ms内没有进行总线操作,则设备自动进入挂起状态。
而挂起的设备从总线上吸收的电流必须小于500μA。
实际上协议规定的500μA,包括了主机端15KΩ的电缆终端匹配电阻的电流(通常为220μA),所以对于使用总线电源的设备而言,进入挂起状态通常便意味着设备的总电流功耗不会超过280μA,这个功耗值是很低的。
5)USB的标准接口和外设
USB协议体系中的外设都是非常标准的,从底层的物理和电气特性,到上层的软件协议、数据通讯,都有明确的定义。
USB将设备和主机都看作不同的对象,而这些对象又是由不同的模块和子模块组成的。
就这样USB根据设备和主机各部分的功能和实现的不同,将整个USB系统划分成了很多的层次和模块[2]。
2.3本章小结
本章简单介绍了USB的基本结构和原理,初步了解了USB接口。
要深入学习还必须仔细阅读USB规范。
这一规范从总体上描述了USB的结构和原理,而对于每一类USB设备(包括HID设备音频设备等等),还相应制定了描述这类设备的USB规范。
3USB设备(MP3)的硬件设计
3.1设计具体要求
(1)、系统具有USB接口。
(2)、存储容量为128M字节。
(3)、音频D/A转换,输出音频模拟信号并可播放音频文件。
(4)、可显示文字、数字、简单图形等。
(5)、四个按键分别控制播放、停止、前进和后退。
(6)、具有录音功能。
3.2设计原理
USB的工作原理:
一根USB线由两条是数据线和两条电源线组成。
向里看时,它们其中外侧的两条比较长,那是数据线;而里面两条相对短一些的为电源线。
当把USB设备插上主机时,首先接触的是信号线,然后才是电源线。
而向外拔时,则由于电源线较短,所以首先被切断,而后才是数据线。
这样操作对整个系统及USB设备都没有影响,所以可以热插拔。
一般的USB接口提供四个引脚与CPU相连接[3],其内部结构如图3-2所示:
MP3的工作原理:
该MP3首先将MP3歌曲文件通过USB接口从内存中取出并读取存储器上的信号→到解码芯片对信号进行解码→通过数模转换器将解出来的数字信号转换成模拟信号→再把转换后的模拟音频放大→经低通滤波后到耳机输出口,输出后就是可以听到音乐。
3.3硬件电路设计
系统设计框图如图3-2:
系统设计方案:
系统硬件的核心是微控制器AT89C51SND1C,整个系统是由AT89C51SND1C、K9F2808U0C(FLASH芯片)和音频转换(D/A)部分、USB串行通讯接口、外部控制、电源部分和前置放大部分组成。
主控部分:
因为AT89C51SND1C提供USB控制和集成MPEG2解码器,故选用它作为系统控制核心;
存储部分:
作为MP3播放文件的存储器(K9F2808U0A);
音频转换部分:
将数据流转化成声音信号(UDA1330BTS);
前置放大部分:
将MIC的信号放大,并将其转化成数字信号(A/D转换);
通讯系统:
通过USB接口进行串口通讯;
显示部分:
采用122×32的LCD液晶显示屏;
电源部分:
为MP3提供所需要的电能;
同时辅助微控制器工作的还有一个晶体振荡电路。
3.2.1微控制器
就MP3的控制来说,许多单片机都能胜任。
但不同单片机具有不同的特点,比较之下,我选用ATMEL公司的AT89C51单片机。
因为AT89C51提供USB控制和集成MPEG2解码器,这就解决了接口控制和解码的难题。
它为许多嵌入式控制系统提供了灵活、低成本的解决方案。
这些特点是选用该芯片的主要原因。
89C51的性能特点请参考芯片资料[5]。
AT89C51SND1C单片机是ATMEL公司专门针对开发MP3而设计的,它的主要特点是内部集成了MPEG2解码器和USB通讯接口,内含64k的内部程序存储器,支持在系统编辑ISP功能,通过USB或者串行口对芯片进行编程操作,内部数据存储器为2056字节。
它最高支持20MHz的工作频率,工作电压为3.3V,内部集成的MPEG-2解码功能支持48,44.1,32,24及16HZ的采样序列,可直接与DAC音频转换芯片连接,支持USB1.1协议全速引擎,并提供相应的键盘中断、IDE/ATATPI/MMC及ISP接口。
设计主要相关特殊功能寄存器有:
MP3解码器的控制寄存器共有11个,其中包括MP3CLK(MP3时钟分频寄存器)、MP3CON(MP3控制寄存器)、MP3VOL(MP3左声道音量控制寄存器)、MP3BAS(MP3重低音控制寄存器)等;USB控制寄存器共有15个,其中包括:
UEPINT(USB端点中断寄存器)、UEPREST(USB端点FIFO复位寄存器)、USBCON(USB控制寄存器)、UEPIEN(USB端点中断使能寄存器)等和音频接口控制寄存器包括:
AUDCON0(音频接口控制寄存器0)、AUDCON1(音频接口控制器1)、AUDSTA(音频接口状态寄存器)、AUDDAT(音频接口数据寄存器)和AUDCLK(音频时钟分频寄存器),详见第四章。
其典型应用如图3-4所示[5]:
3.2.2电源及USB接口电路
其电路如图3-5所示:
MP3属于高速信息传输数码产品,能否有一个良好的电源对MP3使用的稳定性来说至关重要,因此一般采用芯片降压的供电方案。
如图3-5所示,设计中选用的芯片为AS1117。
它输入电压为4.75~10V,最大输出电流为800mA,转换后输出电压为3.3V,是比较理想的USB电平转换芯片。
为了方便我也可以在AS1117的3脚输出端接上电池提供电源。
电路中C1起到滤波作用;R2是限流电阻用以保护LED;发光二极管LED监控电源电路是否正常。
对USB接口来说,USB接口的实现则是通过51SND1自带的USB1.1协议通讯端口,它不需要使用USB接口转换芯片,设计中通过两个27欧姆的电阻后直接接入89C51SND的第21、22脚,这两个电阻的阻值是官方站对其所开发的芯片提供的,最好使用精度高的电阻。
否则,会因为电阻分压不当而导致计算机无法识别89C51SND1C芯片。
另外需要注意的是D+与3.3V之间的电阻R1,阻值范围必须是1.5KΩ
5%。
从而拉高USB的D+端口电位,以告知计算机有新的硬件接入,否则设备将无法被PC或HUB识别[6]。
3.2.3存储部分电路
MP3是常用FLASH芯片存储,因其具有体积小、存储容量大且速度快、耗电少等特点。
因此如图3-6所示[7]:
本设计存储部分选用三星公司的K9F2808系列芯片。
它拥有16M的存贮量。
它的结构是由65536层组成,每层有528个字节即528个列。
每一个存贮块由32层组成。
一个528字节的数据寄存器连接到存储区域。
它在数据写入和数据读出的时候使数据在I/O缓冲区与存储区之间传递。
读操作在层的基础上进行,擦写操作在块的基础上进行。
K9F2808闪存共有2048个块,即有2048个擦写单元,每单元有16KB的存储量。
K9F2808闪存采用8位I/O线复用方式;执行528个字节页的编程仅需200μs;在一个16K字节的模块上完成擦除操作需要2ms,读出一页数据的时间是每字节50ns。
它为固体大容量存储器提供了有效的解决方案。
如果需要加大存储器的容量可以换用三星公司与此芯片同一系列的存储芯片(K9F1208YCB为64M、K9F1G08为128M),它们的引脚和工作方式完全相同,只是容量不同。
3.2.4前置放大部分
其电路如图3-7所示[7]
AT89C51SND1芯片提供了外部录音功能。
在程序的支持下,通过外部设备MIC及其模数转换芯片向其送入音频信息,AT89C51SND1将其转化成WAV文件后保存在存储器中,通过MP3放音功能可将其音频信息读出。
如图3-7所示,设计中实现MIC到CPU转换的是通过MAX4468(增益带宽涌流器)实现的,它的主要功能是将MIC的信号放大,并将其转化成数字信息,通过CPU将数字信息储存在存储器中,从而实现MP3的录音功能。
由于话筒提供的信号只有几十毫瓦,故要加前置放大器MAX4468。
其技术指标:
2.4V~5V的电源供电,提供600KHZ的增益带宽,闲置状态电流为24uA。
设计中放大电路的Au=45(设定),负载电阻为100KΩ,Vout=Vcc/2=2.5V。
MAX4468内部是由一级同相比例运算电路构成。
则1+R21/R20=45,取R21=560KΩ,R20=12KΩ。
电阻R18,R19为放大电路偏置电阻,取R18=R19=470KΩ(典型参数为100KΩ)。
耦合电容C25与C29取100nF,C26取10nF,C27取220nF,以保证低频响应。
其他元器件的参数选择为:
C28=100pF,R16=R17=2.2KΩ。
3.2.5D/A转换部分
其电路如图3-8所示[8]
AT89C51SND1支持PCM和I2S两种音频结构,音频数据流可以来自MP3解码的输出,也可以来自MCU直接的音频输出。
根据设计要求选用UDA1330ATS来实现D/A转换输出音频信号给耳机。
其技术指标:
2.7V~5.5的电源供电,支持16~55KHZ的抽样频率,集成数字滤波提供DAC,支持I2S总线数据格式等。
电路中整个音频部分和51内核是通过5个寄存器来进行数据和控制信息的交流。
如图3-8所示,让音频数据的第一位送入D/A转换器UDA1330ATS的时候就会产生一个时钟信号。
将MP3解码器中送出的数据送入MP3缓冲器,MP3的解码数据缓存和解码器通过一个握手信号进行通讯,通过音频AUDCON1寄存器中的第六位(DERQEN)来决定是否需要数据。
3.2.6按键部分和LCD显示
根据MP3的实际需要对按键和显示分别进行如下设计[8]:
1)、按键:
外部中断按键采用简单的独立式键盘结构。
四个按键分别控制播放、停止、前进和后退。
每个按键的电路是独立的,占用一条数据线。
当其中任意按键按下时,对应数据线的电平变为低电平,读入单片机就是逻辑0,表示键闭合;若无键闭合,则所有数据线的电平都是高电平。
在此需要注意消除键抖动。
上拉电阻采用典型参数,即R24=R25=R26=R27=5.1KΩ。
2)、显示:
设计中的显示部分是选用内置SED1520驱动控制器的122×32点阵图形液晶显示模块。
它具有低成本、低功耗、高集成化的特点。
该显示模块内集成了两块SED1520,每块SED1520横向有61点、纵向有16点,所以两块横向有122点、纵向有32点。
SED1520显示驱动控制器集成电路分别控制液晶显示器的左、右半屏点阵图形的显示,在该模块内有一个122×32点阵图形液晶显示器和一个偏置(BIAS)电路。
其工作原理是:
偏置(BIAS)电路提供了模块内部显示用的驱动电压V1~V5,它通过把用户提供给该模块的工作电源电压转换为5路液晶显示驱动电压,在外接微处理器的支持下,通过模块内两个SED1520集成电路的驱动与控制功能,实现用户利用微处理器下达的显示指令和相应操作的功能,在122×32点阵图形液晶显示器上显示出需要显示的内容。
微处理器通过对并行接口输出状态的编程操作,完成对液晶显示模块所需时序的操作和数据的传输。
在电路中模块的数据总线接到89C51的P4口,控制信号A0接至INT0,CSS1接至WR,CSS2接至RD,第9脚接至T1,使能信号端(E)接至T0,CL接至INT1。
这是间接控制方式,电路中电位器R28=10KΩ(确定调节范围,为典型参数)用于调节显示对比度。
3.2.7系统整体原理图及PCB图
系统整体原理图如图3-10所示[10]。
设计中应特别注意直流电源和数字电源的区别:
在电路中有DVDD(数字电源)和AVDD(模拟电源)两种电源,这是为了让芯片工作于一个稳定的环境里,而为其设计的专用电源DVDD。
原则上,数字电源与模拟电源没有什么大的区别,但模拟电源工作的环境中,可能会出现大的压降或其他影响整个电源的情况。
为保证系统的稳定性,通常在设计时,将数字电源和模拟电源分开接,最后用一跳线(LC电路)将两个电源接在一起,这样可以避免模拟电源对数字电源的影响,以保证系统的稳定性。
在设计印制电路板时主要考虑的是减小信号之间的交叉干扰、电源干扰,降低噪声对电路的影响,提高整个系统的可靠性。
设计的电路板上,主要是晶体振荡电路对噪声比较敏感,因此在设计这部分电路时,特别注意使晶振、电阻、电容等相关器件与微控制器尽可能靠近,在布线时使这部分电路的信号线不能其他任何信号线交叉。
此外还采用了一些常规的降低噪声和干扰影响的手段,包括尽量增加地线和电源线的宽度(40mil),使用去耦电容以及尽量减小元器件引脚长度等。
图3-11PCB图
图3-10整体原理图
3.2.8系统调试
调试步骤:
首先是电源部分的调试,用一个万用表测输出电压值VCC(3.3V),正常范围是3.25~3.35V,如果再偏低或者偏高,则要进一步查找问题,看是否输入电压纹波很大,换一个纹波较小的电源,(冗余设计中,AS1117电压调节器的输入电压要求是比较准确的5V,不然偏差较大)
然后是核心CPU(AT89C51SND1)的焊接和调试。
要注意是在焊VCC和VSS的时候不要有短路。
CPU焊接完成后,上电检测工作电压在3.3V左右就可以进行下一步的调试,即接上晶振和两个偏置电容、复位电容。
上电后,①先检查晶振是否起振,用示波器测晶振引脚的波形是标准的振荡波形就正确。
再测其中任一脚的电压,只要能稳定在1.5V左右就表示起振。
如果电源没起振,就要检查CPU的X1,X2引脚是否脱焊和偏置电容是否正确(一般10pf~30pf)。
②接下来就是检查复位,由于芯片内部含下拉复位电阻,所以只需外接一个极性电容即可,经过调试,其容值可取2.2uF~22uF,只要充电时间不要慢到CPU不能正常工作就可以。
用万用表在一上电瞬间用表笔测RST1引脚的电压,其真实复位过程是复位电压从3V到0V线性下降,由于万用表采集速率的问题。
往往只能从1.5V左右开始采集,故测量得到的1~2V的复位电压都是正常的。
最后是USB部分的调试检查USB设备能否被PC识别。
我在设计中严格按照USB的规定推荐值,所以不存在大问题。
主要是USB的软件驱动程序的调试,这部分由软件部分完成。
其他部分由于篇幅所限不再详述。
3.3本章小结
设计中系统的介绍了关于ATMEL公司生产的89C51SND1芯片开发MP3功能的方法。
但对于89C51SND1来说,实现MP3只是它强大功能的一部分。
本章还具体介绍设计的其它单元电路,并在最后给出了系统的具体调试过程。
4软件驱动程序分析
我在这部分的任务是分析USB通讯过程和寄存器配置、重点解决按键和显示部分的接口子程序,以备软件部分调用。
4.1USB的通信过程
由于设计中USB是当作存储设备用,故USB的通信采用控制传输;总线访问方式。
控制传输用于支持介于主机与装置之间的配置、命令或状态的通讯。
可分为2~3个阶段:
设定阶段、数据阶段以及状态阶段。
在数据阶段中,数据传输是以设定阶段中所拟定的方向作