XX毕业论文.doc
- 文档编号:4844089
- 上传时间:2023-05-07
- 格式:DOC
- 页数:57
- 大小:3.62MB
XX毕业论文.doc
《XX毕业论文.doc》由会员分享,可在线阅读,更多相关《XX毕业论文.doc(57页珍藏版)》请在冰点文库上搜索。
本科生毕业论文
第1章 绪论
1.1 概述
1.1.1 课题研究目的
随着电子科技的发展与应用,各种计算机外围接口不断推陈出新,USB接口已经成为现今个人计算机上最重要的接口之一,各种电子消费产品也逐渐配置这种接口。
USB接口是速度比较高的串行接口,具有较广阔的发展前景和应用潜力。
USB适用于低档外设与主机之间的高速数据传输。
从USB问世至今,USB在不断的自我完善,并走向成熟。
从普通计算机用户、计算机工程师、到硬件芯片生产厂商,都已经完全认可了USB。
传统的设备主要是基于RS-232的串行接口,随着计算机速度的提升,已经明显不能适应发展的需要。
不仅是速度上比较慢,而且由于其不支持热插拔。
而USB接口由于支持热插拔,占有较少的系统软件硬件资源,厂商对于USB的硬件软件的支持也越来越完备,现在开发一个USB外设产品所需要的成本和时间大大降低了。
USB技术取得了迅速的发展。
单片机作为最典型的嵌入式系统,推动了嵌入式系统的发展,成为现代电子系统中重要的智能化器件。
因此,USBI/O外围设备的设计已成为电子领域的主要技术之一[1]。
本课题就是利用单片机设计一个功能简单的嵌入式USB外设,将其与PC机连接,通过USB接口实现PC机与外设之间的相互通信。
1.1.2 国内外发展状况
1994年,Intel,Compaq,Digital,IBM,Microsoft,NEC,NorthernTelecom等7家世界著名的计算机和通信公司成立了USB论坛,花了近两年的时间形成了统一的意见,于1995年11月正式制定了USB0.9通用串行总线(UniversalSerialBus)规范。
在1996年,一些规模型经营的公司,他们的PC机、监视器,开始配备了USB接口。
原有的所有接口和插槽依然保留,只增加一个USB接插件,其目的是为了在扩展新的用途时使用。
直到1997年,真正符合USB技术标准的外设才开始出现。
直至Windows98推出之前,推出的USB功能模块并不多,原因除了因为传统的通信接口,如RS232,IEEE488等,一时难以退出应用领域外,一些早期的USB应用探索者步履艰难,抱怨的主因是宿主平台的实用性。
Windows98对USB驱动软件(USBD)完善,使其可提供对USB的强有力的支持,对USB技术的发展起到重要推进作用。
自此,市场上涌现出大批的USB产品。
USB1.0是目前推出的在支持USB的计算机与外设上普遍采用的标准。
目前普遍采用的USB1协议主要应用在中低速外围设备上,它提供的传输速度有低速1.5Mbps和全速12Mbps两种。
可分别支持显示器、Modem、鼠标、键盘、扫描仪、打印机、光驱及大范围的多媒体设备。
从国外的发展来看,人们对USB有着极大的重视程度,这从USB规范的改进速度之快及国际市场上基于USB的产品普及的范围可见一斑。
从1994年公布V1.0FDR版本,短短一年时间版本增订了五次。
说明技术人员正大力研究改善USB的性能。
市场上基于USB的外设己囊括了所有的数字产品。
可见国外在这方面已作了很多工作,并且目前也正以很快的速度发展[2]。
国内对于USB的研究在这几年才刚刚起步。
市场上也可以见到各种USB产品,也有少量的专门讨论USB开发的国内网站。
比较专业的稳定的网站有USB开发网(),但因为在前几年还很少有人做这方面的工作,所以在相关网站上开发USB的文章量少,更新速度慢;国内知名高校的BBS(比如水木华:
),上面相关的文章询问USB的人多,但回答问题的人仅限于几个。
对USB芯片进行开发、技术服务和应用方案设计的公司更是寥寥无几。
虽然在网上做调研所得到的信息并不完全,但由此可以看出国内对USB技术研究的需求及欠缺。
1.2 USB接口及USB器件分析
USB(UniversalSerialBus通用串行总线),是一种快速、灵活的总线接口。
与其它通信接口比较,USB接口的最大特点是易于使用,这也是USB的主要设计目标。
作为一种高速总线接口,USB适用于多种设备,如数码相机、MP3播放机、高速数据采集设备等。
易于使用还表现在USB接口支持热插拔,并且所有的配置过程都由系统自动完成,无需用户干预。
USB接口支持1.5Mb/s(低速)和12Mb/s(全速)的数据传输速率,扣除用于总线状态、控制和错误监测等的数据传输,USB的最大理论传输速率仍达1.2Mb/s或9.6Mb/s,远高于一般的串行总线接口。
USB接口芯片价格低廉,这也大大促进USB设备的开发与应用。
在进行一个USB设备开发之前,首先要根据具体使用要求选择合适的USB控制器。
目前,市场上供应的USB控制器主要有两种:
带USB接口的单片机(MCU)或纯粹的USB接口芯片。
带USB接口的单片机从应用上又可以分成两类,一类是从底层设计专用于USB控制的单片机,另一类是增加了USB接口的普通单片机,如Cypress公司的EZ-USB(基于8051),选择这类USB控制器的最大好处在于开发者对系统结构和指令集非常熟悉,开发工具简单,但对于简单或低成本系统。
其价格因素也是在实际选择过程中需要考虑的因素。
纯粹的USB接口芯片仅处理USB通信,必须有一个外部微处理器来进行协议处理和数据交换。
这类典型产品有Philips公司的PDIUSBD12(并行接口),NS公司USBN9603/9604(并行接口),NetChip公司的NET2888等。
USB接口芯片的主要特点是价格便宜、接口方便、可靠性高,尤其适合于产品的改型设计(硬件上仅需对并行总线和中断进行改动,软件则需要增加微处理器的USB中断处理和数据交换程序,PC机的USB接口通信程序,无需对原有产品系统结构作很大的改动)[2]。
PDIUSBD12是在USB协议设备端使用最多的芯片之一。
此芯片是带有并行总线的全速USB接口器件,可与任何微控制器实现高速并行接口(2Mb/s),并用于许多外设。
这种实现USB接口的标准组件,可以使设计者在不同类型的微控制器中选择最合适的微控制器,使用已有的结构和减少固件上的投资,从而用最快捷的方法实现最经济的USB设备,它具有以下特性:
1、符合USB1.0版规范;
2、高性能USB接口器件,集成了SIE,FIFO存储器,收发器以及电压调整器;
3、可以与任何外部微控制器/微处理起实现高速并行接(2MB/s);
4、集成320B多结构的FIFO存储器;
5、完全自治的直接内存存取(DMA)操作;
6、可以通过软件控制与USB的连接;
7、采用GoodLink技术的连接指示器,在通信时使LED闪烁;
8、可编程的时钟频率输出;
9、多中断模式实现批量和同步传输[3]。
1.3 系统方案设计
以单片机原理,硬件资源的功能应用,PDIUSBD12芯片功能与接口设计,USB1.0协议等理论知识为基础,设计出完整的系统原理图。
根据原理图,将硬件系统资源焊接成PCB板。
根据系统功能,设计编写固件程序,下载后进行调试,实验板在单片机控制下能单独工作后,然后和上位机进行联机调试,通过USB接口实现与上位机的相互通信。
本课题涉及的理论知识主要是USB1.0协议,重点在于硬件设计,难点在于编程和整机的调试。
经过论证,在实现设计要求的前提下,为了降低系统的成本,选用接口级芯片PDIUSBD12,控制器选取8051,它有64k的存储容量,对于固件程序已经足够使用了;而且这款单片机支持在线编程,通过串口下载程序,这给程序的下载和使用带来来方便。
程序设计采用C语言进行编程,软件仿真采用KeilC51。
1.4 预期实现目标
通过硬件电路和驱动程序(包括设备端和上位机端的驱动程序)实现以下目的:
1、保证电路连接的正确性和可行性。
完成以单片机与USB接口芯片为主要芯片的电路板;
2、完成程序的编写,主要是设备端的固件编程;
3、通过硬件调试,单片机能独立控制电路板上元件工作;
4、实现电路板与上位PC机双向传输。
这需要与上位机进行联机调试,主要在软件部分实现。
第2章 USB概述及协议
USB以USB主机为核心,以外围的USB设备为功能,组成了USB系统模型。
主机是USB的核心,每次USB数据通信都必须是由USB主机来发起的,主机管理着USB设备。
USB物理上是一个含有两条电源线(VCC,GND)和两条以差分方式产生信号的线(D+,D-),传输率可达12Mbps的串行接口,一个PC主机可以连接多达127个外围设备。
USB协议是以令牌包为主的通信协议,12Mbps的总线带宽被分割成1ms的帧,所有任务以时分传输(TDM)来分享总线。
2.1 USB体系结构概述
2.1.1 USB系统描述
一个USB系统主要被定义为三个部分:
·USB的互连;
·USB的设备;
·USB的主机。
USB的互连是指USB设备与主机之间进行连接和通信的操作,主要包括以下几方面:
·总线的拓扑结构:
USB设备与主机之间的各种连接方式;
·内部层次关系:
根据性能叠置,USB的任务被分配到系统的每一个层次;
·数据流模式:
描述了数据在系统中通过USB从产生方到使用方的流动方式;
·USB的调度:
USB提供了一个共享的连接。
对可以使用的连接进行了调度以支持同步数据传输,并且避免的优先级判别的开销。
USB连接了USB设备和USB主机,USB的物理连接是有层次性的星型结构。
每个网络集线器是在星型的中心,每条线段是点点连接。
从主机到集线器或其功能部件,或从集线器到集线器或其功能部件,从图2.1中可看出何USB系图2.1总线的拓扑结构
拓扑结构。
其中,USB集线器Hub是一组设备的连接点,主机中有一个被嵌入的Hub叫根Hub(rootHub)。
主机端通常是指PC主机或是另外再附加USB端口的扩充卡,主机通过根Hub提供若干个连接点。
集线器除了扩增系统的连接点外,还负责中继(repeat)上游或下游的信号以及控制各个下游端口的电源管理。
当PC上电时,所有USB设备与Hub都默认地址为0,PC机启动程序向USB查询,地址1分配给发现的第一个设备,地址2分配给第二个设备或Hub,如此重复寻找并分配地址,直到所有设备赋完地址,并加载相应的的驱动程序。
当设备突然被拔移后,PC机通过D+或D-的电压变化检测到设备被移除掉后,将其地址收回,并列入可使用的地址名单中。
在任何USB系统中,只有一个主机。
USB和主机系统的接口称作主机控制器,主机控制器可由硬件、固件和软件综合实现。
根集线器是由主机系统整合的,用以提供更多的连接点。
USB的设备如下所示:
·网络集线器,向USB提供了更多的连接点;
·功能器件:
为系统提供具体功能,如ISDN的连接,数字的游戏杆或扬声器。
USB设备提供的USB标准接口的主要依据:
·对USB协议的运用;
·对标准USB操作的反馈,如设置和复位;
·标准性能的描述性信息。
2.1.2 USB连接头及其供电方式
为了避免连接错误,USB定义了两种不同规格的星形USB连接头:
序列A与B连接头,其中序列A接头用来连接下游的设备。
每个连接头内拥有4个针脚,其中两个是用来传递差分数据的,另两个则用于USB设备的电源供给。
USB的供电方式有两种:
1、总线供电集线器
电源由上游连接端口供应,最多只能从上游端消耗500mA。
一个4个连接端口的集线器,每个下游端口最多消耗为100mA,外围电路消耗100mA。
2、自我供电集线器
集线器本身有电源,可以提供给本身的控制器以及下游端口至少500mA的电流,集线器最多可从上游端消耗100mA。
2.1.3 USB系统软硬件组成
USB系统的软硬件资源可以分为3个层次:
功能层、设备层和接口层。
功能层提供USB设备所需的特定的功能,主机端的这个功能由用户软件和设备类驱动程序提供,而设备就由功能单元来实现。
设备层主要提供USB基本的协议栈,执行通用的USB的各种操作和请求命令。
从逻辑上讲,就是USB系统软件与USB逻辑设备之间的数据交换。
接口层涉及的是具体的物理层,其主要实现物理信号和数据包的交互,即在主机端的USB主控制器和设备的USB总线接口之间传输实际的数据流。
无论在软件还是硬件层次上,USB主机都处于USB系统的核心。
主机系统不仅包含了用于和USB外设进行通信的USB主机控制器及用于连接的USB接口(SIE),更重要的是,主机系统是USB系统软件和USB客户软件的载体。
USB主机软件系统可以分为三个部分:
1、客户软件部分(CSW),在逻辑上和外设功能部件部分进行资料的交换;
2、USB系统软件部分(即HCDI),在逻辑和实际中作为HCD和USBD之间的接口;
3、USB主机控制器软件部分(即HCD和USBD),用于对外设和主机的所有USB有关部分的控制和管理,包括外设的SIE部分、USB资料发送接收器(Transreceiver)部分及外设的协议层等[2]。
2.2 USB编码方式与传输类型
2.2.1 USB的编码方式
USB采用不归零翻转(NonReturntoZeroInvert,简称NRZI)编码方式,对于不同步的脉冲信号也能产生同步的数据存取,能有效地解决USB缆线信号延迟产生的误差。
NRZI的编码规则是:
当数据位为“1”时电平保持不变,为“0”时电平翻转。
如果原始的串行数据中含有连续6个“1",就在其后填充一个“0"。
在NRZI解码的过程中发现连续的6个“1”时,则移走其后原填入的“0"。
NRZI编码、位填充过程分析如下:
原数据01100011011111111
位填充011000110111111011
NRZI码0111010001111111000
2.2.2 USB传输
USB总线是一种串行总线,即它的资料是一个bit一个bit来传送的。
虽然USB总线是把这些bit形式的资料打成资料包来传送,但资料的同步也是必不可少的。
USB1.0协议规定,USB的标准脉冲时钟为12MHz,而其总线时钟为1ms,即每隔1ms,USB器件应为USB线缆产生一个时钟脉冲序列。
这个脉冲序列称为帧开始资料包(SOF),主机利用SOF来同步USB资料的发送和接收。
为实现多外设、多信道地同时工作,USB总线使用资料包的方式来传输资料和控制信息。
USB数据传输中的每一个资料包都以一个同步字段开始,它的最后两个bit作为PID字段开始的标志。
紧跟在同步字段之后的一段8bit的脉冲序列称为PID(资料包标识字段),PID字段的前四位用来标记该资料包的类型,后四位则作为对前四位的校验。
PID字段被分为标记PID(共有IN、OUT、SETUP或SOF四种)、资料PID(DATA0或DATA1)、握手PID(ACK、NAK或STALL)及特殊PID等。
主机根据PID字段的类型来判断一个资料包中所包含的数据类型,并执行相应的操作。
当一个USB外设初次连接时,USB系统会为这台外设分配唯一的USB地址,这个地址通过地址寄存器(ADDR)来标记,以保证资料包不会传送到别的USB外设。
7bit的ADDR使得USB系统最大寻址为127台设备(ADDR字段)。
由于一台USB外设可能具有多个信道,因而在ADDR字段后会有一个附加的端点字段(EndpointField,简标为ENDP)来标记不同的信道。
所有的USB外设都必须支持Endpoint0信道,用0000来标记。
对于高速设备,可以最大支持16个信道,而低速设备在Endpoint0之外仅能有一个信道。
数据域位作为一次USB数据传输的中心目的,在一个USB资料包中可以包含0~1203Byte的资料。
而帧数量字段则包含在帧开始资料包中,对有的应用场合,可以用帧数量字段作为资料的同步信号。
为保证控制、块传送及中断传送中资料包的正确性,CRC校验字段被引用到如标记、资料、帧开始(SOF)这样的资料包中。
CRC校验(资料冗余校验)可以给予资料以100%的正确性检验。
在USB系统中,有四种形式的资料包:
信令包(TokenPackets)、DATA资料包(DATAPackets)、帧开始包(SOFPackets)和握手包(HandshakePackets)。
每个资料包的结束都会有两个bit宽的EOP字段作为资料包结束的标志(图7-18),EOP在差模信号中表现为D+和D-都处于“0”状态。
对于高速USB外设而言,这个脉冲宽度在160~175ns之间,而低速设备则在1.25~1.50μs之间。
无论其后是否有其它的资料包,USB线缆都会在EOP字段后紧跟1bit的总线空闲位。
USB主机或外设利用EOP来判断一个资料包的结束。
为了满足不同外设和用户的要求,USB提供了四种传输方式:
控制传输;同步传输;中断传输;批传输。
它们在数据格式、传输方向、数据包容量限制、总线访问限制等方面有着各自不同的特征:
1、控制传输(ControlTransfer):
可靠的,非周期的,由主机软件发起的请求或者回应的传送,通常用于命令事务和状态事务。
2、同步传输(IsochronousTransfer);在主机和设备之间的周期性的,连续的通信,一般用于传送与时间相关的信息。
这种类型保留了将时间概念包含于数据中的能力。
但并不意味着用于同步传送的数据的时间是很重要的,即传送并不一定很急。
3、中断传输(InterruptTransfer):
小规模数据的,低速的,固定延迟的传送。
4、批量传输(BulkTransfer):
非周期的,大包的,可靠的传送。
典型用于传送可以利用任何带宽的数据,这些数据没有带宽时,是可以容忍等待。
对于PDIUSBD12,端点的工作方式可通过SetMode命令配置为4种不同的模式,分别为:
1、模式0(Non-ISO模式):
非同步传输;
2、模式1(ISO-OUT模式):
同步输出传输;
3、模式2(ISO-IN模式):
同步输入传输;
4、模式3(ISO-IO模式):
同步输入输出传输。
端点2在有些方面是比较特别的,端点2是进行吞吐大量数据的主要端点,一般称其为主端点,主端点执行主机的特性以减轻传输大量数据的任务,具体包括:
1、双缓冲;
2、支持DMA;
3、可以配置为同步传输或非同步(批量和中断)传输。
2.3 USB设备请求
USB的标准设备请求是用来完成USB设备枚举的命令,USB设备必须对标准设备请求作出响应,不管该设备是否已经被分配了一个默认的地址或者该设备目前正在被配置。
所有的标准设备请求都是使用默认的管道来传输的。
2.3.1 USB标准请求格式
USB的设备请求由八个字节组成,格式定义如表2.1所示。
2.3.2 USB标准请求命令
USB标准请求有11个命令,如下:
1、获取状态请求:
该命令用于返回特定接受者的状态。
2、清除特性请求:
该命令用于清除或禁用接受者的某些特性。
3、设置特性请求:
该命令是主机用来启用或激活命令接受者某些特性。
4、设置地址请求:
该命令用于主机给设备分配地址。
5、获取描述请求:
该命令用于主机获取设备的特定描述符。
6、设置描述符请求:
主机利用该命令来修改设备中的有关描述或增加新的描述符等。
7、获取配置请求:
主机利用该命令获得设备当前的配置值。
8、设置配置请求:
主机通过该命令来指示设备采用要求的配置。
9、获取接口请求:
主机利用该命令来获取当前的某个接口的接口描述符的编号。
10、设置接口请求:
主机可以通过该命令来要求设备用某个接口描述符来描述接口。
11、同步帧请求:
该命令用于设备设置和报告一个端点的同步帧。
表2.1 USB设备请求格式
偏移值
字段名称
字段长度
字段取值
说明
0
设备请求类型
1
位图
请求特性:
D7:
数据传输方向
0=主机到设备
1=设备到主机
D6..5:
类型
0=标准;1=类型
2=厂商;3=保留
D4..0:
接受方
0=设备;1=接口
2=端点;3=其他
4..31=保留
1
设备请求
1
数值
USB设备请求
2
值
2
值
根据不同的请求,以字节为单位来定义
4
索引
2
字段编号索引
根据不同的请求,以字节为单位来定义
6
长度
2
计数
如果传输一组数据,指出要传输的字节数
2.4 USB设备的描述符
USB设备描述符是说明设备的通用信息,这包括对设备及所有设备设置全程起作用的信息。
2.4.1 设备描述符
一个USB总线设备只能有一个设备描述表。
设备描述表的结构如表2.2所示:
表2.2 设备描述符
偏移值
字段名称
字段大小
字段取值
说明
0
bLength
1
数字
描述符的大小=12H
1
bDescriptorType
1
常数
设备描述符类型=01H
2
bcdUSB
2
BCD
USB规划发布号
4
bDeviceClass
1
类型
类型代码(由USB指定)
5
bDeviceSubClass
1
子类型
子类型代码(由USB分配)
6
bDeviceProtocol
1
协议
协议代码(由USB分配)
7
bMaxPacketSize0
1
数字
端点0最大分组大小(只有8,16,32或64有效)
8
idVendor
2
ID
供应商ID(由USB分配)
10
idProduct
2
ID
产品ID(由厂商分配)
12
bcdDevice
2
BCD
设备出厂编码
14
iManufacture
1
索引
厂商描述符字符串索引
15
iProduct
1
索引
产品描述符字符串索引
16
iSerialNumber
1
索引
设备序列号字符串索引
17
bNumConfiguations
1
数字
可能的配置数
2.4.2 配置描述符
配置描述符定义了设备的配置信息,结构如表2.3所示。
2.4.3 接口描述符
接口描述符说明了接口所提供的配置,接口描述符的结构如表2.4所示。
表2.3 配置描述符
偏移值
字段名称
字段大小
字段取值
说明
0
bLength
1
数字
描述符的大小=09H
1
bDescriptorType
1
常数
配置描述符类型=02H
2
wTotalLength
2
数字
此设置信息的总长(包括设置,接口,端点和设备类及厂商定义的描述表)
4
bNumInterfaces
1
数字
此设置所支持的接口个数
5
bConfigurationValue
1
数字
作为SetConfiguration的一个参数选择配置值
6
iConfiguration
1
索引
用于描述该配置字符串描述符的索引
7
bmttributes
1
位图
配置特性:
D7:
总线供电
D6:
自供电
D5:
远程唤醒
D4…0;保留(复位为0)
8
MaxPower
1
mA
在此设置下的总线电源耗费量,以2mA为一个单位
表2.4 接口描述符
偏移值
字段名称
字段大小
字段取值
说明
0
bLength
1
数字
描述符的大小=09H
1
bDescriptorType
1
常数
接口描述符的类型=04H
2
bNumInterfaces
1
数字
接口的编号
3
bAlternateSetting
1
数字
用于为上一个字段选择可供替换的设置
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- XX 毕业论文