USB接口在单片机通信中的设计应用完整论文.docx
- 文档编号:12388873
- 上传时间:2023-04-18
- 格式:DOCX
- 页数:49
- 大小:277.44KB
USB接口在单片机通信中的设计应用完整论文.docx
《USB接口在单片机通信中的设计应用完整论文.docx》由会员分享,可在线阅读,更多相关《USB接口在单片机通信中的设计应用完整论文.docx(49页珍藏版)》请在冰豆网上搜索。
USB接口在单片机通信中的设计应用完整论文
USBinterfaceinthedesignofcommunication
[Abstract]Thecommunicationrateoftheseries51chipisloweranditformsatarebottleneckinserialcommunication.ThispaperintroducedasimpleandconvenientmethodtodesignaUSBapparatus,thatistosay,torealizeanintactUSBapparatuswithaminimumsystemofsingle-chipcomputerthatmadeof51single-chipcomputerandUSBinterface,thecircuitgreatlyimprovescommunicationrate.Inthissystem,Iadopted51one-chipcomputersAT89S52asitscontroller,thechipPDIUSBD12ofPHILIPSCompanyasitselectricinterface.Theone-chipcomputerasthenextmachine,exchangesthedatawiththePC,throughtheUSBbusandUSBelectricinterfacechip,anditrealizesthelogicfunctionofUSBapparatus.ItcanexchangedatawithPC,andrealizeitsexpandingfunction,throughconnectingwithPC.
[Keywords]single-chipcomputersystem;interfacetechnology;PDIUSBD12;AT89S52;USB
0.1选题现状、研究意义以及发展趋势
USB(UniversalSerialBus)即通用串行总线,是现在非常流行的一种快速、双向、廉价、可以进行热插拔的接口,在现在的每一台PC机上都可以找到一对USB接口。
USB是近年来应用在PC领域的新型接口技术,是一些PC大厂商,如Microsoft、Intel等为了解决日益增加的PC外设与有限的主板插槽和端口之间的矛盾而制定的一种串行通信的标准,自1995年在Comdex上亮相以来至今已广泛地为各PC厂家所支持。
现在生产的PC几乎都配备了USB接口,Microsoft的Windows98、NT以及Linux、FreeBSD等流行操作系统都增加了对USB的支持。
在这之前,个人电脑的外部接口规格十分“繁华”,例如,键盘要接AT口或PS/2的接口,鼠标要接COM口或PS/2接口,Modem要接另一个COM口,打印机要接ParallelPort(并口),而摇杆则要跟MIDI装置共抢Game/MIDI口,每个外设都是这样单独地与电脑连接。
如果各位绕到电脑背后看看,一定可以看到一堆惨不忍睹的“纠结”现象,这正是USB想解决的一个问题。
除了线路紊乱与安装模糊混淆外,这些线路都是不可以随意插拔的,必须在开机前装好才能正常使用。
如果在电脑工作期间插上或拔出,虽然有时电脑还是可以继续工作,但大多数时候电脑会停止响应,或是插入的装置无法工作,甚至死机,严重的还会烧坏主板接口。
USB就是要解决上述这些问题,它是一种新规格的外接串联口,提出该规格的厂商希望用USB来取代现有种种的外接设备接口。
它还具备连接单一化、软件自动“侦测”以及热插拔的功能,也就是说,在电脑不关机的情况下,就可以将设备连接到电脑上或是将设备从电脑上拔下来拿走。
在操作系统的支持下,还可以不用干预自动安装驱动程序,可以说是做到了真正的即插即用。
随着大量支持USB的个人电脑的普及,USB逐步成为PC机的标准接口已经是大势所趋。
几乎三年内生产的主板都有2个或以上的USB标准接口,支持USB的外设越来越多,像USB键盘和USB鼠标、USB调制解调器、USB音箱、USB打印机、USB扫描仪、USB游戏杆、USBHub、USB显示器、USB数码相机、USB摄像头、USB硬盘等等设备。
现在的USB生产厂商很多,几乎所有的硬件厂商都有USB的产品。
USB控制器一般有两种类型:
一种是MCU集成在芯片里面的,如Intel的8X930AX、CYPRESS的EZ-USB、SIEMENS的C541U以及MOTOLORA、NationalSemiconductors等公司的产品。
另一种就是纯粹的USB接口芯片,仅处理USB通信,如PHILIPS的PDIUSBD11(I2C接口)、PDIUSBP11A、PDIUSBD12(并行接口)、NationalSemiconductor的USBN9602、USBN9603、USBN9604等。
前一种由于开发时需要单独的开发系统,因此开发成本较高;而后一种只是一个芯片与MCU接口实现USB通信功能,因此成本较低,而且可靠性高。
本文详细介绍了利用89s52与PDIUSBD12相连的USB接口电路的应用。
51系列的芯片在目前来说是性价比最高的单片机,而且供货充足,有多家公司生产,而且51系列芯片的开发是最容易的,开发周期短,特别是国内的院校大都采用了51系列来学习单片机系统。
然而,使用51系列芯片,其串口的最高通信速率为19.2kbp/s,在要求高传输率的场合根本无法满足要求,这样在51系列芯片的串口通信中会形成一个速度瓶颈。
AT89S52是MCS51系列兼容单片机,工作电压4-6V,通常封装为DIP40或PLCC44,工作频率24MHZ。
增强的部分主要有:
8KFLASH程序存储器(8051用PROM,无法编程写入,导致实际上多数用无ROM的8031外扩的EPROM。
8KFLASH一般已经够用,通常无需外扩程序存储器,理论可写入次数1000)、256BRAM数据存储器(8051为128)、3个定时计数器(8051为2个)、WDT(8051没有)、ISP(8051没有)。
利用89S52与PDIUSBD12相连的USB接口电路能大大提高89S52的通信速率。
而PDIUSBD12通常用作微控制器系统中实现与微控制器进行通信的高速通用并行接口,因此具有广阔的应用前景。
这种实现USB接口的标准组件,使得我们可以在各种不同类型微控制器中选择出最合适的微控制器。
这种灵活性不但减小了开发的时间、风险以及费用,而且利用USB总线技术的即插即用、热插拔等特性,可以开发出高性能的USB接口,从而用最快捷的方法实现最经济的USB外设的解决方案,因此,研究意义较为深远。
0.2系统实现功能
系统是一个人机接口设备(HID),主要完成的是USB设备的基本功能,即主机对设备的列举和中断方式的数据传输。
这两点是USB设备所必须拥有的功能,可以称作USB设备的基本功能。
设备主体由AT89S52和PDIUSBD12以及维持它们正常工作所必需的外围元件组成,设备主体接上主机之后,能够单独完成设备的识别和配置,并可以实现数据通信功能。
为了丰富设备的功能,对系统还做了一定的扩充,还扩展了8位拨码开关输入和8位发光二极管LED输出,另外还实现以下设备功能:
1)简单的演示设备
用于演示HID设备配置过程和中断传输方式下基本数据交换过程。
2)PS/2接口扩展
电路扩展PS/2接口,可实现将PS/2键盘和PS/2鼠标转换为USB设备使用。
3)Flash存储器扩展
利用SamsungK9F2808芯片(16MB的Flash存储器芯片,数据字宽8位)扩展为移动存储器设备。
4)LPT并行接口扩展
保留了LPT并行接口,可用于并口打印机信号到USB打印机信号的转换或者其它类型的数据传输扩展。
以上几种扩展不可能同时实现,设备可在上电后由一个2位的拨码开关选择自己配置哪种设备。
设备的系统结构框图如图0.1所示。
图0.1设备系统结构框图[1]
1USB技术
1.1USB总线概述
1.1.1USB总线简介
USB(UniversalSerialBus)的中文含义是通用串行总线。
早先的微机系统中,外设与CPU的连接存在接口标准各自独立、互不兼容、无法共享的问题,并且安装、配置也很麻烦。
这不仅使外设日益多样化的发展趋势与系统(I/O端口、IRQ)有限性的矛盾更加突出,而且给用户对外设的连接和使用带来极大不便,因此,迫切需要新的通用型外设标准出台。
为了实现整个计算机系统中总线的一致性,以Intel公司为主,并联合Compaq,Hewlett-Packard,Lucent,Microsoft,NEC以及Philips共七家公司共同开发的一种快速的、双向的、同步传输的并可以热拔插的新型通用串行总线,简称USB总线。
1.2.2USB总线的优点
随着各种类型的USB外设(如USB闪存盘、USB视频头、USB鼠标等)的陆续出现,USB通信的优点越来越广泛的被人们所熟知,将外设连接到计算机时,USB接口成为优先的选择,不管是使用外设的用户或是开发USB软硬件的设计者,USB都有让双方满意的特性。
根据USB总线规范的定义,USB总线主要具有以下优点:
1)方便最终用户的使用
(1)电缆和连接器具有唯一的型号。
(2)对最终用户隐藏了电气细节,例如总线终结。
(3)设备自动识别,自动安装驱动程序和配置。
(4)支持动态接入和动态配置。
2)工作负荷和应用范围广
(1)支持传输速率从几Kb/s至几Mb/s的设备。
(2)同一组总线上可以同时支持同步和异步传输类型。
(3)支持对多个设备的同时操作(多连接)。
(4)支持多达127个物理外设。
(5)支持在主机和设备间多个数据和消息流的传输。
(6)具有较小的协议开销,总线利用率较高。
3)同步带宽
(1)可以为外设提供确定的带宽和很小的时延。
(2)同步负荷可以使用总线上全部带宽。
4)灵活性
(1)可以有很多不同大小的分组,并允许在一定范围内选择设备的缓冲区。
(2)通过支持不同的分组缓冲区和时延要求,支持不同数据传输速率的设备。
(3)提供了用于控制缓冲区的流控功能。
5)稳定性
(1)协议中包含错误检测机制。
(2)支持动态接入和插出(热插拔)。
6)与PC工业协同作用
(1)符合PC即插即用体系结构。
(2)对现存操作系统接口产生极大影响。
7)成本低廉
(1)组件与电缆价格便宜。
(2)低速模式(l.5Mb/s)更加经济。
(3)利用了商用技术。
8)易于升级[10]
1.2USB协议简介
1.2.1USB物理体系结构
USB总线设备以星型的拓扑结构实现与主机的物理连接,其物理拓扑结构如图1.1所示。
USB的接入点由集线器(Hub)来提供。
这种由集线器提供的额外的接入点称为端口(Port)。
主机中包含了一个嵌入的集线器,称为根集线器(Roothub)通过根集线器,主机可以提供一个或多个接入点。
为主机提供附加功能的设备称为功能模块。
为了防止出现环形接入的情况,在USB中使用了分层的拓扑结构。
这种结构具有树型结构。
通过使用集线器扩展可连接多达127个外设。
图1.1USB物理总线拓扑结构
USB的电缆有4根线,两根传送的是十5V电源,另外两根是数据线。
其定义如表1.1所示。
信号线的特性阻抗为9052,而信号是利用差模方式送入信号线的。
利用这种差模传输方式,接收端的灵敏度可以达到不低于200mV。
功率不大的外设可以直接使用USB总线电源供电,而不必外接电源,USB总线最大可以提供5V,500mA电源,并支持节约能源的挂机和唤醒模式。
表1.1USB电缆信号定义
编号
信号名称
颜色
注释
1
VBUS
红色
电源线
2
D-
白色
-数据
3
D+
绿色
+数据
4
GND
黑色
地线
1.2.2USB设备逻辑结构
USB的设备可以分成多个不同类型,同类型的设备可以拥有一些共同的行为特征和工作协议,这样可以使设备驱动程序的编写变得简单一些。
USB协议规范中定义了USB的设备类型,比如音频、通信、HID、HUB等设备类。
USB设备的逻辑结构如图1.2所示,USB设备的物理连接不影响这个逻辑视图。
图1.2USB逻辑结构
每个USB设备内有一个或多个逻辑连接点,称为端点(Endpoint),每个端点指定下面的传输类型之一:
控制传输、中断传输、块传输和等时传输。
在USB协议规范中用4位地址标识端点地址,每个设备最多有16个端点。
所有设备都有一个端点0传输,用于配置和控制各设备。
管道(Pipe)实现了在主机的一个内存缓冲区和设备的端点之间的数据传输,主机USB系统软件和设备的端点0之间的连接称为缺省管道。
管道是具有多个特征的信道,如带宽分配、包大小、管道类别以及数据流向。
管道分为流管道(StreamPipe)和消息管道(MessagePipe)。
流管道传输的数据包的内容不具有USB要求的结构,它是单向传输的;流管道支持批量、等时和中断传输方式。
而消息管道与流管道具有不同的行为。
首先,由主机发请求给USB设备,然后在适当的方向上传输数据,最后是到达一个状态阶段。
为了保证三个阶段的数据传输,消息管道定义了一个数据结构使命令可靠地被识别和传输。
消息管道是双向的,它只支持控制传输方式。
一个设备对主机表现为一组合适的端点,一组相关的端点称为一个接口,有多个接口的设备称为组合设备。
最后,设备可以有多组接口。
每一组称为一个配置,一次只能有一个配置是活动的。
但是,当前配置中的所有接口(和它们的端点)可以同时是活动的。
大多数的设备只有一个配置和一个接口。
主机从设备读取各种描述符,了解有什么配置、接口和端点可用。
当设备第一次使用缺省管道插入时,主机读取这些描述符。
主机操作系统要为发现的每个配置或接口建立内核设备[19]。
1.2.3USB传输类型
在USB级,设备可以使用4种不同的传输类型通信:
控制传输、中断传输、批量传输和等时传输。
如果从头设计一个USB设备,必须决定那些传输类型是合适的。
1)控制传输:
主要用于命令袱态操作,由主机软件发起的请求/响应通信过程,具有突发性,非周期的特点。
任何一个USB设备都必须支持与一个控制传输类型相对应的端点0。
2)中断传输:
单向的并且对于主机来说只有输入的通信方式。
主要用于定时查询设备是否有中断数据要传送,用来支持那些偶然需要少量数据通信,但服务时间受限制的设备。
键盘,鼠标和游戏杆都属于这种类型。
3)批量传输:
主要用于没有带宽和间隔时间要求的大量数据的传送和接收。
它具有非周期和突发性强等特点。
它并不能保证传输的速率,但可以保证传输的可靠性,出现错误的时候会要求发送方重发。
打印机和扫描仪属于这种类型。
4)同步传输:
主要用于主机和设备与时间有关的信息传输,具有周期性、连续性等特点。
它要求有一个恒定的速率。
例如进行语音业务传输时,使用等时传输方式是很好的选择。
1.2.4USB低层通信协议
USB协议定义串行数据线路上发生的动作。
可用的数据传输时间(带宽)被划分成帧,每个帧lms长,一个全速的数据帧最多含有1500字节,而对于低速的帧最多含有187字节。
1)包
在串行线路上传输的最小数据块是包,它仅沿一个方向发送,要么来自主机,要么发送给主机。
一个包通常由同步信号、包标志(PID)、地址、传送的数据和CRC等组成。
PID由8位组成,其中后4位是纠错位。
有4类10个PID如表1.2所示。
2)事务
事务是主机和一个设备之间使用一个或多个包的离散交互。
一个事务通常由主机开始,一般分三个阶段,第一阶段发送令牌(token)包,第二阶段发送是数据(data)包(可以沿任何一个方向发送),在数据包传送完之后,就会由设备返回一个握手(handshake)包。
3)帧开始(SOF)
SOF包由主机发送,指示一个帧的开始。
这个包包括一个11位的帧号,这个帧号从0到Ox7FF连续变化,并重新折回0,SOF包被所有高速设备看到。
像任何其它包一样,SOF包可能被破坏。
4)事务包结构
控制传输涉及主机给设备发送一个SETUP包、任一方向的0个或多个DATA包以及一个握手包。
IN包或OUT包开始所有其它的传输。
设备端点的定义确定它是中断传输、块传输还是同步传输。
主机定时启动中断传输,看设备端点是否有任何数据可用。
设备端点可以返回数据。
另外,设备可能发送NAK,指示没有可用的数据,或者状态没有改变[4]。
表1.2PID类型[17]
PID类型
PID名
PID[3:
0]
描述
标记(Token)
输出(OUT)
0001B
在主机到功能部件的事务中有地址+端口号
输入(IN)
1001B
在功能部件到主机的事务中有地址+端口号
帧开始(SOF)
0101B
帧开始标记和帧号
建立(SETUP)
1101B
在主机到功能部件建立一个控制管道的事务中有地址+端口号
数据(DATA)
数据0(DATA0)
0011B
偶数据包PID
数据1(DATA1)
1011B
奇数据包PID
握手(Handshake)
确认(ACK)
0010B
接收器收到无错误数据包
不确认(NAK)
1010B
接收设备部不能接受数据,或发送设备不能发送数据
停止(STALL)
1110B
端口挂起,或一个控制管道请求不被支持。
专用(Special)
前同步(PRE)
1100B
主机发送的前同步字。
打开到低速设备的下行总线通信。
1.3USB接口技术
在进行一个USB设备开发之前,首先要根据具体使用要求选择合适的USB控制器。
实现USB设备与计算机之间的接口连接,通常的做法有以下的两种:
一种是采用分离的USB接口芯片和微处理芯片。
USB接口芯片,是指芯片厂商生产的可以用单片机控制的,带有USB电气接口,并完成将USB总线中的物理信号同单片机可以识别的TTL电平信号之间相互转换的接口芯片。
USB接口芯片常见的有PHILIPS的PDIUSBD11(I2C接口),PDIUSBD11A,PDIUSBD12(并行接口),NationalSemiconductor的USBN9602,USBN9604等。
接口芯片作为单片机的外围器件与单片机及单片机的其它外围电路共同组成的USB设备。
采用这种结构开发USB设备成本较低,可靠性高。
另一种就是采用带有USB接口电路的单片机,这种单片机的芯片上集成了USB接口电路,可以直接处理USB传输线上的数据。
如Intel的8X930AX,CYPRESS的EZ-USB,SIEMENS的C541以及MOTOLORA,NationalSemiconductors等公司的产品。
采用这种结构的设备外围电路简单,设计方便,周期短,但这些要采用专业的开发设备,且投资高[2]。
因此,选择的方案是功能强大,支持总线供电和设备自供电两种方式的PDIUSBD12作为接口芯片来设计USB设备接口,单片机控制器作为下位机,通过USB接口芯片和USB总线与PC机交换数据,并实现USB设备的逻辑功能。
2系统硬件电路设计
2.1设备电路系统概述
USB设备的硬件通常是由处理器和接口电路实现组成。
本系统实际上是AT89S52和PDIUSBD12单片机组成的单片机系统。
其核心就是单片机控制器,它负责完成设备所有的控制功能;USB接口芯片和其它输入输出模块作为单片机的外围部件挂接在系统总线上,所有器件在单片机的控制下协同工作。
2.251系列单片机最小系统
2.2.1AT89S52单片机的介绍和选用
单片机采用51系列兼容的AT89S52单片机。
AT89S52是低功耗,高性能,采用COMS工艺的8位单片机。
其片内具有8KB的可在线编程的Flash存储器,比80C51单片机多4K的程序存储器。
该单片机采用了ATMEL公司的高密度,非易失性存储技术,与工业标准型80C51单片机的指令系统与引脚完全兼容;片内的Flash存储器可在线重新编程,或使用通用的非易失性存储器编程器;通用的8位CPU与在线可编程Flash集成在一块芯片上,从而使AT89S52功能更加完善,应用更加灵活;具有较高的性能价格比,使其在嵌入式控制系统中有着广泛的应用前景。
所以我选用AT89S52单片机做此毕业设计。
1)AT89S52单片机的主要性能:
(1)与MCS-51单片机产品兼容
(2)8K字节在系统可编程Flash存储器
(3)1000次擦写周期
(4)全静态操作:
0Hz~33Hz
(5)三级加密程序存储器
(6)32个可编程I/O口线
(7)三个16位定时器/计数器
(8)八个中断源
(9)全双工UART串行通道
(10)低功耗空闲和掉电模式
(11)掉电后中断可唤醒
(12)看门狗定时器
(13)双数据指针
(14)掉电标识符
2)AT89S52单片机的标准功能
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止[16]。
3)AT89S52引脚及其功能:
AT89S52有40个管脚
分布如图2.1所示:
图2.1AT89S52引脚图
功能说明:
VCC:
电源
GND:
接地
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如表2.1所示。
在flash编程和校验时,P1口接收低8位地址字节。
表2.1P1口引脚第二功能
引脚号
第二功能
P1.0
T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1
T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5
MOSI(在系统编程用)
P1.6
MISO(在系统编程用)
P1.7
SCK(在系统编程用)
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- USB 接口 单片机 通信 中的 设计 应用 完整 论文