USB通讯若干问题探讨.ppt_第1页
USB通讯若干问题探讨.ppt_第2页
USB通讯若干问题探讨.ppt_第3页
USB通讯若干问题探讨.ppt_第4页
USB通讯若干问题探讨.ppt_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、USB通讯若干问题探讨,frank Frank_,主要探讨以下六方面问题,(1)有关USB的背景 (2)有关USB的基本概念 (3)开发USB通讯子系统的流程 (4)开发调试的基本方法与思路 (5)一些现有工作的演示 (6)对现有问题的分析、展望,(1)有关USB的背景,大家生活中常见的与USB有关的东西有: U盘、移动硬件、带USB接口的MP3 USB键盘、Mouse USB接口的打印机 USB接口的数码相机 为什么是USB(通用串行总线),而不是UPB(通用并行总线)?,基于IBM PC的并行设备的缺陷,占用系统资源严重:内存地址、IO、IRQ 不可热插拨 扩展受限(一般仅提供几个PCI和

2、ISA插槽) 硬件软件配置麻烦,存在潜在冲突 接口(ISA、EISA、PCI)不可共享 连接电缆不可共享My Poor Mp3的故事 (下页多张图示说明一些问题),并行设备的缺点,不同设备占用不用的地址空间和中断,并行设备的缺点,PC机背后的各种接口,怎么办?,?,寻找新的解决方案,USB以其良好的性价折中,从诸多方案中脱颖而出,Gate为表征复杂程度的一个量,USB接口的优势,USB:Universal Serial Bus Host控制器基于PCI,提高了系统性能 即插即用,无需手动设置地址、中断 热插拨,系统不需重启便可工作 易于扩展,理论上可连接多达127个设备 USB2.0以低成本实

3、现高达480Mb/s的传输率(USB1.0的全速设备可达12Mb/s) 接口标准统一、端口供电、,暂新的画面,不久的将来,外设将尽可能地通过USB连接,仅有少数设备需要专门的插槽,如SCSI接口、显示接口和以太网接口。,USB接口与嵌入式系统,与PC接口的嵌入式设备更加方便(如数据采集) USB接口是对串口的替代 具有U盘功能的嵌入式设备文件交换更加方便 具有主机功能的嵌入式设备可读写U盘,数据采取、存储更加方便,适合野外设备 理论上USB可组建高速的网络,且接口带标准5DC电源,易实现模块化,小结一下,基于传统的基于ISA的并行设备连接方式的缺点,以及USB连接方式的优点,使我们产生对USB

4、接口的关注和兴趣,USB正逐渐成为PC连接外围并行设备的一种标准 以至于人们逐渐关注有关USB接口的硬件开发、固件编程及PC端驱动程序、应用程序的编写,主要探讨以下六方面问题,(1)有关USB的背景 (2)有关USB的基本概念 (3)开发USB通讯子系统的流程 (4)开发调试的基本方法与思路 (5)一些现有工作的演示 (6)对现有问题的分析、展望,(2)有关USB的基本概念,USB架构中的三个东西: HOST:USB主控制器,如计算机上的USB口 Device:USB设备,如U盘、移动硬盘、打印机 Hub:USB Hub,主控制器上带一个,市面可买到,某台计算上的设备管理器中的“串行控制器”中

5、内容,PC机上USB接口设备的连接拓扑结构,连接方式,目前,由于USB协议的限制,USB通讯为主从模式,即只有Host与Device之间可以互相通讯 但同时也有厂商推出 On The Go,特定环境下,USB HOST,USB HOST,USB HOST,USB DEVICE,USB Device,USB DEVICE,USB Device,USB DEVICE,USB系统中的通讯流,帧结构,由于有许多设备都接到了USB上,因此每1ms产生的传输帧是混合的。其中中断传输(Interrupt)和同步传输(Isochronous)对时间要求高,因此占用了约90的总带宽,控制传输(Control)占

6、用了约10的带宽,而批量传输(Bulk)则使用剩下的可用带宽,Transaction、Frame、Packet,每个Transaction由三个包组成,包(Packet)的格式,用7个0和1个1作为同步序列,即插即用的实现Descriptor,比如,一个能插放CD的USB接口的CDROM,作为一个设备,它具有两种功能,读取光盘和播放CD,所以有两个配置(Configuration)描述符。一个功能的实现要涉及许多接口,比如当CD播放机使用时,需要音频接口,同时还需要控制CD机的接口。而控制命令接口又由许多端点组成,比如有的端点负责向CD机发送命令,有的接口负责接收来自CD机的反馈,Device

7、、 Configuration、 interface、 endpoint,USB把设备分成了许多类,特定类(class)的设备又可划分成子类(subclass),划分子类的后软件就可以搜索总线并选择所有它可以支持的设备,一个设备只有一个(Device)描述符,它指明了设备所属的类, 每个设备可以有一个或多个配置(Configuration),配置用于定义设备的功能。如果某个设备有几种不同的功能,则每个功能都需要一个配置。配置(configuration)是接口(interface)的集合。接口指定设备中的哪些硬件与USB交换数据。每一个与USB交换数据的硬件就叫做一个端点(endpoint)。

8、因此,接口是端点的集合。USB的设备类别定义(USB Device Class Definitions)定义特定类或子类中的设备需要提供的缺省配置、接口和端点,当设备插入以后,主机(下称H):你是什么设备? 设备(下称D):12 01 0100Device Descriptor H:你有几种功能? D:09 02 09Configuration Descriptor H:每个功能有几个接口? D:09 04 00Interface Descriptor H:每个接口使用哪几个端点? D:06 05 82Endpoint Descriptor H:好了,我知道你是谁了,开始传输数据吧! D:OK

9、, Read Go ,03为String描述符,一般省略不提供,小结一下,USB家族中有三位:主机、设备与Hub,目前常见的是主机与设备,或主机经Hub与设备的连接方式。 On The Go可实现设备直接对连,比如数码相机可直接连到打印机上打印图片 USB通讯过程中,以众多设备共享间隔为1s的帧结构来实现数据通讯,主要探讨以下六方面问题,(1)有关USB的背景 (2)有关USB的基本概念 (3)开发USB通讯子系统的流程 (4)开发调试的基本方法与思路 (5)一些现有工作的演示 (6)对现有问题的分析、展望,(3)开发USB通讯子系统的流程,A.系统结构、功能定义 B.USB接口芯片的选择 C

10、.与MCU的接口电路 D.固件编程 E.若与PC接口,须开发PC端驱动程序与应用程序 F.系统调试,系统结构、功能定义,是要做HOST,还是做DEVICE? 是做数据采集器(要求实时性)、还是做存储设备? 是采用USB2.0标准还是USB1.1标准? 以上问题决定了 接口芯片的选择。,我们所做的工作中,目的是做一个USB存储设备,即U盘,采用USB1.1标准。,B.USB接口芯片的选择,有带USB接口的单片机和专门的USB芯片两种 主要的USB接口芯片提供厂商 CypressSL811,EZUSB PhilipsISP1160,D12 www.philips- 凌阳 这些芯片厂商提供的USB接

11、口芯片各有特色,而且种类繁多,我们的项目中选择了Philips公司的PDIUSBD12 Device接口芯片,与MCU的接口电路,不同的芯片有所不同,一般比较简单,我们使用的是ARM7平台,硬件基本一致,D.固件(FirmWare)编程,前台主程序从数据缓冲区读取数据,负责数据的处理;后台中断服务程序向数据缓冲区中写入数据,负责与接口芯片的数据交换,固件结构,固件具有明显的层交结构,上层结构与具体的硬件连接并不关系,通过改变硬件连线,可轻易将相同内容应用于不同的芯片中,实现U盘功能的Mass Storage协议的处理集中在这个层次,PC端驱动程序和应用程序设计,使用Windriver等工具可快

12、速生成驱动程序 一般硬件厂商都提供本产品的开发评估板(包括固件、驱动程序和PC端应用)、可供参考,Windows环境支持标准的Mass Storage设备,因此我们的项目中不需要在这一层做任何工作,系统固件、PC端软件联调,系统联调、检测工作是否正常,做多方面的测试。 调试过程一般推荐先把嵌入式中的固件(Firmware)调好,然后再调试PC端软件,最后联调,小结一下,开发一个具体的USB项目,最重要的是确定目标,不同的目标,工作量可能相去甚远。 按照正确的流程来开发,可以加速开发过程,主要探讨以下六方面问题,(1)有关USB的背景 (2)有关USB的基本概念 (3)开发USB通讯子系统的流程

13、 (4)开发调试的基本方法与思路 (5)一些现有工作的演示 (6)对现有问题的分析、展望,(4)调试的基本方法与思路,特点: USB通讯过程是一个动态的过程,通讯的建立及通讯过程是动态的 通讯建立过程基于中断响应 需要专门的工具 问题只能发现在调试过程中,基本调试方法,串口输出信息 BusHound软件 在PC上使用的一个共享软件,由Perisoft公司开发,可以对SCSI/IDE,1394及USB总线上的数据进行监控,PC机的串口,ARM的UART接口,PC机的串口,超级终端或串口调试助手软件,实现对ARM平台上程序中Uart_Printf函数输出内容的显示,RS232 接口芯片,向串口输出

14、信息监控程序,void get_descriptor(void) unsigned char bDescriptor = MSB(ControlData.DeviceRequest.wValue); unsigned char bLength = MSB(ControlData.DeviceRequest.wLength); char *temp; if (bDescriptor = USB_DEVICE_DESCRIPTOR_TYPE) temp=(char *) ,通过串口得到的数据,DEV:18,CONFIG:9,INTF:9,EP:7 bmRequestType=0 x80,bRequ

15、est=0 x6,wValue=0 x100,wIndex=0 x0,wLength=0 x40 12 1 0 1 dc 0 0 10 71 4 66 6 0 1 0 0 0 19 bmRequestType=0 x0,bRequest=0 x5,wValue=0 x1,wIndex=0 x0,wLength=0 x0 bmRequestType=0 x80,bRequest=0 x6,wValue=0 x100,wIndex=0 x0,wLength=0 x12 12 1 0 1 dc 0 0 10 71 4 66 6 0 1 0 0 0 19 bmRequestType=0 x80,bRe

16、quest=0 x6,wValue=0 x200,wIndex=0 x0,wLength=0 x9 Config_descriptor:4 bmRequestType=0 x80,bRequest=0 x6,wValue=0 x200,wIndex=0 x0,wLength=0 xff Config_descriptor:4,从PC机的串口上得到的数据,BusHound软件,小结一下,USB的调试工作是整个开发过程中难度最大、碰到问题最多的。 从理论上讲很简单的问题,会在实际调试中成为整个工作进程的阻碍,比如大小端对齐问题,与所使用编译平台有关的结构体内字节对齐等问题。 而掌握正确的调试手段,

17、才能具体问题具体分析,顺利完成工作。(71),主要探讨以下六方面问题,(1)有关USB的背景 (2)有关USB的基本概念 (3)开发USB通讯子系统的流程 (4)开发调试的基本方法与思路 (5)一些现有工作的演示 (6)对现有问题的分析、展望,(5)一些现有工作的演示,U盘的演示 U盘调试过程中通过串口输出内容 USB通讯过程中通过Busbhound查看总线数据 嵌入式控制器从U盘的文件系统中读取启动代码启动,U盘的实现,在ARM7平台上,通过Philips公司的D12芯片,实现了Mass Storage协议,功能上相当于U盘 实现了在嵌入式平台上的进行USB设备开发,串口输出信息辅助调试,BusHound软件的演示,嵌入式系统直接从U盘中读取启动代码,小结一下,我们主要基于Philips的D12 Device接口芯片,在ARM7平台上实现了Mass Storage协议下的U盘 主要工作为USB通讯的调试和Mass Storage协议的实现 实现了对FAT16文件系统的操作,主要探讨以下六方面问题,(1)有关USB的背景 (2)有关USB的基本概念 (3)开发USB通讯子系统的流程 (4)开发调试的基本方法与思路 (5)一些现有工作的演示 (6)对现有问题的分析、展望,(6)对现有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论