




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一种 USB2.0 数据传输的实现方式摘 要: USB (Universal Serial Bus ,通用串行总线 )是外围设备与计算机进行连接的新型接口,其诞生对计算机外设连接技术产生重大变革。对 Philips 公司的工业级 USB2.0 控制芯片 ISP1581 的性能特点作了介绍,并重点讨论了其硬件电路及固件程序的设计。此外还简要提及了其上层程序的编写。关键词: USB2.0 ; ISP1581; DMA 传输中图分类号: TP301 文献标识码: A 文章编号:1672-7800( 2011) 09-0040-030 引言 ?通用串行总线USB(Universal Serial Bu
2、s) 接口是近年来开始普遍应用于PC 领域的新型接口;同时,USB2.0 在USB1.1 的基础上又有了质的提高,其理论速度可以达到480Mbps 。 ?目前市场上供应的USB2.0 控制器主要有两种:带USB接口的单片机和纯粹的USB 接口芯片。但此类芯片基本上用于商业领域,无法适用工控领域的恶劣环境;纯粹的USB接口芯片仅处理USB 通信,必须有个外部微控制器/处理器来进行协议处理和数据交换。纯粹的 USB 接口芯片主要特点是接口方便、可靠性强、适用范围广,尤其Philips 公司提供的 ISP1581 芯片,能够在40 85的温度范围内正常工作,十分适合工控领域数据传输的需要。?1 IS
3、P1581的芯片性能特点?ISP1581是一款性能非常出众的USB2.0控制器,它实现了 USB2.0/1.1 物理层以及数据协议层需要完成的任务, 接口速度可达 12.5M 字节 /s 或 12.5M 字 /s;同时还做到可以与大部分类型的微控制器 /处理器相连, 非常适合做很多外围设备与 PC 的通讯接口。其一些具体的性能特点如下: ISP1581 含有 7 个 IN 端点, 7 个 OUT 端点和 2 个控制端点。芯片的工作频率为 12MHZ ,同时内部集成了一个 40 PLL 时钟乘法器可产生 480MHZ 的内部抽样时钟;通过 Philips 串行接口引擎( SIE)来完成所有 US
4、B 协议层的功能,主要完成以下功能:同步方式的识别、并行 /串行的转换、位填充 /解除填充等。 考虑到速度, 它是全硬件的, 不需要软硬件介入;通过 MMU 和集成 RAM 实现了 USB 总线和微控制器 /处理器或 DMA 控制器之间的速度转换。 DMA 控制器接收到 DMA 命令后,可直接把数据从内部 RAM 传送到外部 DMA 设备或从外部 DMA 设备传送给内部 RAM ;在分离总线模式下,通过 DMA 模块来实现 ISP581 芯片与 DMA 数据源或数据接收端的数据传输, 不需要微控制器 /处理器参与, 提高传输速度。 ?2 ISP1581 硬件电路设计 ?ISP1581 与系统的
5、微控制器接口模式有两种:通用处理器模式与分离总线模式。相对于通用处理器模式,分离总线模式采用 DMA 方式直接传输数据,在保证系统性能的前提下降低对微处理器的要求。故此处Atmel89C51(以下简称89C51) 与ISP1581连接采用分离总线模式,即多路复用8 位地址 /数据总线和单独的8 位/16位DMA总线。由89C51和ISP1581构成的USB2.0接口电路如图1 所示。?在硬件系统中, 89C51 与 ISP1581 的通讯采用中断方式,当 ISP1581 接收到主机信号后引发 89C51 的 INT0 中断,使 89C51 进行下一步工作。 RPU 引脚通过 1.5k电阻器上拉
6、; RREF 引脚通过 12.0k 精密电阻器接数字地; BUS_CONF引脚的功能是选择总线模式,接地后为分离总线模式;MODE0 引脚用来选择读/写功能,上拉后为 8051 型;MODE1引脚在分离总线模式下用于ALE/A0 的功能选择,接地后选择 ALE 功能。ISP1581 内部集成了复位电路 , 将 RESET 引脚直接接高电平即可复位。 (DMA 传输引脚 EOT 、DIOR/W 、DATAi 等信号不由 89C51 提供,由 DMA 数据源或数据接收端提供符合 ISP1581 DATASHEET 要求的 DMA 时序信号即可,不涉及 USB 协议内容, 相对简单。 因为图片排版问
7、题此处没有提供图例,类似还有系统供电滤波部分。详细可参见参考文献 2 ISP1581 Product Datasheet)。图 1 USB2.0 接口电路原理图 2 固件程序主流程?3 ISP1581 固件程序设计 ?在 USB2.0 协议中规定, 所有 USB 通信都必须由主机发起,设备只能响应来自主机的命令。 在这种结构下, ISP1581的固件编程采取中断驱动的方式。主机对 1SP1581 的任何操作都会引起ISP1581 对相应的中断位置位,同时引发89C51中断; 89C51 通过查询 ISP1581 中断源寄存器判断并处理中断。这样一方面保证了快速的数据传输和较好的软件结构,另一方
8、面简化了编程和测试。 ?固件程序主循环流程如图 2 所示。在系统上电后,首先初始化 89C51 和 ISP1581。初始化主要完成 89C51 中断设置与 ISP1581 预设寄存器设置,主要包括地址寄存器,方式寄存器,中断寄存器, DMA 寄存器,及端点寄存器等。地址寄存器设置 USB 的分配地址并激活 USB 设备(一般设置默认地址 0,在 SETUP 过程中改设为主机提供的地址) ;方式寄存器控制着重新开始、挂起和唤醒行为、中断行为、软件复位、时钟信号和软件连接操作;中断寄存器控制中断使能以及决定 INT 输出的动作和极性; DMA 寄存器中, DMA 配置寄存器和 DMA 硬件寄存器设
9、置 DMA 模式及信号触发极性;端点寄存器包括设置端点缓存大小,端点传输类型,以及端点使能等(端点寄存器的设置要与准备提供的端点描述符相一致) 。 ?初始化完成后,系统循环等待主机命令引发的中断,主要中断有 SETUP 中断 (即 USB 控制传输中断 )、总线挂起中断、总线唤醒中断、各端点数据 IN 或 OUT 中断和两个厂商请求中断 (固件版本查询中断和 DMA 传输使能中断 )。中断服务程序流程如图 3 所示。系统进入中断服务程序后,读取 ISP1581 中断寄存器内容并拷贝到全局中断,然后清除 ISP1581 中断源,以免再次触发。 ?当固件接受到第一个SETUP 中断后,进入USB
10、枚举过程。枚举过程与USB 协议关系最为密切,其过程是主机发出一系列 USB 标准设备请求并要求及时得到设备响应,使主机能为该设备准备其所请求的资源,建立好两者之间的信息沟通机制。主要枚举过程如下:?主机使用默认地址下发GetDeviceDescriptorA (80 0600 01 00 00 40 00),设备上发18 位设备描述符,确定USB规范版本号与厂商ID 、产品 ID ,不用返回64 位数据;主机发送含有指定地址命令SetAddress( 00 05 02 00 00 00 0000),在主机只有一个USB 设备的时候,此地址一般是2,最大地址可为127,即 USB 协议中规定可
11、以连接127 个设备。固件设置 ISP1581 的地址寄存器,进入新地址状态,主机以后会在新的指定地址处访问设备;主机使用新地址下发GetDeviceDescriptorB ( 80 06 00 01 00 00 12 00),设备重新上发 18 位设备描述符;主机使用新地址下发GetDeviceDescriptorC ( 80 06 00 02 00 00 09 00),设备上发 9位配置描述符,确定接口数目以及电源获取方式等;主机使用新地址下发GetDeviceDescriptorD ( 80 06 00 02 00 00 FF00),设备上发全部描述符,包括配置描述符号、接口描述符号、端
12、点描述符,确定接口与端点详细信息;读取全部ConfigDescriptor 后,主机将找到新设备, 提示安装驱动程序;在设备能通信前,主机给出SetConfiguration ( 00 00 09 010 00 00 00)请求,设备收到后调整有关信息,使设备能被客户软件利用枚举过程涉及大量USB 协议中规定的内容, 其重点是 USB 描述符所代表的具体含义,如最大信息包、 接口数目、端点数目、电源配置等。在提示安装驱动程序前,可使用 BusHound 对 USB 传输数据进行监。驱动可先使用philips 的驱动,待系统完成后再根据性能考虑是否需要驱动的更新。枚举过程中数据传输皆通过ISP1
13、581 的端点 0 实现,使用 USB 的控制传输类型。图 3 中断服务程序流程图 4 BusHound 对 USB 口数据流的监控结果 ?枚举结束,系统又处于循环等待主机其他命令状态,一旦得到主机要求,就开始传输数据。 相对于控制传输来说,USB 的其他几种传输模式都比较好处理。ISP1581 的 7 个 IN端点和 7 个 OUT 端点均可通过编程设置为批量传输、中断传输或等时传输模式。在芯片处于分离总线模式下,89C51与 DMA 数据源或数据接收端均可以与主机进行数据交换,一般少量控制命令数据由 89C51 实现,大批量数据由 DMA数据源或数据接收端通过DMA 传输引脚提供或接收,两
14、者需分别通过ISP1581 不同的端点进行传输。?89C51 与主机通信, 通过设置 ISP1581 的端点索引寄存器、数据端口寄存器、缓冲区长度寄存器来实现(枚举阶段固件程序相相似) 。89C51 上传主机数据的程序段主要内容如下:?ISP_Cntrl_Reg.ISP_ENDPT_INDEX = port; /选择端点?ISP_Cntrl_Reg.ISP_BUFFER_LENGTH_LSB =(unsigned char) len;?ISP_Cntrl_Reg.ISP_BUFFER_LENGTH_MSB =(unsigned char) (len8); / 数据长度 ?while(len -
15、 != 0)? ISP_Cntrl_Reg.ISP_DATA_PORT_LSB = *buf; /填写FIFO , buf为数据地址?buf+;? ?89C51 接收主机数据的程序段主要内容如下:?ISP_Cntrl_Reg.ISP_ENDPT_INDEX = port; /选择端点?len = ISP_Cntrl_Reg.ISP_BUFFER_LENGTH_MSB;?len 8);?ISP_Cntrl_Reg.ISP_DMA_TRANSFER_COUNTER_MSB_L = 0;?ISP_Cntrl_Reg.ISP_DMA_TRANSFER_COUNTER_MSB = 0;?ISP_Cntr
16、l_Reg.ISP_DMA_COMMAND =DMA_Write_Command; / 启动 DMA 传输 ?while(!DMA_Int_Flag.BITS.DMA_DONE& !DMA_Int_Flag.BITS.INT_EOT)? if(USB_Int_Flag.BITS.SUSP |Kernel_Flag.BITS.Bus_Reset | ?USB_Int_Flag.BITS.EP0SETUP)? ISP_Cntrl_Reg.ISP_DMA_COMMAND =DMA_RESET;?DMA_Init();?break;? ? / 循环判断是否DMA 传输结束或系统强制结束DMA_Int_
17、Flag.BITS.DMA_DONE = 0;?DMA_Int_Flag.BITS.INT_EOT = 0; /复位系统标志?设置接收主机数据的程序段主要内容(略 )。?4 主机程序设计?主机程序设计包括驱动程序设计与应用程序设计。?主机的驱动程序可以使用USB芯片厂商提供的驱动( Philips 公司提供了 ISP1581 的驱动 , ?在 Philips 网站( www.P )上可获得),也可以自己编写。编写主机的驱动程序是 USB 开发中较困难的事情 ,通常采用 WindowsDDK来实现。目前有许多第三方开发软件, 使用他们开发要简单许多,有WinDriver Wizard ,Driv
18、erStudio 等 (这部分在参考文献 4 Windows2000 设备驱动程序设计指南中已有很详细说明)。 ?应用程序设计相对比较简单,它调用驱动程序提供的函数即可,包括初始化USB 设备,发送操作命令,关闭USB设备等。应用程序也可先用Bus Hound 替代,它可以监控USB 口上数据流的一举一动,是调试主机应用程序和固件的有力工具。上面介绍系统程序的运行结果,用 Bus Hound 监控的得到数据如图 4 所示,从图中可以看到从 USB 口读进来的数据有设备描述符数据、管道信息数据以及从数据端点上读进来的数据块。 ?5 结束语 ?本文详细介绍了基于ISP1581 芯片的 USB2.0 接口设计。ISP1581 是一款性能优化的USB 接口芯片 , 具有同外部微控制器接口简单、应用灵活、调试方便和性价比较高、适用于工业领域等优点。采用ISP1581 可以快速开发出高性能的USB2.0 设备。可以预见, 它将在大容量存储器、音频视频等高速大流量的数据传输场合得
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 13《花钟》第二课时(教学设计)-2023-2024学年统编版语文三年级下册
- 企业物业管家半年工作总结
- 第1课《计算机网络》教学设计 2023-2024学年浙教版(2023)初中信息技术七年级上册
- 2025年多方合作合同协议
- 23《月迹》教学设计2024-2025学年统编版语文五年级上册
- 2025年上海市家庭居室装饰装修施工合同
- 《2025居间合同签订注意事项》
- 2025上海本地房屋租赁合同
- 2025个体劳动力的承包合同
- 22《读不完的大书》第二课时教学设计-2024-2025学年三年级上册语文统编版
- 跨学科主题学习的设计
- 完整版:美制螺纹尺寸对照表(牙数、牙高、螺距、小径、中径外径、钻孔)
- 幼儿园大班社会公开课《生活中的标志》课件
- (正式版)FZ∕T 63001-2024 缝纫线用涤纶本色纱线
- 公司篮球队管理制度范文
- 2023年拍卖师考试真题模拟汇编(共469题)
- 矿卡司机安全教育考试卷(带答案)
- 四川省2023年高中学业水平合格性考试化学试题(解析版)
- 林业服务劳务承包合同
- 中国食品饮料市场调研报告
- 2016-2023年北京电子科技职业学院高职单招(英语/数学/语文)笔试历年考点试题甄选合集含答案解析
评论
0/150
提交评论