已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
USB接口实验USB串行接口简介:全速USB是一个传输速率可达12Mbps的通用串行总线接口,目前应用已十分广泛,具有既插即用的功能,可以由不同的外围设备共享这个串行接口总线。在USB总线上必须有一个主控制机,掌握所有的主控权,负责对各个外围设备发出各种命令,其它设备为从设备。USB是以令牌为主的通信协议,通过集线器连接在USB上,主机在总线上发布一种令牌,符合这个令牌地址的设备会作出相应的操作。USB以树型结构最多可连接127个设备,一个设备内部最多包含16个端点,每个端点有自己的缓冲区。USB的传输最终落实在主机到端点的传输。USB物理拓扑结构:USB物理拓扑结构图USB管线与端点的概念 连接到每一个设备的小管线,一个系统最多有127个设备PC主机 大USB管线连接到每个端点的微管线,一个设备最多有16个端点,端点零是控制端点。USB系统的通信模型 主机 物理设备 应用客户软件USB逻辑设备USB系统软件USB总线接口USB主机控制器图41 USB主机/设备的简单模型USB硬件 USB主控制器 USB集线器 USB设备通用性USB软件 USB设备驱动程序 USB驱动程序 USB控制器驱动程序电气特性: USB 的电缆USB传送信号和电源是通过一种四线的电缆,下图中的 D+ 和 D- 这两根线是用于发送信号。存在两种数据传输率:USB的高速信号的比特率定为12Mbps;低速信号传送的模式定为1.5Mbps;电缆中还包括VBUS、GND二条线,向设备提供电源 。VBUS使用+5V电源。USB对电缆长度的要求很宽,最长可为几米。为了保证足够的输入电压和终端阻抗。重要的终端设备应位于电缆的尾部。在每个端口都可检测终端是否连接或分离,并区分出高速,或低速设备。信号传输a 数据编码USB串行数据是用NRZI进行编码的,编码过程是在USB数据线进行传输之前进行的。 差分驱动器 电缆 差分驱动器NRZI编码 D+ NRZI编码 D- b 信息包格式所有的USB数据都是使用信息包(packet)来传送,信息包是使用定义格式的区块信息,信息包内包含字段,每一个字段包含特定信息,信息包的字段类型包括:1、SYNC 同步字段 8位2、PID 信息包标识符号 , 8位,03用来识别类型,47是这些位的1的补码,用来检查错误。PID有16种类型。 PID的类型: 令牌 out 0001in 1001sof 0101setup 1101b数据 data0 0011bdata1 1011bdata2 0111bMdata 1111b联络 ACK 0010bNAK 1010bSTALL 1110bNYET 0110b特殊 PRE 1100bERR 1100bSPLIT 1000bPING 0100b保留 0000b 3、地址 地址字段有7位,用来识别主机与之通信的设备的地址4、端点 端点字段4位,用来识别设备中的端点号码。5、贞号码 贞号码有11位,用来识别特定的贞6、数据 数据字段有01024个字节的大小,视传输类型、事物中的数据量而定7、 CRC 以下是组成执行USB通信协议所须的各种信息封包类型 令牌信息包8位8位7位4位5位SYNCPIDADDRENDPCRCS数据信息包8位8位01023位16位SYNCPIDDATACRC16 联络信息包8位8位SYNCPIDUSB传输USB的传输包含一个或多个事物,每一个事物可以有三个部分组成,这三个部分依序分别是令牌、数据、联络,每一个部分包含一个或两个信息包,每一个信息包是以信息包标识符(PACKET ID,PID)开头,用来作为识别之用,依据事物种类的不同,PID后面可能接着地址、数据、状态信息,或是一个帧号码,以及错误校验位。每一个传输 .事物事物事物事物 数据联络令牌联络数据令牌 .传输类型: a、控制型传输: 设定阶段 数据阶段(可选)状态阶段 * 控制传输属双向传输,用来支持主机与设备之间的配置,命令、或状态的通信,控制传输的端点必需是零端点。USB的初始配置都是在零端点进行的。b、中断型传输:属于单项传输并仅从设备到主机。c、批量传输:属于单项或双向传输。d、实时性传输:可以是单项或双向。USB的标准设备请求: 在USB接口中,主机有绝对的主控权,设备只能听命行事,主机对设备的命令体现在主机是一条语句,但在通信中打成信息包后有一定的格式,而对设备的几种“标准请求”是体现在“数据信息包”的“数据字段”,即“DATA0”封包的数据字段。 DATA0封包的数据字段定义位移量字段值大小(byte)叙述0BmRequesType1D7数据方向D6.D5 类型D4.D0 接收端0=主机至设备0=标准请求0=设备1=特定类请求1=接口1=设备至主机2=厂商请求2=端点3=保留3=其它1Brequest1特定要求:2Wvalue2主机传送信息给设备4Windex2一般用来传送索引值或位移6Wlength2如控制型传输需数据阶段,数据阶段的字节数量 标准设备请求请求类型BmrequeType要求Request数值Wvale指数Windex长度Wlength资料00000000B00000000B00000000BClear_Feature(01H)特色选择器0接口端点01无10000000BGet_configuration(08H)001设定值10000000BGet descriptor(06H)描述符类型与指数0或语言ID描述符长度各个描述符10000001BGet Interface(0AH)1接口1切换接口10000000B10000001B10000010BGet Status(00H)10接口端点2接口设备或端点状态00000000BSet Address(05H)新的设备地址00无00000000BSet Configuration(09H)设定值00无00000000BSet Descriptor(07H)描述符类型与指数0或语言ID描述符长度各个描述符00000000B0000001B0000010BSet Feature(03H)特色选择器0接口端点0无00000001BSet_Interface(0BH)切换的设定接口0无10000010BSync_Frame(0CH)0端点2贞号码 以主机从设备中读取一个描述符(get description)为例来说明一个传输的过程及结构:主机向默认地址设备发送建立包Packet#syncsetupaddrendp 一个事物三个包设定阶段crcs9600000010x4B0x00x00x08建立数据包Packet#syncdata0dataCrc169700000010xC38006000100004000 0xbb29设备应Packet#syncack9800000010x4B一个事物三个包数据阶段主机读取数据Packet#syncinaddrendpcrcs10300000010x960x000x00x0b设备返回设备描述符Packet#syncData1dataCrc510400000010xd212010001DC00001071046606000100000x0B主机应答Packet#syncack10500000010x4B一个事物三个包状态阶段主机发送0字节数据作状态应答Packet#syncoutaddrendpcrcs10800000010x870x000x00x08Packet#syncData1datacrc1610900000010xD20x08设备应答Packet#syncack11000000010x4BUSB设备的初始化USB设备通过连接线连接到系统上时,主机对设备有一个识别和配置过程,即对设备的初试化,经过初始化以后,主机能够识别该USB设备和它的内部配置,并为其重新配置地址和寻找驱动程序。1. 在主机的USB集线器口连接上USB设备,主机会首先发出一个获取设备描述符的请求GetDeviceDescriptor。设备接收到这个主机请求,发送设备描述符,这时由于主机对Device 的描述符将有多长实际上都不知道,所以这个步骤只是试探性的。实际上,这时候即使只发送部分设备描述符,主机也会进行下面的步骤;2. 主机发送设置地址的请求SetAddress,这时候,设备的地址就是SetAddress请求数据包内对应的地址,一般为02或03;3. 完成地址设置后,主机会再次发送GetDeviceDescriptor的请求,读取全部设备描述符,一般为18个字节,如果没有正确受到设备描述符的话,主机会再次尝试,总共尝试的次数是3次;4. 主机发送获取配置描述符的请求GetConfigDescriptor,此时请求的仅仅是配置描述符,总长度为9个字节;5. 主机再次发送获取配置描述符得请求GetConfigDescriptor,这次请求的数据长度可能会是0xFF,这表示主机要求获取所有的配置信息,包括配置描述符(ConfigDescriptor)、接口描述符(IntefaceDescriptor)和端点描述符(EndPointDescriptor),设备应该将以上所有的描述符都发送给主机;6. 在正确获取到所有配置描述符之后,主机就会开始查找驱动,如果未能搜索到驱动的话,主机系统会提示找到设备但是未找到驱动;7. 当正确找到驱动后,主机会给设备发送SetConfiguration的请求,这样才算是一个设备被正确枚举了。以上便是一个USB设备完整的枚举过程。a、 USB设备的描述符主机与USB通信,首先要读取用于反映该设备行为特征的描述符,在设备的初始化时就要读取一系列USB的描述符,设备在接到主机发来的读取各种描述符的信息后,这些命令体现在接收端就是前面介绍过的一些设备请求,在接到请求读取描述符后,设备要将描述符发送给主机。USB设备有几个层次,其结构如下:设备描述符配置描述符 接口描述符 接口描述符 接口描述符 端点描述符 端点描述符有关各种描述符的定义,因内容较多,需要查看USB方面的书籍或USB的协议PDIUSBD12器件介绍PDIUSBD12是符合USB1.1协议的器件,具有通用的并行接口,可与一般的CPU通讯,支持本地的DMA传输。它的功能框图如下:6MHz 内部RAM3.3vD+PLL锁相环位时钟复位PHLIPS串行接口引擎 上游端口 D+ D_存储器管理单元模拟收发器电压调整器并行接口及DMA接口*串行接口引擎实现了全部的USB协议层,包括同步模式的识别、并行/串行转换、位填充/解除填充、CRC校验/产生、PID校验/产生/、地址识别、握手评估/产生。SoftConnect 与USB的连接是通过1.5K上拉电阻将+D(用于高速USB器件)设置为高实现的,1.5K上拉电阻集成在器件内,默认下不与VCC相连,通过并口往器件的相寄存器写适当的命令后实现软连接,USB总线连接可以重新初始化而不需拔出电缆。GoodLink使得USB设备具有良好的指示,在枚举时,LED会闪烁,当USB设备成功枚举和配置后,LED灯会一直点亮,随后与PDIUSBD12之间成功的传输(带应答)将关闭LED,处于挂起状态时,LED将会关闭。存储管理单元及RAM:高速USB的传输速率为12Mb/s,而与CPU连接的并行接口的高速度有差异,需要进行一定的管理,RAM包含了USB三个内部端点的FIFO。并行接口和DMA:CPU 通过并口可对PDIUSBD12进行设置及数据交换,DMA可实现PDIUSBD12主端点和本地共享存储器间的数据传输,而不需要本地CPU的干预。端点描述 PDIUSBD12有三个端点,分别是端点0、端点1、端点2,端点可通过SET命令配置为4种不同的模式。 模式0(非同步模式)端点数端点索引传输类型端点类型方向最大信息包规格001控制输出控制输入默认输出输入1616123普通输出普通输入普通普通输出输入1616245普通输出普通输入普通普通输出输入6464模式1(同步输出模式)端点数端点索引传输类型端点类型方向最大信息包规格001控制输出控制输入默认输出输入1616123普通输出普通输入普通普通输出输入161624同步输出同步输出128模式2(同步输入模式)端点数端点索引传输类型端点类型方向最大信息包规格001控制输出控制输入默认输出输入1616123普通输出普通输入普通普通输出输入161624同步输入同步输入128模式3(同步输入/输出模式)端点数端点索引传输类型端点类型方向最大信息包规格001控制输出控制输入默认输出输入1616123普通输出普通输入普通普通输出输入1616245普通输出普通输入同步同步输出输入6464命令总汇: PDIUSBD12内部有两个寄存器,一个是命令寄存器,一个是数据寄存器,两个寄存器占用一个地址位:A0。 A0=0时,访问命令寄存器A0=1时,访问数据寄存器对器件进行完整的读写访问时,先要往命令寄存器写命令字,然后往数据寄存器写数据。具体的命令格式请看PDIUSBD12器件手册单片机固件编程 如果 USB设备有一个CPU及一个PDIUSBD12,进行USB传输需要一个单片机的执行程序,即单片机固件编程,使得USB设备在接到主机的信息以后能够响应主机对设备的请求。 固件编程分为几个层次,框图如下: 主循环:发送USB请求、处理USB总线事件和用户处理等 厂商请求处理中断服务程序ISR.C标准设备请求处理 PDIUSBD12命令接口 硬件提取层 硬件提取层:对单片机的I/O、数据总线等硬件接口进行操作。PDIUSBD12命令接口:对PDIUSBD12器件进行操作的模块子程序集。中断服务程序:当PDIUSBD12向单片机发出中断请求时,读取PDIUSBD12的中断传来的数据,并设定事件标志“EPPFLAGS”和Set包数据缓冲区“CONROL-XFER”传输给主循环程序。标准请求处理程序:对USB的标准设备请求进行处理厂商请求处理程序:对用户添加的厂商请求进行处理主循环程序:发送USB请求、处理USB总线事件和用户功能等。中断服务中断入口 读取D12中断寄存器设置总线复位 总线复位挂起改变设置挂起改变标志DMA传输结束?DMA传输技术处理控制输入?控制端点发送数据处理控制输出?控制端点接收数据处端点1输入?端点1发送数据处端点1输出?端点1接收数据处端点2输入?端点2发送数据处端点2输出?端点2接收数据处中断服务结束 中断服务程序流程控制输出入口读端点处理状态清中断标志态处于接收状态建立包 NO NO YES YES 读取端点数据并保存设置等待状态读取端点数据并保存 YES接收完毕接受数据出错 NO对控制输入和控制输出端点进行建立包应答设置为等待状态设置建立包标志设置发送状态设置建立包标志读取要求 YES 设置为等待状态设置建立包标志带数据的请求 NO停止控制端点设置为等待状态数据长度出错设置接收状态子程序结束 控制输出处理流程控制输入入口 清中端标志发送状态剩下数据16B?剩下0个数据?发送剩下数据设置为等待状态发送一个空包设置为等待状态发送16个字节数据设置为发送状态子程序结束 控制输入处理流程普通输出端点入口普通输出端点入口 清中断标志读取缓冲区数据清中断标志子程序结束没有数据 YES保存数据设置接收事件标志 NO子程序结束 普通端点的工作流程 主循环初始化循环更新LED状态采集按键状态定时器事件标志? YES NO总线复位处理总线复位? YES 挂起改变处理挂起改变? NO YES NO 调用协议处理程序建立包? YES NO 主循环流程实验简介USB接口实验是将接口实验板的USB接口电路视为USB从设备,板上有一片FPGA现场可编程器件,与之相连的有Philips生产的PDIUSB12器件,该器件完全符合USB1.1协议,内部包含模拟收发器、串行接口引擎、存储器管理单元等,它具有一个并行接口,可直接与单片机或各种CPU的并口连接,完成对寄存器的读写(具体的使用看器件的DataSheet),器件的25、26管脚通过两个电阻后与USB连接器相连,板上还有一个64k的SRAM,做数据缓存用。以下是实验板的电路示意图: 并口 PDIUSBD12FPGASRAM 中断 到连接器 JTAG下载连接实验是通过对FPGA片内的设计实现对PDIUSB12的控制,完成USB与主机的数据传输,可采用两种方式完成USB接口的实验:1、完全采用逻辑设计方式,在ISE6.1平台下用VHDL或Verilog硬件描述语言实现,2、在Xilinx EDK平台下实现,可以用Xilinx EDK嵌入式开发工具生成一个FPGA片内的单片机,并在此平台下编写固件程序,实现USB接口功能。在Xilinx嵌入式开发工具EDK平台下实验1、 熟悉 Xilinx EDK 6.1i的使用,按照 EDK 使用教程的流程在计算机上操作一遍。2、 彩灯控制:按照以上的流程重新搭建一个工程,Board vendor选Memec Design,Board name 选Spartan-II300E LC Development Board,去掉OPB总线上的周边设备,只保留LED_4bit设备,根据实验板的电路图编辑一个文件,然后上面的步骤创建一个工程名.bit文件,或在Options/Projet Options/Implementation Tool Flow 菜单下选XPS xflow,在tool/creat bit菜单下创建download.bit文件,编写控制LED彩灯的软件代码,编译软件代码,在tool/updata 菜单下将编译好的软件代码加到工程名.bit文件中,再点击Download将download.bit文件下载到实验板,调试后使LED灯循环点亮。3、 添加存储器控制IP core:MEC,该IP core是针对存储器或FLASH的周边接口,在这里我们将用MEC来对PDIUSBD12器件进行寄存器的读写和控制,对添加的MEC进行适当的参数配置和端口配置,编写软件代码控制PDIUSBD12的分频器和软连接,编译,下载到实验板,用示波器观察PDIUSBD12的频率和设置的频率是否一致,再观察主机右下脚是否出现了绿色的小箭头。可以改变软件代码,使分频器的频率改变或使软连接断开,然后重复以上过程,再观察其结果。4、 添加中断控制器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 46292-2025焦炭堆积密度大容器测定方法
- 河南省扶沟二中2026届物理高二第一学期期末学业水平测试试题含解析
- 湖南省益阳市龙湖中学2025-2026学年高一上生物期末质量检测试题含解析
- 儿科银屑病儿童护理指南
- 福建省福州市八县协作校2025年生物高一第一学期期末统考试题含解析
- 儿科婴幼儿腹泻护理流程
- 精神科抑郁症诊断治疗指南
- 急性肾损伤危害科普
- 青少年抑郁症干预方案
- 心理与精神护理人卫版
- 中外航海文化知到课后答案智慧树章节测试答案2025年春中国人民解放军海军大连舰艇学院
- 《AI公文写作范例大全:格式、要点与技巧》课件 第5、6章 AI公文写作的方法、AI写作工具的测评
- 2023年山东省学位与研究生教育质量报告
- 提高护理文书书写规范率品管圈
- DB22T 2469-2016 林业安全生产标准化基本规范
- 居里夫人课件
- 2024水电水利工程施工监理规范
- 《电力建设工程施工安全反事故措施》
- DB13(J)-T 8580-2024 双面彩钢板复合风管技术规程
- DL∕T 1253-2013 电力电缆线路运行规程
- 福建省福州市仓山区2025届九年级化学第一学期期中检测试题含解析
评论
0/150
提交评论